/* DealsDesk client portal, pilot build.
   Palette and type lifted from the canonical memo chrome v3. */

:root{
  --paper:#FBF8F2; --ink:#1C2530; --navy:#16324F; --muted:#5A6472;
  --hair:#D8D2C4; --bronze:#8C6D3F;
  --washpos:#E7EDF3; --washneg:#F6E7E1; --washneut:#EFEDE7;
  --negink:#9C4A2F;
  --ease:cubic-bezier(.22,.61,.2,1);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:Georgia,'Times New Roman',serif;
  font-size:16.5px; line-height:1.62;
}
h1,h2,h3,h4{font-family:Palatino,'Palatino Linotype','Book Antiqua',Georgia,serif;
  color:var(--ink); margin:0; font-weight:600}
h1{font-size:clamp(1.9rem,2.6vw+.8rem,2.7rem); line-height:1.12; letter-spacing:-.008em}
h2{font-size:clamp(1.3rem,1.5vw+.7rem,1.65rem); line-height:1.18}
h3{font-size:1.05rem}
.serifnum{font-family:Palatino,'Palatino Linotype','Book Antiqua',Georgia,serif;
  font-variant-numeric:tabular-nums; font-feature-settings:'tnum'}
.scaps{font-family:Georgia,serif; font-size:.68rem; text-transform:uppercase;
  letter-spacing:.08em; color:var(--bronze)}
.scaps.quiet{color:var(--muted)}
.micro{font-size:.7rem; letter-spacing:.05em; color:var(--muted);
  font-variant-numeric:tabular-nums; font-feature-settings:'tnum'}
.neg{color:var(--negink)}
.wrap{max-width:1080px; margin:0 auto; padding-inline:clamp(1.1rem,4vw,2.5rem)}
.pad{padding-block:clamp(1.4rem,4vw,2.6rem)}
a{color:var(--navy)}

/* letterhead */
.letterhead{display:flex; justify-content:space-between; gap:1.4rem; flex-wrap:wrap;
  align-items:flex-start;
  padding:1.5rem clamp(1.1rem,3vw,2rem) 1.15rem; border-bottom:1px solid var(--hair)}
.wordmark{font-family:Palatino,'Palatino Linotype','Book Antiqua',Georgia,serif;
  font-size:1.22rem; letter-spacing:.22em; text-transform:uppercase; color:var(--ink)}
.lh-rule{width:100%; max-width:270px; border:0; border-top:1px solid var(--bronze); margin:.45rem 0 .5rem}
.lh-doc{font-size:.8rem; color:var(--muted); font-style:italic}
.lh-right{text-align:right; font-size:.78rem; color:var(--muted); line-height:1.7}
@media(max-width:640px){.lh-right{text-align:left}}

/* tags: hairline, no fills */
.tag{display:inline-block; font-size:.6rem; text-transform:uppercase; letter-spacing:.08em;
  padding:.14rem .4rem; border:1px solid var(--hair); color:var(--muted); white-space:nowrap}

/* nav and buttons, styled like the memo tab strip */
.tabs{display:flex; gap:.55rem; border-bottom:1px solid var(--hair); overflow-x:auto;
  padding:1.1rem clamp(1.1rem,3vw,2rem); scrollbar-width:thin}
.tab,.btn{appearance:none; display:inline-block; background:transparent;
  border:1px solid var(--hair); padding:.8rem 1.25rem; font-family:Georgia,serif;
  font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ink);
  cursor:pointer; white-space:nowrap; text-decoration:none; text-align:center;
  transition:color .18s var(--ease), border-color .18s var(--ease), background .18s var(--ease)}
.tab:hover,.btn:hover{border-color:var(--navy); color:var(--navy)}
.tab.on,.btn.primary{background:var(--navy); border-color:var(--navy); color:#E9EDF2}
.btn.primary:hover{color:#FBF8F2}
.tab:focus-visible,.btn:focus-visible{outline:2px solid var(--navy); outline-offset:2px}
.btnrow{display:flex; gap:.55rem; flex-wrap:wrap}

/* main sections */
main{padding:clamp(1.3rem,3vw,2.2rem) clamp(1.1rem,3vw,2rem)}
.lede{font-size:.94rem; color:var(--muted); max-width:64ch; margin:.35rem 0 1.5rem}
.section{margin-top:2.1rem; border-top:1px solid var(--hair); padding-top:1.5rem}
.section:first-child{margin-top:0; border-top:0; padding-top:0}

/* tables */
table{width:100%; border-collapse:collapse; font-size:.84rem;
  font-variant-numeric:tabular-nums; font-feature-settings:'tnum'}
th{font-size:.62rem; text-transform:uppercase; letter-spacing:.08em; color:var(--muted);
  font-weight:400; text-align:left; padding:.5rem .55rem;
  border-bottom:1px solid var(--hair); white-space:nowrap}
td{padding:.5rem .55rem; border-bottom:1px solid var(--hair); vertical-align:top}
td.n,th.n{text-align:right; font-variant-numeric:tabular-nums;
  font-feature-settings:'tnum'; white-space:nowrap}
#runtable td:last-child{white-space:nowrap}
caption{caption-side:bottom; text-align:left; font-size:.72rem; color:var(--muted);
  padding:.5rem .1rem 0; font-style:italic}
.tablewrap{overflow-x:auto}

/* word chips, as on the memo deal flags */
.word{display:inline-block; font-size:.58rem; text-transform:uppercase;
  letter-spacing:.08em; padding:.13rem .4rem; white-space:nowrap}
.word.pos{background:var(--washpos); color:var(--navy)}
.word.neg{background:var(--washneg); color:var(--negink)}
.word.neut{background:var(--washneut); color:var(--muted)}

/* plan usage meters. Hairlines are painted as cell borders (negative margin,
   clipped by the container) so an uneven wrap never exposes a solid block. */
.meters{display:grid; grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--hair); border-bottom:1px solid var(--hair); overflow:hidden}
.meters>div{background:var(--paper); padding:.9rem 1rem .95rem;
  border-left:1px solid var(--hair); border-top:1px solid var(--hair);
  margin:-1px 0 0 -1px}
.meters>div:first-child{padding-left:0}
.meters .fig{font-family:Palatino,'Palatino Linotype','Book Antiqua',Georgia,serif;
  font-size:1.32rem; color:var(--navy); line-height:1.18; margin-top:.3rem;
  font-variant-numeric:tabular-nums; font-feature-settings:'tnum'}
.meters .bar{height:6px; background:var(--washneut); border:1px solid var(--hair);
  margin-top:.5rem}
.meters .bar i{display:block; height:100%; background:var(--navy)}
.meters .note{font-size:.7rem; color:var(--muted); margin-top:.3rem}
@media(max-width:640px){.meters{grid-template-columns:1fr}.meters>div{padding-left:0}}

/* forms */
form .field{margin-top:1.1rem}
label.k,span.k{display:block; font-family:Georgia,serif; font-size:.68rem;
  text-transform:uppercase; letter-spacing:.08em; color:var(--bronze); margin-bottom:.35rem}
input[type=text],input[type=number],textarea{
  width:100%; background:var(--paper); border:1px solid var(--hair); color:var(--ink);
  font-family:Georgia,serif; font-size:.95rem; padding:.6rem .7rem;
  font-variant-numeric:tabular-nums; font-feature-settings:'tnum'}
input:focus-visible,textarea:focus-visible{outline:2px solid var(--navy); outline-offset:1px}
textarea{min-height:6rem; resize:vertical; line-height:1.55}
.prefix{display:flex; align-items:stretch}
.prefix span{border:1px solid var(--hair); border-right:0; padding:.6rem .7rem;
  color:var(--muted); font-size:.95rem; background:var(--washneut)}
.prefix input{flex:1}
.radio,.check{display:flex; gap:.6rem; align-items:baseline; padding:.4rem 0;
  font-size:.92rem; cursor:pointer}
.radio input,.check input{accent-color:var(--navy)}
.subfields{border-left:2px solid var(--bronze); padding:.2rem 0 .4rem 1rem; margin-top:.6rem}
.grid2{display:grid; grid-template-columns:1fr 1fr; gap:.9rem 1.4rem}
.grid3{display:grid; grid-template-columns:repeat(3,1fr); gap:.9rem 1.4rem}
@media(max-width:640px){.grid3{grid-template-columns:1fr 1fr}}
/* keep paired inputs on one baseline even when a label wraps to two lines */
.grid2>div,.grid3>div{display:flex; flex-direction:column; justify-content:flex-end}
.formnote{font-size:.8rem; color:var(--muted); font-style:italic; margin-top:.4rem}
.savednote{display:none; margin-top:1rem; background:var(--washpos); color:var(--navy);
  font-size:.84rem; padding:.6rem .8rem}
.errnote{display:none; margin-top:1rem; background:var(--washneg); color:var(--negink);
  font-size:.84rem; padding:.6rem .8rem}

/* pipeline stage checklist */
.stagelist{border-top:1px solid var(--hair); max-width:640px}
.stage{display:flex; gap:1rem; align-items:baseline; padding:.85rem .1rem;
  border-bottom:1px solid var(--hair)}
.stage .num{font-size:.68rem; letter-spacing:.08em; color:var(--muted);
  font-variant-numeric:tabular-nums; width:1.6rem; flex:none}
.stage .name{flex:1; font-family:Palatino,'Palatino Linotype','Book Antiqua',Georgia,serif;
  font-size:.97rem; color:var(--muted)}
.stage .st{font-size:.62rem; text-transform:uppercase; letter-spacing:.08em;
  color:var(--muted); white-space:nowrap}
.stage.running .name{color:var(--ink)}
.stage.running .st{color:var(--bronze)}
.stage.done .name{color:var(--ink)}
.stage.done .st{color:var(--navy)}
.stage .mark{width:1rem; flex:none; text-align:center; color:var(--navy);
  font-size:.8rem; visibility:hidden}
.stage.done .mark{visibility:visible}

/* verdict band, as on the memo cover */
.verdict{margin-top:1.7rem; background:var(--navy); color:#FBF8F2;
  padding:1.25rem 1.3rem; display:flex; gap:1.6rem; align-items:center; flex-wrap:wrap}
.verdict .n{font-family:Palatino,'Palatino Linotype','Book Antiqua',Georgia,serif;
  font-size:clamp(1.5rem,2.2vw+.6rem,2.1rem); line-height:1.1; white-space:nowrap}
.verdict .t{flex:1 1 300px; min-width:240px}
.verdict .k{font-size:.66rem; text-transform:uppercase; letter-spacing:.08em; color:#B9C4D2}
.verdict p{margin:.3rem 0 0; font-size:.9rem; line-height:1.58; color:#E9EDF2}
.verdict .btn{border-color:#B9C4D2; color:#E9EDF2}
.verdict .btn:hover{border-color:#FBF8F2; color:#FBF8F2}
.verdict .btn.light{background:#FBF8F2; border-color:#FBF8F2; color:var(--navy)}

/* demo mode note */
.demonote{margin:1.7rem 0 0; background:var(--washneut); border-left:2px solid var(--bronze);
  padding:.8rem 1rem; font-size:.88rem; line-height:1.6; max-width:640px}

/* buy box header strip. Five explicit columns so no track is ever empty;
   hairlines painted as cell borders (negative margin, clipped by the
   container), never as a grid background that empty cells would expose. */
.runstats{display:grid; grid-template-columns:repeat(5,1fr);
  border-top:1px solid var(--hair); border-bottom:1px solid var(--hair);
  margin-bottom:1.2rem; overflow:hidden}
.runstats>div{background:var(--paper); padding:.7rem .8rem .75rem;
  border-left:1px solid var(--hair); border-top:1px solid var(--hair);
  margin:-1px 0 0 -1px;
  display:flex; flex-direction:column; justify-content:space-between}
.runstats>div:first-child{padding-left:0}
.runstats .lab{font-size:.6rem; text-transform:uppercase; letter-spacing:.08em; color:var(--muted)}
.runstats .val{font-family:Palatino,'Palatino Linotype','Book Antiqua',Georgia,serif;
  font-size:1.05rem; color:var(--navy); margin-top:.22rem;
  font-variant-numeric:tabular-nums; font-feature-settings:'tnum'}
@media(max-width:520px){.runstats{grid-template-columns:repeat(2,1fr)}}

/* two col */
.cols{display:grid; grid-template-columns:5fr 7fr; gap:clamp(1.2rem,3vw,2.2rem)}
/* stacked: let the run table scroll inside .tablewrap instead of
   blowing the page out past the viewport */
@media(max-width:860px){.cols{grid-template-columns:1fr}.cols>div{min-width:0}}

footer.pg{padding:1.3rem clamp(1.1rem,3vw,2rem); border-top:1px solid var(--hair);
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; align-items:center;
  margin-top:2.5rem}
