/* App pages (Overview, Arbitrage, Positions, Admin, Settings): shared look. See DESIGN.md. */
:root{
  --cyan:#00D4E8; --deep:#5FD3E0; --petrol:#8EE6F0; --ink:#E6EEF0;
  --slate:#B3C3C9; --subtle:#8AA0A8; --glacier:#18282E;
  --glass:rgba(255,255,255,.055); --glass-strong:rgba(255,255,255,.085);
  --line:rgba(255,255,255,.09); --line-cyan:rgba(0,212,232,.22);
  --shadow:0 1px 0 rgba(255,255,255,.04) inset, 0 18px 46px rgba(0,0,0,.45);
  --r4:4px; --r8:8px; --r10:10px; --r16:16px;
  --sans:'Familjen Grotesk',-apple-system,'Segoe UI',sans-serif;
  --mono:'DM Mono',ui-monospace,Menlo,monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:#0B1418;min-height:calc(100vh / var(--z,1));overflow-x:hidden;-webkit-font-smoothing:antialiased}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
.mono{font-family:var(--mono)}

/* ===== Animated wallpaper ===== */
.wallpaper{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.blob{position:absolute;border-radius:50%;will-change:transform}  /* no blur filter: the soft radial gradients do the job, and blur halves the frame rate on phones */
.b1{width:62vw;height:62vw;top:-26vw;right:-18vw;background:radial-gradient(circle,rgba(0,212,232,.13) 0%,rgba(0,212,232,0) 70%);animation:drift1 38s ease-in-out infinite}
.b2{width:58vw;height:58vw;bottom:-26vw;left:-20vw;background:radial-gradient(circle,rgba(0,116,131,.22) 0%,rgba(0,116,131,0) 70%);animation:drift2 47s ease-in-out infinite}
.b3{width:40vw;height:40vw;top:34%;left:26%;background:radial-gradient(circle,rgba(0,212,232,.06) 0%,rgba(0,212,232,0) 72%);animation:drift3 54s ease-in-out infinite}
.b4{display:none}
@keyframes drift1{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(-8vw,10vh) scale(1.08)}66%{transform:translate(4vw,4vh) scale(.94)}}
@keyframes drift2{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(10vw,-8vh) scale(1.1)}66%{transform:translate(4vw,6vh) scale(.95)}}
@keyframes drift3{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-12vw,-10vh) scale(1.15)}}
.dots{position:absolute;inset:0;background-image:radial-gradient(rgba(230,238,240,.05) 1px,transparent 1.2px);background-size:24px 24px;
  -webkit-mask-image:radial-gradient(ellipse at 50% 30%,#000 10%,transparent 75%);mask-image:radial-gradient(ellipse at 50% 30%,#000 10%,transparent 75%);animation:dotpan 60s linear infinite}
@keyframes dotpan{to{background-position:24px 240px}}
.grain{position:absolute;inset:0;background:radial-gradient(130% 90% at 50% 0%,transparent 55%,rgba(0,0,0,.35) 100%)}

/* ===== Centered glass nav ===== */
.nav{position:fixed;top:18px;left:50%;transform:translateX(-50%);z-index:50;display:flex;align-items:center;gap:4px;padding:6px;
  background:rgba(255,255,255,.05);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);
  border:1px solid rgba(255,255,255,.10);border-radius:999px;box-shadow:0 8px 32px rgba(0,0,0,.12),0 0 0 1px rgba(0,212,232,.08);max-width:calc(100vw - 24px)}
.brand{display:flex;align-items:center;gap:8px;padding:6px 14px 6px 10px;font-weight:600;font-size:15px;border-right:1px solid var(--line);margin-right:4px;white-space:nowrap}
.tabs{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;min-width:0;flex:1 1 auto}
.tabs::-webkit-scrollbar{display:none}
.tabs::-webkit-scrollbar{display:none}
.tab{display:flex;align-items:center;gap:7px;padding:8px 14px;border-radius:999px;font-size:14px;font-weight:500;color:var(--slate);white-space:nowrap;transition:background .2s,color .2s}
.tab svg{width:15px;height:15px;opacity:.75}
.tab:hover{background:rgba(255,255,255,.05);color:var(--ink)}
.tab.active{background:var(--ink);color:#fff}
.tab.active svg{opacity:1}
.chip{font-family:var(--mono);font-size:10px;padding:1px 6px;border-radius:var(--r4);border:1px solid var(--line);color:var(--subtle);letter-spacing:.04em}
.tab.active .chip{border-color:rgba(255,255,255,.3);color:rgba(255,255,255,.05)}
.count{font-family:var(--mono);font-size:11px;background:var(--ink);color:#fff;border-radius:var(--r4);padding:0 6px}
.tab.active .count{background:var(--cyan);color:var(--ink)}
.sep{width:1px;height:22px;background:var(--line);margin:0 4px;flex:none}
.icon-btn{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:var(--slate);flex:none;transition:background .2s}
.icon-btn:hover{background:rgba(255,255,255,.05);color:var(--ink)}
.icon-btn svg{width:16px;height:16px}

/* ===== Layout ===== */
main{position:relative;z-index:1;max-width:1240px;margin:0 auto;padding:104px 24px 40px}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.date{font-family:var(--mono);font-size:12px;letter-spacing:.12em;color:var(--subtle)}
.tools{display:flex;gap:10px;align-items:center}
.search{display:flex;align-items:center;gap:10px;height:40px;padding:0 10px 0 14px;width:300px;background:var(--glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.10);border-radius:var(--r10);box-shadow:var(--shadow)}
.search svg{width:15px;height:15px;color:var(--subtle);flex:none}
.search input{flex:1;border:none;background:none;outline:none;font:inherit;font-size:14px;color:var(--ink);min-width:0}
.search input::placeholder{color:var(--subtle)}
.kbd{font-family:var(--mono);font-size:11px;border:1px solid var(--line);border-radius:var(--r4);padding:1px 6px;color:var(--subtle);background:rgba(255,255,255,.05)}
.pill{display:flex;align-items:center;gap:10px;height:40px;padding:0 10px 0 14px;font-size:14px;font-weight:500;background:var(--glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.10);border-radius:var(--r10);box-shadow:var(--shadow)}
.switch{width:38px;height:22px;border-radius:999px;background:var(--ink);position:relative;transition:background .25s}
.switch::after{content:"";position:absolute;top:3px;left:19px;width:16px;height:16px;border-radius:50%;background:var(--cyan);transition:left .25s cubic-bezier(.34,1.56,.64,1),background .25s}
.switch.off{background:#76878F}
.switch.off::after{left:3px;background:rgba(255,255,255,.05)}
.pill.square{width:40px;padding:0;justify-content:center;position:relative}
.pill.square svg{width:16px;height:16px}
.notif-dot{position:absolute;top:9px;right:10px;width:6px;height:6px;border-radius:50%;background:var(--cyan)}

.hello{display:flex;align-items:flex-end;gap:32px;margin-bottom:28px;flex-wrap:wrap}
.hello h1{font-size:clamp(40px,6vw,64px);font-weight:500;letter-spacing:-.035em;line-height:1}
.hello h1 span{color:var(--deep)}
.hello h1 .greet{color:var(--ink)}
.hello p{font-size:15px;color:var(--slate);max-width:400px;line-height:1.55;padding-bottom:6px}
.hello b{color:var(--ink);font-weight:600}

.card{background:var(--glass);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);border:1px solid rgba(255,255,255,.10);border-radius:var(--r16);box-shadow:var(--shadow);position:relative;overflow:hidden}
.card-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:20px 22px 0;flex-wrap:wrap}
.card-h h2{font-size:15px;font-weight:600}
.card-h .sub{font-size:13px;color:var(--subtle);margin-top:3px}
.meta{font-family:var(--mono);font-size:12px;color:var(--subtle)}
.label{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--subtle);text-transform:uppercase}

/* Lead panel */
.lead{display:grid;grid-template-columns:330px 1fr;margin-bottom:18px}
.spot{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .4s;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(0,212,232,.14),transparent 60%)}
.lead:hover .spot{opacity:1}
.pnl{padding:24px;border-right:1px solid var(--line);position:relative}
.big{font-size:60px;font-weight:500;letter-spacing:-.04em;line-height:1;margin:16px 0 8px}
.big .cents{color:var(--subtle)}
.delta{font-family:var(--mono);font-size:12px;color:var(--subtle)}
.delta b{color:var(--deep);font-weight:500}
.rows{margin-top:28px}
.row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-top:1px solid var(--line);font-size:14px;color:var(--slate)}
.row .v{font-family:var(--mono);color:var(--ink)}
.row .v i{font-style:normal;color:var(--subtle)}
.bar{height:4px;background:rgba(255,255,255,.08);border-radius:4px;margin:-4px 0 10px;overflow:hidden}
.bar>div{height:100%;width:0;background:var(--ink);border-radius:4px;transition:width 1.4s cubic-bezier(.2,.8,.2,1)}
.chart-wrap{padding:22px 22px 18px;position:relative;display:flex;flex-direction:column}
.chart-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.chart-top h2{font-size:15px;font-weight:600}
.seg{display:flex;padding:3px;background:rgba(255,255,255,.05);border-radius:var(--r8)}
.seg button{font-family:var(--mono);font-size:12px;padding:6px 12px;border-radius:6px;color:var(--slate);transition:all .2s}
.seg button.on{background:rgba(255,255,255,.05);color:var(--ink);box-shadow:0 1px 4px rgba(255,255,255,.1)}
svg.chart{width:100%;height:220px;margin-top:14px;flex:1;overflow:visible}
.xaxis{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;color:var(--subtle);margin-top:8px}
.end-dot{animation:pulse 2.2s ease-out infinite;transform-origin:center;transform-box:fill-box}

/* Spreads + venues */
.mid{display:grid;grid-template-columns:1fr 340px;gap:18px;margin-bottom:18px}
.table-scroll{overflow-x:auto;padding:8px 10px 10px}
table{width:100%;border-collapse:collapse;min-width:680px}
th{font-family:var(--mono);font-weight:400;font-size:11px;letter-spacing:.1em;color:var(--subtle);text-align:left;padding:14px 12px 10px;text-transform:uppercase}
td{padding:13px 12px;border-top:1px solid var(--line);font-size:14px;vertical-align:middle}
tr.r{transition:background .2s}
tr.r:hover{background:rgba(255,255,255,.045)}
.ev b{font-weight:600;font-size:14px;display:block}
.ev span{font-family:var(--mono);font-size:11.5px;color:var(--subtle)}
.num{font-family:var(--mono);font-size:13.5px}
.side{color:var(--subtle);font-size:12px;margin-right:4px}
.edge{color:var(--deep);font-weight:500}
.right{text-align:right}
.exec{height:34px;padding:0 16px;border-radius:var(--r8);background:var(--ink);color:#fff;font-size:13px;font-weight:600;transition:transform .15s,background .2s;min-width:86px}
.exec:hover{background:var(--petrol);transform:translateY(-1px)}
.exec.filled{background:transparent;color:var(--deep);border:1px solid rgba(0,116,131,.35);font-family:var(--mono);font-weight:400}

.side-col{display:flex;flex-direction:column;gap:18px}
.venues{padding:6px 22px 14px}
.venue{display:flex;align-items:center;gap:12px;padding:13px 0;border-top:1px solid var(--line)}
.venue:first-child{border-top:none}
.vi{width:32px;height:32px;border-radius:var(--r8);display:grid;place-items:center;font-family:var(--mono);font-size:13px;flex:none}
.vi.solid{background:var(--deep);color:#fff}
.vi.dash{border:1px dashed #B5C3C9;color:var(--subtle)}
.venue .n{flex:1;min-width:0}
.venue .n b{display:block;font-size:14px;font-weight:600}
.venue .n span{font-family:var(--mono);font-size:11.5px;color:var(--subtle)}
.venue .amt{font-family:var(--mono);font-size:14px}
.link-btn{font-weight:600;color:var(--deep);font-size:14px}
.engine{padding:18px 20px;background:linear-gradient(135deg,var(--deep),var(--petrol));color:#fff;border-radius:var(--r16);box-shadow:0 12px 32px rgba(0,116,131,.28);position:relative;overflow:hidden}
.engine::after{content:"";position:absolute;width:180px;height:180px;right:-60px;top:-80px;border-radius:50%;background:radial-gradient(circle,rgba(0,212,232,.5),transparent 70%)}
.engine-top{display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:15px}
.engine-top .ms{font-family:var(--mono);font-size:12px;opacity:.92;font-weight:400}
.live{display:flex;align-items:center;gap:9px}
.pulse{width:8px;height:8px;border-radius:50%;background:var(--cyan);position:relative}
.pulse::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--cyan);animation:pulse 2s ease-out infinite}
@keyframes pulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(3);opacity:0}}
.engine p{font-size:13.5px;line-height:1.5;opacity:.95;margin-top:8px;position:relative;z-index:1}
.engine.paused{background:linear-gradient(135deg,#5B6F78,#3B4F58);box-shadow:0 12px 32px rgba(59,79,88,.2)}
.engine.paused .pulse::after{animation:none}
.engine.paused .pulse{background:#C9D5DA}

/* Log */
.log{padding:6px 22px 10px}
.log-item{display:grid;grid-template-columns:76px 1fr auto;gap:16px;padding:13px 0;border-top:1px solid var(--line);font-size:14px;align-items:center}
.log-item:first-child{border-top:none}
.log-item .t{font-family:var(--mono);font-size:12.5px;color:var(--subtle)}
.log-item .msg{color:var(--slate)}
.log-item .msg b{color:var(--ink);font-weight:500}
.log-item .p{font-family:var(--mono);font-size:13.5px}
.gain{color:var(--deep)} .loss{color:var(--slate)} .flat{color:var(--subtle)}
.log-item.enter{animation:slidein .6s cubic-bezier(.2,.8,.2,1)}
@keyframes slidein{from{opacity:0;transform:translateY(-12px);background:rgba(0,212,232,.1)}to{opacity:1;transform:none;background:transparent}}

footer{display:flex;justify-content:space-between;font-family:var(--mono);font-size:12px;color:var(--subtle);padding:22px 4px 0}

/* Reveal on load */
.reveal{opacity:0;transform:translateY(14px);animation:rise .8s cubic-bezier(.2,.8,.2,1) forwards}
.d1{animation-delay:.05s}.d2{animation-delay:.15s}.d3{animation-delay:.25s}.d4{animation-delay:.35s}
@keyframes rise{to{opacity:1;transform:none}}

/* Responsive */
@media (max-width:1080px){
  .lead{grid-template-columns:1fr}
  .pnl{border-right:none;border-bottom:1px solid var(--line)}
  .mid{grid-template-columns:1fr}
  .side-col{display:grid;grid-template-columns:1fr 1fr}
  .side-col .engine{grid-column:1/-1}
}
@media (max-width:760px){
  .nav{top:10px;left:12px;right:12px;transform:none;max-width:none}
  .brand span,.nav .sep,.nav .icon-btn{display:none}
  .brand{padding:6px 8px;margin-right:2px}
  main{padding:84px 16px 32px}
  .search{width:100%}
  .tools{width:100%}
  .search{flex:1 1 0;min-width:0}
  .pill{flex:none}
  .paper-mini{display:none}
  .side-col{grid-template-columns:1fr}
  .big{font-size:48px}
  .log-item{grid-template-columns:64px 1fr;}
  .log-item .p{grid-column:2}
  footer{flex-direction:column;gap:6px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}

/* Account states */
.gate{position:fixed;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;gap:12px;font-family:var(--mono);font-size:13px;color:var(--subtle);letter-spacing:.06em}
.gate-spin{width:18px;height:18px;border-radius:50%;border:2px solid rgba(0,116,131,.2);border-top-color:var(--deep);animation:gspin .8s linear infinite}
@keyframes gspin{to{transform:rotate(360deg)}}
.acct{margin-left:2px}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:600;text-transform:uppercase}
.acct-menu{position:fixed;top:78px;left:50%;transform:translateX(calc(-50% + 260px));z-index:60;min-width:230px;padding:8px;background:rgba(255,255,255,.88);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.10);border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.18)}
.acct-menu .am-head{padding:10px 12px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}
.acct-menu .am-head b{display:block;font-size:14px}
.acct-menu .am-head span{display:block;font-family:var(--mono);font-size:11.5px;color:var(--subtle);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:210px}
.acct-menu a,.acct-menu button{display:block;width:100%;text-align:left;padding:9px 12px;border-radius:8px;font-size:14px;color:var(--slate);text-decoration:none}
.acct-menu a:hover,.acct-menu button:hover,.acct-menu a:focus-visible,.acct-menu button:focus-visible{background:rgba(255,255,255,.05);color:var(--ink)}
.chart-box{position:relative;flex:1;display:flex}
.chart-empty{position:absolute;left:0;right:0;top:42%;text-align:center;font-size:13.5px;color:var(--subtle);margin:0}
.chart-empty[hidden]{display:none}
td.empty{padding:34px 16px;text-align:center;color:var(--subtle);font-size:14px;line-height:1.5}
.log-empty{padding:22px 0 14px;color:var(--subtle);font-size:14px}
.paper-tag{display:inline-block;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--petrol);background:rgba(0,212,232,.12);border:1px solid rgba(0,116,131,.25);border-radius:6px;padding:4px 9px}
.ann{display:block;font-size:11px;color:var(--subtle);font-weight:400}
.note{margin:0 22px 18px;padding:10px 12px;border-radius:10px;background:rgba(0,212,232,.1);border:1px solid rgba(0,116,131,.22);font-size:13px;color:var(--petrol);line-height:1.45}
.pill[disabled]{cursor:not-allowed;opacity:.65}
.paper-mini{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--subtle);margin-left:-4px}
.paper-body{padding:12px 22px 18px}
.paper-big{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:12px}
.paper-big b{font-size:28px;font-weight:500;letter-spacing:-.03em}
.paper-body .row:last-of-type{border-bottom:none}
.row.cap{cursor:pointer}
.row.cap select{font:inherit;font-family:var(--mono);font-size:13.5px;color:var(--ink);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.5);border-radius:8px;height:32px;padding:0 8px;cursor:pointer}
.paper-note{font-size:12.5px;color:var(--subtle);line-height:1.5;margin-top:8px}
.paper-body .note{margin:12px 0 0}
.live-state{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:4px 9px;border-radius:6px;border:1px solid var(--line);color:var(--subtle);background:rgba(255,255,255,.05)}
.live-state.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.live-state.dry{color:var(--petrol);background:rgba(0,212,232,.12);border-color:rgba(0,116,131,.25)}
.live-alert{margin:0 0 10px;padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.05);border:1px solid var(--ink);font-size:13px;color:var(--ink);line-height:1.45}
.live-actions{display:flex;gap:10px;margin-top:14px}
.btn-dark{height:38px;padding:0 16px;border-radius:8px;background:var(--ink);color:#fff;font-size:14px;font-weight:600}
.btn-dark:hover{background:var(--petrol)}
.btn-dark.armed{background:var(--petrol)}
.btn-dark.quiet{background:rgba(255,255,255,.05);color:var(--ink);border:1px solid rgba(255,255,255,.25)}
.btn-dark:disabled{opacity:.6;cursor:not-allowed}
.lv-check{width:18px;height:18px;accent-color:var(--ink);cursor:pointer}
.lv-lede{font-size:13.5px;color:var(--slate);line-height:1.5;margin-bottom:6px}
.lv-limits{margin-top:4px}
.lv-admin{border-top:1px solid var(--line);margin-top:4px;padding-top:14px}
.lv-admin-h{display:flex;justify-content:space-between;align-items:center;margin:14px 0 4px}
.lv-admin-h h3{font-size:14px;font-weight:600}
.lv-people{display:grid;gap:0}
.lv-person{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line);font-size:13.5px}
.lv-person .who{flex:1;min-width:0}
.lv-person .who b{display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lv-person .who span{font-family:var(--mono);font-size:11px;color:var(--subtle)}
.lv-person button{height:30px;padding:0 12px;border-radius:8px;font-size:13px;font-weight:600;flex:none}
.venue .acts{display:flex;gap:12px;flex:none}
.venue .acts button{font-weight:600;color:var(--deep);font-size:13.5px}
.venue .acts button.unlink{color:var(--subtle);font-weight:500}
.link-dlg{margin:auto;border:none;padding:0;border-radius:16px;width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 32px);background:rgba(255,255,255,.96);box-shadow:0 30px 80px rgba(0,0,0,.28);color:var(--ink)}
.link-dlg::backdrop{background:rgba(255,255,255,.35);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.link-dlg form{padding:22px 22px 20px;display:grid;gap:12px}
.lk-head{display:flex;justify-content:space-between;align-items:center}
.lk-title{font-size:19px;font-weight:600;letter-spacing:-.01em}
.lk-x{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:var(--slate)}
.lk-x:hover{background:rgba(255,255,255,.06)}
.lk-x svg{width:16px;height:16px}
.lk-steps{font-size:14px;color:var(--slate);line-height:1.5}
.lk-points{list-style:none;display:grid;gap:6px;padding:10px 12px;border-radius:10px;background:rgba(0,212,232,.08);border:1px solid rgba(0,116,131,.18)}
.lk-points li{font-size:13px;color:var(--petrol);line-height:1.45;padding-left:14px;position:relative}
.lk-points li::before{content:"";position:absolute;left:2px;top:.55em;width:5px;height:5px;border-radius:50%;background:var(--deep)}
.lk-field{display:grid;gap:6px;font-size:13px;font-weight:600;color:var(--ink)}
.lk-field input,.lk-field textarea{font:inherit;font-family:var(--mono);font-size:12.5px;font-weight:400;color:var(--ink);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:9px 11px;width:100%;resize:vertical}
.lk-field input:focus,.lk-field textarea:focus{outline:2px solid var(--deep);outline-offset:1px}
.lk-field [hidden]{display:none}
.lk-msg{font-size:13px;color:var(--petrol);min-height:1.2em}
.lk-msg.err{color:var(--ink)}
.lk-actions{display:flex;justify-content:flex-end;gap:10px}
.vtag{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--petrol);border:1px solid rgba(0,116,131,.3);border-radius:4px;padding:0 4px;margin-left:4px}
.log-item .tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--petrol);background:rgba(0,212,232,.12);border-radius:4px;padding:1px 5px;margin-right:6px}
@media (max-width:760px){.acct-menu{left:auto;right:12px;transform:none;top:70px}.nav .icon-btn.acct{display:grid}}
@media (prefers-reduced-motion:reduce){.gate-spin{animation-duration:2s}}
:focus-visible{outline:2px solid var(--deep);outline-offset:2px}
::selection{background:var(--cyan);color:var(--ink)}

/* ===== Nav extras (shell.js) ===== */
.brand{text-decoration:none;color:var(--ink)}
.tab{text-decoration:none}
.tab.soon{cursor:default;opacity:.55}
.tab.soon:hover{background:none;color:var(--slate)}
a.icon-btn{text-decoration:none}
.icon-btn.on{background:var(--ink);color:#fff}

/* ===== Page header ===== */
.page-h{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.page-h h1{font-size:clamp(32px,5vw,48px);font-weight:500;letter-spacing:-.035em;line-height:1.05}
.page-h p{font-size:14.5px;color:var(--slate);max-width:520px;line-height:1.55;margin-top:8px}
.subnav{display:inline-flex;padding:4px;background:var(--glass);border:1px solid rgba(255,255,255,.10);border-radius:999px;box-shadow:var(--shadow);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.subnav a{padding:8px 18px;border-radius:999px;font-size:14px;font-weight:500;color:var(--slate);text-decoration:none}
.subnav a:hover{color:var(--ink)}
.subnav a[aria-current="page"],.subnav a[aria-current="true"]{background:var(--ink);color:#fff}

/* ===== Grids ===== */
.stack{display:grid;gap:18px;margin-bottom:18px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px;align-items:start}
.two-wide{display:grid;grid-template-columns:1fr 360px;gap:18px;margin-bottom:18px;align-items:start}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:6px 8px 8px}
.stat{padding:14px 14px 12px;border-left:1px solid var(--line)}
.stat:first-child{border-left:none}
.stat .label{display:block;margin-bottom:8px}
.stat b{font-size:24px;font-weight:500;letter-spacing:-.02em;font-family:var(--sans)}
.stat i{display:block;font-style:normal;font-family:var(--mono);font-size:11.5px;color:var(--subtle);margin-top:4px}
.sum-link{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--deep);font-size:14px;text-decoration:none}
.sum-link svg{width:14px;height:14px}
.card-foot{padding:4px 22px 18px}
.muted{color:var(--subtle)}
.pos-res{font-family:var(--mono);font-size:11.5px;color:var(--subtle)}
.chipline{display:inline-block;font-family:var(--mono);font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:5px;border:1px solid var(--line);color:var(--subtle);background:rgba(255,255,255,.05);white-space:nowrap}
.chipline.ai{color:var(--petrol);border-color:rgba(0,116,131,.3);background:rgba(0,212,232,.1)}
.chipline.dark{background:var(--ink);color:#fff;border-color:var(--ink)}
.field{display:grid;gap:6px;font-size:13px;font-weight:600}
.field input{font:inherit;font-size:14px;font-weight:400;color:var(--ink);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.5);border-radius:8px;height:40px;padding:0 12px;width:100%}
.inline-form{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.inline-form .field{flex:1 1 220px}
.list-links{display:grid}
.list-links a,.list-links button{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-top:1px solid var(--line);font-size:14px;color:var(--ink);text-decoration:none;text-align:left;width:100%}
.list-links a:first-child,.list-links button:first-child{border-top:none}
.list-links svg{width:15px;height:15px;color:var(--subtle)}
.orders td{font-size:13px}
.orders td.num{font-size:12.5px}

@media (max-width:1080px){
  .two,.two-wide{grid-template-columns:1fr}
  .stats{grid-template-columns:repeat(2,1fr)}
  .stat:nth-child(3){border-left:none}
  .stat:nth-child(n+3){border-top:1px solid var(--line)}
}
@media (max-width:760px){
  .page-h{align-items:flex-start}
  .stat b{font-size:20px}
}
.btn-link{display:inline-flex;align-items:center;text-decoration:none}
.btn-link[hidden],.pill[hidden]{display:none}

/* ===== Sportsbook ===== */
.bookchips{display:flex;flex-wrap:wrap;gap:8px}
.bookchip{height:34px;padding:0 14px;border-radius:999px;border:1px solid rgba(255,255,255,.45);background:rgba(255,255,255,.05);font-size:13.5px;font-weight:500;color:var(--slate)}
.bookchip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.bookchip:hover{border-color:var(--ink)}
table.sb{min-width:760px}
.sbrow{cursor:pointer}
.sbrow[aria-expanded="true"]{background:rgba(255,255,255,.05)}
.leg{font-size:13px;line-height:1.7;white-space:nowrap}
.leg .bk{font-weight:600}
.leg b{font-weight:500;margin-left:2px}
a.go{font-size:12px;font-weight:600;color:var(--deep);margin-left:6px}
tr.calc td{background:rgba(255,255,255,.045);padding:4px 16px 16px}
.calc-box{display:grid;grid-template-columns:200px 1fr;gap:18px;align-items:start;max-width:760px}
.calc-legs .row:first-child{border-top:none}
.sb-points{list-style:none;display:grid;gap:8px}
.sb-points li{font-size:13.5px;color:var(--slate);line-height:1.5;padding-left:16px;position:relative}
.sb-points li::before{content:"";position:absolute;left:3px;top:.6em;width:5px;height:5px;border-radius:50%;background:var(--deep)}
@media (max-width:760px){.calc-box{grid-template-columns:1fr;gap:6px}}
.field.bank{max-width:240px}
.slip-title{font-size:14px;font-weight:600;margin:16px 0 8px}
.slips{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-bottom:6px}
.slip{border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.05);padding:12px 14px}
.slip-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.slip-list{margin:0;padding-left:18px;display:grid;gap:4px}
.slip-list li{font-size:13px;color:var(--slate)}
.slip-list li{display:list-item}
.slip-list li span.num{float:right;color:var(--deep);font-family:var(--mono);font-size:12.5px;margin-left:8px}
.bank-row{display:flex;gap:18px;align-items:flex-end;flex-wrap:wrap}
.bank-row .field.bank{flex:0 0 200px}
.bank-tip{flex:1 1 260px;font-size:13px;color:var(--slate);line-height:1.5;padding-bottom:4px}
.bank-tip b,.betamt{color:var(--ink);font-weight:600}
.slip-bet{font-size:13px;color:var(--slate);margin:2px 0 8px}


/* ===== Audit fixes (Oct 2026): reach, focus, phones ===== */
.skip{position:fixed;left:12px;top:-60px;z-index:100;background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px;font-weight:600;text-decoration:none}
.skip:focus{top:12px}
main:focus{outline:none}
section[id],.card[id]{scroll-margin-top:96px}
.search:focus-within{outline:2px solid var(--deep);outline-offset:2px}
:focus-visible{outline:2px solid var(--deep);outline-offset:2px}
.lk-field input,.lk-field textarea{border-color:rgba(255,255,255,.5)}
footer a,footer button{color:var(--slate)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* phones and tablets: 44px targets */
@media (pointer:coarse){
  .tab,.subnav a,.bookchip,.btn-dark,.row.cap select,.list-links a,.list-links button{min-height:44px}
  .icon-btn{width:44px;height:44px}
  a.go{display:inline-flex;align-items:center;min-height:44px;padding:0 6px}
  .link-btn{display:inline-flex;align-items:center;min-height:44px}
  footer a,footer button{display:inline-flex;align-items:center;min-height:44px}
}

/* phone nav: the tab strip scrolls; fade its edge so it's clear there's more */
@media (max-width:760px){
  .tabs{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);padding-right:22px;scroll-padding:0 40px}
}

/* phone tables: each row becomes a small card, cells labelled by their column (shell.js sets data-label) */
@media (max-width:760px){
  .table-scroll{overflow-x:visible;padding:4px 12px 12px}
  table,table.sb{min-width:0}
  table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  table tbody,table tr,table td{display:block;width:100%}
  table tr{border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.045);padding:6px 12px;margin-top:10px}
  table td{border-top:none;padding:6px 0;text-align:right;overflow:hidden}
  table td.right{text-align:right}
  table td[data-label]::before{content:attr(data-label);font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--subtle);text-align:left;float:left;margin-right:12px;line-height:20px}
  table td:first-child{display:block;text-align:left;border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:2px}
  table td:first-child::before{content:none}
  table td .ann{display:block}
  table td.empty{display:block;text-align:center;border:none}
  table tr:has(td.empty){background:none;border:none}
  tr.r:hover{background:rgba(255,255,255,.045)}
  .live-wrap .side-col,.two-wide .side-col{order:-1}
  .two-wide{display:flex;flex-direction:column}
}

/* pick'em combos and moved-line notices */
.combo-list{list-style:none;display:grid;gap:10px;margin:4px 0 0;padding:0}
.combo{border-top:1px solid var(--line);padding-top:8px}
.combo:first-child{border-top:none;padding-top:0}
.combo-h{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:4px;font-size:13.5px}
.combo-h .num{font-size:12px;color:var(--subtle)}
.combo-h .betamt{margin-left:auto;font-size:14px}
.slip-moved{border:1px solid var(--ink);background:rgba(255,255,255,.05);border-radius:10px;padding:10px 12px;margin:4px 0 10px;font-size:13px;line-height:1.45;color:var(--ink)}
.slip-moved p{margin:0 0 8px}
.slip-moved .btn-dark{height:32px;font-size:13px}

/* live Sportsbook: new and moved rows */
.meta-group{display:inline-flex;align-items:center;gap:8px}
.meta-group .live-state[hidden]{display:none}
.chipline.mark{margin-left:6px;vertical-align:1px}
.chipline.mark.new{background:var(--ink);color:#fff;border-color:var(--ink)}
.chipline.mark.moved{color:var(--petrol);border-color:rgba(0,116,131,.3);background:rgba(0,212,232,.1)}
tr.fresh{animation:freshrow 2.4s ease-out}
@keyframes freshrow{from{background:rgba(0,212,232,.16)}to{background:transparent}}
.combo-best{font-size:13px;color:var(--slate);margin:0 0 8px}
.combo-best b{color:var(--ink)}
.combo.top .combo-h b:first-child{color:var(--ink)}
.combo-h .chipline.dark{font-size:10px}
.combo-more{margin-top:8px;font-size:13px}
.combo-need{font-size:12px;color:var(--subtle);margin:0 0 4px}
.betamt.need{font-size:13px;white-space:nowrap}
.acts{display:inline-flex;gap:4px;align-items:center;flex-wrap:wrap}
button.go{font:inherit;font-size:12px;font-weight:600;color:var(--deep);background:none;border:0;padding:0;margin-left:6px;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.slip-acts{margin:6px 0 2px 12px}
.slip-acts .go:first-child{margin-left:0}
@media (pointer:coarse){button.go{display:inline-flex;align-items:center;min-height:44px;padding:0 6px}}

/* ===== My bets ===== */
.bet-form{display:grid;gap:12px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.field select{font:inherit;font-size:14px;font-weight:400;color:var(--ink);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.5);border-radius:8px;height:40px;padding:0 10px;width:100%}
.field input[type=datetime-local]{font-family:var(--mono);font-size:13px}
.field .opt{font-style:normal;font-weight:400;color:var(--subtle);font-size:12px}
.bet-form .live-actions{margin-top:2px}
.bet-form .note{margin:0}
.settle{display:inline-flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.chip-btn{height:30px;padding:0 11px;border-radius:999px;border:1px solid rgba(255,255,255,.45);background:rgba(255,255,255,.05);font-size:12.5px;font-weight:600;color:var(--ink);white-space:nowrap}
.chip-btn:hover{border-color:var(--ink)}
.chip-btn.quiet{border-color:transparent;background:none;color:var(--slate);font-weight:500}
.chip-btn.armed{background:var(--ink);color:#fff;border-color:var(--ink)}
.chip-btn[disabled]{opacity:.5;cursor:default}
.stat b.gain{color:var(--deep)} .stat b.loss{color:var(--slate)}
@media (pointer:coarse){.chip-btn{height:44px;padding:0 14px}}
@media (max-width:760px){.field-row{grid-template-columns:1fr}.settle{justify-content:flex-start}}
.pl-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;font-family:var(--mono);font-size:11px;color:var(--subtle)}
.pl-legend span{display:inline-flex;align-items:center;gap:6px}
.pl-legend i{display:inline-block;width:18px;height:0;border-top:1.6px solid var(--ink)}
.pl-legend .lg-dash{border-top:1.6px dashed var(--deep)}
.pl-legend .lg-band{height:8px;border:0;background:rgba(0,212,232,.22);border-radius:2px}
.xaxis.placed{position:relative;height:16px;display:block}
.xaxis.placed span{position:absolute;top:0;white-space:nowrap}
.xaxis.placed .at-mid{transform:translateX(-50%)}
.xaxis.placed .at-end{transform:translateX(-100%)}
.pl-legend span[hidden]{display:none}
.stats.five{grid-template-columns:repeat(5,1fr)}
.pl-legend .lg-dot{border-top:1.5px dotted var(--subtle)}
svg.chart .pl-label{font-family:var(--mono);font-size:11px;fill:var(--slate)}
@media (max-width:1080px){.stats.five{grid-template-columns:repeat(2,1fr)}.stats.five .stat:nth-child(odd){border-left:none}.stats.five .stat:nth-child(n+3){border-top:1px solid var(--line)}.stats.five .stat:nth-child(3){border-left:none}}
@media (min-width:1081px){.stats.five .stat:nth-child(n+3){border-top:none}}
.fc-note{margin:0;padding:0 22px 18px}

/* ===== Shared P&L chart (js/plchart.js) ===== */
.plchart{display:flex;flex-direction:column;position:relative}
.plchart .chart-top{flex-wrap:wrap}
.pl-controls{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.pl-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.pl-chips[hidden]{display:none}
.pl-chip{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 12px;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.05);font-size:12.5px;font-weight:600;color:var(--slate);transition:background .2s,border-color .2s,color .2s}
.pl-chip i{width:10px;height:10px;border-radius:3px;background:var(--c,#0A1A20);opacity:.35;transition:opacity .2s}
.pl-chip[aria-pressed="true"]{background:rgba(255,255,255,.05);border-color:var(--ink);color:var(--ink)}
.pl-chip[aria-pressed="true"] i{opacity:1}
.pl-box{position:relative}
.pl-box svg.chart{touch-action:pan-y;cursor:crosshair}
.pl-tip{position:absolute;top:8px;z-index:3;min-width:150px;padding:9px 11px;border-radius:10px;background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.1);box-shadow:0 10px 30px rgba(0,0,0,.14);font-size:12px;display:grid;gap:4px;pointer-events:none;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.pl-tip[hidden]{display:none}
.pl-tip-t{font-family:var(--mono);font-weight:500;font-size:11px;color:var(--subtle)}
.pl-tip span{display:flex;align-items:center;gap:7px;color:var(--slate)}
.pl-tip span i{width:9px;height:9px;border-radius:2px;background:var(--c)}
.pl-tip span b{margin-left:auto;font-family:var(--mono);font-weight:500;color:var(--ink);padding-left:10px}
.pl-legend:empty{display:none}
.pl-legend i.lg-line{border-top-color:var(--c,var(--ink));border-top-width:2px}
.plchart .pl-axis{margin-top:8px}
svg.chart.pl-intro .pl-area,svg.chart.pl-intro .pl-fc{animation:plfade 1s .5s both}
@keyframes plfade{from{opacity:0}to{opacity:1}}
@media (max-width:760px){.pl-controls{justify-content:flex-start;width:100%}}

/* ===== Homepage-style motion (js/motion.js) ===== */
/* cursor-following glow on every card, like the homepage feature cards */
.card::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;transition:opacity .35s;
  background:radial-gradient(380px circle at var(--mx,50%) var(--my,0%),rgba(0,212,232,.13),transparent 60%)}
.card.glow::before{opacity:1}
.card > *{position:relative;z-index:1}
.card > .spot{position:absolute}
.lead .spot{display:none}
.card{transition:box-shadow .35s,border-color .35s}
.card.glow{box-shadow:0 1px 0 rgba(255,255,255,.05) inset,0 18px 46px rgba(0,0,0,.11);border-color:rgba(255,255,255,1)}
/* sections lower on the page rise in as they scroll into view */
.reveal.wait{animation-play-state:paused}
/* buttons lift like the homepage's */
.btn-dark{transition:transform .2s,background .2s,box-shadow .2s}
.btn-dark:not([disabled]):hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(255,255,255,.18)}
.btn-dark:not([disabled]):active{transform:none;box-shadow:none}
.chip-btn,.bookchip,.pl-chip,.seg button{transition:transform .15s,background .2s,border-color .2s,color .2s,box-shadow .2s}
.chip-btn:not([disabled]):active,.bookchip:active,.pl-chip:active{transform:scale(.97)}
.stat b{font-variant-numeric:tabular-nums}
@media (hover:none){.card::before{display:none}}
@media (prefers-reduced-motion:reduce){.card::before{display:none}.reveal.wait{animation:none;opacity:1;transform:none}}
/* live bets */
.ev .live-line{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11.5px;color:var(--deep);margin:3px 0 1px}
.ev .live-line .dot{width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 0 rgba(0,212,232,.6);animation:livedot 1.8s ease-out infinite;flex:none}
.ev .live-line.final{color:var(--ink)}
.ev .live-line.final .dot{background:var(--ink);animation:none}
@keyframes livedot{0%{box-shadow:0 0 0 0 rgba(0,212,232,.55)}100%{box-shadow:0 0 0 7px rgba(0,212,232,0)}}
.chip-btn.suggest{background:var(--ink);border-color:var(--ink);color:#fff}
.suggest-note{font-size:11.5px;color:var(--slate);align-self:center;margin-right:2px}

/* ---- My bets: add from a slip (migration 019) */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.imp-form{display:grid;gap:12px}
.imp-drop{display:block}
.imp-drop textarea{font:inherit;font-size:14px;color:var(--ink);background:rgba(255,255,255,.05);border:1px dashed rgba(255,255,255,.45);border-radius:var(--r10);padding:12px;width:100%;resize:vertical;min-height:92px;line-height:1.45;transition:border-color .2s,background .2s}
.imp-drop.over textarea{border-color:var(--deep);background:rgba(0,212,232,.06)}
.imp-pic{display:flex;align-items:flex-start;gap:12px}
.imp-pic[hidden]{display:none}
.imp-pic img{max-height:180px;max-width:min(320px,100%);border-radius:var(--r8);border:1px solid var(--line);background:rgba(255,255,255,.05)}
.imp-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.imp-row .btn-dark{margin-left:auto}
.imp-file{display:inline-flex;align-items:center;cursor:pointer}
.imp-file input{position:absolute;width:1px;height:1px;opacity:0}
.imp-file:focus-within{outline:2px solid var(--deep);outline-offset:2px}
.imp-site{min-width:180px}
.imp-form .note{margin:0}
.imp-dlg{margin:auto;border:1px solid rgba(255,255,255,.10);border-radius:var(--r16);padding:0;width:min(460px,calc(100vw - 32px));background:var(--glass-strong);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 24px 60px rgba(0,0,0,.22);color:var(--ink)}
.imp-dlg::backdrop{background:rgba(255,255,255,.28)}
.imp-dlg-in{padding:22px;display:grid;gap:12px}
.imp-dlg h2{margin:0;font-size:18px}
.imp-dlg .sub{margin:0;font-size:13.5px;color:var(--slate)}
.imp-list{margin:0;padding:0;list-style:none;display:grid;gap:6px;max-height:180px;overflow:auto}
.imp-list li{font-size:13px;padding:8px 10px;border-radius:var(--r8);background:rgba(255,255,255,.05);border:1px solid var(--line);display:flex;justify-content:space-between;gap:10px}
.imp-list li span{font-family:var(--mono);color:var(--subtle);white-space:nowrap}
.imp-sites{display:flex;flex-wrap:wrap;gap:8px}
.imp-sites .btn-dark{padding:0 14px;height:38px}
.imp-dlg-in > .chip-btn{justify-self:start}
@media (max-width:760px){.imp-row .btn-dark{margin-left:0;width:100%}.imp-site{flex:1}}
/* nav tags (BETA, SOON) sit right after their word, on its centre line */
.tab .chip{display:inline-flex;align-items:center;line-height:1;padding:3px 6px;margin-left:-2px;position:relative;top:1.5px}
.today-stats{border-top:1px solid var(--line)}

/* ===== Total balance and goal (Goals page, Overview) ===== */
.bal-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:24px;padding:14px 22px 18px;align-items:center}
.bal-big,.goal-big{font-size:36px;font-weight:500;letter-spacing:-.03em;line-height:1.1;font-variant-numeric:tabular-nums;margin-top:4px}
.bal-exp{margin-top:8px;font-size:13.5px;color:var(--slate)}
.bal-rows{display:flex;flex-direction:column}
.bal-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px;color:var(--slate)}
.bal-row:last-child{border-bottom:none}
.bal-v{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;color:var(--ink)}
.bal-v i{display:block;font-style:normal;font-size:11.5px;color:var(--subtle)}
.bal-when{padding:0 22px 16px;font-family:var(--mono);font-size:12px;color:var(--subtle)}
.bal-pad{padding:14px 22px 18px}
.goal-wrap{padding:14px 22px 4px}
.goal-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.goal-of{font-size:16px;font-weight:500;color:var(--subtle);letter-spacing:0}
.goal-status{font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.05);color:var(--slate)}
.goal-status.reached,.goal-status.on_track{background:rgba(0,212,232,.14);color:var(--petrol)}
.goal-bar{position:relative;height:12px;border-radius:999px;background:rgba(255,255,255,.06);overflow:hidden;margin:16px 0 6px}
.goal-proj,.goal-fill{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:999px;transition:width .7s cubic-bezier(.2,.75,.25,1)}
.goal-proj{background:rgba(0,212,232,.25)}
.goal-fill{background:var(--cyan)}
.goal-form{display:grid;gap:14px;max-width:560px}
.goal-form-row{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end}
.goal-form-row .field{flex:1 1 180px}
.goal-form .seg{height:40px;align-items:center}
.goal-form .seg button{flex:1;height:34px}
.goal-actions{display:flex;gap:10px;flex-wrap:wrap}
.goal-form .note{margin:0}
@media (max-width:760px){.bal-grid{grid-template-columns:1fr;gap:12px}}
@media (prefers-reduced-motion:reduce){.goal-proj,.goal-fill{transition:none}}
.goal-form[hidden],#goal-show[hidden]{display:none}
/* Goal medals (Jorge, 2026-10-11, migration 031): the Medals card and the pop-up on Goals */
.md-list{list-style:none;margin:0 0 12px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:12px}
.md-item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;padding:14px 8px 12px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid var(--line);min-width:0}
.md-mini{width:40px;height:52px;margin-bottom:6px}
.md-item b{font-size:18px;font-weight:500;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.md-item span{font-size:12.5px;color:var(--slate)}
.md-item .md-when{font-family:var(--mono);font-size:11px;color:var(--subtle)}
.md-empty{margin:0}
.medal-dlg{margin:auto;border:1px solid rgba(255,255,255,.10);border-radius:var(--r16);padding:0;width:min(400px,calc(100vw - 32px));max-height:calc(100vh - 32px);background:var(--glass-strong);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 24px 60px rgba(0,0,0,.22);color:var(--ink);overflow:auto}
.medal-dlg::backdrop{background:rgba(255,255,255,.32)}
.medal-dlg[open]{animation:md-in .25s ease-out}
.medal-dlg-in{padding:26px 24px 22px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}
.medal-art{position:relative;width:150px;height:170px;display:grid;place-items:center;margin-bottom:4px}
.medal-svg{width:112px;height:146px}
.md-big{width:112px;height:146px;display:block;transform-origin:50% 40%}
.medal-dlg[open] .md-big{animation:md-pop .6s cubic-bezier(.2,1.35,.4,1) both}
.spark{position:absolute;width:14px;height:14px;background:var(--cyan);clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);opacity:.9}
.spark.s1{top:18px;left:8px}
.spark.s2{top:4px;right:22px;width:10px;height:10px;background:var(--deep)}
.spark.s3{top:70px;right:0;width:18px;height:18px}
.spark.s4{bottom:22px;left:2px;width:10px;height:10px;background:var(--deep)}
.spark.s5{bottom:6px;right:16px;width:12px;height:12px}
.spark.s6{top:84px;left:-4px;width:8px;height:8px;background:var(--ink);opacity:.7}
.medal-dlg[open] .spark{animation:md-twinkle 1.4s ease-out both}
.medal-dlg[open] .spark.s2{animation-delay:.15s}.medal-dlg[open] .spark.s3{animation-delay:.3s}
.medal-dlg[open] .spark.s4{animation-delay:.2s}.medal-dlg[open] .spark.s5{animation-delay:.4s}.medal-dlg[open] .spark.s6{animation-delay:.1s}
.medal-dlg h2{margin:2px 0 0;font-size:22px;font-weight:600;letter-spacing:-.02em}
.medal-line{margin:0;font-size:15px;line-height:1.5;color:var(--slate)}
.medal-more{margin:0;font-family:var(--mono);font-size:12px;padding:5px 10px;border-radius:999px;background:rgba(0,212,232,.14);color:var(--petrol)}
.medal-more[hidden]{display:none}
.medal-dlg .btn-dark{margin-top:10px;min-width:140px;justify-content:center}
@keyframes md-in{from{opacity:0}to{opacity:1}}
@keyframes md-pop{0%{transform:scale(.55);opacity:0}100%{transform:scale(1);opacity:1}}
@keyframes md-twinkle{0%{transform:scale(0) rotate(0);opacity:0}45%{transform:scale(1.25) rotate(45deg);opacity:1}100%{transform:scale(1) rotate(90deg);opacity:.9}}
@media (prefers-reduced-motion:reduce){.medal-dlg[open],.medal-dlg[open] .md-big,.medal-dlg[open] .spark{animation:none}}
.fit-credit{margin:-4px 0 12px}

/* ===== Plans (Jorge, 2026-10-11): plans.html, plus the Membership card in Settings and codes in Admin ===== */
.plan-now{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.plan-chip{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;letter-spacing:.04em;padding:7px 12px;border-radius:999px;background:var(--glass-strong);border:1px solid var(--line);color:var(--slate);white-space:nowrap}
.plan-chip.on{background:var(--ink);border-color:var(--ink);color:#fff}
.plan-chip.on::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--cyan)}
.plan-switch{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.plan-switch .seg{background:var(--glass-strong);border:1px solid rgba(255,255,255,.10);box-shadow:var(--shadow);border-radius:999px;padding:4px}
.plan-switch .seg button{border-radius:999px;padding:8px 18px;font-size:12.5px}
.plan-switch .seg button.on{background:var(--ink);color:#fff}
.plan-save{font-family:var(--mono);font-size:12px;color:var(--subtle);padding:5px 10px;border-radius:999px;border:1px dashed rgba(255,255,255,.18)}
.plan-save.on{color:var(--petrol);background:rgba(0,212,232,.14);border:1px solid rgba(0,116,131,.22)}
.plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:18px;align-items:stretch}
.plan-card{display:flex;flex-direction:column;padding:22px}
.plan-card.pop{border:1.5px solid rgba(0,116,131,.35);box-shadow:0 1px 0 rgba(255,255,255,.05) inset,0 18px 50px rgba(0,0,0,.14);background:var(--glass-strong)}
.plan-card.pop::after{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--cyan);z-index:2}
.plan-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.plan-top h2{font-size:20px;font-weight:600;letter-spacing:-.02em}
.plan-badges{display:flex;gap:6px;flex-wrap:wrap}
.plan-badge{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;padding:4px 9px;border-radius:999px;background:var(--ink);color:#fff;white-space:nowrap}
.plan-badge.fit{background:rgba(0,212,232,.16);color:var(--petrol);border:1px solid rgba(0,116,131,.28)}
.plan-blurb{font-size:14px;color:var(--slate);margin-top:6px;line-height:1.45}
.plan-price{display:flex;align-items:baseline;gap:6px;margin-top:18px}
.plan-price b{font-size:52px;font-weight:500;letter-spacing:-.045em;line-height:1;font-variant-numeric:tabular-nums}
.plan-price span{font-family:var(--mono);font-size:13px;color:var(--subtle)}
.plan-alt{font-family:var(--mono);font-size:12px;color:var(--subtle);margin-top:6px}
.plan-feats{list-style:none;display:grid;gap:10px;margin:20px 0 18px;padding:18px 0 0;border-top:1px solid var(--line);flex:1;align-content:start}
.plan-feats li{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.4;color:var(--ink)}
.pl-ck,.pl-no{flex:none;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;margin-top:-1px}
.pl-ck{background:var(--cyan);color:var(--ink)}
.pl-no{background:rgba(255,255,255,.06);color:var(--subtle)}
.pl-ck svg,.pl-no svg{width:12px;height:12px}
.plan-feats li.off{color:var(--subtle)}
.plan-facts{display:grid;gap:0;margin:0 0 16px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid var(--line);padding:2px 12px}
.plan-facts div{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:9px 0;font-size:13px;color:var(--slate)}
.plan-facts div+div{border-top:1px solid var(--line)}
.plan-facts dd{font-family:var(--mono);font-size:12.5px;color:var(--ink);text-align:right}
.plan-btn{width:100%;height:44px;border-radius:999px}
.plan-btn:disabled{opacity:1;background:rgba(255,255,255,.08);color:var(--slate)}
.plan-btn.quiet:disabled{background:rgba(255,255,255,.05);color:var(--ink);border:1px solid var(--ink)}
.plan-code{align-self:center;margin-top:10px;font-size:13px;color:var(--deep);text-underline-offset:3px}
.fit-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.fit-stats>div{padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid var(--line);min-width:0}
.fit-stats .label{display:block;margin-bottom:6px}
.fit-stats b{display:block;font-size:24px;font-weight:500;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.fit-stats i{display:block;font-style:normal;font-family:var(--mono);font-size:11.5px;color:var(--subtle);margin-top:4px}
.fit-say{font-size:16px;line-height:1.5;color:var(--ink);font-weight:500}
.fit-more{font-size:14px;line-height:1.5;color:var(--slate);margin-top:8px}
.redeem-form .field input{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase}
.redeem-form .field input::placeholder{letter-spacing:.06em;color:#7A8C94}
.redeem-form .note{margin:12px 0 0}
.csv-form .csv-year{flex:0 1 180px}
.csv-form .btn-dark{height:40px}
.csv-foot{padding-top:0}
.csv-foot .note{margin:0 0 8px}
.faq details{border-top:1px solid var(--line)}
.faq details:first-child{border-top:none}
.faq summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;font-size:14.5px;font-weight:600;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:8px;height:8px;border-right:2px solid var(--subtle);border-bottom:2px solid var(--subtle);transform:rotate(45deg);margin-right:4px;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq details p{font-size:14px;color:var(--slate);line-height:1.55;padding:0 0 14px;max-width:640px}
/* Settings: membership card */
.mem-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:24px;align-items:start}
.mem-plan{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.mem-plan p{font-size:13.5px;color:var(--slate);line-height:1.5}
/* Admin: codes and members */
.code-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:12px;align-items:end}
.code-new{margin-top:14px;padding:14px;border-radius:12px;border:1px solid var(--ink);background:rgba(255,255,255,.05);display:grid;gap:10px}
.code-new[hidden]{display:none}
.code-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.code-val{font-family:var(--mono);font-size:18px;letter-spacing:.08em;color:var(--ink);user-select:all;word-break:break-all}
.code-new p{font-size:12.5px;color:var(--subtle)}
table.codes,table.members{min-width:680px}
table.codes .btn-dark{height:32px;font-size:13px;padding:0 12px}
.mem-who b{display:block;font-weight:600}
.mem-who span{display:block;font-size:12.5px;color:var(--subtle);word-break:break-all}
@media (max-width:1080px){.plan-grid{grid-template-columns:1fr;max-width:560px;margin-left:auto;margin-right:auto}.code-form{grid-template-columns:1fr 1fr}.code-form .btn-dark{grid-column:1/-1}}
@media (max-width:760px){
  .plan-now{align-items:flex-start}
  .plan-price b{font-size:44px}
  .mem-grid{grid-template-columns:1fr;gap:16px}
  .fit-stats b{font-size:20px}
  table.codes,table.members{min-width:0}
}
@media (max-width:420px){.fit-stats{grid-template-columns:1fr}}
.row .row-sub{display:block;font-style:normal;font-size:12px;color:var(--subtle);margin-top:3px;line-height:1.4}
.row.cap>span:first-child{padding-right:12px}
/* nav with the Plans tab: keep it on screen under the desktop zoom (vw is zoomed too), tighter tabs on mid-size desktops */
.nav{max-width:calc(100vw / var(--z,1) - 24px)}
@media (min-width:761px) and (max-width:1800px){.tab{padding:8px 10px;gap:6px}.brand{padding:6px 12px 6px 8px}}
@media (min-width:1081px) and (max-width:1439px){.tab{padding:8px 8px;gap:5px}.tab .chip{margin-left:-1px}}

/* ===== the Halcira app page (Jorge, 2026-10-11): autobet.html, mirrors the desktop app ===== */
.ab-gap{margin-bottom:18px}
#ab-main[hidden]{display:none}
.ab-tight{padding-top:0}
.ab-tight .note{margin:8px 0 0}
.ab-empty-h{font-size:16px;font-weight:600;color:var(--ink);line-height:1.45}
.ab-chips{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 4px}
.ab-chips .chipline{font-size:11px;padding:4px 9px}
#st-body .live-alert{margin:0 0 12px}
.ab-bar{height:6px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden;margin-top:8px;max-width:180px}
.ab-bar i{display:block;height:100%;width:0;background:var(--cyan);border-radius:999px;transition:width .6s cubic-bezier(.2,.75,.25,1)}
.rd-head{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap;margin-bottom:6px}
.rd-badge{font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.05);color:var(--slate);white-space:nowrap}
.rd-badge.rd-ready{background:var(--ink);color:#fff}
.rd-badge.rd-hold{background:rgba(255,255,255,.05);color:var(--ink);border:1px solid var(--ink)}
.rd-text{flex:1 1 220px;font-size:14px;line-height:1.5;color:var(--slate)}
.rd-list{list-style:none;display:grid}
.rd-list li{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-top:1px solid var(--line)}
.rd-list li b{display:block;font-size:14px;font-weight:600}
.rd-list li .sub{display:block;font-size:13px;color:var(--subtle);line-height:1.45;margin-top:2px}
.rd-list .ab-bar{max-width:none}
.rd-mark{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-family:var(--mono);font-size:12px;font-weight:600;margin-top:1px}
.rd-mark svg{width:12px;height:12px}
.rd-mark.rd-ok{background:var(--cyan);color:var(--ink)}
.rd-mark.rd-bad{background:var(--slate);color:#fff}
.rd-mark.rd-wait{border:2px solid rgba(255,255,255,.22)}
.ab-steps-h{display:block;margin:14px 0 4px}
.ab-steps{list-style:none;display:grid}
.ab-steps li{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;padding:9px 0;border-top:1px solid var(--line);font-size:13.5px}
.ab-steps li .mono{font-size:12px;color:var(--subtle)}
.ab-steps li b{font-weight:500;font-family:var(--mono);font-size:13px}
.ab-steps li i{grid-column:1/-1;font-style:normal;font-size:12.5px;color:var(--subtle)}
.fill-tbl{min-width:640px}
#fl-body>.note{margin:0 22px 12px}
.ab-ctl{display:flex;gap:10px;flex-wrap:wrap}
.ab-move{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:8px}.ab-move .field{flex:0 1 160px;margin:0}
@media (max-width:760px){.ab-move .field,.ab-move .btn-dark{flex:1 1 100%}}
.ab-form{display:grid;gap:14px}
.ab-form .note{margin:0}
.ab-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.ab-grid .field span .opt{margin-left:4px}
.ab-seg{flex-wrap:wrap;height:auto;align-self:start;justify-self:start}
.ab-seg button{padding:8px 14px}
.ab-seg button[aria-pressed="true"]{background:var(--ink);color:#fff}
.ab-form .row{padding:12px 0}
.ab-form .goal-actions .btn-dark{height:40px}
@media (max-width:1080px){.ab-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.fill-tbl{min-width:0}.ab-ctl .btn-dark{flex:1 1 100%}.ab-seg{justify-self:stretch}.ab-seg button{flex:1 1 45%}}
@media (max-width:420px){.ab-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.ab-bar i{transition:none}}
/* live updates and Your PCs (migration 029) */
.ab-sync{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--subtle);white-space:nowrap}
.ab-sync .dot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.25);flex:none}
.ab-sync.on{color:var(--ink)}
.ab-sync.on .dot{background:var(--cyan);animation:livedot 1.8s ease-out infinite}
#ab-status .card-h .meta-group{flex-wrap:wrap;justify-content:flex-end}
#pcs[hidden]{display:none}
#pc-body .live-alert{margin:0 0 6px}
.pc-row{gap:12px}
.pc-name{min-width:0}
.pc-name b{display:block;font-size:14px;font-weight:600;color:var(--ink);overflow-wrap:anywhere}
.pc-row .live-state{flex:none}
@media (prefers-reduced-motion:reduce){.ab-sync.on .dot{animation:none}}

/* ===== Leaderboard (leaderboard.html) ===== */
.lb-switch{margin-bottom:16px}
.lb-podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:18px;align-items:end}
.lb-p{display:flex;flex-direction:column;align-items:center;text-align:center;padding:22px 16px 18px;gap:6px}
.lb-p.r1{order:2;padding-top:30px;border:1.5px solid rgba(0,116,131,.35)}
.lb-p.r1::after{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--cyan);z-index:2}
.lb-p.r2{order:1}
.lb-p.r3{order:3}
.lb-p .lb-rank{font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--subtle)}
.lb-p .lb-av{width:64px;height:64px;font-size:22px}
.lb-p.r1 .lb-av{width:78px;height:78px;font-size:26px}
.lb-p .lb-name{font-size:16px;font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lb-p .lb-profit{font-size:26px;font-weight:500;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.lb-p .lb-meta{font-family:var(--mono);font-size:11.5px;color:var(--subtle)}
.lb-av{flex:none;width:32px;height:32px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:600;text-transform:uppercase;overflow:hidden}
.lb-av img{width:100%;height:100%;object-fit:cover;display:block}
.lb-who{display:flex;align-items:center;gap:10px;min-width:0}
.lb-who b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
tr.lb-me td{background:rgba(0,212,232,.1)}
.lb-you{margin-left:6px}
@media (max-width:760px){.lb-podium{grid-template-columns:1fr;gap:12px}.lb-p.r1,.lb-p.r2,.lb-p.r3{order:0}.lb-p{flex-direction:row;text-align:left;padding:14px 16px;gap:12px}.lb-p .lb-av,.lb-p.r1 .lb-av{width:48px;height:48px;font-size:18px}.lb-p.r1{padding-top:14px}.lb-p .lb-profit{font-size:20px;margin-left:auto}.lb-p .lb-mid{min-width:0;flex:1}}

/* ===== Profile picture (Settings, nav) ===== */
.avatar{overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover;display:block}
.pic-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.pic-prev{width:56px;height:56px;font-size:20px}
.pic-acts{display:flex;gap:8px;flex-wrap:wrap}
.pic-file{position:relative;display:inline-flex;align-items:center;cursor:pointer}
.pic-file input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.pic-file:focus-within{outline:2px solid var(--deep);outline-offset:2px}
.pic-hint{flex-basis:100%;font-size:12px;color:var(--subtle)}
/* the Halcira app tab (2026-10-11): a little tighter still on small desktops so every tab fits */
@media (min-width:1081px) and (max-width:1219px){.tab{padding:8px 6px;font-size:13.5px}}

/* ===== My bets: row details (migration 029) ===== */
.ev .more-btn{display:flex;width:max-content;align-items:center;gap:4px;margin-top:6px;padding:3px 9px 3px 6px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.05);font:inherit;font-size:12px;font-weight:600;color:var(--slate);cursor:pointer}
.ev .more-btn:hover{border-color:rgba(255,255,255,.45);color:var(--ink)}
.ev .more-btn svg{width:13px;height:13px;transition:transform .2s}
.ev .more-btn[aria-expanded="true"]{color:var(--ink);border-color:rgba(255,255,255,.45)}
.ev .more-btn[aria-expanded="true"] svg{transform:rotate(180deg)}
tr.bet-more td{background:rgba(255,255,255,.04);padding:4px 16px 16px;border-top:none}
.bet-dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 18px;margin:0;max-width:980px}
.bet-dl dt{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--subtle);margin-bottom:3px}
.bet-dl dd{margin:0;font-size:13.5px;color:var(--ink);line-height:1.4;overflow-wrap:anywhere}
.bet-dl dd b{font-weight:600}
.bet-dl dd .gain{color:var(--deep);font-weight:600}
.bet-dl dd .loss{color:var(--slate);font-weight:600}
@media (max-width:1080px){.bet-dl{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){
  table tr.r:has(+ tr.bet-more){border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:none}
  table tr.bet-more{margin-top:0;border-top:1px dashed var(--line);border-radius:0 0 12px 12px;padding:4px 12px 10px}
  table tr.bet-more td{text-align:left;border-bottom:none;margin-bottom:0;padding:6px 0 0;background:none}
  .bet-dl{gap:10px 14px}
}
@media (pointer:coarse){.ev .more-btn{min-height:44px;padding:0 14px 0 10px}}
@media (prefers-reduced-motion:reduce){.ev .more-btn svg{transition:none}}

/* ===== Dark theme: body depth, nav separators, and components that used --ink as a dark fill ===== */
body{background:radial-gradient(900px 520px at 100% 0,rgba(0,212,232,.07),transparent 70%),radial-gradient(700px 480px at 0 100%,rgba(0,116,131,.10),transparent 70%),#0B1418}
.tabsep{width:1px;height:18px;background:rgba(255,255,255,.12);margin:0 5px;flex:none;align-self:center}
.tab.active,.exec,.btn-dark,.bookchip[aria-pressed="true"],.chip-btn.armed,.chip-btn.suggest,
.icon-btn.on,.live-state.on,.plan-chip.on,.plan-switch .seg button.on,.chipline.dark,
.chipline.mark.new,.plan-badge,.rd-badge.rd-ready,.count,.skip,
.subnav a[aria-current="page"],.subnav a[aria-current="true"],.ab-seg button[aria-pressed="true"]{background:var(--cyan)!important;color:#0A1A20!important;border-color:var(--cyan)!important}
.tab.active svg,.icon-btn.on svg,.live-state.on svg{color:#0A1A20}
.tab.active .count{background:#0A1A20!important;color:var(--cyan)!important}
.tab.active .chip{border-color:rgba(10,26,32,.35);color:#0A1A20}
.btn-dark:hover,.exec:hover{background:#2BE0F2!important}
.plan-chip.on::before{background:#0A1A20}
.avatar,.lb-av{background:#1b3843!important;color:#EEF3F5}
.switch{background:rgba(255,255,255,.16)!important}
.dot{background:var(--subtle)}
.spark.s6{background:var(--cyan)}
.bookchip,.chip-btn{border-color:rgba(255,255,255,.16)}
.bookchip:hover,.chip-btn:hover{border-color:var(--cyan)}

/* ===== Finance dropdown in the nav ===== */
/* The menu is moved to <body> and positioned as a fixed panel so the nav's
   horizontal scroll container (.tabs overflow-x) never clips it. */
.dd{position:relative;display:flex}
.dd-btn{display:flex;align-items:center;gap:7px}
.dd-caret{width:13px;height:13px;margin-left:1px;opacity:.65;transition:transform .2s}
.dd.open .dd-caret{transform:rotate(180deg)}
.dd-menu{position:fixed;top:0;left:0;min-width:212px;max-width:calc(100vw - 20px);padding:7px;
  display:flex;flex-direction:column;gap:2px;
  background:rgba(17,29,34,.96);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
  border:1px solid rgba(255,255,255,.12);border-radius:16px;box-shadow:0 20px 54px rgba(0,0,0,.55);
  opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-6px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s;z-index:70}
.dd-menu.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
.dd-item{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:11px;font-size:14px;font-weight:500;
  color:var(--slate);text-decoration:none;white-space:nowrap;transition:background .15s,color .15s}
.dd-item svg{width:17px;height:17px;flex:none;opacity:.85}
.dd-item:hover{background:rgba(255,255,255,.06);color:var(--ink)}
.dd-item.active{background:rgba(0,212,232,.14);color:var(--ink)}
.dd-item.active svg{color:var(--cyan);opacity:1}
.dd-item .chip,.dd-item .count{margin-left:auto}
.dd-item.soon{opacity:.5;cursor:default}
.dd-item.soon:hover{background:none;color:var(--slate)}
.dd-item.soon svg{opacity:.6}

/* ===== Overview hub: Lisa briefing, attention chips, app grid ===== */
.hub-lead{display:block;margin-bottom:18px}
#bal-card,#hub-card{margin-bottom:18px}
.lisa-head{display:flex;align-items:center;gap:13px;padding:22px 24px 0;position:relative}
.lisa-mark{width:44px;height:44px;flex:none;display:grid;place-items:center;border-radius:13px;background:rgba(0,212,232,.10);border:1px solid var(--line-cyan)}
.lisa-mark svg{width:30px;height:30px}
.lisa-meta .label{display:block}
.lisa-meta h2{font-size:19px;font-weight:600;letter-spacing:-.01em;margin-top:3px}
.lisa-say{padding:15px 24px 2px;font-size:16px;line-height:1.55;color:var(--ink);max-width:72ch;position:relative}
.attn{display:flex;flex-wrap:wrap;gap:8px;padding:15px 24px 6px;position:relative}
.attn-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 11px 7px 14px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid var(--line);color:var(--slate);font-size:13px;font-weight:500;text-decoration:none;transition:background .15s,color .15s,border-color .15s}
.attn-chip svg{width:13px;height:13px;opacity:.7}
.attn-chip:hover{background:rgba(0,212,232,.12);border-color:var(--line-cyan);color:var(--ink)}
.hub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:14px 18px 20px}
.hub-tile{display:flex;align-items:center;gap:12px;padding:14px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid var(--line);text-decoration:none;color:var(--ink);transition:background .15s,border-color .15s,transform .15s}
.hub-tile:hover{background:rgba(255,255,255,.07);border-color:var(--line-cyan);transform:translateY(-1px)}
.ht-ic{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:11px;background:rgba(0,212,232,.10);color:var(--cyan)}
.ht-ic svg{width:21px;height:21px}
.ht-tx{flex:1;min-width:0;display:flex;flex-direction:column}
.ht-tx b{font-size:15px;font-weight:600}
.ht-tx i{font-style:normal;font-size:12.5px;color:var(--subtle);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ht-go{width:16px;height:16px;flex:none;color:var(--subtle);transition:transform .15s,color .15s}
.hub-tile:hover .ht-go{color:var(--cyan);transform:translateX(2px)}
@media(max-width:760px){.hub-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.hub-grid{grid-template-columns:1fr}.lisa-say{font-size:15px}.lisa-meta h2{font-size:17px}}

/* ===== Overview sections: notifications list, section headers, connect card ===== */
.notif-h{padding:16px 24px 2px}
.notif{display:flex;flex-direction:column;gap:2px;padding:8px 14px 16px}
.notif-item{display:flex;align-items:center;gap:13px;padding:11px 10px;border-radius:12px;text-decoration:none;color:var(--ink);transition:background .15s}
.notif-item:hover{background:rgba(255,255,255,.05)}
.ni-dot{width:9px;height:9px;border-radius:50%;background:var(--cyan);flex:none;box-shadow:0 0 0 4px rgba(0,212,232,.12)}
.notif-item.info .ni-dot{background:var(--subtle);box-shadow:none}
.ni-tx{flex:1;min-width:0;font-size:14px;font-weight:500}
.ni-tx i{display:block;font-style:normal;font-weight:400;color:var(--subtle);font-size:12.5px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ni-go{width:15px;height:15px;flex:none;color:var(--subtle);transition:transform .15s,color .15s}
.notif-item:hover .ni-go{color:var(--cyan);transform:translateX(2px)}
.notif-empty{padding:10px 10px 6px;color:var(--subtle);font-size:14px}

.hub-sec{margin-bottom:26px}
.hub-sec .card{margin-bottom:14px}
.hub-sec .card:last-child,.hub-sec .engine:last-child{margin-bottom:0}
.sec-head{display:flex;align-items:center;gap:11px;padding:2px 4px 13px}
.sec-ic{width:30px;height:30px;flex:none;display:grid;place-items:center;border-radius:9px;background:rgba(0,212,232,.10);border:1px solid var(--line-cyan);color:var(--cyan)}
.sec-ic svg{width:17px;height:17px}
.sec-head h2{font-size:17px;font-weight:600;flex:1;letter-spacing:-.01em}

.connect-card{padding:24px}
.connect-card h3{font-size:16px;font-weight:600;margin-bottom:8px}
.connect-card p{color:var(--slate);font-size:14.5px;line-height:1.55;max-width:62ch;margin-bottom:16px}
.connect-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.connect-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;background:var(--cyan);color:#0A1A20;font-weight:600;font-size:14px;text-decoration:none;transition:background .15s,transform .15s}
.connect-btn:hover{background:#2BE0F2;transform:translateY(-1px)}
.connect-soon{font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;color:var(--subtle);text-transform:uppercase}

/* ===== Lisa: her face in the briefing and in the corner (js/lisa.js) ===== */
.lisa-mark.has-face{overflow:visible;padding:0;background:none;border:none;border-radius:50%}
.lisa-corner{position:fixed;right:18px;bottom:18px;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.lisa-corner[hidden]{display:none}
/* Her face draws its own ring on its edge (lisaface.js); the button adds only a shadow, no second ring. */
.lisa-orb{width:64px;height:64px;border-radius:50%;padding:0;border:none;background:none;
  box-shadow:0 12px 32px rgba(0,0,0,.45);display:block;transition:transform .2s,box-shadow .2s}
.lisa-orb:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(0,0,0,.5)}
.lisa-orb[aria-expanded="true"]{box-shadow:0 12px 32px rgba(0,0,0,.45),0 0 0 3px rgba(0,212,232,.35)}
.lisa-orb:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
.lisa-orb-face{display:block;width:64px;height:64px;line-height:0}
.lisa-pop{width:min(320px,calc(100vw - 36px));padding:16px 16px 14px;border-radius:16px;background:rgba(17,29,34,.97);
  border:1px solid rgba(255,255,255,.12);box-shadow:0 20px 54px rgba(0,0,0,.55);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}
.lisa-pop[hidden]{display:none}
.lisa-pop-hi{font-weight:600;font-size:16px;margin-bottom:4px}
.lisa-pop-say{font-size:14.5px;line-height:1.5;color:var(--ink);margin-bottom:12px}
.lisa-pop-btns{display:flex;flex-wrap:wrap;gap:8px}
.lisa-pop-btns .btn-dark{display:inline-flex;align-items:center;text-decoration:none}
.lisa-pop-fine{margin-top:10px;font-size:12.5px;color:var(--slate);line-height:1.45}
@media(max-width:480px){.lisa-corner{right:12px;bottom:12px}}
@media (prefers-reduced-motion:reduce){.lisa-orb{transition:none}.lisa-orb:hover{transform:none}}
.lisa-pop-btns .btn{height:38px;border-radius:8px}
.lisa-pop-check{display:flex;gap:8px;align-items:flex-start;margin-top:10px;font-size:12.5px;color:var(--slate);line-height:1.4;cursor:pointer}
.lisa-pop-check[hidden]{display:none}
.lisa-pop-check input{margin-top:2px;accent-color:var(--cyan)}
