:root{--concrete: #eceeed;--card: #ffffff;--ink: #1b1f23;--galv: #67717a;--line: #d7dbd9;--recess: #f5f6f5;--fail: #bb2d23;--fail-bg: #f9e9e7;--warn: #b57a00;--warn-bg: #f8efd8;--good: #2c7a44;--good-bg: #e7f2ea;--idle: #9aa4ab;--act: #275d77;--act-ink: #ffffff;--act-press: #1d485d;--sans: "Segoe UI", system-ui, -apple-system, sans-serif;--mono: "Cascadia Mono", Consolas, ui-monospace, "SF Mono", monospace;--rail: 6px;--r: 10px;--tap: 58px;--gap: 12px;--pad: 16px}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--sans);background:var(--concrete);color:var(--ink);font-size:17px;line-height:1.45;-webkit-font-smoothing:antialiased}button{font:inherit;border:none;background:none;cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid var(--act);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.app{min-height:100%;display:flex;flex-direction:column}.screen{flex:1;width:100%;max-width:560px;margin:0 auto;padding:var(--pad);padding-bottom:calc(var(--tap) + 28px)}.screen.wide{max-width:none;padding-bottom:var(--pad)}.topbar{position:sticky;top:0;z-index:20;background:var(--ink);color:#fff;display:flex;align-items:center;gap:10px;padding:10px var(--pad);min-height:52px}.topbar .back{color:#fff;font-size:22px;line-height:1;min-width:44px;min-height:40px;margin-left:-8px;display:flex;align-items:center;justify-content:center;border-radius:8px}.topbar .back:active{background:#ffffff26}.brand{font-weight:800;letter-spacing:.14em;font-size:.82rem}.topbar .where{margin-left:auto;font-family:var(--mono);font-size:.78rem;color:#aeb9bf;text-align:right}.tabs{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.tabs a{flex:1;min-height:var(--tap);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:.72rem;font-weight:600;color:var(--galv);letter-spacing:.04em}.tabs a.on{color:var(--act);box-shadow:inset 0 3px 0 var(--act)}.tabs .glyph{font-size:1.15rem;line-height:1}@media(min-width:900px){.tabs{display:none}}.deskGrid{display:grid;grid-template-columns:200px 1fr;min-height:100vh}.sideNav{background:var(--ink);color:#fff;display:flex;flex-direction:column;padding:16px 0;position:sticky;top:0;height:100vh}.sideBrand{font-weight:900;letter-spacing:.14em;font-size:.95rem;padding:4px 18px 18px}.sideBrand span{color:#8b959c;font-weight:600}.sideNav nav a{display:flex;align-items:center;gap:11px;padding:12px 18px;color:#b9c2c8;font-size:.92rem;font-weight:600}.sideNav nav a.on{background:var(--act);color:#fff;box-shadow:inset 4px 0 #9fc3d6}.sideNav nav a:hover:not(.on){background:#ffffff12;color:#fff}.sideNav .g{width:18px;text-align:center;opacity:.9}.sideFoot{margin-top:auto;padding:12px 18px;font-size:.78rem;color:#8d979e;border-top:1px solid #2c3238}.deskMain{min-width:0;display:flex;flex-direction:column}.deskHead{display:flex;align-items:baseline;gap:14px;background:var(--card);border-bottom:1px solid var(--line);padding:12px 20px;position:sticky;top:0;z-index:15}.deskHead .site{font-weight:800;font-size:1.05rem}.deskHead .ctx{color:var(--galv);font-family:var(--mono);font-size:.8rem;margin-left:auto}.nodeGlyph{stroke:currentColor;fill:none;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}.twoCol>div{min-width:0}@media(min-width:900px){.deskGrid .screen{max-width:900px}.deskGrid .screen.wide{max-width:none}.twoCol{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}}.pcard{border:1px solid var(--line);border-left:5px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px;background:var(--card)}.pcard .k{font-size:.66rem;font-weight:800;letter-spacing:.1em;color:var(--galv);text-transform:uppercase}.pcard.red{border-left-color:var(--fail);background:var(--fail-bg)}.pcard.amber{border-left-color:var(--warn)}.pcard.green{border-left-color:var(--good)}.pcard .strong{font-weight:700;font-size:.95rem}.pcard .muted{color:var(--galv);font-size:.84rem}.pcard .rowline{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.pcard .openPill{background:var(--warn-bg);color:var(--warn);font-size:.66rem;font-weight:800;padding:2px 8px;border-radius:999px;letter-spacing:.06em}.sectionLabel{font-size:.72rem;font-weight:800;letter-spacing:.12em;color:var(--galv);text-transform:uppercase;margin:20px 2px 8px}.sectionLabel:first-child{margin-top:4px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px var(--pad);margin-bottom:var(--gap)}.rail{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:var(--r);border-left:var(--rail) solid var(--idle);padding:12px 14px;margin-bottom:8px;min-height:var(--tap);transition:border-color .35s ease,background .35s ease}.rail:active{background:var(--recess)}.rail.red{border-left-color:var(--fail)}.rail.yellow{border-left-color:var(--warn)}.rail.green{border-left-color:var(--good)}.rail .body{flex:1;min-width:0}.rail .code{font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:.95rem}.rail .code .mono{font-family:var(--mono);font-weight:600;color:var(--galv);letter-spacing:0;text-transform:none}.rail .sub{color:var(--galv);font-size:.86rem;margin-top:1px}.rail .sub b{color:var(--ink);font-weight:600}.rail .chev{color:var(--idle);font-size:1.2rem}.pill{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:800;letter-spacing:.08em;padding:3px 10px;border-radius:999px;text-transform:uppercase;white-space:nowrap}.pill.red{background:var(--fail-bg);color:var(--fail)}.pill.yellow{background:var(--warn-bg);color:var(--warn)}.pill.green{background:var(--good-bg);color:var(--good)}.pill.idle{background:var(--recess);color:var(--galv)}.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:var(--tap);border-radius:var(--r);font-weight:700;font-size:1.02rem;background:var(--act);color:var(--act-ink);margin-top:var(--gap)}.btn:active{background:var(--act-press)}.btn.quiet{background:var(--recess);color:var(--ink);border:1px solid var(--line)}.btn.danger{background:var(--fail)}.btn.good{background:var(--good)}.btn[disabled]{opacity:.45;cursor:default}.pfRow{display:flex;gap:8px;margin-top:10px}.pf{flex:1;min-height:var(--tap);border-radius:var(--r);font-weight:800;font-size:1rem;letter-spacing:.04em;border:2px solid var(--line);color:var(--galv);background:var(--card)}.pf.passOn{background:var(--good);border-color:var(--good);color:#fff}.pf.failOn{background:var(--fail);border-color:var(--fail);color:#fff}.pf[disabled]{opacity:.35;cursor:default}.item{background:var(--card);border:1px solid var(--line);border-radius:var(--r);border-left:var(--rail) solid var(--idle);padding:12px 14px;margin-bottom:10px;transition:border-color .3s ease}.item.pass{border-left-color:var(--good)}.item.fail{border-left-color:var(--fail)}.item .label{font-weight:600}.item .sev{font-family:var(--mono);font-size:.7rem;color:var(--galv);text-transform:uppercase;letter-spacing:.08em}.item .readout{font-family:var(--mono);font-size:1.5rem;font-weight:700;margin-top:6px}.item .readout .unit{font-size:.9rem;color:var(--galv)}.item .readout.over{color:var(--fail)}.item .limitNote{font-family:var(--mono);font-size:.78rem;color:var(--galv)}.item .limitNote.over{color:var(--fail);font-weight:700}.sheetWrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#1b1f2380;display:flex;align-items:flex-end;justify-content:center}.sheet{background:var(--card);width:100%;max-width:560px;border-radius:16px 16px 0 0;padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom))}.sheet h3{font-size:.95rem;margin-bottom:4px}.sheet .big{font-family:var(--mono);font-size:2.2rem;font-weight:700;text-align:center;padding:8px;min-height:3.4rem}.sheet .big.over{color:var(--fail)}.pad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}.pad button{min-height:62px;border-radius:var(--r);background:var(--recess);border:1px solid var(--line);font-family:var(--mono);font-size:1.4rem;font-weight:700}.pad button:active{background:var(--line)}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.chip{border:1.5px solid var(--line);border-radius:999px;padding:10px 14px;font-size:.9rem;font-weight:600;background:var(--card);min-height:44px}.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}.noteInput{width:100%;margin-top:10px;min-height:48px;border:1.5px solid var(--line);border-radius:var(--r);padding:10px 14px;font:inherit;font-size:.95rem;background:var(--card);color:var(--ink)}.noteInput:focus{outline:2px solid var(--act);border-color:var(--act)}.photo{display:flex;align-items:center;gap:10px;margin-top:10px;border:1.5px dashed var(--line);border-radius:var(--r);padding:10px 12px;min-height:52px;width:100%;text-align:left;font-weight:600;color:var(--galv)}.photo.have{border-style:solid;border-color:var(--good);color:var(--ink)}.photo svg{flex:0 0 auto}.prog{height:10px;background:var(--recess);border:1px solid var(--line);border-radius:999px;overflow:hidden}.prog>div{height:100%;background:var(--act);border-radius:999px;transition:width .35s ease}.progNote{font-family:var(--mono);font-size:.8rem;color:var(--galv);margin-top:6px}.completeness{display:flex;align-items:center;gap:10px}.completeness .prog{flex:1}.completeness .pct{font-family:var(--mono);font-size:.85rem;color:var(--galv)}.health{border-radius:var(--r);padding:14px 16px;margin-bottom:var(--gap);border:1px solid var(--line);border-left:8px solid var(--idle);background:var(--card);transition:border-color .35s ease,background .35s ease}.health.red{border-left-color:var(--fail);background:var(--fail-bg)}.health.yellow{border-left-color:var(--warn);background:var(--warn-bg)}.health.green{border-left-color:var(--good);background:var(--good-bg)}.health .word{font-weight:800;letter-spacing:.1em;text-transform:uppercase}.health.red .word{color:var(--fail)}.health.yellow .word{color:var(--warn)}.health.green .word{color:var(--good)}.health .why{font-size:.9rem;color:var(--ink);margin-top:3px}.hist{border-left:2px solid var(--line);margin-left:8px;padding-left:14px}.hist .rec{position:relative;padding-bottom:12px}.hist .rec:before{content:"";position:absolute;left:-19px;top:6px;width:8px;height:8px;border-radius:50%;background:var(--galv)}.hist .rec.repl:before{background:var(--fail)}.hist .date{font-family:var(--mono);font-size:.75rem;color:var(--galv)}.hist .what{font-size:.92rem}.hist .who{font-size:.8rem;color:var(--galv)}.spark{width:100%;height:72px;margin-top:6px}.qrTile{display:flex;flex-direction:column;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:26px 16px;width:100%}.qrTile .hint{color:var(--galv);font-weight:600}.stencil{font-weight:900;letter-spacing:.14em;text-transform:uppercase;font-size:1.15rem}.stencil .mono{font-family:var(--mono);font-weight:600;color:var(--galv);letter-spacing:0}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--tap) + 20px);z-index:50;background:var(--ink);color:#fff;border-radius:999px;padding:10px 18px;font-weight:600;font-size:.92rem;box-shadow:0 6px 24px #1b1f2359}.mapWrap{display:flex;gap:16px;align-items:flex-start}.mapSvgCard{flex:1;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:8px}.mapSide{width:320px;flex:0 0 auto}@media(max-width:899px){.mapWrap{flex-direction:column}.mapSide{width:100%}}.countRow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}.countRow:last-child{border-bottom:none}.countName{font-weight:700;display:flex;flex-direction:column}.stepper{display:flex;align-items:center;gap:8px}.stepper .chip{min-width:var(--tap);min-height:var(--tap);font-size:1.3rem;line-height:1}.countInput{width:3.4rem;text-align:center;font-family:var(--mono);font-size:1.15rem;font-weight:700;border:1.5px solid var(--line);border-radius:8px;padding:8px 4px;background:var(--card)}.countInput:focus{outline:2px solid var(--act);border-color:var(--act)}.tempPassword{font-family:var(--mono);font-size:1.5rem;font-weight:700;letter-spacing:.08em;text-align:center;padding:14px 10px;margin-top:10px;background:var(--recess);border:1.5px dashed var(--line);border-radius:var(--r);-webkit-user-select:all;user-select:all}.sheetHead{font-weight:900;letter-spacing:.12em;text-transform:uppercase;font-size:.85rem;color:var(--galv);margin:14px 0 8px}.labelSheet{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(196px,1fr))}.label{display:flex;align-items:center;gap:10px;background:#fff;color:#000;border:1px solid var(--line);border-radius:6px;padding:8px;break-inside:avoid}.qrSymbol{width:26mm;height:26mm;flex:0 0 auto}.labelText{min-width:0}.labelCode{font-weight:900;letter-spacing:.06em;text-transform:uppercase;font-size:1.25rem;line-height:1.1}.labelName{font-size:.78rem;line-height:1.2;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.labelShort{font-family:var(--mono);font-size:.92rem;letter-spacing:.06em;margin-top:4px}.qrFailed{display:flex;align-items:center;justify-content:center;text-align:center;border:1.5px dashed var(--fail);border-radius:4px;box-sizing:border-box;color:var(--fail);font-size:.72rem;font-weight:700;text-transform:uppercase}@media print{*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}body{background:#fff;font-size:12px}.tabs,.topbar .back,.btn,.deskHead,.sideNav,.pad,.sheetWrap,.noPrint,.syncBar,.syncPanel{display:none!important}.report .card{border:none;padding:0 0 10px;margin-bottom:10px}.report .reportRec{break-inside:avoid}.topbar{background:var(--ink)!important;position:static}.screen{max-width:none;padding-bottom:0}.deskGrid{display:block}.chip:not(.on){display:none!important}.chip.on{background:var(--ink)!important;color:#fff!important}.noteInput{display:none}.noteInput.hasText{display:block;border-style:solid}.pf{display:none!important}.pf.passOn,.pf.failOn{display:block!important;min-height:auto;padding:4px 10px}.pf.passOn{background:var(--good)!important;color:#fff!important}.pf.failOn{background:var(--fail)!important;color:#fff!important}.photo:not(.have){display:none}.photo.have{border-color:var(--good)!important}.item.fail,.rail.red{border-left-color:var(--fail)!important}.item.pass,.rail.green{border-left-color:var(--good)!important}.rail.yellow{border-left-color:var(--warn)!important}.health.red{background:var(--fail-bg)!important}.health.yellow{background:var(--warn-bg)!important}.health.green{background:var(--good-bg)!important}.card,.item,.rail,.health,.pcard{break-inside:avoid}body:has(.labelSheet) .topbar{display:none!important}.sheetHead{margin:0 0 6px}.labelSheet{grid-template-columns:repeat(auto-fill,minmax(62mm,1fr));gap:4mm}.label{border:1px dashed #999!important;padding:3mm;height:32mm}}.node rect{transition:fill .35s ease,stroke .35s ease;cursor:pointer}.node text{pointer-events:none}.node .codeT{font-family:var(--mono);font-size:11px;font-weight:700}.node .nameT{font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.edge{stroke:var(--galv);stroke-width:2;fill:none;transition:stroke .3s ease}.edge.hit{stroke:var(--fail);stroke-width:3;stroke-dasharray:6 5}.legend{display:flex;gap:14px;align-items:center;font-size:.8rem;color:var(--galv);padding:8px 6px 2px}.legend .dot{width:10px;height:10px;border-radius:3px;display:inline-block;margin-right:5px;vertical-align:-1px}.syncBar{position:sticky;top:0;z-index:25;width:100%;display:flex;align-items:center;gap:9px;padding:9px var(--pad);min-height:44px;background:var(--warn-bg);color:var(--warn);border-bottom:1px solid var(--line);font-size:.86rem;font-weight:700;text-align:left}.syncBar.offline{background:var(--recess);color:var(--galv)}.syncBar.stuck{background:var(--fail-bg);color:var(--fail)}.syncBar .dot{width:9px;height:9px;border-radius:50%;background:currentColor;flex:0 0 auto}.syncBar .chev{margin-left:auto;opacity:.7}.syncPanel{background:var(--card);border-bottom:1px solid var(--line);padding:10px var(--pad)}.syncRow{display:flex;align-items:baseline;gap:10px;padding:6px 0;border-bottom:1px solid var(--recess);font-size:.85rem}.syncRow b{text-transform:uppercase;letter-spacing:.06em;font-size:.72rem}.syncRow.stuck b{color:var(--fail)}.syncPanel .muted{color:var(--galv);font-size:.82rem}.syncActions{display:flex;gap:8px;margin-top:10px}.report .reportHead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:2px solid var(--ink);padding-bottom:10px;margin-bottom:14px}.reportTitle{font-weight:900;letter-spacing:.06em;text-transform:uppercase;font-size:1.25rem}.reportSub{color:var(--galv);font-size:.82rem;margin-top:2px}.reportBrand{font-weight:900;letter-spacing:.14em;font-size:.8rem;white-space:nowrap}.reportBrand span{color:var(--galv);font-weight:600}.verifyNote{border:2px solid var(--good);background:var(--good-bg);border-radius:var(--r);padding:12px 14px;margin-bottom:var(--gap)}.verifyNote.bad{border-color:var(--fail);background:var(--fail-bg)}.verifyVerdict{font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--good)}.verifyNote.bad .verifyVerdict{color:var(--fail)}.verifyDetail{font-size:.88rem;margin-top:4px}.verifyProblems{margin:6px 0 0 18px;font-size:.85rem;color:var(--fail)}.verifyAlgo{font-family:var(--mono);font-size:.68rem;color:var(--galv);margin-top:8px;line-height:1.45}.report h3{font-size:.95rem;margin-bottom:8px}.reportTable{width:100%;border-collapse:collapse;font-size:.84rem}.reportTable th,.reportTable td{text-align:left;padding:5px 8px;border-bottom:1px solid var(--line);vertical-align:top}.reportTable thead th{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--galv)}.reportTable tr.failRow td{background:var(--fail-bg)}.reportRec{border-left:3px solid var(--line);padding-left:10px;margin-bottom:12px}.reportRecHead{font-size:.86rem}.reportSummary{font-size:.9rem;margin:2px 0 6px}.tagCorr{background:var(--warn-bg);color:var(--warn);font-size:.66rem;font-weight:800;padding:1px 6px;border-radius:4px;margin-left:6px;text-transform:uppercase}.reportHash{font-family:var(--mono);font-size:.66rem;color:var(--galv);margin-top:5px}.mapCanvas.impactMode .mapNode.im-clear{opacity:.22}.mapCanvas.impactMode .mapNode.im-hit .hull{stroke:var(--warn);stroke-width:3.5}.mapCanvas.impactMode .mapNode.im-source .hull{stroke:var(--fail);stroke-width:4}.mapCanvas.impactMode .mapEdge,.mapCanvas.impactMode .mapSpoutOuter{opacity:.35}.impactBox{margin-top:10px;padding:10px;border-radius:8px;background:var(--warn-bg)}.impactHead{font-size:.9rem;color:var(--warn);font-weight:600}.impactHead b{font-size:1.15rem}.impactList{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.impactChip{font-family:var(--mono);font-size:.7rem;font-weight:700;background:var(--card);color:var(--ink);border-radius:5px;padding:3px 7px}.impactChip.more{color:var(--galv);font-weight:400}.mapCanvas{display:block;width:100%;background:var(--recess);border-radius:8px;touch-action:none;user-select:none;-webkit-user-select:none}.sk .hull{transition:stroke .3s ease,fill .3s ease}.sk.green .hull{stroke:var(--good);stroke-width:3}.sk.yellow .hull{stroke:var(--warn);stroke-width:3}.sk.red .hull{stroke:var(--fail);stroke-width:3.5}.sk.yellow .hull[fill="#c3c9c8"],.sk.yellow .hull[fill="#d3d8da"]{fill:var(--warn-bg)}.sk.red .hull[fill="#c3c9c8"],.sk.red .hull[fill="#d3d8da"]{fill:var(--fail-bg)}.sk.sel .hull{stroke:var(--act)!important}.mapCanvas.panning{cursor:grabbing}.mapNode{cursor:grab}.mapGround{stroke:#b8bfbe;stroke-width:2.5}.mapAnchor{fill:var(--act);pointer-events:none}.mapAnchorRing{fill:none;stroke:var(--act);stroke-width:1.5;opacity:.55;pointer-events:none}.mapEndHandle{fill:transparent;stroke:var(--act);stroke-width:1.5;opacity:0;cursor:move}.mapEndHandle.legTop{cursor:ns-resize}.mapNode:hover .mapEndHandle{opacity:.6}.mapSpoutOuter{fill:none;stroke:#5a636b;stroke-width:11;stroke-linejoin:round;stroke-linecap:round}.mapSpoutOuter.sel{stroke:var(--act)}.mapSpoutInner{fill:none;stroke:#c3c9c8;stroke-width:7;stroke-linejoin:round;stroke-linecap:round;pointer-events:none}.mapSpoutGrain{fill:none;stroke:#d9a441;stroke-width:3;stroke-dasharray:2 9;pointer-events:none}.mapEdgeSchematic{fill:none;stroke:#67717a;stroke-width:2.5;stroke-dasharray:7 6}.mapEdgeSchematic.sel{stroke:var(--act)}.mapEdgeHit{fill:none;stroke:transparent;stroke-width:18;cursor:pointer}.mapViaHandle{fill:#fff;stroke:var(--act);stroke-width:2;cursor:move}.mapConnectLine{stroke:var(--act);stroke-width:3;stroke-dasharray:7 6;pointer-events:none}.mapMarquee{fill:#275d7714;stroke:var(--act);stroke-width:1.5;stroke-dasharray:6 5;pointer-events:none}.mapCode{font-family:var(--mono);font-size:13px;font-weight:700;fill:var(--ink);paint-order:stroke;stroke:var(--recess);stroke-width:4}.paletteGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.palItem{border:1.5px solid var(--line);border-radius:10px;background:var(--card);padding:8px 4px 6px;display:flex;flex-direction:column;align-items:center;gap:5px;font-size:.68rem;font-weight:700;cursor:grab;text-align:center}.palItem svg{pointer-events:none}.palItem:hover{border-color:var(--act)}.trayRow{display:flex;align-items:center;gap:8px;border:1.5px dashed var(--line);border-radius:8px;padding:8px 10px;margin-top:8px;cursor:grab;background:var(--card);font-size:.85rem}.trayRow b{font-family:var(--mono);font-size:.8rem}.trayRow:hover{border-color:var(--act)}.mapHint{font-size:.76rem;color:var(--galv);margin-top:10px;line-height:1.5}.authWrap{min-height:100vh;display:grid;place-items:center;background:var(--steel, #1b1f23);padding:20px}.authCard{width:min(430px,94vw);background:var(--paper, #f4f2ec);border-radius:14px;padding:26px 24px;display:flex;flex-direction:column;gap:12px;box-shadow:0 18px 50px #0006}.authBrand{letter-spacing:.35em;font-size:1.6rem;margin:0}.authSub{margin:-6px 0 8px;color:var(--galv, #7a828a);font-size:.85rem}.authField{display:flex;flex-direction:column;gap:5px;font-size:.8rem;font-weight:700;letter-spacing:.04em}.authField input{border:1.5px solid var(--line, #d8d4c8);border-radius:8px;padding:11px 12px;font-size:1rem;background:#fff}.authField .optional{font-weight:400;color:var(--galv, #7a828a)}.authError{background:var(--fail-bg, #fbe4e1);color:var(--fail, #b3261e);border-radius:8px;padding:9px 12px;font-size:.85rem}.authAlt{text-align:center;font-size:.85rem;color:var(--galv, #7a828a)}.presetRow{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.presetCard{border:1.5px solid var(--line, #d8d4c8);border-radius:10px;padding:9px 6px;background:#fff;display:flex;flex-direction:column;gap:2px;font-size:.78rem;cursor:pointer}.presetCard span{color:var(--galv, #7a828a);font-size:.7rem}.presetCard.on{border-color:var(--ink, #23282d);background:var(--good-bg, #e7efe3)}.sectionHead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.railName{font-weight:400;color:var(--galv, #7a828a);font-size:.82em;margin-left:6px}.companyPick{width:100%;background:transparent;color:inherit;border:1px solid rgba(255,255,255,.25);border-radius:6px;padding:5px}.signOut{margin-top:8px;background:none;border:none;color:inherit;opacity:.7;cursor:pointer;text-decoration:underline;font-size:.78rem;padding:0}.verTag{margin-top:10px;font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;opacity:.45}label.chip input[type=file]{display:none}label.photo{display:flex;align-items:center;gap:10px;cursor:pointer}
