:root{
  --green:#0a9b50; --green-dark:#067a3e; --ink:#14202b; --muted:#5f6c77; --line:#d9e0e5;
  --bg:#f4f6f7; --card:#fff; --amber:#b45309; --amber-bg:#fff4d6; --blue:#1769aa; --blue-bg:#e3eefa;
  --red:#c2271b; --red-bg:#fde7e5; --ok-bg:#dcf5e6;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink);line-height:1.4}
a{color:var(--blue)}
.wrap{max-width:1180px;margin:0 auto;padding:20px 16px 48px}
.narrow{max-width:520px}
header.top{background:#fff;border-bottom:1px solid var(--line)}
header.top .bar{max-width:1180px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
header.top img{height:38px;width:auto;display:block}
nav.main{display:flex;gap:4px;flex-wrap:wrap;flex:1}
nav.main a{padding:8px 12px;border-radius:8px;text-decoration:none;color:var(--ink);font-weight:600;font-size:15px}
nav.main a.on,nav.main a:hover{background:var(--bg)}
.who{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--muted)}
h1{font-size:26px;margin:6px 0 14px}
h2{font-size:19px;margin:26px 0 10px}
.muted{color:var(--muted)}
.small{font-size:13px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:14px}
.grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.stat{font-size:30px;font-weight:800}
.flash{background:var(--amber-bg);border:1px solid #ecd28b;padding:10px 14px;border-radius:10px;margin-bottom:14px}
.error{background:var(--red-bg);border:1px solid #f1b9b3;color:#7a1810;padding:10px 14px;border-radius:10px;margin-bottom:14px}
label{display:block;font-weight:600;font-size:14px;margin:10px 0 4px}
input,select{font:inherit;font-size:16px;width:100%;min-height:44px;border:1px solid var(--line);border-radius:9px;padding:8px 11px;background:#fff}
input[type=checkbox]{width:auto;min-height:auto}
.inline{display:flex;gap:8px;align-items:end;flex-wrap:wrap}
.inline > *{flex:1 1 140px}
.inline > button,.inline > .btn{flex:0 0 auto}
button,.btn{font:inherit;border:0;border-radius:9px;min-height:44px;padding:0 16px;font-weight:700;cursor:pointer;background:var(--green);color:#fff;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}
button:hover,.btn:hover{background:var(--green-dark)}
button.secondary,.btn.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}
button.secondary:hover{background:var(--bg)}
button.danger{background:#fff;color:var(--red);border:1px solid #f1b9b3}
button.link{background:none;color:var(--blue);padding:0;min-height:auto;font-weight:600}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
th,td{text-align:left;padding:9px 11px;border-bottom:1px solid var(--line);vertical-align:top;font-size:14px}
th{background:#f8fafb;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
tr.inactive td{color:#9aa4ad}
.table-wrap{overflow-x:auto}
.pill{display:inline-block;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:700;background:#edf2f4;color:#44515c}
.pill.ok{background:var(--ok-bg);color:#14633a}.pill.warn{background:var(--amber-bg);color:var(--amber)}
.pill.bad{background:var(--red-bg);color:var(--red)}.pill.info{background:var(--blue-bg);color:#1e4f91}
details.edit summary{cursor:pointer;color:var(--blue);font-weight:600;font-size:14px}
details.edit[open]{background:#fafbfc;border:1px solid var(--line);border-radius:10px;padding:10px;margin-top:6px}
code.link{display:block;word-break:break-all;background:#f1f4f6;border:1px solid var(--line);border-radius:8px;padding:10px;font-size:14px}
.qr svg{width:200px;height:200px;background:#fff}
/* Floor screens: big touch targets */
.floor .wrap{max-width:960px}
.operators{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.operators a{display:flex;align-items:center;justify-content:center;min-height:86px;background:#fff;border:1px solid var(--line);border-radius:14px;font-size:22px;font-weight:800;color:var(--ink);text-decoration:none}
.operators a:hover{border-color:var(--green)}
.pinpad{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:360px;margin:16px auto}
.pinpad button{min-height:76px;font-size:30px;background:#fff;color:var(--ink);border:1px solid var(--line)}
.pinpad button:hover{background:var(--bg)}
.pindots{font-size:40px;letter-spacing:14px;text-align:center;min-height:56px}
.station-tag{display:inline-block;background:var(--blue-bg);color:#1e4f91;font-weight:700;border-radius:8px;padding:4px 10px}
@media (max-width:640px){h1{font-size:22px}header.top img{height:30px}}
/* Production Board */
.floorbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.floorbar .search{display:flex;gap:8px;flex:1;min-width:240px}
.who-floor{display:flex;gap:10px;align-items:center}
.sheets{display:grid;gap:10px}
details.sheet{background:#fff;border:1px solid var(--line);border-radius:14px}
details.sheet.worked{background:#fafbfb}
details.sheet > summary{list-style:none;cursor:pointer;padding:14px 16px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
details.sheet > summary::-webkit-details-marker{display:none}
details.sheet[open] > summary{border-bottom:1px solid var(--line)}
.jobno{font-size:24px;font-weight:800;color:var(--green-dark)}
.jobname{font-weight:600;flex:1 1 260px}
.meta{color:var(--muted);font-size:14px}
.status{padding:4px 10px;border-radius:999px;font-weight:700;font-size:13px;background:#edf2f4;color:#44515c;white-space:nowrap}
.status.complete{background:var(--ok-bg);color:#14633a}.status.part-complete{background:var(--amber-bg);color:var(--amber)}
.status.in-production{background:var(--blue-bg);color:#1e4f91}.status.over-complete{background:var(--red-bg);color:var(--red)}
.qty-under{color:var(--amber)}.qty-over{color:var(--red)}.qty-exact{color:var(--green-dark)}
.sheet-body{padding:12px 16px 16px;display:grid;gap:12px}
.group{border:1px solid var(--line);border-radius:12px;padding:12px}
.group-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.code{color:var(--blue);font-weight:800}
.code.big{font-size:24px}
.design.big{font-size:22px;font-weight:800;color:var(--ink);line-height:1.2}
.qtys{display:flex;gap:18px;flex-wrap:wrap;margin:8px 0;align-items:baseline}
.qtys strong{font-size:20px;margin-left:4px}
.lines{display:grid;gap:4px;margin:6px 0 10px}
.line{display:flex;gap:16px;flex-wrap:wrap;background:#f7f9fa;border-radius:8px;padding:6px 10px;font-size:14px}
.line em{font-style:normal;color:var(--muted);font-size:12px;text-transform:uppercase;margin-right:4px}
.line .note{color:var(--muted)}
button.big{min-height:60px;font-size:20px;width:100%;margin-top:8px}
button.big.grey{background:#8d969d}
details.combine{margin:6px 0}
details.combine > summary{cursor:pointer;font-weight:700;color:#c2410c}
details.combine > summary::marker{color:#ea580c}
label.cand{display:block;font-weight:500;padding:6px 0}
.run-panel{background:var(--blue-bg);border-radius:12px;padding:12px;margin-top:8px}
.run-head{font-weight:800;color:#1e4f91;margin-bottom:6px}
.combined{font-weight:700;margin:4px 0}
label.alloc{display:flex;justify-content:space-between;align-items:center;gap:10px;font-weight:500}
label.alloc input{max-width:120px;font-size:22px;text-align:center}
.close-sheet{width:100%;min-height:56px}
.card.mine{border-color:#9cc3ea}
.rate-card strong.rate{font-size:26px;margin:0 6px}
.rate.green{color:var(--green-dark)}.rate.ok{color:var(--amber)}.rate.below{color:var(--red)}
/* Status Board */
td.num{text-align:right;font-variant-numeric:tabular-nums}
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:end;margin-bottom:12px}
.filters > *{flex:0 1 auto}
/* Process chips: jobs that need more than one process (T02) */
.procs{display:inline-flex;gap:4px;flex-wrap:wrap;vertical-align:middle}
.proc{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.02em;color:#fff}
.proc-embroidery{background:#1769aa}.proc-heat-press{background:#d9480f}.proc-screen-print{background:#7b3fb3}
.proc.here{background:#fff;color:var(--muted);border:1px solid var(--line)}
.sheet.multi{border-left:6px solid #d9480f}
.needs-tick td{background:var(--amber-bg)}
.batch-pick{display:flex;align-items:center;gap:10px;margin-top:10px;font-weight:600;font-size:15px}
.batch-pick input{width:24px;min-height:24px;height:24px}
.batch-form{margin:6px 0 10px;padding:12px;border:2px dashed var(--line);border-radius:12px}
/* Heat press counts: one small box per transfer */
.count-form{margin-top:8px}
.count-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);font-weight:700}
.count-row input{width:130px;flex:0 0 130px;text-align:right;font-size:20px}
.count-name{flex:1 1 auto}
.count-buttons{display:flex;gap:10px;margin-top:12px;align-items:center}
.count-buttons button{min-width:120px}
.count-buttons .end{flex:1 1 auto}
.blocked-start{margin-top:10px;padding:12px 14px;border-radius:10px;background:var(--amber-bg);color:var(--amber);font-weight:600}
.floor-tabs{display:flex;gap:6px}
.maint-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px}
.maint-machine h2{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:20px}
.maint-task{border-top:1px solid #e3e8ec;padding:10px 0}
.maint-task.is-due{border-left:4px solid var(--amber);padding-left:10px}
.maint-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.maint-head .pill{margin-left:auto}
.maint-form{display:flex;gap:8px;margin-top:6px}
.maint-form input{flex:1;min-width:0}
.maint-form button{min-width:90px}
.run-fix-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.run-fix-line{display:grid;grid-template-columns:minmax(0,2fr) auto minmax(90px,120px) minmax(0,2fr) auto;gap:8px;align-items:center;padding:8px 0;border-top:1px solid #e3e8ec}
.run-fix-line label.sr{display:block;font-size:0}
.run-fix-line label.sr input{font-size:16px;width:100%}
@media (max-width:760px){.run-fix-line{grid-template-columns:1fr 1fr}.run-fix-what{grid-column:1/-1}}
.logo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
@media (max-width:820px){.logo-grid{grid-template-columns:1fr}}
.logo-grid .facts{grid-template-columns:150px 1fr}
dl.facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:0}
dl.facts dt{color:var(--muted);font-weight:600}
dl.facts dd{margin:0}
ul.plain{list-style:none;padding:0;margin:0}
ul.plain li{padding:3px 0}
.new-logo .grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}
.new-logo .span2{grid-column:1/-1}
.new-logo input{width:100%}
.code-input{font-weight:700;font-size:20px;text-transform:uppercase}
.suggest{display:flex;flex-direction:column;gap:2px;margin-top:6px}
button.link{background:none;border:0;padding:0;color:var(--blue);text-decoration:underline;font-size:inherit;cursor:pointer;min-height:0}
@media (max-width:700px){.new-logo .grid2{grid-template-columns:1fr}}
.logo-files{display:grid;grid-template-columns:minmax(160px,320px) 1fr;gap:16px;align-items:start}
.logo-picture img{width:100%;height:auto;border:1px solid var(--line,#ddd);border-radius:6px;background:#fff}
.no-picture{display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;border:1px dashed var(--line,#ccc);border-radius:6px}
@media (max-width:700px){.logo-files{grid-template-columns:1fr}}
.archive-note{margin:.25rem 0 .75rem;display:flex;flex-direction:column;gap:4px}
.path-copy{width:100%;font-family:ui-monospace,Consolas,monospace;font-size:.85em;background:transparent;border:1px solid var(--line,#ccc);border-radius:4px;padding:3px 6px}
.cust-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:space-between}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:12px 0 14px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.stat span{display:block;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.stat strong{display:block;font-size:22px;margin-top:2px}
.stat em{display:block;font-style:normal;font-size:12px;color:var(--muted)}
.stat em.up{color:#14633a}.stat em.down{color:var(--red)}
.note{border-top:1px solid var(--line);padding:8px 0}
.pre{white-space:pre-wrap}
.contact{padding:6px 0;border-top:1px solid var(--line)}
details.order{border-top:1px solid var(--line);padding:6px 0}
details.order summary{cursor:pointer;display:flex;gap:12px;flex-wrap:wrap;align-items:center}
details.order summary .oname{flex:1 1 200px;color:var(--muted)}
textarea{width:100%;font:inherit}
.file-list{display:grid;gap:10px;margin:10px 0}
.file{display:flex;gap:12px;align-items:flex-start;border-top:1px solid var(--line);padding-top:10px}
.file .thumb{flex:0 0 96px;height:72px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff;text-decoration:none}
.file .thumb img{max-width:100%;max-height:100%;object-fit:contain}
.file .thumb .ext{font-weight:700;color:var(--muted);font-size:14px}
.file .meta{flex:1;min-width:0}
form.upload{border-top:1px solid var(--line);margin-top:12px;padding-top:6px}
details.sec > summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px}
details.sec > summary::-webkit-details-marker{display:none}
details.sec > summary h2{margin:0;flex:1}
details.sec > summary::before{content:"▸";color:var(--muted);font-size:18px;transition:transform .15s}
details.sec[open] > summary::before{transform:rotate(90deg)}
details.sec[open] > summary{margin-bottom:10px}
.cust-search{display:flex;gap:8px;align-items:center;flex-wrap:wrap;position:sticky;top:0;z-index:5}
.cust-search input{flex:1 1 320px}
td .up{color:#14633a}td .down{color:var(--red)}
svg.chart{width:100%;height:auto;display:block;margin:4px 0 8px}
svg.chart path:hover,svg.chart rect:hover{opacity:.8}
.chart-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin:2px 0 4px}
.chart-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.acct-filters > div{flex:0 1 180px}
.card.blocking{border:2px solid var(--red);background:var(--red-bg)}.card.blocking h2{color:var(--red)}
.flash.start-msg{margin:10px 0;font-weight:600}
.status.pchip{font-size:11px;padding:2px 8px;margin-top:4px}.status.pchip.none{background:#fff;border:1px dashed var(--line);color:var(--muted)}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
tr.total td{border-top:2px solid var(--line);background:#f7f9fa}
.supplier-group .group-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.size-inputs{display:flex;flex-wrap:wrap;gap:8px}.size-box{display:flex;align-items:center;gap:4px;font-weight:600}

/* Ready gate on the Status board (07-11-2026) */
.ready-cell { min-width: 190px; }
.ready-cell details { margin: .2rem 0; }
.ready-cell summary { cursor: pointer; color: var(--link, #0a6a3c); }
.stock-form { display: grid; gap: .25rem; margin: .3rem 0; max-width: 260px; }
.stock-form input[type=file] { font-size: .8rem; }
.small-btn { padding: .15rem .5rem; font-size: .8rem; }

/* Re-order job sheets (07-11-2026) */
.reorder-lines input, .reorder-lines textarea { min-width: 64px; width: 100%; box-sizing: border-box; }
.reorder-lines table { table-layout: auto; }
.reorder-lines th, .reorder-lines td { padding-left: 4px; padding-right: 4px; }
.reorder-lines .qty-in { width: 72px; min-width: 64px; text-align: right; }
.reorder-lines .c-line { min-width: 220px; }
.reorder-lines .c-line textarea { min-height: 2.6em; resize: vertical; font: inherit; line-height: 1.3; padding: 6px 8px;
  border: 1px solid var(--line, #d0d5dd); border-radius: 8px; background: #fff; color: inherit; }
.reorder-lines .c-sizes { min-width: 120px; }
.reorder-lines td { vertical-align: top; }
.proc-ticks { display: flex; gap: 18px; flex-wrap: wrap; margin-top: 6px; }
.proc-ticks .tick { display: inline-flex; align-items: center; gap: 6px; font-weight: 500; width: auto; }
.proc-ticks .tick input { width: auto; margin: 0; }
.reorder-lines tr.flagged td { background: #fff8e6; }

/* Status board layout (Cal, 07-11-2026): narrower names, room for the Ready gate */
.status-table .col-client { max-width: 130px; }
.status-table .col-name { max-width: 240px; }
.status-table .nowrap, .pill { white-space: nowrap; }
.ready-cell { min-width: 190px; }
.ready-cell.art-gate { min-width: 0; margin-top: .35rem; }
.ready-cell .gate { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; margin: .15rem 0; }
.ready-cell .inline-form { display: inline; margin: 0; }
.ready-cell .gate-more { display: inline-block; }
.ready-cell .gate-more > summary { list-style: none; cursor: pointer; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.ready-cell .gate-more > summary::-webkit-details-marker { display: none; }
.ready-cell .gate-more[open] > summary { background: #f2f5f7; }
.ready-cell .gate-more[open] { display: block; flex-basis: 100%; }
.ready-cell button.small-btn, .ready-cell .gate-more > summary.small-btn { min-height: 0; padding: 2px 9px; font-size: 12px; font-weight: 600; line-height: 1.5; background: #fff; color: var(--green-dark); border: 1px solid var(--line); border-radius: 8px; }
.ready-cell button.small-btn:hover, .ready-cell .gate-more > summary.small-btn:hover { background: var(--ok-bg); }
.ready-cell .stock-note { white-space: pre-line; }
.stock-form .inline button { min-height: 34px; padding: 0 12px; }
.notes-cell { min-width: 110px; max-width: 150px; }
.notes-cell .pill { white-space: normal; display: inline-block; margin-bottom: 2px; }
.art-tick { margin: 0; }
.art-tick label { display: inline-flex; align-items: center; gap: .35rem; font-weight: 600; cursor: pointer; margin: 0; }
.art-tick input[type=checkbox] { width: 16px; height: 16px; accent-color: var(--green); }
.art-tick { display: flex; flex-wrap: wrap; align-items: center; gap: .1rem .4rem; }
.art-tick label { white-space: nowrap; }
.notes-cell .pill { border-radius: 8px; }

/* Customer portal (Cal, 08-11-2026) */
.portal-foot { text-align: center; color: var(--muted, #6b7785); font-size: 12px; padding: 24px 16px; }
.setup-code .code-big { font: 700 28px/1.2 ui-monospace, Menlo, Consolas, monospace; letter-spacing: .08em; margin: .3rem 0; }
.search-row input { min-width: min(420px, 100%); }
.stage-track { list-style: none; display: flex; flex-wrap: wrap; gap: 4px; padding: 0; margin: .5rem 0 1rem; }
.stage-track li { padding: 4px 10px; border-radius: 999px; background: #eef1f4; color: #6b7785; font-size: 13px; }
.stage-track li.done { background: var(--ok-bg, #e5f4ea); color: var(--green-dark, #1d6b3a); }
.stage-track li.now { background: var(--green, #2e8b57); color: #fff; font-weight: 600; }
.tile-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; }
.logo-tile img { width: 100%; height: 150px; object-fit: contain; background: #fff; }
.logo-tile .no-pic { height: 150px; display: grid; place-items: center; background: #f4f6f8; color: #8a96a3; font-size: 13px; }
.logo-tile .code { font-weight: 700; margin-top: .4rem; }
.badge { display: inline-block; min-width: 18px; padding: 0 5px; border-radius: 9px; background: #c0392b; color: #fff; font-size: 11px; font-weight: 700; text-align: center; line-height: 18px; }
.ready-by { margin: .8rem 0; padding: .6rem .8rem; background: #f4f7f5; border-radius: 8px; }
.urgent-tick { display: flex; align-items: flex-start; gap: .5rem; font-weight: 600; margin: 0; cursor: pointer; }
.urgent-tick input { width: 18px; height: 18px; margin-top: 2px; flex: none; }
th .th-note { font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--muted, #6b7785); }
#lines select, #lines input { min-width: 0; }
#lines td { vertical-align: top; }
#lines .logo-pick { min-width: 200px; }
#lines .pos-other { margin-top: 4px; }
.names-box { margin: 1rem 0; padding: .8rem; border: 1px dashed var(--line, #d8dee4); border-radius: 10px; }
.names-box h2 { font-size: 17px; margin-top: 0; }
#names .nl-line { min-width: 260px; }
#names .num-in { width: 6em; }
#names .size-in { width: 5em; }
.name-method { border: 0; padding: 0; margin: .6rem 0 0; }
.name-method legend { font-weight: 600; margin-bottom: .3rem; }
.name-method label { display: flex; align-items: center; justify-content: flex-start; gap: .5rem; margin: .25rem 0; font-weight: 400; width: auto; }
.name-method input[type=radio] { width: 16px; height: 16px; min-height: 0; margin: 0; flex: none; accent-color: var(--green, #2e8b57); }
#lines .pos-pick { min-width: 130px; }
/* Logo Sheet (09-11-2026) */
.ls-colourways{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin:.5rem 0 1rem}
.ls-colourway{border:1px solid var(--line,#ddd);border-radius:6px;padding:8px 12px}
.ls-on{margin-bottom:4px}
.ls-threads{margin:0;padding-left:1.4em}
.ls-threads li{padding:2px 0}
.ls-madeira{font-family:ui-monospace,Consolas,monospace;font-size:.85em;color:var(--muted,#666)}
.ls-places{margin:.25rem 0 .75rem;padding-left:1.2em}
.ls-colourways.big,.ls-places.big{font-size:1.2em}
.ls-edit textarea{width:100%;font-family:ui-monospace,Consolas,monospace}
.ls-link,.floor .ls-link{margin-top:8px;display:inline-flex;align-items:center;justify-content:center;min-height:0;height:auto;padding:8px 16px;font-size:1rem;line-height:1.2;width:auto}
.logo-sheet-floor .ls-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-start}
.ls-name{font-size:1.3em;font-weight:600}
.ls-facts{display:flex;gap:16px;flex-wrap:wrap;margin-top:6px}
.ls-facts em{font-style:normal;color:var(--muted,#666);margin-right:4px}
.ls-barcode{text-align:center;background:#fff;padding:6px;border-radius:6px}
.ls-barcode svg{max-width:100%;height:auto}
.ls-main{display:grid;grid-template-columns:minmax(200px,420px) 1fr;gap:20px;margin-top:12px;align-items:start}
.ls-picture img{width:100%;height:auto;border:1px solid var(--line,#ddd);border-radius:6px;background:#fff}
@media (max-width:760px){.ls-main{grid-template-columns:1fr}}
/* Samples (09-11-2026) */
.sample-form,.sample-finish{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.sample-form label,.sample-finish label{flex:1 1 220px}
.sample-panel .run-head{background:var(--warn-bg,#fff4d6)}
.name-search{margin:0 0 .75rem}.name-search input[type=search]{width:100%;max-width:520px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.logo-pick{min-width:240px}.logo-pick.bad{border-color:#c0392b}.logo-group{margin-top:1.25rem}
.dormant-form{margin-top:1rem;border-top:1px solid var(--line,#e3e6ea);padding-top:.75rem}.dormant-form .tick{display:flex !important;gap:8px;align-items:center;white-space:nowrap;width:auto}.dormant-form .tick input{width:auto}.dormant-more{margin:.5rem 0}.dormant-note{border-left:4px solid #e0a100}
.dormant-warn{margin-top:6px;padding:6px 10px;border-radius:6px;background:#fff4d6;color:#7a4b00;font-weight:600}
/* Jaedon order portal (11-11-2026) */
.wrap.wide{max-width:1400px}
.jb-new{display:flex;gap:10px;flex-wrap:wrap}
.jb-filter{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 .75rem}
.jb-filter input[type=search]{flex:1 1 320px;max-width:520px}
.jb-filter select,.jb-filter input[type=month]{width:auto}
.jb-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
.jb-col{background:var(--panel,#f3f5f7);border-radius:10px;padding:10px}
.jb-col h2{font-size:1.05rem;margin:.2rem .2rem .6rem}
.jb-card{background:#fff;border:1px solid var(--line,#e3e6ea);border-radius:8px;padding:10px 12px;margin-bottom:10px}
.jb-card.urgent{border-left:6px solid #c0392b;background:#fff6f5}
.jb-top{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.jb-ref{font-size:1.15rem;font-weight:700;margin-right:4px}
.jb-cust{font-weight:600;margin-top:2px}
.jb-what{margin:2px 0}
.jb-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:6px}
.jb-move{display:inline}
.jb-head{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;align-items:end;margin-bottom:.75rem}
.jb-urgent .tick{display:inline-flex;gap:6px;align-items:center;color:#c0392b}
.jb-urgent .tick input,.jb-methods .tick input,.confirm-dup input{width:auto}
.jb-urgent .small{display:block}
.jb-methods{border:0;padding:0;margin:0 0 .75rem;display:flex;gap:18px;flex-wrap:wrap}
.jb-methods .tick{display:inline-flex;gap:6px;align-items:center}
.pic-cell{width:56px}.logo-pic{width:52px;height:52px;object-fit:contain;background:#fff;border:1px solid var(--line,#e3e6ea);border-radius:4px}
.confirm-dup{display:flex;gap:8px;align-items:center;margin:.4rem 0}
.paste{margin:.5rem 0 1rem}
.badge.urgent{background:#c0392b}
tr.total td{font-weight:700;border-top:2px solid var(--line,#ccd)}
@media (max-width:900px){.jb-board{grid-template-columns:1fr}}
/* Jaedon names: paste box under a garment line, names table + copy/print on the order */
.jn-box { display: grid; grid-template-columns: minmax(280px, 1fr) minmax(260px, 1fr); gap: 1rem; padding: .6rem .2rem .9rem; }
.jn-box textarea { width: 100%; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 14px; tab-size: 18; }
.jn-preview { max-height: 260px; overflow: auto; }
.jn-preview table { width: 100%; }
.warn-text { color: var(--red, #b42318); font-weight: 600; }
.jn-names { margin: .2rem 0 .8rem; }
.jn-names .jn-tools { display: flex; gap: .5rem; align-items: center; margin: .4rem 0; }
.jn-names table { max-width: 640px; }
@media (max-width: 760px) { .jn-box { grid-template-columns: 1fr; } }
td.jb-line-urgent { text-align: center; }
td.jb-line-urgent input { width: 20px; height: 20px; accent-color: var(--red, #b42318); }
tr.jb-urgent-line td { background: #fdecea; }
/* New order / + Add a line */
#added-lines select.a-type { min-width: 13.5rem; }
#added-lines input.a-code { min-width: 9rem; }
.logo-grid.one{grid-template-columns:1fr}
/* Floor line search (Cal, 12-11-2026) */
.line-hits mark { background: #fde68a; color: inherit; padding: 0 1px; border-radius: 2px; }
.line-hits td.code { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 1.05em; }
section.group.line-hl { outline: 3px solid #f59e0b; outline-offset: 2px; background: #fffbeb; scroll-margin-top: 90px; }
/* Performance (Cal, 12-11-2026) */
.perf-tabs { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1rem; }
.perf-up { color: #067647; font-weight: 600; }
.perf-down { color: #b42318; font-weight: 600; }
tr.flag-row td { background: #fffaeb; }
.verdict { padding: .7rem 1rem; border-radius: 10px; margin: .4rem 0 .8rem; display: flex; flex-direction: column; gap: .2rem; }
.verdict strong:first-child { font-size: 1.3rem; }
.v-on-track { background: #ecfdf3; color: #05603a; }
.v-close { background: #fffaeb; color: #93370d; }
.v-behind { background: #fef3f2; color: #912018; }
.v-not-enough-shifts { background: #f2f4f7; color: #344054; }
.tc-chart { margin: .5rem 0; }
.tc-chart svg { width: 100%; max-width: 760px; height: auto; display: block; }
.tc-chart .grid { stroke: #e5e7eb; stroke-width: 1; }
.tc-chart .ax { font: 12px system-ui, sans-serif; fill: #475467; }
.tc-chart .val { font: 600 12px system-ui, sans-serif; fill: #101828; paint-order: stroke; stroke: #fff; stroke-width: 3px; }
.tc-chart .bar { fill: #2563eb; }
.tc-chart .bar.part { fill: #98a2b3; }
.tc-chart .bar.check { fill: #f79009; }
.tc-chart .target { stroke: #101828; stroke-width: 2; stroke-dasharray: 6 4; }
.stat strong span { display: inline; font-size: inherit; text-transform: none; letter-spacing: 0; color: inherit; }
.stat strong .perf-up { color: #067647; }
.stat strong .perf-down { color: #b42318; }
tr.flag-row .pill { white-space: normal; }
/* Searchable select for logo and charge codes (Cal, 12-11-2026) */
.pick-cell .a-code-show { min-width: 9rem; }
.pick-panel { position: fixed; z-index: 50; max-height: 340px; overflow-y: auto; background: #fff; border: 1px solid #d0d5dd;
  border-radius: 10px; box-shadow: 0 10px 30px rgba(16, 24, 40, .18); padding: 4px; }
.pick-opt { display: grid; grid-template-columns: 48px 6.5rem 1fr auto; align-items: center; gap: 10px; padding: 6px 8px;
  border-radius: 8px; cursor: pointer; font-size: 14px; }
.pick-opt:not(:has(img, .pick-nopic)) { grid-template-columns: 6.5rem 1fr auto; }
.pick-opt.on, .pick-opt:hover { background: #eef4ff; }
.pick-opt img { width: 48px; height: 36px; object-fit: contain; background: #f8f9fb; border-radius: 4px; }
.pick-nopic { width: 48px; height: 36px; display: grid; place-items: center; font-size: 9px; color: #98a2b3;
  background: #f2f4f7; border-radius: 4px; text-align: center; line-height: 1.1; }
.pick-code { font-weight: 700; font-family: ui-monospace, monospace; }
.pick-name { color: #344054; }
.pick-price { color: #475467; font-variant-numeric: tabular-nums; }
.pick-none { padding: 10px; color: #667085; font-size: 14px; }
.pick-head { padding: 8px 8px 4px; font-size: 12px; font-weight: 700; color: #667085; text-transform: uppercase;
  letter-spacing: .03em; border-top: 1px solid #eaecf0; margin-top: 4px; }
.pick-name small { display: block; color: #667085; font-size: 12px; }
