:root{--bg:#f4f6f9;--card:#fff;--ink:#1a2332;--muted:#6b7a90;--line:#e3e8ef;--accent:#1668dc;--green:#16a34a;--red:#dc2626;--amber:#d97706}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:-apple-system,PingFang SC,Microsoft YaHei,Helvetica Neue,sans-serif;font-size:15px}a{color:inherit;text-decoration:none}.nav{display:flex;align-items:center;gap:4px;background:#0f172a;padding:0 20px;height:52px;position:-webkit-sticky;position:sticky;top:0;z-index:50}.nav .brand{color:#fff;font-weight:700;font-size:16px;margin-right:24px;letter-spacing:.5px}.nav .brand span{color:#4d9fff}.nav a.tab{color:#94a3b8;padding:6px 14px;border-radius:8px;font-size:14px;line-height:40px}.nav a.tab:hover{color:#fff}.nav a.tab.active{color:#fff;background:rgba(77,159,255,.18)}.page{max-width:1080px;margin:0 auto;padding:24px 20px 64px}.page h1{font-size:20px;margin:0 0 16px}.page .sub{color:var(--muted);font-size:13px;margin-top:-10px}.card,.page .sub{margin-bottom:16px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 20px}table.grid{width:100%;border-collapse:collapse;font-size:14px}table.grid th{text-align:left;color:var(--muted);font-weight:500;font-size:12.5px;padding:8px 10px;white-space:nowrap}table.grid td,table.grid th{border-bottom:1px solid var(--line)}table.grid td{padding:10px;vertical-align:middle}table.grid tr:last-child td{border-bottom:none}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:500;white-space:nowrap}.badge.pending{background:#f1f5f9;color:#64748b}.badge.in_production{background:#e0edff;color:#1668dc}.badge.done{background:#dcfce7;color:#15803d}.badge.hold{background:#fef3c7;color:#b45309}.btn{display:inline-block;border:none;cursor:pointer;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:500;background:var(--accent);color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.ghost{background:transparent;color:var(--accent);border:1px solid var(--accent)}.btn.small{padding:4px 10px;font-size:12.5px;border-radius:6px}.btn.gray{background:#e2e8f0;color:#334155}form.row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.field{display:flex;flex-direction:column;gap:4px}.field label{font-size:12.5px;color:var(--muted)}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:14px;font-family:inherit;background:#fff;min-width:140px}.field input:focus,.field select:focus{outline:2px solid rgba(22,104,220,.25);border-color:var(--accent)}.progress{height:6px;background:#eef2f7;border-radius:999px;overflow:hidden;min-width:90px}.progress>div{height:100%;background:var(--accent);border-radius:999px}.progress.done>div{background:var(--green)}.muted{color:var(--muted)}.right{text-align:right}.flex{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.mt8{margin-top:8px}.mt16{margin-top:16px}.dash{min-height:100vh;background:radial-gradient(1200px 600px at 50% -10%,#12294d 0,#0a1424 55%,#060b14 100%);color:#dbe7ff;padding:28px 36px 40px}.dash-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:24px}.dash-header h1{font-size:26px;margin:0;color:#fff;letter-spacing:2px;font-weight:700}.dash-header h1 span{color:#4d9fff}.dash-clock{font-size:15px;color:#7d93b8;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:18px;gap:18px;margin-bottom:18px}.kpi{background:linear-gradient(160deg,rgba(38,68,118,.45),rgba(16,28,52,.7));border:1px solid rgba(93,143,214,.25);border-radius:14px;padding:20px 22px}.kpi .label{font-size:13px;color:#8aa4cc;margin-bottom:8px}.kpi .value{font-size:42px;font-weight:700;color:#fff;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi .value small{font-size:16px;color:#8aa4cc;font-weight:400;margin-left:4px}.kpi .foot{font-size:12.5px;color:#6d84ab;margin-top:8px}.kpi .value.green{color:#34d399}.kpi .value.amber{color:#fbbf24}.kpi .value.red{color:#f87171}.dash-grid{display:grid;grid-template-columns:1.2fr 1fr;grid-gap:18px;gap:18px}.panel{background:linear-gradient(160deg,rgba(38,68,118,.35),rgba(16,28,52,.6));border:1px solid rgba(93,143,214,.22);border-radius:14px;padding:18px 20px}.panel h2{font-size:15px;margin:0 0 14px;color:#b9cdf0;font-weight:600;letter-spacing:1px}.bars{display:flex;align-items:flex-end;gap:18px;height:190px;padding-top:8px}.bars .bar-wrap{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:8px;height:100%;justify-content:flex-end}.bars .bar{width:70%;max-width:56px;background:linear-gradient(180deg,#4d9fff,#1668dc);border-radius:6px 6px 0 0;min-height:4px;position:relative}.bars .bar.defect{background:linear-gradient(180deg,#f87171,#dc2626)}.bars .bar-num{font-size:12px;color:#8aa4cc;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bars .bar-day{font-size:12px;color:#6d84ab}table.dash-table{width:100%;border-collapse:collapse;font-size:13.5px}table.dash-table th{text-align:left;color:#6d84ab;font-weight:500;padding:7px 8px;border-bottom:1px solid rgba(93,143,214,.2);font-size:12.5px}table.dash-table td{padding:8px;border-bottom:1px solid rgba(93,143,214,.12);color:#c6d6f2}table.dash-table tr:last-child td{border-bottom:none}.report-wrap{min-height:100vh;background:var(--bg);display:flex;justify-content:center}.report-card{width:100%;max-width:460px;padding:24px 20px 48px;background:#fff;min-height:100vh}.report-card h1{font-size:19px;margin:0 0 4px}.report-order{background:#f0f6ff;border:1px solid #d3e4ff;border-radius:12px;padding:14px 16px;margin:16px 0}.report-order .row{display:flex;justify-content:space-between;padding:4px 0;font-size:14px}.report-order .row .k{color:var(--muted)}.worker-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px;margin:10px 0 6px}.worker-grid button{border:1.5px solid var(--line);background:#fff;border-radius:10px;padding:14px 4px;font-size:15px;cursor:pointer;font-family:inherit}.worker-grid button.sel{border-color:var(--accent);background:#eaf3ff;color:var(--accent);font-weight:600}.qty-row{display:flex;gap:12px;margin:14px 0}.qty-row .field{flex:1 1}.qty-row input{font-size:20px;text-align:center;padding:12px;width:100%}.btn.big{width:100%;padding:15px;font-size:17px;border-radius:12px;margin-top:10px}.toast{border-radius:10px;padding:12px 14px;font-size:14px;margin-top:14px}.toast.ok{background:#dcfce7;color:#15803d}.toast.err{background:#fee2e2;color:#b91c1c}.print-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px}.qr-card{border:1px dashed #94a3b8;border-radius:10px;padding:16px;text-align:center;background:#fff;page-break-inside:avoid}.qr-card img{width:150px;height:150px}.qr-card .no{font-weight:700;font-size:14px;margin-top:6px}.qr-card .info{font-size:12px;color:var(--muted);margin-top:2px}@media print{.nav,.no-print{display:none!important}body{background:#fff}.page{padding:0;max-width:none}}.step-title{font-size:15px;font-weight:700;margin-top:18px}.step-hint{font-size:12.5px;color:var(--muted);margin:4px 0 8px;line-height:1.6}.ex-box{margin-top:22px;border:1px solid #f5d08a;background:#fffbeb;border-radius:12px;padding:12px 14px}.ex-toggle{width:100%;border:none;background:transparent;color:#b45309;font-size:14.5px;font-weight:600;cursor:pointer;padding:4px 0;text-align:left;font-family:inherit}@media (max-width:720px){table.grid thead{display:none}table.grid,table.grid tbody{display:block;width:100%}table.grid tr{display:block;border:1px solid var(--line);border-radius:12px;margin-bottom:12px;padding:10px 12px;background:#fff}table.grid td{display:flex;align-items:center;gap:8px;border-bottom:none;padding:5px 0;text-align:left!important}table.grid td:before{content:attr(data-label);color:var(--muted);font-size:12px;flex:0 0 64px}table.grid td[data-label=""]:before{display:none}.page{padding:16px 12px 56px}form.row{gap:8px}form.row .field,form.row .field input,form.row .field select{min-width:0;width:100%}form.row{flex-direction:column;align-items:stretch}.print-grid{grid-template-columns:1fr}}@media (max-width:860px){.kpi-row{grid-template-columns:repeat(2,1fr)}.dash-grid{grid-template-columns:1fr}.dash{padding:18px 14px 32px}.kpi .value{font-size:34px}}@media (max-width:420px){.kpi-row{gap:10px}.kpi{padding:14px}.kpi .value{font-size:28px}.bars{gap:8px}}