.portal .hello h1{font-size:26px;margin:4px 0 2px}
.portal .hello .lede{margin-bottom:10px}
.portal h2{margin:0;border:0;padding:0}
.today{border:1px solid var(--rule);border-left:4px solid var(--green);border-radius:8px;padding:10px 14px;margin:6px 0 16px;background:#fff}
.today-head,.panel-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.today-head .note,.panel-head .note{margin-left:auto}
.strip{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.strip.tomorrow{margin-top:8px;padding-top:8px;border-top:1px dashed var(--rule)}
.strip.tomorrow:empty{display:none}
.appt{display:inline-flex;gap:6px;align-items:baseline;border:1px solid var(--rule);background:var(--soft);border-radius:6px;padding:5px 9px;font-size:13.5px;max-width:100%;color:var(--ink);text-decoration:none}
.appt b{font-variant-numeric:tabular-nums;color:var(--navy);white-space:nowrap}
.appt span{overflow-wrap:anywhere}
.appt.past{opacity:.55}
.appt.now{border-color:var(--green);background:#e9f6ee}
.appt .appt-main{display:inline-flex;gap:6px;align-items:baseline;color:inherit;text-decoration:none;min-width:0}
a.appt-main:hover span{text-decoration:underline}
.appt .teams{display:inline-flex;align-items:center;gap:4px;flex:none;align-self:center;margin-left:4px;padding:2px 7px 2px 3px;border-radius:5px;background:#eeeffb;color:#3d3f9e;font-size:11.5px;font-weight:700;text-decoration:none;letter-spacing:.3px}
.appt .teams em{font-style:normal}
.appt .teams:hover{background:#5B5FC7;color:#fff}
.appt .teams svg{display:block}
.daylbl{font-size:11.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--dim);margin-right:4px}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:16px;align-items:start}
.col{display:flex;flex-direction:column;gap:16px;min-width:0}
.panel{border:1px solid var(--rule);border-radius:8px;padding:12px 14px;background:#fff;min-width:0}
.rows{border:1px solid var(--soft);border-radius:6px;overflow:hidden}
.rows:empty{display:none}
.r{display:grid;grid-template-columns:82px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 10px;border-top:1px solid var(--soft);font-size:14px}
.r .lead{justify-self:start;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.r:first-child{border-top:0}
.r:nth-child(even){background:#fafbfd}
.r .t{min-width:0;overflow-wrap:anywhere}
.r .t a{text-decoration:none;font-weight:600}
.r .t a:hover{text-decoration:underline}
.r .m{display:block;color:var(--dim);font-size:12.5px;margin-top:2px;overflow-wrap:anywhere}
.r .w{color:var(--dim);font-size:12.5px;white-space:nowrap}
.pill{font-size:11px;font-weight:700;letter-spacing:.3px;border-radius:10px;padding:2px 8px;white-space:nowrap;border:1px solid transparent}
.pill.key{background:#fff1d6;color:#7a4b00;border-color:#f0d9a0}
.pill.due{background:#fde8e4;color:#a1260d;border-color:#f3c2b8}
.pill.hold{background:#eef0f3;color:#4a5868}
.pill.open{background:#fff;color:var(--navy);border-color:#b9cde6}
.pill.subj{background:#e3f4e8;color:#1d6b33}
.pill.f{background:#f3e8fb;color:#5b2a86}
.payform{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end;margin:4px 0 6px}
.payform label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;color:var(--navy)}
.payform input{font:inherit;font-size:14px;padding:8px 10px;border:1px solid #b9cde6;border-radius:6px;min-width:0}
.payform input:focus-visible{outline:2px solid var(--navy);outline-offset:1px}
.payform button{font:inherit;font-weight:700;font-size:13.5px;background:var(--navy);color:#fff;border:0;border-radius:6px;padding:9px 14px;cursor:pointer;white-space:nowrap}
.payform button:hover{background:#0b417a}
.payform button:disabled{opacity:.6;cursor:wait}
.payfee{font-size:12.5px;margin:2px 0 4px}
.door-card .payform{grid-template-columns:1fr;margin:10px 0}
@media (max-width:640px){ .payform{grid-template-columns:1fr} }
.subjects{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.subject{border:1px solid var(--rule);border-radius:8px;padding:10px 12px;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;gap:3px}
.subject:hover{border-color:var(--navy);background:var(--soft)}
.subject b{color:var(--navy);font-size:15px}
.subject span{font-size:12.5px;color:var(--dim)}
.ask{flex:none;margin-bottom:8px}
.answer table{font-size:13px}
.answer .sum{font-size:13px;color:var(--dim);margin:6px 0}
.nautilus{margin-top:16px}
.nfor{font-size:12.5px;color:var(--dim)}
.nwhere{display:flex;align-items:center;gap:8px;flex:1 1 260px;min-width:0}
.nfolder{flex:1 1 auto;min-width:0;padding:7px 9px;border:1px solid var(--rule);border-radius:6px;font:inherit;font-size:14px}
/* Nautilus on a phone: each item is a short card, its name on top, then where it goes and File it. */
@media (max-width:640px){
  table.zebra.nq thead{display:none}
  table.zebra.nq,table.zebra.nq tbody{display:block;width:auto}
  table.zebra.nq tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 8px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--zline,#c3d3e6)}
  table.zebra.nq td{display:block;padding:0;border:0}
  table.zebra.nq td.hide-sm{display:none}
  table.zebra.nq td:first-child{grid-column:1/-1}
  table.zebra.nq td:empty{display:none}
}
.q{grid-template-columns:minmax(0,1fr) minmax(140px,220px) auto}
.q input{width:100%;min-width:0;padding:5px 7px;border:1px solid var(--rule);border-radius:5px;font:inherit;font-size:13px}
.q button{padding:5px 10px;border-radius:5px;border:1px solid var(--navy);background:var(--navy);color:#fff;font:inherit;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}
.q button:disabled{opacity:.5;cursor:default}
.filed{margin-top:10px}
.filed summary{cursor:pointer;font-size:13px;color:var(--navy);font-weight:600}
.connect{padding:6px 12px;border-radius:6px;border:1px solid var(--navy);background:var(--navy);color:#fff;font:inherit;font-size:13.5px;font-weight:600;text-decoration:none;display:inline-block}
.foot{margin-top:22px}
@media (max-width:640px){
  .r{grid-template-columns:minmax(0,1fr) auto}
  .r .lead{grid-column:1/-1;justify-self:start}
  .q{grid-template-columns:minmax(0,1fr)}
  .q .w,.q button{justify-self:start}
}
/* Fastrack in the Ver_B frame (11 Sep): navy title band, a soft command bar, the zebra table edge to edge, a soft foot. */
.fastrack{margin:0 0 16px;border:1px solid var(--zline,#c3d3e6);border-radius:12px;overflow:hidden;background:#fff}
.ft-band{background:var(--navy);color:#fff;padding:12px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ft-title{min-width:0}
.ft-title h2{color:#fff;font-size:17px;letter-spacing:0;text-transform:none;font-weight:700;overflow-wrap:anywhere}
.ft-title small{display:block;color:#a9bfd6;font-size:12px;margin-top:2px}
.ft-list{margin-left:auto;font-size:13px}
.ft-list a{color:#fff}
.fastrack .ft-cmd{background:#f6f8fb;padding:10px 16px;border-bottom:1px solid var(--zline,#c3d3e6);margin:0}
.ft-new{font-size:13px;font-weight:600;background:var(--navy);color:#fff;border:1px solid var(--navy);padding:6px 12px;border-radius:6px;text-decoration:none}
.ft-new:hover{background:#0b417a}
.fastrack .zwrap{border:0;border-radius:0}
.ft-pad{padding:12px 16px;margin:0}
.ft-foot{margin:0;padding:11px 16px;background:#f6f8fb;border-top:1px solid var(--zline,#c3d3e6);font-size:12.5px;color:var(--dim);line-height:1.5}
.ft-foot b{color:var(--ink)}
.zdone{display:block;color:var(--zdim,#45566a);font-size:10.5px}
/* The contact card: asked once, before the Portal opens. */
dialog.ccard{max-width:min(520px,calc(100vw - 32px))}
.ccard form{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}
.ccard .cf{display:flex;flex-direction:column;gap:3px;font-size:12.5px;color:var(--dim);min-width:0}
.ccard .cf:first-child,.ccard .cmine,.ccard .zbtns,.ccard .zaudit,.ccard .cerr[data-err=mine],.ccard .cerr[data-err=form]{grid-column:1/-1}
.ccard .cf b{color:#a12828}
.ccard input:not([type=checkbox]){font:inherit;font-size:14px;color:var(--ink);padding:7px 9px;border:1px solid var(--rule);border-radius:6px;min-width:0}
.ccard input[readonly]{background:#f3f6fa;color:var(--dim)}
.ccard .cmine{display:flex;gap:8px;align-items:center;font-size:13.5px;color:var(--ink)}
.ccard .cerr{color:#a12828;font-size:12px;font-style:normal;min-height:0}
.ccard .cerr:empty{display:none}
@media (max-width:640px){.ccard form{grid-template-columns:1fr}}
/* One-click Confirm and Change, as Ver_B drew them beside the suggestion. */
.zdec{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.zconfirm{font:inherit;font-size:12px;font-weight:700;padding:4px 11px;border-radius:6px;border:1px solid #23863f;background:#2FA84F;color:#fff;cursor:pointer}
.zconfirm:hover{background:#23863f}
.zconfirm:disabled{opacity:.6;cursor:default}
.zchange{font-size:12px;font-weight:700;padding:3px 10px;border-radius:6px;border:1px solid #d7a3a3;background:#fff;color:#a12828;text-decoration:none}
.zchange:hover{background:#fdf0f0}
.zin{width:100%;min-width:140px;padding:5px 7px;border:1px solid var(--rule);border-radius:5px;font:inherit;font-size:13px}
.zbtn{padding:5px 10px;border-radius:5px;border:1px solid var(--navy);background:var(--navy);color:#fff;font:inherit;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}
.zbtn:disabled{opacity:.5;cursor:default}
/* The Meridian sign-in screen (signin.html): the door, navy with the approved mark (1C, hero), then the card. */
body.door{margin:0;min-height:100vh;background:var(--navy);color:var(--ink);display:flex}
.door-in{margin:auto;width:100%;max-width:420px;padding:40px 16px;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;gap:22px}
.door-mark{display:flex;flex-direction:column;align-items:center;gap:10px}
.door-mark img{width:112px;height:112px;display:block}
.door-name{color:#fff;font-weight:800;font-size:30px;letter-spacing:4px}
.door-card{width:100%;box-sizing:border-box;background:#fff;border-radius:14px;padding:22px 22px 18px;box-shadow:0 18px 50px rgba(0,0,0,.28);font-size:14.5px;line-height:1.5}
.door-for{display:block;font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:var(--dim);font-weight:600}
.door-card h1{margin:2px 0 10px;font-size:24px;color:var(--navy)}
.door-card p{margin:0 0 14px}
.door-go{display:block;text-align:center;background:var(--navy);color:#fff;font-weight:700;font-size:15px;padding:12px 14px;border-radius:8px;text-decoration:none;margin:4px 0 16px}
.door-go:hover{background:#0b417a}
.door-go:focus-visible{outline:3px solid var(--green);outline-offset:2px}
.door-steps{list-style:none;margin:0;padding:12px 0 0;border-top:1px solid var(--rule);display:flex;gap:6px;font-size:12.5px;color:var(--dim);counter-reset:ds}
.door-steps li{flex:1;counter-increment:ds;display:flex;flex-direction:column;gap:2px}
.door-steps li::before{content:counter(ds);display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#eafaf0;color:#1f7d3a;font-weight:700;font-size:11.5px}
.door-steps b{color:var(--ink);font-weight:600}
.door-out{background:#eafaf0;color:#1f7d3a;border-radius:6px;padding:8px 10px;font-size:13.5px}
.door-fine{margin:0;color:#a9bfd6;font-size:12.5px;text-align:center;max-width:360px}
.door-card .door-fine{color:var(--dim);text-align:left;max-width:none;margin:0 0 12px}
.door-card code{font-size:12.5px;overflow-wrap:anywhere}
.door-list{margin:0 0 6px;padding-left:20px}
.door-list li{margin:0 0 8px}
.door-no{background:#fdecea;color:#9b1c1c;border-radius:6px;padding:8px 10px;font-size:13.5px}
/* The header, with the mark top left at the house size, is bar.css (bar.js). */
/* Deals: the five-state rail, where a deal stands, its documents and conditions (deals-ui.js). */
.rail{display:inline-flex;gap:2px;flex-wrap:nowrap}
.rail i{font-style:normal;font-size:10.5px;font-weight:600;letter-spacing:.2px;padding:2px 5px;border-radius:3px;background:#e9eef4;color:var(--zdim,#45566a);white-space:nowrap}
.rail i.past{background:#cfe9d7;color:#1f5d33}
.rail i.now{background:var(--navy);color:#fff}
.rail i.off{background:transparent;color:#9aa7b4;text-decoration:line-through}
.dstate{font-size:12px;color:var(--zdim,#45566a);margin-top:3px}
.dstate b{color:var(--navy)}
.dnext{font-size:12.5px;color:var(--ink);max-width:340px}
.dby{display:block;color:var(--zdim,#45566a);font-size:11px}
.deal-now{padding:12px 16px;border-bottom:1px solid var(--zline,#c3d3e6);background:#fff;display:flex;flex-direction:column;gap:5px;font-size:14px}
.dn-line{font-size:13px;color:var(--zdim,#45566a)}
.dn-line b{color:var(--navy)}
.dn-next{line-height:1.45}
.dn-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:4px}
.dn-acts:empty{display:none}
.dnote{background:#fff7e6;color:#7a4b00;border-radius:6px;padding:7px 10px;font-size:13px;margin:4px 0 8px}
.deal-steps{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:10px 16px;background:#f6f8fb;border-bottom:1px solid var(--zline,#c3d3e6);counter-reset:st -1}
.deal-steps li{counter-increment:st;font-size:12px;padding:3px 9px;border-radius:14px;border:1px solid var(--zline,#c3d3e6);background:#fff;color:var(--zdim,#45566a);white-space:nowrap}
.deal-steps li::before{content:counter(st) " · ";font-weight:700}
.deal-steps li.past{background:#eafaf0;border-color:#b8e0c5;color:#1f5d33}
.deal-steps li.now{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:600}
.deal-docs tr.cur td:first-child{box-shadow:inset 4px 0 0 var(--green)}
.dacts{white-space:normal}
.dacts .zbtn{margin:2px 0;font-size:12.5px}
.zbtn small{font-size:10px;font-weight:700;opacity:.8;margin-left:2px}
.zbtn.ghost{background:#fff;color:var(--navy)}
.zbtn.off{background:#eef1f5;border-color:#d5dce4;color:#7b8794;cursor:not-allowed}
.deal-sub{display:flex;align-items:center;gap:10px;padding:12px 16px 6px}
.deal-sub h3{margin:0;font-size:13px;letter-spacing:1.2px;text-transform:uppercase;color:var(--navy)}
.deal .zwrap{border:0;border-radius:0}
.deal-params{display:grid;grid-template-columns:minmax(120px,auto) minmax(0,1fr);gap:5px 14px;margin:0;padding:4px 16px 12px;font-size:13.5px}
.deal-params dt{color:var(--dim);font-weight:600}
.deal-params dd{margin:0;overflow-wrap:anywhere}
.deal-hist{padding:6px 16px 12px}
.deal-hist summary{cursor:pointer;font-size:13px;color:var(--navy);font-weight:600}
.deal-hist ol{margin:8px 0 0;padding-left:18px;font-size:13px;display:flex;flex-direction:column;gap:6px}
.dev{color:var(--dim);font-size:12.5px;white-space:pre-wrap;overflow-wrap:anywhere}
.dask form{display:flex;flex-direction:column;gap:9px}
.dask .cf{display:flex;flex-direction:column;gap:3px;font-size:12.5px;color:var(--dim)}
.dask input:not([type=checkbox]),.dask select,.dask textarea{font:inherit;font-size:14px;color:var(--ink);padding:7px 9px;border:1px solid var(--rule);border-radius:6px;min-width:0}
.dchk{display:flex;gap:8px;align-items:flex-start;font-size:13.5px;line-height:1.4}
.dchk input{margin-top:3px}
.dask .cerr{color:#a12828;font-size:12px;font-style:normal}
.dask .cerr:empty{display:none}
@media (max-width:640px){
  .deal-params{grid-template-columns:1fr}.deal-params dd{margin-bottom:6px}.rail i{padding:2px 3px;font-size:10px}
  /* on a phone each document is a card: its name, its rail, its moves */
  table.deal-docs thead{display:none}
  table.deal-docs,table.deal-docs tbody,table.deal-docs tr,table.deal-docs td{display:block;width:auto}
  table.deal-docs td{border-bottom:0;padding:4px 14px}
  table.deal-docs tr{padding:8px 0;border-bottom:1px solid var(--zline,#c3d3e6)}
  table.deal-docs td.hide-sm{display:none}
  .deal-docs .zbtn{white-space:normal;text-align:left}
}
/* The Portal at full width (16 Oct 2026): Fastrack (and a deal's panel) on the left, the last ten files on the right.
   A reader with no Fastrack gets the files across the full width (.rail-only). */
.top.rail-only{grid-template-columns:minmax(0,1fr)!important}
.top.rail-only .top-main{display:none}
.top{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start;margin:0 0 16px}
.top-main{min-width:0;display:flex;flex-direction:column;gap:16px}
.top-main .fastrack{margin:0}
@media (min-width:1360px){.top{grid-template-columns:minmax(0,1fr) 340px}.top-rail{position:sticky;top:12px}}
.files-rail{border:1px solid var(--zline,#c3d3e6);border-radius:12px;overflow:hidden;background:#fff}
.fr-head{background:var(--navy);color:#fff;padding:12px 14px;display:flex;align-items:baseline;gap:10px}
.fr-head h2{color:#fff;font-size:15px;letter-spacing:0;text-transform:none;font-weight:700}
.fr-head{align-items:center}
.fr-head .note{margin-left:auto;color:#a9bfd6}
.fr-pad{padding:12px 14px;margin:0}
table.zebra.fr-t{table-layout:fixed}
table.zebra.fr-t td.c-ed{width:44px;text-align:right}
table.zebra.fr-t td{padding:8px 12px}
.fr-t .rname{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;font-weight:600;color:var(--navy);text-decoration:none;line-height:1.3}
.fr-t .rname:hover{text-decoration:underline}
.fr-t small{display:block;color:var(--zdim,#45566a);font-size:11.5px;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fr-t .redit{font-size:12px;font-weight:700;color:var(--navy)}
.fr-foot{margin:0;padding:9px 14px;background:#f6f8fb;border-top:1px solid var(--zline,#c3d3e6);font-size:12px;color:var(--dim);line-height:1.45}
.fr-foot b{color:var(--ink)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* Fastrack's table: fixed columns; long text wraps or clamps in its own cell (the row's card shows it whole). */
table.zebra.ft{table-layout:fixed}
.ft th.c-id{width:60px}.ft th.c-by{width:100px}.ft th.c-sug{width:150px}.ft th.c-st{width:122px}
.ft th.c-iss,.ft th.c-done{width:98px}.ft th.c-cyc{width:100px}
.ft td{overflow:hidden}
.ft .ztitle{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.ft .zitem small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ft .zone{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ft .zdec{flex-wrap:wrap}
.sugl{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12px;line-height:1.35;color:var(--green-d,#1f7d3a);font-weight:600;overflow-wrap:anywhere}
.ft-more{margin:0;padding:10px 16px;border-top:1px solid var(--zline,#c3d3e6);background:#fff}
@media (max-width:640px){.ft th.c-st{width:92px}.ft th.c-cyc{width:88px}.ft td{padding-left:8px;padding-right:8px}}
/* The viewer (view.html) */
.viewer .v-body{background:#fff}
.v-pdf{display:block;width:100%;height:78vh;border:0;background:#eef1f5}
.v-img{padding:16px;text-align:center;background:#f6f8fb}
.v-img img{max-width:100%;height:auto;border:1px solid var(--zline,#c3d3e6);background:#fff}
.v-text{margin:0;padding:14px 16px;max-height:78vh;overflow:auto;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;background:#fbfcfe}
.viewer .ft-cmd .ft-new{text-decoration:none}
/* View as, for the builders (D-2098). */
.ft-as{font:600 13px Barlow,Arial,sans-serif;padding:3px 6px;margin-left:8px;border:1px solid var(--rule,#c9d3df);border-radius:6px;color:#003060;background:#fff}
/* An open row's status is a button that opens its card at the next step (MB 24 Oct 2026). */
.ft button.pill{font-family:inherit;cursor:pointer;white-space:normal;text-align:left;line-height:1.25}
.ft button.pill:hover{filter:brightness(.95)}
.ft button.pill:focus-visible{outline:2px solid var(--navy);outline-offset:1px}
.pill.done{background:#eafaf0;color:var(--green-d,#1f7d3a);border-color:#bfe5cb}
/* The card's next step: decide, reassign or note, inside Meridian. */
.ftnext{border-top:1px solid var(--zline,#c3d3e6);margin-top:2px;padding-top:12px;display:flex;flex-direction:column;gap:10px}
.ftnext h4{margin:0;font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:var(--navy)}
.ftnext-why{margin:0;font-size:13.5px;color:var(--ink);overflow-wrap:anywhere}
.ftnext-why.held{color:#7a4a00;background:#fff4e5;border:1px solid #f0d4a0;border-radius:8px;padding:8px 10px}
.ftnext button:disabled,.ftnext select:disabled,.ftnext textarea:disabled{opacity:.5;cursor:not-allowed}
.ftnext-re{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12.5px}
.ftnext-re select{font:inherit;padding:6px 8px;border:1px solid #c3d3e6;border-radius:6px;max-width:240px}
.ftnext-re input{font:inherit;padding:6px 8px;border:1px solid #c3d3e6;border-radius:6px;width:220px}
.ftchat-hint{font-size:11.5px;color:#5a7089}
.ftnext-row{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start;flex-wrap:wrap}
.ftnext button{font:inherit;font-size:13.5px;font-weight:700;padding:8px 14px;border-radius:6px;border:1px solid var(--navy);background:var(--navy);color:#fff;cursor:pointer}
.ftnext button.ok{background:#2FA84F;border-color:#23863f}
.ftnext button.ok:hover{background:#23863f}
.ftnext button.no{background:#fff;border-color:#c25b5b;color:#a12828}
.ftnext button.no:hover{background:#fdf0f0}
.ftnext button.ghost{background:#fff;color:var(--navy)}
.ftnext button.sugd{box-shadow:0 0 0 3px #cdeed8}
.ftnext button small{font-weight:600;font-size:10.5px;letter-spacing:.3px;margin-left:4px;opacity:.85}
.ftnext button:disabled{opacity:.55;cursor:default}
.ftnext label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;color:var(--dim);min-width:0}
.ftnext label small{font-weight:400}
.ftnext textarea,.ftnext input{font:inherit;font-size:14px;color:var(--ink);padding:7px 9px;border:1px solid var(--rule,#c9d3df);border-radius:6px;min-width:0;resize:vertical}
.ftnext-re{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.ftnext-re label{flex:1 1 200px}
.ftnext-note{margin:0;font-size:13px;color:var(--ink);background:#fdf1dc;border-radius:8px;padding:9px 11px}
.ftnext .msg{margin:0}
.ftnext .msg:empty{display:none}

/* The row's chat in the card (MB 25 Oct 2026): the lines, Meridian's step lines, the send line, Assign for the builders. */
.ftchat{border-top:1px solid var(--zline,#c3d3e6);margin-top:12px;padding-top:12px;display:flex;flex-direction:column;gap:8px}
.ftchat-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.ftchat h4{margin:0;font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:var(--navy)}
.ftchat-assign{display:flex;align-items:center;gap:6px;font-size:12.5px}
.ftchat-assign select{font:inherit;padding:4px 6px;border:1px solid #c3d3e6;border-radius:6px;max-width:220px}
.ftchat-assign button{font:600 12px Barlow,Arial,sans-serif;padding:4px 10px}
.ftchat-msgs{max-height:240px;min-height:60px;overflow:auto;display:flex;flex-direction:column;gap:6px;padding:8px;background:#f6f9fc;border:1px solid #e1e9f2;border-radius:8px}
.ftchat-m{max-width:88%;align-self:flex-start;background:#fff;border:1px solid #e1e9f2;border-radius:8px 8px 8px 2px;padding:5px 9px;font-size:13px}
.ftchat-m.mine{align-self:flex-end;background:#e3f3e8;border-color:#cfe8d8;border-radius:8px 8px 2px 8px}
.ftchat-m.sys{align-self:center;background:transparent;border:0;color:#5a7089;font-size:12px;font-style:italic;text-align:center}
.ftchat-mh{display:block;font-size:11px;color:#5a7089}
.ftchat-mh small{font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.4px}
.ftchat-mt{display:block;white-space:pre-wrap;overflow-wrap:anywhere}
.ftchat-send{display:flex;gap:8px}
.ftchat-send textarea{flex:1;min-width:0;resize:none;font:inherit;padding:7px 9px;border:1px solid #c3d3e6;border-radius:8px}
.ftchat-send button{font:700 13px Barlow,Arial,sans-serif;color:#fff;background:var(--navy);border:0;border-radius:8px;padding:0 14px;cursor:pointer}
.ftchat-note{margin:0;font-size:11.5px;color:#5a7089}
/* The row's file in a popup on the card (MB 26 Oct 2026): the Open button on the card, the second popup, the viewer frame, the workbook grid. */
.ftfile{border-top:1px solid var(--zline,#c3d3e6);margin-top:2px;padding-top:12px;display:flex;flex-direction:column;gap:8px}
.ftfile h4{margin:0;font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:var(--navy)}
.ftfile-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ftfile-open{font:inherit;font-size:13.5px;font-weight:700;padding:8px 14px;border-radius:6px;border:1px solid var(--navy);background:#fff;color:var(--navy);cursor:pointer;max-width:100%;overflow-wrap:anywhere;text-align:left}
.ftfile-open:hover{background:#eef3f9}
.ftfile-open:disabled{opacity:.5;cursor:wait}
.ftfile-hint{font-size:11.5px;color:#5a7089}
dialog.ftfilepop{max-width:min(1100px,calc(100vw - 24px));width:100%}
.ffb{display:flex;flex-direction:column;gap:10px}
.ffbar{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center;min-height:0}
.fftabs{display:flex;gap:4px;flex-wrap:wrap}
.fftab{font:inherit;font-size:12.5px;font-weight:600;padding:5px 10px;border:1px solid #c3d3e6;border-radius:6px 6px 0 0;background:#f3f6fa;color:var(--navy);cursor:pointer}
.fftab.on{background:#fff;border-color:var(--navy);box-shadow:inset 0 -2px 0 var(--navy)}
.ffacts{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ffacts button{font:inherit;font-size:13px;font-weight:700;padding:7px 12px;border-radius:6px;border:1px solid var(--navy);background:var(--navy);color:#fff;cursor:pointer}
.ffacts button.ok{background:#2FA84F;border-color:#23863f}
.ffacts button.ghost{background:#fff;color:var(--navy)}
.ffacts button:disabled{opacity:.5;cursor:not-allowed}
.ffcount{font-size:12.5px;color:#5a7089}
.ffbody{min-height:80px}
.ffframe{width:100%;height:min(70vh,720px);border:1px solid #c3d3e6;border-radius:8px;background:#fff}
.wbwrap{overflow:auto;max-height:min(62vh,640px);border:1px solid #c3d3e6;border-radius:8px}
.wb{border-collapse:separate;border-spacing:0;font-size:13px;min-width:100%}
.wb th{position:sticky;top:0;background:#eef3f9;color:#3e5670;font-weight:600;font-size:11.5px;padding:4px 6px;border-bottom:1px solid #c3d3e6;border-right:1px solid #e1e9f2;text-align:center;z-index:1}
.wb th.wbr{min-width:34px;text-align:right}
.wb thead th.wbr{left:0;z-index:2}
.wb tbody th.wbr{position:sticky;left:0;top:auto;background:#eef3f9}
.wb td{padding:0;border-bottom:1px solid #e1e9f2;border-right:1px solid #e1e9f2;min-width:90px;max-width:320px}
.wb td.wbf{background:#f5f7fa}
.wb .fx{display:block;padding:5px 6px;color:#3e5670;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}
.wb input.wbc{font:inherit;font-size:13px;width:100%;min-width:90px;box-sizing:border-box;border:0;padding:5px 6px;background:transparent;color:var(--ink)}
.wb input.wbc:focus{outline:2px solid #2FA84F;outline-offset:-2px;background:#fff}
@media (max-width:640px){dialog.ftfilepop{max-width:calc(100vw - 16px)}.ffframe{height:60vh}.wbwrap{max-height:55vh}}
