html,body,#root{width:100%;min-height:100%;margin:0}body{min-height:100vh}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:2px solid #6d5dd3}:root{color:#302a3c;font-synthesis:none;text-rendering:optimizelegibility;background:#f4f2fa;font-family:Leelawadee UI,Tahoma,Noto Sans Thai,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:1180px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5;box-shadow:none!important}.app-shell{min-height:100vh}.topbar{z-index:20;background:#fffffff2;border-bottom:1px solid #e7e2f1;align-items:center;gap:24px;height:66px;padding:0 22px;display:flex;position:sticky;top:0;box-shadow:0 3px 16px #46326e12}.brand{align-items:center;gap:10px;min-width:280px;display:flex}.brand-icon{color:#fff;background:linear-gradient(145deg,#7567d9,#9a75e5);border-radius:12px;place-items:center;width:38px;height:38px;display:grid;box-shadow:0 6px 15px #7567d94d}.brand strong{font-size:16px;line-height:16px;display:block}.brand small{color:#8c839d;font-size:12px}.save-state{color:#777084;margin-right:auto;font-size:12px}.save-state span{background:#f3a64a;border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.topbar nav{align-items:center;gap:8px;display:flex}.topbar button,.toolbar button,.recalculate{color:#625b70;background:#fff;border:1px solid #ddd7e9;border-radius:9px;align-items:center;gap:6px;height:36px;padding:0 12px;font-size:12px;font-weight:600;display:flex}.topbar .primary,.primary{color:#fff;background:linear-gradient(135deg,#6d5dd3,#8571dd);border:0;box-shadow:0 5px 14px #6d5dd336}.icon-button{justify-content:center;width:36px;padding:0!important}.workspace{grid-template-columns:350px minmax(510px,1fr) 300px;gap:12px;height:calc(100vh - 66px);padding:12px;display:grid}.scroll-panel{scrollbar-width:thin;scrollbar-color:#cfc7dc transparent;padding-right:3px;overflow:auto}.left-panel,.right-panel{flex-direction:column;gap:11px;display:flex}.card{background:#fff;border:1px solid #ebe6f2;border-radius:15px;padding:15px;box-shadow:0 4px 14px #4830700e}.card-title{align-items:center;gap:9px;margin-bottom:14px;display:flex}.card-title h2{color:#302a3c;margin:0;font-size:15px}.step{color:#6555ca;background:#ece9ff;border-radius:8px;place-items:center;width:25px;height:25px;font-size:12px;font-weight:800;display:grid}.field{margin-bottom:10px;display:block}.field>span,.label{color:#686073;margin-bottom:4px;font-size:11px;font-weight:600;display:block}.input-wrap{background:#fff;border:1px solid #ddd7e7;border-radius:9px;align-items:center;height:37px;transition:all .15s;display:flex;overflow:hidden}.input-wrap:focus-within{border-color:#7464d4;box-shadow:0 0 0 3px #7567d91c}.input-wrap input{color:#302a3c;background:0 0;border:0;outline:0;width:100%;height:100%;padding:0 10px;font-size:12px}.input-wrap b{color:#8c8398;white-space:nowrap;background:#f6f4f9;align-self:stretch;align-items:center;padding:0 8px;font-size:10px;display:flex}.two-cols{grid-template-columns:1fr 1fr;gap:8px;display:grid}.segments{background:#f1eef7;border-radius:10px;margin-bottom:11px;padding:3px;display:flex}.segments button{color:#756d83;background:0 0;border:0;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:5px;height:30px;font-size:11px;font-weight:600;display:flex}.segments button.active{color:#6756c9;background:#fff;box-shadow:0 2px 7px #4632641f}.upload{text-align:left;color:#7565cc;background:#faf9fd;border:1px dashed #bcb2d5;border-radius:10px;align-items:center;gap:10px;width:100%;margin-bottom:11px;padding:9px 11px;display:flex}.upload span{flex-direction:column;display:flex}.upload b{font-size:11px}.upload small{color:#938aa0;font-size:9px}.toggle-row{justify-content:space-between;align-items:center;padding:7px 0 9px;display:flex}.toggle-row div{flex-direction:column;display:flex}.toggle-row b{font-size:11px}.toggle-row small{color:#91899d;font-size:9px}.toggle{background:#cbc6d3;border:0;border-radius:20px;width:35px;height:20px;padding:2px}.toggle>span{background:#fff;border-radius:50%;width:16px;height:16px;transition:all .18s;display:block}.toggle.on{background:#7262d4}.toggle.on>span{transform:translate(15px)}.size-compare{background:#f8f6fb;border-radius:10px;grid-template-columns:1fr 18px 1.2fr;align-items:center;margin-bottom:10px;padding:9px;display:grid}.size-compare span{flex-direction:column;display:flex}.size-compare small{color:#888092;font-size:9px}.size-compare b{font-size:10px}.size-compare i{color:#a19aab;font-style:normal}.size-compare .cut{color:#d84977}.compact-toggle{color:#6d6677;justify-content:space-between;align-items:center;padding-top:16px;font-size:10px;display:flex}.field select{color:#40394a;background:#fff;border:1px solid #ddd7e7;border-radius:9px;width:100%;height:37px;padding:0 9px;font-size:11px}.machine-note{color:#55776b;background:#f3f9f6;border-radius:9px;margin-bottom:10px;padding:9px;font-size:10px}.machine-note b{margin-left:14px;display:block}.mark-dot{background:#1f1b25;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.preview-panel{background:#fff;border:1px solid #e9e4f0;border-radius:15px;flex-direction:column;min-width:0;display:flex;overflow:hidden;box-shadow:0 4px 14px #4830700e}.panel-heading{border-bottom:1px solid #eeeaf3;justify-content:space-between;align-items:center;height:65px;padding:12px 15px;display:flex}.panel-heading h1{margin:0;font-size:16px}.panel-heading p{color:#8d8597;margin:2px 0;font-size:10px}.recalculate{color:#6657c8!important;background:#f3f1ff!important;border-color:#ddd7fb!important}.toolbar{border-bottom:1px solid #eeeaf3;align-items:center;gap:5px;height:46px;padding:6px 9px;display:flex;overflow:hidden}.toolbar button{height:31px;padding:0 8px}.toolbar button:disabled{opacity:.4}.toolbar>span{background:#e4dfeb;width:1px;height:20px;margin:0 2px}.toolbar label{white-space:nowrap;align-items:center;gap:3px;font-size:9px;display:flex}.toolbar input{accent-color:#6f60d0}.zoom{border:1px solid #e2ddeb;border-radius:8px;align-items:center;margin-left:auto;display:flex}.zoom button{border:0;height:29px}.zoom b{text-align:center;width:36px;font-size:9px}.canvas-area{background:radial-gradient(circle at 30% 25%,#fbfaff,#f1eef7);flex:1;place-items:center;display:grid;position:relative;overflow:auto}.sheet{filter:drop-shadow(0 9px 14px #32234b2e);transform-origin:50%;height:min(68vh,670px);max-height:calc(100vh - 240px);transition:transform .15s}.error-banner{z-index:3;color:#b72f50;background:#fff0f2;border:1px solid #ffc8d3;border-radius:9px;padding:8px 12px;font-size:11px;position:absolute;top:15px}.statusbar{background:#fbfafd;border-top:1px solid #eae5f0;justify-content:space-around;align-items:center;min-height:55px;display:flex}.statusbar span{color:#4f4859;flex-direction:column;padding:4px 8px;font-size:10px;display:flex}.statusbar b{color:#97909f;font-size:8px;font-weight:500}.statusbar .highlight{color:#6253c7;font-weight:800}.hero-metric{text-align:center;background:linear-gradient(145deg,#f0edff,#faf8ff);border-radius:12px;margin-bottom:10px;padding:9px}.hero-metric span{color:#6e6580;font-size:10px;display:block}.hero-metric strong{color:#6554cb;font-size:42px;line-height:48px}.hero-metric small{color:#877f91;font-size:10px}.metrics{grid-template-columns:1fr 1fr;gap:6px;display:grid}.metrics div{border:1px solid #eeeaf2;border-radius:9px;flex-direction:column;padding:9px;display:flex}.metrics span{color:#8d8596;font-size:8px}.metrics b{font-size:12px}.metrics .purple{color:#6758cb;background:#f2efff;border-color:#e4defe}.metrics .mint{color:#31836a;background:#eaf8f3;border-color:#d5f0e7}.money-list>div{border-bottom:1px dashed #e6e1eb;justify-content:space-between;padding:7px 2px;font-size:10px;display:flex}.money-list span,.money-list label{color:#777080}.money-list b{font-size:10px}.money-list input{accent-color:#6d5dd3}.grand-total{text-align:center;color:#fff;background:linear-gradient(135deg,#6e5fd0,#8874dc);border-radius:12px;margin:12px 0;padding:12px}.grand-total span,.grand-total small{opacity:.8;font-size:9px;display:block}.grand-total strong{font-size:25px;display:block}.field textarea{resize:none;border:1px solid #ded8e7;border-radius:9px;outline:0;width:100%;height:58px;padding:8px;font-size:10px}.full{border-radius:9px;justify-content:center;align-items:center;gap:6px;width:100%;height:39px;margin-top:7px;font-size:11px;font-weight:700;display:flex}@media (width<=1280px){.workspace{grid-template-columns:320px minmax(470px,1fr) 280px;gap:8px;padding:8px}.card{padding:12px}.topbar{padding:0 14px}.brand{min-width:220px}.topbar .ghost{display:none}.statusbar span{padding:3px}.toolbar label{display:none}}.unit-select{margin:11px 0 9px}.unit-select select{color:#40394d;background:#fff;border:1px solid #dcd5e8;border-radius:9px;width:100%;height:38px;padding:0 10px}.unit-select small{color:#7a7188;margin-top:5px;font-size:11px;display:block}.size-compare .cut em{color:#756a87;margin-top:3px;font-size:10px;font-style:normal;font-weight:500;display:block}.price-box{background:linear-gradient(145deg,#faf8ff,#f4f0ff);border:1px solid #d9cff2;border-radius:12px;margin:2px 0 12px;padding:12px}.price-mode{grid-template-columns:.8fr 1.45fr!important}.price-mode button{padding:0 6px;font-size:11px}.price-hint{color:#756a87;margin:6px 0 0;font-size:11px;line-height:1.45}.price-basis{color:#5f50bb;text-align:center;background:#f0ecff;border-radius:8px;margin:-2px 0 10px;padding:7px 9px;font-size:11px;font-weight:700}.artwork-import{margin:10px 0;position:relative}.artwork-input{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.artwork-import .upload{width:100%;margin:0}.artwork-status{color:#51495f;background:#faf9fd;border:1px solid #ded7eb;border-radius:9px;margin-top:8px;padding:9px 10px;font-size:11px;line-height:1.45}.artwork-status.loading{color:#6557a8;justify-content:space-between;align-items:center;gap:10px;display:flex}.artwork-status.error{color:#a2314d;background:#fff7f9;border-color:#efc5cf}.artwork-status.ready{background:#f4fbf8;border-color:#bfe3d6;justify-content:space-between;align-items:center;gap:10px;display:flex}.artwork-status.ready>div{min-width:0}.artwork-status.ready strong,.artwork-status.ready small{display:block}.artwork-status.ready strong{overflow-wrap:anywhere;color:#276b56;font-size:12px}.artwork-status.ready small{color:#655e70;margin-top:2px}.artwork-remove{color:#6a536f;background:#fff;border:1px solid #d7cedf;border-radius:8px;flex:none;align-items:center;gap:4px;min-height:34px;padding:5px 8px;font-size:11px;display:inline-flex}.artwork-ephemeral-note{color:#70667e;margin:7px 2px 0;font-size:10px;line-height:1.45}.artwork-density-notice{color:#5f50a0;background:#f7f4ff;border:1px solid #d9cff2;border-radius:9px;margin:8px 12px 0;padding:8px 10px;font-size:11px;line-height:1.45}body{min-width:0;overflow-x:hidden}.topbar .ghost{display:flex}.global-status{color:#625b70;background:#fff;min-height:0;padding:0 22px;font-size:12px;line-height:0;transition:all .2s}.global-status:not(:empty){border-bottom:1px solid #ebe6f2;min-height:30px;padding-top:7px;padding-bottom:7px;line-height:16px}.global-status:not(:empty)+.workspace{height:calc(100vh - 96px)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline-offset:2px;outline:3px solid #9b8bf0}.topbar button{min-width:44px;min-height:44px}.topbar{height:auto;min-height:66px}.topbar nav{min-width:0}.save-state.saved{color:#26755c}.save-state.saved span{background:#35a77e}.session-chip{border-left:1px solid #e6e0ef;align-items:center;gap:8px;min-height:44px;padding-left:10px;display:flex}.session-chip>span{color:#4f475c;text-overflow:ellipsis;flex-direction:column;max-width:170px;font-size:11px;display:flex;overflow:hidden}.session-chip small{color:#8a8198;font-size:9px}.session-chip button{justify-content:center;width:44px;padding:0}.field em{color:#c33b68;font-style:normal}.inline-error{color:#a3274f;margin:4px 0 10px;font-size:11px}.discount-row b{color:#a3274f!important}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1e162d7a;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.workflow-dialog{background:#fff;border:1px solid #e5dff0;border-radius:18px;flex-direction:column;width:min(520px,100%);max-height:min(760px,100vh - 40px);display:flex;overflow:hidden;box-shadow:0 24px 70px #24193847}.workflow-dialog.wide{width:min(820px,100%)}.workflow-dialog>header{border-bottom:1px solid #ebe6f2;flex:none;justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.workflow-dialog h2{color:#332b40;margin:0;font-size:18px}.dialog-close{color:#625a70;background:#f4f1f8;border:0;border-radius:11px;place-items:center;width:44px;height:44px;display:grid}.workflow-form,.history-body{overscroll-behavior:contain;min-height:0;padding:20px;overflow:auto}.workflow-form>p{color:#71687d;margin:0 0 16px;font-size:13px;line-height:1.6}.workflow-form>label,.workflow-form .two-cols>label{color:#5d546b;flex-direction:column;gap:6px;margin-bottom:13px;font-size:12px;font-weight:700;display:flex}.workflow-form input,.workflow-form textarea{color:#332c3e;background:#fff;border:1px solid #d9d2e5;border-radius:10px;width:100%;min-height:44px;padding:10px 12px}.workflow-form textarea{resize:vertical;min-height:82px}.dialog-actions{justify-content:flex-end;gap:9px;margin-top:18px;display:flex}.dialog-actions button,.history-body button,.dialog-message button{border-radius:10px;min-height:44px;padding:0 16px}.dialog-message{color:#625473;background:#f3effb;border-radius:10px;margin:12px 0;padding:11px 13px;font-size:12px;line-height:1.5}.dialog-message.error{color:#9e254b;background:#fff0f3}.dialog-message.success{color:#24765b;background:#eaf8f2}.dialog-message button{color:inherit;background:0 0;border:1px solid;margin-top:8px;display:block}.state-panel{color:#7d738b;justify-content:center;align-items:center;gap:10px;min-height:150px;display:flex}.history-list{flex-direction:column;gap:9px;display:flex}.history-row{background:#fcfbfe;border:1px solid #e7e1ef;border-radius:13px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:13px;display:grid}.history-row>div{flex-direction:column;gap:2px;min-width:0;display:flex}.history-row strong{color:#6556bd;font-size:12px}.history-row span{color:#37303f;text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.history-row small{color:#847a91;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.history-row>b{white-space:nowrap;font-size:12px}.history-row button,.load-more{color:#5f5570;background:#fff;border:1px solid #d8d0e6}.load-more{margin:16px auto 0;display:block}.secondary{color:#5d536b;background:#fff;border:1px solid #d9d2e5}.workflow-dialog .primary{border:0;border-radius:10px;min-height:44px;padding:0 18px}.history-body{scrollbar-width:thin}@media (width<=1100px){.brand{min-width:auto}.brand small,.save-state{display:none}.topbar{flex-wrap:wrap;align-items:flex-start;padding:10px 14px}.topbar nav{flex-wrap:wrap;flex:1;justify-content:flex-end}.workspace{grid-template-columns:330px minmax(0,1fr);height:auto;min-height:calc(100vh - 80px)}.right-panel{grid-column:1/-1;grid-template-columns:1fr 1fr;display:grid;overflow:visible}.scroll-panel{overflow:visible}.preview-panel{min-width:0}.global-status:not(:empty)+.workspace{height:auto}}@media (width<=900px){.workspace{flex-direction:column;height:auto;min-height:0;display:flex}.left-panel,.right-panel{grid-template-columns:1fr 1fr;display:grid}.preview-panel{order:-1;min-height:680px}.topbar nav{justify-content:flex-start;width:100%}.session-chip{margin-left:auto}.topbar .brand{margin-right:auto}}@media (width<=600px){.topbar{position:relative}.topbar nav{grid-template-columns:repeat(4,1fr);width:100%;display:grid}.topbar nav>button{justify-content:center;padding:0 7px;font-size:11px}.topbar .icon-button{width:100%}.session-chip{border-top:1px solid #eee8f4;border-left:0;grid-column:1/-1;justify-content:space-between;margin:0;padding:7px 0 0}.workspace{padding:8px}.left-panel,.right-panel{display:flex}.preview-panel{min-height:560px}.panel-heading,.toolbar{flex-wrap:wrap}.toolbar{height:auto;min-height:42px}.canvas-area{min-height:390px;overflow:auto}.statusbar{overflow:auto}.modal-backdrop{padding:0}.workflow-dialog,.workflow-dialog.wide{border-radius:0;width:100%;max-height:100vh}.history-row{grid-template-columns:minmax(0,1fr) auto}.history-row>b{grid-row:1}.history-row button{grid-column:1/-1}.workflow-form .two-cols{grid-template-columns:1fr}.dialog-actions>*{flex:1}.brand strong{font-size:14px}}
