:root{color-scheme:light;--ink:#243a2f;--muted:#647269;--line:#dde4da;--green:#315f4b;--paper:#f5f6f0;--surface:#fff;--soft:#edf3e9;--amber:#885221}*{box-sizing:border-box}html{scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.65 Arial,Noto Sans Thai,Tahoma,sans-serif}button,input,select{font:inherit}a,button{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit;text-decoration:none}a,button,input,select,summary{outline-offset:4px}:focus-visible{outline:2px solid var(--green)}a,button,summary{touch-action:manipulation}h1,h2,h3,p{margin:0}h1,h2,h3,strong{font-weight:500}svg{flex-shrink:0;stroke-width:1.7}.app-shell{display:flex;min-height:100vh}.skip-link{position:fixed;left:16px;top:-100px;background:var(--green);color:white;padding:12px;z-index:10}.skip-link:focus{top:16px}.sidebar{position:fixed;inset:0 auto 0 0;width:220px;background:#fbfcf8;border-right:1px solid var(--line);padding:32px 20px 20px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;font-size:28px;line-height:1;letter-spacing:-1px}.brand-mark{width:40px;height:40px;display:grid;place-items:center;border-radius:12px 12px 12px 2px;color:white;background:var(--green)}.brand small{display:block;letter-spacing:0;margin-top:8px}.brand small,.workspace-label{font-size:11px;color:var(--muted)}.workspace-label{margin:40px 8px 16px}.nav-links{display:grid;grid-gap:4px;gap:4px}.nav-links a{display:flex;gap:12px;align-items:center;min-height:44px;padding:8px 12px;border-radius:6px;color:#56695b}.nav-links a:focus-visible,.nav-links a:hover{background:var(--soft);color:var(--green)}.nav-number{font:11px/1.5 monospace;color:#6c7e6b;width:18px}.sidebar-note{margin-top:auto;padding:24px 12px;border-top:1px solid var(--line);color:var(--green)}.sidebar-note strong{display:block;margin:8px 0}.sidebar-note p{font-size:12px;color:var(--muted)}.sidebar-footer{border-top:1px solid var(--line);padding-top:16px;font-size:11px;color:var(--muted);display:flex;gap:8px;align-items:center}.sample-dot{width:6px;height:6px;flex:none;border-radius:50%;background:#53754e;display:inline-block}.main{margin-left:220px;width:calc(100% - 220px);min-width:0}.topbar{background:#fbfcf8;min-height:64px;border-bottom:1px solid var(--line);padding:16px 36px;display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted)}.breadcrumb-separator{margin:0 12px;color:#899388}.sample-pill{display:inline-flex;align-items:center;gap:8px;border:1px solid #d9e4d2;background:var(--soft);border-radius:20px;padding:4px 12px;color:#415b42;font-size:11px}.content{max-width:1600px;margin:auto;padding:36px 36px 16px}.page-title{display:flex;align-items:center;justify-content:space-between;gap:24px}.eyebrow{font-size:11px;letter-spacing:1px;color:#627260}.eyebrow,h1{line-height:1.5}h1{font-size:clamp(24px,2.2vw,32px);letter-spacing:-.5px;margin:8px 0}.page-title>div>p:last-child{color:var(--muted)}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border-radius:6px;border:1px solid transparent;font-size:13px}.primary-button{background:var(--green);color:white}.primary-button:hover:not(:disabled){background:#234b38}.primary-button:disabled{background:#e8ede5;color:#52634f;border-color:#d8e0d2}.secondary-button{background:#f1f4ed;color:var(--ink);border-color:var(--line)}.secondary-button:hover{background:#e4ebdf}.demo-notice{margin:24px 0;border:1px solid #d9e4d2;background:#edf3e9;border-radius:6px;padding:12px 16px;display:flex;align-items:flex-start;gap:12px;font-size:12px;color:#52644e}.demo-notice svg{margin-top:2px}.demo-notice strong{color:#345331;margin-right:8px}.workflow{display:flex;gap:12px;margin:0 0 24px;flex-wrap:wrap}.workflow a{display:flex;align-items:center;gap:8px;color:#52674f;font-size:12px;min-height:36px}.workflow a>span{display:grid;place-items:center;border:1px solid #cddac5;background:#fcfdf9;border-radius:50%;width:24px;height:24px;font:11px monospace}.workflow svg{margin-left:8px;color:#74856e}.workflow a:hover{text-decoration:underline}.stats{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px;margin-bottom:24px}.card,.stat{border:1px solid var(--line);background:var(--surface);border-radius:8px;min-width:0}.stat{padding:20px}.stat-top{display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--muted);font-size:12px}.stat-top svg{color:#6e8468}.stat-value{display:flex;align-items:baseline;gap:8px;font-size:32px;line-height:1.3;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin:12px 0 8px}.stat-value small{font-size:12px;color:var(--muted)}.stat p{font-size:11px;color:var(--muted)}.primary-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(340px,1fr);align-items:start;grid-gap:24px;gap:24px}.card{padding:24px;scroll-margin-top:24px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.modal h2,.section-heading h2{font-size:20px;line-height:1.5;margin-top:4px}.card-subtitle{color:var(--muted);font-size:12px;margin:8px 0 20px}.count-label{font-size:11px;color:#4e6549;background:#eff4eb;border:1px solid #e0e8da;padding:4px 8px;border-radius:4px;white-space:nowrap}.order-id{font:11px/1.7 monospace;letter-spacing:.5px;color:#60735b}.search{display:flex;align-items:center;gap:8px;border:1px solid #cdd7c7;border-radius:5px;padding:0 12px;margin-bottom:16px;color:var(--muted)}.search:focus-within{outline:2px solid var(--green);outline-offset:2px}.search input{border:0;background:transparent;min-width:0;width:100%;min-height:44px;outline:none;font-size:12px;color:var(--ink)}.search input::placeholder{color:#6b7865}.order-table{border-collapse:collapse;width:100%;text-align:left;table-layout:fixed;font-size:12px}.order-table th{font-size:11px;font-weight:400;color:var(--muted);padding:12px 8px;border-bottom:1px solid var(--line)}.order-table th:first-child,.order-table th:nth-child(2){width:29%}.order-table th:nth-child(3){width:24%}.order-table th:last-child{width:18%}.order-table td{border-bottom:1px solid #e9eee5;padding:20px 8px;vertical-align:top;overflow-wrap:anywhere}.selected-row{background:#f0f5eb}.selected-row td:first-child{box-shadow:inset 3px 0 #315f4b}.cell-sub{display:block;color:var(--muted)}.cell-sub,.status{font-size:11px;margin-top:4px}.status{display:inline-block;border-radius:4px;padding:3px 6px;line-height:1.6}.status.green{background:#e9f2e3;color:#3b6434}.status.sand{background:#faf0df;color:#805220}.row-button{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:44px;padding:8px;background:white;color:var(--green);border:1px solid #cad8c2;border-radius:4px;font-size:11px}.row-button:hover,.row-button[aria-pressed=true]{border-color:var(--green);background:#e8f0e1}.table-footer{font-size:11px;color:var(--muted);margin-top:20px}.mobile-label{display:none}.selected-title{font-size:16px;margin-top:20px;scroll-margin-top:24px}.assumptions{padding:12px;border:1px solid var(--line);border-radius:5px;background:#fafbf7}.assumptions summary{cursor:pointer;font-size:12px;min-height:28px}.assumptions summary span{font-size:11px;color:var(--muted);margin-left:4px}.assumptions p{color:var(--muted);font-size:11px;line-height:1.7}.assumptions .field-pair{margin-top:12px}.field-pair{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.field{min-width:0;margin-bottom:16px}.field label{display:block;font-size:12px;color:#4b6047;margin-bottom:6px}.field input,.field select{width:100%;min-width:0;height:44px;background:white;color:var(--ink);border:1px solid #cdd7c7;border-radius:5px;padding:0 8px}.field input:disabled{background:#eef1ea;color:#576650}.capacity-result{padding:16px;margin-top:16px;background:#edf4e8;border:1px solid #d2e0c7;border-radius:6px;color:#355f32}.capacity-result.limited{background:#fcf3e6;border-color:#ead6b5;color:#885221}.capacity-result.missing{background:#f4f3ed;border-color:#dfded4;color:#665e42}.result-title{display:flex;align-items:center;gap:8px;font-size:13px}.capacity-result p{font-size:12px;margin-top:8px}.stock-equation{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 0;border-bottom:1px solid var(--line)}.stock-equation span{display:block;font-size:11px;color:var(--muted)}.stock-equation strong{display:block;font-size:26px;line-height:1.5;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stock-equation small{font-size:12px;color:var(--muted)}.stock-equation>svg{color:#75896b}.resource-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #e9eee5;font-size:12px}.resource-row>div>span{display:block;color:var(--muted);font-size:11px}.resource-value{color:var(--green);white-space:nowrap}.warning-text{color:var(--amber)}.capacity-footnote{font-size:11px;color:var(--muted);margin-top:12px;line-height:1.8}.plan-preview{margin-top:16px;border-top:1px dashed #bccdb1;padding-top:16px;display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.plan-preview span{display:block;font-size:11px;color:var(--muted)}.plan-preview strong{display:block;font-size:21px;color:var(--green);margin-top:4px}.plan-preview p{grid-column:1/-1;font-size:12px;color:#55694d}.confirm-button{width:100%;margin-top:20px}.action-message{border-left:3px solid var(--green);padding:12px;margin-top:16px;background:#f0f5eb;font-size:12px}.production-card{margin-top:24px}.production-list{border-top:1px solid var(--line)}.production-row{display:grid;grid-template-columns:32px 1.2fr 1fr 1.2fr;align-items:center;grid-gap:20px;gap:20px;padding:20px 0;border-bottom:1px solid #e9eee5}.production-row:last-child{border-bottom:0;padding-bottom:0}.queue-number{font:18px monospace;color:#78906e}.production-name h3{font-size:14px}.production-allocation span,.production-dates span,.production-name p{display:block;font-size:12px;color:var(--muted)}.production-dates strong{font-size:14px}.production-allocation small{font-size:11px;color:#60735b}.secondary-grid{display:grid;grid-template-columns:1.25fr 1fr;grid-gap:24px;gap:24px;margin-top:24px}.delivery-list,.stock-list{border-top:1px solid var(--line)}.stock-row{display:flex;align-items:flex-start;gap:12px;padding:20px 0;border-bottom:1px solid #e9eee5}.stock-row:last-child{border-bottom:0}.product-symbol{display:grid;place-items:center;width:36px;height:40px;border-radius:6px;flex:none;color:#89574c;background:#f5eae5}.product-symbol.cracker{color:#8a6d34;background:#f4eedf}.stock-name{flex:1 1;min-width:0}.delivery-detail h3,.stock-name h3{font-size:13px}.stock-name p,.stock-name small{color:var(--muted)}.lot-warning,.stock-name p,.stock-name small{display:block;font-size:11px;margin-top:4px}.stock-amount{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stock-amount strong{font-size:20px;white-space:nowrap}.stock-amount strong small{font-size:11px;color:var(--muted)}.stock-amount>small,.stock-amount>span{display:block;font-size:11px;color:var(--muted)}.delivery-row{display:flex;align-items:flex-start;gap:16px;padding:20px 0;border-bottom:1px solid #e9eee5}.date-box{display:grid;text-align:center;place-content:center;min-width:48px;height:56px;border-radius:6px;background:var(--soft);color:var(--green);line-height:1.5}.date-box strong{font-size:24px}.date-box span{font-size:11px}.delivery-detail p{font-size:12px;color:var(--muted);margin:4px 0}.delivery-note{display:flex;align-items:flex-start;gap:12px;padding:16px;margin-top:20px;background:#f6f8f1;color:#52664a;border-radius:6px;font-size:12px}footer{padding:28px 0 8px;gap:24px;font-size:11px;color:var(--muted)}.footer-logo,footer{display:flex;align-items:center}.footer-logo{gap:8px;color:var(--green);font-size:16px}.empty{padding:28px 8px;color:var(--muted);text-align:center}.text-button{padding:12px;background:none;color:var(--green);border:none;text-decoration:underline}.modal{width:min(520px,calc(100% - 32px));max-height:calc(100dvh - 32px);border:1px solid var(--line);border-radius:12px;background:white;color:var(--ink);padding:24px;overflow:auto}.modal::-webkit-backdrop{background:#1a2a20a6}.modal::backdrop{background:#1a2a20a6}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.icon-button{display:grid;place-items:center;min-width:44px;min-height:44px;padding:8px;color:var(--muted);background:transparent;border:none;border-radius:4px}.icon-button:hover{background:var(--soft)}.modal-note{font-size:12px;color:var(--muted)}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:24px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width:1200px){.sidebar{width:184px;padding:24px 16px}.main{margin-left:184px;width:calc(100% - 184px)}.brand{font-size:24px}.content{padding:28px 24px 16px}.topbar{padding:16px 24px}.primary-grid{grid-template-columns:minmax(0,1.25fr) minmax(300px,1fr);gap:16px}.card{padding:20px}.row-button svg{display:none}.stats{gap:12px}.stat{padding:16px}.page-title{align-items:flex-start}.page-title .primary-button{white-space:nowrap}.production-row{gap:12px}}@media (max-width:1000px){.primary-grid,.secondary-grid{grid-template-columns:1fr}.row-button svg{display:block}.capacity-card{max-width:none}.production-row{grid-template-columns:24px 1fr 1fr}.production-allocation{grid-column:2/-1}.page-title{flex-direction:column;gap:16px}.stat-top{align-items:flex-start}.stat-top svg{display:none}}@media (max-width:700px){.app-shell{display:block}.sidebar{position:static;width:100%;padding:16px;border-right:0;border-bottom:1px solid var(--line)}.brand{font-size:24px}.brand-mark{width:36px;height:36px}.brand small{font-size:11px;margin-top:6px}.sidebar-footer,.sidebar-note,.workspace-label{display:none}.nav-links{display:flex;overflow-x:auto;margin-top:16px;gap:4px}.nav-links a{flex-shrink:0;font-size:12px;gap:8px;min-height:44px;padding:8px}.nav-number{width:auto}.main{margin:0;width:100%}.topbar{min-height:48px;padding:12px 16px;gap:8px;font-size:11px}.breadcrumb-separator{margin:0 4px}.sample-pill{padding:4px 8px;gap:6px}.content{padding:24px 16px 12px}.page-title{gap:16px}h1{font-size:25px}.page-title>div>p:last-child{font-size:13px}.page-title .primary-button{width:100%}.demo-notice{margin:20px 0;padding:12px;font-size:11px}.demo-notice strong{display:block;margin-bottom:4px}.workflow{gap:8px 12px;margin-bottom:20px}.workflow a{gap:6px;font-size:11px}.workflow svg{display:none}.stats{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.stat{padding:16px}.stat-value{font-size:28px;margin:8px 0}.stat-value small{font-size:11px}.card{padding:20px 16px}.primary-grid{gap:20px}.order-table,.order-table tbody{display:block}.order-table thead{position:absolute;width:1px;height:1px;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%)}.order-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;border-bottom:1px solid var(--line);padding:16px 12px;grid-gap:8px;gap:8px}.order-table td{display:block;border:none;padding:0}.order-table td:first-child{grid-column:1;grid-row:1}.order-table td:nth-child(2){grid-column:1;grid-row:2}.order-table td:nth-child(3){grid-column:2;grid-row:1;text-align:right}.order-table td:last-child{grid-column:2;grid-row:2;align-self:end;text-align:right}.selected-row td:first-child{box-shadow:none}.selected-row{box-shadow:inset 3px 0 #315f4b}.order-table td:nth-child(2) .cell-sub{display:inline;margin-left:4px}.mobile-label{display:inline;font-size:11px;color:var(--muted)}.stock-row{flex-wrap:wrap;gap:8px}.stock-row .product-symbol{display:none}.stock-name h3{font-size:12px}.stock-amount strong{font-size:18px}.production-card,.secondary-grid{margin-top:20px}.production-row{grid-template-columns:24px 1fr;gap:8px 12px}.production-allocation,.production-dates{grid-column:2}.secondary-grid{gap:20px}footer{align-items:flex-start;gap:12px}.modal{padding:20px 16px}.modal .field-pair{grid-template-columns:1fr;gap:0}.modal .field input,.modal .field select{font-size:16px}.modal-actions{justify-content:stretch}.modal-actions .primary-button{flex:1 1}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important}}