﻿*{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#f4f7fb;
  --panel:#ffffff;
  --panel2:#f9fbfe;
  --line:#dbe4ef;
  --line2:#c8d4e3;
  --text:#172033;
  --muted:#607088;
  --soft:#8390a4;
  --brand:#17803d;
  --brand2:#0f6d32;
  --brandSoft:#e8f6ee;
  --blue:#2563eb;
  --amber:#b7791f;
  --red:#dc2626;
  --green:#16803b;
  --shadow:0 14px 36px rgba(23,32,51,.08);
  --toggleBg:#eef3f8;
  --toggleActive:#ffffff;
  --toggleText:#334155;
  --toggleActiveText:#172033;
  --mono:"SFMono-Regular","Consolas","Liberation Mono",monospace;
  --sans:"Segoe UI",Roboto,Arial,sans-serif;
}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--sans);line-height:1.45;min-height:100vh}
body.theme-dark{
  --bg:#0c111b;
  --panel:#121a27;
  --panel2:#162033;
  --line:#263246;
  --line2:#33415a;
  --text:#e8edf5;
  --muted:#9aa8bb;
  --soft:#748298;
  --brand:#52b76f;
  --brand2:#7bd894;
  --brandSoft:#173423;
  --shadow:0 18px 44px rgba(0,0,0,.34);
  --toggleBg:#1a2434;
  --toggleActive:#2a374b;
  --toggleText:#9aa8bb;
  --toggleActiveText:#ffffff;
}
body.theme-dark .sidebar,body.theme-dark .brand,body.theme-dark .topbar,body.theme-dark .hero-main,body.theme-dark .panel,body.theme-dark .index-pill,body.theme-dark .search-box,body.theme-dark .ac-list,body.theme-dark .top-actions a,body.theme-dark .btn,body.theme-dark .quick-btn{background:var(--panel);}
body.theme-dark .topbar{background:rgba(12,17,27,.92);}
body.theme-dark .hero-main{background:linear-gradient(145deg,#121a27 0%,#111b2b 68%,#102719 100%);}
body.theme-dark .tool{background:var(--panel2);}
body.theme-dark .tool:hover{background:#19243a;}
body.theme-dark .ac-item:hover,body.theme-dark .ac-item.selected{background:#183522;}
body.theme-dark .ac-exchange{background:#1f2b3d;color:var(--soft);}
body.theme-dark .side-card{background:linear-gradient(180deg,#142e1f,#121a27);border-color:#255f38;}
body.theme-dark .top-actions a.primary{background:#e8edf5;border-color:#e8edf5;color:#111827;}
body.theme-dark .btn.primary{background:var(--brand);border-color:var(--brand);color:#07130b;}
body.admin-shell-v2{
  --bg-body:var(--bg);
  --bg-panel:var(--panel);
  --bg-panel-h:var(--panel2);
  --bg-input:var(--panel);
  --bg-row-alt:#f6f9fc;
  --bg-row-hov:#eef8f2;
  --border:var(--line);
  --text:var(--muted);
  --text-muted:var(--muted);
  --text-head:var(--text);
  --text-hi:var(--text);
  --accent:var(--brand);
  --green:var(--green);
  --red:var(--red);
  --amber:var(--amber);
  background:var(--bg);
}
body.theme-dark.admin-shell-v2{
  --bg-body:var(--bg);
  --bg-panel:var(--panel);
  --bg-panel-h:var(--panel2);
  --bg-input:#1a2434;
  --bg-row-alt:rgba(255,255,255,.025);
  --bg-row-hov:#19243a;
  --border:var(--line);
  --text:var(--muted);
  --text-muted:var(--muted);
  --text-head:var(--text);
  --text-hi:var(--text);
  --accent:var(--brand);
}
body.admin-shell-v2 .kpi-card,
body.admin-shell-v2 .widget-stat,
body.admin-shell-v2 .panel,
body.admin-shell-v2 .gs-panel,
body.admin-shell-v2 .node-card{
  background:var(--bg-panel)!important;
  border:1px solid var(--border)!important;
  box-shadow:0 1px 0 rgba(23,32,51,.03);
}
body.admin-shell-v2 .kpi-card,
body.admin-shell-v2 .widget-stat{
  border-radius:8px!important;
}
body.admin-shell-v2 .kpi-val,
body.admin-shell-v2 .widget-stat .stat-val{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:3px 10px;
  border-radius:7px;
  background:var(--brandSoft);
  border:1px solid rgba(23,128,61,.18);
}
body.admin-shell-v2 .mini-table-wrap,
body.admin-shell-v2 .table-responsive,
body.admin-shell-v2 .table-wrap{
  border:1px solid var(--border);
  border-radius:8px;
  background:var(--bg-panel);
}
body.admin-shell-v2 table.mini-table,
body.admin-shell-v2 table.gs-table,
body.admin-shell-v2 table.preview-table{
  border-collapse:separate;
  border-spacing:0;
}
body.admin-shell-v2 table.mini-table thead th,
body.admin-shell-v2 table.gs-table>thead>tr>th,
body.admin-shell-v2 table.preview-table thead th{
  border-bottom:1px solid var(--border)!important;
}
body.admin-shell-v2 table.mini-table td,
body.admin-shell-v2 table.gs-table>tbody>tr>td,
body.admin-shell-v2 table.preview-table td{
  border-bottom:1px solid var(--border)!important;
}
body.admin-shell-v2 input[type=text],
body.admin-shell-v2 input[type=date],
body.admin-shell-v2 input[type=number],
body.admin-shell-v2 input[type=email],
body.admin-shell-v2 input[type=password],
body.admin-shell-v2 select,
body.admin-shell-v2 textarea,
body.admin-shell-v2 .form-control,
body.admin-shell-v2 .input-group-addon{
  background:var(--bg-input)!important;
  border:1px solid var(--border)!important;
  color:var(--text-head)!important;
  box-shadow:none!important;
}
body.admin-shell-v2 .btn.btn-sm,
body.admin-shell-v2 .btn.btn-default.btn-sm,
body.admin-shell-v2 button.btn.btn-sm{
  height:30px;
  min-height:30px;
  padding:0 10px!important;
  border-radius:5px;
  font-size:12px!important;
  line-height:1!important;
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  gap:6px;
  white-space:nowrap;
}
body.admin-shell-v2 .btn.btn-sm i{font-size:12px;line-height:1}
body.admin-shell-v2 .topbar-refresh{
  height:30px;
  padding:0 10px!important;
  font-size:12px!important;
  display:inline-flex;
  align-items:center;
  gap:6px;
  white-space:nowrap;
}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
.layout{min-height:100vh;display:flex}
.sidebar{position:sticky;top:0;height:100vh;background:#fff;border-right:1px solid var(--line);display:flex;flex:0 0 264px;flex-direction:column;z-index:30;transition:flex-basis .18s ease,width .18s ease,left .2s ease,transform .18s ease}
.brand{height:72px;display:flex;align-items:center;gap:10px;padding:0 20px;border-bottom:1px solid var(--line);position:relative}
.brand-mark{width:34px;height:34px;border-radius:8px;background:linear-gradient(135deg,var(--brand),#39a65c);display:grid;place-items:center;color:#fff;font-weight:800;letter-spacing:-1px}
.brand-text{font-size:22px;font-weight:800;letter-spacing:-.4px;color:var(--brand)}
.brand-text span{color:var(--text)}
.sidebar-collapse{position:absolute;right:-13px;top:22px;width:26px;height:26px;border:1px solid var(--line2);border-radius:999px;background:var(--panel);color:var(--muted);display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 12px rgba(23,32,51,.12);z-index:4;transition:background .15s,color .15s,border-color .15s,transform .18s ease}
.sidebar-collapse:hover{background:var(--brandSoft);border-color:#9bd0ac;color:var(--brand2)}
.sidebar-collapse svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s ease}
.nav-scroll{padding:14px 12px 20px;overflow:auto;flex:1}
.nav-group{margin-bottom:18px}
.nav-title{font-size:11px;font-weight:800;color:var(--soft);letter-spacing:.9px;text-transform:uppercase;padding:9px 10px}
.nav-link{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;color:#334155;font-size:14px;font-weight:650;margin:2px 0;transition:background .15s,color .15s;text-decoration:none}
.nav-link:hover,.nav-link:focus,.nav-link.active{background:var(--brandSoft);color:var(--brand2);text-decoration:none}
.nav-link.disabled,.nav-link.disabled:hover{color:var(--soft);background:transparent;opacity:.58;cursor:not-allowed;pointer-events:none}
.mobile-auth-group{display:none}
.nav-link-primary{background:var(--brand);color:#fff}
.nav-link-primary:hover,.nav-link-primary.active{background:var(--brand2);color:#fff}
.nav-icon{width:18px;height:18px;display:inline-grid;place-items:center;color:currentColor;flex:0 0 auto}
.nav-icon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.side-footer{border-top:1px solid var(--line);padding:14px 14px 18px}
.side-card{position:relative;background:linear-gradient(180deg,#effaf3,#fff);border:1px solid #cfe9d8;border-radius:8px;padding:13px 38px 13px 13px}
.side-card-close{position:absolute;top:8px;right:8px;width:24px;height:24px;border:1px solid rgba(23,128,61,.18);border-radius:999px;background:rgba(255,255,255,.7);color:var(--muted);display:grid;place-items:center;cursor:pointer;box-shadow:0 3px 10px rgba(23,32,51,.08);transition:background .15s,color .15s,border-color .15s,transform .15s}
.side-card-close svg{width:13px;height:13px;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;fill:none}
.side-card-close:hover{background:var(--brandSoft);border-color:#9bd0ac;color:var(--brand2);transform:scale(1.04)}
.side-card strong{display:block;font-size:13px;color:var(--brand2);margin-bottom:4px}
.side-card p{font-size:12px;color:var(--muted);margin-bottom:10px}
.side-card a{display:inline-flex;font-size:12px;font-weight:800;color:#fff;background:var(--brand);padding:7px 10px;border-radius:6px}
@media(min-width:1121px){
body.sidebar-collapsed .sidebar{width:78px;min-width:78px;max-width:78px;flex-basis:78px}
body.sidebar-collapsed .brand{justify-content:center;padding:0}
body.sidebar-collapsed .brand-text,body.sidebar-collapsed .nav-title,body.sidebar-collapsed .side-footer{display:none}
body.sidebar-collapsed .nav-scroll{padding:14px 10px 20px;overflow:visible}
body.sidebar-collapsed .nav-group{margin-bottom:14px}
body.sidebar-collapsed .nav-link{justify-content:center;gap:0;padding:11px 0;font-size:0}
body.sidebar-collapsed .nav-icon,body.sidebar-collapsed .nav-icon svg{width:20px;height:20px}
body.sidebar-collapsed .sidebar-collapse svg{transform:rotate(180deg)}
body.sidebar-collapsed .nav-link{position:relative}
body.sidebar-collapsed .nav-link:hover:after{content:attr(data-label);position:absolute;left:58px;top:50%;transform:translateY(-50%);white-space:nowrap;background:var(--text);color:#fff;border-radius:6px;padding:6px 9px;font-size:12px;font-weight:750;box-shadow:var(--shadow);z-index:80;pointer-events:none}
body.theme-dark.sidebar-collapsed .nav-link:hover:after{background:#e8edf5;color:#111827}
}
.main{min-width:0;flex:1 1 auto;width:100%;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:20;height:72px;background:rgba(244,247,251,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(260px,680px) auto;gap:18px;align-items:center;padding:0 28px}
.mobile-menu{display:none;width:38px;height:38px;border:1px solid rgba(23,128,61,.22);border-radius:8px;background:linear-gradient(135deg,var(--brand),#39a65c);color:#fff;cursor:pointer;font-weight:850;letter-spacing:-1px;box-shadow:0 5px 14px rgba(23,128,61,.16);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.mobile-menu:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(23,128,61,.22);border-color:rgba(23,128,61,.35)}
.mobile-menu:active{transform:translateY(0);box-shadow:0 3px 10px rgba(23,128,61,.18)}
.mobile-menu .mobile-menu-mark{font-size:15px;line-height:1}
.search-wrap{position:relative;min-width:0}
.search-box{display:flex;align-items:center;background:#fff;border:1px solid var(--line2);border-radius:8px;box-shadow:0 1px 0 rgba(23,32,51,.03);height:44px;overflow:hidden}
.search-box:focus-within{border-color:#7bc493;box-shadow:0 0 0 3px rgba(23,128,61,.12)}
.search-box svg{width:18px;height:18px;margin-left:14px;color:var(--soft);flex:0 0 auto}
#searchInput{height:100%;border:0;outline:0;background:transparent;width:100%;padding:0 12px;color:var(--text);font-size:15px}
#goBtn{height:32px;margin-right:6px;border:0;border-radius:6px;background:var(--brand);color:#fff;font-weight:800;padding:0 14px;cursor:pointer;white-space:nowrap}
#goBtn:hover{background:var(--brand2)}
.ac-list{display:none;position:absolute;top:50px;left:0;right:0;background:#fff;border:1px solid var(--line2);border-radius:8px;box-shadow:var(--shadow);max-height:340px;overflow:auto;z-index:50}
.ac-list.show{display:block}
.ac-item{display:grid;grid-template-columns:86px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid #edf2f7;cursor:pointer}
.ac-item:last-child{border-bottom:0}.ac-item:hover,.ac-item.selected{background:#f1f8f4}
.ac-ticker{font-family:var(--mono);font-weight:800;color:var(--brand2);font-size:13px}.ac-name{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ac-exchange{font-size:11px;color:var(--soft);background:#eef3f8;border-radius:5px;padding:3px 7px}
.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;white-space:nowrap}
.user-chip{height:36px;display:inline-flex;align-items:center;justify-content:center;width:36px;border-radius:999px;border:1px solid var(--line2);background:var(--brandSoft);color:var(--brand2);font-size:13px;font-weight:850;overflow:hidden}
.user-chip img{width:100%;height:100%;object-fit:cover}
.profile-link{gap:7px}
.theme-toggle{height:36px;display:flex;align-items:center;gap:2px;border:1px solid var(--line2);background:var(--toggleBg);border-radius:8px;padding:3px}
.theme-toggle button{height:28px;border:0;border-radius:6px;background:transparent;color:var(--toggleText);font-size:12px;font-weight:850;padding:0 9px;cursor:pointer}
.theme-toggle button.active{background:var(--toggleActive);color:var(--toggleActiveText);box-shadow:0 1px 3px rgba(23,32,51,.12)}
.top-actions a{height:36px;display:inline-flex;align-items:center;border:1px solid var(--line2);background:#fff;border-radius:7px;padding:0 12px;font-size:13px;font-weight:750;color:#334155}.top-actions a.primary{background:var(--text);border-color:var(--text);color:#fff}
.content{padding:26px 28px 42px;width:100%;max-width:1380px}
body[data-page="chart"] .content,
body[data-page="seasonality"] .content{max-width:none}
.index-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.index-pill{background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px 14px;min-height:68px;display:flex;flex-direction:column;justify-content:center}
.index-pill:hover{border-color:#9bd0ac;background:#f8fcfa;text-decoration:none}.index-pill .label{font-size:12px;color:var(--muted);font-weight:750}.index-pill .value{font-family:var(--mono);font-size:20px;font-weight:850;line-height:1.15}.index-pill .chg{font-family:var(--mono);font-size:12px;font-weight:800}.quote-line{display:flex;align-items:baseline;gap:9px;margin-top:5px}.quote-value,.quote-change{font-family:var(--mono);font-size:12px;font-weight:850}.quote-value{color:var(--text)}.up{color:var(--green)}.down{color:var(--red)}
.hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:18px;margin-bottom:18px}
.hero-main,.panel{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 1px 0 rgba(23,32,51,.02)}
.hero-main{padding:30px;min-height:320px;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(145deg,#fff 0%,#f7fbff 68%,#eef8f2 100%)}
.eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--brand2);font-weight:850;font-size:12px;letter-spacing:.8px;text-transform:uppercase;margin-bottom:14px}.eyebrow:before{content:"";width:8px;height:8px;border-radius:99px;background:var(--brand)}
h1{font-size:44px;line-height:1.05;letter-spacing:-1.4px;max-width:720px;margin-bottom:14px}h1 span{color:var(--brand)}
.lead{font-size:17px;color:var(--muted);max-width:650px;margin-bottom:24px}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap}.btn{height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;padding:0 14px;font-weight:800;font-size:14px;border:1px solid var(--line2);background:#fff;color:var(--text)}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn:hover{transform:translateY(-1px)}
.quick-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:26px}.quick-label{font-size:12px;color:var(--soft);font-weight:800;text-transform:uppercase;letter-spacing:.6px}.quick-btn{border:1px solid var(--line2);background:#fff;color:#334155;border-radius:18px;padding:5px 11px;font-size:12px;font-family:var(--mono);font-weight:800;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.quick-btn:hover{border-color:#9bd0ac;color:var(--brand2);background:#f2faf5;text-decoration:none}.quick-quote,.quick-change{font-size:11px}
.panel{padding:18px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.panel-title{font-size:16px;font-weight:850}.panel-link{font-size:12px;font-weight:800;color:var(--brand2)}
.watch-row,.mover-row{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #edf2f7}.watch-row:hover,.mover-row:hover{text-decoration:none}.watch-row:last-child,.mover-row:last-child{border-bottom:0}.sym{font-family:var(--mono);font-weight:850}.name{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.price{text-align:right;font-family:var(--mono);font-weight:800}.subchg{display:block;font-size:11px;font-weight:800;margin-top:1px}
.grid{display:grid;grid-template-columns:1fr 1fr 340px;gap:18px}.span2{grid-column:span 2}.tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.tool{border:1px solid var(--line);background:var(--panel2);border-radius:8px;padding:15px;min-height:132px;display:flex;flex-direction:column;justify-content:space-between}.tool:hover{border-color:#9bd0ac;background:#fff}.tool-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--soft);font-weight:850}.tool h3{font-size:16px;margin:7px 0 6px}.tool p{font-size:13px;color:var(--muted)}.tool span{font-size:13px;font-weight:850;color:var(--brand2);margin-top:12px}
.table{width:100%;border-collapse:collapse}.table th{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--soft);text-align:left;padding:9px 0;border-bottom:1px solid var(--line)}.table td{font-size:13px;padding:10px 0;border-bottom:1px solid #edf2f7}.table tr:last-child td{border-bottom:0}.table .num{text-align:right;font-family:var(--mono);font-weight:800}.status{display:inline-flex;padding:3px 7px;border-radius:999px;font-size:11px;font-weight:850}.status.live{background:#e9f7ee;color:var(--brand2)}.status.build{background:#fff5dc;color:var(--amber)}
.news-list a{display:block;padding:11px 0;border-bottom:1px solid #edf2f7}.news-list a:last-child{border-bottom:0}.news-list strong{font-size:13px;display:block}.news-list span{font-size:12px;color:var(--muted)}
.footer{margin-top:22px;color:var(--soft);font-size:12px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.footer a{color:var(--muted);margin-left:14px}
#searchError{display:none;color:var(--red);font-size:12px;font-weight:750;margin-top:7px}
@media(max-width:1120px){.layout{display:block}.sidebar{position:fixed;left:-280px;width:264px;flex-basis:auto;transition:left .2s;box-shadow:var(--shadow)}body.nav-open .sidebar{left:0}.sidebar-collapse{display:none}.mobile-menu{display:inline-grid;place-items:center}.topbar{grid-template-columns:auto minmax(0,1fr);padding:0 16px}.top-actions{display:none}.mobile-auth-group{display:block}.content{padding:20px 16px}.hero{grid-template-columns:1fr}.grid{grid-template-columns:1fr 1fr}.span2{grid-column:span 2}.index-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.topbar{height:auto;min-height:72px;grid-template-columns:auto minmax(0,1fr);gap:10px;padding:12px}.search-box{height:42px}#goBtn{display:none}.content{padding:14px 12px 30px}h1{font-size:32px}.hero-main{padding:22px}.index-strip,.grid,.tool-grid{grid-template-columns:1fr}.span2{grid-column:auto}.ac-item{grid-template-columns:72px minmax(0,1fr)}.ac-exchange{display:none}}



