:root{color-scheme:light;--bg:#f5f5f7;--surface:#ffffff;--surface-strong:#f0f2f5;--text:#1d1d1f;--muted:#6e6e73;--line:#e4e4ea;--line-strong:#d2d2d7;--teal:#087f73;--teal-strong:#05665d;--accent:var(--teal);--accent-strong:var(--teal-strong);--accent-soft:rgba(8,127,115,0.1);--green:#1f8a54;--yellow:#946600;--red:#c4352b;--red-bg:#fdeceb;--yellow-bg:#fbf3df;--green-bg:#e7f5ed;--info-bg:#e9f2fe;--info:#1769aa;--badge-muted-bg:#eef1f0;--radius:10px;--radius-lg:16px;--radius-pill:980px;--shadow-sm:0 1px 2px rgba(0,0,0,0.05);--shadow:0 1px 2px rgba(0,0,0,0.04),0 8px 24px rgba(0,0,0,0.05);--shadow-lg:0 12px 40px rgba(0,0,0,0.12);--focus-ring:0 0 0 4px rgba(8,127,115,0.22);--hover:rgba(0,0,0,0.035)}:root[data-theme=dark]{color-scheme:dark;--bg:#000000;--surface:#1c1c1e;--surface-strong:#2c2c2e;--text:#f5f5f7;--muted:#98989d;--line:#38383a;--line-strong:#48484a;--teal:#2cc7b6;--teal-strong:#34d2c0;--accent:var(--teal);--accent-strong:var(--teal-strong);--accent-soft:rgba(44,199,182,0.16);--green:#30d158;--yellow:#ffd426;--red:#ff453a;--red-bg:rgba(255,69,58,0.16);--yellow-bg:rgba(255,214,10,0.16);--green-bg:rgba(48,209,88,0.16);--info-bg:rgba(10,132,255,0.16);--info:#64a9ff;--badge-muted-bg:#2c2c2e;--shadow-sm:0 1px 2px rgba(0,0,0,0.4);--shadow:0 1px 2px rgba(0,0,0,0.4),0 8px 24px rgba(0,0,0,0.5);--shadow-lg:0 12px 40px rgba(0,0,0,0.6);--focus-ring:0 0 0 4px rgba(44,199,182,0.3);--hover:rgba(255,255,255,0.05)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]){color-scheme:dark;--bg:#000000;--surface:#1c1c1e;--surface-strong:#2c2c2e;--text:#f5f5f7;--muted:#98989d;--line:#38383a;--line-strong:#48484a;--teal:#2cc7b6;--teal-strong:#34d2c0;--accent:var(--teal);--accent-strong:var(--teal-strong);--accent-soft:rgba(44,199,182,0.16);--green:#30d158;--yellow:#ffd426;--red:#ff453a;--red-bg:rgba(255,69,58,0.16);--yellow-bg:rgba(255,214,10,0.16);--green-bg:rgba(48,209,88,0.16);--info-bg:rgba(10,132,255,0.16);--info:#64a9ff;--badge-muted-bg:#2c2c2e;--shadow-sm:0 1px 2px rgba(0,0,0,0.4);--shadow:0 1px 2px rgba(0,0,0,0.4),0 8px 24px rgba(0,0,0,0.5);--shadow-lg:0 12px 40px rgba(0,0,0,0.6);--focus-ring:0 0 0 4px rgba(44,199,182,0.3);--hover:rgba(255,255,255,0.05)}}*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Segoe UI,Inter,ui-sans-serif,system-ui,sans-serif;font-size:15px;letter-spacing:-.01em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.button-link,button{align-items:center;background:var(--accent);border:0;border-radius:var(--radius);color:white;cursor:pointer;display:inline-flex;font-weight:600;justify-content:center;letter-spacing:-.01em;min-height:40px;padding:0 18px;transition:background .18s ease,transform .18s ease,box-shadow .18s ease,opacity .18s ease}.button-link:hover,button:hover{background:var(--accent-strong);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.button-link:active,button:active{transform:translateY(0);opacity:.9}.button-link:focus-visible,a:focus-visible,button:focus-visible{outline:none;box-shadow:var(--focus-ring)}.button-secondary{background:var(--surface-strong);color:var(--text)}.button-secondary:hover{background:var(--line)}.button-disabled,button:disabled{background:var(--surface-strong);color:var(--muted);cursor:not-allowed;transform:none;box-shadow:none}input,select{background:var(--surface);color:var(--text);border:1px solid var(--line-strong);border-radius:var(--radius);min-height:40px;padding:8px 11px;transition:border-color .18s ease,box-shadow .18s ease}input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}textarea{background:var(--surface);color:var(--text);border:1px solid var(--line-strong);border-radius:var(--radius);font:inherit;line-height:1.5;padding:10px 12px;resize:vertical;transition:border-color .18s ease,box-shadow .18s ease}textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}input[type=file]{align-items:center;cursor:pointer;display:flex;padding:5px 8px}input[type=file]::-webkit-file-upload-button{background:var(--surface-strong);border:0;border-radius:8px;color:var(--text);cursor:pointer;font-weight:600;margin-right:12px;padding:8px 16px;-webkit-transition:background .18s ease;transition:background .18s ease}input[type=file]::file-selector-button{background:var(--surface-strong);border:0;border-radius:8px;color:var(--text);cursor:pointer;font-weight:600;margin-right:12px;padding:8px 16px;transition:background .18s ease}input[type=file]::-webkit-file-upload-button:hover{background:var(--line)}input[type=file]::file-selector-button:hover{background:var(--line)}.app-shell{display:grid;grid-template-columns:264px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:18px;padding:20px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.brand-block h1,.page-header h2{margin:0}.brand-block{align-items:center;display:flex;gap:12px}.brand-logo{background:var(--surface-strong);border:1px solid var(--line);border-radius:var(--radius);flex:0 0 auto;height:52px;object-fit:contain;padding:4px;width:52px}.brand-block h1{font-size:22px;line-height:1.1;overflow-wrap:anywhere}.eyebrow{color:var(--teal);font-size:12px;font-weight:800;margin:0 0 6px;text-transform:uppercase}.muted,.page-description{color:var(--muted)}.sidebar-image{border:1px solid var(--line);border-radius:8px;height:112px;overflow:hidden}.sidebar-image img{height:100%;object-fit:cover;width:100%}.nav-list{display:grid;grid-gap:6px;gap:6px}.sidebar-mascot{align-items:center;display:flex;justify-content:center;margin-top:auto;padding:12px 0}.sidebar-mascot img{height:auto;max-width:180px;width:80%}.topbar{display:flex;justify-content:flex-end;margin-bottom:18px;position:-webkit-sticky;position:sticky;top:12px;z-index:20}.theme-toggle{background:var(--surface-strong);border:1px solid var(--line);border-radius:var(--radius);display:flex;gap:2px;padding:3px}.theme-toggle-btn{align-items:center;background:transparent;border:0;border-radius:7px;color:var(--muted);cursor:pointer;display:flex;flex:1 1;font-size:12px;gap:4px;justify-content:center;padding:6px 4px;white-space:nowrap}.theme-toggle-btn:hover{background:var(--hover);color:var(--text)}.theme-toggle-btn-active{background:var(--surface);box-shadow:var(--shadow-sm);color:var(--text)}.theme-toggle-label{font-size:12px}.section-tabs{background:var(--surface-strong);border-radius:12px;display:inline-flex;flex-wrap:wrap;gap:2px;margin-bottom:22px;padding:3px}.section-tab{border-radius:9px;color:var(--muted);font-weight:600;padding:7px 18px;transition:background .18s ease,color .18s ease,box-shadow .18s ease}.section-tab:hover{color:var(--text)}.section-tab-active,.section-tab-active:hover{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.nav-link{border-radius:var(--radius);color:var(--text);font-weight:500;padding:9px 12px;transition:background .15s ease,color .15s ease}.nav-link:hover{background:var(--surface-strong)}.nav-link-active{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.sidebar-footer{border-top:1px solid var(--line);color:var(--muted);display:grid;grid-gap:6px;gap:6px;margin-top:auto;overflow-wrap:anywhere;padding-top:14px}.sidebar-footer strong{color:var(--text);font-size:12px}.user-block{border-bottom:1px solid var(--line);display:grid;grid-gap:7px;gap:7px;margin-bottom:8px;padding-bottom:12px}.user-block span{color:var(--text);font-weight:800}.user-block button,.user-block form{width:100%}.main-content{min-width:0;padding:28px}.page-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:22px}.brand-logo-lg{height:64px;margin-bottom:12px;width:64px}.page-header h2{font-size:28px;line-height:1.15}.page-description{margin:8px 0 0;max-width:760px}.header-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.metric-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:22px}.metric-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:grid;grid-gap:6px;gap:6px;min-height:112px;padding:18px 20px}.metric-card small,.metric-card span{color:var(--muted)}.metric-card span{font-size:13px;font-weight:500}.metric-card strong{font-size:30px;font-weight:600;letter-spacing:-.02em;line-height:1.1;overflow-wrap:anywhere}.metric-good strong{color:var(--green)}.metric-warning strong{color:var(--yellow)}.metric-critical strong{color:var(--red)}.content-grid{display:grid;grid-gap:18px;gap:18px;grid-template-columns:minmax(0,1fr)}.split-grid{display:grid;grid-gap:18px;gap:18px;grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:20px}.panel-header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;margin-bottom:14px}.panel-header h3{margin:0}.panel-header p{color:var(--muted);margin:4px 0 0}.market-list,.summary-list{display:grid;grid-gap:10px;gap:10px;list-style:none;margin:0;padding:0}.market-list li,.summary-list li{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:10px;justify-content:space-between;padding:10px 0}.market-list li:last-child,.summary-list li:last-child{border-bottom:0}.table-wrap{overflow-x:auto}table{border-collapse:collapse;min-width:1040px;width:100%}td,th{border-bottom:1px solid var(--line);padding:13px 12px;text-align:left;vertical-align:top}th{color:var(--muted);font-size:12.5px;font-weight:600;letter-spacing:0;white-space:nowrap}tbody tr{transition:background .15s ease}tbody tr:hover{background:var(--hover)}tbody tr:last-child td{border-bottom:0}td{overflow-wrap:break-word}td .small-text{overflow-wrap:anywhere}.status-badge{border-radius:999px;display:inline-flex;font-size:12px;font-weight:800;line-height:1;padding:6px 8px;white-space:nowrap}.badge-critical{background:var(--red-bg);color:var(--red)}.badge-warning{background:var(--yellow-bg);color:var(--yellow)}.badge-good{background:var(--green-bg);color:var(--green)}.badge-info{background:var(--info-bg);color:var(--info)}.badge-muted{background:var(--badge-muted-bg);color:var(--muted)}.filter-form{align-items:flex-end;display:flex;flex-wrap:wrap;gap:10px}.filter-form label{color:var(--muted);display:grid;font-size:13px;font-weight:700;grid-gap:5px;gap:5px}.form-status{align-self:center;font-size:13px;font-weight:800;margin:0}.form-status-success{color:var(--green)}.form-status-error{color:var(--red)}.empty-state,.notice{border-radius:var(--radius);padding:16px 18px}.empty-state p,.notice p{margin:6px 0 0}.notice-error{background:var(--red-bg);color:var(--red)}.notice-warning{background:var(--yellow-bg);color:var(--yellow)}.notice-success{background:var(--green-bg);color:var(--green)}.notice-info{background:var(--info-bg);color:var(--info)}.progress-block{display:grid;grid-gap:7px;gap:7px;margin-top:12px}.progress-track{background:rgb(255 255 255/68%);border:1px solid rgb(23 33 31/12%);border-radius:999px;height:12px;overflow:hidden;width:100%}.progress-fill{background:currentColor;border-radius:inherit;height:100%;min-width:0}.progress-detail,.progress-meta{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}.progress-meta{font-weight:800}.progress-detail{color:inherit;font-size:13px;opacity:.86}.empty-state{background:var(--surface-strong);border:1px dashed var(--line-strong);color:var(--muted)}.trend-chart{align-items:flex-end;display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fit,minmax(52px,1fr));min-height:190px}.trend-column{align-items:center;display:grid;grid-gap:6px;gap:6px;min-width:0}.trend-label,.trend-value{color:var(--muted);font-size:12px;text-align:center}.trend-bar-shell{align-items:flex-end;background:var(--surface-strong);border-radius:8px;display:flex;height:128px;justify-content:center;width:100%}.trend-bar{background:var(--accent);border-radius:6px 6px 0 0;max-width:36px;width:62%}.chart-loading{align-items:center;background:var(--surface-strong);border-radius:var(--radius);color:var(--muted);display:flex;min-height:190px;padding:20px}.action-row{display:flex;flex-wrap:wrap;gap:8px}.settings-dialog{border:1px solid var(--line);border-radius:8px;box-shadow:0 24px 70px rgb(23 33 31/24%);max-width:min(920px,calc(100vw - 48px));padding:0;width:920px}.summary-fullscreen{background:var(--surface);border:none;color:inherit;height:100dvh;max-height:100dvh;max-width:100vw;padding:0;width:100vw}.summary-fullscreen::-webkit-backdrop{background:rgb(23 33 31/42%)}.summary-fullscreen::backdrop{background:rgb(23 33 31/42%)}.summary-fullscreen-body{box-sizing:border-box;display:flex;flex-direction:column;gap:12px;height:100%;margin:0 auto;max-width:1120px;overflow-y:auto;padding:28px clamp(16px,4vw,48px) 40px}.settings-dialog::-webkit-backdrop{background:rgb(23 33 31/42%)}.settings-dialog::backdrop{background:rgb(23 33 31/42%)}.settings-dialog-body{display:grid;grid-gap:18px;gap:18px;padding:22px}.settings-dialog-header{align-items:flex-start;display:flex;gap:14px;justify-content:space-between}.settings-dialog-header h3{font-size:24px;line-height:1.15;margin:0}.settings-dialog-header p{color:var(--muted);margin:8px 0 0;max-width:680px}.login-page{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,440px);min-height:100vh}.login-hero{align-items:flex-end;background:linear-gradient(180deg,rgb(8 127 115/8%),rgb(23 33 31/72%)),url(https://images.unsplash.com/photo-1586528116311-ad8dd3c8310d?auto=format&fit=crop&w=1600&q=80);background-position:50%;background-size:cover;color:white;display:flex;padding:48px}.login-hero h1{font-size:44px;line-height:1.05;margin:0}.login-hero p:last-child{font-size:18px;line-height:1.5;margin:14px 0 0;max-width:560px}.login-panel{align-content:center;background:var(--surface);border-left:1px solid var(--line);display:grid;grid-gap:22px;gap:22px;padding:42px}.login-panel h2{font-size:28px;line-height:1.15;margin:0}.login-panel .muted{margin:8px 0 0}.login-form{display:grid;grid-gap:14px;gap:14px}.login-form label{color:var(--muted);display:grid;font-size:13px;font-weight:800;grid-gap:6px;gap:6px}.login-form button,.login-form input{width:100%}.public-page{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:24px}.public-panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:16px;gap:16px;max-width:560px;padding:28px;width:100%}.public-panel h1{font-size:32px;line-height:1.1;margin:0}.public-panel p{color:var(--muted);margin:0}.settings-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.setting-field{display:grid;grid-gap:7px;gap:7px}.setting-field span{display:grid;font-size:13px;font-weight:600;grid-gap:4px;gap:4px}.setting-field em,.setting-field small{color:var(--muted);font-size:12px;font-style:normal;font-weight:500;line-height:1.45}.setting-field input,.setting-field select{width:100%}.settings-note{background:var(--surface-strong);border:1px solid var(--line);border-radius:var(--radius);padding:12px}.sidebar-image-preview{border:1px solid var(--line);border-radius:var(--radius-lg);max-width:440px;overflow:hidden}.sidebar-image-preview img{display:block;height:auto;object-fit:cover;width:100%}.date-range-form{align-items:flex-end;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.date-range-form label{color:var(--muted);display:grid;font-size:13px;font-weight:500;grid-gap:5px;gap:5px}.form-error,.settings-note p{margin:6px 0 0}.form-error{color:var(--red);font-weight:700}.settings-actions{display:flex;gap:10px;justify-content:flex-end}.small-text{color:var(--muted);font-size:13px}.table-link{color:var(--teal);font-weight:800}@media (max-width:1100px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;position:static}.sidebar-footer,.sidebar-image{display:none}.nav-list{display:flex;flex-wrap:wrap}.metric-grid,.settings-grid,.split-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.login-page{grid-template-columns:1fr}.login-hero{min-height:320px}.login-panel{border-left:0}}@media (max-width:680px){.main-content{padding:18px}.page-header{display:grid}.metric-grid,.settings-grid,.split-grid{grid-template-columns:1fr}.settings-actions,.settings-dialog-header{display:grid}.filter-form{align-items:stretch;display:grid}.button-link,button{width:100%}.login-hero{min-height:260px;padding:28px}.login-hero h1{font-size:34px}.login-panel{padding:28px}}