:root{--page: #f5f6f8;--surface-1: #ffffff;--surface-2: #f2f4f7;--surface-3: #e9edf3;--ink: #0b1220;--ink-2: #1d2939;--muted: #475467;--border: #e4e7ec;--grid: #eef1f4;--baseline: #d0d5dd;--brand-red: #c8102e;--primary: #2563eb;--primary-hover: #1d4ed8;--primary-active:#1e40af;--primary-ink: #ffffff;--primary-fill: #2563eb;--primary-fill-hover: #1d4ed8;--primary-fill-active: #1e40af;--primary-soft: rgba(37, 99, 235, .08);--focus-ring: rgba(37, 99, 235, .35);--accent: var(--primary);--accent-ink: var(--primary-ink);--shell: #0d1f38;--shell-2: #0a1a2f;--shell-ink: #f3f7fc;--shell-muted:#b4c2d6;--shell-line: rgba(255, 255, 255, .09);--shell-hover:rgba(255, 255, 255, .07);--shell-active:rgba(59, 130, 246, .22);--status-good: #166534;--status-good-bg: rgba(22, 163, 74, .1);--status-warning: #92400e;--status-warning-bg:rgba(217, 119, 6, .12);--status-serious: #c2410c;--status-critical: #b42318;--status-critical-bg:rgba(217, 45, 32, .1);--status-info: #175cd3;--status-info-bg: rgba(37, 99, 235, .1);--series-blue: #2563eb;--series-aqua: #0d9488;--series-red: #dc2626;--code-bg: #0b1220;--code-ink: #dbe4f0;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .05);--shadow-md: 0 2px 6px rgba(16, 24, 40, .06), 0 1px 2px rgba(16, 24, 40, .05);--shadow-lg: 0 12px 28px rgba(16, 24, 40, .14);--r-sm: 6px;--r-md: 8px;--r-lg: 12px;color-scheme:light}@media (prefers-color-scheme: dark){:root{--page: #0a0d14;--surface-1: #11151d;--surface-2: #171c26;--surface-3: #1f2632;--ink: #f1f4f9;--ink-2: #cdd4e0;--muted: #a0aabb;--border: #242b38;--grid: #1c222d;--baseline: #303845;--primary: #3b82f6;--primary-hover: #60a5fa;--primary-active:#93c5fd;--primary-fill: #2563eb;--primary-fill-hover: #1d4ed8;--primary-fill-active: #1e40af;--primary-soft: rgba(59, 130, 246, .14);--focus-ring: rgba(59, 130, 246, .45);--shell: #0a1220;--shell-2: #070d18;--shell-ink: #eaf0f8;--shell-muted:#a3b3ca;--shell-line: rgba(255, 255, 255, .08);--shell-hover:rgba(255, 255, 255, .06);--shell-active:rgba(59, 130, 246, .28);--status-good: #4ade80;--status-good-bg: rgba(34, 197, 94, .14);--status-warning: #fbbf24;--status-warning-bg:rgba(245, 158, 11, .16);--status-serious: #fb923c;--status-critical: #f87171;--status-critical-bg:rgba(248, 113, 113, .14);--status-info: #60a5fa;--status-info-bg: rgba(59, 130, 246, .16);--series-blue: #3b82f6;--series-aqua: #2dd4bf;--series-red: #f87171;--code-bg: #0b1220;--code-ink: #dbe4f0;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 2px 8px rgba(0, 0, 0, .45);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .6);color-scheme:dark}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--page);color:var(--ink);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"cv11","ss01"}*{scrollbar-width:thin;scrollbar-color:var(--baseline) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--baseline);border-radius:8px;border:2px solid var(--page)}*::-webkit-scrollbar-thumb:hover{background:var(--muted)}h1{font-size:22px;line-height:1.3;margin:0;font-weight:650;letter-spacing:-.01em}h2{font-size:13px;margin:0 0 12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:650}h3{margin:0;font-size:16px;font-weight:620}a{color:var(--primary)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}button:focus:not(:focus-visible),a:focus:not(:focus-visible){outline:none}.mono{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13.5px}.muted{color:var(--muted)}.num{text-align:right;font-variant-numeric:tabular-nums}.ellipsis{display:inline-block;max-width:clamp(140px,22vw,320px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}.text-good{color:var(--status-good)}.text-warn{color:var(--status-warning)}.text-critical{color:var(--status-critical)}.layout{display:flex;min-height:100vh}.sidebar{width:236px;flex-shrink:0;background:var(--shell);color:var(--shell-ink);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;border-right:1px solid var(--shell-line)}.brand{display:flex;flex-direction:column;gap:10px;align-items:flex-start;padding:16px 16px 14px}.brand-mark{background:var(--primary);color:#fff;font-weight:800;border-radius:7px;padding:6px 9px;font-size:14px;letter-spacing:.02em;box-shadow:inset 0 0 0 1px #ffffff24}.brand-name{font-weight:680;font-size:15px;letter-spacing:-.01em}.brand-sub{font-size:12px;color:var(--shell-muted);margin-top:1px}.sidebar nav{flex:1;overflow-y:auto;padding:8px 10px}.nav-group{margin-bottom:16px}.nav-section{font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--shell-muted);padding:8px 8px 4px;font-weight:650}.nav-link{display:flex;align-items:center;gap:8px;color:var(--shell-ink);text-decoration:none;padding:7px 10px;border-radius:var(--r-sm);font-size:14.5px;font-weight:500;opacity:.92;transition:background .12s,opacity .12s}.nav-link:hover{background:var(--shell-hover);opacity:1}.nav-link.active{background:var(--shell-active);opacity:1;font-weight:600;box-shadow:inset 2px 0 0 var(--primary)}.nav-parent{display:flex;align-items:stretch;gap:2px}.nav-parent .nav-link{flex:1;min-width:0}.nav-toggle{background:none;border:none;cursor:pointer;color:var(--shell-muted);padding:0 8px;border-radius:var(--r-sm);display:inline-flex;align-items:center;transition:background .12s,color .12s}.nav-toggle:hover{background:var(--shell-hover);color:var(--shell-ink)}.nav-toggle svg{transition:transform .15s ease}.nav-toggle.open svg{transform:rotate(180deg)}.nav-sub{display:flex;flex-direction:column;gap:1px;margin:2px 0 6px}.nav-sublink{display:block;color:var(--shell-muted);text-decoration:none;padding:5px 10px 5px 24px;border-radius:var(--r-sm);font-size:14px;font-weight:500;position:relative;transition:background .12s,color .12s}.nav-sublink:before{content:"";position:absolute;left:13px;top:50%;width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.55;transform:translateY(-50%)}.nav-sublink:hover{color:var(--shell-ink);background:var(--shell-hover)}.nav-sublink.active{color:#fff;background:var(--shell-active);font-weight:600}.nav-sublink.active:before{background:var(--primary);opacity:1}.sidebar-foot{padding:12px 14px;border-top:1px solid var(--shell-line)}.user-name{font-weight:620;font-size:14px}.user-roles{font-size:12px;color:var(--shell-muted);margin-bottom:8px}.sidebar-foot .btn-ghost{color:var(--shell-ink);opacity:.75;padding-left:0}.sidebar-foot .btn-ghost:hover{opacity:1}.content{flex:1;min-width:0;padding:24px 32px;max-width:1440px;width:100%}.page-head{margin-bottom:20px;display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center}.page-head h1{margin-right:auto}.page-sub{color:var(--muted);margin:2px 0 0;width:100%;order:3;font-size:14px}.crumbs{margin-bottom:12px;font-size:13.5px;color:var(--muted)}.crumbs a{color:var(--muted);text-decoration:none;font-weight:500}.crumbs a:hover{color:var(--primary)}.row-actions{display:flex;flex-wrap:nowrap;gap:2px 4px;white-space:nowrap;justify-content:flex-end}.row-actions .btn-ghost{padding:4px 6px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:0;border-radius:var(--r-sm);background:transparent;color:var(--ink-2);cursor:pointer}.icon-btn:hover{background:var(--primary-soft);color:var(--primary)}.icon-btn-danger:hover{background:var(--status-critical-bg);color:var(--status-critical)}.badge-wrap{display:inline-flex;flex-wrap:wrap;gap:4px}.data-table .pin-right{position:sticky;right:0;width:1%;white-space:nowrap;background:var(--surface-1);box-shadow:-1px 0 0 var(--grid);padding-left:8px;padding-right:8px}.data-table th.pin-right,.data-table tbody tr:hover td.pin-right{background:var(--surface-2)}.cell-primary{font-weight:600;color:var(--ink)}.cell-secondary{font-size:13px;color:var(--muted)}.cell-primary,.cell-secondary{overflow-wrap:anywhere}.data-table .pin-right .row-actions{gap:0}.data-table tr.row-muted td{color:var(--muted)}.data-table tr.row-muted td .row-actions{color:var(--ink)}.api-docs .card{max-width:920px}.api-docs ul{margin:8px 0 0 18px;line-height:1.75}.api-code{background:var(--code-bg);color:var(--code-ink);padding:14px 16px;border-radius:var(--r-md);overflow-x:auto;font-size:13.5px;line-height:1.6;margin:10px 0;border:1px solid rgba(255,255,255,.06)}.api-code code{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre}.card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-md);padding:20px;margin-bottom:16px;box-shadow:var(--shadow-sm)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.card-head h2{margin:0}.add-link{display:inline-flex;align-items:center;gap:6px;font-weight:600;padding:4px 8px}.add-link svg{flex-shrink:0}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}@media (max-width: 1000px){.two-col{grid-template-columns:1fr}}.tile-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px}.stat-tile{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-md);padding:16px;box-shadow:var(--shadow-sm)}.stat-label{font-size:12.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.stat-value{font-size:28px;font-weight:680;margin-top:6px;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1}.stat-sub{font-size:12.5px;color:var(--muted);margin-top:4px}.table-scroll{overflow-x:auto;border-radius:var(--r-md)}.card:has(>table.data-table){overflow-x:auto}.data-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface-1);font-size:14px}.data-table thead th{position:sticky;top:0;z-index:1;text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:650;padding:10px 12px;background:var(--surface-2);border-bottom:1px solid var(--baseline);white-space:nowrap}.data-table th.num{text-align:right}.data-table td{padding:9px 12px;border-bottom:1px solid var(--grid);vertical-align:middle;color:var(--ink-2)}.data-table td .mono,.data-table td.mono{color:var(--ink)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr.clickable{cursor:pointer}.data-table tbody tr:hover td{background:var(--surface-2)}.data-table tfoot td{padding:10px 12px;border-top:2px solid var(--baseline);font-variant-numeric:tabular-nums;background:var(--surface-2)}.data-table td.num,.data-table th.num{font-variant-numeric:tabular-nums}.data-table td.sno,.data-table th.sno{width:1%;white-space:nowrap;color:var(--muted);text-align:right}.pager{display:flex;gap:12px;align-items:center;justify-content:flex-end;margin-top:14px;flex-wrap:wrap}.pager-info{font-size:13.5px;color:var(--muted);margin-right:auto;font-variant-numeric:tabular-nums}.pager-btns{display:flex;gap:6px}.badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:2px 9px 2px 8px;border-radius:999px;border:1px solid transparent;margin-right:4px;white-space:nowrap;line-height:1.5}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.badge-good{color:var(--status-good);background:var(--status-good-bg);border-color:color-mix(in srgb,var(--status-good) 24%,transparent)}.badge-warn{color:var(--status-warning);background:var(--status-warning-bg);border-color:color-mix(in srgb,var(--status-warning) 26%,transparent)}.badge-critical{color:var(--status-critical);background:var(--status-critical-bg);border-color:color-mix(in srgb,var(--status-critical) 24%,transparent)}.badge-info{color:var(--status-info);background:var(--status-info-bg);border-color:color-mix(in srgb,var(--status-info) 24%,transparent)}.badge-muted{color:var(--muted);background:var(--surface-2);border-color:var(--border)}.btn,.btn-primary,.btn-danger{font:inherit;font-size:15px;font-weight:500;line-height:1;border-radius:var(--r-sm);padding:0 18px;height:40px;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;border:1px solid var(--baseline);background:var(--surface-1);color:var(--ink);box-shadow:var(--shadow-sm);transition:background .12s,border-color .12s,box-shadow .12s;white-space:nowrap}.btn:hover{background:var(--surface-2);border-color:var(--muted)}.btn.active{background:var(--primary-fill);border-color:var(--primary-fill);color:var(--primary-ink)}.btn-primary{background:var(--primary-fill);border-color:var(--primary-fill);color:var(--primary-ink);font-weight:600}.btn-primary:hover{background:var(--primary-fill-hover);border-color:var(--primary-fill-hover)}.btn-primary:active{background:var(--primary-fill-active)}.btn-danger{color:var(--status-critical);border-color:color-mix(in srgb,var(--status-critical) 45%,var(--baseline));background:var(--surface-1)}.btn-danger:hover{background:var(--status-critical-bg);border-color:var(--status-critical)}.btn-ghost{font:inherit;font-size:14.5px;font-weight:550;background:none;border:none;color:var(--primary);cursor:pointer;padding:4px 6px;border-radius:var(--r-sm);transition:background .12s}.btn-ghost:hover{background:var(--primary-soft)}.btn-ghost:disabled,.btn:disabled,.btn-primary:disabled,.btn-danger:disabled{opacity:.45;cursor:default;box-shadow:none}.btn-primary:disabled:hover{background:var(--primary-fill);border-color:var(--primary-fill)}.btn:disabled:not(.btn-primary):hover{background:var(--surface-1);border-color:var(--baseline)}.btn-row{display:inline-flex;gap:6px}.filter-bar{display:flex;flex-wrap:wrap;gap:18px 24px;align-items:flex-end;margin-bottom:20px;padding:20px 24px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-sm)}.filter-bar>label{flex:1 1 220px;max-width:360px}.filter-bar>label>input:not([type=checkbox]),.filter-bar>label>select{width:100%}.filter-bar>button:first-of-type{margin-left:auto}.filter-bar>button{align-self:flex-end}.filter-bar label,.form label,.form-label{display:flex;flex-direction:column;gap:8px;font-size:14.5px;color:var(--ink-2);font-weight:500}input,select,textarea{font:inherit;font-size:15px;padding:0 12px;height:40px;border:1px solid var(--baseline);border-radius:var(--r-sm);background:var(--surface-1);color:var(--ink);min-width:0;transition:border-color .12s,box-shadow .12s}textarea{height:auto;padding:10px 12px;line-height:1.5;resize:vertical}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.7}input:hover,select:hover,textarea:hover{border-color:var(--muted)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--focus-ring)}select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:34px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23667085' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 12px center}label.checkbox{flex-direction:row;align-items:center;gap:8px;font-weight:500;color:var(--ink-2)}label.checkbox input{min-width:auto;height:auto}input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.form{display:flex;flex-direction:column;gap:16px;max-width:640px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-actions{display:flex;gap:10px;margin-top:8px}.btn-sm{height:32px;padding:0 12px;font-size:14px}.empty-state{text-align:center;padding:48px 24px}.empty-state h3{margin:0 0 6px;font-size:17px}.empty-state p{margin:0 auto;max-width:560px;color:var(--muted);line-height:1.55}.form-error{color:var(--status-critical);font-size:14px;font-weight:500}.form-ok{color:var(--status-good);font-size:14px;font-weight:500;margin-top:8px}.inline-form{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap;align-items:flex-end}.inline-form>input{flex:1 1 200px;max-width:360px}.role-picker{border:1px solid var(--border);border-radius:var(--r-md);padding:12px 14px;display:flex;flex-direction:column;gap:8px;background:var(--surface-2)}.role-picker legend{font-size:13px;font-weight:650;color:var(--ink-2);padding:0 4px}.state-msg{color:var(--muted);padding:28px 16px;font-size:14.5px;text-align:center}.state-msg.error{color:var(--status-critical)}.card>.state-msg,.table-scroll+.state-msg{text-align:left;padding:20px 4px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182880;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-start;justify-content:center;padding:7vh 16px;z-index:50}.modal:focus{outline:none}.modal{background:var(--surface-1);border-radius:var(--r-lg);width:640px;max-width:100%;max-height:84vh;overflow-y:auto;border:1px solid var(--border);box-shadow:var(--shadow-lg)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--surface-1);z-index:1}.modal-head h3{font-weight:640}.modal-body{padding:20px}.detail-grid{display:grid;grid-template-columns:168px 1fr;gap:10px 16px;margin:0 0 16px;font-size:14px}.detail-grid dt{color:var(--muted);font-size:13.5px}.detail-grid dd{margin:0;word-break:break-word;color:var(--ink)}.message-content{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 12px;white-space:pre-wrap}.config-block{display:block;white-space:pre-wrap;background:var(--code-bg);color:var(--code-ink);border-radius:var(--r-sm);padding:10px 12px;font-size:13px}.section-title{margin:20px 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:650}.key-reveal{border:1px solid color-mix(in srgb,var(--status-warning) 40%,transparent);background:var(--status-warning-bg);border-radius:var(--r-md);padding:12px 14px;margin-bottom:14px;word-break:break-all}.key-reveal p{margin:0 0 8px;font-size:13.5px}.key-reveal-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.key-reveal-row code{flex:1 1 320px;min-width:0;font-size:14px}.copy-btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface-1);color:var(--ink);font-size:13.5px;font-weight:600;cursor:pointer;white-space:nowrap}.copy-btn:hover{border-color:var(--primary);color:var(--primary)}.copy-btn.copied{border-color:var(--status-good);color:var(--status-good)}.tabs{display:flex;gap:2px;margin-bottom:18px;border-bottom:1px solid var(--border);flex-wrap:wrap}.tab{font:inherit;font-size:14px;font-weight:600;background:none;border:none;border-bottom:2px solid transparent;padding:9px 14px;cursor:pointer;color:var(--muted);margin-bottom:-1px;transition:color .12s,border-color .12s}.tab:hover{color:var(--ink)}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.report-head{display:flex;justify-content:flex-end;margin-bottom:12px}.export-btns{display:flex;gap:6px}.chart-wrap{position:relative}.chart-wrap svg{width:100%;height:auto;display:block}.gridline{stroke:var(--grid);stroke-width:1}.crosshair{stroke:var(--baseline);stroke-width:1;stroke-dasharray:3 3}.axis-label{fill:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.hover-dot{stroke:var(--surface-1);stroke-width:2}.chart-tooltip{position:absolute;top:8px;transform:translate(-50%);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-md);padding:8px 10px;font-size:13px;pointer-events:none;box-shadow:var(--shadow-lg);white-space:nowrap;z-index:5}.tooltip-title{font-weight:700;margin-bottom:4px}.tooltip-row{display:flex;align-items:center;gap:6px}.legend{display:flex;gap:16px;margin-top:10px;flex-wrap:wrap}.legend-item{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2)}.swatch{width:10px;height:10px;border-radius:3px;display:inline-block}.barlist{display:flex;flex-direction:column;gap:10px}.barlist-row{display:grid;grid-template-columns:128px 1fr 76px;align-items:center;gap:12px}.barlist-label{font-size:13.5px;color:var(--ink-2)}.barlist-track{background:var(--surface-3);border-radius:4px;height:16px;overflow:hidden}.barlist-fill{display:block;height:100%;border-radius:4px}.barlist-value{font-size:13.5px;text-align:right;font-variant-numeric:tabular-nums;color:var(--ink)}.meter{display:inline-block;width:100%;max-width:180px;height:8px;background:var(--surface-3);border-radius:5px;overflow:hidden;vertical-align:middle}.meter-fill{display:block;height:100%;border-radius:5px}.meter-cell{display:flex;align-items:center;gap:8px}.settings-row{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,520px);gap:12px 48px;padding:22px 0;border-top:1px solid var(--grid)}.settings-row:first-of-type{border-top:none;padding-top:6px}.settings-row:last-of-type{padding-bottom:6px}.settings-row-meta h3{margin:0 0 4px}.settings-row-meta p{margin:0;font-size:14px;color:var(--muted);line-height:1.5}.settings-row-fields{display:flex;flex-direction:column;align-items:flex-start;gap:16px}.settings-row-actions{display:flex;align-items:center;gap:12px}.settings-row-actions .form-ok{margin:0}.field{display:flex;flex-direction:column;gap:6px;width:100%}.field>label{font-size:14px;font-weight:600;color:var(--ink-2)}.field>input{width:100%}.field .field-hint{margin:0}.field-narrow{max-width:200px}.switch{display:inline-flex;align-items:center;gap:10px;font-weight:600;color:var(--ink-2);cursor:pointer}.switch input{position:absolute;opacity:0;width:0;height:0}.switch-track{position:relative;width:38px;height:22px;border-radius:11px;flex-shrink:0;background:var(--baseline);transition:background .15s}.switch-track:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform .15s}.switch input:checked+.switch-track{background:var(--primary)}.switch input:checked+.switch-track:after{transform:translate(16px)}.switch input:focus-visible+.switch-track{outline:2px solid var(--primary);outline-offset:2px}.switch input:disabled+.switch-track{opacity:.5}.switch input:disabled~span{cursor:not-allowed}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(360px,5fr) 7fr;background:var(--surface-1)}.login-aside{background:var(--shell);color:var(--shell-ink);border-top:4px solid var(--brand-red);padding:40px 48px;display:flex;flex-direction:column;gap:32px}.login-aside-body{margin-block:auto;max-width:440px}.login-aside h1{font-size:28px;line-height:1.2;letter-spacing:-.02em;margin:0;color:#fff}.login-aside p{margin:0}.login-aside .login-notice{font-size:13px;color:var(--shell-muted);border-top:1px solid var(--shell-line);padding-top:16px}.login-main{display:flex;flex-direction:column;align-items:center;padding:40px 24px 24px}.login-form{margin-block:auto;width:100%;max-width:380px;display:flex;flex-direction:column;gap:18px}.login-form h2{margin:0 0 6px;font-size:24px;letter-spacing:-.02em;color:var(--ink);text-transform:none}.login-lede{margin:0;font-size:15px;color:var(--muted)}.login-form label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600;color:var(--ink-2)}.login-form input{height:44px}.login-submit{height:44px;width:100%;margin-top:4px}.login-alert{border:1px solid color-mix(in srgb,var(--status-critical) 35%,transparent);background:var(--status-critical-bg);color:var(--status-critical);border-radius:var(--r-sm);padding:10px 12px;font-size:14px;font-weight:500}.login-help{margin:0;font-size:13.5px;color:var(--muted);text-align:center}.login-foot{font-size:13px;color:var(--muted);padding-top:24px;text-align:center}.login-logo-compact{display:none}.auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:24px;background:var(--page);border-top:4px solid var(--brand-red)}.auth-page .brand-logo{align-self:center;border:1px solid var(--border)}.auth-card{margin:0;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-lg);padding:32px;box-shadow:var(--shadow-sm)}.input-affix{position:relative;display:block}.input-affix input{width:100%;padding-right:64px}.affix-btn{position:absolute;right:6px;top:50%;transform:translateY(-50%);height:30px;padding:0 10px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--primary);font-size:13.5px;font-weight:600;cursor:pointer}.affix-btn:hover{background:var(--surface-2)}.field-hint{font-size:13px;font-weight:500;color:var(--muted)}.field-hint.warn{color:var(--status-warning)}@media (max-width: 860px){.login-page{grid-template-columns:1fr}.login-aside{display:none}.login-logo-compact{display:block;margin-bottom:8px}}.brand-logo{display:inline-flex;background:#fff;border-radius:6px;padding:4px 6px;line-height:0;align-self:flex-start}.brand-logo img{display:block;height:auto;width:100%}.brand-logo-sm{width:132px}.brand-logo-md{width:190px}.brand-logo-lg{width:230px;padding:6px 8px}.user-account{font-weight:680;font-size:14px;margin-bottom:2px}.user-account+.user-name{font-weight:500;font-size:13.5px;color:var(--shell-muted)}.upload-row{display:flex;justify-content:space-between;align-items:center;gap:10px}.file-btn{cursor:pointer}.sender-info{display:flex;flex-direction:column;gap:2px;padding:10px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);font-size:14px}.file-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;background:var(--status-info-bg);border:1px solid color-mix(in srgb,var(--status-info) 24%,transparent);border-radius:var(--r-sm);font-size:14px}.file-meta .btn-ghost{margin-left:auto}.sms-counter{font-size:13px;color:var(--muted);padding:6px 10px;border:1px solid var(--border);border-radius:var(--r-sm);align-self:flex-start;background:var(--surface-2);font-variant-numeric:tabular-nums}.sms-counter.over{color:var(--status-critical);border-color:var(--status-critical);background:var(--status-critical-bg)}@media (max-width: 860px){.sidebar{width:172px}.brand{padding:14px 12px 10px;gap:8px}.brand-sub,.user-roles{display:none}.sidebar nav{padding:6px 8px}.nav-link{padding:6px 8px;font-size:14px}.content{padding:20px 16px}.form-row,.settings-row{grid-template-columns:1fr}}@media (max-width: 1180px){.data-table th,.data-table td{padding-left:8px;padding-right:8px}.data-table th:first-child,.data-table td:first-child{padding-left:12px}}
