/* Alkemi hub (from the approved mockups, direction 1 treatment). */

body{overflow-x:hidden}
.app{display:grid;grid-template-columns:212px 1fr;min-height:100vh}
.app.top{grid-template-columns:1fr}
.side{border-right:1px solid var(--rule);background:var(--panel);padding:18px 14px;display:flex;flex-direction:column;gap:20px;position:sticky;top:0;height:100vh}
.side nav{display:grid;gap:2px}
.side nav .grp{font:500 9.5px var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--muted);padding:12px 10px 6px}
.side nav a{display:flex;align-items:center;gap:10px;padding:7px 10px;color:var(--soft);border-left:2px solid transparent;font-size:13.5px}
.side nav a.on{color:var(--white);border-left-color:var(--signal)}
.side nav a .ic{width:14px;height:14px;flex:none;color:var(--muted)}
.side nav a .k{margin-left:auto;font:400 10px var(--mono);color:var(--muted)}
.side nav a.lk{color:var(--muted)}
.side nav a.lk .lkm{margin-left:auto;display:inline-flex;align-items:center}
/* lock treatments, one per direction */
.lk-glyph svg{width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:1.3}
.lk-ring .lkm i{width:8px;height:8px;border:1px solid var(--muted);border-radius:50%;display:block}
.lk-soon .lkm{font:400 9px var(--mono);letter-spacing:.16em;text-transform:uppercase}
.lk-dash a.lk{border-left:2px dashed var(--rule-lit)}.lk-dash .lkm{display:none!important}
.lk-cell .lkm i{width:4px;height:9px;border:1px solid var(--muted);display:block}
.side .bal{display:grid;gap:6px;font:400 11px var(--mono);color:var(--muted)}
.side .bal b{color:var(--text);font-weight:500}
.side .wlc{margin-top:auto;border:1px solid var(--rule);padding:12px;display:grid;gap:8px}
.side .wlc b{font:400 15px var(--serif);color:var(--white)}
.side .wlc p{font-size:11.5px;color:var(--muted);line-height:1.4}
.side .wlc input{padding:7px 9px;border:1px solid var(--rule-lit);background:var(--ground);font-size:12px;min-width:0}
.side .wlc .btn{padding:7px 10px;font-size:12px;justify-content:center}
.side .foot2{display:flex;gap:10px;font:400 10.5px var(--mono);color:var(--muted);justify-content:space-between}
/* collapsed 76px */
.app.mini{grid-template-columns:76px 1fr}
.app.mini .side{padding:18px 10px;align-items:center}
.app.mini .side .wm small,.app.mini .side .bal,.app.mini .side .wlc p,.app.mini .side .wlc input,.app.mini .side .grp,.app.mini .side nav a span.tx,.app.mini .side nav a .k,.app.mini .side .foot2 span{display:none}
.app.mini .side .wm{font-size:16px}
.app.mini .side nav a{justify-content:center;padding:9px 0;width:56px;position:relative}
.app.mini .side nav a .lkm{position:absolute;right:10px;top:5px;margin:0}
.app.mini .side nav a.lk .ic{opacity:.55}
.app.mini.lk-soon .side nav a.lk .lkm{font-size:0;width:4px;height:4px;border-radius:50%;background:var(--muted)}
.app.mini.lk-glyph .side nav a.lk .lkm svg{width:8px;height:8px}
.app.mini .side .wlc{padding:8px;width:56px}.app.mini .side .wlc b{font-size:12px;text-align:center}
.app.mini .side .grp+a{border-top:1px solid var(--rule);margin-top:6px;padding-top:12px}
/* inline locked slot */
.sl{margin-top:18px;border:1px dashed var(--rule-lit);padding:12px 14px;display:grid;gap:8px}
.sl h3{font:400 18px var(--serif);color:var(--white);display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--rule);padding-bottom:6px}
.sl h3 a.lk{font:400 10px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:inline-flex;gap:6px;align-items:center}
.sl h3 a.lk .lkm{margin:0;display:inline-flex}
.sl-r{display:flex;gap:12px;align-items:center;padding:7px 0;border-bottom:1px solid var(--rule)}.sl-r i{display:block;height:8px;background:var(--rule)}.sl-r b{margin-left:auto;font:400 12px var(--mono);color:var(--muted)}
.sl-f{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.sl-f>div{display:grid;gap:2px}.sl-f small{font:500 9px var(--sans);letter-spacing:.2em;color:var(--muted)}.sl-f b{font:300 18px var(--mono);color:var(--rule-lit)}
.sl p{font-size:12px;color:var(--muted);line-height:1.45}
.brief .sl{margin:0;align-self:start}
.sl-note{font-size:12px;color:var(--muted);margin-top:10px}.sl-note a.lk,.ctx .lkc a.lk{display:inline-flex;gap:6px;align-items:center;font:400 10px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border-bottom:1px dashed var(--rule-lit)}.sl-note .lkm,.ctx .lkc .lkm{margin:0;display:inline-flex}
.ctx .lkc{display:grid;gap:4px;align-content:end}
/* placeholder (coming soon) view */
.ph-v{max-width:900px}
.ph-v h2{font:400 30px var(--serif);color:var(--white);display:flex;gap:14px;align-items:baseline}
.ph-v h2 small{font:400 10px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.ph-v .what{font-size:15px;color:var(--soft);max-width:60ch;margin:10px 0 24px;line-height:1.55}
.sil{border:1px solid var(--rule);background:var(--panel);padding:18px;display:grid;gap:14px}
.sil .r{display:grid;grid-template-columns:120px 1fr 70px 70px 90px;gap:16px;align-items:center;border-bottom:1px solid var(--rule);padding:9px 0}
.sil .r:last-child{border-bottom:0}
.sil .r.h{padding-top:0}
.sil .r.h span{font:500 9.5px var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.sil .r i{display:block;height:9px;background:var(--rule);border-radius:0}
.sil .r b{font:400 13px var(--mono);color:var(--muted)}
.sil .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.sil .cols>div{border:1px solid var(--rule);padding:14px;min-height:92px;display:grid;align-content:space-between}
.sil .cols .lab{display:block}.sil .cols b{font:300 26px var(--mono);color:var(--rule-lit)}
.ph-v .cta2{margin-top:26px;display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.ph-v .cta2 span{font-size:13px;color:var(--soft)}
/* reports */
.rp{max-width:1100px}
.rp .cur h2{font:400 36px/1.08 var(--serif);color:var(--white);max-width:24ch;margin:10px 0 14px}
.rp .cur .sf{font:400 19px/1.4 var(--serif);color:var(--text);max-width:50ch;margin-bottom:10px}
.rp .cur p{font-size:14.5px;line-height:1.6;color:var(--soft);max-width:66ch}
.rp .cur ul{list-style:none;margin:14px 0 0;display:grid;gap:7px}.rp .cur li{padding-left:18px;position:relative;font-size:13.5px;color:var(--soft)}.rp .cur li::before{content:'–';position:absolute;left:0;color:var(--muted)}
.rp .tone{display:flex;gap:22px;font:400 11px var(--mono);color:var(--muted);letter-spacing:.06em;margin-bottom:6px}.rp .tone b{color:var(--text);font-weight:500}
.rp .prev{margin-top:36px}
.rp .prev h3{font:400 20px var(--serif);color:var(--white);border-bottom:1px solid var(--rule);padding-bottom:8px;margin-bottom:4px}
.peek{display:grid;grid-template-columns:110px minmax(0,1fr);gap:18px;padding:14px 0;border-bottom:1px solid var(--rule)}
.peek .d{font:400 11px/1.7 var(--mono);color:var(--muted)}.peek .d b{display:block;color:var(--text);font-weight:500}
.peek h4{font:400 18px/1.2 var(--serif);color:var(--white);margin-bottom:4px}
.peek p{font-size:13px;color:var(--soft)}
.peek ul{list-style:none;margin-top:6px;display:grid;gap:3px}.peek li{font-size:12.5px;color:var(--muted);padding-left:14px;position:relative}.peek li::before{content:'–';position:absolute;left:0}
.arch{margin-top:18px;border:1px dashed var(--rule-lit);padding:14px 16px;display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap;font-size:13px;color:var(--soft)}
.arch b{font:400 16px var(--serif);color:var(--white);display:block}
.topbar{display:flex;align-items:center;gap:22px;padding:12px 22px;border-bottom:1px solid var(--rule);background:var(--panel);position:sticky;top:0;z-index:5}
.topbar nav{display:flex;gap:4px;margin-left:10px}
.topbar nav a{padding:6px 10px;color:var(--soft);border-bottom:2px solid transparent}
.topbar nav a.on{color:var(--white);border-bottom-color:var(--signal)}
.topbar .age{margin-left:auto;font:400 11px var(--mono);color:var(--muted)}
.topbar .wl-link{color:var(--signal);font-size:12px}
.status{display:flex;gap:18px;align-items:center;padding:10px 24px;border-bottom:1px solid var(--rule);font-size:12px;color:var(--muted);flex-wrap:wrap}.status>span:first-child{white-space:nowrap}
.mnav{display:none}
.status .age{font-family:var(--mono);font-size:11px}
.status .reg{display:flex;gap:6px;align-items:center}.status .reg i{width:12px;height:2px;background:var(--rule-lit)}.status .reg i.on{background:var(--signal)}
.main{padding:28px 24px 60px;min-width:0}
.hm{max-width:1240px}
.hm-eye{display:flex;gap:16px;align-items:baseline}
.hm-eye b{font:500 10px var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--signal)}
.hm-eye span{font:400 10px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.hm h1{font:400 42px/1.08 var(--serif);color:var(--white);margin:12px 0 18px;max-width:20ch}
.hm-hero{display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:48px;align-items:start}
.hm-text p{font-size:15px;line-height:1.55;color:var(--text);max-width:68ch;margin-bottom:10px}
.hm-text ul{list-style:none;margin:14px 0;display:grid;gap:7px}
.hm-text li{padding-left:18px;position:relative;font-size:13.5px;color:var(--soft)}
.hm-text li::before{content:'–';position:absolute;left:0;color:var(--muted)}
.mood{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;border-top:1px solid var(--rule);padding-top:14px;margin-top:22px}
.mood dt{font:500 10px var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.mood dd{font:400 22px var(--serif);color:var(--white);margin-top:2px}
.mood dd small{display:block;font:400 10.5px var(--sans);color:var(--muted);margin-top:2px}
.panel{border:1px solid var(--rule);background:var(--panel)}
.sess{display:grid;grid-template-columns:1fr 1fr;gap:0}
.sess>div{padding:12px 14px;border-bottom:1px solid var(--rule)}
.sess>div:nth-child(odd){border-right:1px solid var(--rule)}
.sess b{font:500 15px var(--mono);color:var(--white);display:block}
.sess small{font:500 9px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.hi{margin-top:18px}.tod .tc{border-top:0;padding-top:10px}
.hi h3{font:400 20px var(--serif);color:var(--white);display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--rule);padding-bottom:8px}
.hi h3>span:last-child{font:500 11px var(--mono);color:var(--signal)}
.ev{display:grid;grid-template-columns:70px 44px 1fr auto;gap:12px;padding:9px 0;border-bottom:1px solid var(--rule);font-size:13px;align-items:center}
.ev .t{font:400 12px var(--mono);color:var(--muted)}.ev .cc{font:500 11px var(--mono);color:var(--soft)}
.ev .v{font:400 12px var(--mono);color:var(--muted)}.ev .v b{color:var(--white);font-weight:500}
.sess .st{font:500 10px var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-top:2px}.sess .on .st{color:var(--bull)}
.sess span{display:block;font:400 11px var(--mono);color:var(--soft);margin-top:2px}
.q{display:inline-grid;place-items:center;width:14px;height:14px;margin-left:6px;border:1px solid var(--rule-lit);border-radius:50%;font:500 9px/1 var(--mono);letter-spacing:0;text-transform:none;color:var(--muted);vertical-align:2px;position:relative;cursor:help}
.q:hover,.q:focus{color:var(--signal);border-color:var(--signal);outline:none}
.q .gp{letter-spacing:normal;text-transform:none}.q:focus .gp{display:block}
@media (hover:hover){.q:hover .gp{display:block}}
/* home: capital flows + dollar sentiment */
.hm-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;margin-top:40px;align-items:start}
.hm-ph{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;padding-bottom:10px;border-bottom:1px solid var(--rule-lit)}
.hm-ph h3{font:400 21px var(--serif);color:var(--white)}
.hm-ph .chips{margin:0 0 0 auto}.hm-ph .lab{flex-basis:100%;order:3}.hm-ph>.lab:only-of-type{flex-basis:auto;order:0;margin-left:auto}
.fl-sum{margin:12px 0 10px;font-size:13.5px;color:var(--text)}
.fl-g{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-top:8px}.fl-g>div>.lab{display:block;margin-bottom:6px}
.fl-r{display:grid;grid-template-columns:minmax(0,1fr) minmax(70px,1fr) 52px 104px;gap:10px;align-items:center;padding:6px 0;border-top:1px solid var(--rule)}
.fl-n{display:flex;align-items:center;gap:8px;min-width:0;font-size:13px;color:var(--white)}.fl-n>span{white-space:nowrap}
.fl-n small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fl-i{display:inline-grid;place-items:center;min-width:22px;height:16px;padding:0 3px;border:1px solid var(--rule-lit);border-radius:3px;font:500 8.5px var(--mono);letter-spacing:.04em;color:var(--soft)}
.fl-b{position:relative;height:8px;background:var(--hbg)}.fl-b::after{content:"";position:absolute;left:50%;top:-3px;bottom:-3px;width:1px;background:var(--rule-lit)}
.fl-b i{position:absolute;top:0;bottom:0;border-radius:1px;opacity:.6}.fl-b i.up{background:var(--signal)}.fl-b i.dn{background:var(--warn)}
.fl-z{font:500 12.5px var(--mono);text-align:right}.fl-z.up{color:var(--signal)}.fl-z.dn{color:var(--warn)}
.fl-c{font:400 11px var(--mono);color:var(--muted);text-align:right;white-space:nowrap}
.fl-r.st{opacity:.62}
.fl-note{margin-top:12px;font-size:11.5px;color:var(--muted)}
.ds-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding:14px 0 4px}
.ds-head b{font:400 30px/1 var(--serif);color:var(--white)}.ds-head span{font-size:12.5px;color:var(--muted)}
.ds-why{font-size:13.5px;line-height:1.6;color:var(--soft);margin:8px 0 12px}
.ds-m b{font:400 13px var(--mono);color:var(--white)}
.dx-fig{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));}.dx-fig.c4{grid-template-columns:repeat(4,minmax(0,1fr))}.dx-fig{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.dx-fig>div{padding:12px 10px 11px 0;display:flex;flex-direction:column;gap:3px;min-width:0}.dx-fig>div+div{padding-left:12px;border-left:1px solid var(--rule)}
.dx-fig b{font:400 15px var(--mono);color:var(--white);white-space:nowrap}
.dx-fig>div>span{font-size:9.5px;line-height:1.35;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.dx-as{font:400 10.5px var(--mono);color:var(--muted);margin-top:6px}
.dx-ln>div{padding:10px 0;border-bottom:1px solid var(--rule)}
.dx-ln dt{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
.dx-ln dd{font-size:13.5px;color:var(--text)}
.dx-h{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.dx-h span{font:400 16px var(--serif);color:var(--white)}.dx-h i{font-style:normal;color:var(--muted)}
.hm-more{margin-top:12px;font-size:12px}.hm-more .lk{color:var(--soft);display:inline-flex;gap:6px;align-items:center}
/* desk */
.vhead{display:flex;align-items:baseline;gap:14px;margin-bottom:16px}
.vhead h2{font:400 28px var(--serif);color:var(--white)}
.brief{display:grid;grid-template-columns:minmax(0,1fr) 250px 330px;gap:28px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:18px 0;margin-bottom:22px}
.brief h1{font:400 26px/1.2 var(--serif);color:var(--white);max-width:40ch}
.brief .np b{font:500 10px var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--signal);display:block;margin-bottom:6px}
.brief .np .n{font:400 16px var(--serif);color:var(--white)}
.brief .np .w{font:400 12px var(--mono);color:var(--warn);margin-top:4px}
.ctx{display:flex;gap:18px 22px;flex-wrap:wrap}.ctx b{font:400 22px var(--mono);color:var(--white);display:block;white-space:nowrap}.ctx small{font:400 10px/1.5 var(--mono);color:var(--muted);letter-spacing:.06em;display:block;max-width:15ch}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 16px}
.chips .chip small{font-family:var(--mono);margin-left:6px;color:var(--muted)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.rest{margin-top:30px}
.rest .ph{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}
.rest .ph .lab b{color:var(--signal);font-family:var(--mono);margin-left:8px}
.rest .grid{display:grid;grid-template-columns:repeat(5,1fr);gap:0 24px}
.ix{display:grid;grid-template-columns:22px 1fr auto;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--rule);font-size:13px}
.ix .cf{font:500 12.5px var(--mono)}
.ix .cf i{font-style:normal;margin-right:5px;font-size:10px}
.nocov{margin-top:18px;font-size:12px;color:var(--muted)}.nocov span{color:var(--soft);margin-left:10px}
.ledger{width:100%;border-collapse:collapse}
.ledger th{text-align:left;font:500 10px var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--rule-lit)}
.ledger td{padding:9px 10px;border-bottom:1px solid var(--rule);vertical-align:top;font-size:13px}
.ledger td.nm{font:400 16px var(--serif);color:var(--white);white-space:nowrap}
.ledger td.st{font:500 10px var(--sans);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap}
.ledger td.cf{font:500 13px var(--mono);white-space:nowrap}
.ledger td.rd{color:var(--soft);max-width:520px}
.ledger td.g{font:400 10.5px var(--mono);color:var(--muted);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.q4{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--rule);margin-bottom:22px}
.q4>div{padding:14px 16px;border-right:1px solid var(--rule)}.q4>div:last-child{border-right:0}
.q4 .lab{display:block;margin-bottom:6px}
.q4 b{font:400 24px var(--serif);color:var(--white);display:block}.q4 b.mono{font:400 24px var(--mono)}
.q4 p{font-size:12px;color:var(--soft);margin-top:4px;line-height:1.45}
.hours{display:flex;gap:3px;align-items:flex-end;margin-left:auto}
.hours i{display:block;width:5px;height:10px;background:var(--rule-lit)}
.hours i.f{background:var(--signal)}.hours i.now{height:14px;background:var(--white)}
.hours+span{font:400 11px var(--mono);color:var(--muted);margin-left:10px}
.hubfoot{margin-top:50px;border-top:1px solid var(--rule);padding-top:16px;display:flex;gap:24px;justify-content:space-between;flex-wrap:wrap}
@media(max-width:1000px){.hm-hero{grid-template-columns:1fr}.hm-row{grid-template-columns:1fr;gap:36px}.brief{grid-template-columns:1fr}.rest .grid{grid-template-columns:repeat(3,1fr)}.q4{grid-template-columns:1fr 1fr}.q4>div:nth-child(2){border-right:0}.q4>div:nth-child(-n+2){border-bottom:1px solid var(--rule)}}
@media(max-width:700px){
  .app,.app.mini{grid-template-columns:1fr}.side{display:none}
  .mnav{display:flex;gap:4px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--rule);background:var(--panel);overflow-x:auto;white-space:nowrap}.mnav .wm{margin-right:10px;font-size:17px}.mnav a{padding:6px 9px;color:var(--soft);border-bottom:2px solid transparent;font-size:13px;display:inline-flex;gap:6px;align-items:center}.mnav a.on{color:var(--white);border-bottom-color:var(--signal)}.mnav a.lk{color:var(--muted)}.mnav a.lk svg{width:10px;height:10px;stroke:currentColor;fill:none;stroke-width:1.3}.mnav .sep{width:1px;height:16px;background:var(--rule-lit);margin:0 6px;flex:none}
  .rp .cur h2{font-size:28px}.peek{grid-template-columns:1fr;gap:6px}.sil .r{grid-template-columns:80px 1fr 50px}.sil .r>:nth-child(n+4){display:none}.sil .cols{grid-template-columns:1fr}
  .topbar{padding:10px 16px;gap:10px;flex-wrap:wrap}.topbar .age{flex-basis:100%;margin:0}
  .main{padding:18px 16px 50px}.hm h1{font-size:30px}
  .fl-r{grid-template-columns:minmax(0,1fr) 70px 52px}.fl-c{grid-column:1/-1;text-align:left;margin-top:-4px}.fl-n small{display:none}
  .dx-fig,.dx-fig.c4{grid-template-columns:1fr 1fr}.dx-fig>div:nth-child(3){border-left:0;padding-left:0}.dx-fig>div:nth-child(n+3){border-top:1px solid var(--rule)}
  .rest .grid{grid-template-columns:1fr}.mood{grid-template-columns:1fr 1fr}
  .ledger td.rd{display:none}.ledger th:last-child{display:none}.ledger td.g{display:none}.ledger th:nth-child(1){display:none}
  .q4{grid-template-columns:1fr}.q4>div{border-right:0;border-bottom:1px solid var(--rule)}
  .hours{display:none}.hours+span{margin-left:auto}
  .ev{grid-template-columns:62px 40px 1fr}.ev .v{grid-column:2/-1}
}

/* ---- hub additions ---- */
.side-wl{display:none;margin-top:30px;border:1px solid var(--rule);padding:14px;font-size:13px;color:var(--soft)}
.side-wl b{display:block;font:400 18px var(--serif);color:var(--white);margin-bottom:4px}

.side nav a:hover{color:var(--white)}
.side nav a[aria-current=page]{color:var(--white);border-left-color:var(--signal)}
.side .tools{display:flex;gap:8px;align-items:center;justify-content:space-between;font:400 10.5px var(--mono);color:var(--muted)}
.side .tools button{border:1px solid var(--rule);padding:4px 8px;color:var(--soft);font:400 10.5px var(--mono)}
.side .tools button:hover{color:var(--white);border-color:var(--rule-lit)}
.side .wlc .btn{width:100%}
.app.mini .side .tools .tx{display:none}
.mnav a[aria-current=page]{color:var(--white);border-bottom-color:var(--signal)}
button.rc{text-align:left;width:100%;cursor:pointer;color:inherit;font:inherit}
button.rc:hover{border-color:var(--rule-lit)}
button.ix{width:100%;text-align:left;cursor:pointer;color:inherit;font:inherit}
button.ix:hover span:nth-child(2){color:var(--white)}
.cards .empty{grid-column:1/-1;color:var(--muted);font-size:13px;padding:14px 0}
/* drawer */
dialog.drawer{margin:0 0 0 auto;height:100%;max-height:100%;max-width:min(520px,100vw);border-width:0 0 0 1px}
.drawer .dlg{padding:26px 24px 30px;gap:16px;overflow:auto;max-height:100vh}
.drawer h2{font:400 30px var(--serif);color:var(--white);display:flex;gap:12px;align-items:center}
.drawer .fig{display:flex;gap:18px;align-items:baseline;flex-wrap:wrap;font:400 12px var(--mono);color:var(--muted)}
.drawer .fig b{font:500 26px var(--mono)}
.drawer .call{font-size:15px;line-height:1.55;color:var(--text)}
.drawer .blk{border-top:1px solid var(--rule);padding-top:12px;display:grid;gap:6px}
.drawer .blk p,.drawer .blk li{font-size:13.5px;color:var(--soft);line-height:1.5}
.drawer ul{list-style:none;display:grid;gap:6px}.drawer li{padding-left:16px;position:relative}.drawer li::before{content:'–';position:absolute;left:0;color:var(--muted)}
.drawer .lkrow{display:flex;justify-content:space-between;align-items:center;border:1px dashed var(--rule-lit);padding:12px 14px;font-size:13px;color:var(--soft)}
.drawer .lkrow a{display:inline-flex;gap:6px;align-items:center;color:var(--muted);font:400 11px var(--mono);letter-spacing:.12em;text-transform:uppercase}
.lkm svg{width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:1.3}
.hm-flows .chips{margin:0 0 0 auto}
@media(max-width:700px){
  .mnav{position:sticky;top:0;z-index:20;padding-top:max(10px,env(safe-area-inset-top))}
  .mnav a{min-height:40px}
  dialog.drawer{max-width:100vw;border-width:0}
  .main{padding-bottom:calc(50px + env(safe-area-inset-bottom))}
  .side-wl{display:block}
}
@media(min-width:1700px){.main{padding-left:40px;padding-right:40px}}

/* heading levels fixed for screen readers; same look as the mockups */
.ph-v h1.ph-h{font:400 30px var(--serif);color:var(--white);display:flex;gap:14px;align-items:baseline;flex-wrap:wrap}
.ph-v h1.ph-h small{font:400 10px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.vhead h1.vh{font:400 28px var(--serif);color:var(--white)}
.brief h2.bh{font:400 26px/1.2 var(--serif);color:var(--white);max-width:40ch}
.rest .ph h2.lab{font-size:10px}
.rc .p{display:block;font-size:13px;color:var(--soft);line-height:1.5}
.rc .bar{display:block}
.arch button.cta{font:inherit;font-size:13px}
.drawer .dlg{min-height:100%}
.hi h2.hh{font:400 20px var(--serif);color:var(--white);display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--rule);padding-bottom:8px}
.hi h2.hh>span:last-child{font:500 11px var(--mono);color:var(--signal)}
.hm-ph h2{font:400 21px var(--serif);color:var(--white)}
@media (hover:hover){
  .side nav a{transition:background-color var(--t2) var(--ease),color var(--t1),border-color var(--t2)}
  .side nav a:hover{background:var(--hbg);border-left-color:var(--rule-lit)}
  .side nav a.on:hover,.side nav a[aria-current=page]:hover{border-left-color:var(--signal)}
  .side nav a:hover .ic{color:var(--signal)}
  .ix,.fl-r,.ev,.dx-ln>div,.peek,.lgrow{transition:background-color var(--t2) var(--ease),box-shadow var(--t2) var(--ease)}
  .ix:hover,.fl-r:hover,.ev:hover,.dx-ln>div:hover{background:var(--hbg);box-shadow:inset 2px 0 0 var(--signal)}
  .peek:hover{background:var(--hbg)}
  .peek:hover h4{color:var(--signal)}
  .dx-fig>div{transition:background-color var(--t2) var(--ease)}.dx-fig>div:hover{background:var(--hbg)}.dx-fig>div:hover b{color:var(--signal)}
  .mood>div dd{transition:color var(--t1)}.mood>div:hover dd{color:var(--signal)}
  .sess>div{transition:background-color var(--t2) var(--ease)}.sess>div:hover{background:var(--hbg)}
  .sl-note a.lk:hover,.ctx .lkc a.lk:hover,.hm-more .lk:hover,.drawer .lkrow a:hover{color:var(--white);border-color:var(--white)}
  .side .wlc{transition:border-color var(--t2) var(--ease)}.side .wlc:hover{border-color:var(--rule-lit)}
  .dlg-x:hover{transform:rotate(90deg)}
}
.dlg-x{transition:transform var(--t2) var(--ease),color var(--t1)}
.ix{grid-template-columns:32px 1fr auto}.ev .cc{display:inline-flex;align-items:center}
/* hover rows: the signal bar sits 10px clear of the icon; content stays aligned with the column */
.ix,.fl-r,.ev,.dx-ln>div{padding-left:10px;padding-right:10px;margin-left:-10px;margin-right:-10px}
.rest .grid{column-gap:24px}
/* calendar */
.calbar{display:flex;flex-wrap:wrap;gap:10px 18px;margin-bottom:14px}.calbar .chips{margin:0}
.chip.cc{display:inline-flex;align-items:center}
.crow{display:grid;grid-template-columns:62px 66px 30px minmax(0,1fr) 84px 96px 84px;gap:12px;align-items:center;padding:9px 10px;margin:0 -10px;border-bottom:1px solid var(--rule);font-size:13px}
.crow.head{font:500 10px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--rule-lit);padding-top:4px}
.crow .t{font:400 12.5px var(--mono);color:var(--soft)}.crow .cc{font:500 11.5px var(--mono);color:var(--soft);display:inline-flex;align-items:center}
.crow .n{color:var(--text)}.crow .num{text-align:right;font:400 12.5px var(--mono);color:var(--soft)}
.crow .num.up{color:var(--signal)}.crow .num.dn{color:var(--warn)}
.crow.past{opacity:.55}
.impg{display:inline-flex;gap:2px;align-items:flex-end}.impg i{display:block;width:3px;background:var(--rule-lit)}.impg i:nth-child(1){height:5px}.impg i:nth-child(2){height:8px}.impg i:nth-child(3){height:11px}
.impg.i1 i:nth-child(-n+2){background:var(--warn)}.impg.i2 i{background:var(--bear)}
.cday{margin-top:16px}.cdh{font:400 19px var(--serif);color:var(--white);display:flex;justify-content:space-between;align-items:baseline;padding-bottom:6px}
.cdh span{font:400 11px var(--mono);color:var(--muted)}
/* rates */
.rrow{display:grid;grid-template-columns:minmax(150px,1.3fr) 100px 120px 110px minmax(180px,1.6fr) 130px;gap:14px;align-items:center;padding:12px 10px;margin:0 -10px;border-bottom:1px solid var(--rule);font-size:13px}
.rrow.head{font:500 10px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--rule-lit);padding-top:4px}
.rrow .rb{display:flex;align-items:center;gap:8px}.rrow .rb b{font:400 17px var(--serif);color:var(--white);font-weight:400}.rrow .rb small{font:400 10.5px var(--mono);color:var(--muted)}
.rrow>span{min-width:0}.rrow b{font:500 14px var(--mono);color:var(--white)}.rrow small{display:block;font:400 10.5px var(--mono);color:var(--muted);margin-top:2px}
.rrow .num{text-align:right}.rrow em{font-style:normal;font:400 11.5px var(--mono);color:var(--soft);margin-right:8px;white-space:nowrap}.rrow em b{font-size:12px}
@media (hover:hover){.crow:not(.head),.rrow:not(.head){transition:background-color var(--t2) var(--ease),box-shadow var(--t2) var(--ease)}.crow:not(.head):hover,.rrow:not(.head):hover{background:var(--hbg);box-shadow:inset 2px 0 0 var(--signal)}}
@media(max-width:900px){
  .crow{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px}.crow.head{display:none}
  .crow .n{flex-basis:100%;order:4}.crow .num{order:5;text-align:left}.crow .num::before{content:attr(data-l) " ";color:var(--muted);font-size:10px}
  .rrow{grid-template-columns:1fr 1fr;row-gap:10px}.rrow.head{display:none}.rrow .rb{grid-column:1/-1}.rrow .num{text-align:left}
  .rrow>span[data-l]::before{content:attr(data-l);display:block;font:500 9.5px var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
}
/* pins: a card is an article with a stretched open button and its own pin button (no nested buttons) */
.rc{position:relative}
.rc-open{position:absolute;inset:0;z-index:1;width:100%;cursor:pointer}
.rc-open:focus-visible{outline:1px solid var(--signal);outline-offset:-1px}
.rc .ft{position:relative;align-items:center}
.pin{position:relative;z-index:2;width:28px;height:28px;display:inline-grid;place-items:center;color:var(--muted);margin:-6px -6px -6px 6px}
.pin svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.2}
.pin.on{color:var(--signal)}.pin.on svg{fill:var(--signal-dim)}
@media (hover:hover){.pin:hover{color:var(--white)}.pin.on:hover{color:var(--bear-text)}}
.ix{display:grid;grid-template-columns:minmax(0,1fr) 28px;gap:4px;align-items:center;padding-top:0;padding-bottom:0}
.ix-open{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:8px;align-items:center;padding:6px 0;text-align:left;color:inherit;font:inherit;width:100%;cursor:pointer}
.ix-open span:nth-child(2){font-size:13px}
@media (hover:hover){.ix-open:hover span:nth-child(2){color:var(--white)}}
.ix .pin{margin:0}
.ph.yd{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:6px 0 10px}.ph.yd .lab b{color:var(--signal);font-family:var(--mono);margin-left:8px}
.ph.yd .cta{font-size:12px}
.drawer .btn{margin-top:4px}
@media (pointer:coarse){.pin{width:40px;height:40px}}
