:root{--fs-body:1;--fs-small:1;--fs-title:1;--brand:#e11d48;--brand-600:#be123c;--brand-soft:#e11d4817;--brand-ring:#e11d4847;--bg:#f6f7f9;--surface:#fff;--surface-2:#f9fafb;--ink:#0f172a;--ink-2:#334155;--muted:#64748b;--border:#e5e7eb;--border-strong:#d1d5db;--ok:#059669;--ok-soft:#0596691a;--danger:#dc2626;--danger-soft:#dc262614;--shadow-sm:0 1px 2px #0f172a0d;--shadow:0 1px 3px #0f172a0f,0 8px 24px -12px #0f172a1f;--shadow-lg:0 24px 60px -12px #0f172a59;--radius:10px;--radius-lg:14px;--sidebar-w:248px;--sidebar-w-collapsed:72px}:root[data-theme=dark]{--brand:#fb7185;--brand-600:#f43f5e;--brand-soft:#fb71851f;--brand-ring:#fb718559;--bg:#0b0e14;--surface:#131823;--surface-2:#171d2a;--ink:#f1f5f9;--ink-2:#cbd5e1;--muted:#8b97a9;--border:#232b3a;--border-strong:#324057;--ok:#34d399;--ok-soft:#34d3991f;--danger:#f87171;--danger-soft:#f871711f;--shadow-sm:0 1px 2px #0006;--shadow:0 1px 3px #0006,0 8px 24px -12px #0009;--shadow-lg:0 24px 60px -12px #000000b3}*{box-sizing:border-box}body,html{height:100%}body{-webkit-font-smoothing:antialiased;background:#f6f7f9;background:var(--bg);color:#0f172a;color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;font-size:calc(14px*var(--fs-body, 1));line-height:1.5;margin:0;transition:background .2s,color .2s}a{color:#e11d48;color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}:focus-visible{outline:2px solid #e11d48;outline:2px solid var(--brand);outline-offset:2px}.icon{flex-shrink:0;height:18px;width:18px}.btn{align-items:center;background:#fff;background:var(--surface);border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius);box-shadow:0 1px 2px #0f172a0d;box-shadow:var(--shadow-sm);color:#0f172a;color:var(--ink);cursor:pointer;display:inline-flex;font:inherit;font-size:13.5px;font-size:calc(13.5px*var(--fs-body, 1));font-weight:600;gap:8px;justify-content:center;padding:8px 14px;transition:background .15s,border-color .15s,transform .1s,box-shadow .15s}.btn:hover{background:#f9fafb;background:var(--surface-2);border-color:#d1d5db;border-color:var(--border-strong)}.btn:active{transform:translateY(1px)}.btn-primary{background:linear-gradient(180deg,#e11d48,#be123c);background:linear-gradient(180deg,var(--brand) 0,var(--brand-600) 100%);box-shadow:0 1px 2px #be123c59,inset 0 1px 0 #ffffff2e;color:#fff;color:var(--on-brand,#fff)}.btn-primary,.btn-primary:hover{border-color:#be123c;border-color:var(--brand-600)}.btn-primary:hover{background:#be123c;background:var(--brand-600)}.btn-danger{color:#dc2626;color:var(--danger)}.btn-danger:hover{background:#dc262614;background:var(--danger-soft)}.btn-danger-solid,.btn-danger:hover{border-color:#dc2626;border-color:var(--danger)}.btn-danger-solid{color:#fff}.btn-danger-solid,.btn-danger-solid:hover{background:#dc2626;background:var(--danger)}.btn-danger-solid:hover{filter:brightness(.92)}.btn-ghost{background:#0000;border-color:#0000;box-shadow:none}.btn-ghost:hover{background:#e11d4817;background:var(--brand-soft);border-color:#0000}.btn-sm{font-size:12.5px;font-size:calc(12.5px*var(--fs-small, 1));padding:5px 10px}.btn:disabled{cursor:not-allowed;opacity:.5;transform:none}.icon-btn{background:#0000;border:1px solid #0000;border-radius:8px;color:#64748b;color:var(--muted);cursor:pointer;display:inline-grid;height:34px;place-items:center;transition:background .15s,color .15s;width:34px}.icon-btn:hover{background:#e11d4817;background:var(--brand-soft);color:#e11d48;color:var(--brand)}.icon-btn.danger:hover{background:#dc262614;background:var(--danger-soft);color:#dc2626;color:var(--danger)}.app-shell{display:flex;min-height:100vh}.sidebar{background:#fff;background:var(--sidebar-bg,var(--surface));border-right:1px solid #e5e7eb;border-right:1px solid var(--sidebar-border,var(--border));color:#0f172a;color:var(--sidebar-ink,var(--ink));display:flex;flex-direction:column;flex-shrink:0;height:100vh;position:sticky;top:0;transition:width .2s ease;width:248px;width:var(--sidebar-w);z-index:30}.app-shell.collapsed .sidebar{width:72px;width:var(--sidebar-w-collapsed)}.brand{align-items:center;display:flex;font-size:17px;font-size:calc(17px*var(--fs-title, 1));font-weight:700;gap:12px;height:64px;letter-spacing:-.01em;overflow:hidden;padding:0 20px;white-space:nowrap}.brand-logo{object-fit:contain}.brand-logo,.brand-mark{border-radius:9px;flex-shrink:0;height:32px;width:32px}.brand-mark{background:linear-gradient(135deg,#fb7185,#be123c);background:linear-gradient(135deg,#fb7185,var(--brand-600));box-shadow:0 4px 12px -2px #e11d4847;box-shadow:0 4px 12px -2px var(--brand-ring);color:#fff;color:var(--on-brand,#fff);display:grid;place-items:center}.nav-label{color:#64748b;color:var(--sidebar-muted,var(--muted));font-size:11px;font-size:calc(11px*var(--fs-small, 1));font-weight:600;letter-spacing:.08em;padding:16px 24px 6px;text-transform:uppercase;white-space:nowrap}.sidebar nav{display:flex;flex:1 1;flex-direction:column;gap:2px;padding:4px 12px}.sidebar nav a{align-items:center;border-radius:9px;color:#334155;color:var(--sidebar-ink-2,var(--ink-2));display:flex;font-weight:500;gap:12px;overflow:hidden;padding:9px 12px;transition:background .15s,color .15s;white-space:nowrap}.sidebar nav a:hover{background:#f9fafb;background:var(--sidebar-hover,var(--surface-2));color:#0f172a;color:var(--sidebar-ink,var(--ink));text-decoration:none}.sidebar nav a.active{background:#e11d4817;background:var(--brand-soft);color:#e11d48;color:var(--brand);font-weight:600}.nav-group-btn{align-items:center;background:none;border:0;border-radius:9px;color:#334155;color:var(--sidebar-ink-2,var(--ink-2));cursor:pointer;display:flex;font:inherit;font-weight:500;gap:12px;padding:9px 12px;text-align:left;transition:background .15s,color .15s;white-space:nowrap;width:100%}.nav-group-btn:hover{background:#f9fafb;background:var(--sidebar-hover,var(--surface-2))}.nav-group-btn.has-active,.nav-group-btn:hover{color:#0f172a;color:var(--sidebar-ink,var(--ink))}.nav-group-btn.has-active{font-weight:600}.nav-caret{height:16px;margin-left:auto;transform:rotate(-90deg);transition:transform .15s;width:16px}.nav-group-btn .nav-badge+.nav-caret{margin-left:8px}.nav-caret.open{transform:rotate(-90deg) scaleX(-1)}.nav-sub{border-left:1px solid #e5e7eb;border-left:1px solid var(--sidebar-border,var(--border));display:flex;flex-direction:column;gap:2px;margin:2px 0 2px 14px;padding-left:8px}.app-shell.collapsed .nav-caret{display:none}.app-shell.collapsed .nav-sub{border-left:0;margin-left:0;padding-left:0}.app-shell.collapsed .brand-text,.app-shell.collapsed .nav-label,.app-shell.collapsed .nav-text,.app-shell.collapsed .sidebar-foot .meta{display:none}.sidebar-foot{align-items:center;border-top:1px solid #e5e7eb;border-top:1px solid var(--sidebar-border,var(--border));display:flex;gap:10px;overflow:hidden;padding:12px}.sidebar-foot .settings-link{color:#334155;color:var(--sidebar-ink-2,var(--ink-2));flex-shrink:0;margin-left:auto}.sidebar-foot .settings-link.active,.sidebar-foot .settings-link:hover{background:#f9fafb;background:var(--sidebar-hover,var(--surface-2));color:#0f172a;color:var(--sidebar-ink,var(--ink))}.app-shell.collapsed .sidebar-foot{flex-direction:column}.app-shell.collapsed .sidebar-foot .settings-link{margin-left:0}@media (max-width:760px){.app-shell.collapsed .sidebar-foot{flex-direction:row}.app-shell.collapsed .sidebar-foot .settings-link{margin-left:auto}}.sidebar-foot .meta{line-height:1.3;min-width:0}.sidebar-foot .meta strong{display:block;font-size:13px;font-size:calc(13px*var(--fs-body, 1));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-foot .meta span{color:#64748b;color:var(--sidebar-muted,var(--muted));font-size:12px;font-size:calc(12px*var(--fs-small, 1))}.avatar{background:#e11d48;background:var(--avatar-bg,var(--brand));border-radius:50%;color:#fff;color:var(--on-brand,#fff);display:grid;flex-shrink:0;font-size:12.5px;font-size:calc(12.5px*var(--fs-small, 1));font-weight:700;height:34px;place-items:center;width:34px}.avatar.sm{font-size:11.5px;font-size:calc(11.5px*var(--fs-small, 1));height:30px;width:30px}.main{display:flex;flex:1 1;flex-direction:column;min-width:0}.topbar{align-items:center;-webkit-backdrop-filter:saturate(160%) blur(12px);backdrop-filter:saturate(160%) blur(12px);background:color-mix(in srgb,#fff 82%,#0000);background:color-mix(in srgb,var(--surface) 82%,#0000);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);display:flex;gap:12px;height:64px;padding:0 24px;position:sticky;top:0;z-index:20}.topbar .crumbs{font-size:15px;font-size:calc(15px*var(--fs-body, 1));font-weight:600}.topbar .spacer{flex:1 1}.content{animation:fade-up .25s ease;margin:0 auto;max-width:1400px;padding:28px;width:100%}@keyframes fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.page-head{align-items:flex-end;display:flex;gap:16px;justify-content:space-between;margin-bottom:22px}.page-title{font-size:24px;font-size:calc(24px*var(--fs-title, 1));font-weight:700;letter-spacing:-.02em;margin:0}.page-sub{color:#64748b;color:var(--muted);margin:4px 0 0}.card{background:#fff;background:var(--surface);border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:14px;border-radius:var(--radius-lg);box-shadow:0 1px 3px #0f172a0f,0 8px 24px -12px #0f172a1f;box-shadow:var(--shadow);overflow:hidden}.card-head{align-items:center;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);display:flex;gap:12px;justify-content:space-between;padding:14px 20px}.card-head h2{font-size:15px;font-size:calc(15px*var(--fs-body, 1));font-weight:600;margin:0}.card-body{padding:20px}.stat-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:20px}.stat{align-items:center;background:#fff;background:var(--surface);border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:14px;border-radius:var(--radius-lg);box-shadow:0 1px 3px #0f172a0f,0 8px 24px -12px #0f172a1f;box-shadow:var(--shadow);display:flex;gap:14px;padding:18px 20px;transition:transform .15s,border-color .15s}.stat:hover{border-color:#d1d5db;border-color:var(--border-strong);transform:translateY(-2px)}.stat-icon{background:#e11d4817;background:var(--brand-soft);border-radius:12px;color:#e11d48;color:var(--brand);display:grid;height:44px;place-items:center;width:44px}.stat-icon.ok{background:#0596691a;background:var(--ok-soft);color:#059669;color:var(--ok)}.stat .label{color:#64748b;color:var(--muted);font-size:12.5px;font-size:calc(12.5px*var(--fs-small, 1));font-weight:500}.stat .value{font-size:22px;font-size:calc(22px*var(--fs-title, 1));font-weight:700;letter-spacing:-.02em;line-height:1.2}.hero{background:radial-gradient(600px 220px at 100% 0,#ffffff38,#0000 60%),linear-gradient(120deg,#be123c,#e11d48 55%,#fb7185 130%);border-radius:14px;border-radius:var(--radius-lg);box-shadow:0 16px 40px -18px #be123cb3;color:#fff;color:var(--on-brand,#fff);margin-bottom:20px;overflow:hidden;padding:28px;position:relative}.hero h2{font-size:22px;font-size:calc(22px*var(--fs-title, 1));letter-spacing:-.02em;margin:0 0 6px}.hero p{margin:0;max-width:560px;opacity:.88}.table-wrap{overflow-x:auto}table.grid{border-collapse:collapse;width:100%}table.grid td,table.grid th{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);padding:13px 20px;text-align:left;vertical-align:middle}table.grid th{background:#f9fafb;background:var(--surface-2);color:#64748b;color:var(--muted);font-size:11.5px;font-size:calc(11.5px*var(--fs-small, 1));font-weight:600;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}table.grid tr:last-child td{border-bottom:none}table.grid tbody tr{transition:background .12s}table.grid tbody tr:hover{background:#f9fafb;background:var(--surface-2)}.person{align-items:center;display:flex;gap:12px}.person .name{font-weight:600}.person .sub{color:#64748b;color:var(--muted);font-size:12.5px;font-size:calc(12.5px*var(--fs-small, 1))}.badge{align-items:center;background:#e11d4817;background:var(--brand-soft);border-radius:999px;color:#e11d48;color:var(--brand);display:inline-flex;font-size:11.5px;font-size:calc(11.5px*var(--fs-small, 1));font-weight:600;gap:5px;margin:2px 4px 2px 0;padding:2px 9px}.badge-plain{background:#f9fafb;background:var(--surface-2);border:1px solid #e5e7eb;border:1px solid var(--border);color:#334155;color:var(--ink-2)}.badge-ok{background:#0596691a;background:var(--ok-soft);color:#059669;color:var(--ok)}.skeleton{animation:shimmer 1.4s ease infinite;background:linear-gradient(90deg,#f9fafb 25%,#e5e7eb 37%,#f9fafb 63%);background:linear-gradient(90deg,var(--surface-2) 25%,var(--border) 37%,var(--surface-2) 63%);background-size:400% 100%;border-radius:6px;display:block;height:14px}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.empty{color:#64748b;color:var(--muted);padding:48px 20px;text-align:center}.empty .empty-icon{background:#e11d4817;background:var(--brand-soft);border-radius:14px;color:#e11d48;color:var(--brand);display:grid;height:52px;margin:0 auto 12px;place-items:center;width:52px}.empty strong{color:#0f172a;color:var(--ink);display:block;font-size:15px;font-size:calc(15px*var(--fs-body, 1));margin-bottom:2px}.pager{align-items:center;border-top:1px solid #e5e7eb;border-top:1px solid var(--border);display:flex;gap:10px;justify-content:space-between;padding:12px 20px}.field{margin-bottom:16px}.field label{color:#334155;color:var(--ink-2);display:block;font-size:13px;font-size:calc(13px*var(--fs-body, 1));font-weight:600;margin-bottom:6px}.field input[type=email],.field input[type=password],.field input[type=search],.field input[type=text],.search input{background:#fff;background:var(--surface);border:1px solid #d1d5db;border:1px solid var(--border-strong);border-radius:10px;border-radius:var(--radius);color:#0f172a;color:var(--ink);font:inherit;outline:none;padding:9px 12px;transition:border-color .15s,box-shadow .15s;width:100%}.field input:focus,.search input:focus{border-color:#e11d48;border-color:var(--brand);box-shadow:0 0 0 4px #e11d4847;box-shadow:0 0 0 4px var(--brand-ring)}.field .err{color:#dc2626;color:var(--danger);font-size:12px;font-size:calc(12px*var(--fs-small, 1));margin-top:4px}.search{max-width:100%;position:relative;width:280px}.search .icon{color:#64748b;color:var(--muted);height:16px;left:11px;position:absolute;top:50%;transform:translateY(-50%);width:16px}.search input{padding-left:34px}input[type=checkbox]{accent-color:#e11d48;accent-color:var(--brand);height:16px;width:16px}.modal-overlay{align-items:flex-start;animation:fade-in .15s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#080b148c;display:flex;inset:0;justify-content:center;padding:7vh 16px;position:fixed;z-index:50}.modal{animation:pop .18s ease;background:#fff;background:var(--surface);border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:14px;border-radius:var(--radius-lg);box-shadow:0 24px 60px -12px #0f172a59;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:84vh;max-width:480px;width:100%}.modal.wide{max-width:680px}.modal-head{align-items:center;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:16px 20px}.modal-head h3{font-size:16px;font-size:calc(16px*var(--fs-title, 1));font-weight:600;margin:0}.modal-body{overflow-y:auto;padding:20px}.modal-foot{align-items:center;background:#f9fafb;background:var(--surface-2);border-radius:0 0 14px 14px;border-radius:0 0 var(--radius-lg) var(--radius-lg);border-top:1px solid #e5e7eb;border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end;padding:14px 20px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.perm-group{border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius);margin-bottom:14px;overflow:hidden}.perm-group-title{align-items:center;background:#f9fafb;background:var(--surface-2);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);color:#334155;color:var(--ink-2);display:flex;font-size:12px;font-size:calc(12px*var(--fs-small, 1));font-weight:700;justify-content:space-between;letter-spacing:.06em;padding:10px 14px;text-transform:uppercase}.perm-group-title label{align-items:center;cursor:pointer;display:flex;font-size:12.5px;font-size:calc(12.5px*var(--fs-small, 1));font-weight:500;gap:6px;letter-spacing:0;text-transform:none}.perm-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.perm-item{align-items:center;cursor:pointer;display:flex;gap:10px;padding:9px 14px;transition:background .12s}.perm-item:hover{background:#e11d4817;background:var(--brand-soft)}.perm-item code{color:#334155;color:var(--ink-2);font-size:12.5px;font-size:calc(12.5px*var(--fs-small, 1))}.notice{border:1px solid #0000;border-radius:10px;border-radius:var(--radius);font-size:13.5px;font-size:calc(13.5px*var(--fs-body, 1));margin-bottom:16px;padding:11px 14px}.notice-error{background:#dc262614;background:var(--danger-soft);border-color:#dc2626;border-color:var(--danger);color:#dc2626;color:var(--danger)}.notice-ok{background:#0596691a;background:var(--ok-soft);border-color:#059669;border-color:var(--ok);color:#059669;color:var(--ok)}.muted{color:#64748b;color:var(--muted)}.row-actions{display:flex;gap:2px;justify-content:flex-end}.toolbar{align-items:center;display:flex;gap:10px}.spinner{color:#64748b;color:var(--muted);padding:40px;text-align:center}.auth{background:#f6f7f9;background:var(--bg);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);min-height:100vh}.auth-art{background:radial-gradient(700px 400px at 0 100%,#ffffff2e,#0000 60%),radial-gradient(500px 300px at 100% 0,#00000040,#0000 60%),linear-gradient(135deg,#9f1239,#e11d48 60%,#fb7185 130%);color:#fff;color:var(--on-brand,#fff);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;padding:48px;position:relative}.auth-art:after{background-image:radial-gradient(#ffffff2e 1px,#0000 0);background-size:22px 22px;content:"";inset:0;-webkit-mask-image:linear-gradient(180deg,#0000,#000 70%);mask-image:linear-gradient(180deg,#0000,#000 70%);pointer-events:none;position:absolute}.auth-art>*{position:relative;z-index:1}.auth-art h1{font-size:38px;font-size:calc(38px*var(--fs-title, 1));letter-spacing:-.03em;line-height:1.1;margin:0 0 12px;max-width:420px}.auth-art p{font-size:15px;font-size:calc(15px*var(--fs-body, 1));margin:0;max-width:400px;opacity:.85}.auth-form{display:grid;padding:32px 20px;place-items:center}.auth-box{max-width:380px;width:100%}.auth-box h2{font-size:24px;font-size:calc(24px*var(--fs-title, 1));letter-spacing:-.02em;margin:0 0 4px}@media (max-width:900px){.auth{grid-template-columns:1fr}.auth-art{display:none}}@media (max-width:760px){.sidebar{height:100vh;left:0;position:fixed;transform:translateX(-100%);transition:transform .2s}.app-shell.mobile-open .sidebar{box-shadow:0 24px 60px -12px #0f172a59;box-shadow:var(--shadow-lg);transform:none;width:248px;width:var(--sidebar-w)}.app-shell.collapsed .brand-text,.app-shell.collapsed .nav-label,.app-shell.collapsed .nav-text,.app-shell.collapsed .sidebar-foot .meta{display:revert}.content{padding:18px 16px}.page-head{align-items:stretch;flex-direction:column}.only-desktop{display:none}}@media (min-width:761px){.only-mobile{display:none}}.field input[type=date],.field input[type=datetime-local],.field input[type=number],.field select,.field textarea,.select-sm{background:#fff;background:var(--surface);border:1px solid #d1d5db;border:1px solid var(--border-strong);border-radius:10px;border-radius:var(--radius);color:#0f172a;color:var(--ink);font:inherit;outline:none;padding:9px 12px;width:100%}.field input:focus,.field select:focus,.field textarea:focus{border-color:#e11d48;border-color:var(--brand);box-shadow:0 0 0 4px #e11d4847;box-shadow:0 0 0 4px var(--brand-ring)}.select-sm{padding:7px 10px;width:auto}.check{align-items:center;cursor:pointer;display:inline-flex;font-weight:500;gap:8px}.card-head .toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:12px}a.name{color:#0f172a;color:var(--ink);font-weight:600;text-decoration:none}a.name:hover{color:#e11d48;color:var(--brand)}.details{grid-gap:16px 24px;display:grid;gap:16px 24px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin:0;padding:20px}.details dt{color:#64748b;color:var(--muted);font-size:12px;font-size:calc(12px*var(--fs-small, 1));margin-bottom:2px}.details dd{font-weight:500;margin:0}.details .wide{grid-column:1/-1;white-space:pre-wrap}.timeline{list-style:none;margin:0;padding:8px 20px 16px}.timeline li{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);padding:14px 0}.timeline li:last-child{border-bottom:0}.timeline-head{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.timeline p{margin:8px 0 4px;white-space:pre-wrap}.tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:12px}.tab{background:#fff;background:var(--surface);border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:999px;color:#334155;color:var(--ink-2);cursor:pointer;font:inherit;padding:7px 14px}.tab.active,.tab:hover{border-color:#e11d48;border-color:var(--brand)}.tab.active{background:#e11d48;background:var(--brand);color:#fff;color:var(--on-brand,#fff)}.badge-danger{background:#dc262614;background:var(--danger-soft);color:#dc2626;color:var(--danger)}.nav-badge{background:#e11d48;background:var(--brand);border-radius:999px;color:#fff;color:var(--on-brand,#fff);font-size:11px;font-size:calc(11px*var(--fs-small, 1));font-weight:700;margin-left:auto;padding:1px 7px}.collapsed .nav-badge{display:none}.field select[multiple]{height:auto}.wa-shell{grid-gap:16px;display:grid;gap:16px;grid-template-columns:340px 1fr;height:calc(100vh - 210px);min-height:460px}.wa-list{display:flex;flex-direction:column;overflow:hidden}.wa-list-head{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);padding:12px}.wa-list ul{flex:1 1;list-style:none;margin:0;overflow-y:auto;padding:0}.wa-item{background:none;border:0;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);color:#0f172a;color:var(--ink);cursor:pointer;display:block;font:inherit;padding:10px 14px;text-align:left;width:100%}.wa-item.active,.wa-item:hover{background:#f9fafb;background:var(--surface-2)}.wa-item-bottom,.wa-item-top{align-items:center;display:flex;gap:8px;justify-content:space-between}.wa-preview-line{color:#64748b;color:var(--muted);font-size:13px;font-size:calc(13px*var(--fs-body, 1));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wa-unread{background:#e11d48;background:var(--brand);border-radius:999px;color:#fff;color:var(--on-brand,#fff);font-size:11px;font-size:calc(11px*var(--fs-small, 1));font-weight:700;padding:1px 7px}.wa-pane{display:flex;flex-direction:column;overflow:hidden}.wa-pane-head{align-items:center;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:10px;padding:10px 16px}.wa-pane-head .spacer{flex:1 1}.wa-timer{font-size:12px;font-size:calc(12px*var(--fs-small, 1));font-weight:600}.wa-timer.ok{color:#059669;color:var(--ok)}.wa-timer.warn{color:#d97706}.wa-timer.bad{color:#dc2626;color:var(--danger)}.wa-messages{background:#f9fafb;background:var(--surface-2);display:flex;flex:1 1;flex-direction:column;gap:8px;overflow-y:auto;padding:16px}.wa-msg{background:#fff;background:var(--surface);border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:12px;max-width:75%;padding:8px 12px}.wa-msg.out{align-self:flex-end;background:#e11d4817;background:var(--brand-soft,var(--surface))}.wa-msg p{margin:0;white-space:pre-wrap;word-break:break-word}.wa-meta{color:#64748b;color:var(--muted);font-size:11px;font-size:calc(11px*var(--fs-small, 1));margin-top:4px;text-align:right}.wa-tick{letter-spacing:-2px;margin-left:2px}.wa-tick.read{color:#0ea5e9}.wa-tick.bad{color:#dc2626;color:var(--danger);font-weight:700}.wa-img{max-height:260px;max-width:100%}.wa-img,.wa-thumb{border-radius:8px;display:block}.wa-thumb{margin-bottom:8px;max-width:160px}.wa-composer{border-top:1px solid #e5e7eb;border-top:1px solid var(--border);padding:10px 12px}.wa-composer-row{align-items:flex-end;display:flex;gap:8px}.wa-composer textarea{background:#fff;background:var(--surface);border:1px solid #d1d5db;border:1px solid var(--border-strong);border-radius:10px;border-radius:var(--radius);color:#0f172a;color:var(--ink);flex:1 1;font:inherit;max-height:120px;padding:9px 12px;resize:none}.wa-file{align-items:center;display:flex;font-size:13px;font-size:calc(13px*var(--fs-body, 1));gap:6px;margin-bottom:6px}.wa-tpl-box{max-height:40vh;overflow-y:auto}.wa-preview{background:#f9fafb;background:var(--surface-2);border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius);margin-bottom:12px;padding:10px 12px}.wa-preview p{margin:4px 0;white-space:pre-wrap}.wa-picker{display:flex;flex-wrap:wrap;gap:6px 16px;max-height:120px;overflow-y:auto;padding:6px 0}.wa-option{border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius);margin-bottom:8px;padding:10px}.wa-option input[type=text]{background:#fff;background:var(--surface);border:1px solid #d1d5db;border:1px solid var(--border-strong);border-radius:10px;border-radius:var(--radius);color:#0f172a;color:var(--ink);flex:1 1;font:inherit;padding:7px 10px}.modal.wide{max-width:720px}@media (max-width:800px){.wa-shell{grid-template-columns:1fr;height:calc(100vh - 190px)}.wa-shell.has-open .wa-list,.wa-shell:not(.has-open) .wa-pane{display:none}}.multi{display:inline-block;position:relative}.multi-btn{align-items:center;background:#fff;background:var(--surface);border:1px solid #d1d5db;border:1px solid var(--border-strong);border-radius:10px;border-radius:var(--radius);color:#0f172a;color:var(--ink);cursor:pointer;display:inline-flex;font:inherit;gap:8px;justify-content:space-between;max-width:220px;min-width:150px;text-align:left}.multi-btn.has-value{border-color:#e11d48;border-color:var(--brand)}.multi-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multi-panel{background:#fff;background:var(--surface);border:1px solid #d1d5db;border:1px solid var(--border-strong);border-radius:10px;border-radius:var(--radius);box-shadow:0 24px 60px -12px #0f172a59;box-shadow:var(--shadow-lg);max-width:280px;overflow-y:auto;padding:4px;position:fixed;width:max-content;z-index:60}.multi-opt{align-items:center;border-radius:6px;cursor:pointer;display:flex;gap:8px;padding:6px 8px}.multi-opt:hover{background:#f9fafb;background:var(--surface-2)}.multi-clear{background:none;border:0;border-top:1px solid #e5e7eb;border-top:1px solid var(--border);color:#e11d48;color:var(--brand);cursor:pointer;display:block;font:inherit;margin-top:4px;padding:6px 8px;text-align:left;width:100%}.kv{grid-gap:12px 20px;display:grid;gap:12px 20px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin:0 0 16px}.kv dt{color:#334155;color:var(--ink-3,var(--ink-2));font-size:.85em;margin-bottom:2px}.kv dd{margin:0}.dash .hero-date{font-size:12.5px;font-size:calc(12.5px*var(--fs-small, 1));margin-bottom:6px;opacity:.8}.kpi-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin-bottom:20px}.kpi{background:#fff;background:var(--surface);border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:14px;border-radius:var(--radius-lg);box-shadow:0 1px 3px #0f172a0f,0 8px 24px -12px #0f172a1f;box-shadow:var(--shadow);color:inherit;display:flex;flex-direction:column;gap:2px;overflow:hidden;padding:16px 18px 14px;position:relative;text-decoration:none;transition:border-color .15s,box-shadow .15s}.kpi:hover{border-color:#d1d5db;border-color:var(--border-strong);box-shadow:0 24px 60px -12px #0f172a59;box-shadow:var(--shadow-lg)}.kpi:focus-visible{outline:2px solid #e11d48;outline:2px solid var(--brand);outline-offset:2px}.kpi-top{align-items:center;display:flex;gap:10px}.kpi-icon{background:#e11d4817;background:var(--brand-soft);border-radius:9px;color:#e11d48;color:var(--brand);display:grid;height:30px;place-items:center;width:30px}.kpi-icon.ok{background:#0596691a;background:var(--ok-soft);color:#059669;color:var(--ok)}.kpi-icon.warn{background:#dc262614;background:var(--danger-soft);color:#dc2626;color:var(--danger)}.kpi-label{color:#64748b;color:var(--muted);font-size:12.5px;font-size:calc(12.5px*var(--fs-small, 1));font-weight:500}.kpi-value{font-feature-settings:"tnum";font-size:34px;font-size:calc(34px*var(--fs-title, 1));font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.03em;line-height:1.15;margin-top:8px}.kpi-sub{color:#64748b;color:var(--muted);font-size:12.5px;font-size:calc(12.5px*var(--fs-small, 1))}.spark{display:block;height:36px;margin-top:10px;width:100%}.spark-line{fill:none;stroke:#e11d48;stroke:var(--brand);stroke-width:1.75;stroke-linejoin:round;stroke-linecap:round}.spark-area{fill:#e11d4817;fill:var(--brand-soft);stroke:none}.spark-dot{fill:#e11d48;fill:var(--brand);stroke:#fff;stroke:var(--surface);stroke-width:2}.dash-cols{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));margin-bottom:20px}.dash-note{color:#64748b;color:var(--muted)}.dash-link,.dash-note{font-size:12.5px;font-size:calc(12.5px*var(--fs-small, 1))}.dash-link{color:#e11d48;color:var(--brand);font-weight:600;text-decoration:none}.dash-link:hover{text-decoration:underline}.dash-empty{color:#64748b;color:var(--muted);margin:0;padding:28px 20px;text-align:center}.due-list,.team{list-style:none;margin:0;padding:4px 0}.due-row{align-items:center;color:inherit;display:flex;gap:12px;padding:10px 20px;text-decoration:none}.due-row:hover{background:#f9fafb;background:var(--surface-2)}.due-dot{border-radius:50%;flex:none;height:8px;width:8px}.due-main{display:flex;flex:1 1;flex-direction:column;min-width:0}.due-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.due-meta{overflow:hidden;text-overflow:ellipsis}.due-meta,.due-when{color:#64748b;color:var(--muted);font-size:12.5px;font-size:calc(12.5px*var(--fs-small, 1));white-space:nowrap}.due-when{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.due-when.late{color:#dc2626;color:var(--danger);font-weight:600}.pipe{display:flex;flex-direction:column;gap:12px}.pipe-row{grid-gap:12px;align-items:center;display:grid;gap:12px;grid-template-columns:110px 1fr 40px}.pipe-name{color:#334155;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pipe-track{background:#f9fafb;background:var(--surface-2);border-radius:4px;height:8px;overflow:hidden}.pipe-fill{border-radius:4px;display:block;height:100%;min-width:4px}.pipe-n{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;text-align:right}.bars{align-items:flex-end;display:flex;gap:10px;height:180px}.bar-col{display:flex;flex:1 1;flex-direction:column;height:100%;outline:none;position:relative}.bar-track{align-items:flex-end;display:flex;flex:1 1}.bar{background:#e11d48;background:var(--brand);border-radius:4px 4px 0 0;opacity:.35;transition:opacity .15s;width:100%}.bar-col:focus-visible .bar,.bar-col:hover .bar,.bar.today{opacity:1}.bar-day{color:#64748b;color:var(--muted);font-size:12px;font-size:calc(12px*var(--fs-small, 1));margin-top:8px;text-align:center}.bar-day.today{color:#0f172a;color:var(--ink);font-weight:600}.bar-tip{align-items:center;background:#0f172a;background:var(--ink);border-radius:8px;bottom:calc(100% - 20px);color:#fff;color:var(--surface);display:flex;flex-direction:column;font-size:12px;left:50%;padding:6px 10px;pointer-events:none;position:absolute;transform:translateX(-50%);white-space:nowrap;z-index:2}.team{counter-reset:none}.team li{grid-gap:12px;align-items:center;display:grid;gap:12px;grid-template-columns:28px 1fr auto 40px;padding:10px 20px}.avatar-sm{background:#e11d4817;background:var(--brand-soft);border-radius:50%;color:#e11d48;color:var(--brand);display:grid;font-size:12px;font-weight:700;height:28px;place-items:center;width:28px}.team-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-dur{color:#64748b;color:var(--muted);font-size:12.5px;font-size:calc(12.5px*var(--fs-small, 1))}.team-n{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;text-align:right}.access summary{align-items:center;cursor:pointer;display:flex;font-weight:600;justify-content:space-between;list-style:none;padding:14px 20px}.access summary::-webkit-details-marker{display:none}.access[open] summary{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border)}@media (max-width:520px){.dash-cols{grid-template-columns:1fr}.pipe-row{grid-template-columns:90px 1fr 32px}}.dash-wide{margin-bottom:20px}.hbars{display:flex;flex-direction:column;gap:12px}.hbar-row{grid-gap:12px;align-items:center;display:grid;gap:12px;grid-template-columns:minmax(80px,140px) 1fr auto}.hbar-name{color:#334155;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hbar-track{background:#f9fafb;background:var(--surface-2);border-radius:5px;height:10px;overflow:hidden}.hbar-fill{border-radius:5px;display:block;height:100%;min-width:3px}.hbar-val{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;text-align:right;white-space:nowrap}.bars.trend{gap:4px}.bar-track.pair{gap:2px}.bar-track.pair .bar{flex:1 1;opacity:.6}.bar.won{background:#059669;background:var(--ok);flex:1 1;opacity:1}.bars.trend .bar-day{font-size:11px;overflow:visible;white-space:nowrap}.legend{color:#64748b;color:var(--muted);display:flex;font-size:12.5px;font-size:calc(12.5px*var(--fs-small, 1));gap:16px;margin-top:12px}.legend i{border-radius:3px;display:inline-block;height:10px;margin-right:6px;width:10px}.seg{background:#f9fafb;background:var(--surface-2);border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:9px;display:inline-flex;padding:2px}.seg button{background:none;border:0;border-radius:7px;color:#64748b;color:var(--muted);cursor:pointer;font:inherit;font-size:12.5px;font-size:calc(12.5px*var(--fs-small, 1));padding:5px 12px}.seg button.on{background:#fff;background:var(--surface);box-shadow:0 1px 2px #0f172a0d;box-shadow:var(--shadow-sm);color:#0f172a;color:var(--ink);font-weight:600}.seg button:focus-visible{outline:2px solid #e11d48;outline:2px solid var(--brand);outline-offset:1px}@media (max-width:520px){.hbar-row{grid-template-columns:90px 1fr auto}}
/*# sourceMappingURL=main.623fcffc.css.map*/