@import url(https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap);:root{--brand-primary:#475569;--brand-secondary:#94a3b8;--brand-accent:#64748b;--color-success:#6b8e7f;--color-warning:#b4876a;--color-danger:#b07a86;--color-info:#748c9e;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--bg-primary:#f8f9fa;--bg-secondary:#f1f3f5;--bg-tertiary:#e9ecef;--text-primary:#111827;--text-secondary:#6b7280;--text-muted:#9ca3af;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--border-radius-sm:0.375rem;--border-radius-md:0.5rem;--border-radius-lg:0.75rem;--border-radius-xl:1rem;--spacing-xs:0.5rem;--spacing-sm:0.75rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--transition-fast:150ms ease;--transition-normal:250ms ease;--transition-slow:350ms ease}.text-primary{color:#111827;color:var(--text-primary)}.text-secondary{color:#6b7280;color:var(--text-secondary)}.text-muted{color:#9ca3af;color:var(--text-muted)}.text-success{color:#6b8e7f;color:var(--color-success)}.text-warning{color:#b4876a;color:var(--color-warning)}.text-danger{color:#b07a86;color:var(--color-danger)}.bg-primary{background-color:#f8f9fa;background-color:var(--bg-primary)}.bg-secondary{background-color:#f1f3f5;background-color:var(--bg-secondary)}.bg-tertiary{background-color:#e9ecef;background-color:var(--bg-tertiary)}.btn-modern{align-items:center;background:linear-gradient(135deg,#475569,#64748b);background:linear-gradient(135deg,var(--brand-primary) 0,var(--brand-accent) 100%);border:none;border-radius:.5rem;border-radius:var(--border-radius-md);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;box-shadow:var(--shadow-md);color:#fff;cursor:pointer;display:inline-flex;font-weight:500;gap:.5rem;padding:.75rem 1.5rem;text-decoration:none;transition:all .25s ease;transition:all var(--transition-normal)}.btn-modern:hover{background:linear-gradient(135deg,#334155,#475569);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;box-shadow:var(--shadow-lg);transform:translateY(-1px)}.btn-outline-modern{align-items:center;background:#0000;border:2px solid #475569;border:2px solid var(--brand-primary);border-radius:.5rem;border-radius:var(--border-radius-md);color:#475569;color:var(--brand-primary);cursor:pointer;display:inline-flex;font-weight:500;gap:.5rem;padding:.75rem 1.5rem;text-decoration:none;transition:all .25s ease;transition:all var(--transition-normal)}.btn-outline-modern:hover{background:#475569;background:var(--brand-primary);color:#fff;transform:translateY(-1px)}.fade-in{animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.slide-in-left{animation:slideInLeft .3s ease-out}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}.client-shell{--c-bg:#f5f6f8;--c-surface:#fff;--c-surface-2:#f0f2f5;--c-surface-3:#e9edf1;--c-border:#e2e6eb;--c-border-strong:#d2d8df;--c-text:#181d26;--c-muted:#69727e;--c-faint:#98a1ac;--c-accent:#4f6478;--c-accent-strong:#3a4b5c;--c-on-accent:#fff;--c-accent-soft:#4f64781a;--c-pos:#2e8b6a;--c-neg:#cf5b6e;--c-nav-bg:#fff;--c-nav-border:#e2e6eb;--c-nav-text:#4b5563;--c-nav-active:#181d26;--c-shadow-sm:0 1px 2px #1018280a,0 1px 3px #1018280f;--c-radius:10px;--c-radius-sm:7px;--c-content-max:1560px;--c-content-pad:clamp(20px,3vw,48px);font-feature-settings:"tnum";background:var(--c-bg);color:var(--c-text);display:flex;flex-direction:column;font-variant-numeric:tabular-nums;min-height:100vh}.client-shell[data-theme=dark]{--c-bg:#0f1216;--c-surface:#171b21;--c-surface-2:#1d232b;--c-surface-3:#232a33;--c-border:#272e38;--c-border-strong:#333c47;--c-text:#e7eaee;--c-muted:#98a1ad;--c-faint:#6f7884;--c-accent:#6e879e;--c-accent-strong:#82a0ba;--c-on-accent:#0f1216;--c-accent-soft:#6e879e29;--c-pos:#4cae86;--c-neg:#e0788a;--c-nav-bg:#171b21;--c-nav-border:#272e38;--c-nav-text:#98a1ad;--c-nav-active:#fff}.client-topnav{background:var(--c-nav-bg);border-bottom:1px solid var(--c-nav-border);box-shadow:var(--c-shadow-sm);position:-webkit-sticky;position:sticky;top:0;z-index:50}.client-topnav-inner{align-items:center;display:flex;gap:8px;height:60px;margin:0 auto;max-width:var(--c-content-max);padding:0 var(--c-content-pad);width:100%}.client-brand{align-items:center;color:var(--c-text);display:flex;flex-shrink:0;font-size:.95rem;font-weight:700;gap:10px;letter-spacing:.2px;margin-right:16px;text-decoration:none}.client-brand:hover{color:var(--c-accent)}.client-brand-mark{align-items:center;background:var(--c-accent);border-radius:7px;color:var(--c-on-accent);display:inline-flex;font-size:.8rem;font-weight:800;height:28px;justify-content:center;width:28px}.client-nav-links{align-items:center;display:flex;flex:1 1;gap:2px}.client-nav-link{align-items:center;border-radius:var(--c-radius-sm);color:var(--c-nav-text);display:inline-flex;font-size:.875rem;font-weight:500;gap:7px;padding:8px 14px;text-decoration:none;transition:background .12s ease,color .12s ease}.client-nav-link:hover{background:var(--c-surface-2);color:var(--c-nav-active)}.client-nav-link.active{background:var(--c-accent-soft);color:var(--c-accent);font-weight:600}.client-nav-actions{align-items:center;display:flex;gap:6px;margin-left:auto}.client-icon-btn{align-items:center;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--c-radius-sm);color:var(--c-muted);cursor:pointer;display:inline-flex;height:36px;justify-content:center;transition:all .12s ease;width:36px}.client-icon-btn:hover{border-color:var(--c-accent);color:var(--c-accent)}.client-nav-mobile-toggle{display:none;margin-left:auto}.client-user-menu{position:relative}.client-user-btn{align-items:center;background:var(--c-surface);border:1px solid var(--c-border);border-radius:999px;color:var(--c-text);cursor:pointer;display:flex;font-size:.85rem;font-weight:500;gap:8px;padding:5px 10px 5px 5px;transition:border-color .12s ease}.client-user-btn:hover{border-color:var(--c-accent)}.client-user-avatar{align-items:center;background:var(--c-accent);border-radius:50%;color:var(--c-on-accent);display:flex;font-size:.7rem;font-weight:700;height:28px;justify-content:center;overflow:hidden;width:28px}.client-user-avatar img{height:100%;object-fit:cover;width:100%}.client-user-dropdown{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--c-radius-sm);box-shadow:0 8px 24px #1018281f;min-width:200px;padding:6px;position:absolute;right:0;top:calc(100% + 6px);z-index:60}.client-user-dropdown a,.client-user-dropdown button{align-items:center;background:#0000;border:none;border-radius:6px;color:var(--c-text);cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:10px;padding:9px 12px;text-align:left;text-decoration:none;width:100%}.client-user-dropdown a:hover,.client-user-dropdown button:hover{background:var(--c-surface-2)}.client-user-dropdown .danger{color:var(--c-neg)}.client-user-dropdown hr{border:none;border-top:1px solid var(--c-border);margin:4px 0}.client-mobile-nav{background:var(--c-nav-bg);border-bottom:1px solid var(--c-nav-border);display:none;flex-direction:column;gap:2px;padding:8px 16px 12px}.client-mobile-nav.open{display:flex}.client-main{flex:1 1;margin:0 auto;max-width:var(--c-content-max);padding:32px var(--c-content-pad) 64px;width:100%}.client-page-head{margin-bottom:28px}.client-page-title{color:var(--c-text);font-size:1.65rem;font-weight:700;margin:0}.client-page-sub{color:var(--c-muted);font-size:.95rem;margin:5px 0 0}.c-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--c-radius);box-shadow:var(--c-shadow-sm)}.c-card-pad{padding:20px 22px}.c-card-head{border-bottom:1px solid var(--c-border);padding:16px 22px}.c-card-head h3{color:var(--c-text);font-size:1rem;font-weight:600;margin:0}.c-card-body{padding:20px 22px}.c-stat-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:22px}.c-stat{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--c-radius);box-shadow:var(--c-shadow-sm);padding:18px 20px}.c-stat-label{color:var(--c-muted);display:block;font-size:.72rem;font-weight:600;letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}.c-stat-value{font-feature-settings:"tnum";color:var(--c-text);display:block;font-size:1.55rem;font-variant-numeric:tabular-nums;font-weight:700}.c-table-wrap{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--c-radius);overflow-x:auto}.c-table{border-collapse:initial;border-spacing:0;font-size:.875rem;width:100%}.c-table thead th{background:var(--c-surface-2);color:var(--c-muted);font-size:.68rem;font-weight:700;letter-spacing:.5px;padding:12px 16px;text-align:left;text-transform:uppercase;white-space:nowrap}.c-table tbody td,.c-table thead th{border-bottom:1px solid var(--c-border)}.c-table tbody td{color:var(--c-text);padding:13px 16px}.c-table tbody tr:last-child td{border-bottom:none}.c-table tbody tr:hover td{background:var(--c-surface-2)}.c-table .num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.c-table .summary-row td{background:var(--c-surface-3);border-top:2px solid var(--c-border-strong);font-weight:600}.c-ticker{background:var(--c-surface-3);border-radius:5px;color:var(--c-muted);display:inline-block;font-size:.72rem;font-weight:700;padding:2px 7px}.c-pos{color:var(--c-pos)}.c-neg{color:var(--c-neg)}.c-gain-loss{align-items:center;display:inline-flex;font-weight:600;gap:4px}.c-chart-wrap{height:380px;position:relative}.c-letters-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.c-letter-card{align-items:center;color:inherit;display:flex;gap:16px;padding:18px 20px;text-decoration:none;transition:border-color .12s ease,box-shadow .12s ease}.c-letter-card:hover{border-color:var(--c-accent);box-shadow:var(--c-shadow-sm)}.c-letter-icon{align-items:center;background:var(--c-accent-soft);border-radius:var(--c-radius-sm);color:var(--c-accent);display:flex;flex-shrink:0;height:44px;justify-content:center;width:44px}.c-letter-body{flex:1 1;min-width:0}.c-letter-badge{color:var(--c-muted);display:inline-block;font-size:.65rem;font-weight:700;letter-spacing:.4px;margin-bottom:4px;text-transform:uppercase}.c-letter-title{color:var(--c-text);font-size:.95rem;font-weight:600;margin:0 0 4px}.c-letter-date{align-items:center;color:var(--c-muted);display:flex;font-size:.8rem;gap:5px}.c-letter-arrow{color:var(--c-faint);flex-shrink:0}.c-letter-card:hover .c-letter-arrow{color:var(--c-accent)}.c-profile-hero{align-items:center;display:flex;flex-wrap:wrap;gap:20px}.c-profile-avatar{align-items:center;background:var(--c-accent);border:3px solid var(--c-border);border-radius:50%;color:var(--c-on-accent);display:flex;flex-shrink:0;font-size:1.6rem;font-weight:700;height:80px;justify-content:center;overflow:hidden;width:80px}.c-profile-avatar img{height:100%;object-fit:cover;width:100%}.c-profile-name{font-size:1.4rem;font-weight:700;margin:0 0 4px}.c-profile-role{color:var(--c-muted);font-size:.9rem;margin:0}.c-profile-badge{background:#2e8b6a24;border-radius:999px;color:var(--c-pos);font-size:.72rem;font-weight:700;letter-spacing:.5px;margin-left:auto;padding:4px 12px}.c-info-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-top:18px}.c-info-item label{color:var(--c-muted);display:block;font-size:.7rem;font-weight:600;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.c-info-item span{color:var(--c-text);font-size:1rem;font-weight:600}.c-btn{align-items:center;border:1px solid #0000;border-radius:var(--c-radius-sm);cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:600;gap:8px;padding:11px 20px;text-decoration:none;transition:background .12s ease,border-color .12s ease}.c-btn-primary{background:var(--c-accent);color:var(--c-on-accent)}.c-btn-primary:hover{background:var(--c-accent-strong)}.c-btn-ghost{background:var(--c-surface);border-color:var(--c-border-strong);color:var(--c-text)}.c-btn-ghost:hover{border-color:var(--c-accent);color:var(--c-accent)}.c-empty{color:var(--c-muted);padding:48px 24px;text-align:center}.login-page{align-items:center;background:#f5f6f8;display:flex;justify-content:center;min-height:100vh;padding:24px}.login-panel{background:#fff;border:1px solid #e2e6eb;border-radius:10px;box-shadow:0 4px 12px #10182814;max-width:400px;padding:40px 36px;text-align:center;width:100%}.login-panel .brand-mark{align-items:center;background:#4f6478;border-radius:10px;color:#fff;display:inline-flex;font-size:1.1rem;font-weight:800;height:44px;justify-content:center;margin-bottom:20px;width:44px}.login-panel h1{font-size:1.35rem;font-weight:700;margin:0 0 6px}.login-panel .sub{color:#69727e;font-size:.9rem;margin:0 0 24px}.login-panel .desc{color:#69727e;font-size:.875rem;line-height:1.6;margin-bottom:24px}.login-error{background:#cf5b6e1a;border:1px solid #cf5b6e40;border-radius:7px;color:#cf5b6e;font-size:.85rem;gap:8px;margin-bottom:16px;padding:10px 14px;text-align:left}.login-error,.login-google-btn{align-items:center;display:flex}.login-google-btn{background:#fff;border:1px solid #d2d8df;border-radius:7px;color:#181d26;cursor:pointer;font-size:.9rem;font-weight:600;gap:10px;justify-content:center;padding:12px;transition:border-color .12s ease,box-shadow .12s ease;width:100%}.login-google-btn:hover:not(:disabled){border-color:#4f6478;box-shadow:0 2px 8px #10182814}.login-google-btn:disabled{cursor:not-allowed;opacity:.6}.login-note{color:#98a1ac;font-size:.78rem;margin-top:20px}.login-back{color:#69727e;display:inline-block;font-size:.85rem;margin-top:16px;text-decoration:none}.login-back:hover{color:#4f6478}@media (min-width:1200px){.c-stat-grid{grid-template-columns:repeat(4,1fr)}.c-chart-wrap{height:420px}.c-letters-grid{grid-template-columns:repeat(auto-fill,minmax(360px,1fr))}.c-table tbody td,.c-table thead th{padding-left:20px;padding-right:20px}}@media (max-width:768px){.client-nav-links{display:none}.client-nav-mobile-toggle{display:inline-flex}.client-user-btn span{display:none}.client-main{padding:20px 16px 48px}.c-stat-grid{grid-template-columns:1fr 1fr}.c-chart-wrap{height:280px}}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-secondary);color:var(--text-primary);font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:-.01em;line-height:1.6;margin:0}html{scroll-behavior:smooth}:focus-visible{border-radius:2px;outline:2px solid var(--brand-primary);outline-offset:2px}h1,h2,h3,h4,h5,h6{color:var(--text-primary);font-weight:600;letter-spacing:-.025em;line-height:1.2;margin-top:0}.home-minimal{align-items:center;background:var(--bg-secondary);display:flex;justify-content:center;min-height:100vh}.home-minimal h1{color:var(--brand-primary);font-size:1.5rem;font-weight:600;letter-spacing:-.03em;margin:0}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1.25rem}p{margin-top:0}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-track{background:var(--gray-100)}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:5px;-webkit-transition:background var(--transition-normal);transition:background var(--transition-normal)}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}code{background-color:var(--gray-100);border-radius:var(--border-radius-sm);font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace;font-size:.875em;padding:.125rem .25rem}.loading-container{align-items:center;display:flex;flex-direction:column;gap:var(--spacing-md);justify-content:center;min-height:200px;padding:var(--spacing-2xl)}.loading-spinner{display:inline-block;position:relative}.loading-spinner-sm{height:24px;width:24px}.loading-spinner-md{height:40px;width:40px}.loading-spinner-lg{height:60px;width:60px}.spinner-ring{animation:spin 1.5s cubic-bezier(.5,0,.5,1) infinite;border:3px solid #0000;border-radius:50%;border-top:3px solid var(--brand-primary);position:absolute}.loading-spinner-sm .spinner-ring{border-width:2px;height:24px;width:24px}.loading-spinner-md .spinner-ring{border-width:3px;height:40px;width:40px}.loading-spinner-lg .spinner-ring{border-width:4px;height:60px;width:60px}.spinner-ring:first-child{animation-delay:-.45s;border-top-color:var(--brand-primary)}.spinner-ring:nth-child(2){animation-delay:-.3s;border-top-color:var(--brand-accent)}.spinner-ring:nth-child(3){animation-delay:-.15s;border-top-color:var(--brand-secondary)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-text{color:var(--text-secondary);font-size:1rem;font-weight:500;margin:0}.admin-shell{--a-bg:#f5f6f8;--a-surface:#fff;--a-surface-2:#f0f2f5;--a-surface-3:#e9edf1;--a-border:#e2e6eb;--a-border-strong:#d2d8df;--a-text:#181d26;--a-muted:#69727e;--a-faint:#98a1ac;--a-accent:#4f6478;--a-accent-strong:#3a4b5c;--a-on-accent:#fff;--a-accent-soft:#4f64781a;--a-pos:#2e8b6a;--a-neg:#cf5b6e;--a-warn:#b4876a;--a-sidebar-bg:#161b22;--a-sidebar-text:#c6cdd6;--a-sidebar-muted:#7d8794;--a-sidebar-active-bg:#ffffff17;--a-sidebar-active-text:#fff;--a-sidebar-border:#ffffff12;--a-shadow-sm:0 1px 2px #1018280a,0 1px 3px #1018280f;--a-shadow-md:0 4px 12px #10182814;--a-radius:10px;--a-radius-sm:7px;font-feature-settings:"tnum";background:var(--a-bg);color:var(--a-text);display:flex;font-variant-numeric:tabular-nums;min-height:100vh}.admin-shell[data-theme=dark]{--a-bg:#0f1216;--a-surface:#171b21;--a-surface-2:#1d232b;--a-surface-3:#232a33;--a-border:#272e38;--a-border-strong:#333c47;--a-text:#e7eaee;--a-muted:#98a1ad;--a-faint:#6f7884;--a-accent:#6e879e;--a-accent-strong:#82a0ba;--a-on-accent:#0f1216;--a-accent-soft:#6e879e29;--a-pos:#4cae86;--a-neg:#e0788a;--a-sidebar-bg:#0b0e12;--a-sidebar-text:#c6cdd6;--a-sidebar-muted:#6f7884;--a-sidebar-active-bg:#ffffff0f;--a-sidebar-active-text:#fff;--a-sidebar-border:#ffffff0d;--a-shadow-sm:0 1px 2px #0006;--a-shadow-md:0 6px 18px #00000073}.admin-sidebar{background:var(--a-sidebar-bg);border-right:1px solid var(--a-sidebar-border);color:var(--a-sidebar-text);display:flex;flex-direction:column;flex-shrink:0;height:100vh;position:-webkit-sticky;position:sticky;top:0;width:252px}.admin-brand{align-items:center;color:#fff;display:flex;font-size:1.05rem;font-weight:700;gap:10px;letter-spacing:.3px;padding:22px 20px 18px}.admin-brand-mark{align-items:center;background:linear-gradient(135deg,#4f6478,#2f3e4c);border-radius:8px;color:#fff;display:inline-flex;height:30px;justify-content:center;width:30px}.admin-nav{display:flex;flex:1 1;flex-direction:column;gap:2px;overflow-y:auto;padding:8px 12px}.admin-nav-label{color:var(--a-sidebar-muted);font-size:.65rem;font-weight:600;letter-spacing:.8px;padding:14px 12px 6px;text-transform:uppercase}.admin-nav-item{align-items:center;background:#0000;border:none;border-radius:var(--a-radius-sm);color:var(--a-sidebar-text);cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:11px;padding:9px 12px;text-align:left;transition:background .12s ease,color .12s ease;width:100%}.admin-nav-item:hover{background:#ffffff0d;color:#fff}.admin-nav-item.active{background:var(--a-sidebar-active-bg);color:var(--a-sidebar-active-text);font-weight:600}.admin-nav-item .nav-icon{color:var(--a-sidebar-muted)}.admin-nav-item.active .nav-icon,.admin-nav-item:hover .nav-icon{color:#fff}.admin-sidebar-footer{border-top:1px solid var(--a-sidebar-border);display:flex;flex-direction:column;gap:4px;padding:12px}.admin-foot-btn,.admin-theme-toggle{align-items:center;background:#0000;border:none;border-radius:var(--a-radius-sm);color:var(--a-sidebar-text);cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:11px;padding:9px 12px;text-align:left;transition:background .12s ease;width:100%}.admin-foot-btn:hover,.admin-theme-toggle:hover{background:#ffffff0f;color:#fff}.admin-account{align-items:center;display:flex;gap:10px;padding:9px 12px}.admin-account-avatar{align-items:center;background:var(--a-accent);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:.75rem;font-weight:700;height:30px;justify-content:center;overflow:hidden;width:30px}.admin-account-avatar img{height:100%;object-fit:cover;width:100%}.admin-account-info{display:flex;flex-direction:column;min-width:0}.admin-account-name{color:#fff;font-size:.82rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-account-role{color:var(--a-sidebar-muted);font-size:.7rem}.admin-main{display:flex;flex:1 1;flex-direction:column;min-width:0}.admin-mobile-topbar{border-bottom:1px solid var(--a-border);display:none;gap:12px;padding:12px 16px;position:-webkit-sticky;position:sticky;top:0;z-index:20}.admin-hamburger,.admin-mobile-topbar{align-items:center;background:var(--a-surface)}.admin-hamburger{border:1px solid var(--a-border);border-radius:var(--a-radius-sm);color:var(--a-text);cursor:pointer;display:inline-flex;height:38px;justify-content:center;width:38px}.admin-content{margin:0 auto;max-width:1180px;padding:28px 32px 64px;width:100%}.admin-page-head{margin-bottom:22px}.admin-page-title{color:var(--a-text);font-size:1.5rem;font-weight:700;margin:0}.admin-page-sub{color:var(--a-muted);font-size:.9rem;margin:4px 0 0}.admin-scrim{display:none}.a-card{background:var(--a-surface);border:1px solid var(--a-border);border-radius:var(--a-radius);box-shadow:var(--a-shadow-sm)}.a-card-pad{padding:18px 20px}.a-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;margin-bottom:18px}.a-toolbar-actions{display:flex;flex-wrap:wrap;gap:8px}.a-section-title{font-size:1.15rem;font-weight:700;margin:0}.a-btn{align-items:center;border:1px solid #0000;border-radius:var(--a-radius-sm);cursor:pointer;display:inline-flex;font-size:.85rem;font-weight:600;gap:7px;padding:9px 14px;transition:background .12s ease,border-color .12s ease,color .12s ease;white-space:nowrap}.a-btn:disabled{cursor:not-allowed;opacity:.55}.a-btn-primary{background:var(--a-accent);color:var(--a-on-accent)}.a-btn-primary:hover:not(:disabled){background:var(--a-accent-strong)}.a-btn-ghost{background:var(--a-surface);border-color:var(--a-border-strong);color:var(--a-text)}.a-btn-ghost:hover:not(:disabled){border-color:var(--a-accent);color:var(--a-accent)}.a-btn-danger{background:#0000;border-color:var(--a-border-strong);color:var(--a-neg)}.a-btn-danger:hover:not(:disabled){background:#cf5b6e14;border-color:var(--a-neg)}.a-btn-warn{background:var(--a-warn);color:#fff}.a-btn-warn:hover:not(:disabled){filter:brightness(.95)}.a-icon-btn{align-items:center;background:var(--a-surface);border:1px solid var(--a-border);border-radius:var(--a-radius-sm);color:var(--a-muted);cursor:pointer;display:inline-flex;height:32px;justify-content:center;transition:all .12s ease;width:32px}.a-icon-btn:hover{border-color:var(--a-accent);color:var(--a-accent)}.a-icon-btn.danger:hover{border-color:var(--a-neg);color:var(--a-neg)}.a-field{display:flex;flex-direction:column;gap:6px}.a-field label{color:var(--a-muted);font-size:.7rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.a-input,.a-select{background:var(--a-surface);border:1px solid var(--a-border-strong);border-radius:var(--a-radius-sm);color:var(--a-text);font-size:.9rem;font-weight:500;padding:9px 11px;transition:border-color .12s ease,box-shadow .12s ease;width:100%}.a-input::placeholder{color:var(--a-faint);font-weight:400}.a-input:focus,.a-select:focus{border-color:var(--a-accent);box-shadow:0 0 0 3px var(--a-accent-soft);outline:none}.a-input:disabled,.a-select:disabled{background:var(--a-surface-2);color:var(--a-muted)}.a-form-grid{grid-gap:14px;align-items:end;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.a-table-wrap{background:var(--a-surface);border:1px solid var(--a-border);border-radius:var(--a-radius);overflow-x:auto}.a-table{border-collapse:initial;border-spacing:0;font-size:.875rem;width:100%}.a-table thead th{background:var(--a-surface-2);color:var(--a-muted);font-size:.68rem;font-weight:700;letter-spacing:.5px;padding:11px 14px;position:-webkit-sticky;position:sticky;text-align:left;text-transform:uppercase;top:0;z-index:2}.a-table tbody td,.a-table thead th{border-bottom:1px solid var(--a-border)}.a-table tbody td{color:var(--a-text);padding:10px 14px;vertical-align:middle}.a-table tbody tr:last-child td{border-bottom:none}.a-table tbody tr:hover td{background:var(--a-surface-2)}.a-table .num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.a-pos{color:var(--a-pos)}.a-neg{color:var(--a-neg)}.a-empty-cell{color:var(--a-muted);padding:36px 14px!important;text-align:center}.holdings-table-wrap{background:var(--a-surface);border:1px solid var(--a-border);border-radius:var(--a-radius);overflow-x:auto}.holdings-table{border-collapse:initial;border-spacing:0;font-size:.85rem;min-width:1040px;width:100%}.holdings-table thead th{background:var(--a-surface-2);border-bottom:1px solid var(--a-border);color:var(--a-muted);font-size:.66rem;font-weight:700;letter-spacing:.4px;padding:10px;position:-webkit-sticky;position:sticky;text-align:left;text-transform:uppercase;top:0;white-space:nowrap;z-index:3}.holdings-table td.num,.holdings-table th.num{text-align:right}.holdings-table td{border-bottom:1px solid var(--a-border);padding:4px 6px}.holdings-table tbody tr:hover td{background:var(--a-surface-2)}.holdings-table .drag-col{color:var(--a-faint);cursor:grab;padding-left:10px;width:30px}.holdings-table .act-col{width:44px}.cell-input{font-feature-settings:"tnum";background:#0000;border:1px solid #0000;border-radius:6px;color:var(--a-text);font-size:.85rem;font-variant-numeric:tabular-nums;font-weight:500;padding:6px 8px;width:100%}.cell-input.num{text-align:right}.cell-input::placeholder{color:var(--a-faint);font-weight:400}.cell-input:hover:not(:disabled){background:var(--a-surface-3)}.cell-input:focus{background:var(--a-surface);border-color:var(--a-accent);box-shadow:0 0 0 2px var(--a-accent-soft);outline:none}.cell-input:disabled{color:var(--a-muted);cursor:not-allowed}.cell-computed{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;padding:8px 10px;text-align:right;white-space:nowrap}.cell-auto-tag{background:var(--a-accent-soft);border-radius:999px;color:var(--a-accent);display:inline-block;font-size:.58rem;letter-spacing:.4px;margin-left:6px;padding:1px 5px;text-transform:uppercase;vertical-align:middle}.holdings-table tfoot td{font-feature-settings:"tnum";background:var(--a-surface-3);border-top:2px solid var(--a-border-strong);bottom:0;font-variant-numeric:tabular-nums;font-weight:700;padding:12px 10px;position:-webkit-sticky;position:sticky;z-index:2}.holdings-table tfoot .num{text-align:right}.holdings-actionbar{align-items:center;background:var(--a-surface);border:1px solid var(--a-border);border-radius:var(--a-radius);bottom:0;box-shadow:var(--a-shadow-md);display:flex;flex-wrap:wrap;gap:16px;margin-top:16px;padding:14px 16px;position:-webkit-sticky;position:sticky}.holdings-cash{display:flex;flex-direction:column;gap:4px}.holdings-cash label{color:var(--a-muted);font-size:.66rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.holdings-cash input{width:150px}.holdings-total{display:flex;flex-direction:column;gap:2px}.holdings-total .lbl{color:var(--a-muted);font-size:.66rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.holdings-total .val{font-size:1.25rem;font-weight:700}.holdings-actionbar .spacer{flex:1 1}.a-pill{align-items:center;border-radius:999px;display:inline-flex;font-size:.7rem;font-weight:700;gap:3px;margin-right:4px;padding:2px 9px}.a-pill.ok{background:#2e8b6a24;color:var(--a-pos)}.a-pill.off{background:#cf5b6e24;color:var(--a-neg)}.a-pill.admin{background:var(--a-accent-soft);color:var(--a-accent)}.a-ticker{background:var(--a-surface-3);border-radius:5px;color:var(--a-muted);display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.3px;padding:2px 7px}.a-letter-row{align-items:center;display:flex;gap:14px;padding:12px 16px}.a-letter-row+.a-letter-row{border-top:1px solid var(--a-border)}.a-letter-icon{color:var(--a-accent);display:flex}.a-letter-info{display:flex;flex:1 1;flex-direction:column;min-width:0}.a-letter-info a{color:var(--a-text);font-weight:600;text-decoration:none}.a-letter-info a:hover{color:var(--a-accent)}.a-letter-meta{color:var(--a-muted);font-size:.78rem}.a-empty{flex-direction:column;gap:12px;padding:48px 24px;text-align:center}.a-empty,.a-hint{align-items:center;color:var(--a-muted);display:flex}.a-hint{font-size:.8rem;gap:7px;margin-top:14px}.a-toggle-row{align-items:center;display:flex;flex-wrap:wrap;gap:18px;margin-top:14px}.a-toggle{align-items:center;color:var(--a-text);cursor:pointer;display:inline-flex;font-size:.88rem;font-weight:500;gap:8px}.a-toggle-actions{display:flex;gap:8px;margin-left:auto}.a-toast-wrap{bottom:24px;display:flex;flex-direction:column;gap:10px;position:fixed;right:24px;z-index:100}.a-toast{align-items:center;animation:a-toast-in .18s ease-out;background:var(--a-surface);border:1px solid var(--a-border);border-left:3px solid var(--a-accent);border-radius:var(--a-radius-sm);box-shadow:var(--a-shadow-md);color:var(--a-text);display:flex;font-size:.875rem;font-weight:500;gap:10px;max-width:380px;min-width:240px;padding:12px 16px}.a-toast.is-success{border-left-color:var(--a-pos)}.a-toast.is-error{border-left-color:var(--a-neg)}@keyframes a-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.admin-denied{align-items:center;background:var(--a-bg);display:flex;justify-content:center;min-height:100vh;padding:24px}.admin-denied-card{background:var(--a-surface);border:1px solid var(--a-border);border-radius:var(--a-radius);max-width:440px;padding:40px;text-align:center}.admin-denied-card h2{margin:16px 0 8px}.admin-denied-card p{color:var(--a-muted);margin:0}@media (max-width:900px){.admin-sidebar{position:fixed;transform:translateX(-100%);transition:transform .2s ease;z-index:40}.admin-shell.nav-open .admin-sidebar{transform:translateX(0)}.admin-mobile-topbar{display:flex}.admin-shell.nav-open .admin-scrim{background:#00000073;display:block;inset:0;position:fixed;z-index:30}.admin-content{padding:20px 16px 56px}}
/*# sourceMappingURL=main.c7cae44a.css.map*/