@import url("https://fonts.googleapis.com/css2?family=Lilita+One&family=Nunito:ital,wght@0,400;0,700;0,800;0,900;1,700&family=Space+Mono:wght@400;700&display=swap");:root{--ink:#2b2344;--ink-soft:#5a5273;--cream:#fff6e9;--paper:#ffffff;--coral:#ff5d5d;--yellow:#ffc933;--teal:#2bc6b0;--green:#7ed957;--blue:#5ec8f2;--orange:#f59a3e;--pink:#ff8fd8;--purple:#8b5cf6;--grey:#e9e2d6;--display:"Lilita One",system-ui,sans-serif;--body:"Nunito",system-ui,sans-serif;--mono:"Space Mono",ui-monospace,Menlo,monospace;--shadow:6px 6px 0 var(--ink);--shadow-sm:4px 4px 0 var(--ink);--line:3px solid var(--ink);--radius:16px;--tap:48px;--nav-h:64px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--cream);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.35;-webkit-font-smoothing:antialiased;padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom))}a,button{color:inherit}button{font:inherit;cursor:pointer}h1,h2,h3{font-family:var(--display);font-weight:400;letter-spacing:.01em;margin:0}h1{font-size:28px}h2{font-size:22px}h3{font-size:18px}.mono{font-family:var(--mono);font-size:13px}.muted{color:var(--ink-soft)}.small{font-size:13px}.hide{display:none!important}.shell{max-width:1180px;margin:0 auto;padding:14px 14px 24px}.topbar{display:flex;align-items:center;gap:12px;padding:6px 0 14px}.topbar img{height:40px;width:auto;display:block}.topbar .title{font-family:var(--display);font-size:22px;line-height:1}.topbar .spacer{flex:1 1}.topbar .status{font-size:13px;color:var(--ink-soft);display:flex;align-items:center;gap:6px}.dot{width:10px;height:10px;border-radius:50%;border:2px solid var(--ink);background:var(--green);display:inline-block}.dot.off{background:var(--coral)}.dot.warn{background:var(--yellow)}@media (max-width:520px){.topbar img{height:30px}.topbar .title{font-size:18px;white-space:nowrap}.topbar .status{font-size:11px;white-space:nowrap}}.nav{position:fixed;left:0;right:0;bottom:0;z-index:30;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--paper);border-top:var(--line);display:grid;grid-template-columns:repeat(6,1fr)}.nav a .badge{margin-left:30px}.gantt{border:var(--line);border-radius:14px;background:var(--paper);overflow-x:auto}.gantt .g-head,.gantt .g-row{display:grid;grid-template-columns:150px 1fr;align-items:stretch}.gantt .g-head{border-bottom:2px solid var(--ink);position:-webkit-sticky;position:sticky;top:0;background:var(--paper);z-index:2}.gantt .g-hours{position:relative;height:26px}.gantt .g-hour{position:absolute;top:0;bottom:0;border-left:1px solid var(--grey);font-family:var(--mono);font-size:10px;color:var(--ink-soft);padding-left:3px;white-space:nowrap}.gantt .g-hour.day{border-left:2px solid var(--ink);font-weight:900;color:var(--ink)}.gantt .g-row{border-top:2px solid var(--grey);min-height:54px}.gantt .g-name{padding:8px 10px;display:flex;align-items:center;gap:8px;font-weight:900;font-size:14px;border-right:2px solid var(--ink);background:var(--cream);position:-webkit-sticky;position:sticky;left:0;z-index:1}.gantt .g-name .num{background:var(--yellow);border:2px solid var(--ink);border-radius:6px;padding:0 5px;font-family:var(--display);font-size:13px}.gantt .g-track{position:relative;min-width:720px}.gantt .g-block{position:absolute;top:8px;bottom:8px;border:2px solid var(--ink);border-radius:8px;padding:3px 8px;font-size:12px;font-weight:900;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;box-shadow:2px 2px 0 var(--ink)}.gantt .g-block.now{background:var(--teal)}.gantt .g-block.busy{background:var(--blue)}.gantt .g-block.planned{background:var(--yellow)}.gantt .g-block.planned.pinned{background:var(--orange)}.gantt .g-block.planned.nofil{background:var(--pink)}.gantt .g-block .pct{position:absolute;left:0;top:0;bottom:0;background:rgba(43,35,68,.18)}.gantt .g-block span{position:relative}.gantt .g-now{width:2px;background:var(--coral);z-index:1}.gantt .g-now,.gantt .g-win{position:absolute;top:0;bottom:0}.gantt .g-win{background:rgba(126,217,87,.12)}.legend{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;font-weight:800;margin:8px 0}.legend .sw{display:inline-block;width:14px;height:14px;border:2px solid var(--ink);border-radius:4px;vertical-align:-2px;margin-right:4px}.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th{text-align:left;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);padding:10px 12px;border-bottom:2px solid var(--ink)}.tbl td,.tbl th{white-space:nowrap}.tbl td{padding:8px 12px;border-top:2px solid var(--grey);vertical-align:top}.tbl tr:first-child td{border-top:0}.fleet-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));grid-gap:8px;gap:8px}.fleet-tile{border:var(--line);border-radius:12px;padding:8px;background:var(--paper);text-align:center;position:relative;cursor:pointer}.fleet-tile .num{font-family:var(--display);font-size:12px;background:var(--yellow);border:2px solid var(--ink);border-radius:6px;padding:0 5px}.fleet-tile .nm{font-weight:900;font-size:12px;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fleet-tile .st{font-size:11px;color:var(--ink-soft)}.fleet-tile .light{position:absolute;top:-8px;right:-8px;width:20px;height:20px;border-radius:50%;border:3px solid var(--ink)}.fleet-tile .light.green{background:var(--green)}.fleet-tile .light.amber{background:var(--yellow);animation:blink 1.1s infinite}.fleet-tile .light.red{background:var(--coral);animation:blink .6s infinite}.fleet-tile .light.grey{background:var(--grey)}.fleet-tile.green{background:#f3fffc}.fleet-tile.amber{background:#fff8e1}.fleet-tile.red{background:#ffe3e3}.nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;font-weight:800;font-size:11px;color:var(--ink-soft)}.nav a .ico{font-size:22px;line-height:1}.nav a.on{color:var(--ink)}.nav a.on .ico{transform:translateY(-1px)}.nav a .badge{position:absolute;margin-left:34px;margin-top:-30px}@media (min-width:900px){body{padding-bottom:24px}.nav{position:static;height:auto;grid-template-columns:repeat(6,max-content);gap:6px;background:none;border:0;padding:0 0 14px}.nav a{flex-direction:row;gap:8px;padding:10px 16px;border:var(--line);border-radius:999px;background:var(--paper);font-size:15px}.nav a.on{background:var(--yellow);box-shadow:var(--shadow-sm)}.nav a .badge{position:static;margin:0}}.card{background:var(--paper);border:var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:14px;position:relative}.card.flat{box-shadow:none}.card+.card{margin-top:12px}.grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:1fr}@media (min-width:640px){.grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1000px){.grid{grid-template-columns:repeat(3,1fr)}}.grid .card+.card{margin-top:0}.section{margin:18px 0 10px;display:flex;align-items:baseline;gap:10px}.section h2{flex:1 1}.section .count{font-family:var(--mono);font-size:13px;color:var(--ink-soft)}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:2px solid var(--ink);font-weight:900;font-size:13px;line-height:1.2;background:var(--grey);white-space:nowrap}.badge.printing{background:var(--teal)}.badge.finished{background:var(--green)}.badge.failed,.badge.needs-you,.badge.trouble{background:var(--coral);color:#fff}.badge.ready{background:var(--yellow)}.badge.paused{background:var(--orange)}.badge.idle{background:var(--grey)}.badge.offline,.badge.unbound{background:var(--paper);color:var(--ink-soft)}.badge.hold{background:var(--purple);color:#fff}.badge.needs-file{background:var(--pink)}.chip{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:8px;border:2px solid var(--ink);font-size:12px;font-weight:800;background:var(--paper)}.chip.soft{border-color:var(--grey);color:var(--ink-soft)}.swatch{width:14px;height:14px;border-radius:4px;border:2px solid var(--ink);display:inline-block;vertical-align:-2px}.btn{min-height:var(--tap);padding:0 16px;border:var(--line);border-radius:12px;background:var(--paper);font-weight:900;font-size:15px;box-shadow:var(--shadow-sm);display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .05s ease,box-shadow .05s ease}.btn:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink)}.btn.go{background:var(--coral);color:#fff}.btn.warm{background:var(--yellow)}.btn.cool{background:var(--teal)}.btn.ok{background:var(--green)}.btn.ghost{box-shadow:none;background:transparent}.btn.sm{min-height:38px;padding:0 12px;font-size:14px;border-width:2px;box-shadow:3px 3px 0 var(--ink)}.btn.block{width:100%}.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:var(--shadow-sm)}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.row.end{justify-content:flex-end}.row.between{justify-content:space-between}.printer{display:flex;flex-direction:column;gap:10px;min-height:190px}.printer.printing{border-color:var(--ink);background:#f3fffc}.printer.needs-you{background:#fff1f1}.printer.finished{background:#f2ffe9}.printer.offline{background:var(--cream)}.printer .head{display:flex;align-items:center;gap:10px}.printer .face{font-size:34px;line-height:1;width:44px;text-align:center}.printer .ico{position:relative;width:56px;height:56px;flex:none;display:block}.printer .ico svg{display:block}.printer .ico .face-badge{position:absolute;right:-6px;bottom:-4px;font-size:18px;line-height:1;background:var(--paper);border:2px solid var(--ink);border-radius:50%;width:26px;height:26px;display:grid;place-items:center}.printer .name{font-family:var(--display);font-size:21px;line-height:1.05}.printer .name .num{display:inline-block;background:var(--yellow);border:2px solid var(--ink);border-radius:8px;padding:0 6px;margin-right:6px;font-size:15px;vertical-align:2px}.board .printer .name .num{color:var(--ink)}.printer .model{font-size:12px;color:var(--ink-soft);font-weight:800;letter-spacing:.04em;text-transform:uppercase}.printer .head .badge{margin-left:auto}.printer .now{border:2px dashed var(--ink);border-radius:12px;padding:10px;background:var(--paper)}.printer .next .lbl,.printer .now .lbl{font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.printer .now .job{font-weight:900;font-size:17px;margin:2px 0 6px}.printer .trays{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:12px}.printer .trays .lbl{font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-right:2px}.printer .trays .tray{display:inline-flex;align-items:center;gap:4px;border:2px solid var(--ink);border-radius:999px;padding:1px 7px 1px 3px;background:var(--paper);font-weight:800}.printer .trays .swatch{width:16px;height:16px;border-radius:50%}.printer .trays .ttype{font-size:11px}.printer .trays .tray{position:relative;overflow:hidden}.printer .trays .tbar{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(43,35,68,.12)}.printer .trays .tbar span{display:block;height:100%;background:var(--green)}.printer .trays .tray.low{border-color:var(--coral)}.printer .trays .tray.unknown{border-style:dashed;color:var(--ink-soft)}.printer .countdown{display:flex;align-items:center;gap:12px;border:3px solid var(--ink);border-radius:12px;background:var(--yellow);padding:8px 10px;animation:pulse-amber 1.2s ease-in-out infinite}.printer .countdown .cd-num{font-family:var(--display);font-size:40px;line-height:1;min-width:52px;text-align:center}.printer .countdown .cd-txt{flex:1 1;min-width:0}.printer .countdown .cd-txt b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.printer .countdown .lbl{font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.kiosk .printer .countdown{color:var(--ink)}.printer .trays .tray.low .tbar span{background:var(--coral)}.filaments{display:inline-flex;gap:4px;align-items:center}.filaments .swatch{width:14px;height:14px}.warn{color:var(--coral);font-weight:900}.printer .next{display:flex;gap:8px;align-items:baseline;font-size:14px}.printer .next .job{font-weight:800}.printer .meta{font-size:13px;color:var(--ink-soft);display:flex;gap:10px;flex-wrap:wrap}.printer .temps{font-family:var(--mono);font-size:12px;color:var(--ink-soft)}.bar{height:16px;border:2px solid var(--ink);border-radius:999px;background:var(--paper);overflow:hidden}.bar>div{height:100%;background:var(--teal);border-right:2px solid var(--ink);transition:width .6s ease}.bar.warm>div{background:var(--yellow)}.eta{font-family:var(--mono);font-size:12px}.printer .actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}.printer .light{position:absolute;top:-10px;right:-10px;width:26px;height:26px;border-radius:50%;border:3px solid var(--ink);box-shadow:3px 3px 0 var(--ink)}.printer .light.green{background:var(--green);box-shadow:3px 3px 0 var(--ink),0 0 0 4px rgba(126,217,87,.35)}.printer .light.amber{background:var(--yellow);animation:blink 1.1s ease-in-out infinite}.printer .light.red{background:var(--coral);animation:blink .6s ease-in-out infinite}.printer .light.grey{background:var(--grey)}.printer.light-green{border-color:#2e8b57;box-shadow:4px 4px 0 #2e8b57}.printer.light-amber{animation:pulse-amber 1.6s ease-in-out infinite}.printer.light-red{animation:pulse-red .9s ease-in-out infinite}@keyframes blink{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.85)}}@keyframes pulse-amber{0%,to{box-shadow:4px 4px 0 var(--ink);background:#fff8e1}50%{box-shadow:4px 4px 0 var(--ink),0 0 0 6px rgba(255,201,51,.55);background:#fff1c2}}@keyframes pulse-red{0%,to{box-shadow:4px 4px 0 var(--ink);background:#fff1f1}50%{box-shadow:4px 4px 0 var(--ink),0 0 0 6px rgba(255,93,93,.5);background:#ffd9d9}}.printer.error{border-color:var(--coral);animation:pulse-red .7s ease-in-out infinite,shake 2.4s ease-in-out infinite}.printer .err-box{background:#ffe3e3;border-style:solid;border:3px solid var(--coral)}.printer .err-box .lbl{color:#b31d1d}.printer .err-line{margin:4px 0;font-size:15px}.printer .err-line a{color:#b31d1d;font-weight:900}@keyframes shake{0%,84%,to{transform:translateX(0)}86%{transform:translateX(-4px) rotate(-.4deg)}88%{transform:translateX(4px) rotate(.4deg)}90%{transform:translateX(-4px)}92%{transform:translateX(4px)}94%{transform:translateX(-2px)}96%{transform:translateX(2px)}}@media (prefers-reduced-motion:reduce){.printer,.printer .light{animation:none!important}}.printer .snap{width:100%;aspect-ratio:16/9;object-fit:cover;border:2px solid var(--ink);border-radius:10px;background:var(--ink);display:block}.board .printer .snap{border-color:var(--cream)}.printer .now.todo{background:#fff8e1;border-style:solid}.printer .steps{margin:6px 0 0;padding-left:22px;font-size:14px;font-weight:700;line-height:1.5}.printer .steps li::marker{font-family:var(--display);color:var(--coral)}.attention{background:var(--yellow);border:var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 14px;margin-bottom:14px}.attention h2{font-size:20px;margin-bottom:6px}.attention .item{display:flex;gap:10px;align-items:center;padding:8px 0;border-top:2px solid rgba(43,35,68,.15)}.attention .item:first-of-type{border-top:0}.attention .item .txt{flex:1 1;font-weight:800}.thumb{width:56px;height:56px;border:2px solid var(--ink);border-radius:10px;background:var(--cream);overflow:hidden;display:grid;place-items:center;font-size:26px;flex:none}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.queue{display:flex;flex-direction:column;gap:10px}.plate{display:grid;grid-template-columns:40px 56px 1fr auto;grid-gap:10px;gap:10px;align-items:center;background:var(--paper);border:var(--line);border-radius:14px;padding:10px;box-shadow:var(--shadow-sm)}.plate.dragging{opacity:.4}.plate.over{outline:3px dashed var(--coral);outline-offset:3px}.plate.hold{background:#f4efff}.plate.needs-file{background:#fff0f8}.plate .pos{font-family:var(--display);font-size:22px;text-align:center;color:var(--ink-soft)}.plate .pos.first{color:var(--coral)}.plate .thumb{width:56px;height:56px;border:2px solid var(--ink);border-radius:10px;background:var(--cream);object-fit:cover;display:grid;place-items:center;font-size:26px;overflow:hidden}.plate .thumb img{width:100%;height:100%;object-fit:cover}.plate .body{min-width:0}.plate .title{font-weight:900;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chips,.plate .sub{font-size:13px;color:var(--ink-soft);display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:3px}.plate .side{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.plate .grip{cursor:-webkit-grab;cursor:grab;font-size:20px;color:var(--ink-soft);-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.dropzone{border:3px dashed var(--ink-soft);border-radius:14px;padding:14px;text-align:center;color:var(--ink-soft);font-weight:800}.dropzone.over{border-color:var(--coral);background:#fff1f1;color:var(--ink)}.lane{border:var(--line);border-radius:14px;background:var(--paper);padding:10px}.lane.over{outline:3px dashed var(--coral);outline-offset:3px}.lane .lane-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.lane .lane-head .name{font-family:var(--display);font-size:18px}.lane .slot{font-size:14px;padding:6px 8px;border-top:2px solid var(--grey);display:flex;gap:8px;align-items:center}.lane .slot:first-of-type{border-top:0}.lane .slot .k{font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);width:44px}.tl{border:var(--line);border-radius:14px;background:var(--paper);padding:10px;overflow-x:auto}.tl .tl-row{display:grid;grid-template-columns:120px 1fr;grid-gap:8px;gap:8px;align-items:center;padding:4px 0}.tl .tl-name{font-weight:900;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl .tl-track{position:relative;height:26px;border:2px solid var(--ink);border-radius:8px;background:var(--cream)}.tl .tl-block{position:absolute;top:0;bottom:0;border-right:2px solid var(--ink);padding:0 6px;font-size:11px;font-weight:900;line-height:22px;white-space:nowrap;overflow:hidden}.tl .tl-block.now{background:var(--teal)}.tl .tl-block.queued{background:var(--yellow)}.tl .tl-block.gap{background:repeating-linear-gradient(45deg,transparent 0 6px,rgba(43,35,68,.08) 6px 12px);border:0}.tl .tl-nowline{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--coral)}.tl .tl-hours{display:grid;grid-template-columns:120px 1fr}.tl .tl-hours div{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;color:var(--ink-soft)}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.field label{font-size:12px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.input,select.input,textarea.input{min-height:var(--tap);border:var(--line);border-radius:12px;padding:8px 12px;font:inherit;font-weight:700;background:var(--paper);width:100%}textarea.input{min-height:80px}.modal-bg{position:fixed;inset:0;background:rgba(43,35,68,.55);z-index:40;display:grid;place-items:end center;padding:10px}.modal{width:100%;max-width:560px;background:var(--paper);border:var(--line);border-radius:18px;box-shadow:var(--shadow);padding:16px;max-height:88vh;overflow:auto}@media (min-width:900px){.modal-bg{place-items:center}}.modal h2{margin-bottom:10px}.stepper{display:grid;grid-template-columns:48px 1fr 48px;grid-gap:6px;gap:6px;align-items:center}.stepper .n{text-align:center;font-family:var(--display);font-size:28px}.check{display:flex;gap:10px;align-items:center;padding:8px 0;border-top:2px solid var(--grey)}.check:first-of-type{border-top:0}.check .box{width:30px;height:30px;border:var(--line);border-radius:8px;display:grid;place-items:center;font-size:18px;background:var(--paper);flex:none}.check.done .box{background:var(--green)}.check .txt{flex:1 1;font-weight:800}.check.done .txt{text-decoration:line-through;color:var(--ink-soft)}.check .how{font-size:12px;color:var(--ink-soft);font-weight:600}.lib{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.file{background:var(--paper);border:var(--line);border-radius:14px;padding:8px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:6px}.file .thumb{width:100%;height:auto;aspect-ratio:1;font-size:40px}.file .thumb img{width:100%;height:100%;object-fit:cover}.file .name{font-weight:900;font-size:14px;line-height:1.2;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.file .meta{font-size:12px;color:var(--ink-soft)}.hist{display:flex;gap:10px;align-items:center;padding:10px 0;border-top:2px solid var(--grey)}.hist:first-of-type{border-top:0}.hist .when{font-family:var(--mono);font-size:12px;color:var(--ink-soft);width:88px;flex:none}.hist .what{flex:1 1;font-weight:800}.stats{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:10px;gap:10px}@media (min-width:640px){.stats{grid-template-columns:repeat(4,1fr)}}.stat{background:var(--paper);border:var(--line);border-radius:14px;padding:10px 12px}.stat .n{font-family:var(--display);font-size:30px;line-height:1}.stat .l{font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--nav-h) + 14px + env(safe-area-inset-bottom));z-index:50;background:var(--ink);color:var(--cream);padding:10px 16px;border-radius:12px;font-weight:800;box-shadow:var(--shadow-sm);max-width:92vw}@media (min-width:900px){.toast{bottom:20px}}.toast.bad{background:var(--coral);color:#fff}.board{background:var(--ink);min-height:100vh;padding:20px}.board,.board .card,.board .topbar .title{color:var(--cream)}.board .card{background:#3a3060;border-color:var(--cream);box-shadow:4px 4px 0 #14102a}.board .muted,.board .printer .meta,.board .printer .model,.board .printer .next .lbl,.board .printer .now .lbl{color:#cbc3e6}.board .printer .now{background:#2b2344;border-color:var(--cream)}.board .printer.printing{background:#244a48}.board .printer.needs-you{background:#6a2c3a}.board .printer.finished{background:#2e5a34}.board .printer.offline{background:#2f2a45}.board .bar{background:#2b2344;border-color:var(--cream)}.board .attention{background:var(--yellow);color:var(--ink);box-shadow:6px 6px 0 #14102a}.board .grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.board .foot{text-align:center;color:#cbc3e6;font-size:13px;margin-top:18px}body:has(.kiosk){padding:0;overflow:hidden;background:var(--ink)}.kiosk{background:var(--ink);color:var(--cream);height:100vh;overflow:hidden;font-size:18px;cursor:none}.kiosk .k-gantt .gantt{overflow-x:hidden}.kiosk .gantt .g-track{min-width:0}.kiosk .k-fit>div{display:flex}.kiosk .k-wrap{padding:18px 22px 24px;display:flex;flex-direction:column;flex:1 1;min-height:inherit;box-sizing:border-box}.kiosk .k-grid{flex:1 1;align-content:stretch}.kiosk .k-grid .printer{height:100%}.kiosk .k-gantt,.kiosk .k-gantt .gantt{flex:1 1;display:flex;flex-direction:column}.kiosk .k-gantt .gantt .g-row{flex:1 1}.kiosk .k-top{display:flex;align-items:center;gap:14px;padding-bottom:14px}.kiosk .k-top img{height:48px}.kiosk .k-title{font-family:var(--display);font-size:30px}.kiosk .k-clock{font-family:var(--display);font-size:34px}.kiosk .k-sub{color:#cbc3e6;font-size:15px}.kiosk .card{background:#3a3060;border-color:var(--cream);color:var(--cream);box-shadow:4px 4px 0 #14102a}.kiosk .hist .when,.kiosk .muted,.kiosk .printer .meta,.kiosk .printer .model,.kiosk .printer .next .lbl,.kiosk .printer .now .lbl,.kiosk .printer .trays .lbl{color:#cbc3e6}.kiosk .printer .now{background:#2b2344;border-color:var(--cream)}.kiosk .printer .now.todo{background:#4a3b12}.kiosk .printer .err-box{background:#5a1b1b;border-color:var(--coral)}.kiosk .printer.printing{background:#244a48}.kiosk .printer.needs-you{background:#6a2c3a}.kiosk .printer.offline{background:#2f2a45}.kiosk .printer .bar{background:#2b2344;border-color:var(--cream)}.kiosk .printer .name{font-size:26px}.kiosk .printer .now .job{font-size:20px}.kiosk .printer .steps{font-size:16px}.kiosk .printer .trays .tray{color:var(--cream)}.kiosk .printer .ico .face-badge,.kiosk .printer .trays .tray{background:#2b2344;border-color:var(--cream)}.kiosk .printer .snap{border-color:var(--cream)}.kiosk .attention{box-shadow:6px 6px 0 #14102a}.kiosk .k-needs h2{font-size:30px}.kiosk .k-needs .item .txt{font-size:22px}.kiosk .k-grid{grid-template-columns:repeat(auto-fill,minmax(360px,1fr))}.kiosk .k-foot{text-align:center;color:#cbc3e6;margin-top:16px;font-size:16px}.kiosk .k-fleet{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:14px}.kiosk .fleet-tile{background:#3a3060;border-color:var(--cream);color:var(--cream)}.kiosk .fleet-tile .st{color:#cbc3e6;font-size:14px}.kiosk .fleet-tile .nm{font-size:16px}.kiosk .fleet-tile.green{background:#244a48}.kiosk .fleet-tile.amber{background:#5a4a12}.kiosk .fleet-tile.red{background:#6a2c3a}.kiosk .k-stats{grid-template-columns:repeat(7,1fr);margin-bottom:14px}.kiosk .stat{background:#3a3060;border-color:var(--cream)}.kiosk .stat .n{font-size:40px}.kiosk .stat .l{color:#cbc3e6}.kiosk .k-two{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px;margin-bottom:14px}.kiosk .k-gantt .gantt{color:var(--cream)}.kiosk .gantt .g-head,.kiosk .k-gantt .gantt{background:#3a3060;border-color:var(--cream)}.kiosk .gantt .g-name{background:#2b2344;border-color:var(--cream);color:var(--cream);font-size:16px}.kiosk .gantt .g-row{border-color:#4a4070;min-height:50px}.kiosk .gantt .g-hour{color:#cbc3e6;border-color:#4a4070;font-size:12px}.kiosk .gantt .g-hour.day{color:var(--cream);border-color:var(--cream)}.kiosk .gantt .g-block{color:var(--ink)}.kiosk .chip{background:#2b2344;color:var(--cream);border-color:var(--cream)}.kiosk .hist{border-color:#4a4070}.kiosk .kbd{background:#2b2344;color:var(--cream);border-color:var(--cream)}@media (min-width:2400px){.kiosk{font-size:24px}.kiosk .k-grid{grid-template-columns:repeat(auto-fill,minmax(520px,1fr))}.kiosk .printer .name{font-size:34px}}.login{max-width:420px;margin:12vh auto 0}.login .robot{width:96px;margin:0 auto 10px;display:block}.empty{text-align:center;padding:26px 10px;color:var(--ink-soft);font-weight:800}.empty .big{font-size:40px;margin-bottom:6px}.kbd{font-family:var(--mono);font-size:12px;border:2px solid var(--ink);border-radius:6px;padding:1px 6px;background:var(--paper)}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 12px}.tabs button{min-height:38px;padding:0 12px;border:2px solid var(--ink);border-radius:999px;background:var(--paper);font-weight:900;font-size:13px}.tabs button.on{background:var(--yellow)}details.more>summary{cursor:pointer;font-weight:900;color:var(--ink-soft);list-style:none;padding:8px 0}details.more>summary::-webkit-details-marker{display:none}.pill-row{display:flex;gap:6px;flex-wrap:wrap}