:root{--bg: #f4f6f8;--surface: #ffffff;--border: #e2e7ec;--border-soft: #eef1f4;--ink: #1b2735;--secondary: #55677d;--muted: #8494a7;--tint: #e6f2f9;--accent: #0c7fbf;--accent-ink: #095f8f;--good: #15803d;--good-tint: #e9f6ee;--warn: #b45309;--warn-tint: #fdf3e7;--serious: #b91c1c;--serious-tint: #fdecec;--thead: #fafbfc;--row-hover: #f6fafd;--shadow: 0 1px 2px rgba(16, 24, 40, .04)}html[data-theme=dark]{--bg: #10161d;--surface: #171f29;--border: #263140;--border-soft: #1f2937;--ink: #e8eef5;--secondary: #9fb0c2;--muted: #6d7f93;--tint: #123240;--accent: #3fb1d0;--accent-ink: #6cc7e0;--good: #3fbf77;--good-tint: #17301f;--warn: #d9a03f;--warn-tint: #33270f;--serious: #e06a6a;--serious-tint: #3a2226;--thead: #131b24;--row-hover: #1b2632;--shadow: none}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:Public Sans,-apple-system,Segoe UI,sans-serif;font-size:14px;line-height:1.45}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-ink);text-decoration:underline}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;color:var(--muted)}.portal{display:flex;min-height:100vh}.sidebar{display:flex;flex-direction:column;width:232px;flex-shrink:0;box-sizing:border-box;background:var(--surface);border-right:1px solid var(--border);padding:16px 12px;position:sticky;top:0;height:100vh}.sidebar .brand{display:flex;align-items:center;gap:10px;padding:4px 10px 16px;border-bottom:1px solid var(--border);color:inherit}.sidebar .brand:hover{text-decoration:none}.sidebar .brand b{font-size:14px}.sidebar .brand small{display:block;font-size:11px;color:var(--muted);font-weight:400}.sidebar nav{display:flex;flex-direction:column;gap:2px;padding-top:12px;flex-grow:1;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;color:var(--secondary);font-size:14px}.nav-item:hover{background:var(--bg);color:var(--ink);text-decoration:none}.nav-item.active{background:var(--tint);color:var(--accent);font-weight:600}.nav-item svg{flex-shrink:0}.nav-item .legacy-tag{margin-left:auto;font-size:9.5px;font-weight:700;letter-spacing:.06em;color:var(--muted);border:1px solid var(--border);border-radius:4px;padding:1px 4px}.sidebar footer{border-top:1px solid var(--border);padding:12px 10px 4px}.sidebar .operator-email{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis}.sidebar .role-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.main{display:flex;flex-direction:column;flex-grow:1;min-width:0}.topbar{display:flex;align-items:center;gap:14px;min-height:56px;padding:0 24px;box-sizing:border-box;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5}.topbar .crumbs{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:700}.topbar .crumbs a{font-size:14px;font-weight:500}.topbar .crumbs .sep{color:var(--muted);font-weight:400}.route-pill{font-family:ui-monospace,Menlo,monospace;font-size:11.5px;color:var(--muted);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:3px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}.refresh-pill{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--secondary);border:1px solid var(--border);border-radius:99px;padding:5px 12px;cursor:pointer;background:none;font-family:inherit}.refresh-pill .dot{width:8px;height:8px;border-radius:99px;background:var(--good)}.refresh-pill.paused .dot{background:var(--muted)}.refresh-pill.stale .dot{background:var(--warn)}.content{display:flex;flex-direction:column;gap:16px;padding:20px 24px 40px}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px 18px;box-shadow:var(--shadow)}.card-title{font-size:13.5px;font-weight:700}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.kpi .label{font-size:12px;font-weight:600;color:var(--secondary)}.kpi .value{font-size:27px;font-weight:700;margin-top:4px}.kpi .sub{font-size:12px;color:var(--muted);margin-top:2px}.chip{display:inline-block;font-size:11px;font-weight:600;border-radius:99px;padding:2px 9px;white-space:nowrap}.chip a,a .chip{text-decoration:none}.chip-good{color:var(--good);background:var(--good-tint)}.chip-warn{color:var(--warn);background:var(--warn-tint)}.chip-serious{color:var(--serious);background:var(--serious-tint)}.chip-accent{color:var(--accent);background:var(--tint)}.chip-neutral,.chip-tier-free{color:var(--secondary);background:var(--border-soft)}.chip-tier-basic{color:#0f766e;background:#e7f4f2}.chip-tier-premium{color:var(--accent);background:var(--tint)}.chip-tier-voyager{color:#6d28d9;background:#f1ecfc}html[data-theme=dark] .chip-tier-basic{color:#4cc0b3;background:#10312d}html[data-theme=dark] .chip-tier-voyager{color:#b79bf0;background:#2a2140}.btn{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px 14px;cursor:pointer;font-family:inherit}.btn:hover{border-color:var(--muted)}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{border-color:var(--accent);opacity:.92}.btn-danger{color:var(--serious);border-color:color-mix(in srgb,var(--serious) 35%,var(--surface))}.input,.select{font-family:inherit;font-size:13px;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px 12px;box-sizing:border-box}.input:focus,.select:focus{outline:none;border-color:var(--accent)}.input::placeholder{color:var(--muted)}.table-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:var(--shadow)}table.portal-table{width:100%;border-collapse:collapse}.portal-table th{padding:8px 12px;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;text-align:left;border-bottom:1px solid var(--border);background:var(--thead)}.portal-table td{padding:10px 12px;font-size:13px;border-bottom:1px solid var(--border-soft);vertical-align:middle}.portal-table tbody tr:last-child td{border-bottom:none}.portal-table tbody tr:hover{background:var(--row-hover)}.table-foot{display:flex;align-items:center;gap:12px;padding:10px 14px;border-top:1px solid var(--border);font-size:12.5px;color:var(--secondary)}.empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:26px 0 22px;color:var(--muted);font-size:13px;text-align:center}.krow{display:flex;align-items:baseline;gap:12px;padding:7px 0;border-bottom:1px solid var(--border-soft);font-size:13px}.krow:last-child{border-bottom:none}.krow .k{width:130px;flex-shrink:0;color:var(--muted);font-size:12px;font-weight:600}.gate-card{max-width:420px;margin:12vh auto;text-align:center}.status-bar{display:none;font-size:13px;border-radius:8px;padding:10px 14px}.status-bar[data-kind=error]{display:block;color:var(--serious);background:var(--serious-tint)}.status-bar[data-kind=info]{display:block;color:var(--secondary);background:var(--border-soft)}.status-bar[data-kind=success]{display:block;color:var(--good);background:var(--good-tint)}.spacer{flex-grow:1}:root,html[data-theme=dark]{--text-muted: var(--muted);--danger-color: var(--serious);--success-color: var(--good);--warning-color: var(--warn);--accent-color: var(--accent);--surface-border: var(--border);--bg-color: var(--bg);--font-heading: "Public Sans", -apple-system, sans-serif}.glass-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px 18px;box-shadow:var(--shadow);box-sizing:border-box}.admin-table{width:100%;border-collapse:collapse}.admin-table th{padding:8px 12px;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;text-align:left;border-bottom:1px solid var(--border);background:var(--thead)}.admin-table td{padding:10px 12px;font-size:13px;border-bottom:1px solid var(--border-soft);vertical-align:middle}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr:hover{background:var(--row-hover)}.admin-table .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;color:var(--muted)}.admin-mini{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:7px;padding:5px 11px;cursor:pointer;font-family:inherit;margin:0 2px 2px 0}.admin-mini:hover{border-color:var(--muted)}.admin-mini:disabled{opacity:.55;cursor:default}.admin-select,.admin-search{font-family:inherit;font-size:13px;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px 12px;box-sizing:border-box}.admin-search{min-width:280px;flex:0 1 340px}.admin-select:focus,.admin-search:focus{outline:none;border-color:var(--accent)}.admin-search::placeholder,.admin-select::placeholder{color:var(--muted)}.btn.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.admin-tabs{display:flex;gap:6px;margin-bottom:4px;flex-wrap:wrap}.admin-tab{font-family:inherit;font-size:13px;font-weight:600;color:var(--secondary);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:7px 14px;cursor:pointer}.admin-tab.active{background:var(--tint);color:var(--accent);border-color:transparent}.msg-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:6px 0}.msg-toolbar-group{display:flex;gap:3px}.msg-toolbar-group+.msg-toolbar-group{border-left:1px solid var(--border);padding-left:10px}.msg-toolbar .admin-mini.is-active{background:var(--tint);color:var(--accent);border-color:var(--accent)}.msg-editor{border:1px solid var(--border);border-radius:8px;background:var(--surface);min-height:260px;padding:12px 14px}.msg-editor .tiptap{outline:none;min-height:230px}.msg-source{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 14px;box-sizing:border-box}.msg-preview{background:#fff;color:#111827;border:1px solid var(--border);border-radius:8px;padding:16px 18px}.msg-preview a{color:#1d4ed8}
