:root{--ink:#10231d;--text:#26352f;--muted:#4b5a53;--subtle:#5c6a63;--green:#17634d;--green-dark:#0f4a39;--mint:#dff5be;--line:#d9e1db;--line-soft:#e8ede9;--bg:#f3f6f2;--card:#fff;--red:#a63b2f;--amber:#8a5a00;--sidebar:#18342b;--focus:#2f7d5f;--font:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 var(--font);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit}
button,.button{cursor:pointer}
button{border:0}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{color:var(--ink)}
h1{font-size:38px;letter-spacing:-1px;line-height:1.15;margin-bottom:10px;font-weight:650}
h2{font-size:22px;font-weight:650;letter-spacing:-.3px;line-height:1.3}
h3{font-size:18px}
p{color:var(--muted)}
small{font-size:14px}
label{display:flex;flex-direction:column;gap:8px;font-size:15px;font-weight:600;color:var(--ink)}
input,select{border:1px solid #b9c5bd;border-radius:8px;background:#fff;padding:11px 13px;color:var(--ink);min-width:0;min-height:46px;font-size:16px}
input::placeholder{color:#6b7872}
input:focus,select:focus{outline:3px solid #8fc3a6;outline-offset:0;border-color:var(--focus)}
.primary{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:var(--green);color:#fff;padding:12px 22px;min-height:46px;border-radius:8px;font-weight:600;font-size:16px;white-space:nowrap}
.primary:hover{background:var(--green-dark)}
button:disabled{opacity:.6;cursor:wait}
.quiet{background:none;color:inherit;padding:8px 0}
.muted,.caption{color:var(--muted)}
.caption{font-size:14px;margin:16px 0 0}
.eyebrow{font-size:13px;font-weight:700;letter-spacing:1.2px;color:var(--green);display:block;margin-bottom:8px;text-transform:uppercase}
.brand{display:flex;align-items:center;font-size:28px;font-weight:650;letter-spacing:-1px;color:#fff}
.brand-dot{color:var(--mint)}
.brand-icon{display:inline-flex;width:34px;height:34px;margin-right:10px;border-radius:10px;background:var(--mint);color:#1d4033;align-items:center;justify-content:center;font-size:26px;font-style:italic}
.sidebar{position:fixed;inset:0 auto 0 0;width:240px;background:var(--sidebar);color:#dbe6df;padding:30px 18px;display:flex;flex-direction:column;overflow-y:auto}
.sidebar-head{display:flex;align-items:center;justify-content:space-between}
.sidebar-menu{display:flex;flex-direction:column;flex:1}
.menu-toggle{display:none}
.workspace-label{font-size:12px;letter-spacing:1.2px;color:#a9c3b6;margin:44px 12px 10px;font-weight:600}
nav a{display:flex;align-items:center;gap:12px;padding:12px 14px;margin:3px 0;border-radius:8px;font-size:16px;color:#e4ede7}
nav a span{font-size:20px;width:24px;text-align:center}
nav a.active{color:#fff;background:#2e5443;font-weight:600;box-shadow:inset 3px 0 0 var(--mint)}
nav a:hover{background:#274a3b}
.sidebar-bottom{margin-top:auto;font-size:14px;padding:20px 12px 0;color:#dbe6df}
.sidebar-bottom p{font-size:14px;color:#b7cbc0;margin:8px 0 12px}
.sidebar-bottom .quiet{color:#fff;font-weight:600;font-size:15px}
.status-dot,.live-dot{display:inline-block;width:8px;height:8px;background:#bde789;border-radius:50%;margin-right:8px}
.workspace{margin-left:240px}
.topbar{height:68px;padding:0 40px;display:flex;align-items:center;justify-content:space-between;background:#fbfcfa;border-bottom:1px solid var(--line);font-size:15px;color:var(--subtle)}
.crumb{margin-left:8px;color:var(--ink);font-weight:600}
.top-right{display:flex;align-items:center;gap:10px}
.live-dot{background:#39815c}
.avatar{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#dfe8d6;color:#2c4a2a;font-weight:700;margin-left:14px}
.content{max-width:1500px;margin:auto;padding:36px 40px}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}
.page-heading p{margin:0;font-size:17px}
.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}
.metric{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px 22px;min-height:136px}
.metric>span{font-size:15px;color:var(--muted);font-weight:500}
.metric h2{font-size:30px;margin:8px 0 4px;letter-spacing:-.5px;overflow-wrap:anywhere}
.metric small{color:var(--subtle);font-size:14px;display:block}
.metric.accent{background:var(--mint);border-color:#c4df9e}
.metric.accent small,.metric.accent>span{color:#3b5227}
.panel{background:var(--card);border:1px solid var(--line);padding:24px;border-radius:12px;margin-bottom:22px;min-width:0;overflow:hidden}
.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;flex-wrap:wrap}
.panel-heading h2{margin:0}
.panel-heading .eyebrow{margin-bottom:4px}
.two-col{display:grid;grid-template-columns:1.45fr 1fr;gap:22px}
.chart{height:300px}
.chart.tall{height:400px}
.chart.stock{height:540px}
.highcharts-range-selector-buttons .highcharts-button text{font-size:13px}
.editorial{background:#e9efe2;padding:30px;display:flex;flex-direction:column}
.editorial h2{font-size:30px;line-height:1.2;margin:20px 0 14px}
.editorial p{color:var(--muted);max-width:380px;font-size:16px}
.pill{display:inline-flex;font-size:13px;letter-spacing:.6px;font-weight:600;border:1px solid #b9cdb0;border-radius:6px;padding:4px 10px;color:#3d5634;width:fit-content;background:#f6faf2}
.horizons{display:flex;gap:30px;padding:8px 0 22px;flex-wrap:wrap}
.horizons span{font-size:26px;color:var(--ink);font-weight:600}
.horizons small{display:block;font-size:14px;color:var(--muted);font-weight:400}
.text-link{font-size:16px;font-weight:600;color:var(--green);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.editorial .text-link{margin-top:auto}
.search-form{display:flex;gap:16px;align-items:end;margin-bottom:20px}
.grow{flex:1}
.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;align-items:end}
.form-grid .wide{grid-column:span 2}
.form-grid button{height:46px}
.positive{color:var(--green);font-weight:600}
.negative{color:var(--red);font-weight:600}
.stock-link{font-weight:600;color:var(--green)}
.stock-link small{font-weight:400;display:block;color:var(--subtle);font-size:14px}
.table-action{display:inline-flex;align-items:center;min-height:36px;padding:6px 12px;border-radius:6px;background:#e3eee0;color:var(--green-dark);font-size:14px;font-weight:600}
.danger{color:var(--red);background:#f8e7e3}
.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:14px;font-weight:600;white-space:nowrap;background:#e8ede9;color:var(--ink)}
.badge.ok{background:#dcefd6;color:#1f5a2c}
.badge.bad{background:#f8e1dc;color:#8c2f24}
.badge.busy{background:#fdf0cf;color:var(--amber)}
.chip{display:inline-flex;margin:2px 6px 2px 0;padding:2px 8px;border-radius:6px;font-size:14px;font-weight:600;white-space:nowrap;background:#e3eee0;color:#1f5a2c}
.chip.bad{background:#f8e1dc;color:#8c2f24;cursor:help}
.chip.skip{background:#e8ede9;color:#3f4d46;cursor:help}
.chip[title]:not([title='']){cursor:help}
.run-message{display:block;color:var(--muted);font-size:14px;margin-top:4px}
.sub{display:block;color:var(--subtle);font-size:13px}
.sweetspots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}
.spot{display:flex;flex-direction:column;gap:2px;border-radius:10px;padding:14px 16px;border:1px solid var(--line);border-left-width:5px}
.spot.buy{background:#eef7ef;border-left-color:#1f7a45}
.spot.sell{background:#fbefed;border-left-color:#b8322a}
.spot-label{font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.6px}
.spot.buy .spot-label{color:#1f7a45}
.spot.sell .spot-label{color:#b8322a}
.spot strong{font-size:24px;color:var(--ink);line-height:1.3}
.spot strong span{font-size:16px}
.spot>span:not(.spot-label){color:var(--text)}
.spot small{color:var(--subtle)}
.spot-note{grid-column:1/-1;margin:0}
.spot-scope{grid-column:1/-1;font-size:14px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-top:4px}
.spot.short{border-left-style:dashed;background:#fff}
.swing{grid-column:1/-1;border:1px solid var(--line);border-radius:10px;padding:14px 16px;background:#f7f9f6}
.swing .spot-label{color:var(--ink)}
.swing ol{margin:8px 0;padding-left:22px}
.swing li{margin:4px 0}
.swing li.buy b{color:#1f7a45}
.swing li.sell b{color:#b8322a}
.swing small{color:var(--subtle)}
.swing ul{margin:8px 0;padding-left:20px}
.swing ul li{margin:4px 0}
.price-head{display:flex;align-items:baseline;gap:8px 18px;flex-wrap:wrap}
.last-price{display:flex;align-items:baseline;gap:4px 10px;flex-wrap:wrap}
.last-price strong{font-size:28px;line-height:1.1;color:var(--ink);letter-spacing:-.5px}
.last-price span{font-size:16px}
.last-price small{flex-basis:100%;color:var(--subtle);font-size:13px}
.live-badge{font-size:12px!important;font-weight:700;color:#8a5a00;background:#fdf0cf;border-radius:999px;padding:1px 8px}
.live-badge.stale{color:var(--muted);background:#e8ede9}
.ai-summary{font-size:17px;color:var(--text);max-width:900px}
.ai-items{list-style:none;margin:0;padding:0}
.ai-items li{display:grid;grid-template-columns:auto auto auto 1fr;gap:6px 10px;align-items:start;padding:10px 0;border-top:1px solid var(--line-soft)}
.ai-items li div b{display:block;font-weight:600;color:var(--ink)}
.ai-items li div small{color:var(--subtle)}
.ai-rel{color:var(--green);letter-spacing:1px;white-space:nowrap}
.ai-rel i{color:#cfd8d2;font-style:normal}
.tabs{display:flex;gap:6px;margin:0 0 14px;overflow-x:auto;border-bottom:1px solid var(--line)}
.tab{background:none;padding:12px 16px;font-size:16px;font-weight:600;color:var(--muted);border-bottom:3px solid transparent;white-space:nowrap;min-height:46px}
.tab.active{color:var(--ink);border-bottom-color:var(--green)}
.tab[data-list="buy"].active{border-bottom-color:#1f7a45}
.tab[data-list="sell"].active{border-bottom-color:#b8322a}
.tab-count{display:inline-block;margin-left:8px;font-size:13px;background:var(--line-soft);border-radius:999px;padding:0 8px;color:var(--muted)}
.trend-title{display:flex;align-items:center;gap:6px 10px;flex-wrap:wrap}
.trend-title small{margin-left:0!important}
.trend-company{margin:6px 0 0;color:var(--muted);font-size:14px;font-style:italic}
.trend-company a{color:var(--green);font-style:normal;white-space:nowrap}
.trend-summary{margin:6px 0 2px;color:var(--text);font-size:15px}
.trend-reason{margin:2px 0;font-size:14px;color:var(--muted)}
.trend-reason a{color:var(--green)}
.trends-list{display:grid;gap:10px}
.trend{display:grid;grid-template-columns:44px 1fr auto;gap:14px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.trend-rank{font-size:26px;font-weight:700;color:var(--green);text-align:center}
.trend-main b{font-size:18px;color:var(--ink)}
.trend-main small{margin-left:8px;color:var(--subtle)}
.trend-bar{height:6px;background:var(--line-soft);border-radius:3px;margin:8px 0 6px;overflow:hidden}
.trend-bar i{display:block;height:100%;background:var(--green)}
.trend-sources a.chip{text-decoration:none}
.corridor{margin-top:22px;border-top:1px solid var(--line);padding-top:18px}
.corridor-head{display:flex;justify-content:space-between;gap:16px;align-items:end;flex-wrap:wrap;margin-bottom:14px}
.corridor-head h3{margin:0 0 4px}
.corridor-head .caption{margin:0}
.corridor-controls{display:flex;gap:14px;flex-wrap:wrap}
.corridor-controls input{width:150px}
.corridor-levels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}
#runs-table th,#runs-table td{text-align:left!important}
table.dataTable{font-size:15px!important;color:var(--text)}
table.dataTable thead th{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-weight:700;border-bottom:1px solid var(--line)!important;padding:12px 10px!important;white-space:nowrap}
table.dataTable tbody td{padding:14px 10px!important;border-bottom:1px solid var(--line-soft)!important;vertical-align:top}
table.dataTable tbody tr{background:#fff!important}
table.dataTable tbody tr:hover{background:#f7faf6!important}
.dt-container{color:var(--muted)}
.dt-layout-row{font-size:15px;color:var(--muted);gap:10px}
.dt-input{padding:8px!important;border-color:#b9c5bd!important;min-height:40px}
.dt-paging-button{min-width:40px;min-height:40px;font-size:15px!important}
.dt-scroll{overflow:auto}
#notice{background:#e1f0d6;color:#234a1f;border:1px solid #b7d4a4;padding:14px 18px;border-radius:8px;margin-bottom:20px;font-size:16px}
#notice.error{background:#fbe7e2;color:#7f2a1f;border-color:#e8bcb2}
.quality-block{font-size:16px}
.quality-block dl{display:grid;grid-template-columns:1fr auto;gap:12px 16px}
.quality-block dt{color:var(--muted)}
.quality-block dd{text-align:right;margin:0;font-weight:600;color:var(--ink)}
footer{display:flex;justify-content:space-between;color:var(--subtle);font-size:14px;padding:8px 0 24px;gap:20px}
.login{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:1fr 1fr}
.login-story{background:var(--sidebar);color:#f0f5ea;padding:48px 64px;display:flex;flex-direction:column;justify-content:space-between}
.login-story h1{font-size:52px;letter-spacing:-1.5px;color:#fff}
.login-story p{color:#c9d9ce;font-size:18px}
.login-story .eyebrow{color:#c8e3a8}
.login-story small{color:#a9c3b6;font-size:13px;letter-spacing:1.5px}
.login-form{display:flex;align-items:center;justify-content:center;padding:50px}
.login-form>div{width:100%;max-width:380px}
.login-form h2{font-size:30px}
.login-form form{margin:28px 0}
.login-form label{margin-bottom:18px}
.login-form button{width:100%;margin-top:10px}
.login-form small{color:var(--subtle)}
#login-error{color:var(--red);margin-top:15px;font-weight:600}
.decor-chart{height:135px;display:flex;align-items:end;gap:15px;margin:35px 0}
.decor-chart i{height:30%;background:#88b479;width:18px;border-radius:3px}
.decor-chart i:nth-child(3n){height:60%}
.decor-chart i:nth-child(3n + 1){height:45%}
.decor-chart i:nth-child(n + 7){height:75%;background:#c5e6a0}
.decor-chart i:last-child{height:100%}
body [hidden]{display:none!important}
@media(max-width:1200px){
.sidebar{width:210px;padding:26px 12px}
.workspace{margin-left:210px}
.content{padding:28px}
.topbar{padding:0 28px}
.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.two-col{grid-template-columns:1fr}
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
.sidebar{position:sticky;top:0;z-index:50;width:auto;padding:10px 16px;overflow:visible;box-shadow:0 2px 10px rgba(0,0,0,.15)}
.brand{font-size:24px}
.brand-icon{width:30px;height:30px;font-size:22px}
.menu-toggle{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:46px;height:46px;padding:11px;background:transparent;border-radius:8px}
.menu-toggle span{display:block;height:2px;background:#fff;border-radius:2px;transition:transform .2s,opacity .2s}
.sidebar.open .menu-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.sidebar.open .menu-toggle span:nth-child(2){opacity:0}
.sidebar.open .menu-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.sidebar-menu{display:none;padding:6px 0 12px;max-height:calc(100dvh - 66px);overflow-y:auto}
.sidebar.open .sidebar-menu{display:flex}
.workspace-label{display:none}
nav a{padding:13px 12px;font-size:17px}
.sidebar-bottom{border-top:1px solid #2e5443;margin-top:10px;padding:14px 12px 0}
.workspace{margin:0}
.topbar{display:none}
.content{padding:22px 16px}
.page-heading{align-items:stretch;flex-direction:column;gap:16px}
.page-heading .primary,.page-heading select,.page-heading label{width:100%}
h1{font-size:30px}
.metric{padding:16px;min-height:0}
.metric h2{font-size:24px}
.panel{padding:18px 16px;border-radius:10px}
.search-form{flex-direction:column;align-items:stretch}
.chart{height:260px}
.chart.tall{height:320px}
.chart.stock{height:460px}
.editorial{padding:22px}
.editorial h2{font-size:26px}
.login{display:block}
.login-story{padding:28px 20px;min-height:0}
.login-story h1{font-size:34px;margin-top:28px}
.login-story p{font-size:16px}
.decor-chart,.login-story>small{display:none}
.login-form{padding:32px 20px}
footer{flex-direction:column;gap:6px}
.dt-layout-row{flex-wrap:wrap}
.dt-layout-cell{width:100%}
.dt-search input{width:100%;margin-left:0!important;margin-top:6px}
}
@media(max-width:560px){
.trend{grid-template-columns:32px 1fr}
.trend-action{grid-column:1/-1}
.trend-action button{width:100%}
.trend-main small{display:block;margin:0}
.ai-items li{grid-template-columns:auto 1fr}
.ai-items li div{grid-column:1/-1}
.corridor-levels{grid-template-columns:1fr}
.corridor-controls,.corridor-controls label,.corridor-controls input{width:100%}
.sweetspots{grid-template-columns:1fr}
.summary-grid{grid-template-columns:1fr 1fr;gap:10px}
.metric>span,.metric small{font-size:13px}
.metric h2{font-size:21px}
.form-grid{grid-template-columns:1fr}
.form-grid .wide{grid-column:auto}
.form-grid button{width:100%}
table.dataTable{font-size:15px!important}
table.dataTable thead th,table.dataTable tbody td{padding:10px 8px!important}
}
