/* Shipping & Production. The sheets keep the printed-sheet look and stay light even in dark mode.
   Never blue highlights (blue means "don't make" in the shop). */
#ship{background:#E9E9E6;color:#111;min-height:100vh;color-scheme:light;font-family:"Noto Serif",Georgia,serif}
.shipwrap{max-width:1600px;margin:0 auto;padding:0 0 48px}
.shstatus{background:#fff;border-bottom:1px solid #BDBDB8;padding:8px 16px;display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;font:600 .82rem var(--body)}
.shstatus .run{display:inline-flex;align-items:center;gap:8px;font-weight:700}
.shstatus .run.bad{color:#B42318}
.shstatus .muted{color:#444;font-weight:400}
.shstatus .grow{flex:1 1 auto}
.dot{width:10px;height:10px;border-radius:50%;display:inline-block;background:#9CA3AF;flex:none}
.dot.ok{background:#2F7D4F}.dot.bad{background:#D92D20}
.shq{display:flex;align-items:center;gap:6px;flex:0 1 360px;min-width:200px}
.shq input{flex:1 1 auto;min-width:0;min-height:40px;border:1px solid #8C8C8C;border-radius:4px;padding:0 10px;font:inherit;font-size:.9rem;background:#fff;color:#111}
.sbtn{font:700 .82rem var(--body);min-height:36px;padding:0 12px;border:1px solid #111;background:#fff;color:#111;border-radius:4px;cursor:pointer;white-space:nowrap}
.sbtn.go{background:#C2410C;border-color:#C2410C;color:#fff}
.sbtn:disabled{opacity:.45;cursor:default}
.linkbtn{font:inherit;background:none;border:0;color:#9A3412;text-decoration:underline;cursor:pointer;padding:0}
.stabs{display:flex;flex-wrap:wrap;gap:2px;padding:12px 16px 0;border-bottom:3px solid #1F1F1F}
.stab{font:700 .95rem var(--body);min-height:44px;padding:0 16px;border:0;border-radius:4px 4px 0 0;background:#D4D4D0;color:#111;cursor:pointer;display:inline-flex;align-items:center;gap:8px}
.stab span{font-size:.75rem;padding:1px 8px;border-radius:10px;background:#fff;color:#111}
.stab[aria-selected="true"]{background:#1F1F1F;color:#fff}
.stab[aria-selected="true"] span{background:#4A4A4A;color:#fff}
.stab.warn span{background:#F59E0B;color:#111}
.shbody{padding:14px 16px;display:grid;gap:14px}
.shtitle h2{font-family:"Noto Serif",Georgia,serif;font-size:1.45rem;margin:0}
.shtitle p{margin:4px 0 0;font-size:.95rem;color:#333}
.tscroll{overflow-x:auto;background:#fff;border:1px solid #8C8C8C}
table.sht{border-collapse:collapse;width:100%;font-size:.88rem;background:#fff;color:#111}
table.sht th{background:#1F1F1F;color:#fff;font:700 .78rem var(--body);padding:6px 4px;border-right:1px solid #555;text-align:center;white-space:nowrap;position:sticky;top:0}
table.sht td{border:1px solid #B5B5B5;padding:3px 5px;vertical-align:middle}
table.sht td.c{text-align:center}
table.sht td.b{font-weight:700}
table.sht tr.wbar td{background:#FFF2CC;font-weight:700;font-size:1rem;padding:6px 8px;border-top:1px solid #8C8C8C}
table.sht tr.wbar.hold td,td.hold{background:#F8CBAD}
td.late,span.late{color:#B42318;font-weight:700}
td.ream{background:#C6EFCE;font-weight:700}
td.fc{padding:0;min-width:108px}
.fc select{width:100%;min-height:30px;border:0;background:transparent;font:inherit;text-align:center;text-align-last:center;appearance:none;-webkit-appearance:none;color:#111;cursor:pointer;padding:0 4px}
.f-raw{background:#D9D9D9}.f-tbd{background:#F4B084}.f-cust select{font-weight:700}
td.ntc{padding:0;min-width:150px}
input.nt{width:100%;box-sizing:border-box;min-height:30px;border:0;background:transparent;font:inherit;color:#111;padding:0 6px}
input.nt:focus,.fc select:focus{outline:2px solid #C2410C;outline-offset:-2px}
td.stg{text-align:center;width:30px;padding:0}
td.stg input{width:20px;height:20px;accent-color:#2F7D4F;cursor:pointer}
td.stg.done{background:#C6EFCE}
td.stg.na{background:#EFEFEC;color:#8A8A8A;font-size:.75rem}
.shipbtn{font:700 .75rem var(--body);min-height:30px;width:100%;padding:0 8px;border:0;background:#2F7D4F;color:#fff;border-radius:3px;cursor:pointer;white-space:nowrap}
.mvbtn{font:700 .75rem var(--body);min-height:30px;padding:0 8px;border:1px solid #111;background:#fff;color:#111;border-radius:3px;cursor:pointer}
.shipbtn:disabled,.mvbtn:disabled{opacity:.4;cursor:default}
tr.mvrow td{background:#FFF8E6}
.mvbox{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:6px 4px;font-family:var(--body);font-size:.88rem}
.empty{color:#555;font-family:var(--body);padding:14px;background:#fff;border:1px dashed #BDBDB8}
table.sht td.empty{border:0;text-align:center}
.arch{display:grid;gap:6px}
.archhead{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;font-family:var(--body);font-size:.85rem}
.archhead h3{font-family:"Noto Serif",Georgia,serif;font-size:1.05rem;margin:0;background:#1F1F1F;color:#fff;padding:4px 10px}
.arch.trash .archhead h3{background:#6B6B6B}
.archhead span{color:#444;flex:1 1 300px}
table.sht.small{font-size:.82rem}
table.sht.review td{vertical-align:top;padding:6px}
table.sht.review small{color:#444}
table.sht.review select{font:inherit;min-height:34px;border:1px solid #8C8C8C;border-radius:3px;background:#fff;color:#111}
h3.sub{font-family:"Noto Serif",Georgia,serif;margin:6px 0 0}
/* rules + access */
.rules{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start;font-family:var(--body)}
.rcol{flex:1 1 380px;min-width:0;display:grid;gap:18px}
.rcard{background:#fff;border:1px solid #D6D6D3;border-radius:8px;padding:16px;display:grid;gap:10px}
.rcard h3{margin:0;font-size:1.1rem;display:flex;gap:8px;align-items:center}
.rcard textarea,.rcard input{font:inherit;width:100%;box-sizing:border-box;border:1px solid #BDBDB8;border-radius:6px;padding:8px 10px;background:#fff;color:#111}
.rcard label{display:grid;gap:4px;font-size:.85rem;font-weight:600;color:#444}
.rrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
.rnote{border:1px solid #E6E6E3;border-radius:8px;padding:12px;display:grid;gap:8px}
.rnote small,.rline small{color:#555;display:block;font-size:.8rem}
.hl{background:#FFF2CC;border-radius:6px;padding:8px 10px}
.rline{border-top:1px solid #E6E6E3;padding-top:8px}
.pill{background:#F59E0B;font-size:.75rem;font-weight:700;padding:1px 8px;border-radius:10px}
/* phone: cards */
.cbar{background:#FFF2CC;font-weight:700;padding:8px 10px;border:1px solid #8C8C8C}
.scard{background:#fff;border:1px solid #8C8C8C;padding:10px 12px;display:grid;gap:6px}
.sc1{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.sc1 b{font-size:1.05rem}
.sc2{font-size:.92rem}
.sc3{display:grid;grid-template-columns:auto 1fr;gap:6px;align-items:center}
.sc3 .fc{display:block;border:1px solid #B5B5B5;min-width:120px}
.sc3 input.nt{border:1px solid #B5B5B5;min-height:36px}
.sc4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) 96px;gap:4px;font-family:var(--body)}
.sc4 .bx{min-height:44px;display:flex;align-items:center;justify-content:center;gap:4px;background:#F3F3F1;font-size:.85rem;font-weight:700;cursor:pointer}
.sc4 .bx.done{background:#C6EFCE}
.sc4 .bx.na{background:#EFEFEC;color:#8A8A8A;font-weight:400}
.sc4 .bx input{width:20px;height:20px;accent-color:#2F7D4F}
.sc4 .shipbtn{min-height:44px}
.mvlink{justify-self:start;font:600 .85rem var(--body);background:none;border:0;color:#9A3412;text-decoration:underline;padding:4px 0;cursor:pointer}
@media (max-width:760px){.stabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.stab{justify-content:center;border-radius:4px}.shstatus .muted{display:none}.shq{flex:1 1 100%}}

/* ───────── homepage card */
.shipcard{display:block;text-decoration:none;color:#15191E;background:#fff;border:2px solid #1F1F1F;border-radius:10px;overflow:hidden;position:relative}
.shipcard:focus-visible{outline:3px solid #F59E0B;outline-offset:2px}
.sc-head{background:#1F1F1F;color:#fff;padding:8px 14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sc-t{font-family:var(--display);font-weight:700;font-size:1.25rem;letter-spacing:.02em;flex:1 1 auto}
.sc-run{display:inline-flex;align-items:center;gap:6px;font-size:.78rem}
.sc-run .dot{width:9px;height:9px}
.sc-go{font-weight:700}
.sc-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
.sc-cell{padding:10px 12px;border-right:1px solid #D5D9DE;display:flex;flex-direction:column;gap:2px}
.sc-cell:last-child{border-right:0}
.sc-cell small{font:700 .75rem var(--body);color:#15191E}
.sc-cell b{font-family:var(--display);font-size:1.75rem;line-height:1}
.sc-cell.sc-rev{background:#FFF2CC}
.sc-cell.sc-late b{color:#B42318}
@media (max-width:560px){.sc-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.sc-cell{border-bottom:1px solid #D5D9DE}}

/* ───────── print this sheet: 1 page wide, header row repeats, wave bars start new blocks */
@media print{
  body.printing-ship>#ship{display:block!important;background:#fff;min-height:0}
  body.printing-ship>#printarea{display:none!important}
  body.printing-ship #ship .noprint{display:none!important}
  body.printing-ship .tscroll{overflow:visible;border:0}
  body.printing-ship table.sht{zoom:.78;font-size:9.5pt}
  body.printing-ship table.sht thead{display:table-header-group}
  body.printing-ship table.sht th{position:static}
  body.printing-ship tbody.wave{break-inside:avoid-page}
  body.printing-ship tr{break-inside:avoid}
  body.printing-ship .fc select,body.printing-ship input.nt{appearance:none;-webkit-appearance:none}
  body.printing-ship .shipbtn,body.printing-ship .mvbtn{display:none}
  body.printing-ship .shbody{padding:0}
}
table.sht.steering td:nth-child(2),table.sht.fab td:nth-child(2),table.sht td:nth-child(3){white-space:nowrap}
.shipadm{display:grid;gap:10px}
.shipadm table.sht select{font:inherit;min-height:34px}
/* undo / redo */
.shstatus .undo{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.shstatus .undo .last{color:#444;font-weight:400;max-width:34ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:760px){.shstatus .undo{flex:1 1 100%}.shstatus .undo .sbtn{flex:1 1 0}.shstatus .undo .last{flex:1 1 100%;max-width:none}}
@media print{.shstatus .undo{display:none}}
/* print in color (backgrounds included, no "Background graphics" checkbox needed); Print grey turns it all to grey shades */
.shstatus .prt{display:inline-flex;gap:6px}
@media print{
  body.printing-ship,body.printing-ship *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body.printing-ship.print-grey #ship{filter:grayscale(1)}
}
