:root{color-scheme:light;--bg: #f4f6f8;--panel: #ffffff;--ink: #172026;--muted: #65737e;--line: #dce3e8;--brand: #0f766e;--brand-dark: #115e59;--soft: #e8f3f1;--bad: #b42318;--ok: #087443;--warn: #996515;font-family:Inter,Segoe UI,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button{min-height:38px;border:0;border-radius:6px;padding:0 13px;background:var(--brand);color:#fff;font-weight:800;cursor:pointer}button:hover{background:var(--brand-dark)}button:disabled{cursor:not-allowed;opacity:.45}button.secondary{background:#dcebe7;color:var(--brand-dark)}button.ghost{border:1px solid var(--line);background:transparent;color:var(--ink)}button.danger,.danger{background:#fff1ef;color:var(--bad)}input,select,textarea{width:100%;min-height:38px;border:1px solid var(--line);border-radius:6px;padding:8px 10px;background:#fff;color:var(--ink)}input:disabled,select:disabled,textarea:disabled{background:#eef2f4;color:#7a8790}textarea{min-height:82px;resize:vertical}.app-shell{min-height:100vh;display:grid;grid-template-columns:252px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:18px;border-right:1px solid var(--line);background:#fff;padding:20px 16px}.brand{display:grid;gap:4px}.brand span,.page-head p,.section-title p,.field span,.user-switch span,small,.muted{color:var(--muted);font-size:12px;font-weight:800}.brand strong{font-size:21px}.user-switch{display:grid;gap:6px}.user-card{display:grid;gap:8px;border:1px solid var(--line);border-radius:8px;padding:12px;background:#f8fbfb}.user-card strong{font-size:14px}.user-card span{color:var(--muted);font-size:12px;font-weight:900}.user-card button{width:100%}.role-pill,.status{display:inline-flex;align-items:center;width:max-content;min-height:30px;border-radius:999px;background:var(--soft);color:var(--brand-dark);padding:0 12px;font-size:13px;font-weight:900}nav{display:grid;gap:6px}nav button{justify-content:flex-start;width:100%;background:transparent;color:var(--ink);text-align:left}nav button.active,nav button:hover{background:var(--soft);color:var(--brand-dark)}.nav-group{display:grid;gap:6px}.nav-group+.nav-group{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.nav-group-label{margin:0 0 2px 4px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#eef7f4,#f8faf9 52%,#fff);padding:24px}.login-card{width:min(440px,100%);display:grid;gap:18px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:28px;box-shadow:0 18px 60px #0f172a1f}.login-card h1{margin:0;font-size:30px}.login-card p{margin:0;color:var(--muted)}.table-actions{display:inline-flex;flex-wrap:wrap;gap:6px}.section-title-actions{display:inline-flex;align-items:center;gap:10px}.user-management-head{margin-bottom:16px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;background:#1720266b;padding:22px}.modal-panel{width:min(620px,100%);max-height:calc(100vh - 44px);overflow:auto;display:grid;gap:18px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:22px;box-shadow:0 24px 70px #0f172a38}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.modal-head h2{margin:0}.icon-close{width:38px;padding:0}.workspace{min-width:0;padding:22px 26px 40px;overflow-x:hidden}.page-head,.section-title,.run-head,.section-line,.action-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.page-head{margin-bottom:18px}.page-head h1,.section-title h2,.run-head h3{margin:0}.page-head p,.section-title p{margin:0 0 3px;text-transform:uppercase}.notice,.panel,.dash-card,.metric{border:1px solid var(--line);border-radius:8px;background:var(--panel)}.notice{margin-bottom:14px;padding:12px 14px;font-weight:800}.ok-notice{border-color:#9bd8b9;background:#effaf4;color:var(--ok)}.bad-notice{border-color:#ffb4ab;background:#fff1ef;color:var(--bad)}.missing-fields ul{margin:8px 0 0;padding-left:20px}.required-star{margin-left:3px;color:var(--bad)}.panel,.dash-card{padding:18px;min-width:0}.screen-grid,.dashboard{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.two-column,.split-screen{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(0,1.4fr);gap:16px;align-items:start}.split-screen{grid-template-columns:300px minmax(0,1fr)}.wide{grid-column:1 / -1}.metric{padding:18px;display:grid;gap:8px}.metric span{color:var(--muted);font-weight:800}.metric strong{font-size:24px;line-height:1.15}.final-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}.workflow-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.workflow-step{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd;padding:12px}.workflow-step span{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--brand);color:#fff;font-weight:900}.waste-breakdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}.waste-breakdown span{border-left:3px solid var(--brand);border-radius:6px;background:var(--soft);color:var(--muted);padding:10px;font-size:12px;font-weight:800}.waste-breakdown strong{display:block;color:var(--ink);font-size:15px;margin-top:3px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr));gap:12px}.form-grid.compact{grid-template-columns:repeat(5,minmax(120px,1fr))}.field{display:grid;gap:6px}.field-line{display:flex;align-items:center;gap:7px}.field-line small{min-width:max-content}.toggle{min-height:38px;display:flex;align-items:center;gap:9px;color:var(--muted);font-weight:800}.toggle input{width:18px;min-height:18px}.readiness-item{padding:6px 0 10px;border-bottom:1px solid var(--line)}.readiness-item:last-child{border-bottom:0}.readiness-remarks{margin:4px 0 0 27px;width:calc(100% - 27px);font-size:13px;padding:6px 8px}.part-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0 18px}.runs,.record-list{display:grid;gap:10px;margin-top:12px}.run-card,.mini-card,.qty-box,.record,.approval-row,.reuse-box{border:1px solid var(--line);border-radius:8px;background:#fbfcfd;padding:14px;min-width:0}.mini-card,.qty-box{display:grid;gap:10px}.record{display:grid;gap:4px;width:100%;color:var(--ink);text-align:left}.record span,.approval-row span{color:var(--muted);font-size:13px;font-weight:700}.record.active{border-color:var(--brand);background:var(--soft)}.hint{margin:-4px 0 12px;color:var(--muted);font-size:13px;font-weight:600}.badge{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.03em;vertical-align:middle}.badge-hold{background:#fff1ef;color:var(--bad);border:1px solid #ffb4ab}.badge-rework{background:#fff7e6;color:#93650a;border:1px solid #f2c869}.list-panel{position:sticky;top:20px}.approval-row{display:grid;grid-template-columns:minmax(240px,1.4fr) auto minmax(220px,1fr) auto auto;align-items:center;gap:10px}.approval-row>div,.approval-snapshot,.job-approval-row{min-width:0}.job-approval-row{grid-template-columns:minmax(0,1fr) auto;align-items:start}.job-approval-row .secondary{white-space:nowrap}.reuse-box{display:grid;gap:10px;margin-top:12px}.screen-stack{display:grid;gap:14px}.segmented{display:inline-flex;gap:8px;flex-wrap:wrap}.stock-logo{border-bottom:2px solid var(--ink);padding-bottom:8px;font-size:20px;font-weight:900;text-transform:uppercase}.stock-print h1{text-align:center;margin:16px 0;font-size:24px}.stock-print h2{margin-top:22px}.signature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px;margin-top:12px}.signature-grid div{display:grid;gap:24px;color:var(--muted);font-weight:800}.signature-grid strong{display:block;border-bottom:1px solid var(--ink);min-height:22px}.stock-print footer{margin-top:28px;border-top:1px solid var(--line);padding-top:10px;color:var(--muted);text-align:center;font-size:12px;font-weight:800}.summary-grid{display:grid;grid-template-columns:1fr auto;gap:10px 16px;margin-top:12px}.summary-grid span{color:var(--muted)}.summary-sections{display:grid;gap:14px;margin-top:16px}.table-wrap{width:100%;max-width:100%;overflow-x:auto}table{width:100%;min-width:720px;border-collapse:collapse}th,td{border-bottom:1px solid var(--line);padding:10px;text-align:left;white-space:nowrap}th{color:var(--muted);font-size:12px;text-transform:uppercase}.empty{border:1px dashed var(--line);border-radius:8px;padding:18px;color:var(--muted);font-weight:800}.fatal{max-width:720px;margin:80px auto;border:1px solid var(--line);border-radius:8px;background:#fff;padding:24px}h3{margin:18px 0 8px}@media(max-width:1180px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}nav{grid-template-columns:repeat(3,1fr)}.two-column,.split-screen,.screen-grid{grid-template-columns:1fr}.list-panel{position:static}}@media(max-width:760px){.workspace{padding:14px}nav,.form-grid,.form-grid.compact,.part-grid,.approval-row,.final-summary,.workflow-grid,.waste-breakdown{grid-template-columns:1fr}.page-head,.section-title,.run-head,.section-line,.action-row{align-items:stretch;flex-direction:column}}.floor-screen button{min-height:56px;font-size:20px;padding:0 22px}.floor-screen .field select,.floor-screen .field input,.floor-screen .field textarea{min-height:48px;font-size:18px}.scan-box label{display:grid;gap:8px}.scan-input{font-size:28px;padding:14px 16px;min-height:56px;width:100%;border:2px solid var(--brand);border-radius:10px}.ticket-header{border-bottom:3px solid #c9a227;padding-bottom:8px;margin-bottom:12px}.ticket-header strong{display:block;font-size:22px;text-transform:uppercase;color:#1b2a4a}.ticket-header span{display:block;color:#c9a227;font-size:13px;font-weight:700}.ticket-batch-number{font-size:32px;font-weight:900;letter-spacing:.05em;text-align:center;color:#1b2a4a;margin:12px 0 4px}.ticket-barcode{display:block;margin:0 auto 16px}@media print{@page{size:A4 portrait;margin:12mm}body{background:#fff}.sidebar,.page-head,.notice,.list-panel,.no-print,.stock-print>.action-row{display:none!important}.app-shell,.workspace,.split-screen{display:block;min-height:auto;padding:0}.panel,.dash-card,.stock-print,.roll-ticket{border:0;border-radius:0;padding:0;box-shadow:none}.print-page{width:100%}table{min-width:0;font-size:10px}th,td{padding:5px;white-space:normal}input,select,textarea,button{border:0;background:transparent;color:#000;padding:0;min-height:auto}}
