:root{--bg:#f4f6f5;--card:#fff;--ink:#1b2a22;--muted:#5f6f66;--line:#d9e0dc;--brand:#1f6f4a;--brand2:#2e8b5e;
 --green:#3f8f46;--orange:#d88a2c;--red:#c93b3b;--grey:#8a9590;--amber:#f2c14e;--rowalt:#f7faf8}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.4 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
header#top{background:var(--brand);color:#fff;display:flex;align-items:center;gap:12px;padding:8px 14px;flex-wrap:wrap;position:sticky;top:0;z-index:5}
.brand{display:flex;align-items:center;gap:8px;font-size:17px}.brand b{font-weight:700}
.logo{background:#fff;color:var(--brand);font-weight:800;border-radius:6px;padding:2px 6px;font-size:13px}
/* top bar + home screen (29 Oct 2026): the app opens on tiles; in a section the bar shows Home + the section's name */
button.brand{background:none;border:none;color:inherit;padding:0;cursor:pointer}
nav#tabs{display:flex;align-items:center;gap:14px;margin-left:10px;min-width:0}
#homeBtn{display:flex;align-items:center;gap:6px;background:#fff;color:var(--brand);border:none;border-radius:8px;padding:6px 14px 6px 10px;font-size:15px;font-weight:700;cursor:pointer}
#homeBtn .ico{width:20px;height:20px}
#here{display:flex;align-items:center;gap:7px;font-size:17px;font-weight:700;white-space:nowrap}
#here .ico{width:22px;height:22px;opacity:.9}
header#top:not(.insection) nav#tabs{display:none}
.home{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:6px 0 4px}
.tile{position:relative;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px 12px 16px;text-align:center;cursor:pointer;color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.05)}
.tile:hover{border-color:var(--brand2);background:#fbfdfc}
.tile:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
.tileico{display:block;width:64px;height:64px;margin:0 auto 10px;border-radius:50%;background:#e6f2eb;color:var(--brand);padding:15px}
.tileico .ico{display:block;width:34px;height:34px}
.tilename{display:block;font-size:18px;font-weight:700;color:var(--brand)}
.tilenote{display:block;font-size:13px;color:var(--muted);margin-top:3px}
.tilebadge{position:absolute;top:10px;right:10px;background:#d6246e;color:#fff;border-radius:999px;min-width:24px;padding:0 7px;font-size:13px;font-weight:700;line-height:24px}
h2.homehead{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:22px 0 8px}
@media (max-width:900px){.home{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){
  .home{grid-template-columns:repeat(2,1fr);gap:10px}
  .tile{padding:14px 8px 12px}.tileico{width:52px;height:52px;padding:12px;margin-bottom:8px}.tileico .ico{width:28px;height:28px}
  .tilename{font-size:16px}.tilenote{font-size:12px}
  header#top.insection .brand>span:last-child{display:none}
  nav#tabs{margin-left:0;gap:10px}#here{font-size:16px}
}
#who{margin-left:auto;font-size:13px;color:#e6f2ea}
button.link{background:none;border:none;color:inherit;text-decoration:underline;cursor:pointer;font-size:inherit;padding:0 4px}
main{max-width:1180px;margin:0 auto;padding:12px 14px 40px}
section#login,section#inactive{max-width:420px;margin:40px auto;background:var(--card);padding:22px;border-radius:10px;box-shadow:0 1px 3px rgba(0,0,0,.08)}
h1{font-size:22px;margin:0 0 10px}h2{font-size:18px;margin:18px 0 8px}h3{font-size:15px;margin:12px 0 6px}
label{display:block;margin:8px 0 4px;font-size:14px}
input,select,textarea{font:inherit;padding:8px;border:1px solid var(--line);border-radius:6px;width:100%;background:#fff}
input[type=number]{text-align:right}
button{font:inherit}
button.primary{background:var(--brand2);color:#fff;border:none;border-radius:8px;padding:10px 16px;font-weight:600;cursor:pointer;margin-top:10px}
button.primary:disabled{opacity:.5;cursor:default}
button.secondary{background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:9px 14px;cursor:pointer;margin-top:10px}
button.danger{background:#fff;color:var(--red);border:1px solid var(--red);border-radius:8px;padding:9px 14px;cursor:pointer;margin-top:10px}
button.small{padding:5px 9px;font-size:13px;margin-top:0}
.muted{color:var(--muted)}.small{font-size:12.5px}.err{color:var(--red);font-weight:600}
.card{background:var(--card);border-radius:10px;padding:12px 14px;margin:10px 0;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 4px}
.chip{background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:13.5px}
.chip b{font-size:15px}
.chip.bad{border-color:var(--red);color:var(--red)}.chip.good{border-color:var(--green);color:var(--green)}
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%;font-size:14px;background:#fff}
th,td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
th:first-child,td:first-child{text-align:left}
thead th{background:#eef3f0;font-weight:600;position:sticky;top:0}
tr.fam td{background:#e8efeb;font-weight:700;text-align:left;color:var(--brand)}
tr.tot td{font-weight:700;background:#f1f5f2}
td.neg{color:var(--red);font-weight:700}td.free{font-weight:700}
td.dim{color:var(--muted)}
.pill{display:inline-block;padding:2px 9px;border-radius:999px;color:#fff;font-size:12.5px;font-weight:600;text-transform:capitalize}
.pill.provisional{background:var(--green)}.pill.confirmed{background:var(--orange)}.pill.dispatched{background:var(--red)}.pill.cancelled{background:var(--grey)}
.pill.short{background:var(--red)}.pill.ok{background:var(--green)}.pill.draft{background:var(--amber);color:#3b2f00}.pill.accepted{background:var(--brand2)}
.next{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;padding:4px 0 8px;align-items:start}
.nextmonth{margin:10px 0 2px;font-weight:700;font-size:15px;border-bottom:2px solid var(--line);padding-bottom:3px}
.next .n .away{font-weight:400;font-size:12px;color:var(--muted)}.next .n .who{font-weight:600}
.next .n{min-width:0;background:#fff;border:1px solid var(--line);border-left:5px solid var(--green);border-radius:8px;padding:8px 10px;font-size:13.5px;cursor:pointer}
.next .n.confirmed{border-left-color:var(--orange)}.next .n.short{background:#fff4f4}
.next .n .d{font-weight:700}
.next .n .lvh{margin-top:5px;padding-top:4px;border-top:1px dashed var(--line);font-size:12px;color:var(--muted)}
.next .n .lv{display:flex;justify-content:space-between;gap:8px;font-size:12.5px}.next .n .lv b.neg,.qtygrid .left b.neg{color:var(--red)}
.qtygrid .left{color:var(--brand)}
.list .row{display:grid;grid-template-columns:auto 1fr auto;gap:8px 12px;align-items:center;padding:9px 6px;border-bottom:1px solid var(--line);cursor:pointer}
.list .row:hover{background:var(--rowalt)}
.list .row .t{font-weight:600}.list .row .s{font-size:13px;color:var(--muted)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}
@media (max-width:560px){.grid2{grid-template-columns:1fr}}
.qtygrid{display:grid;grid-template-columns:1fr 92px;gap:4px 10px;align-items:center;margin-top:8px}
.qtygrid .fam{grid-column:1/-1;font-weight:700;color:var(--brand);margin-top:6px}
.check{margin-top:10px;padding:10px;border-radius:8px;background:#eef8f0;border:1px solid #bfe3c8}
.check.short{background:#fff2f2;border-color:#f0b9b9}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:flex-start;justify-content:center;padding:20px 10px;overflow:auto;z-index:20}
.modal-card{background:#fff;border-radius:12px;padding:16px;width:100%;max-width:640px;box-shadow:0 8px 30px rgba(0,0,0,.25)}
.modal-card .actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:20px;background:#1b2a22;color:#fff;padding:10px 16px;border-radius:8px;z-index:30;max-width:90vw}
.toast.err{background:var(--red)}
.countgrid{display:grid;grid-template-columns:1fr 1.6fr 70px 90px 70px 80px;gap:4px 8px;align-items:center}
.countgrid .h{font-weight:600;font-size:12.5px;color:var(--muted)}
.countgrid .fam{grid-column:1/-1;font-weight:700;color:var(--brand);margin-top:6px}
.countgrid .r{text-align:right}
.countgrid input.stacks{font-family:ui-monospace,Menlo,Consolas,monospace}
.countgrid input.bad{border-color:var(--red);background:#fff4f4}
@media (max-width:640px){.countgrid{grid-template-columns:1fr 1.4fr 60px 80px 70px}.countgrid .pal{display:none}}
.cmp td.up{color:var(--green)}.cmp td.down{color:var(--red)}
.log .row{grid-template-columns:110px 1fr}
footer{max-width:1180px;margin:20px auto;padding:0 14px}
@media print{header#top,nav,footer,button{display:none!important}main{padding:0}}
.tag{display:inline-block;background:#e8efeb;color:var(--brand);border-radius:4px;padding:0 6px;font-weight:600}
label.tick{display:flex;align-items:center;gap:8px}label.tick input{width:auto}
.attach{margin-top:8px;padding:8px 10px;border:1px dashed var(--line);border-radius:8px;font-size:14px}
td.cure{color:#b06a00;font-weight:600}.chip.cure{border-color:#e0a83a;color:#b06a00}
td.res{color:#2a5d8f;font-weight:600}.chip.res{border-color:#2a5d8f;color:#2a5d8f}
.avail{margin:8px 0;padding:8px 10px;border-radius:8px;background:#eef8f0;border:1px solid #bfe3c8;font-size:14px}.avail.over{background:#fff4e5;border-color:#f2d68a}
.avail[hidden]{display:none}
details.file{border:1px solid var(--line);border-radius:8px;padding:6px 10px;margin:6px 0;background:#fff}details.file>summary{cursor:pointer;padding:4px 0;list-style:none;display:flex;flex-wrap:wrap;gap:6px;align-items:center}details.file>summary::before{content:'▸';color:var(--muted)}details.file[open]>summary::before{content:'▾'}details.file table{margin-top:6px;font-size:13.5px}
.bactions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:8px 0 4px}.bactions .bform{flex-basis:100%;background:#f7faf8;border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin-top:4px}
#trialBar{background:#fff3c4;color:#5a4300;border-bottom:2px solid #e0a83a;padding:6px 14px;font-size:14px;text-align:center}#trialBar a.link{color:inherit}
tr.editrow td{white-space:normal;background:#f7faf8;padding:10px 12px}
.editgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px 12px;align-items:end}
.editgrid label{display:block;margin:0;font-size:13px;color:var(--muted)}
.editgrid label input{display:block;width:100%;margin-top:3px;text-align:left;color:var(--ink)}
.editactions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}.editactions button{margin-top:0}
/* Calendar tab (16 Oct 2026) */
.calhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.calhead h2{margin:8px 4px;min-width:150px;text-align:center}
.calgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-top:8px}
.calgrid .cwd{font-size:12.5px;font-weight:600;color:var(--muted);text-align:center;padding:2px 0}
.cday{background:#fff;border:1px solid var(--line);border-radius:8px;min-height:92px;padding:4px 5px;display:flex;flex-direction:column;gap:3px;min-width:0}
.cday.blank{background:transparent;border-color:transparent}.cday.wkend{background:#f8faf9}
.cday.today{border:2px solid var(--brand)}.cday.today .cnum{color:var(--brand)}
.cday .cnum{font-size:12.5px;font-weight:700;color:var(--muted)}
.cchip{display:block;width:100%;text-align:left;border:1px solid var(--line);border-left:4px solid var(--green);border-radius:6px;padding:3px 6px;font-size:12px;line-height:1.25;background:#eef8f0;color:var(--ink);cursor:pointer;margin:0}
.cchip:hover{filter:brightness(.96)}
.cchip .cn{display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cchip .cb{display:block;color:var(--muted)}
.cchip.short{background:#fff0f0;border-color:#f0b9b9;border-left-color:var(--red)}.cchip.short .cb{color:var(--red);font-weight:600}
.cchip.sent{background:#f1f3f2;border-left-color:var(--grey);color:var(--muted)}
.cchip.late{border-style:dashed;border-left-style:solid;border-color:#e0a83a}
.legend{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}.legend .cchip{display:inline-block;width:auto;cursor:default}
.undated{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px}
.agenda{display:none}
.agenda .aday{display:grid;grid-template-columns:96px 1fr;gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}.agenda .aday:last-child{border-bottom:none}
.agenda .aday .ad{font-weight:700;font-size:13.5px}.agenda .aday.today .ad{color:var(--brand)}.agenda .aday .cchip{margin-bottom:4px}
/* phones: the full month grid (Marius, 20 Oct 2026) with small chips, and the day-by-day list underneath */
@media (max-width:700px){.calgrid{gap:2px}.calgrid .cwd{font-size:11px}
  .cday{min-height:58px;padding:2px;border-radius:6px;gap:2px}.cday .cnum{font-size:11px}.cday .cnum .muted{display:none}
  .calgrid .cchip{font-size:9.5px;line-height:1.2;padding:1px 2px;border-left-width:3px;border-radius:4px}
  .calgrid .cchip .cb,.calgrid .cchip .cx{display:none}.calgrid .newtag{display:none}
  .agenda{display:block;margin-top:10px}}

/* NEW / CHANGED badge (per person) and collection day — 18 Oct 2026 */
#newBar{background:#fde7f0;color:#6d0f36;border:2px solid #d6246e;border-radius:8px;padding:8px 12px;margin:8px 0;font-size:14.5px}
#newBar button{margin-left:6px}
.newtag{display:inline-block;background:#d6246e;color:#fff;border-radius:4px;padding:0 6px;font-size:11.5px;font-weight:700;letter-spacing:.3px;vertical-align:1px}
.tabbadge{display:inline-block;background:#d6246e;color:#fff;border-radius:999px;min-width:18px;padding:0 5px;font-size:11.5px;font-weight:700;line-height:18px;text-align:center}
.nocoll{display:inline-block;background:#fff0f0;color:var(--red);border:1px solid #f0b9b9;border-radius:4px;padding:0 6px;font-weight:700}
.check.nocollbox{background:#fff0f0;border-color:#f0b9b9;color:#7a1b1b}
.cchip .cx{display:block;color:var(--muted)}.cchip .cx.bad{color:var(--red);font-weight:700}
.cchip.nocollect{box-shadow:inset 0 0 0 1px #f0b9b9}
.cchip.collect{background:#eaf2fd;border-color:#bcd3f2;border-left-color:#2f6fd0}
.next .nocoll{font-size:11.5px;font-weight:700}

/* delivery form: only the blocks on the order until "Update order" is pressed */
.qtygrid:not(.all) .qoff{display:none}
h3.qhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap}h3.qhead button{font-size:13px}
.agenda .aday.flash{background:#fff8e6}
/* loading records from the yard iPad (ipad.html) */
.loadrec{background:#e3eefa;border:1px solid #b9d3ee;border-radius:8px;padding:8px 10px;margin:10px 0;color:#1d3550}
.loadpics{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.loadpics img{width:110px;height:110px;object-fit:cover;border-radius:6px;background:#cfdbe6;display:block}
.loadpics .sig img{width:200px;object-fit:contain;background:#fff;border:1px solid #b9d3ee}
.tag.loadedtag{background:#e3eefa;color:#1d4f80}
.loadrec.ready{background:#e6f2ea;border-color:#b7d9c4;color:#1b3a2a}
.tag.readytag{background:#e6f2ea;color:#1f6f4a}

/* yard record: admin change / delete (019) */
.loadtools{float:right;margin:0 0 4px 8px}
.loadtools button{padding:4px 8px;font-size:13px}
.loadedit{margin-top:6px}
.loadedit label{display:block;margin:4px 0;font-size:14px}
.loadedit label.inl{display:inline-block;margin-right:10px}
.loadedit input:not([type=checkbox]){width:100%;max-width:360px}
.loadedit button{margin-top:6px}

/* yard record: ticks by pallet (full pallets per product, then the mixed pallet) */
.tickrows{margin:4px 0}
.tickrows div{margin:1px 0}
.loadedit{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;align-items:center}
.loadedit>label{display:contents;font-size:14px}
.loadedit>label input{max-width:360px}
.loadedit .letick,.loadedit .photosel,.loadedit>div{grid-column:1 / -1}
.letick label{display:flex;gap:8px;align-items:flex-start;padding:6px 8px;margin:4px 0;border:1px solid #c9d6ea;border-radius:6px;background:#fff;font-size:14px;cursor:pointer}
.letick label.mix{border-color:#e3c46a;background:#fff8e1}
.letick label.miss{border-color:#e7a1a1;background:#fbe0e0}
.letick input{margin-top:2px}
.loadedit input[type=checkbox]{width:auto;min-width:0;flex:none;margin:2px 0 0;padding:0}
.letick label>span{flex:1;text-align:left}
.loadedit label.inl{display:inline-flex;gap:4px;align-items:center;margin-right:12px}
.loadrec.notloaded{background:#fbe0e0;border-color:#e7a1a1}
.loadrec.notloaded.ok{background:#e6f2ea;border-color:#b7d9c4;color:#1b3a2a}
.loadrec.changed{background:#fff1d6;border-color:#e8b75a;color:#4a3200}
.tag.changedtag{background:#fff1d6;color:#8a5a00;font-weight:600}
.letick label.cnt{align-items:center}.letick label.cnt input[type=number]{width:90px;margin:0;flex:none}

/* What runs out, and when (22 Oct 2026) */
.shortbox table td,.shortbox table th{white-space:nowrap}
.shortbox a{color:inherit}
.next .sameday{display:inline-block;font-size:11px;font-weight:600;color:#3b2f00;background:var(--amber);border-radius:8px;padding:0 6px;margin-left:4px}
@media (max-width:600px){.shortbox table td,.shortbox table th{white-space:normal;padding:5px 4px;font-size:12.5px}.shortbox .muted.small{display:block}}

/* Cover plan (23 Oct 2026) */
.cptable table td,.cptable table th{text-align:left;vertical-align:top}
.cptable td.num,.cptable th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.cpt{display:inline-block;font-size:12.5px;font-weight:700;border-radius:8px;padding:0 7px;margin:1px 0}
.cpt.ins{background:#e3f1e6;color:var(--brand)}.cpt.wip{background:#e8eef7;color:#2d4f7c}.cpt.mould{background:#fbe5e5;color:var(--red)}.cpt.soon{background:var(--amber);color:#3b2f00}
.cptable td:last-child{min-width:230px}
.cptable table td{white-space:normal}
.cpcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.cpcards .card{margin:0}
.cpbig{font-size:24px;font-weight:800;margin:2px 0 4px}
.cpyard{margin-top:8px;padding-top:6px;border-top:1px solid var(--line,#e3e6e3)}
.cppieces{border-collapse:collapse;margin:2px 0 4px}.cppieces td{padding:1px 10px 1px 0;border:0;text-align:left}.cppieces td.num{text-align:right}
.cpyard .good{color:#1a7f37;font-weight:700}
@media print{.tab[hidden]{display:none!important}#tab-plan .card{box-shadow:none;border:1px solid var(--line);break-inside:avoid}}

/* Tablet view (admins): the yard iPad page in an iPad-sized frame */
.tabletbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.tabletbtns{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-left:auto}
.tabletbtns button{margin-top:0}
.tabletbtns button.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.tabletwrap{overflow:auto;padding:12px;background:#2b2f2d;border-radius:22px;max-width:100%;box-sizing:border-box;width:max-content}
.tabletframe{display:block;border:0;background:#fff;border-radius:6px}
.tabletframe.land{width:1024px;height:768px}
.tabletframe.port{width:768px;height:1024px}
@media (max-width:1100px){.tabletwrap{width:auto}.tabletframe.land,.tabletframe.port{width:100%;max-width:100%}}

/* Cover plan, clearer (26 Oct 2026) */
.cplorry{padding:8px 0 8px 10px;border-left:4px solid var(--green);margin:0 0 8px}
.cplorry.insulate{border-left-color:var(--orange)}.cplorry.mould{border-left-color:#2d4f7c}.cplorry.late,.cplorry.cant{border-left-color:var(--red)}
.cplorry .cphead{margin-bottom:3px}.cplorry a{color:inherit}
.cplate{color:var(--red);margin-top:3px}
.shortwhat{font-size:12px;color:var(--red);font-weight:600}
.delshort{text-align:right;max-width:240px}
.histbar{align-items:center}
.log .row.hist{grid-template-columns:190px 1fr;align-items:start}.row.hist .s{overflow-wrap:anywhere}
@media (max-width:700px){.log .row.hist{grid-template-columns:1fr}}
.hchanges{margin:4px 0 2px 18px;padding:0}.hchanges li{margin:1px 0}
.hwhy{margin-top:3px;padding:4px 8px;background:#fff8e6;border-radius:6px;display:inline-block}.hwhy.muted{background:none;padding-left:0}
label.reason{display:block;margin-top:10px;background:#fff8e6;border:1px solid #f2d68a;border-radius:8px;padding:8px 10px}
/* paid in full (023, 28 Oct 2026) */
.tag.paidtag{background:#e6f2ea;color:#1f6f4a;font-weight:600}
.tag.paywait{background:#fde4ef;color:#9a1f5a;font-weight:600}
.paywaitbox{background:#fde4ef;border-radius:6px;padding:4px 6px}
/* Diesel tab (28 Oct 2026) */
.dzhead{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:560px){.dzhead{grid-template-columns:1fr}}
.dztank .dzbig{font-size:34px;font-weight:700;line-height:1.2;margin:4px 0}
.dztank .dzbig span{font-size:16px;font-weight:400;color:#666}
.dztank.low{background:#fff2f2;border-color:#f0b9b9}
.dztank.low .dzbig{color:#b42318}

/* Problems & ideas (28 Oct 2026) */
#ideaBtn{background:#f2c14e;color:#3a2a00;border-color:#e0ab2c;font-weight:700;margin-right:6px}
.ideakind{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0}
.ideakind button{flex:1;min-width:180px;padding:10px}
.ideakind button.on{border-color:#2a6fb0;background:#e3eefa;color:#1d4f80;font-weight:700}
.ideapics{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.ideathumb{display:flex;flex-direction:column;gap:4px;font-size:13px;margin:0}
.ideathumb img,.ideapic{width:180px;height:120px;object-fit:cover;object-position:top;border:1px solid #ccd;border-radius:6px;background:#eee}
.ideahead{font-size:14px}
.ideak{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12.5px;font-weight:700;color:#fff;background:#c93b3b}
.ideak.idea{background:#2a6fb0}
.ideast{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12.5px;font-weight:700;background:#e7ecea;color:#3c4b43}
.ideast.new{background:#d6246e;color:#fff}.ideast.planned{background:#e3eefa;color:#1d4f80}.ideast.done{background:#dff1e6;color:#1f6f4a}.ideast.no{background:#eee;color:#777}
.ideanote{font-size:17px;margin:8px 0;white-space:pre-wrap}
.ideascreen{white-space:pre-wrap;font-size:12px;background:#f6f7f7;border-radius:6px;padding:8px;max-height:260px;overflow:auto}
.ideaact{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0 4px}
.ideaact textarea{flex:1;min-width:220px}
.ideaset .on{border-color:#2a6fb0;background:#e3eefa;color:#1d4f80;font-weight:700}
.idmine{border-top:1px solid #e3e8e5;padding:6px 0;font-size:14px}
.idreply{background:#e3f3ea;border-radius:6px;padding:4px 8px;margin-top:4px}
.cutfirst .cpbig{font-size:20px;color:#0b5a3a}
.cutfirst details summary{cursor:pointer;margin:4px 0}
/* Dashboard (admins, 7 Nov 2026): trust checks first, then headline figures, then detail */
.dashhead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.dashhead h1{margin:4px 0 2px}.dashhead p{margin:0}
.trust{padding:14px 16px}
.trusttop{display:flex;gap:16px;align-items:center}
.trusttop h2{margin:0 0 4px}.trusttop p{margin:0}
.score{flex:0 0 auto;width:84px;height:84px;border-radius:50%;display:flex;align-items:baseline;justify-content:center;padding-top:22px;border:6px solid var(--grey)}
.score b{font-size:28px;line-height:1}.score span{font-size:12px;color:var(--muted)}
.score.ok{border-color:var(--green)}.score.warn{border-color:var(--amber)}.score.bad{border-color:var(--red)}
ul.checks{list-style:none;margin:12px 0 0;padding:0}
ul.checks li{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--line)}
ul.checks .lv{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;color:#fff}
ul.checks li.ok .lv{background:var(--green)}ul.checks li.warn .lv{background:var(--amber);color:#3b2f00}ul.checks li.bad .lv{background:var(--red)}
ul.checks .ct{font-weight:600}ul.checks .cd{color:var(--muted);margin-top:2px}
ul.checks .word{display:inline-block;min-width:44px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
ul.checks li.bad .word{color:var(--red)}ul.checks li.warn .word{color:#8a6100}ul.checks li.ok .word{color:var(--green)}
.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:12px 0}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.kpi .kl{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.kpi .kv{font-size:26px;font-weight:700;margin:2px 0;font-variant-numeric:tabular-nums}
.kpi .ks{font-size:12.5px;color:var(--muted)}
.kpi.bad{border-color:var(--red)}.kpi.bad .kv{color:var(--red)}.kpi.good .kv{color:var(--green)}
.dashrun{margin:0 0 6px}
table.dashtable td,table.dashtable th{white-space:nowrap;font-variant-numeric:tabular-nums}
table.dashtable tr[data-id]{cursor:pointer}table.dashtable tr[data-id]:hover td{background:#f3f8f5}
.tagok,.tagbad,.tagwarn{display:inline-block;border-radius:6px;padding:1px 7px;font-size:12px;font-weight:700}
.tagok{background:#e3f3e6;color:#24672b}.tagbad{background:#fde5e5;color:#a02727}.tagwarn{background:#fdf1d4;color:#7a5600}
.dashgrid{gap:0 16px}.dashgrid h2{margin-top:18px}
.legend{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:4px}.legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:5px;vertical-align:-1px}
svg.wkchart{width:100%;height:auto;display:block}
@media (max-width:900px){.kpis{grid-template-columns:repeat(3,1fr)}.dashgrid{grid-template-columns:1fr}}
@media (max-width:560px){.kpis{grid-template-columns:1fr 1fr}.kpi .kv{font-size:22px}ul.checks li{grid-template-columns:28px 1fr}ul.checks li>button{grid-column:2;justify-self:start}.trusttop{align-items:flex-start}.score{width:68px;height:68px;padding-top:16px}.score b{font-size:22px}}
@media print{.dashbtns,ul.checks button{display:none!important}.kpi,.trust{break-inside:avoid}}
.dashgrid>section,.kpis>.kpi{min-width:0}
#tab-dash table.dashtable td,#tab-dash table.dashtable th{text-align:right}
#tab-dash table.dashtable td:first-child,#tab-dash table.dashtable th:first-child,#tab-dash table.dashtable.next14 td:nth-child(2),#tab-dash table.dashtable.next14 th:nth-child(2){text-align:left}
#tab-dash details{overflow-x:auto}
/* delivery note number already used (7 Nov 2026) */
.dnwarn{display:block;margin-top:4px;padding:6px 8px;border-radius:6px;background:#fff0f0;border:1px solid #f0b9b9;color:#7a1b1b;font-weight:normal;line-height:1.35}
