:root{--chrome:#eeedea;--chrome-active:#e1dfda;--sheet:#fff;--raised:#f6f6f5;--sheet-edge:#e4e2dd;--border:#eceae6;--rule:#f1efec;--control:#d3d0ca;--text:#1a1a1e;--muted:#5f5b56;--faint:#6e6a64;--primary:#1d1f20;--accent:#2b3f7a;--accent-pale:#e8ecf6;--brand-red:#b42129;--positive:#247b50;--pill-positive-bg:#dcf5e5;--pill-positive-ink:#0d4a2a;--negative:#c4242a;--pill-negative-bg:#fdebe8;--pill-negative-ink:#831c1e;--pill-warning-bg:#fff6e0;--pill-warning-ink:#7a4a06;--pill-neutral-bg:#f0efec;--pill-neutral-ink:#3f3c38;--grid:#eceae6;--radius-sheet:16px;--radius-card:10px;--radius-control:8px;--radius-chip:999px;--gap:16px;--card-pad:20px;--pad:24px;--nav-row:34px;--control-height:34px;--row-height:48px;--font:"Mukta", "Nirmala UI", system-ui, sans-serif;--fs-title:22px;--fs-section:16px;--fs-kpi:26px;--fs-body:14px;--fs-small:12.5px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font:400 var(--fs-body)/1.45 var(--font);color:var(--text);background:var(--chrome);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,p{margin:0}a{color:inherit}.num,.id{font-variant-numeric:tabular-nums}.t td.id{white-space:nowrap}.muted{color:var(--muted)}.small{font-size:var(--fs-small)}.hi{color:var(--faint);font-size:12px;font-weight:400}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--accent-pale)}.app{grid-template-rows:48px minmax(0,1fr);grid-template-columns:228px minmax(0,1fr);height:100vh;display:grid}.side{flex-direction:column;grid-row:1/span 2;padding:10px 10px 12px;display:flex}.brand{align-items:center;gap:10px;padding:4px 8px 14px;display:flex}.brand svg{flex:none;width:30px;height:34px}.brand b{font-size:15px;font-weight:600;line-height:1.1;display:block}.brand span{color:var(--muted);font-size:12px}.nav{flex-direction:column;gap:2px;display:flex}.nav-group{color:var(--muted);margin:18px 10px 6px;font-size:12px}.nav a{border-radius:var(--radius-control);color:#3f3c38;align-items:center;gap:10px;height:32px;padding:0 10px;text-decoration:none;transition:background-color .15s;display:flex}.nav a:hover{background:#e7e5e1}.nav a.on{background:var(--chrome-active);color:var(--text);font-weight:500}.nav a svg{stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;opacity:.8;flex:none;width:16px;height:16px}.nav a .count{color:var(--muted);margin-left:auto;font-size:12px}.nav a .count.alert{color:#a01b21;font-weight:600}.side-foot{border-radius:var(--radius-control);align-items:center;gap:10px;margin-top:auto;padding:8px;display:flex}.side-foot .who b{font-weight:500;line-height:1.1;display:block}.side-foot .who span{color:var(--muted);font-size:12px}.side-foot button{margin-left:auto}.top{grid-column:2;align-items:center;gap:16px;padding:0 16px 0 0;display:flex}.search{width:548px;margin:0 auto;position:relative;transform:translate(-114px)}.search input{border:1px solid var(--control);border-radius:var(--radius-control);background:#fbfaf8;width:100%;height:32px;padding:0 64px 0 34px}.search>svg{width:14px;height:14px;stroke:var(--muted);fill:none;stroke-width:1.6px;position:absolute;top:9px;left:11px}.search kbd{font:500 11px var(--font);color:var(--muted);border:1px solid var(--control);border-radius:4px;padding:0 5px;position:absolute;top:6px;right:8px}.search-results{border:1px solid var(--border);border-radius:var(--radius-card);z-index:20;background:#fff;max-height:420px;padding:6px;position:absolute;top:38px;left:0;right:0;overflow:auto;box-shadow:0 8px 24px #0000001a}.search-results a{border-radius:6px;justify-content:space-between;gap:12px;padding:8px 10px;text-decoration:none;display:flex}.search-results a:hover,.search-results a.on{background:var(--raised)}.top-right{color:var(--muted);white-space:nowrap;align-items:center;gap:12px;font-size:13px;display:flex}.sheet{background:var(--sheet);border:1px solid var(--sheet-edge);border-radius:var(--radius-sheet);grid-column:2;min-height:0;margin:0 8px 8px 0;overflow:auto}.page{padding:var(--pad);max-width:1600px}.title-row{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:20px;display:flex}.title-row h1{font-size:var(--fs-title);font-weight:600;line-height:1.2}.title-row .sub{color:var(--muted);margin-top:4px}.title-row .sub b{color:var(--text);font-weight:600}.title-row .sub .late{color:var(--negative);font-weight:600}.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.crumb{color:var(--muted);margin-bottom:6px;font-size:13px}.crumb a{text-decoration:none}.crumb a:hover{text-decoration:underline}.btn{height:var(--control-height);border-radius:var(--radius-control);border:1px solid var(--control);cursor:pointer;white-space:nowrap;background:#fff;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-weight:500;text-decoration:none;transition:background-color .15s,border-color .15s,transform .1s;display:inline-flex}.btn:hover{background:var(--raised);border-color:#bdb9b2}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{background:#000}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--raised)}.btn.sm{height:28px;padding:0 10px;font-size:13px}.btn svg{stroke:currentColor;fill:none;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.btn kbd{font:500 11px var(--font);opacity:.7}.btn.wa{color:#0b6b3a}input.field,select.field,textarea.field{height:var(--control-height);border:1px solid var(--control);border-radius:var(--radius-control);background:#fff;min-width:0;padding:0 10px}textarea.field{resize:vertical;height:auto;padding:8px 10px}input.field:focus,select.field:focus,textarea.field:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-pale);outline:none}label.lbl{color:var(--muted);margin-bottom:4px;font-size:12.5px;display:block}.form-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px 16px;display:grid}.seg{border:1px solid var(--control);border-radius:var(--radius-control);display:inline-flex;overflow:hidden}.seg button{cursor:pointer;border:0;border-left:1px solid var(--control);background:#fff;height:32px;padding:0 12px}.seg button:first-child{border-left:0}.seg button.on{background:var(--primary);color:#fff}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--control);border-radius:var(--radius-chip);cursor:pointer;background:#fff;height:28px;padding:0 12px;font-size:13px}.chip:hover{border-color:#bdb9b2}.chip.on{background:var(--primary);border-color:var(--primary);color:#fff}.card{border:1px solid var(--border);border-radius:var(--radius-card);background:#fff}.card-head{padding:16px var(--card-pad) 0;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.card-head h2{font-size:var(--fs-section);font-weight:600}.card-head .meta{color:var(--muted);font-size:13px}.card-body{padding:12px var(--card-pad) var(--card-pad)}.grid{gap:var(--gap);display:grid}.grid>*{min-width:0}.g-2{grid-template-columns:repeat(2,minmax(0,1fr))}.g-3{grid-template-columns:repeat(3,minmax(0,1fr))}.g-main{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.g-side{grid-template-columns:minmax(0,1fr) 360px}.strip{border:1px solid var(--border);border-radius:var(--radius-card);margin-bottom:var(--gap);grid-template-columns:repeat(6,minmax(0,1fr));display:grid}.strip>a,.strip>div{border-left:1px solid var(--border);padding:14px 18px;text-decoration:none;display:block}.strip>:first-child{border-left:0}.strip>a:hover{background:var(--raised)}.strip .k{color:var(--muted);font-size:13px}.strip .v{font-size:var(--fs-kpi);margin-top:2px;font-weight:500;line-height:1.25}.strip .v.late{color:var(--negative)}.strip .s{color:var(--muted);font-size:12.5px}table.t{border-collapse:collapse;width:100%}.t th{color:var(--muted);text-align:left;white-space:nowrap;padding:0 12px 8px;font-size:12.5px;font-weight:400}.t td{height:var(--row-height);border-top:1px solid var(--rule);vertical-align:middle;padding:0 12px}.t tr.click{cursor:pointer}.t tr.click:hover td{background:#fbfaf9}.t th:first-child,.t td:first-child{padding-left:0}.t th:last-child,.t td:last-child{padding-right:0}.t .num,.t th.num{text-align:right}.t td .two b{font-weight:500;display:block}.t td .two span{color:var(--muted);font-size:12.5px}.card .t th:first-child,.card .t td:first-child{padding-left:var(--card-pad)}.card .t th:last-child,.card .t td:last-child{padding-right:var(--card-pad)}.view-all{padding:12px var(--card-pad);border-top:1px solid var(--rule);color:var(--muted);font-size:13px;text-decoration:none;display:block}.view-all:hover{color:var(--text)}.pill{border-radius:var(--radius-chip);white-space:nowrap;background:var(--pill-neutral-bg);height:22px;color:var(--pill-neutral-ink);align-items:center;padding:0 9px;font-size:12.5px;font-weight:500;display:inline-flex}.pill.ready{background:var(--pill-positive-bg);color:var(--pill-positive-ink)}.pill.late{background:var(--pill-negative-bg);color:var(--pill-negative-ink)}.pill.trial,.pill.warn{background:var(--pill-warning-bg);color:var(--pill-warning-ink)}.pill.done{color:var(--muted);background:0 0;padding:0}.late-text{color:var(--negative);font-weight:500}.ok-text{color:var(--positive);font-weight:500}.tabs{border-bottom:1px solid var(--border);gap:24px;margin-bottom:18px;display:flex}.tabs button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:0 0 10px;font-weight:500}.tabs button:hover{color:var(--text)}.tabs button.on{color:var(--text);border-bottom-color:var(--text)}.tabs .n{color:var(--faint);margin-left:6px;font-weight:400}.toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.toolbar input.field{width:300px}.pipeline{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.pipeline a{border-left:1px solid var(--rule);padding:14px 14px 12px;text-decoration:none;display:block}.pipeline a:first-child{border-left:0}.pipeline a:hover{background:var(--raised)}.pipeline .n{font-size:var(--fs-kpi);font-weight:500;line-height:1.2}.pipeline .bar{flex-wrap:wrap;gap:2px;margin-top:10px;display:flex}.pipeline .bar i{background:#cfccc6;border-radius:2px;width:7px;height:16px}.pipeline .bar i.d{background:var(--accent)}.pipeline .bar i.l{background:var(--negative)}.pipeline .s{color:var(--muted);margin-top:6px;font-size:12.5px}.board{align-items:start;gap:10px;padding-bottom:8px;display:grid}.col{background:var(--raised);border-radius:var(--radius-card);min-width:0;min-height:120px;padding:8px}.col-head b .hi{display:block}.col-head{justify-content:space-between;align-items:baseline;padding:2px 4px 10px;display:flex}.col-head b{font-weight:600}.job{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:8px;margin-bottom:8px;padding:10px 11px;transition:border-color .15s}.job:hover{border-color:#c9c5be}.job .row1{justify-content:space-between;gap:8px;display:flex}.job .g{font-weight:500}.job .who{color:var(--muted);font-size:12.5px}.job .row3{justify-content:space-between;align-items:center;margin-top:6px;font-size:12.5px;display:flex}.job .adv{width:100%;margin-top:8px}.bars .r{grid-template-columns:130px minmax(0,1fr) 44px;align-items:center;gap:12px;height:34px;display:grid}.bars .track{background:var(--rule);border-radius:3px;height:10px;display:flex;overflow:hidden}.bars .track i{background:var(--accent);height:100%;display:block}.bars .track i.late{background:var(--negative)}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart text{font:12px var(--font);fill:var(--muted)}.legend{color:var(--muted);gap:16px;font-size:12.5px;display:flex}.legend i{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:6px;display:inline-block}.sizemap{grid-template-columns:220px minmax(0,1fr);gap:20px;display:grid}.figure svg{width:100%;height:auto}.figure .body{fill:#f3f1ee;stroke:#cfcbc4;stroke-width:1.2px}.figure .mark{fill:#fff;stroke:#9b968e;stroke-width:1.4px;transition:fill .2s,stroke .2s,r .2s}.figure .mark.has{fill:var(--accent);stroke:var(--accent)}.figure .mark.hot{fill:var(--brand-red);stroke:var(--brand-red);r:7}.figure .line{stroke:#b9b4ac;stroke-width:1px;stroke-dasharray:3 3}.measures{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));align-content:start;gap:10px 14px;display:grid}.mfield label{justify-content:space-between;margin-bottom:3px;font-size:13px;display:flex}.mfield label .hi{margin-left:6px}.mfield input{border:1px solid var(--control);border-radius:var(--radius-control);width:100%;height:38px;font:500 17px var(--font);font-variant-numeric:tabular-nums;padding:0 10px}.mfield input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-pale);outline:none}.mfield.hot input{border-color:var(--accent);background:var(--accent-pale)}.mfield.flag input{background:#fff9ea;border-color:#d9a21b}.mfield .prev{color:var(--muted);min-height:17px;margin-top:2px;font-size:12px}.mfield .prev.changed{color:#8a5a00;font-weight:500}.part-tabs{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.voice{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--raised);align-items:center;gap:14px;margin-bottom:16px;padding:12px 14px;display:flex}.mic{background:var(--primary);color:#fff;cursor:pointer;border:0;border-radius:50%;flex:none;place-items:center;width:46px;height:46px;transition:transform .12s,background-color .2s;display:grid}.mic svg{stroke:currentColor;fill:none;stroke-width:1.8px;stroke-linecap:round;width:20px;height:20px}.mic:active{transform:scale(.95)}.mic.on{background:var(--brand-red);animation:1.4s ease-in-out infinite breathe}@keyframes breathe{50%{transform:scale(1.06)}}@media (prefers-reduced-motion:reduce){.mic.on{animation:none}}.voice .said{flex:1;min-width:0}.voice .said .live{min-height:24px;font-size:16px}.voice .said .help{color:var(--muted);font-size:12.5px}.voice .said .err{color:var(--negative);font-size:13px}.voice input.field{flex:1}.step{border:1px solid var(--border);border-radius:var(--radius-card);margin-bottom:var(--gap)}.step>.card-head{padding-bottom:0}.line-card{border:1px solid var(--border);border-radius:var(--radius-card);margin-bottom:12px;padding:16px}.summary{align-self:start;position:sticky;top:16px}.summary .rowx{justify-content:space-between;padding:6px 0;display:flex}.summary .rowx.total{border-top:1px solid var(--rule);margin-top:6px;padding-top:10px;font-size:16px;font-weight:600}.empty{padding:28px var(--card-pad);color:var(--muted)}.notice{border-radius:var(--radius-control);background:var(--pill-warning-bg);color:var(--pill-warning-ink);border:1px solid #f3dfae;padding:10px 14px;font-size:13.5px}.toast{background:var(--primary);color:#fff;z-index:50;border-radius:8px;padding:10px 16px;position:fixed;bottom:24px;right:24px;box-shadow:0 8px 24px #0000002e}.track{gap:4px;margin:10px 0 4px;display:flex}.track span{background:var(--rule);border-radius:3px;flex:1;height:6px}.track span.d{background:var(--accent)}.track-labels{color:var(--muted);justify-content:space-between;font-size:12px;display:flex}.login{background:var(--chrome);place-items:center;height:100vh;display:grid}.login-card{border:1px solid var(--sheet-edge);border-radius:var(--radius-sheet);background:#fff;width:420px;padding:32px}.login-card .brand{padding:0 0 20px}.users{grid-template-columns:1fr 1fr;gap:8px;margin:12px 0 18px;display:grid}.users button{text-align:left;border:1px solid var(--control);border-radius:var(--radius-control);cursor:pointer;background:#fff;padding:10px 12px}.users button.on{border-color:var(--primary);outline:1px solid var(--primary);outline-offset:-2px}.users button b{font-weight:500;display:block}.users button span{color:var(--muted);font-size:12px}.print-only{display:none}@media print{@page{size:80mm auto;margin:4mm}body{background:#fff}.app,.toast{display:none!important}.print-only{display:block}}.slip{width:72mm;font:400 11.5px/1.35 var(--font);color:#000}.slip h1{text-align:center;letter-spacing:.04em;font-size:16px;font-weight:700}.slip .c{text-align:center}.slip hr{border:0;border-top:1px dashed #000;margin:6px 0}.slip table{border-collapse:collapse;width:100%}.slip td{vertical-align:top;padding:1px 0}.slip td.r{text-align:right}.slip .qr{justify-content:center;margin:6px 0;display:flex}.slip .meas{columns:2;column-gap:8px}@media (width<=1099px){.app{grid-template-columns:64px minmax(0,1fr)}.side{padding:10px 8px}.brand div,.nav a>:not(svg),.nav-group,.side-foot .who,.side>.btn span,.side>.btn kbd{display:none}.side>.btn,.nav a{justify-content:center;padding:0}.search{flex:1;width:auto;margin:0 8px;transform:none}.top-right{display:none}.strip{grid-template-columns:repeat(3,minmax(0,1fr))}.strip>:nth-child(4){border-left:0}.strip>:nth-child(n+4){border-top:1px solid var(--border)}.g-main,.g-side,.g-2,.g-3{grid-template-columns:minmax(0,1fr)}.board{grid-template-columns:repeat(3,minmax(0,1fr))!important}.t{display:block;overflow-x:auto}.sizemap{grid-template-columns:1fr}.figure{max-width:180px}.page{padding:20px}}@media (width<=599px){.app{grid-template-rows:48px 56px minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.side{flex-direction:row;grid-row:2;align-items:center;gap:6px;padding:4px 8px;overflow-x:auto}.brand,.side-foot,.nav-group{display:none}.side>.btn{flex:none;width:40px;margin:0}.nav{flex-direction:row}.nav a{width:40px}.top{grid-column:1}.sheet{grid-area:3/1;margin:0 6px 6px}.strip{grid-template-columns:repeat(2,minmax(0,1fr))}.strip>:nth-child(odd),.strip>:nth-child(3){border-left:0}.strip>:nth-child(n+3){border-top:1px solid var(--border)}.strip>:nth-child(4){border-left:1px solid var(--border)}.board{grid-template-columns:minmax(0,1fr)!important}.title-row{flex-direction:column}}.tour{z-index:60;position:fixed;inset:0}.tour-dim{background:#1a1a1e85;position:fixed;inset:0}.tour-hole{border-radius:var(--radius-card);pointer-events:none;transition:top .2s,left .2s,width .2s,height .2s;position:fixed;box-shadow:0 0 0 2px #fff,0 0 0 9999px #1a1a1e85}.tour-card{background:var(--sheet);border-radius:12px;padding:18px 20px 16px;transition:top .2s,left .2s;position:fixed;box-shadow:0 12px 32px #00000038}.tour-card h2{margin:12px 0 6px;font-size:18px;font-weight:600}.tour-card p{font-size:14.5px;line-height:1.5}.tour-hi{color:var(--muted);margin-top:8px!important}.tour-progress{gap:3px;display:flex}.tour-progress span{background:var(--rule);border-radius:2px;flex:1;height:3px}.tour-progress span.d{background:var(--accent)}.tour-actions{align-items:center;gap:8px;margin-top:16px;display:flex}.tour-actions .small{margin-right:auto}@media (prefers-reduced-motion:reduce){.tour-hole,.tour-card{transition:none}}
