:root{--navy:#0d2438;--navy2:#152e44;--green:#18795c;--green2:#edf9f4;--bg:#f4f6f8;--white:#fff;--line:#e1e7e9;--muted:#708092;--text:#193244;--warn:#aa7109;--red:#bc4c4c;--radius:14px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 Inter,'Segoe UI',system-ui,Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}.boot{display:grid;place-content:center;min-height:100vh;text-align:center;color:var(--muted)}.spinner{border:3px solid #e2ebeb;border-top-color:var(--green);border-radius:50%;height:30px;width:30px;margin:0 auto 8px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}h1,h2,h3,p{margin-top:0}h1{font-size:25px;letter-spacing:-.6px;margin-bottom:4px}h2{font-size:19px;letter-spacing:-.4px;margin-bottom:9px}h3{font-size:15px;margin:0 0 7px}small,.muted{color:var(--muted)}.auth{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-brand{background:var(--navy);color:white;padding:clamp(30px,8vw,110px);display:flex;flex-direction:column;justify-content:center}.auth-brand h1{font-size:clamp(30px,4vw,56px);line-height:1.07;max-width:620px}.auth-brand p{color:#bccad3;max-width:520px;font-size:16px}.mark{width:44px;height:44px;border:2px solid #62c69e;color:#62c69e;border-radius:13px;display:grid;place-items:center;font-size:22px;font-weight:800;margin-bottom:35px}.auth-panel{display:grid;place-content:center;padding:30px}.auth-card{background:white;border:1px solid var(--line);border-radius:20px;padding:36px;min-width:min(420px,90vw);box-shadow:0 20px 65px #172d4010}.shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.sidebar{background:var(--navy);color:white;padding:26px 16px;display:flex;flex-direction:column;gap:10px}.brand{font-weight:800;letter-spacing:.2px;font-size:20px;padding:6px 10px 21px}.brand small{font-size:11px;display:block;font-weight:400;letter-spacing:1.4px;color:#91aabd}.nav{display:flex;align-items:center;width:100%;padding:12px 14px;text-align:left;color:#bfd0dc;background:transparent;border:0;border-radius:10px}.nav.active,.nav:hover{background:var(--navy2);color:#fff}.side-bottom{margin-top:auto;border-top:1px solid #344d60;padding:20px 10px 0}.side-bottom strong{display:block;overflow-wrap:anywhere}.main{min-width:0;padding:32px clamp(16px,3.2vw,52px)}.top{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:25px}.eyebrow{text-transform:uppercase;letter-spacing:1.2px;color:var(--green);font-size:11px;font-weight:800}.btn{padding:11px 16px;border-radius:10px;border:1px solid var(--green);color:white;background:var(--green);font-weight:700;display:inline-flex;gap:9px;justify-content:center;align-items:center}.btn:hover{filter:brightness(.96)}.btn.secondary{background:white;color:var(--text);border-color:var(--line)}.btn.ghost{color:var(--green);background:transparent;border-color:transparent}.btn.danger{background:#fff2f2;color:#a83232;border-color:#e6bcbc}.btn.sm{padding:7px 10px;font-size:12px}.btn.full{width:100%}.input,.select,.textarea{border:1px solid #dbe4e8;border-radius:9px;padding:11px 13px;width:100%;background:white;color:var(--text);outline:none}.input:focus,.select:focus,.textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #18795c15}.textarea{min-height:95px;resize:vertical}.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field label{font-weight:650;color:#536576;font-size:12px}.field small{font-size:11px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field.wide{grid-column:1/-1}.panel{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:22px;min-width:0}.panels{display:grid;gap:16px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px}.metric{padding:19px;border-radius:12px;background:white;border:1px solid var(--line)}.metric span{color:var(--muted);font-size:12px}.metric strong{display:block;font-size:30px;line-height:1.2;margin-top:10px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:680px}.table th{text-align:left;font-weight:600;color:var(--muted);font-size:11px;letter-spacing:.3px;text-transform:uppercase;padding:13px 12px;border-bottom:1px solid var(--line)}.table td{padding:14px 12px;border-bottom:1px solid #f0f2f3;vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:#fafcfc}.table a{color:var(--text);text-decoration:none;font-weight:750}.table a:hover{color:var(--green)}.pill{display:inline-flex;align-items:center;white-space:nowrap;border-radius:99px;padding:4px 10px;font-size:11px;font-weight:700;background:#eff3f6;color:#536477}.pill.awaiting_quote{background:#eff4fa;color:#37659c}.pill.awaiting_approval{background:#fff4d9;color:#926604}.pill.production,.pill.in_production{background:#eef2ff;color:#534fa6}.pill.ready_for_delivery,.pill.delivered{background:#ebf7ff;color:#256080}.pill.completed{background:#e7f8ee;color:#197454}.toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap}.toolbar input{max-width:310px}.empty{padding:38px 15px;text-align:center;color:var(--muted)}.empty strong{display:block;color:var(--text);font-size:15px}.detail-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.8fr);gap:18px}.stack{display:grid;gap:18px}.meta{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.meta dt{color:var(--muted);font-size:11px}.meta dd{margin:3px 0 0;font-weight:600;overflow-wrap:anywhere}.item{display:grid;grid-template-columns:2fr 1fr 80px;gap:8px;align-items:end;border:1px solid var(--line);border-radius:10px;padding:13px;margin:8px 0}.file-line,.event{border-bottom:1px solid #edf1f2;padding:12px 0}.file-line:last-child,.event:last-child{border-bottom:0}.file-line{display:flex;gap:10px;justify-content:space-between;align-items:center;overflow-wrap:anywhere}.event header{display:flex;gap:8px;justify-content:space-between}.event p{margin:6px 0 0;white-space:pre-wrap}.notice{background:var(--green2);color:#246447;padding:12px;border-radius:10px;font-size:13px}.notice.warn{background:#fff6e7;color:#855f18}.hide{display:none!important}#toast{position:fixed;right:20px;bottom:20px;z-index:999;max-width:420px;background:var(--navy);color:#fff;border-radius:12px;padding:14px 18px;box-shadow:0 12px 35px #142a3944;display:none}#toast.show{display:block}#toast.error{background:#933e3e}.line{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.space{justify-content:space-between}.separator{border:0;border-top:1px solid var(--line);margin:20px 0}.filedrop{border:1px dashed #aac9bd;border-radius:10px;padding:14px;background:#fbfefc}.quote{border:1px solid var(--line);border-radius:11px;padding:15px;margin-bottom:10px}.quote strong{font-size:19px}.quote.approved{border-color:#78bd9a;background:#f8fdf9}.fine{font-size:12px;color:var(--muted)}.muted-box{background:#f7fafb;border-radius:10px;padding:13px}.link{border:0;background:none;color:var(--green);text-decoration:underline;padding:0;font-weight:650}.foot{text-align:center;color:#8293a0;font-size:11px;margin-top:26px}@media(max-width:960px){.shell{grid-template-columns:1fr}.sidebar{padding:10px 16px;flex-direction:row;align-items:center;flex-wrap:wrap}.brand{padding:5px 10px;margin-right:auto}.brand small{display:none}.side-bottom{margin:0;border:0;padding:0}.side-bottom strong,.side-bottom small{display:none}.main{padding:18px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid{grid-template-columns:1fr}.auth{grid-template-columns:1fr}.auth-brand{padding:25px}.auth-brand h1{font-size:29px}.auth-brand p{font-size:13px}.auth-panel{padding:20px}.auth-card{min-width:0;width:min(480px,92vw)}}@media(max-width:560px){.form-grid,.meta{grid-template-columns:1fr}.top{align-items:flex-start;flex-direction:column}.item{grid-template-columns:1fr 1fr}.item .first{grid-column:1/-1}.metrics{gap:8px}.metric{padding:14px}.metric strong{font-size:23px}.panel{padding:16px}.side-bottom{width:100%;display:flex;justify-content:flex-end}.nav{width:auto;padding:8px 11px}.auth-brand{display:none}}
