@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--palette-brand-50:#f0f6ff;--palette-brand-100:#dce9f9;--palette-brand-200:#b8d4f4;--palette-brand-300:#85b5ec;--palette-brand-400:#5193e0;--palette-brand-500:#3079d4;--palette-brand-600:#206bc4;--palette-brand-700:#1b5ba6;--palette-brand-800:#174d8c;--palette-brand-900:#133b6e;--palette-neutral-50:#f6f8fb;--palette-neutral-100:#f1f5f9;--palette-neutral-200:#e6e7e9;--palette-neutral-300:#c8cdd3;--palette-neutral-400:#9ba0a7;--palette-neutral-500:#626976;--palette-neutral-600:#49505e;--palette-neutral-700:#313643;--palette-neutral-800:#1d2330;--palette-neutral-900:#182433;--palette-success-100:#d1f3d8;--palette-success-600:#2fb344;--palette-success-700:#28a03d;--palette-error-100:#fce8e8;--palette-error-600:#d63939;--palette-error-700:#c63333;--palette-warning-100:#fef5e0;--palette-warning-600:#f59f00;--palette-warning-700:#d68e00;--palette-info-100:var(--palette-brand-100);--palette-info-600:var(--palette-brand-600);--color-bg:#f4f6fa;--color-surface:#fff;--color-surface-raised:var(--palette-neutral-50);--color-border:var(--palette-neutral-200);--color-border-strong:var(--palette-neutral-300);--color-text-primary:var(--palette-neutral-800);--color-text-secondary:var(--palette-neutral-500);--color-text-muted:var(--palette-neutral-400);--color-text-inverse:#fff;--color-accent:var(--palette-brand-600);--color-accent-hover:var(--palette-brand-700);--color-accent-subtle:var(--palette-brand-50);--color-accent-light:var(--palette-brand-100);--color-sidebar-bg:var(--palette-neutral-900);--color-sidebar-border:#ffffff12;--color-sidebar-text:var(--palette-neutral-400);--color-sidebar-text-hover:var(--palette-neutral-200);--color-sidebar-text-active:#fff;--color-sidebar-label:var(--palette-neutral-600);--color-sidebar-item-hover:#ffffff0f;--color-sidebar-item-active:#2563eb40;--color-sidebar-logo-accent:var(--palette-brand-400);--color-auth-hero-from:var(--palette-brand-700);--color-auth-hero-to:var(--palette-brand-900);--color-auth-hero-text:#fff;--color-auth-hero-muted:#ffffff94;--color-auth-hero-accent:var(--palette-brand-300);--color-auth-hero-item-bg:#ffffff1a;--color-status-error-bg:var(--palette-error-100);--color-status-error-text:var(--palette-error-600);--color-status-success-bg:var(--palette-success-100);--color-status-success-text:var(--palette-success-600);--color-status-warning-bg:var(--palette-warning-100);--color-status-warning-text:var(--palette-warning-700);--color-status-info-bg:var(--palette-info-100);--color-status-info-text:var(--palette-info-600);--space-0:0px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mono:"SF Mono", "Fira Code", "Cascadia Code", "Courier New", monospace;--text-xs:11px;--text-sm:12px;--text-base:14px;--text-md:15px;--text-lg:18px;--text-xl:20px;--text-2xl:22px;--text-3xl:28px;--text-4xl:34px;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--leading-tight:1.2;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.75;--tracking-tight:-.3px;--tracking-normal:0;--tracking-wide:.05em;--tracking-wider:.08em;--tracking-caps:.08em;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000a;--shadow-md:0 1px 3px #00000014, 0 4px 16px #0000000f;--shadow-lg:0 4px 6px #00000012, 0 12px 24px #0000001a;--shadow-focus:0 0 0 3px #2563eb26;--sidebar-width:240px;--header-height:64px;--content-max-width:1280px;--page-padding-x:var(--space-8);--page-padding-y:var(--space-7);--z-below:-1;--z-base:0;--z-raised:1;--z-dropdown:10;--z-sidebar:20;--z-sticky:30;--z-overlay:40;--z-modal:100;--z-toast:200;--transition-fast:.1s ease;--transition-base:.15s ease;--transition-slow:.25s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text-primary);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}button{font-family:inherit}.auth-split{min-height:100vh;display:flex}.auth-split-left{background:linear-gradient(145deg, var(--color-auth-hero-from), var(--color-auth-hero-to));width:44%;padding:var(--space-10) var(--space-12);flex-direction:column;flex-shrink:0;justify-content:space-between;display:flex;position:relative;overflow:hidden}.auth-split-left:before,.auth-split-left:after{content:"";border-radius:var(--radius-full);pointer-events:none;background:#ffffff0a;position:absolute}.auth-split-left:before{width:420px;height:420px;bottom:-140px;left:-100px}.auth-split-left:after{width:280px;height:280px;top:-70px;right:-70px}.auth-brand-logo{align-items:center;gap:var(--space-2);font-size:var(--text-md);font-weight:var(--font-semibold);color:var(--color-auth-hero-text);letter-spacing:var(--tracking-tight);z-index:var(--z-raised);display:flex;position:relative}.auth-brand-logo-icon{background:var(--color-auth-hero-item-bg);border-radius:var(--radius-sm);width:30px;height:30px;color:var(--color-auth-hero-accent);justify-content:center;align-items:center;display:flex}.auth-hero-body{padding:var(--space-12) 0;z-index:var(--z-raised);flex-direction:column;flex:1;justify-content:center;display:flex;position:relative}.auth-hero-headline{font-size:var(--text-3xl);font-weight:var(--font-bold);color:var(--color-auth-hero-text);line-height:var(--leading-snug);letter-spacing:var(--tracking-tight);margin-bottom:var(--space-4);max-width:340px}.auth-hero-sub{font-size:var(--text-base);color:var(--color-auth-hero-muted);line-height:var(--leading-relaxed);max-width:340px;margin-bottom:var(--space-10)}.auth-hero-features{gap:var(--space-3);flex-direction:column;list-style:none;display:flex}.auth-hero-feature{align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-auth-hero-muted);display:flex}.auth-hero-feature-icon{border-radius:var(--radius-sm);background:var(--color-auth-hero-item-bg);width:28px;height:28px;color:var(--color-auth-hero-accent);flex-shrink:0;justify-content:center;align-items:center;display:flex}.auth-brand-quote{font-size:var(--text-xs);color:var(--color-auth-hero-muted);z-index:var(--z-raised);font-style:italic;position:relative}.auth-split-right{background:var(--color-surface);padding:var(--space-8);flex:1;justify-content:center;align-items:center;display:flex}.auth-form-wrap{width:100%;max-width:380px}.auth-form-icon{background:var(--color-accent-light);border-radius:var(--radius-lg);width:52px;height:52px;color:var(--color-accent);margin-bottom:var(--space-5);justify-content:center;align-items:center;display:flex}.auth-form-title{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-text-primary);letter-spacing:var(--tracking-tight);margin-bottom:var(--space-1)}.auth-form-subtitle{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-7)}.auth-field{margin-bottom:var(--space-5)}.auth-field label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-primary);margin-bottom:var(--space-1);display:block}.auth-input-wrap{align-items:center;display:flex;position:relative}.auth-input-icon{left:var(--space-3);color:var(--color-text-muted);pointer-events:none;display:flex;position:absolute}.auth-input{width:100%;padding:10px var(--space-3) 10px calc(var(--space-3) + 16px + var(--space-2));border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);font-family:var(--font-sans);color:var(--color-text-primary);background:var(--color-surface-raised);transition:border-color var(--transition-base), box-shadow var(--transition-base), background var(--transition-base);outline:none}.auth-input::placeholder{color:var(--color-text-muted)}.auth-input:focus{border-color:var(--color-accent);background:var(--color-surface);box-shadow:var(--shadow-focus)}.auth-input--has-toggle{padding-right:var(--space-10)}.auth-input-toggle{right:var(--space-3);cursor:pointer;color:var(--color-text-muted);transition:color var(--transition-base);background:0 0;border:none;align-items:center;padding:0;display:flex;position:absolute}.auth-input-toggle:hover{color:var(--color-text-primary)}.auth-submit{width:100%;padding:11px var(--space-4);background:var(--color-accent);color:#fff;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--font-semibold);font-family:var(--font-sans);cursor:pointer;margin-top:var(--space-2);justify-content:center;align-items:center;gap:var(--space-2);transition:background var(--transition-base), box-shadow var(--transition-base);border:none;display:flex}.auth-submit:hover{background:var(--color-accent-hover);box-shadow:var(--shadow-sm)}.auth-link{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-accent);transition:color var(--transition-base);text-decoration:none}.auth-link:hover{color:var(--color-accent-hover);text-decoration:underline}.auth-back-link{align-items:center;gap:var(--space-1);font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-6);transition:color var(--transition-base);text-decoration:none;display:inline-flex}.auth-back-link:hover{color:var(--color-text-primary)}.auth-success{align-items:flex-start;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-status-success-bg);color:var(--color-status-success-text);border-radius:var(--radius-md);font-size:var(--text-sm);margin-bottom:var(--space-5);display:flex}@media (width<=900px){.auth-split-left{display:none}}@media (width<=480px){.auth-split-right{padding:var(--space-6)}}.form-group{margin-bottom:var(--space-4)}.form-group label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-primary);margin-bottom:var(--space-1);display:block}.form-group input{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);font-family:var(--font-sans);color:var(--color-text-primary);background:var(--color-surface);transition:border-color var(--transition-base), box-shadow var(--transition-base);outline:none}.form-group input::placeholder{color:var(--color-text-muted)}.form-group input:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.btn-primary{width:100%;padding:var(--space-2) var(--space-4);background:var(--color-accent);color:var(--color-text-inverse);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--font-medium);cursor:pointer;margin-top:var(--space-2);transition:background var(--transition-base);border:none}.btn-primary:hover{background:var(--color-accent-hover)}.app-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--color-sidebar-bg);height:100vh;z-index:var(--z-sidebar);flex-direction:column;display:flex;position:fixed;top:0;left:0}.sidebar-logo{padding:var(--space-5) var(--space-5);border-bottom:1px solid var(--color-sidebar-border)}.sidebar-logo-text{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--color-text-inverse);letter-spacing:var(--tracking-tight)}.sidebar-logo-text span{color:var(--color-sidebar-logo-accent)}.sidebar-nav{padding:var(--space-3);flex:1;overflow-y:auto}.nav-section-label{font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--color-sidebar-label);padding:0 var(--space-2);margin:var(--space-4) 0 var(--space-1)}.nav-item{align-items:center;gap:var(--space-2);padding:9px var(--space-2);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-sidebar-text);font-size:var(--text-base);transition:background var(--transition-base), color var(--transition-base);margin-bottom:1px;text-decoration:none;display:flex}.nav-item:hover{background:var(--color-sidebar-item-hover);color:var(--color-sidebar-text-hover)}.nav-item.active{background:var(--color-sidebar-item-active);color:var(--color-sidebar-text-active)}.nav-item svg{opacity:.75;flex-shrink:0}.nav-item.active svg{opacity:1}.sidebar-footer{padding:var(--space-4);border-top:1px solid var(--color-sidebar-border);align-items:center;gap:var(--space-2);display:flex}.sidebar-user{align-items:center;gap:var(--space-2);flex:1;min-width:0;display:flex}.sidebar-user-info{flex:1;min-width:0}.sidebar-logout{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-sidebar-label);cursor:pointer;transition:background var(--transition-base), color var(--transition-base);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-logout:hover:not(:disabled){color:var(--color-status-error-text);background:#ffffff14}.sidebar-logout:disabled{opacity:.4;cursor:not-allowed}.user-avatar{border-radius:var(--radius-full);background:var(--color-accent);width:32px;height:32px;font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-inverse);flex-shrink:0;justify-content:center;align-items:center;display:flex}.user-name{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-inverse);line-height:var(--leading-tight);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.user-role{font-size:var(--text-xs);color:var(--color-sidebar-label);margin-top:1px}.main-content{margin-left:var(--sidebar-width);flex:1;min-height:100vh}.page-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:var(--space-5) var(--page-padding-x)}.page-title{font-size:var(--text-xl);font-weight:var(--font-semibold);letter-spacing:var(--tracking-tight)}.page-subtitle{font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:var(--space-1)}.page-body{padding:var(--page-padding-y) var(--page-padding-x)}.cards-grid{gap:var(--space-5);margin-bottom:var(--space-7);grid-template-columns:repeat(3,1fr);display:grid}.card{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-6);border:1px solid var(--color-border);box-shadow:var(--shadow-xs)}.card-label{font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--color-text-secondary);margin-bottom:var(--space-3)}.card-value{font-size:var(--text-4xl);font-weight:var(--font-bold);line-height:var(--leading-tight);margin-bottom:var(--space-2)}.card-value.blue{color:var(--color-accent)}.card-value.red{color:var(--color-status-error-text)}.card-value.green{color:var(--color-status-success-text)}.card-note{font-size:var(--text-xs);color:var(--color-text-muted)}.table-card{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-xs);overflow:hidden}.table-header{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.table-title{font-size:var(--text-md);font-weight:var(--font-semibold)}.table-count{font-size:var(--text-xs);color:var(--color-text-secondary);background:var(--color-bg);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);border:1px solid var(--color-border)}table{border-collapse:collapse;width:100%}thead th{padding:11px var(--space-6);text-align:left;font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--color-text-secondary);background:var(--color-surface-raised);border-bottom:1px solid var(--color-border)}tbody tr{border-bottom:1px solid var(--color-border);transition:background var(--transition-fast)}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:var(--color-surface-raised)}tbody td{padding:13px var(--space-6);font-size:var(--text-base);color:var(--color-text-primary)}.td-mono{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-secondary)}.td-muted{color:var(--color-text-secondary);font-size:var(--text-sm)}.td-amount{font-weight:var(--font-medium);font-variant-numeric:tabular-nums}.badge{padding:3px var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);white-space:nowrap;align-items:center;display:inline-flex}.badge-red{background:var(--color-status-error-bg);color:var(--color-status-error-text)}.badge-green{background:var(--color-status-success-bg);color:var(--color-status-success-text)}.badge-amber{background:var(--color-status-warning-bg);color:var(--color-status-warning-text)}.badge-blue{background:var(--color-status-info-bg);color:var(--color-status-info-text)}@media (width<=1024px){.cards-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.sidebar{transition:transform var(--transition-slow);transform:translate(-100%)}.main-content{margin-left:0}.cards-grid{grid-template-columns:1fr}.page-header,.page-body,thead th,tbody td{padding-left:var(--space-4);padding-right:var(--space-4)}}@media (width<=480px){.auth-card{padding:var(--space-6);box-shadow:none;border-radius:0}.card-value{font-size:var(--text-3xl)}}.card-trend{align-items:center;gap:var(--space-2);margin-top:var(--space-1);display:flex}.trend-up,.trend-good{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-status-success-text)}.trend-bad{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-status-error-text)}.dash-row{gap:var(--space-5);margin-bottom:var(--space-5);display:grid}.dash-row-chart{grid-template-columns:3fr 2fr}.dash-row-equal{grid-template-columns:1fr 1fr}.section-card{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-xs);overflow:hidden}.section-card-hd{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border)}.section-card-title{font-size:var(--text-md);font-weight:var(--font-semibold)}.section-card-sub{font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:2px}.section-card-bd{padding:var(--space-5)}.section-card-bd--flush{padding-top:0;padding-bottom:0}.trend-svg{width:100%;height:auto;display:block}.chart-legend{gap:var(--space-5);margin-top:var(--space-3);display:flex}.legend-item{align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-text-secondary);display:flex}.legend-dot{border-radius:var(--radius-sm);flex-shrink:0;width:10px;height:10px}.stat-list{gap:var(--space-4);flex-direction:column;list-style:none;display:flex}.stat-item{flex-direction:column;gap:6px;display:flex}.stat-item-row{justify-content:space-between;align-items:baseline;display:flex}.stat-item-label{font-size:var(--text-sm);color:var(--color-text-primary)}.stat-item-val{font-size:var(--text-xs);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.progress-track{background:var(--color-bg);border-radius:var(--radius-full);border:1px solid var(--color-border);height:6px;overflow:hidden}.progress-fill{border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow)}.activity-list{list-style:none}.activity-item{align-items:flex-start;gap:var(--space-3);padding:var(--space-4) 0;border-bottom:1px solid var(--color-border);display:flex}.activity-item:last-child{border-bottom:none}.activity-dot{border-radius:var(--radius-full);flex-shrink:0;width:8px;height:8px;margin-top:5px}.activity-body{flex:1;min-width:0}.activity-id{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted)}.activity-action{font-size:var(--text-sm);color:var(--color-text-primary);margin-top:1px}.activity-meta{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:2px}.activity-time{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;padding-top:1px}@media (width<=1024px){.dash-row-chart,.dash-row-equal{grid-template-columns:1fr}}
