:root{--bg: #f1f4f8;--bg-elevated: #ffffff;--surface: #ffffff;--surface-muted: #f7f9fc;--ink: #0f172a;--ink-soft: #334155;--muted: #64748b;--line: #e2e8f0;--line-strong: #cbd5e1;--brand: #0f766e;--brand-hover: #0d9488;--brand-ink: #ffffff;--brand-soft: #ccfbf1;--accent: #134e4a;--sidebar: #0b1220;--sidebar-elevated: #111827;--sidebar-text: #cbd5e1;--sidebar-active: #1e293b;--danger: #b91c1c;--danger-soft: #fee2e2;--ok: #047857;--ok-soft: #d1fae5;--warn: #b45309;--warn-soft: #ffedd5;--info: #1d4ed8;--info-soft: #dbeafe;--radius: 10px;--radius-sm: 8px;--shadow: 0 1px 2px rgba(15, 23, 42, .06), 0 8px 24px rgba(15, 23, 42, .04);--font: "Segoe UI", "IBM Plex Sans", system-ui, sans-serif;--mono: "Cascadia Mono", "Consolas", monospace;font-family:var(--font);color:var(--ink);background:var(--bg)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--bg);color:var(--ink)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}.app-branded{--brand: var(--tenant-brand, #0f766e);--brand-hover: var(--tenant-brand-hover, #0d9488);--accent: var(--tenant-accent, #134e4a);--brand-soft: color-mix(in srgb, var(--brand) 16%, white)}.login-page{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:#0b1220}.login-hero{padding:48px;color:#e2e8f0;display:flex;flex-direction:column;justify-content:space-between;background:radial-gradient(circle at top left,rgba(15,118,110,.35),transparent 45%),linear-gradient(160deg,#0b1220,#111827 55%,#0f172a)}.login-hero h1{margin:0;font-size:2.4rem;letter-spacing:-.03em;color:#fff}.login-hero p{margin:12px 0 0;max-width:28rem;color:#94a3b8;line-height:1.5}.login-panel{background:#fff;display:grid;place-items:center;padding:32px}.login-card{width:min(420px,100%);display:grid;gap:16px}.login-card h2{margin:0;font-size:1.6rem;letter-spacing:-.02em}.login-card .lede{margin:0;color:var(--muted)}.login-foot{margin-top:8px;color:var(--muted);font-size:.85rem}.shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.shell.platform{--sidebar: #0f172a}.sidebar{background:var(--sidebar);color:var(--sidebar-text);padding:18px 14px;display:flex;flex-direction:column;gap:4px;border-right:1px solid rgba(255,255,255,.04)}.sidebar-brand{display:flex;gap:12px;align-items:center;padding:8px 10px 18px}.sidebar-brand img{width:40px;height:40px;object-fit:contain;border-radius:8px;background:#ffffff0f}.sidebar-brand .mark{width:40px;height:40px;border-radius:8px;display:grid;place-items:center;background:var(--brand);color:#fff;font-weight:700}.sidebar-brand strong{display:block;color:#fff;font-size:.98rem;line-height:1.2}.sidebar-brand small{display:block;color:#94a3b8;margin-top:2px;font-size:.75rem}.nav-section{margin:14px 10px 6px;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:#64748b}.nav-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;color:var(--sidebar-text);font-size:.92rem}.nav-link.active,.nav-link:hover{background:var(--sidebar-active);color:#fff}.nav-link.disabled{opacity:.45;cursor:not-allowed}.nav-link .soon{margin-left:auto;font-size:.65rem;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8}.sidebar-foot{margin-top:auto;padding:12px 10px 4px;border-top:1px solid rgba(255,255,255,.06);font-size:.75rem;color:#64748b}.main{display:flex;flex-direction:column;min-width:0}.topbar{background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding:12px 24px;display:flex;justify-content:space-between;align-items:center;gap:12px;position:sticky;top:0;z-index:20}.topbar-context{display:flex;flex-direction:column;gap:2px;min-width:0}.topbar-context strong{font-size:.95rem}.topbar-context span{color:var(--muted);font-size:.8rem}.toolbar{display:flex;align-items:center;gap:10px}.user-chip{display:flex;align-items:center;gap:10px;padding:4px 8px 4px 4px;border:1px solid var(--line);border-radius:999px;background:var(--surface)}.avatar{width:32px;height:32px;border-radius:999px;display:grid;place-items:center;background:var(--brand-soft);color:var(--accent);font-size:.75rem;font-weight:700}.user-chip .meta{line-height:1.2}.user-chip .meta small{display:block;color:var(--muted);font-size:.72rem}.content{padding:24px}.banner-super{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:var(--radius);padding:6px 12px;margin-bottom:12px;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.8rem;line-height:1.3}.banner-super .btn{padding:4px 10px;font-size:.78rem}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px}.page-head h1{margin:0;font-size:1.55rem;letter-spacing:-.02em}.page-head p{margin:6px 0 0;color:var(--muted);max-width:40rem}.page-actions{display:flex;gap:8px;flex-wrap:wrap}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.card.quiet{box-shadow:none;background:var(--surface-muted)}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.stat{display:flex;flex-direction:column;gap:8px;min-height:110px}.stat strong{font-size:1.8rem;letter-spacing:-.03em}.stat span{color:var(--muted);font-size:.85rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;background:var(--brand);color:var(--brand-ink);padding:10px 14px;border-radius:8px;font-weight:600;font-size:.9rem}.btn:hover{background:var(--brand-hover)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.secondary,.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line-strong)}.btn.secondary:hover,.btn.ghost:hover{background:var(--surface-muted)}.btn.danger{background:var(--danger);color:#fff}.field{display:grid;gap:6px}.field label{font-size:.82rem;font-weight:600;color:var(--ink-soft)}.field .hint{font-size:.78rem;color:var(--muted)}.field input,.field select,.field textarea,input,select,textarea{width:100%;border:1px solid var(--line-strong);border-radius:8px;padding:10px 12px;background:#fff;color:var(--ink)}.field input:focus,.field select:focus,.field textarea:focus,input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--brand) 35%,white);border-color:var(--brand)}.field input:disabled,.field select:disabled{background:var(--surface-muted);color:var(--muted)}.form-section{border:1px solid var(--line);border-radius:var(--radius);padding:16px;background:var(--surface)}.form-section h3{margin:0 0 4px;font-size:.95rem}.form-section p{margin:0 0 14px;color:var(--muted);font-size:.85rem}.form-actions{display:flex;gap:8px;justify-content:flex-end;padding-top:8px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:middle;font-size:.9rem}th{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--surface-muted)}tr:hover td{background:#fafbfd}.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.filters input,.filters select{min-width:180px;max-width:280px}.badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;font-size:.72rem;font-weight:650;background:var(--surface-muted);color:var(--ink-soft)}.badge.active,.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.draft,.badge.info{background:var(--info-soft);color:var(--info)}.badge.suspended,.badge.warn,.badge.inactive{background:var(--warn-soft);color:var(--warn)}.badge.terminated,.badge.archived,.badge.danger{background:var(--danger-soft);color:var(--danger)}.empty-state{text-align:center;padding:48px 24px;display:grid;gap:10px;justify-items:center}.empty-state h3{margin:0}.empty-state p{margin:0;color:var(--muted);max-width:28rem}.error{background:var(--danger-soft);color:var(--danger);border:1px solid #fecaca;border-radius:8px;padding:10px 12px}.toast-stack{position:fixed;right:16px;bottom:16px;display:grid;gap:8px;z-index:50;width:min(360px,calc(100vw - 24px))}.toast{background:#0f172a;color:#fff;border-radius:10px;padding:12px 14px;box-shadow:var(--shadow);font-size:.9rem}.toast.success{background:#065f46}.toast.error{background:#991b1b}.skeleton{background:linear-gradient(90deg,#eef2f7,#f8fafc,#eef2f7);background-size:200% 100%;animation:shimmer 1.2s infinite linear;border-radius:8px;min-height:14px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.coming-soon-card{opacity:.72;border-style:dashed}.mobile-nav-toggle{display:none;border:1px solid var(--line-strong);background:#fff;border-radius:8px;padding:8px 10px}@media(max-width:1100px){.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.login-page{grid-template-columns:1fr}.login-hero{display:none}.shell{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:min(280px,86vw);transform:translate(-105%);transition:transform .2s ease;z-index:40}.sidebar.open{transform:translate(0)}.mobile-nav-toggle{display:inline-flex}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.content{padding:16px}.page-head{flex-direction:column}}.setup-list{list-style:none;margin:0;padding:0;color:var(--muted);line-height:1.7}.setup-list li{display:flex;align-items:center;gap:8px}.setup-list li.done{color:var(--text)}.setup-mark{width:1.1rem;text-align:center;font-weight:600;color:var(--accent)}.setup-list li:not(.done) .setup-mark{color:var(--muted)}.switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.switch input{position:absolute;opacity:0;width:1px;height:1px}.switch-track{width:40px;height:22px;border-radius:999px;background:#cbd5e1;position:relative;transition:background .15s ease;flex-shrink:0}.switch-track:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:999px;background:#fff;box-shadow:0 1px 2px #0f172a33;transition:transform .15s ease}.switch input:checked+.switch-track{background:var(--accent)}.switch input:checked+.switch-track:after{transform:translate(18px)}.switch input:focus-visible+.switch-track{outline:2px solid var(--accent);outline-offset:2px}.switch-label{color:var(--muted);font-size:.9rem}
