.dashboard{width:100%;max-width:900px;padding:2rem 1rem;box-sizing:border-box;text-align:left}.dash-section{margin-bottom:2.5rem}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.section-header h2{margin:0}.dash-section>h2{margin:0 0 1rem}.dash-section h2{font-size:1.1rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1rem 1.25rem}.card-highlight{border-color:var(--accent)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;gap:.5rem}.card-name{font-weight:600;font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-meta{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.2rem .75rem;font-size:.85rem}.card-meta dt{color:var(--text-muted);font-weight:500}.card-meta dd{margin:0}.loading,.empty{color:var(--text-muted);font-size:.95rem;margin:0}.invite-form{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.25rem;display:flex;flex-direction:column;gap:.85rem;max-width:380px}.invite-perms{display:flex;flex-direction:column;gap:.4rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;cursor:pointer}.invite-actions{display:flex;gap:.5rem}.invite-desc{font-size:.875rem;color:var(--text-muted);margin:0 0 .75rem}.form-error{margin:0;font-size:.825rem;color:#b91c1c}.btn-sm{padding:.4rem .9rem;font-size:.85rem}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--bg-subtle);color:var(--text)}.invite-dialog{border:none;border-radius:12px;padding:1.75rem;width:100%;max-width:380px;background:var(--surface);color:var(--text);box-shadow:0 8px 40px #0003}.invite-dialog::backdrop{background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dialog-title{margin:0 0 1.25rem;font-size:1.1rem;font-weight:600}.invite-dialog form{display:flex;flex-direction:column;gap:.85rem}.partners-split{display:flex;flex-direction:column;gap:1.25rem}.partners-group-label{margin:0 0 .6rem;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.btn-danger{background:#ef4444;color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626}.card-delete{margin-top:.85rem}.logs-layout{display:flex;width:100%;max-width:1100px;padding:2rem 1rem;box-sizing:border-box;gap:1.75rem;align-items:flex-start;text-align:left}.logs-sidebar{width:200px;flex-shrink:0;position:sticky;top:1rem}.logs-sidebar h2{margin:0 0 .75rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted)}.device-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.device-btn{width:100%;background:transparent;border:none;border-radius:6px;padding:.45rem .65rem;font-size:.875rem;cursor:pointer;color:var(--text);text-align:left;display:flex;align-items:center;gap:.5rem;transition:background .12s}.device-btn:hover{background:var(--bg-subtle)}.device-btn.active{background:var(--accent);color:#fff}.device-btn.active .dot-green,.device-btn.active .dot-gray{background:#fff}.dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.dot-green{background:#22c55e}.dot-gray{background:#9ca3af}.sidebar-loading{font-size:.85rem;color:var(--text-muted);padding:.4rem .65rem}.logs-main{flex:1;min-width:0}.logs-header{margin-bottom:1.25rem}.logs-header h1{margin:0;font-size:1.3rem;font-weight:700}.log-list{display:flex;flex-direction:column;gap:.6rem}.log-row{display:flex;align-items:flex-start;gap:1rem;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.85rem 1rem}.log-row-main{flex:1;min-width:0}.log-row-top{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.35rem}.log-type{font-size:.875rem;font-weight:600;background:var(--bg-subtle);border:1px solid var(--border);border-radius:5px;padding:.1rem .45rem;font-family:ui-monospace,monospace}.log-device{font-size:.8rem;color:var(--text-muted);font-weight:500}.log-time{font-size:.8rem;color:var(--text-muted);margin-left:auto;white-space:nowrap}.log-meta{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.15rem .65rem;font-size:.8rem}.log-meta dt{color:var(--text-muted);font-weight:500}.log-meta dd{margin:0}.log-thumb-wrap{flex-shrink:0}.log-thumb-btn{background:none;border:1px solid var(--border);border-radius:6px;padding:0;cursor:pointer;overflow:hidden;display:block}.log-thumb{display:block;width:72px;height:72px;object-fit:cover}.img-overlay{position:fixed;inset:0;background:#000a;display:flex;align-items:center;justify-content:center;z-index:100;cursor:zoom-out}.img-full{max-width:90vw;max-height:90vh;border-radius:8px;cursor:default;box-shadow:0 8px 60px #0008}.logs-loading{color:var(--text-muted);font-size:.9rem;margin:.75rem 0 0}.load-more{margin-top:1rem}.empty{color:var(--text-muted);font-size:.95rem;margin:0}@media(max-width:600px){.logs-layout{flex-direction:column}.logs-sidebar{width:100%;position:static}.device-list{flex-direction:row;flex-wrap:wrap;gap:4px}.device-btn{width:auto}}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100%;width:100%;padding:2rem 1rem;box-sizing:border-box}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:2.5rem 2rem;width:100%;max-width:400px}.auth-title{margin:0 0 .25rem;font-size:1.75rem;font-weight:700}.auth-subtitle{margin:0 0 1.75rem;color:var(--text-muted);font-size:.95rem}.auth-tabs{display:flex;border-radius:8px;background:var(--bg-subtle);padding:3px;margin-bottom:1.5rem;gap:3px}.auth-tab{flex:1;border:none;background:transparent;border-radius:6px;padding:.45rem 1rem;font-size:.9rem;cursor:pointer;color:var(--text-muted);font-weight:500;transition:background .15s,color .15s}.auth-tab.active{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0002}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-error{margin:0;padding:.6rem .75rem;background:#fee2e2;color:#b91c1c;border-radius:6px;font-size:.875rem}:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;--text: #1a1a1a;--text-muted: #6b6860;--surface: #ffffff;--bg: #f9f9f7;--bg-subtle: #f3f2ef;--border: #e0ddd8;--accent: #2c6e4f;color:var(--text);background-color:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0}#app{display:flex;flex-direction:column;min-height:100vh}header{display:flex;align-items:center;justify-content:space-between;background-color:var(--accent);padding:0 1.25rem}.header-brand{color:#fff;font-weight:700;font-size:1.1rem;letter-spacing:.02em}header nav{display:flex;align-items:center}header a{color:#fff;padding:.75rem;text-decoration:none}header a:hover{background-color:#0008}.header-logout{background:transparent;border:none;color:#fffc;padding:.75rem;cursor:pointer;font-size:.9rem}.header-logout:hover{color:#fff;background-color:#0008}main{flex:auto;display:flex;justify-content:center}.field{display:flex;flex-direction:column;gap:.35rem}.field label{font-size:.875rem;font-weight:500}.field input{background:var(--bg);border:1px solid var(--border);border-radius:7px;padding:.55rem .75rem;font-size:.95rem;color:var(--text);outline:none;transition:border-color .15s}.field input:focus{border-color:var(--accent)}.btn{padding:.6rem 1.25rem;border:none;border-radius:7px;font-size:.95rem;font-weight:600;cursor:pointer;transition:opacity .15s}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){opacity:.88}.badge{font-size:.75rem;font-weight:600;padding:.15rem .55rem;border-radius:999px;flex-shrink:0}.badge-green{background:#dcfce7;color:#15803d}.badge-gray{background:#f3f4f6;color:#6b7280}.badge-yellow{background:#fef9c3;color:#a16207}.error-banner{background:#fee2e2;color:#b91c1c;border-radius:8px;padding:.6rem .9rem;font-size:.875rem;margin:0 0 1rem}.muted{color:var(--text-muted)}.splash{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--text-muted);font-size:.95rem}
