@import"https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700;800&display=swap";:root{--slate-25: #FBFCFD;--slate-50: #F6F8FA;--slate-100: #EFF1F4;--slate-150: #E7EAEF;--slate-200: #DEE2E8;--slate-300: #C5CBD4;--slate-400: #98A1AE;--slate-500: #6B7480;--slate-600: #4C5563;--slate-700: #374151;--slate-800: #212936;--slate-900: #131925;--slate-950: #0A0E16;--brand-50: #EEF1FF;--brand-100: #E0E6FF;--brand-200: #C6D0FF;--brand-300: #A1B0FF;--brand-400: #7589FB;--brand-500: #5468F0;--brand-600: #3D51E3;--brand-700: #2F40C4;--brand-800: #28369E;--brand-900: #25317D;--green-50: #ECFDF3;--green-100: #D2F4DF;--green-200: #A7E8C2;--green-500: #17A862;--green-600: #0E8C50;--green-700: #0A6E40;--amber-50: #FFFAEB;--amber-100: #FEEFC7;--amber-200: #FCE091;--amber-500: #F5A623;--amber-600: #DC8A04;--amber-700: #B25C09;--red-50: #FEF3F2;--red-100: #FEE4E2;--red-200: #FECDCA;--red-500: #F0473A;--red-600: #D92D20;--red-700: #B42318;--blue-50: #EFF8FF;--blue-100: #D7EBFF;--blue-200: #B2DAFF;--blue-500: #2E90FA;--blue-600: #1570EF;--blue-700: #175CD3;--purple-50: #F5F3FF;--purple-100: #ECE9FE;--purple-200: #DDD6FE;--purple-600: #6938EF;--purple-700: #5925DC;--bg-app: var(--slate-50);--bg-surface: #FFFFFF;--bg-subtle: var(--slate-50);--bg-muted: var(--slate-100);--bg-inverse: var(--slate-900);--bg-overlay: rgba(10, 14, 22, .45);--fg-primary: var(--slate-900);--fg-secondary: var(--slate-600);--fg-tertiary: var(--slate-500);--fg-disabled: var(--slate-400);--fg-inverse: #FFFFFF;--fg-brand: var(--brand-600);--fg-on-brand: #FFFFFF;--border-subtle: var(--slate-150);--border-default:var(--slate-200);--border-strong: var(--slate-300);--border-brand: var(--brand-400);--ring-focus: rgba(61, 81, 227, .35);--action-primary: var(--brand-600);--action-primary-hover: var(--brand-700);--action-primary-active: var(--brand-800);--action-primary-subtle: var(--brand-50);--status-success-bg: var(--green-50);--status-success-fg: var(--green-700);--status-success-dot: var(--green-600);--status-warning-bg: var(--amber-50);--status-warning-fg: var(--amber-700);--status-warning-dot: var(--amber-600);--status-danger-bg: var(--red-50);--status-danger-fg: var(--red-700);--status-danger-dot: var(--red-600);--status-info-bg: var(--blue-50);--status-info-fg: var(--blue-700);--status-info-dot: var(--blue-600);--status-special-bg: var(--purple-50);--status-special-fg: var(--purple-700);--status-special-dot: var(--purple-600);--status-neutral-bg: var(--slate-100);--status-neutral-fg: var(--slate-600);--status-neutral-dot: var(--slate-500);--font-sans: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-mono: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--text-xs: 12px;--text-sm: 13px;--text-base: 14px;--text-md: 15px;--text-lg: 16px;--text-xl: 18px;--text-2xl: 20px;--text-3xl: 24px;--text-4xl: 30px;--text-5xl: 38px;--leading-tight: 1.25;--leading-snug: 1.4;--leading-normal: 1.55;--tracking-tight: -.02em;--tracking-snug: -.01em;--tracking-normal: 0;--tracking-wide: .04em;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--space-0: 0;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--radius-xl: 12px;--radius-2xl: 16px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(16, 24, 40, .05);--shadow-sm: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .1);--shadow-md: 0 2px 4px -1px rgba(16, 24, 40, .06), 0 4px 8px -2px rgba(16, 24, 40, .1);--shadow-lg: 0 4px 6px -2px rgba(16, 24, 40, .05), 0 12px 16px -4px rgba(16, 24, 40, .12);--shadow-xl: 0 8px 8px -4px rgba(16, 24, 40, .04), 0 20px 24px -4px rgba(16, 24, 40, .14);--shadow-inset: inset 0 1px 2px rgba(16, 24, 40, .08);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.45, 0, .2, 1);--duration-fast: .12s;--duration-base: .18s;--duration-slow: .24s;--sidebar-width: 248px;--sidebar-collapsed: 64px;--topbar-height: 56px;--content-max: 1440px;--z-sidebar: 30;--z-topbar: 40;--z-drawer: 60;--z-modal: 70;--z-toast: 80;--z-tooltip: 90}.t-display{font-family:var(--font-sans);font-size:var(--text-5xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--fg-primary)}.t-page-title{font-family:var(--font-sans);font-size:var(--text-3xl);font-weight:var(--weight-semibold);line-height:var(--leading-tight);letter-spacing:var(--tracking-snug);color:var(--fg-primary)}.t-section-title{font-family:var(--font-sans);font-size:var(--text-xl);font-weight:var(--weight-semibold);line-height:var(--leading-snug);letter-spacing:var(--tracking-snug);color:var(--fg-primary)}.t-card-title{font-family:var(--font-sans);font-size:var(--text-lg);font-weight:var(--weight-semibold);line-height:var(--leading-snug);color:var(--fg-primary)}.t-body{font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--weight-regular);line-height:var(--leading-normal);color:var(--fg-secondary)}.t-body-sm{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-regular);line-height:var(--leading-snug);color:var(--fg-secondary)}.t-label{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:var(--leading-snug);color:var(--fg-primary)}.t-meta{font-family:var(--font-sans);font-size:var(--text-xs);font-weight:var(--weight-regular);line-height:var(--leading-snug);color:var(--fg-tertiary)}.t-overline{font-family:var(--font-sans);font-size:var(--text-xs);font-weight:var(--weight-semibold);line-height:var(--leading-snug);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--fg-tertiary)}.t-metric{font-family:var(--font-sans);font-size:var(--text-4xl);font-weight:var(--weight-semibold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--fg-primary);font-variant-numeric:tabular-nums}.t-mono{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--weight-medium);letter-spacing:var(--tracking-normal);font-variant-numeric:tabular-nums;color:var(--fg-secondary)}.tnum{font-variant-numeric:tabular-nums}[data-theme=dark]{--bg-app: var(--slate-950);--bg-surface: var(--slate-900);--bg-subtle: #10151F;--bg-muted: var(--slate-800);--bg-inverse: var(--slate-100);--bg-overlay: rgba(0, 0, 0, .6);--fg-primary: #F3F5F8;--fg-secondary: var(--slate-300);--fg-tertiary: var(--slate-400);--fg-disabled: var(--slate-600);--fg-inverse: var(--slate-900);--fg-brand: var(--brand-300);--border-subtle: rgba(255,255,255,.06);--border-default: rgba(255,255,255,.1);--border-strong: rgba(255,255,255,.16);--action-primary: var(--brand-500);--action-primary-hover: var(--brand-400);--action-primary-subtle:rgba(84, 104, 240, .16);--shadow-xs: 0 1px 2px rgba(0,0,0,.4);--shadow-sm: 0 1px 3px rgba(0,0,0,.5);--shadow-md: 0 4px 8px -2px rgba(0,0,0,.5);--shadow-lg: 0 12px 16px -4px rgba(0,0,0,.55);--shadow-xl: 0 20px 24px -4px rgba(0,0,0,.6);--status-success-bg: rgba(23,168,98,.16);--status-success-fg: #6EE7A8;--status-warning-bg: rgba(245,166,35,.16);--status-warning-fg: #FBCB5E;--status-danger-bg: rgba(240,71,58,.16);--status-danger-fg: #FCA29A;--status-info-bg: rgba(46,144,250,.16);--status-info-fg: #93C5FD;--status-special-bg: rgba(105,56,239,.18);--status-special-fg: #C4B5FD;--status-neutral-bg: rgba(255,255,255,.08);--status-neutral-fg: var(--slate-300)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--weight-medium);line-height:1;height:36px;padding:0 14px;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out);-webkit-user-select:none;user-select:none}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring-focus)}.btn .icon{width:16px;height:16px;flex:none}.btn-sm{height:30px;padding:0 10px;font-size:var(--text-sm);border-radius:var(--radius-sm)}.btn-lg{height:42px;padding:0 18px;font-size:var(--text-md)}.btn-icon{width:36px;padding:0}.btn-icon.btn-sm{width:30px}.btn-primary{background:var(--action-primary);color:var(--fg-on-brand);box-shadow:var(--shadow-xs)}.btn-primary:hover{background:var(--action-primary-hover)}.btn-primary:active{background:var(--action-primary-active)}.btn-secondary{background:var(--bg-surface);color:var(--fg-primary);border-color:var(--border-default);box-shadow:var(--shadow-xs)}.btn-secondary:hover{background:var(--bg-subtle);border-color:var(--border-strong)}.btn-secondary:active{background:var(--bg-muted)}.btn-ghost{background:transparent;color:var(--fg-secondary)}.btn-ghost:hover{background:var(--bg-muted);color:var(--fg-primary)}.btn-ghost:active{background:var(--slate-150)}.btn-danger{background:var(--red-600);color:#fff;box-shadow:var(--shadow-xs)}.btn-danger:hover{background:var(--red-700)}.btn:disabled,.btn[aria-disabled=true]{cursor:not-allowed;opacity:1;background:var(--bg-muted);color:var(--fg-disabled);border-color:transparent;box-shadow:none}.badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-sans);font-size:var(--text-xs);font-weight:var(--weight-medium);line-height:1;height:22px;padding:0 8px;border-radius:var(--radius-sm);white-space:nowrap}.badge .dot{width:6px;height:6px;border-radius:var(--radius-full);flex:none}.badge-success{background:var(--status-success-bg);color:var(--status-success-fg)}.badge-success .dot{background:var(--status-success-dot)}.badge-warning{background:var(--status-warning-bg);color:var(--status-warning-fg)}.badge-warning .dot{background:var(--status-warning-dot)}.badge-danger{background:var(--status-danger-bg);color:var(--status-danger-fg)}.badge-danger .dot{background:var(--status-danger-dot)}.badge-info{background:var(--status-info-bg);color:var(--status-info-fg)}.badge-info .dot{background:var(--status-info-dot)}.badge-special{background:var(--status-special-bg);color:var(--status-special-fg)}.badge-special .dot{background:var(--status-special-dot)}.badge-neutral{background:var(--status-neutral-bg);color:var(--status-neutral-fg)}.badge-neutral .dot{background:var(--status-neutral-dot)}.pill-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;font-family:var(--font-sans);font-size:11px;font-weight:var(--weight-semibold);border-radius:var(--radius-full);background:var(--slate-150);color:var(--fg-secondary);font-variant-numeric:tabular-nums}.pill-count.is-active{background:var(--brand-600);color:#fff}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--fg-primary)}.field-hint{font-size:var(--text-xs);color:var(--fg-tertiary)}.field-error{font-size:var(--text-xs);color:var(--red-700)}.input{font-family:var(--font-sans);font-size:var(--text-base);color:var(--fg-primary);height:36px;padding:0 12px;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out);width:100%}.input::placeholder{color:var(--fg-tertiary)}.input:hover{border-color:var(--border-strong)}.input:focus{outline:none;border-color:var(--border-brand);box-shadow:0 0 0 3px var(--ring-focus)}.input:disabled{background:var(--bg-muted);color:var(--fg-disabled);cursor:not-allowed}.input.has-error{border-color:var(--red-500)}.input.has-error:focus{box-shadow:0 0 0 3px #f0473a40}textarea.input{height:auto;padding:10px 12px;line-height:var(--leading-normal);resize:vertical}.input-group{position:relative;display:flex;align-items:center}.input-group .input{padding-left:36px}.input-group .input-icon{position:absolute;left:11px;width:16px;height:16px;color:var(--fg-tertiary);pointer-events:none}.search{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 12px;background:var(--bg-subtle);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--fg-tertiary);font-size:var(--text-sm);min-width:240px;transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.search:focus-within{background:var(--bg-surface);border-color:var(--border-brand);box-shadow:0 0 0 3px var(--ring-focus)}.search input{border:none;background:none;outline:none;flex:1;font-size:var(--text-sm);color:var(--fg-primary);font-family:var(--font-sans)}.search .kbd{font-family:var(--font-mono);font-size:11px;color:var(--fg-tertiary);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xs);padding:1px 5px}.checkbox{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:var(--radius-xs);border:1.5px solid var(--border-strong);background:var(--bg-surface);cursor:pointer;display:inline-grid;place-content:center;transition:all var(--duration-fast) var(--ease-out)}.checkbox:checked{background:var(--brand-600);border-color:var(--brand-600)}.checkbox:checked:after{content:"";width:9px;height:9px;background:#fff;clip-path:polygon(14% 47%,0 60%,38% 96%,100% 21%,86% 9%,38% 70%)}.checkbox:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring-focus)}.toggle{position:relative;width:36px;height:20px;border-radius:var(--radius-full);background:var(--slate-300);cursor:pointer;transition:background var(--duration-base) var(--ease-out);border:none;flex:none}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:var(--radius-full);background:#fff;box-shadow:var(--shadow-sm);transition:transform var(--duration-base) var(--ease-out)}.toggle.is-on{background:var(--brand-600)}.toggle.is-on:after{transform:translate(16px)}.card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-xs)}.card-pad{padding:var(--space-5)}.card-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle)}.metric-tile{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:var(--shadow-xs)}.metric-tile .label{font-size:var(--text-sm);color:var(--fg-tertiary);font-weight:var(--weight-medium);display:flex;align-items:center;gap:6px}.metric-tile .value{font-size:var(--text-4xl);font-weight:var(--weight-semibold);color:var(--fg-primary);letter-spacing:var(--tracking-tight);font-variant-numeric:tabular-nums;margin-top:10px}.metric-tile .delta{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-xs);font-weight:var(--weight-medium);margin-top:8px}.delta-up{color:var(--green-700)}.delta-down{color:var(--red-700)}.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--text-sm)}.tbl thead th{text-align:left;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--fg-tertiary);text-transform:uppercase;letter-spacing:var(--tracking-wide);padding:10px 16px;background:var(--bg-subtle);border-bottom:1px solid var(--border-default);white-space:nowrap;position:sticky;top:0}.tbl tbody td{padding:13px 16px;border-bottom:1px solid var(--border-subtle);color:var(--fg-secondary);vertical-align:middle}.tbl tbody tr{transition:background var(--duration-fast) var(--ease-out)}.tbl tbody tr:hover{background:var(--bg-subtle)}.tbl tbody tr.is-selected{background:var(--brand-50)}.tbl .cell-strong{color:var(--fg-primary);font-weight:var(--weight-medium)}.tbl .cell-mono{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--fg-secondary);font-variant-numeric:tabular-nums}.tbl .cell-num{font-variant-numeric:tabular-nums;text-align:right}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background:var(--brand-100);color:var(--brand-700);font-weight:var(--weight-semibold);font-size:var(--text-xs);width:28px;height:28px;flex:none;overflow:hidden}.avatar-sm{width:22px;height:22px;font-size:10px}.avatar-lg{width:40px;height:40px;font-size:var(--text-base)}.user-chip{display:inline-flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border-radius:var(--radius-full);background:var(--bg-subtle);border:1px solid var(--border-default);font-size:var(--text-sm);color:var(--fg-primary);font-weight:var(--weight-medium)}.alert{display:flex;gap:12px;padding:12px 14px;border-radius:var(--radius-lg);border:1px solid;font-size:var(--text-sm)}.alert .icon{width:18px;height:18px;flex:none;margin-top:1px}.alert-title{font-weight:var(--weight-semibold);color:var(--fg-primary)}.alert-info{background:var(--blue-50);border-color:var(--blue-200)}.alert-info .icon{color:var(--blue-600)}.alert-success{background:var(--green-50);border-color:var(--green-200)}.alert-success .icon{color:var(--green-600)}.alert-warning{background:var(--amber-50);border-color:var(--amber-200)}.alert-warning .icon{color:var(--amber-600)}.alert-danger{background:var(--red-50);border-color:var(--red-200)}.alert-danger .icon{color:var(--red-600)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border-default)}.tab{padding:10px 12px;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--fg-tertiary);border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;transition:color var(--duration-fast) var(--ease-out);background:none;border-top:none;border-left:none;border-right:none}.tab:hover{color:var(--fg-primary)}.tab.is-active{color:var(--fg-brand);border-bottom-color:var(--brand-600)}.segmented{display:inline-flex;padding:3px;gap:2px;background:var(--bg-muted);border-radius:var(--radius-md)}.segmented button{border:none;background:none;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--fg-tertiary);padding:5px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.segmented button.is-active{background:var(--bg-surface);color:var(--fg-primary);box-shadow:var(--shadow-xs)}.tooltip{background:var(--bg-inverse);color:var(--fg-inverse);font-size:var(--text-xs);font-weight:var(--weight-medium);padding:6px 9px;border-radius:var(--radius-sm);box-shadow:var(--shadow-md)}.divider{height:1px;background:var(--border-subtle);border:none;margin:0}*{box-sizing:border-box}html,body{margin:0;height:100%}body{font-family:var(--font-sans);background:var(--bg-app);color:var(--fg-primary);-webkit-font-smoothing:antialiased}#root{height:100vh}.app{display:grid;grid-template-columns:var(--sidebar-width) 1fr;height:100vh;overflow:hidden}.sidebar{background:var(--bg-surface);border-right:1px solid var(--border-default);display:flex;flex-direction:column;height:100vh}.sb-brand{display:flex;align-items:center;gap:10px;padding:16px 18px;height:var(--topbar-height);border-bottom:1px solid var(--border-subtle)}.sb-logo{width:28px;height:28px;border-radius:8px;background:var(--brand-600);display:flex;align-items:center;justify-content:center;color:#fff;flex:none;box-shadow:var(--shadow-xs)}.sb-logo svg{width:17px;height:17px}.sb-name{font-weight:700;font-size:15px;letter-spacing:-.01em}.sb-name span{color:var(--fg-tertiary);font-weight:500}.sb-scroll{flex:1;overflow-y:auto;padding:12px 10px}.sb-group{margin-bottom:16px}.sb-group .gl{font-size:11px;font-weight:600;color:var(--fg-tertiary);text-transform:uppercase;letter-spacing:.04em;padding:6px 10px}.nav-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--radius-md);font-size:13.5px;font-weight:500;color:var(--fg-secondary);cursor:pointer;margin-bottom:1px;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out);border:none;background:none;width:100%;text-align:left;font-family:inherit}.nav-item svg{width:17px;height:17px;flex:none;color:var(--fg-tertiary)}.nav-item:hover{background:var(--bg-muted);color:var(--fg-primary)}.nav-item:hover svg{color:var(--fg-secondary)}.nav-item.is-active{background:var(--brand-50);color:var(--brand-700)}.nav-item.is-active svg{color:var(--brand-600)}.nav-item .count{margin-left:auto}.sb-foot{border-top:1px solid var(--border-subtle);padding:10px}.main{display:flex;flex-direction:column;height:100vh;overflow:hidden}.topbar{height:var(--topbar-height);flex:none;background:#ffffffd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border-default);display:flex;align-items:center;gap:14px;padding:0 22px}.topbar .crumbs{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--fg-tertiary)}.topbar .crumbs .cur{color:var(--fg-primary);font-weight:600}.topbar .spacer{flex:1}.icon-btn{width:34px;height:34px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--fg-tertiary);cursor:pointer;position:relative;transition:background var(--duration-fast) var(--ease-out)}.icon-btn:hover{background:var(--bg-muted);color:var(--fg-secondary)}.icon-btn svg{width:18px;height:18px}.icon-btn .ndot{position:absolute;top:7px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--red-500);border:1.5px solid #fff}.content{flex:1;overflow-y:auto}.page{max-width:var(--content-max);margin:0 auto;padding:24px 28px 60px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:22px;gap:16px}.page-head .sub{color:var(--fg-tertiary);font-size:14px;margin-top:4px}.page-actions{display:flex;gap:10px;align-items:center}.flex{display:flex}.between{display:flex;align-items:center;justify-content:space-between}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.muted{color:var(--fg-tertiary)}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.tbl-toolbar{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border-subtle);background:var(--bg-surface);flex-wrap:wrap}.tbl-foot{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--border-subtle);font-size:13px;color:var(--fg-tertiary)}.chip-filter{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 11px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-surface);font-size:13px;font-weight:500;color:var(--fg-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.chip-filter svg{width:15px;height:15px;color:var(--fg-tertiary)}.chip-filter:hover{border-color:var(--border-strong);background:var(--bg-subtle)}.chip-filter.is-active{border-color:var(--brand-300);background:var(--brand-50);color:var(--brand-700)}.chip-filter.is-active svg{color:var(--brand-600)}.pager{display:flex;gap:4px}.pager button{width:30px;height:30px;border:1px solid var(--border-default);background:var(--bg-surface);border-radius:var(--radius-sm);font-size:13px;color:var(--fg-secondary);cursor:pointer;font-family:inherit}.pager button:hover{background:var(--bg-subtle)}.pager button.is-active{background:var(--brand-600);color:#fff;border-color:var(--brand-600)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-overlay);z-index:var(--z-drawer);animation:fade var(--duration-base) var(--ease-out)}@keyframes fade{0%{opacity:0}}.drawer{position:fixed;top:0;right:0;bottom:0;width:720px;max-width:92vw;background:var(--bg-app);z-index:var(--z-drawer);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;animation:slidein var(--duration-slow) var(--ease-out)}@keyframes slidein{0%{transform:translate(28px);opacity:.4}}.drawer-head{background:var(--bg-surface);border-bottom:1px solid var(--border-default);padding:16px 22px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex:none}.drawer-body{flex:1;overflow-y:auto;padding:22px}.toast-wrap{position:fixed;bottom:20px;right:20px;z-index:var(--z-toast);display:flex;flex-direction:column;gap:10px}.toast{display:flex;align-items:center;gap:11px;background:var(--slate-900);color:#fff;padding:12px 14px;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);font-size:13.5px;min-width:280px;animation:slidein var(--duration-base) var(--ease-out)}.toast svg{width:18px;height:18px;flex:none}
