:root{--bg: #f6f6f9;--surface: #ffffff;--surface-2: #f1f1f6;--border: #e3e3ec;--text: #1c1c28;--muted: #6b6b80;--accent: #5b5bd6;--accent-soft: #ececfc;--accent-text: #3f3fb0;--ok: #1f8a4c;--ok-soft: #e3f5ea;--warn: #a86400;--warn-soft: #fdf1dc;--danger: #c62f3c;--danger-soft: #fce6e8;--shadow: 0 1px 2px rgba(20, 20, 40, .05), 0 1px 1px rgba(20, 20, 40, .03);--radius: 10px;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #111117;--surface: #1a1a23;--surface-2: #22222d;--border: #2e2e3b;--text: #ececf3;--muted: #9696aa;--accent: #8484f0;--accent-soft: #26264a;--accent-text: #b4b4ff;--ok: #4fc483;--ok-soft: #173325;--warn: #f0b04c;--warn-soft: #3a2b12;--danger: #f06a75;--danger-soft: #3d1a1e;--shadow: none;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--accent-text);text-decoration:none}a:hover{text-decoration:underline}code{font-family:ui-monospace,SF Mono,Consolas,monospace;font-size:12px}h1{font-size:22px;font-weight:650;margin:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.muted{color:var(--muted)}.small{font-size:12px}.shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--border);padding:20px 14px;display:flex;flex-direction:column;gap:24px;position:sticky;top:0;height:100vh}.sidebar nav{display:flex;flex-direction:column;gap:2px}.sidebar nav a{color:var(--text);padding:8px 10px;border-radius:8px;font-weight:500}.sidebar nav a:hover{background:var(--surface-2);text-decoration:none}.sidebar nav a.active{background:var(--accent-soft);color:var(--accent-text)}.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:8px;font-size:12px}.brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:16px;padding:0 10px}.brand-lg{font-size:22px;padding:0;justify-content:center}.brand-dot{width:14px;height:14px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#c06cf0)}.brand-tag{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.content{padding:28px 32px 60px;max-width:1280px;width:100%;display:flex;flex-direction:column;gap:18px}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}.breadcrumb{font-size:13px;color:var(--muted);margin-bottom:4px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px;min-width:0;overflow-x:auto}.card-header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.card-header h2{font-size:15px;font-weight:620;margin:0}.card-actions{display:flex;gap:6px;flex-wrap:wrap}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow)}.stat-label{font-size:12px;color:var(--muted);font-weight:500}.stat-value{font-size:28px;font-weight:680;font-variant-numeric:tabular-nums;line-height:1.2;margin:4px 0 2px}.stat-hint{font-size:12px;color:var(--muted)}.stat-accent .stat-value{color:var(--accent-text)}.stat-warn{border-color:color-mix(in srgb,var(--warn) 40%,var(--border))}.stat-warn .stat-value{color:var(--warn)}.stat-danger .stat-value{color:var(--danger)}.chart svg{width:100%;height:180px;display:block}.bar-users{fill:var(--accent);opacity:.35}.bar-families{fill:var(--accent)}.chart-legend{display:flex;gap:16px;font-size:12px;margin-top:8px;align-items:center}.dot{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:4px;vertical-align:-1px}.dot-users{background:var(--accent);opacity:.35}.dot-families{background:var(--accent)}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:12px;font-weight:600;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap}.table td{padding:9px 10px;border-bottom:1px solid var(--border);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table-hover tbody tr{cursor:pointer}.table-hover tbody tr:hover{background:var(--surface-2)}.table-compact td{padding:5px 0;font-size:13px}.table-compact{margin-top:12px;border-top:1px solid var(--border)}.num{text-align:right!important;font-variant-numeric:tabular-nums}.row-actions{display:flex;gap:6px;justify-content:flex-end}.fields{margin:0;display:grid;gap:8px}.field{display:grid;grid-template-columns:150px 1fr;gap:10px;align-items:baseline}.field dt{color:var(--muted);font-size:13px}.field dd{margin:0;min-width:0;overflow-wrap:anywhere}.badge{display:inline-flex;align-items:center;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:560;background:var(--surface-2);color:var(--text);white-space:nowrap;border:1px solid var(--border)}h1 .badge{font-size:13px}.badge-ok{background:var(--ok-soft);color:var(--ok);border-color:transparent}.badge-warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}.badge-danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}.badge-accent{background:var(--accent-soft);color:var(--accent-text);border-color:transparent}.badge-muted{color:var(--muted)}.btn{font:inherit;font-weight:550;font-size:13px;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:7px 13px;border-radius:8px;cursor:pointer;white-space:nowrap}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:4px 10px;font-size:12px}.btn-block{width:100%;padding:10px}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 88%,black)}.btn-warn{background:var(--warn-soft);border-color:transparent;color:var(--warn)}.btn-warn:hover:not(:disabled){background:color-mix(in srgb,var(--warn-soft) 80%,var(--warn))}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 88%,black)}.btn-ghost-danger{color:var(--danger);border-color:transparent;background:transparent}.btn-ghost-danger:hover:not(:disabled){background:var(--danger-soft)}.btn-link{background:none;border:none;color:var(--accent-text);width:100%}.action-list{display:flex;flex-wrap:wrap;gap:8px}.toolbar{display:flex;gap:10px;flex-wrap:wrap}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px 11px}input:focus,select:focus,textarea:focus,.btn:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 50%,transparent);outline-offset:1px}.search{flex:1;min-width:240px}.form-field{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:550}.form-field textarea{resize:vertical}.loading,.empty{color:var(--muted);padding:18px 4px;text-align:center;font-size:13px}.error-box{background:var(--danger-soft);color:var(--danger);padding:10px 12px;border-radius:8px;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px;margin:6px 0}.banner{padding:11px 14px;border-radius:var(--radius);font-size:13px}.banner-warn{background:var(--warn-soft);color:var(--warn)}.banner-danger{background:var(--danger-soft);color:var(--danger)}.pagination{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding-top:12px;font-size:12px}.copy-id{display:inline-flex;gap:6px;align-items:center;border:none;background:var(--surface-2);border-radius:6px;padding:2px 8px;cursor:pointer;color:var(--text);max-width:100%}.copy-id code{overflow:hidden;text-overflow:ellipsis}.store-state{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.activity{list-style:none;margin:0;padding:0;max-height:420px;overflow-y:auto}.activity li{display:grid;grid-template-columns:130px 1fr;gap:10px;padding:6px 0;border-bottom:1px solid var(--border);font-size:13px}.activity li:last-child{border-bottom:none}.activity time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.activity-actor{font-weight:560}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a1473;display:grid;place-items:center;padding:16px;z-index:50}.modal{background:var(--surface);border-radius:14px;padding:22px;width:min(460px,100%);display:flex;flex-direction:column;gap:14px;box-shadow:0 20px 60px #00000040;border:1px solid var(--border)}.modal h3{margin:0;font-size:17px}.modal-message{color:var(--muted);font-size:13px}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.toasts{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:60}.toast{padding:10px 14px;border-radius:8px;font-size:13px;font-weight:550;box-shadow:0 6px 24px #00000026;max-width:380px}.toast-ok{background:var(--text);color:var(--surface)}.toast-error{background:var(--danger);color:#fff}.login{min-height:100vh;display:grid;place-items:center;padding:16px}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:30px 28px;width:min(380px,100%);display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow)}.login-card p{margin:0;font-size:13px;text-align:center}@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:860px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px}.sidebar nav{flex-direction:row;flex-wrap:wrap}.sidebar-footer{margin:0 0 0 auto;flex-direction:row;align-items:center}.content{padding:18px 16px 40px}.grid-2{grid-template-columns:1fr}.field{grid-template-columns:120px 1fr}}
