:root{--teal:#13353f;--navy:#16365c;--sage:#5F6F5D;--light-sage:#a8b5a3;--warm-gray:#f5f5f5;--dark-gray:#404040;--med-gray:#808080;--text:#000000;--lt-gray:#cccccc;--red:#d01414;--alert:#EE3437;--cream:#FBF8EE;--font:'BC Sans',Arial,Helvetica,sans-serif;--mh:74px}
*{box-sizing:border-box}
html,body{margin:0;background:rgba(168,181,163,0.18);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.45}
a{color:var(--navy)}
h1,h2,h3{color:var(--navy);margin:1.1em 0 .4em;line-height:1.2}
h1{font-size:1.6rem}h2{font-size:1.25rem}h3{font-size:1.05rem}
.masthead{display:flex;align-items:center;gap:1.5rem;background:#fff;border-bottom:3px solid var(--light-sage);padding:.5rem 1.25rem;position:sticky;top:0;z-index:20}
.masthead .brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--teal);font-weight:700;font-size:1.05rem}
.masthead .brand img{height:34px;flex:0 0 auto}
/* The full name runs two lines in the bar, as it does on the sign-in card, so it
   fits beside the nav without shrinking the type. */
.masthead .brand-name{font-size:.82rem;line-height:1.18;white-space:nowrap}
.masthead nav{display:flex;flex-wrap:wrap;gap:.15rem .6rem;flex:1}
.masthead nav a{text-decoration:none;color:var(--sage);font-size:.9rem;padding:.25rem .45rem;border-radius:4px}
.masthead nav a.active,.masthead nav a:hover{background:var(--warm-gray);color:var(--navy)}
.masthead .due{display:flex;flex-direction:column;align-items:flex-end;line-height:1.1}
.masthead .due .lbl{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--sage)}
.masthead .due .clock{font-size:1.15rem;font-weight:700;color:var(--teal);font-variant-numeric:tabular-nums}
.masthead .due .when{font-size:.7rem;color:var(--text)}
main{max-width:1400px;margin:0 auto;padding:1rem 1.5rem 3rem}
footer{color:var(--text);font-size:.75rem;text-align:center;padding:1rem}
.lede{font-size:1.02rem;max-width:70ch}
.muted{color:var(--text)}.small{font-size:.8rem}.num{text-align:right;font-variant-numeric:tabular-nums}
.warn{background:var(--cream);border-left:4px solid var(--alert);padding:.5rem .75rem;margin:.5rem 0}
.two-col{display:grid;grid-template-columns:1.1fr 1fr;gap:2rem}
@media (max-width:900px){.two-col{grid-template-columns:1fr}}
table.grid{border-collapse:collapse;width:100%;background:#fff;font-size:.9rem}
table.grid th{position:sticky;top:var(--mh);background:var(--navy);color:#fff;text-align:left;padding:.45rem .55rem;font-weight:700}
table.grid td{padding:.4rem .55rem;border-bottom:1px solid var(--lt-gray);vertical-align:top}
table.grid tbody tr:nth-child(odd){background:#fff}table.grid tbody tr:nth-child(even){background:var(--warm-gray)}
form.search{display:flex;gap:.4rem;margin:.3rem 0 .8rem}
form.search input{flex:1;padding:.4rem .6rem;border:1px solid var(--lt-gray);border-radius:4px;font-family:var(--font)}
form.search button,.btn{background:var(--navy);color:#fff;border:0;border-radius:4px;padding:.4rem .8rem;font-family:var(--font);cursor:pointer}
ul.defs{list-style:none;padding:0;margin:0;max-height:70vh;overflow:auto;background:#fff;border:1px solid var(--lt-gray)}
ul.defs li{padding:.4rem .6rem;border-bottom:1px solid var(--warm-gray);font-size:.88rem}
.chips{display:inline-flex;gap:.3rem;flex-wrap:wrap}
.chip{display:inline-block;background:var(--warm-gray);border:1px solid var(--light-sage);border-radius:10px;padding:0 .5rem;font-size:.75rem;text-decoration:none;color:var(--navy);white-space:nowrap}
/* RFP document view */
.doc-layout{display:grid;grid-template-columns:320px 1fr;gap:1.5rem;align-items:start}
@media (max-width:1000px){.doc-layout{grid-template-columns:1fr}.toc{position:static;max-height:none}}
.toc{position:sticky;top:calc(var(--mh) + 12px);max-height:calc(100vh - 90px);overflow:auto;background:#fff;border:1px solid var(--lt-gray);padding:.6rem .8rem;font-size:.82rem}
.pdf-link{margin:.5rem 0 .2rem;padding:.4rem .5rem;background:var(--cream);border-left:3px solid var(--light-sage)}
.toc ul{list-style:none;padding:0;margin:.5rem 0 0}.toc li{margin:.15rem 0}.toc li a{text-decoration:none;color:var(--text)}
.toc li a:hover{color:var(--navy);text-decoration:underline}.toc-title{font-weight:700;color:var(--navy);font-size:1rem;margin-top:.3rem}
article.rfp{background:#fff;border:1px solid var(--lt-gray);padding:1.2rem 2rem 3rem;font-size:.95rem;line-height:1.5;max-width:100%;overflow-x:auto}
article.rfp h1.doc-title{font-size:1.35rem;border-bottom:2px solid var(--light-sage);padding-bottom:.4rem}
article.rfp h2{font-size:1.1rem;margin-top:1.4em;scroll-margin-top:calc(var(--mh) + 22px)}
article.rfp p{margin:.35em 0;scroll-margin-top:calc(var(--mh) + 22px)}
/* Visible line-number gutter. The number after the document code in a register ID
   (R-MB-0343 -> 343) is this number, so a reader can find the passage by eye. */
article.rfp{position:relative;padding-left:4.4rem}
article.rfp p[data-n],article.rfp h1[data-n],article.rfp h2[data-n],
article.rfp h3[data-n],article.rfp h4[data-n],article.rfp blockquote[data-n]{position:relative}
article.rfp p[data-n]::before,article.rfp h1[data-n]::before,article.rfp h2[data-n]::before,
article.rfp h3[data-n]::before,article.rfp h4[data-n]::before,article.rfp blockquote[data-n]::before{
  content:attr(data-n);position:absolute;left:-4.4rem;width:3.1rem;text-align:right;
  font-size:.7rem;line-height:1.9;color:var(--text);font-variant-numeric:tabular-nums;
  text-indent:0;-webkit-user-select:none;user-select:none}
@media print{article.rfp p[data-n]::before{color:#000000}}

article.rfp p.li{padding-left:1.4em;text-indent:-1.1em}article.rfp p.li .bullet{display:inline-block;width:1.1em;color:var(--sage)}
article.rfp p.ol{padding-left:2.2em;text-indent:-2.2em}article.rfp p.ol .num{display:inline-block;width:2.2em;color:var(--sage);font-weight:700}
article.rfp p.fn{font-size:.82rem;color:var(--text);margin-left:1.5em}
article.rfp .img-note{color:var(--text);font-style:italic;font-size:.85rem;margin:.4em 0}
article.rfp .tblwrap{overflow-x:auto;margin:.6em 0;scroll-margin-top:calc(var(--mh) + 22px)}
article.rfp table{border-collapse:collapse;font-size:.85rem;min-width:50%}
article.rfp th{background:var(--navy);color:#fff;padding:.3rem .5rem;text-align:left}
article.rfp td{border:1px solid var(--lt-gray);padding:.3rem .5rem;vertical-align:top}
article.rfp tr:nth-child(even) td{background:var(--warm-gray)}
article.rfp pre{background:var(--warm-gray);padding:.6rem;overflow-x:auto;font-size:.8rem}
article.rfp blockquote{border-left:3px solid var(--light-sage);margin:.4em 0;padding:.2em .8em;color:var(--sage)}
article.rfp .hit{background:#fff4c2;outline:2px solid #e2c34d;outline-offset:2px;transition:background 1.2s}
article.rfp .hit-fade{background:transparent;outline-color:transparent}
.hit-bar{position:sticky;top:calc(var(--mh) + 4px);background:var(--cream);border:1px solid var(--light-sage);padding:.3rem .6rem;font-size:.82rem;margin:0 0 .6rem;z-index:5}
.hit-bar a{margin-left:.8rem}
a.sec{display:block;position:relative;top:calc(-1 * (var(--mh) + 22px));visibility:hidden;height:0}
/* ---- Wave 5 pages ---- */
.hero{display:grid;grid-template-columns:1fr 2fr;gap:1.5rem;align-items:stretch;margin:.5rem 0 1rem}
.hero-clock{background:#fff;border:1px solid var(--lt-gray);border-top:4px solid var(--teal);padding:1rem 1.2rem}
.hero-clock .lbl{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--sage)}
.hero-clock .clock.big{font-size:2.2rem;font-weight:700;color:var(--teal);font-variant-numeric:tabular-nums;margin-top:.3rem}
.kpi-bar{display:flex;align-items:center;gap:2rem;background:#fff;border-bottom:3px solid var(--light-sage);padding:1rem 1.5rem}
.kpi{text-align:center}.kpi-val{font-size:2rem;font-weight:700;color:var(--teal)}.kpi-val.navy{color:var(--navy)}.kpi-val.sage{color:var(--sage)}.kpi-val.red{color:var(--alert)}
.kpi-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--sage)}.kpi-divider{width:1px;height:50px;background:var(--lt-gray)}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;margin:1rem 0;align-items:start}
@media (max-width:1000px){.hero{grid-template-columns:1fr}.cards{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--lt-gray);border-top:4px solid var(--navy);padding:1rem 1.2rem;display:flex;flex-direction:column;gap:.5rem}
.card h2{margin:.2rem 0}.card h2 a{text-decoration:none}
.card{min-width:0}.card .pill{white-space:normal}   /* let the status pill wrap instead of stretching the column */
.pill-row{display:flex;gap:.4rem;flex-wrap:wrap}
.pill{display:inline-block;border-radius:12px;padding:.1rem .6rem;font-size:.75rem;background:var(--warm-gray);border:1px solid var(--light-sage);color:var(--text);white-space:nowrap}
.pill.state-red{background:var(--alert);color:#fff;border-color:var(--alert)}.pill.state-green{background:var(--sage);color:#fff;border-color:var(--sage)}.pill.state-amber{background:#e2c34d;border-color:#e2c34d}
.card .next{background:var(--cream);padding:.4rem .6rem;border-left:3px solid var(--light-sage)}.card .next .lbl{font-size:.78rem;color:var(--text)}.card .next .clock{font-weight:700;color:var(--teal);margin-left:.4rem}
.card .next.urgent .clock,.clockbox.urgent .clock,.clock.urgent{color:var(--alert)}
.progress{height:8px;background:var(--warm-gray);border:1px solid var(--lt-gray);border-radius:4px;overflow:hidden}.progress .bar{height:100%;background:var(--sage)}
.project-head{display:flex;justify-content:space-between;gap:1.5rem;align-items:flex-start;flex-wrap:wrap}
.clocks{display:flex;gap:1rem;flex-wrap:wrap}.clockbox{background:#fff;border:1px solid var(--lt-gray);border-top:4px solid var(--teal);padding:.6rem 1rem;min-width:260px}
.clockbox .lbl{font-size:.72rem;color:var(--sage);text-transform:uppercase;letter-spacing:.06em}.clockbox .clock{font-size:1.5rem;font-weight:700;color:var(--teal);font-variant-numeric:tabular-nums}
.desc{background:#fff;border:1px solid var(--lt-gray);padding:1rem 1.4rem;margin:1rem 0}
table.facts{border-collapse:collapse;width:100%;font-size:.9rem}table.facts th{text-align:left;color:var(--navy);width:200px;padding:.3rem .5rem;vertical-align:top;border-bottom:1px solid var(--warm-gray)}table.facts td{padding:.3rem .5rem;border-bottom:1px solid var(--warm-gray)}
nav.tabs{display:flex;gap:.2rem;align-items:center;border-bottom:3px solid var(--sage);margin:1rem 0 .6rem;flex-wrap:wrap}
nav.tabs a{padding:.45rem .9rem;text-decoration:none;color:var(--sage);background:var(--warm-gray);border:1px solid var(--lt-gray);border-bottom:0;border-radius:4px 4px 0 0}
nav.tabs a.active{background:var(--sage);color:#fff}nav.tabs .spacer{flex:1}nav.tabs a.btn{background:var(--navy);color:#fff;border-radius:4px;margin-left:.3rem}
.filters{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;margin:.4rem 0 .6rem;font-size:.85rem}
.filters input,.filters select{padding:.3rem .4rem;border:1px solid var(--lt-gray);border-radius:4px;font-family:var(--font)}
table.register td select,table.register td input{font-family:var(--font);font-size:.82rem;padding:.15rem .25rem;border:1px solid var(--lt-gray);border-radius:3px;background:#fff;max-width:100%}
table.register td select.status{font-weight:700}
tr.detail{display:none}tr.detail.open{display:table-row}tr.detail td{background:var(--cream)!important;padding:.6rem 1rem}
.cite-block .cite{margin:.3rem 0}.cite-block blockquote{margin:.2rem 0 .4rem 1rem;padding:.3rem .6rem;border-left:3px solid var(--light-sage);background:#fff;font-size:.85rem}
.req{margin:.3rem 0;font-size:.88rem}.notes{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.6rem;margin-top:.5rem}.notes label{display:flex;flex-direction:column;font-size:.75rem;color:var(--sage)}.notes textarea,.notes input{font-family:var(--font);font-size:.82rem}
tr.overdue td{background:#fde9e9!important}.mono{font-family:var(--font);font-variant-numeric:tabular-nums;white-space:nowrap}
.lead{color:#C00000}
table.dol td.code{text-align:center;font-family:var(--font);font-size:.75rem;padding:.2rem .1rem;min-width:2.2rem}
table.dol[data-role="admin"] td.cell,table.dol td.cell.claimable{cursor:pointer}
table.dol td.cell.claimable{outline:1px dashed var(--light-sage);outline-offset:-2px}
table.dol td.cell.lead{color:#fff;background:#C00000!important;font-weight:700}table.dol td.cell.support{background:#e6ebe4!important}
table.dol tr.lvl-0 td{background:var(--sage)!important;color:#fff;font-weight:700}table.dol tr.lvl-0 td a{color:#fff}
table.dol tr.lvl-1 td.node{font-weight:700}table.dol tr.lvl-2 td.node{padding-left:1.2rem}table.dol tr.lvl-3 td.node{padding-left:2.2rem}
table.dol tr.na td{color:var(--text)}table.dol th.code{writing-mode:vertical-rl;transform:rotate(180deg);padding:.4rem .2rem;font-size:.7rem}
.gantt-wrap{overflow:auto;max-height:80vh}
table.gantt th.wk,table.gantt td.wk{width:13px;min-width:13px;padding:0;font-size:.52rem;text-align:center;border-left:1px solid #f2f2f2;letter-spacing:-.04em;overflow-wrap:normal}
table.gantt th.mo{padding:0;height:18px;line-height:18px;font-size:.62rem;text-align:center;border-left:1px solid rgba(255,255,255,.35)}
table.gantt th.wk.mstart,table.gantt td.wk.mstart{border-left:1px solid #c9c9c9}
/* The Gantt scrolls inside .gantt-wrap, so a sticky 'top' is measured from that box, not
   from the page. Offsetting by the masthead height left the header floating 56 px down the
   box, on top of the rows behind it (Dave, 2026-09-22). The three rows stack from the box's
   own top: year 0, month under the year, week under the month. */
table.gantt th.yr{top:0;height:20px;line-height:20px;padding:0;font-size:.68rem;font-weight:700;text-align:center;border-left:2px solid rgba(255,255,255,.45);letter-spacing:.03em}
table.gantt tr.yrrow th{top:0}   /* incl. the Task / Owner / Start / Finish cells, which span all three rows and would
                                otherwise keep the generic table.grid offset and float over the rows */
table.gantt tr.morow th{top:20px}
table.gantt tr.wkrow th{top:38px}
table.gantt td.wk.bar{background:var(--navy)}table.gantt td.wk.ms{background:var(--teal)}table.gantt td.wk.ph{background:var(--light-sage)}table.gantt th.wk.now,table.gantt td.wk.now{border-left:2px solid var(--alert)}
table.gantt .sticky{position:sticky;left:0;background:#fff;z-index:2;min-width:260px}table.gantt thead th.sticky{z-index:3;background:var(--navy);color:#fff}
tr.milestone td{font-weight:700}tr.placeholder td{color:var(--text);font-style:italic}
.toast{position:fixed;bottom:1rem;right:1rem;background:var(--teal);color:#fff;padding:.5rem .9rem;border-radius:4px;font-size:.85rem;opacity:0;transition:opacity .3s}.toast.show{opacity:1}


/* --- sign-in (matches the HIED platform sign-in: same island plate, same card) --- */
body.login-page{background:var(--teal);min-height:100vh;min-height:100svh;margin:0;overflow:hidden}
/* The plate reproduces `background-size: cover` as a real element: same box the image
   would occupy, centred. Because it IS the image box, a marker at left/top percentages
   sits on the same map coordinate at every window size — which a fixed background
   cannot promise, since cover crops differently as the window changes. 2.3994 is the
   image's own aspect ratio (3220 x 1342). */
.bg-stage{position:fixed;inset:0;overflow:hidden;z-index:0}
.bg-plate,.card-anchor{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:max(100vw,calc(100vh * 2.3994));height:max(100vh,calc(100vw / 2.3994))}
.bg-plate{background:url("/static/login-bg-wide.jpg") center/100% 100% no-repeat}
/* The anchor is the map's own box, so the card's offset is measured against the
   islands rather than the window: Oʻahu's south shore ends at 31.4% of the plate,
   and the card starts at 40%, leaving the island clear at any size. */
.card-anchor{pointer-events:none}
.card-anchor .login-card{position:absolute;top:40%;left:50%;pointer-events:auto}
/* Project beacons — they breathe, never go dark, like the lights on a radio tower. */
.beacon{position:absolute;width:.6rem;height:.6rem;margin:-.3rem 0 0 -.3rem;border-radius:50%;
  background:#E9BE11;animation:beacon 3.6s ease-in-out infinite;will-change:opacity,transform}
@keyframes beacon{
  0%,100%{opacity:.42;transform:scale(.86);
    box-shadow:0 0 .3rem .04rem rgba(233,190,17,.45),0 0 .8rem .12rem rgba(233,190,17,.18)}
  50%{opacity:1;transform:scale(1.12);
    box-shadow:0 0 .45rem .1rem rgba(233,190,17,.9),0 0 1.3rem .3rem rgba(233,190,17,.42)}}
.beacon:nth-of-type(2){animation-duration:4.2s;animation-delay:-1.1s}
.beacon:nth-of-type(3){animation-duration:3.9s;animation-delay:-2.4s}
@media (prefers-reduced-motion:reduce){
  .beacon{animation:none;opacity:.9;
    box-shadow:0 0 .4rem .08rem rgba(233,190,17,.8),0 0 1.1rem .25rem rgba(233,190,17,.35)}}
.login-card{z-index:1;
  background:var(--light-sage);border-radius:8px;box-shadow:0 4px 24px rgba(0,0,0,.35);
  padding:1.6rem 1.7rem;width:min(27rem,94vw);
  transform:translateX(-50%) scale(.8);transform-origin:top center;
  border-top:3px double var(--light-sage)}
.login-brand{display:flex;align-items:center;gap:.9rem;margin:0 0 1.4rem}
/* Our title runs two lines, so the logo is sized to leave the text column room
   to hold each line intact. Same lockup as the HIED sign-in, smaller. */
.login-brand img{height:3rem;width:auto;display:block;flex:0 0 auto}
.login-brand .eyebrow{margin:0 0 .2rem}
.login-brand h1{margin:0;white-space:nowrap}
@media (max-width:26rem){.login-brand{flex-direction:column;text-align:center;gap:.6rem}
  .login-brand h1{white-space:normal}}
.login-card .eyebrow{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--sage);margin:0 0 .2rem}
.login-card h1{margin:0;font-size:1.05rem;line-height:1.3;color:var(--teal)}
.login-sub{margin:.75rem 0 1rem;font-size:.78rem;line-height:1.45;color:var(--teal);opacity:.8}
.login-card label{display:block;font-size:.85rem;color:var(--sage);font-weight:700;margin:.8rem 0 .25rem}
.login-card input{width:100%;font:inherit;padding:.6rem .8rem;border:1.5px solid var(--light-sage);border-radius:6px}
.login-card input:focus{outline:2px solid var(--sage);outline-offset:1px}
.login-card button{margin-top:1.3rem;width:100%;font:inherit;font-weight:700;color:#fff;
  background:var(--teal);border:0;border-radius:6px;padding:.7rem;cursor:pointer}
.login-card button:hover{background:var(--sage)}
.login-error{color:var(--red);font-size:.85rem;margin:.9rem 0 0}
.login-foot{margin:1.1rem 0 0;font-size:.72rem;line-height:1.5;color:var(--teal);opacity:.75}
.whoami{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15;font-size:.72rem;color:var(--sage)}
.whoami b{color:var(--navy);font-size:.8rem}
.whoami a{color:var(--sage)}
.readonly-note{background:var(--cream);border-left:3px solid var(--light-sage);padding:.4rem .7rem;
  font-size:.8rem;color:var(--text);margin:.6rem 0}

.pw-error{background:#fde9e9;border-left:3px solid var(--alert);padding:.5rem .7rem;font-size:.85rem;color:#7a1c1c;max-width:24rem}
.pwform{display:flex;flex-direction:column;gap:.8rem;max-width:24rem;margin:1.2rem 0}
.pwform label{display:flex;flex-direction:column;gap:.25rem;font-size:.88rem;color:var(--text)}
.pwform input{padding:.5rem .6rem;border:1px solid var(--light-sage);border-radius:3px;font:inherit}
.pwform button{padding:.55rem;background:var(--navy);color:#fff;border:0;border-radius:3px;font:inherit;font-weight:700;cursor:pointer}
.pwform button:hover{background:var(--teal)}

/* --- claim window + Track 1 answers -------------------------------------- */
.phase-bar{display:flex;align-items:center;gap:1rem;padding:.5rem .8rem;margin:.6rem 0;border-left:4px solid var(--sage);background:#fff;font-size:.9rem}
.phase-bar.phase-locked{border-left-color:var(--alert);background:var(--cream)}
.phase-bar button{background:var(--navy);color:#fff;border:0;border-radius:4px;padding:.35rem .8rem;font-family:var(--font);cursor:pointer}
.conflicts{background:var(--cream);border-left:4px solid var(--alert);padding:.5rem .8rem;margin:.6rem 0;font-size:.88rem}
.conflicts ul{margin:.3rem 0 0;padding-left:1.2rem}
tr.row.mine td:first-child{box-shadow:inset 3px 0 0 var(--sage)}
.answer{background:#fff;border:1px solid var(--light-sage);border-left:4px solid var(--navy);padding:.6rem .8rem;margin:.5rem 0}
.answer-head{display:flex;align-items:center;gap:.6rem;margin-bottom:.4rem}
.answer-text{width:100%;font-family:var(--font);font-size:.88rem;border:1px solid var(--lt-gray);border-radius:3px;padding:.4rem .5rem}
.answer-text:disabled{background:var(--warm-gray);color:var(--text)}
.answer-actions{display:flex;gap:.5rem;margin-top:.4rem}
.answer-actions button{background:var(--navy);color:#fff;border:0;border-radius:4px;padding:.3rem .8rem;font-family:var(--font);font-size:.82rem;cursor:pointer}
.answer-actions button.answer-accept{background:var(--sage)}
.answer-actions button.answer-reopen{background:var(--med-gray)}
.pill.ans-draft{background:#e2c34d;border-color:#e2c34d}
.pill.ans-submitted{background:var(--navy);color:#fff;border-color:var(--navy)}
.pill.ans-accepted{background:var(--sage);color:#fff;border-color:var(--sage)}
.uploads{background:#fff;border:1px solid var(--light-sage);border-left:4px solid var(--sage);padding:.6rem .8rem;margin:.5rem 0}
.upload-list{list-style:none;padding:0;margin:.2rem 0}
.upload-list li{padding:.15rem 0;border-bottom:1px solid var(--warm-gray)}
.uploads input[type=file]{font-family:var(--font);font-size:.8rem}

/* --- Transmittal Register (2026-09-15) ------------------------------------- */
.masthead nav a .badge{display:inline-block;min-width:1.2rem;padding:0 .35rem;margin-left:.3rem;border-radius:9px;background:var(--alert);color:#fff;font-size:.7rem;font-weight:700;text-align:center;line-height:1.3rem;vertical-align:1px}
.ack{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid var(--lt-gray);border-left:5px solid var(--alert);padding:.7rem 1rem;margin:.8rem 0}
.ack.done{border-left-color:var(--sage)}
.ack .what{flex:1;min-width:16rem}.ack .what b{color:var(--navy)}
.btn.ghost{background:#fff;color:var(--navy);border:1px solid var(--navy)}
.tblwrap{overflow-x:auto;background:#fff;border:1px solid var(--lt-gray)}
table.transmittals{min-width:900px}
table.transmittals tr.group td{background:var(--sage)!important;color:#fff;font-weight:700;padding:.3rem .55rem;font-size:.85rem;letter-spacing:.03em}
table.transmittals tr.new td:first-child{box-shadow:inset 4px 0 0 var(--alert)}
table.transmittals tr.sup td{color:var(--text)}
table.transmittals tr.trow td .t{text-decoration:line-through;text-decoration-color:var(--lt-gray)}
table.transmittals tr.prep td{background:var(--cream)!important}
table.transmittals tr.hide{display:none}
.pill.cur{background:var(--sage);color:#fff;border-color:var(--sage)}
.pill.sup{background:var(--warm-gray);color:var(--text);border-color:var(--lt-gray)}
.pill.wd{background:var(--alert);color:#fff;border-color:var(--alert)}
.pill.prep{background:#e2c34d;border-color:#e2c34d;color:var(--text)}
.pill.rcv{background:#fff;color:var(--sage);border-color:var(--sage)}
.pill.wait{background:#fff;color:#8a6d00;border-color:#e2c34d}
.dl{font-size:.8rem;white-space:nowrap}
.hist{margin:.3rem 0 0;padding-left:1.1rem}.hist li{margin:.15rem 0}
.kv{display:grid;grid-template-columns:auto 1fr;gap:.2rem 1rem;font-size:.85rem;margin:.3rem 0}.kv dt{color:var(--sage);font-weight:700}.kv dd{margin:0}
.prep-panel{background:var(--cream);border:1px solid var(--light-sage);border-left:5px solid #e2c34d;padding:.6rem 1rem;margin:.8rem 0}
.prep-panel h3{margin:.2rem 0 .4rem}.prep-panel ul{margin:.2rem 0 .5rem;padding-left:1.2rem;font-size:.9rem}.prep-panel li{margin:.2rem 0}
.feed{list-style:none;padding:0;margin:.6rem 0;display:grid;gap:.6rem}
.feed>li{background:#fff;border:1px solid var(--lt-gray);padding:.6rem .9rem;display:grid;grid-template-columns:9rem 1fr auto;gap:1rem;align-items:start}
.feed .d{font-weight:700;color:var(--teal);font-variant-numeric:tabular-nums}
.feed .to{font-size:.8rem;color:var(--sage);text-transform:uppercase;letter-spacing:.06em}
.feed ul{margin:.25rem 0 0;padding-left:1.1rem;font-size:.88rem}.feed ul li{margin:.1rem 0}
.feed>li.hide{display:none}
.homeline{background:#fff;border:1px solid var(--lt-gray);border-left:5px solid var(--alert);padding:.6rem 1rem;margin:.6rem 0 1rem;display:flex;gap:1rem;align-items:center;flex-wrap:wrap}
.homeline .lbl{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--sage)}
@media (max-width:900px){.feed>li{grid-template-columns:1fr}}
.prep-panel.mail{border-left-color:var(--sage)}.prep-panel.mail ul{font-size:.85rem}


/* ---- suspension and anchoring (Kauaʻi build) ---- */
.masthead .due.suspended{background:#EE3437;color:#fff}
.masthead .due.suspended .clock{letter-spacing:.06em}
.hero-clock.suspended-banner{background:#EE3437;color:#fff;border-color:#EE3437}
.hero-clock.suspended-banner .clock.big{font-size:1.5rem;line-height:1.2}
.hero-clock.suspended-banner .sub{font-size:.9rem;margin-top:.3rem;color:#fff}
.hero-clock.suspended-banner .sub.muted{color:rgba(255,255,255,.85)}
.clockbox.suspended{border-color:#EE3437}
.clockbox.suspended .clock{color:#EE3437}
.pill.tentative{background:#f5f5f5;color:#5F6F5D;border:1px dashed #5F6F5D}
tr.tentative td{color:#5F6F5D}
tr.unanchored td.sticky{color:#5F6F5D}
table.gantt td.wk.ua{background:repeating-linear-gradient(45deg,#a8b5a3 0,#a8b5a3 4px,#f5f5f5 4px,#f5f5f5 8px)}
table.grid tr.sup td{color:#000000}
/* ---- question board ---- */
.kpi-bar a.kpi{text-decoration:none;color:inherit}
.question{background:#fff;border:1px solid var(--lt-gray);border-left:4px solid var(--navy);padding:.7rem 1rem;margin:.6rem 0;scroll-margin-top:calc(var(--mh) + 8px)}
.question.unanswered{border-left-color:var(--alert)}
.hit-target{background:#fff4c2;outline:2px solid #e2c34d;outline-offset:2px;transition:background 1.2s,outline-color 1.2s}
.hit-target.hit-fade{background:#fff;outline-color:transparent}
.qhead{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.qnum{color:var(--navy);text-decoration:none;font-weight:700}
.qtext{white-space:pre-line;font-size:.92rem;margin:.4rem 0}
ol.parts{margin:.2rem 0 .4rem 1.4rem;padding:0;font-size:.92rem}ol.parts li{margin:.15rem 0;list-style:none}ol.parts.sub{margin-left:1.4rem}.plabel{color:var(--sage);font-weight:700;margin-right:.3rem}
.qanswer{background:var(--cream);border-left:3px solid var(--light-sage);padding:.4rem .8rem;margin:.4rem 0}
.qanswer.none{background:var(--warm-gray);color:var(--text)}
.qanswer-head{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--sage)}
.qadmin{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center;margin-top:.4rem;font-size:.8rem;color:var(--sage)}
.qadmin label{display:flex;gap:.3rem;align-items:center}.qadmin input,.qadmin select{font-family:var(--font);font-size:.82rem;padding:.2rem .3rem;border:1px solid var(--lt-gray);border-radius:3px}
.qadmin .evidence{flex-basis:100%}
.pill.st-answered{background:var(--sage);color:#fff;border-color:var(--sage)}.pill.st-unanswered{background:var(--alert);color:#fff;border-color:var(--alert)}
.pill.ours-yes{background:var(--navy);color:#fff;border-color:var(--navy)}.pill.ours-no{background:var(--warm-gray);color:var(--text)}
/* ---- home: County scoring readiness ---- */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.8rem;margin:.6rem 0}
.tile{background:#fff;border:1px solid var(--lt-gray);border-top:4px solid var(--sage);padding:.6rem .8rem;text-decoration:none;color:var(--text);display:block}
.tile-pts{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--sage)}.tile-name{font-weight:700;color:var(--navy);margin:.1rem 0}.tile-val{font-size:1.6rem;font-weight:700;color:var(--teal)}.tile-sub{font-size:.75rem;color:var(--text)}
/* ---- org chart ---- */
.orgchart-wrap{overflow-x:auto;background:#fff;border:1px solid var(--lt-gray);padding:.4rem;margin:.6rem 0}
.oc-narrow{display:none}
@media (max-width:639px){.oc-wide{display:none}.oc-narrow{display:block}}
.orgchart-bar{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;font-size:.85rem}
table.team input.edit,table.team select.edit{font-family:var(--font);font-size:.82rem;padding:.15rem .3rem;border:1px solid var(--lt-gray);border-radius:3px;max-width:100%}
table.team tr.group td{background:var(--cream)!important;color:var(--sage)}
@media print{.orgchart-wrap{overflow:visible;border:0}.oc-narrow{display:none!important}.oc-wide{display:block!important}.masthead nav,.orgchart-bar{display:none}}
/* ---- wiring 2: RFP page markers, permit tracker, law library, superseded group ---- */
article.rfp .pg{text-align:right;font-size:.72rem;color:var(--text);letter-spacing:.04em;margin:.9rem 0 .2rem;border-top:1px dashed var(--lt-gray);padding-top:.15rem;font-variant-numeric:tabular-nums}
article.rfp .pg.hit{background:#fff4c2}
article.rfp.sup{color:#000000}
details.superseded-group{margin:.8rem 0}details.superseded-group summary{cursor:pointer;padding:.4rem .2rem;color:var(--sage)}
table.rfp-docs td.nowrap{white-space:nowrap}
table.permits tr.group td{background:var(--light-sage);color:var(--teal);font-weight:700;padding:.35rem .55rem}
table.permits tr.crit td:first-child{border-left:4px solid var(--alert)}
table.permits tr.crit td{background:#fff6f6}
table.permits .cite-text{font-size:.8rem}table.permits input[type=date]{font-family:var(--font);font-size:.8rem;padding:.15rem}
table.permits select.edit{font-size:.8rem;font-family:var(--font)}
.pill.crit{background:var(--alert);color:#fff;border-color:var(--alert)}
.pill.inst-new{background:var(--navy);color:#fff;border-color:var(--navy)}.pill.inst-modification{background:var(--teal);color:#fff;border-color:var(--teal)}.pill.inst-existing{background:var(--sage);color:#fff;border-color:var(--sage)}
.pill.ps-issued{background:var(--sage);color:#fff;border-color:var(--sage)}.pill.ps-na{background:var(--warm-gray);color:var(--text)}.pill.ps-under_review,.pill.ps-application,.pill.ps-pre_app{background:#e2c34d;border-color:#e2c34d}
.pill.addition{background:var(--teal);color:#fff;border-color:var(--teal)}
.chip.pending{border-style:dashed;color:var(--text);background:#fff}.chip.ext{background:#fff}.chip.cited{background:var(--navy);color:#fff;border-color:var(--navy)}
.law-tree details{margin:.3rem 0}.law-tree details.branch>summary{font-size:1.05rem;padding:.45rem .3rem;background:var(--light-sage);color:var(--teal);cursor:pointer}
.law-tree details.section{margin-left:.8rem}.law-tree details.section>summary{padding:.3rem .3rem;cursor:pointer;color:var(--navy);font-weight:600;border-bottom:1px solid var(--lt-gray)}
.law-tree ul.leaves{list-style:none;margin:0;padding:0 0 .4rem 1rem}.law-tree li.leaf{padding:.45rem .4rem;border-bottom:1px solid var(--warm-gray)}
.law-tree li.leaf.pending .leaf-title b{color:var(--text)}.law-tree .cite-line{color:var(--text);font-size:.75rem;margin-top:.15rem}
.law-hits ol.hits li{margin:.5rem 0}.snippet mark{background:#fff4c2;padding:0 .1rem}

/* W3b — APPEND to static/style.css (search page, masthead box, /hlp document list). HL&P palette only. */
.masthead .msearch{flex:0 0 auto;margin-left:.3rem}
.masthead .msearch input{width:12rem;padding:.35rem .7rem;border:1px solid var(--lt-gray);border-radius:14px;font-family:var(--font);font-size:.85rem;background:var(--warm-gray)}
.masthead .msearch input:focus{outline:2px solid var(--sage);outline-offset:1px;background:#fff;width:16rem;transition:width .15s}
@media (max-width:900px){.masthead .msearch input{width:9rem}}
.search-form{background:#fff;border:1px solid var(--lt-gray);border-top:4px solid var(--sage);padding:.8rem 1rem .5rem;margin:.6rem 0 1rem}
.search-row{display:flex;gap:.5rem}
.search-row input{flex:1;padding:.55rem .8rem;border:1.5px solid var(--light-sage);border-radius:4px;font-family:var(--font);font-size:1rem}
.search-row input:focus{outline:2px solid var(--sage);outline-offset:1px}
.search-row button{background:var(--navy);color:#fff;border:0;border-radius:4px;padding:.5rem 1.1rem;font-family:var(--font);font-weight:700;cursor:pointer}
.search-row button:hover{background:var(--teal)}
.lane-toggle{display:inline-flex;border:1px solid var(--light-sage);border-radius:4px;overflow:hidden}
.lane-opt{padding:.3rem .7rem;cursor:pointer;color:var(--sage);background:var(--warm-gray);border-right:1px solid var(--light-sage);font-size:.85rem}
.lane-opt:last-child{border-right:0}.lane-opt.on{background:var(--sage);color:#fff}
.lane-opt input{position:absolute;opacity:0;width:0;height:0}
.search-layout{display:grid;grid-template-columns:280px 1fr;gap:1.5rem;align-items:start}
@media (max-width:1000px){.search-layout{grid-template-columns:1fr}.search-rail{position:static;max-height:none}}
.search-rail{position:sticky;top:calc(var(--mh) + 12px);max-height:calc(100vh - 90px);overflow:auto;background:#fff;border:1px solid var(--lt-gray);padding:.6rem .8rem;font-size:.85rem}
.rail-head{font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;margin:.2rem 0 .4rem}
.search-rail ul{list-style:none;padding:0;margin:0}.search-rail li{margin:.1rem 0}
.search-rail li a{display:flex;align-items:center;gap:.4rem;text-decoration:none;color:var(--text);padding:.2rem .4rem;border-radius:4px}
.search-rail li a:hover{background:var(--warm-gray)}.search-rail li.on a{background:var(--cream);color:var(--navy);font-weight:700}
.search-rail .n{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--text);font-weight:400;font-size:.8rem}
.search-results{display:grid;gap:.6rem}
.hit-card{background:#fff;border:1px solid var(--lt-gray);border-left:4px solid var(--sage);padding:.55rem .9rem}
.hit-card.superseded{border-left-color:var(--lt-gray);color:var(--text)}
.hit-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;font-size:.88rem}
.hit-doc{font-weight:700;text-decoration:none}.hit-line{font-size:.8rem;text-decoration:none;color:var(--sage)}
.hit-title{margin:.1rem 0 .2rem}
.hit-snippet{margin:.2rem 0 0;font-size:.92rem;line-height:1.45}
.hit-snippet mark{background:#fff4c2;color:inherit;padding:0 .1em;border-radius:2px;box-shadow:0 0 0 1px #e2c34d inset}
.pill.lane-hlp{background:var(--navy);color:#fff;border-color:var(--navy)}
.pager{display:flex;align-items:center;gap:1rem;margin:.8rem 0}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace}
/* /hlp list */
.hlp-folder{margin:1rem 0 .3rem;color:var(--sage);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem}
table.grid td.party{white-space:nowrap;font-size:.82rem;color:var(--text)}
.toc .doc-search{display:flex;gap:.3rem;margin:.4rem 0 .6rem}
.toc .doc-search input[type=search]{flex:1;min-width:0;padding:.3rem .5rem;border:1px solid var(--lt-gray);border-radius:4px;font-family:var(--font);font-size:.82rem}
.toc .doc-search input[type=search]:focus{outline:2px solid var(--sage);outline-offset:1px}
.toc .doc-search button{background:var(--navy);color:#fff;border:0;border-radius:4px;padding:.3rem .6rem;font-family:var(--font);font-size:.8rem;cursor:pointer}
.lane-counts{display:flex;flex-wrap:wrap;gap:.4rem 1.5rem;align-items:baseline;margin:.2rem 0 1rem;color:var(--text)}
.lane-counts .n{font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums}
/* ---- wiring 4: register Forms & Sections view, superseded rows, DOL / discrepancy register links ---- */
.fcards{display:grid;grid-template-columns:1fr;gap:1rem;margin:1rem 0}
.fcard{background:#fff;border:1px solid var(--lt-gray);border-top:4px solid var(--sage);padding:.8rem 1rem}
.fcard header h2{margin:.1rem 0 .3rem;font-size:1.1rem;color:var(--navy)}
.fcard-pts{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--sage)}
.fcard-ready{margin:.5rem 0 .6rem}.fcard-ready .progress{margin:.2rem 0}
.fcard table.forms{margin-top:.4rem}.fcard table.forms td .progress{width:110px;margin:0}
.dest .mono{font-size:.72rem;word-break:break-all}
.pill.lead{background:var(--alert);color:#fff;border-color:var(--alert);font-weight:700}
.pill.sup{background:var(--warm-gray);color:var(--text);border-style:dashed}
tr.row.sup td{color:var(--text)}tr.row.sup td strong{font-weight:500}
.chip.open{border-color:var(--alert);color:var(--alert)}
.pill.kind-county_defect{background:var(--alert);color:#fff;border-color:var(--alert)}.pill.kind-hlp_internal{background:var(--navy);color:#fff;border-color:var(--navy)}
.pill.kind-open_question{background:#e2c34d;border-color:#e2c34d}.pill.kind-missing_document{background:var(--teal);color:#fff;border-color:var(--teal)}

/* ---- W7 fixes (2026-09-22): masthead wrap, phone-width tables and cards, pills, badges ---- */
.masthead{flex-wrap:wrap;row-gap:.35rem}
.masthead nav{flex:1 1 34rem;min-width:0}
.masthead .msearch{margin-left:auto}
.masthead .whoami{flex:0 0 auto;max-width:18rem}
.masthead .whoami span{white-space:normal}
.masthead .due{flex:0 0 auto;max-width:20rem;white-space:normal;padding:.15rem .6rem;border-radius:4px}
.masthead .due .clock{white-space:nowrap}
.masthead .due .when{white-space:normal;line-height:1.25}
.masthead .due.suspended .lbl,.masthead .due.suspended .when{color:rgba(255,255,255,.9)}
.masthead form.logout{display:inline;margin:0}
button.linklike{background:none;border:0;padding:0;margin:0;font:inherit;color:var(--sage);text-decoration:underline;cursor:pointer}
main{min-width:0}
.tblwrap{max-width:100%;min-width:0;overflow-x:visible}      /* desktop: table headers stay sticky; the wrapper scrolls only below 900 px */
.tblwrap.wide,.tblwrap.gantt-wrap{overflow-x:auto}
table.grid td{overflow-wrap:break-word}   /* break a word only when it cannot fit alone: the column's minimum is its longest word,
                                         so a squeezed column can never collapse to one letter per line */
table.grid th{overflow-wrap:normal;white-space:nowrap}   /* short labels (Agency, Lead, Docs) never break mid-word; the header sets the column's minimum */
table.gantt td.sticky,table.gantt th.sticky{overflow-wrap:normal}
.filters label{max-width:100%;min-width:0}.filters select,.filters input{max-width:100%;min-width:0}
.kpi-bar{flex-wrap:wrap;gap:1rem 2rem;min-width:0}
.hero,.hero-clock,.card,.fcard,.fcards,.tiles,.tile,.homeline,.question{min-width:0;max-width:100%}
.hero-clock .clock.big,.hero-clock .sub,.homeline span,.tile-sub,.lede{overflow-wrap:anywhere}
.map-wrap,.map-side{min-width:0;max-width:100%}.map-side li{overflow-wrap:anywhere}
.dest .mono,.qadmin .evidence,.qadmin .evidence .mono,.fcard .small,.question .chips{white-space:normal;overflow-wrap:anywhere}
.qadmin .evidence{min-width:0;flex-basis:100%}.qadmin label{min-width:0;max-width:100%}
.map-note,.map-status,#map-status{overflow-wrap:anywhere;max-width:100%}
.pill.notext{background:#fff;color:var(--text);border:1px dashed var(--med-gray)}
a.pill.disc{text-decoration:none}
.warn.callout a{color:var(--navy)}
table.permits tr.merged td{color:var(--text)}table.permits tr.merged td strong{font-weight:500;text-decoration:line-through;text-decoration-color:var(--lt-gray)}
@media (max-width:900px){
  .tblwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .tblwrap table.grid th{position:static}
}
@media (max-width:700px){
  .fcard table.forms td .progress{width:70px}
  .fcard header .pill-row,.fcard-ready{max-width:100%}
  .fcards{grid-template-columns:1fr}
}
@media (max-width:640px){
  .masthead{gap:.4rem .8rem;padding:.45rem .8rem}
  .masthead .brand{order:1;flex:1 1 auto}
  .masthead .whoami{order:2;max-width:50%;align-items:flex-end}
  .masthead .due{order:3;flex:1 1 100%;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:.2rem .5rem;max-width:100%;text-align:left}
  .masthead .msearch{order:4;flex:1 1 100%;margin:0}
  .masthead .msearch input,.masthead .msearch input:focus{width:100%}
  .masthead nav{order:5;flex:1 1 100%;gap:.1rem .25rem}
  .masthead nav a{font-size:.8rem;padding:.15rem .3rem}
  main{padding:.8rem .8rem 2.5rem}
  .kpi-divider{display:none}.kpi{flex:1 1 30%}.kpi-val{font-size:1.5rem}
  .hero-clock.suspended-banner .clock.big{font-size:1.15rem}
  .lede .mono,.qmeta,.qmeta .mono,.qhead .mono{white-space:normal;overflow-wrap:anywhere}
  .qadmin input[size]{width:100%}
  .cards{grid-template-columns:1fr}
  .search-row{flex-wrap:wrap}
  table.facts th{width:7rem}table.facts th,table.facts td{overflow-wrap:anywhere}
}

/* Ask the record — the written answer (2026-09-30) */
.ask-written{margin:1rem 0 1.5rem;padding:.9rem 1.2rem;border-left:4px solid var(--navy);background:var(--warm-gray);max-width:90ch}
.ask-answer p{margin:.45rem 0}
.ask-answer ul{margin:.45rem 0 .45rem 1.3rem}
.ask-answer li{margin:.25rem 0}
.ask-flag{font-weight:700;color:var(--navy)}
a.cite{font-size:.78em;vertical-align:super;text-decoration:none;margin-left:1px;color:var(--navy)}
.ask-src-h{margin:1rem 0 .3rem;font-size:1rem;color:var(--navy)}
.ask-sources{margin:.3rem 0 .5rem 1.3rem;padding:0}
.ask-sources li{margin:.5rem 0}
.ask-sources li:target{background:var(--cream)}
.ask-quote{margin-top:.15rem;color:var(--text)}
