:root{--bg:#f6f7f6;--card:#fff;--shell:#fff;--text:#26322a;--muted:#718175;--subtle:#94a398;--line:#e2e8e3;--accent:#2d6751;--accentlight:#eaf3ed;--focus:#66a486;--track:#eaf0ec;color-scheme:light;font-family:Inter,"Segoe UI",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);margin:0;font-size:13px;line-height:1.5}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #5c9c7c;outline-offset:2px}button:disabled{opacity:.45;cursor:not-allowed}[hidden]{display:none!important}svg{width:17px;height:17px}button svg{vertical-align:middle}.app{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100dvh}.sidebar{background:#fff;border-right:1px solid var(--line);position:sticky;top:0;height:100dvh;padding:26px 17px;display:flex;flex-direction:column;gap:36px}.brand{display:flex;align-items:center;gap:10px;padding:1px 9px}.logo{display:grid;place-items:center;background:#23362d;color:white;border-radius:8px;width:34px;height:34px;font-weight:800;font-size:18px}.brand strong{display:block;font-size:13px;letter-spacing:-.2px}.brand small{display:block;font-size:10px;color:#88978b}.nav-caption{margin:0 0 13px 11px;color:#9aa8a0;font-size:10px;text-transform:uppercase;letter-spacing:1.1px}.nav-link{width:100%;display:flex;align-items:center;gap:12px;text-align:left;border:0;border-radius:8px;background:transparent;padding:11px 12px;font-size:12px;color:#66786a;margin:1px 0}.nav-link.active,.nav-link.active:hover{background:#eaf3ec;color:#285b45;font-weight:700}.nav-link:hover{background:#f4f7f4}.nav-link .nav-count{margin-left:auto;color:#72877a;font-size:10px}.nav-bottom{margin-top:auto;border-top:1px solid var(--line);padding:18px 8px 0;display:grid;gap:7px}.user-label{font-size:11px;font-weight:650}.actor-switch{width:100%;border:1px solid var(--line);border-radius:7px;padding:8px;background:#fff;color:#46604f;font-size:11px}.workspace{width:100%;max-width:1600px;margin:0 auto;padding:28px clamp(23px,3.4vw,58px) 40px;min-width:0}.topline{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:11px;color:#86968c;margin-bottom:26px}.topline b{color:#40594a;font-weight:650}.topline .slash{margin:0 8px;color:#b7c3b9}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:25px}.page-header h1{font-size:clamp(27px,2.3vw,37px);font-weight:720;letter-spacing:-1.35px;line-height:1.16;margin:0}.page-header p{display:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 13px;border:1px solid #dce5dd;background:white;color:#47614e;border-radius:8px;white-space:nowrap;font-size:12px;font-weight:630;text-decoration:none;transition:background .14s,transform .14s}.btn:hover{background:#f1f6f2}.btn:active{transform:translateY(1px)}.btn.primary{color:#fff;background:var(--accent);border-color:var(--accent)}.btn.primary:hover{background:#347b5f}.btn.ghost{background:transparent;border-color:transparent;color:#54775f}.btn.danger{color:#a05b50}.btn.compact{padding:8px 10px}.btn.icon{width:36px;padding:8px}.btn:disabled{background:#ebefeb;color:#8a988d}.muted{color:var(--muted)}.tiny{font-size:11px}.pill{display:inline-flex;align-items:center;white-space:nowrap;border-radius:6px;background:#eef3ef;color:#63816f;padding:5px 8px;font-size:10px;font-weight:700}.pill.production,.pill.accepted{background:#e8f5ec;color:#367459}.pill.inquiry{background:#f1f0e9;color:#81704b}.pill.dev{background:#f2eef8;color:#795c90}.pill.test{background:#edf3fa;color:#5778a0}.pill.closed{background:#edf1ee;color:#748779}.pill.urgent{background:#fff1ec;color:#a96557}.pill.warn{background:#fef5e6;color:#a17a37}.separator{height:1px;background:var(--line);margin:18px 0}.toolbar{display:flex;align-items:center;gap:9px;margin-bottom:14px;flex-wrap:wrap}.search{display:flex;align-items:center;gap:9px;background:white;border:1px solid var(--line);height:41px;padding:0 12px;border-radius:8px;flex:1;min-width:200px;color:#90a094}.search input{border:0;outline:0;background:transparent;flex:1;min-width:0;color:var(--text);font-size:12px}.search input::placeholder{color:#86968a}.filter-wrap{position:relative}.filter-panel{position:absolute;top:46px;right:0;z-index:25;background:white;box-shadow:0 12px 45px #21342722;border:1px solid var(--line);padding:18px;width:min(360px,90vw);border-radius:11px;max-height:72vh;overflow-y:auto}.filter-panel h3{margin:0;font-size:15px}.filter-panel h4{font-size:10px;letter-spacing:.5px;text-transform:uppercase;color:#87968a;padding-top:13px;border-top:1px solid var(--line);margin:16px 0 7px}.checkrow{display:flex;gap:9px;align-items:center;cursor:pointer;padding:5px 0;font-size:12px}.checkrow input{accent-color:var(--accent);width:15px;height:15px}.filter-foot{display:flex;justify-content:space-between;gap:5px;align-items:center;padding-top:16px}.toolbar select{height:41px;max-width:240px;border:1px solid var(--line);border-radius:8px;padding:0 9px;color:#526b56;background:white;font-size:11px;cursor:pointer}.toolbar label{color:#82968a;font-size:11px}.toggle{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:white}.toggle button{border:0;padding:10px 11px;color:#85978a;background:white}.toggle button+button{border-left:1px solid var(--line)}.toggle button.on{background:#e9f2eb;color:var(--accent)}.summary{display:flex;justify-content:space-between;gap:10px;color:#8b9b90;font-size:11px;margin:4px 0 14px}.summary b{color:#486150}.groups{padding-bottom:36px}.group{margin-bottom:28px}.group-heading{display:flex;align-items:center;gap:10px;margin-bottom:12px}.group-stripe{height:16px;width:3px;border-radius:3px;background:#8eac99}.group-stripe.overdue{background:#c27d6e}.group-stripe.soon{background:#d1a268}.group-heading h2{font-size:13px;font-weight:700;margin:0}.group-heading small{color:#99aa9c}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.card{border:1px solid var(--line);border-radius:13px;background:white;color:var(--text);text-align:left;display:flex;flex-direction:column;padding:clamp(19px,2vw,27px);min-width:0;min-height:258px;transition:border-color .15s,box-shadow .15s,transform .15s}.card:hover{border-color:#a8c4b1;box-shadow:0 6px 20px #162b1d12;transform:translateY(-1px)}.card:active{transform:translateY(0)}.card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.card-code{font-size:11px;color:#86978a;font-weight:710}.card h3{font-size:clamp(18px,1.65vw,23px);line-height:1.22;letter-spacing:-.72px;margin:17px 0 5px;font-weight:720}.card-customer{color:#849388;font-size:12px}.card-bottom{margin-top:auto}.progress-header{display:flex;align-items:baseline;justify-content:space-between;gap:7px;color:#809186;font-size:11px;margin-bottom:8px}.progress-header strong{color:#465b4c;font-size:13px}.progress{height:5px;border-radius:5px;background:#e8efea;overflow:hidden}.progress i{display:block;height:100%;background:#7eac90;border-radius:6px}.card-metrics{border-top:1px solid #edf1ed;margin-top:17px;padding-top:14px;display:grid;grid-template-columns:1.3fr .7fr 1fr;gap:9px}.card-metrics small{display:block;color:#98a69b;font-size:10px}.card-metrics strong{display:block;color:#3e5445;font-size:11px;margin-top:3px;line-height:1.4}.card-metrics strong.late{color:#b26657}.cards.list{grid-template-columns:1fr}.cards.list .card{min-height:165px;padding:15px 20px}.cards.list .card h3{font-size:17px;margin:7px 0 3px}.cards.list .card-metrics{margin-top:8px;padding-top:8px}.empty{background:white;border:1px dashed var(--line);border-radius:11px;padding:48px 25px;text-align:center;color:#87998c}.empty h3{font-size:15px;color:var(--text);margin:0 0 8px}.subnav{display:flex;gap:6px;border-bottom:1px solid var(--line);margin:21px 0;overflow-x:auto}.subnav button{border:0;background:transparent;padding:11px 15px;border-bottom:2px solid transparent;white-space:nowrap;color:#758a7b;font-size:12px}.subnav button.selected{border-bottom-color:var(--accent);color:#2f6248;font-weight:700}.white-panel{background:white;border:1px solid var(--line);border-radius:11px;padding:22px;margin:14px 0}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.panel-head h2{font-size:16px;margin:0;letter-spacing:-.3px}.data-row{display:flex;gap:10px;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid #eef1ee}.data-row:last-child{border:0}.data-row .main-info{flex:1;min-width:0}.data-row strong{display:block;font-size:13px;line-height:1.4}.data-row small{display:block;color:#819184;font-size:11px;margin-top:4px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}.stat{padding:15px;border:1px solid var(--line);border-radius:9px;background:white}.stat small{display:block;color:#85978a;font-size:11px}.stat b{display:block;font-size:24px;letter-spacing:-.6px;margin-top:5px}.warn-box{padding:13px 15px;border:1px solid #f1dcc5;border-radius:9px;background:#fff9ef;color:#866b44;font-size:12px;margin:12px 0}.hint{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:1px solid #b7c5b9;border-radius:50%;font-size:10px;color:#728b76;margin-left:5px;cursor:help;vertical-align:middle;font-weight:700;background:#f5f8f5}.hint:focus{outline:2px solid #79a991}.hintbox{font-size:11px;display:block;color:#7a8f7e;line-height:1.5;margin-top:4px}.form-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(270px,1fr);gap:22px;align-items:start}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field.full{grid-column:1/-1}.field label{font-size:12px;font-weight:680;color:#506656}.field input,.field select,.field textarea{border:1px solid #dce5df;background:white;border-radius:7px;min-height:40px;padding:10px 11px;font-size:12px;width:100%;color:var(--text)}.field textarea{min-height:85px;resize:vertical}.field input::placeholder,.field textarea::placeholder{color:#9eaba0}.form-actions{display:flex;gap:9px;align-items:center;margin-top:20px;flex-wrap:wrap}.item-editor{background:#f9fbf9;border:1px solid #e3eae3;border-radius:9px;margin:12px 0;padding:16px}.item-editor h3{font-size:14px;margin:0 0 13px}.item-editor .form-grid{gap:12px}.item-total{font-weight:650;font-size:13px}.muted-link{border:0;color:var(--accent);background:none;font-size:12px;padding:5px;cursor:pointer;font-weight:650}.grand-total{font-size:26px;letter-spacing:-.7px;font-weight:730;margin:9px 0}.price-muted{color:#809487;font-size:11px}.fact{display:flex;align-items:center;gap:12px;margin:10px 0}.fact .name{min-width:120px;color:#839487;font-size:12px}.fact strong{font-size:12px}.crumb-back{border:0;background:transparent;color:#56745d;padding:0;margin-bottom:16px;font-size:12px;font-weight:680}.inline-select{min-width:170px;max-width:260px;padding:10px;border:1px solid var(--line);background:white;border-radius:7px}.status-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.requirements{display:grid;gap:10px}.requirement{border:1px solid var(--line);border-radius:8px;padding:13px 15px;background:#fff}.requirement strong{font-size:13px}.requirement p{margin:5px 0 0;color:#7b8c7e;font-size:12px}.requirement .req-foot{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-top:10px}.stack{display:grid;gap:11px}.inline-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;align-items:end}.inline-form .wide{grid-column:1/-1}.inline-form .field{min-width:0}.chips{display:flex;gap:7px;flex-wrap:wrap}.chip{display:inline-flex;gap:6px;align-items:center;padding:5px 8px;background:#f1f5f2;border-radius:6px;font-size:11px;color:#617667}.chip.alert{background:#fff2e8;color:#a46e48}.layout-columns{display:grid;grid-template-columns:1fr 1fr;gap:15px}.timeline{position:relative;border-left:2px solid #e3ebe5;margin-left:8px;padding-left:22px}.event{margin:0 0 18px;position:relative}.event:before{content:'';position:absolute;width:9px;height:9px;border-radius:50%;background:#96b6a0;left:-27px;top:5px}.event strong{font-size:12px}.event small{color:#91a295;display:block;margin-top:5px;font-size:11px}.file-input{display:flex;align-items:center;gap:6px}.file-input input{max-width:100%}.all-orders-list{display:grid;gap:10px}.all-orders-list .card{min-height:165px}.screen-note{font-size:11px;color:#738777;background:#f3f7f3;border-radius:7px;padding:10px 12px;margin:13px 0}.notice{padding:13px 15px;background:#f6f9f6;border:1px solid #dce8df;border-radius:9px;color:#607f68;margin:12px 0;font-size:12px}.danger-note{background:#fff5f2;border-color:#efd9d2;color:#995a4c}.simple-table{width:100%;border-collapse:collapse;font-size:12px}.simple-table th{text-align:left;font-weight:680;color:#8a9a8d;border-bottom:1px solid var(--line);padding:12px 8px}.simple-table td{padding:13px 8px;border-bottom:1px solid #edf1ed;vertical-align:middle}.simple-table tr:last-child td{border-bottom:0}.toast{position:fixed;bottom:24px;right:22px;padding:12px 17px;background:white;border:1px solid #cbded0;box-shadow:0 12px 35px #1c34271e;color:#3d7753;border-radius:9px;max-width:380px;z-index:45;font-size:12px}.auth-shell{min-height:100dvh;display:grid;place-items:center;padding:20px}.auth-box{background:white;border:1px solid var(--line);padding:35px;width:min(400px,100%);border-radius:13px}.auth-box h1{font-size:23px}.auth-box .field{margin:14px 0}.auth-box .btn{width:100%}.login-error{color:#b15f55;font-size:12px}.overlay{position:fixed;inset:0;background:#162c1e55;z-index:35;display:grid;place-items:center;padding:14px}.dialog{width:min(530px,100%);max-height:92vh;overflow:auto;background:white;border-radius:12px;padding:24px 26px;box-shadow:0 15px 55px #14251c3b}.dialog h2{font-size:19px;margin:0 0 9px}.dialog .form-grid{margin-top:19px}.dialog-actions{margin-top:25px;display:flex;justify-content:flex-end;gap:9px}.form-error{color:#a7544b;font-size:12px;padding:10px;background:#fff4f1;border-radius:6px;margin-top:10px}.details-blank{padding:30px;text-align:center;color:#85968b}.help-note{padding:13px;background:#f3f7f3;border-radius:8px;color:#688072;font-size:12px}.startup{padding:50px;text-align:center;font-size:20px;color:#496750}
@media(max-width:1120px){.app{grid-template-columns:64px minmax(0,1fr)}.sidebar{padding:18px 7px}.brand{justify-content:center}.brand strong,.brand small,.nav-caption,.nav-link .nav-text,.nav-bottom,.nav-count{display:none!important}.nav-link{justify-content:center;padding:12px}.workspace{padding-left:25px;padding-right:25px}}
@media(max-width:800px){.app{display:block;padding-bottom:62px}.sidebar{position:fixed;top:auto;bottom:0;left:0;right:0;height:60px;padding:6px;border-top:1px solid var(--line);border-right:0;z-index:20;display:block}.brand,.nav-caption,.nav-bottom{display:none}.sidebar nav{display:flex;justify-content:space-around;gap:1px}.nav-link{display:flex;flex-direction:column;align-items:center;flex:1;max-width:120px;padding:4px 2px;gap:0;font-size:9px}.nav-link .nav-text{display:block!important;font-size:9px}.nav-link .nav-count{display:none!important}.sidebar .sidebar-group{margin:0}.workspace{padding:18px 14px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.form-layout{grid-template-columns:1fr}}
@media(max-width:640px){.cards{grid-template-columns:1fr}.page-header{align-items:center}.page-header h1{font-size:27px}.toolbar .search{flex-basis:100%}.toolbar select{min-width:0;max-width:49%;flex:1}.filter-wrap{flex:1}.filter-wrap .btn{width:100%}.summary{flex-wrap:wrap}.card{min-height:230px;padding:21px}.card h3{font-size:21px}.inline-form{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.field.full{grid-column:1}.inline-form .wide{grid-column:1/-1}.card-metrics{gap:5px}.dialog{padding:20px}.topline{margin-bottom:20px}}
@media(max-width:400px){.workspace{padding:16px 12px}.page-header h1{font-size:25px}.page-header .btn{padding:9px}.card h3{font-size:19px}.card-metrics strong{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Authenticated STL preview; the source model remains immutable. */
.stl-dialog{width:min(860px,100%);max-height:96vh}
.stl-dialog .panel-head{align-items:flex-start;margin-bottom:14px}
.stl-dialog .panel-head h2{overflow-wrap:anywhere;max-width:90%}
.stl-canvas-shell{overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#f7faf7}
#stl-canvas{display:block;width:100%;height:min(52vh,470px);min-height:260px;touch-action:none;cursor:grab}
#stl-canvas:active{cursor:grabbing}
.stl-dialog .stl-hint{margin:12px 0 8px;line-height:1.5}
.stl-dialog #stl-status{min-height:20px;overflow-wrap:anywhere;color:var(--muted)}
@media(max-width:640px){.stl-dialog{padding:16px 13px}#stl-canvas{min-height:220px;height:42vh}.stl-dialog .dialog-actions{margin-top:15px}}

.file-version-row{flex-wrap:wrap;row-gap:8px}
.file-version-row .main-info{flex:1 1 240px}
.file-version-row .btn{flex:0 0 auto}
.stl-dialog .dialog-actions{flex-wrap:wrap}
