:root{--bg: #F4F1FB;--bg-elev: #FBFAFE;--surface: #FFFFFF;--surface-2: #F0EDFA;--border: #E7E2F4;--border-strong:#D4CDEB;--ink: #1B1733;--ink-2: #3F3960;--muted: #79749A;--muted-2: #A09BBE;--primary: #14B8A6;--primary-ink: #0E8E80;--primary-soft: #C6F3EC;--primary-tint: #E6FAF6;--mint: #14B8A6;--indigo: #7C6CF5;--indigo-soft: #E8E5FB;--amber: #D97706;--amber-bg: #FEF1D6;--rose: #EC4899;--rose-ink: #BE185D;--rose-bg: #FCE7F0;--green: #10B981;--green-bg: #D4F5E5;--slate-bg: #ECE9F6;--grad-feature: linear-gradient(135deg, #5EEAD4 0%, #A78BFA 55%, #F472B6 100%);--grad-soft: linear-gradient(135deg, #DEFCF5 0%, #E8E5FB 50%, #FCE7F0 100%);--grad-purple: linear-gradient(135deg, #C4B5FD 0%, #DDD6FE 60%, #FBCFE8 100%);--grad-mint: linear-gradient(135deg, #99F6E4 0%, #BAE6FD 100%);--s-prep: #8A6D43;--s-prep-bg: #F1E8D9;--s-assemble: #7C6CF5;--s-assemble-bg:#E8E5FB;--s-sand: #D97706;--s-sand-bg: #FEF1D6;--s-paint: #EC4899;--s-paint-bg: #FCE7F0;--s-qc: #06B6D4;--s-qc-bg: #D6F4FA;--s-pack: #0EA5E9;--s-pack-bg: #D5EEFB;--s-ready: #10B981;--s-ready-bg: #D4F5E5;--s-defect: #F43F5E;--s-defect-bg: #FEE2E8;--radius-xs: 6px;--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--radius-xl: 22px;--shadow-sm: 0 1px 2px rgba(80,60,140,.06);--shadow: 0 1px 2px rgba(80,60,140,.04), 0 10px 28px rgba(80,60,140,.08);--shadow-lg: 0 2px 4px rgba(80,60,140,.05), 0 24px 60px rgba(80,60,140,.14);--font-th: "Noto Sans Thai Looped", "Noto Sans Thai", system-ui, sans-serif;--font-en: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-th);background:radial-gradient(ellipse 1100px 800px at 0% 0%,#DEFCF5 0%,transparent 55%),radial-gradient(ellipse 1000px 700px at 100% 30%,#F2E2FF 0%,transparent 55%),radial-gradient(ellipse 900px 600px at 80% 100%,#FCE7F0 0%,transparent 55%),var(--bg);background-attachment:fixed;color:var(--ink);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01";font-size:14px;line-height:1.5}.mono{font-family:var(--font-mono)}.en{font-family:var(--font-en)}.app{min-height:100vh;display:grid;grid-template-rows:auto 1fr}.topbar{background:#ffffffb3;border-bottom:1px solid var(--border);padding:10px 22px;display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:50;backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%)}.brand{display:flex;align-items:center;gap:10px;font-weight:600;letter-spacing:-.01em}.brand .mark{width:30px;height:30px;border-radius:10px;background:var(--grad-feature);display:grid;place-items:center;color:#fff;font-family:var(--font-en);font-weight:700;font-size:13px;box-shadow:inset 0 -2px #0000001a,0 2px 8px #a78bfa66}.brand .name{font-family:var(--font-en);font-size:14px}.brand .name b{letter-spacing:-.02em}.brand .sep{color:var(--muted-2)}.brand .sub{color:var(--muted);font-weight:400;font-size:13px}.view-switcher{margin-left:auto;display:flex;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:3px;gap:2px}.view-switcher button{font:inherit;background:transparent;border:0;padding:7px 12px;border-radius:7px;color:var(--muted);cursor:pointer;display:flex;align-items:center;gap:6px;font-size:13px;transition:all .15s}.view-switcher button:hover{color:var(--ink)}.view-switcher button.active{background:var(--primary);color:#fff;box-shadow:0 2px 8px #14b8a659}.view-switcher .dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.5}.topbar .user{display:flex;align-items:center;gap:10px;padding:4px 4px 4px 12px;border-left:1px solid var(--border);margin-left:4px;color:var(--muted);font-size:13px}.topbar .avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#5eead4,#a78bfa 50%,#f472b6);color:#fff;display:grid;place-items:center;font-family:var(--font-th);font-weight:600;font-size:12px;box-shadow:0 2px 8px #a78bfa59}.stack{display:flex;flex-direction:column}.row{display:flex;align-items:center}.grow{flex:1}.muted{color:var(--muted)}.muted-2{color:var(--muted-2)}.tiny{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-family:var(--font-en);font-weight:500}.label{font-size:12px;color:var(--muted)}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.01em}h1{font-size:29px;letter-spacing:-.02em}h2{font-size:22px}h3{font-size:18px}button{font-family:inherit}.btn{display:inline-flex;align-items:center;gap:8px;background:var(--ink);color:#fff;border:0;padding:10px 16px;border-radius:999px;font:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:all .18s cubic-bezier(.2,.7,.2,1);box-shadow:inset 0 -1px #ffffff1a,0 2px 6px #1b17332e}.btn:hover{transform:translateY(-1px);box-shadow:inset 0 -1px #ffffff1a,0 4px 14px #1b173338}.btn.primary{background:var(--primary);box-shadow:inset 0 -1px #ffffff1a,0 2px 8px #14b8a659}.btn.primary:hover{box-shadow:inset 0 -1px #ffffff1a,0 4px 16px #14b8a673}.btn.ghost{background:#ffffffb3;color:var(--ink);box-shadow:none;border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn.ghost:hover{background:var(--surface);border-color:var(--border-strong)}.btn.danger{background:var(--rose);box-shadow:inset 0 -1px #ffffff1a,0 2px 8px #ec489959}.btn.lg{padding:12px 18px;font-size:14px}.btn .ico{width:16px;height:16px}input,select,textarea{font:inherit;width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 11px;color:var(--ink);transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #14b8a62e}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;color:var(--muted);font-weight:500}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card.feature{background:var(--grad-soft);border:1px solid rgba(255,255,255,.7);position:relative;overflow:hidden}.card.feature:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 80% 20%,rgba(255,255,255,.6),transparent 50%);pointer-events:none}.card.pad{padding:18px 20px}.card .head{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}.card .head h3{font-size:17px}.card .head .right{margin-left:auto}.card .body{padding:16px 18px}.card .body.tight{padding:12px 14px}.card .body.flush{padding:0}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.02em;font-family:var(--font-en)}.chip .d{width:5px;height:5px;border-radius:50%;background:currentColor}.chip.prep{background:var(--s-prep-bg);color:var(--s-prep)}.chip.assemble{background:var(--s-assemble-bg);color:var(--s-assemble)}.chip.sand{background:var(--s-sand-bg);color:var(--s-sand)}.chip.paint{background:var(--s-paint-bg);color:var(--s-paint)}.chip.qc{background:var(--s-qc-bg);color:var(--s-qc)}.chip.pack{background:var(--s-pack-bg);color:var(--s-pack)}.chip.ready{background:var(--s-ready-bg);color:var(--s-ready)}.chip.shipped{background:#dee9ff;color:#1d4ed8}.chip.defect{background:var(--s-defect-bg);color:var(--s-defect)}.chip.queued{background:var(--slate-bg);color:var(--muted)}.divider{height:1px;background:var(--border)}.kbd{font-family:var(--font-mono);font-size:11px;background:var(--surface);border:1px solid var(--border);border-bottom-width:2px;border-radius:4px;padding:1px 5px;color:var(--muted)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:10px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:var(--muted-2);background-clip:padding-box;border:2px solid transparent}.surface-grad-soft{background:var(--grad-soft)}.surface-grad-purple{background:var(--grad-purple)}.surface-grad-mint{background:var(--grad-mint)}.surface-grad-feature{background:var(--grad-feature);color:#fff}.fab{position:fixed;right:28px;bottom:28px;width:56px;height:56px;border-radius:50%;background:var(--primary);color:#fff;border:0;display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 24px #14b8a673;z-index:60}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes mokuruPulse{0%{box-shadow:0 0 #10b98180}70%{box-shadow:0 0 0 6px #10b98100}to{box-shadow:0 0 #10b98100}}@keyframes scanLine{0%{top:35px}50%{top:calc(100% - 35px)}to{top:35px}}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@keyframes pop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.1);opacity:1}to{transform:scale(1);opacity:1}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 1100px){[style*="grid-template-columns: 1fr 1.6fr"],[style*="grid-template-columns: 1.6fr 1fr"],[style*="grid-template-columns: 1.4fr 1fr"],[style*="grid-template-columns: 380px 1fr"],[style*="grid-template-columns: 1fr 380px"],[style*="grid-template-columns: 1.3fr 1fr"]{grid-template-columns:1fr!important}}@media (max-width: 900px){[style*="grid-template-columns: repeat(4"],[style*="grid-template-columns: repeat(3"]{grid-template-columns:repeat(2,1fr)!important}}@media (max-width: 760px){body{font-size:16px}.topbar{padding:8px 12px;gap:8px}.brand .name .sub,.brand .name .sep{display:none}.brand .name b{font-size:13px}.topbar .user .text-block,.topbar .user>div:first-child{display:none}.topbar .user{padding:4px 0 4px 8px}.view-switcher{margin-left:auto;overflow-x:auto;max-width:100%;scrollbar-width:none}.view-switcher::-webkit-scrollbar{display:none}.view-switcher button{padding:7px 10px;font-size:12px;flex-shrink:0}.view-switcher button>span:not(.dot):last-child{display:none}[style*="grid-template-columns: repeat(4"],[style*="grid-template-columns: repeat(3"],[style*="grid-template-columns: repeat(2"],[style*="grid-template-columns: 1fr 1fr"],[style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr!important}.app>div[data-screen-label]>div{padding:14px!important;gap:14px!important}.card .head{padding:12px 14px;flex-wrap:wrap;gap:8px}.card .head h3{font-size:16px}.card .body{padding:12px 14px}.card .body.flush{padding:0}.card.pad{padding:14px 16px!important}.card .body.flush>div[style*=grid-template-columns]{min-width:700px}.card .body.flush{overflow-x:auto}h1{font-size:23px}h2{font-size:19px}.app.worker-app{display:block!important;height:100dvh!important;min-height:100dvh!important;overflow:hidden!important}.app.worker-app>div[data-screen-label]{height:100%}.mobile-worker-stage,.app>div[data-screen-label]>.mobile-worker-stage{padding:0!important;background:transparent!important;min-height:0!important;height:100%!important}.mobile-worker-side{display:none!important}.phone-frame{width:100%!important;height:100%!important;border-radius:0!important;border:0!important;box-shadow:none!important}.phone-frame .notch,.phone-frame .status-bar{display:none!important}.btn.lg{padding:11px 16px}.kanban-grid{display:flex!important;overflow-x:auto;gap:10px}.kanban-grid>*{min-width:250px}.notification-panel{width:92vw!important;right:-8px!important}}@media (pointer: coarse){.btn{padding:11px 16px}input,select,textarea{padding:11px 12px;font-size:14px}}.mobile-mini-kpi{grid-template-columns:repeat(3,1fr)}html,body{overflow-x:hidden;max-width:100%}.print-sheet{display:none}.print-sheet{background:#fff;color:#000;font-family:var(--font-th)}.print-header{text-align:center;margin-bottom:8mm}.print-title{font-size:14pt;font-weight:700}.print-subtitle{font-size:10pt;color:#555;margin-top:1mm}.print-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4mm}.print-label{border:.3mm solid #000;overflow:hidden;break-inside:avoid;page-break-inside:avoid;background:#fff;color:#000;display:flex;flex-direction:column;font-family:var(--font-th)}.print-label-head{display:flex;align-items:center;justify-content:space-between;gap:2mm;padding:.8mm 2.5mm;border-bottom:.3mm solid #000}.print-set{font-size:9.5pt;font-weight:700;line-height:1.1}.print-piece{font-size:9.5pt;font-weight:700;line-height:1.1;white-space:nowrap}.print-label-body{flex:1;min-height:0;display:flex;gap:2.5mm;align-items:stretch;padding:1.2mm 2.5mm 2mm}.print-label-body>svg{flex-shrink:0;align-self:center}.print-label-text{flex:1;min-width:0;display:flex;flex-direction:column;color:#000}.print-lead-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5mm}.print-product{font-size:11pt;font-weight:700;line-height:1.1;min-width:0}.print-color-box{flex-shrink:0;display:flex;flex-direction:column;align-items:center;border:.3mm solid #000;border-radius:1mm;padding:.3mm 1.5mm;line-height:1.05;text-align:center}.print-color-box span{font-size:6pt;color:#333}.print-color-box b{font-size:9.5pt;letter-spacing:.02em}.print-product-sku{font-size:9.5pt;font-weight:600;line-height:1.1;color:#333;margin-top:1mm;word-break:break-all}.print-part-name{font-size:9pt;font-weight:600;line-height:1.1;margin-top:1mm}.print-part-code{font-size:10.5pt;font-weight:700;letter-spacing:.03em;line-height:1.1;margin-top:1mm}.print-foot{margin-top:auto;padding-top:1mm;border-top:.3mm solid #000;display:flex;align-items:baseline;justify-content:space-between;gap:2.5mm}.print-customer{min-width:0;color:#444;font-size:7pt;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.print-order{flex-shrink:0;color:#444;font-size:7pt;line-height:1.2}@media print{@page{size:A4;margin:0}html,body{background:#fff!important;margin:0!important;padding:0!important;overflow:visible!important;max-width:none!important}body>#root{display:none!important}.print-sheet{display:block!important;width:210mm!important;margin:0 auto!important;background:#fff!important}.print-header{display:none!important}.print-grid{display:grid!important;grid-template-columns:repeat(3,70mm)!important;grid-auto-rows:37.1mm!important;gap:0!important;width:210mm!important}.print-label{width:70mm!important;height:37.1mm!important;box-sizing:border-box!important;border-radius:0!important}}
