:root{--bg:#0f1418;--panel:#161d23;--panel-2:#1d262e;--line:#2a353f;--text:#e8eef2;--muted:#93a3b0;--green:#17a34a;--green-dark:#0f7a37;--amber:#d99a17;--red:#d9534f;--blue:#3f8fd2;--radius:10px}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}a{color:var(--blue)}.topbar{display:flex;align-items:center;gap:16px;padding:10px 18px;border-bottom:1px solid var(--line);background:var(--panel);position:-webkit-sticky;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:baseline;gap:10px;font-weight:700;letter-spacing:.3px}.brand .mark{color:var(--green)}.brand small{color:var(--muted);font-weight:500;letter-spacing:0}.spacer{flex:1 1}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid var(--line);background:var(--panel-2);color:var(--muted);font-size:12px;white-space:nowrap}.badge.ok{border-color:#1d5c33;color:#7fe0a3}.badge.warn{border-color:#6b5216;color:#f0c35c}.dot{width:7px;height:7px;border-radius:50%;background:currentColor}.btn{border:1px solid var(--line);background:var(--panel-2);color:var(--text);padding:8px 14px;border-radius:8px;cursor:pointer;transition:.15s}.btn:hover:not(:disabled){border-color:#3d4c58;background:#232e37}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--green);border-color:var(--green);color:#05130a;font-weight:600}.btn.primary:hover:not(:disabled){background:#1cb955;border-color:#1cb955}.btn.ghost{background:transparent}.layout{display:grid;grid-template-columns:320px 1fr;grid-gap:18px;gap:18px;padding:18px;align-items:start}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.panel h2{margin:0 0 12px;font-size:13px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}.side{position:-webkit-sticky;position:sticky;top:74px;display:flex;flex-direction:column;gap:14px}.drop{border:1.5px dashed #33424e;border-radius:var(--radius);padding:22px 14px;text-align:center;color:var(--muted);cursor:pointer;transition:.15s}.drop.over,.drop:hover{border-color:var(--green);color:var(--text);background:#12261a}.samples{display:flex;flex-direction:column;gap:6px;margin-top:12px}.sample{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);cursor:pointer;text-align:left;color:var(--text);font-size:13px}.sample:hover{border-color:var(--green-dark)}.sample span{color:var(--muted);font-size:12px}.pages{display:flex;flex-wrap:wrap;gap:5px}.page-chip{width:30px;height:26px;display:grid;place-items:center;border-radius:6px;border:1px solid var(--line);background:var(--panel-2);font-size:11px;color:var(--muted)}.page-chip.busy{border-color:var(--blue);color:#9ccbf0;animation:pulse 1.1s infinite}.page-chip.done{border-color:#1d5c33;background:#10231a;color:#7fe0a3}.page-chip.empty{opacity:.5}.page-chip.fail{border-color:#6b2b2b;background:#241313;color:#f19a97}@keyframes pulse{50%{opacity:.45}}.progress{height:6px;border-radius:3px;background:var(--panel-2);overflow:hidden;border:1px solid var(--line)}.progress>div{height:100%;background:var(--green);transition:width .3s}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px}.tab{padding:9px 16px;background:none;color:var(--muted);cursor:pointer;border:none;border-bottom:2px solid transparent;margin-bottom:-1px}.tab.active{color:var(--text);border-bottom-color:var(--green)}.tab .count{margin-left:6px;padding:1px 6px;border-radius:999px;background:var(--panel-2);font-size:11px}.hero{display:grid;grid-gap:18px;gap:18px;padding:30px;text-align:center}.hero h1{font-size:24px;margin:0}.hero p{color:var(--muted);margin:0 auto;max-width:620px;line-height:1.6}.flow{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:6px}.flow>div{border:1px solid var(--line);background:var(--panel-2);border-radius:8px;padding:10px 14px;font-size:13px;color:var(--muted)}.flow>div b{color:var(--text);display:block;font-size:13px}.arrow{align-self:center;color:var(--muted)}.check{display:flex;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);margin-bottom:8px}.check .icon{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:13px;flex:none}.check.ok .icon{background:#10331f;color:#6fdd9b}.check.warn .icon{background:#33290f;color:#f0c35c}.check.error .icon{background:#33161a;color:#f38b87}.check.info .icon{background:#14262f;color:#8fc4e8}.check b{display:block;margin-bottom:3px}.check p{margin:0;color:var(--muted);line-height:1.5}table.data{width:100%;border-collapse:collapse;font-size:13px}table.data td,table.data th{border-bottom:1px solid var(--line);padding:7px 8px;text-align:left;vertical-align:top}table.data th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.4px}pre.json{background:#0b1116;border:1px solid var(--line);border-radius:8px;padding:14px;overflow:auto;max-height:70vh;font-size:12px;line-height:1.5;color:#c8d6e0}.src-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:14px;gap:14px}.src-card{border:1px solid var(--line);border-radius:8px;background:var(--panel-2);padding:10px}.src-card img{width:100%;background:#fff;border-radius:4px}.src-card .cap{font-size:12px;color:var(--muted);margin:8px 0 4px}.err{border:1px solid #6b2b2b;background:#241313;color:#f5b7b4;padding:12px 14px;border-radius:8px;margin-bottom:12px}.toolbar{gap:8px;margin-bottom:14px;flex-wrap:wrap}.field,.toolbar{display:flex;align-items:center}.field{gap:6px;color:var(--muted);font-size:13px}.field input{background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:6px;padding:6px 8px;width:130px}.btn.danger{border-color:#6b2b2b;background:#2a1414;color:#f5b7b4}.btn.danger:hover:not(:disabled){background:#3a1a1a;border-color:#8a3636}.lang-switch{display:flex;align-items:center;gap:6px;margin-top:12px;font-size:12px;color:var(--muted)}.lang-switch span{margin-right:auto}.lang-switch button{border:1px solid var(--line);background:var(--panel-2);color:var(--muted);border-radius:999px;padding:4px 10px;cursor:pointer;font-size:12px}.lang-switch button.on{border-color:var(--green-dark);background:#12261a;color:#7fe0a3}.lang-switch button:disabled{opacity:.45;cursor:not-allowed}.history{display:flex;flex-direction:column;gap:6px}.history-row{display:flex;gap:4px;align-items:stretch}.history-open{flex:1 1;display:flex;flex-direction:column;gap:2px;text-align:left;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);color:var(--text);cursor:pointer;font-size:13px}.history-open:hover{border-color:var(--green-dark)}.history-open span+span{color:var(--muted);font-size:11px}.history-del{border:1px solid var(--line);border-radius:8px;background:var(--panel-2);color:var(--muted);cursor:pointer;padding:0 10px}.history-del:hover{border-color:#6b2b2b;color:#f19a97}.modal-bg{position:fixed;inset:0;background:rgba(6,10,13,.72);display:grid;place-items:center;z-index:50;padding:20px}.modal{width:460px;max-width:100%;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px}.modal h3{margin:0 0 12px;font-size:17px}.modal p{margin:0 0 8px;color:var(--muted);line-height:1.55;font-size:13px}.modal-actions{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap}.modal-actions .btn{flex:1 1;min-width:130px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:360px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:28px;text-align:center}.login-card h1{margin:0 0 6px;font-size:20px}.login-card p{color:var(--muted);margin:0 0 20px;font-size:13px}.login-card input{width:100%;padding:11px 12px;border-radius:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);margin-bottom:10px;text-align:center}.login-card .btn{width:100%}.sheet-wrap{background:#4a545c;padding:20px;border-radius:var(--radius);overflow:auto}.sheet{width:210mm;min-height:297mm;margin:0 auto;background:#fff;color:#000;padding:8mm;font-family:Arial,Helvetica,sans-serif;font-size:9pt;line-height:1.25;background-image:repeating-linear-gradient(180deg,transparent 0,transparent calc(297mm - 1px),#c9ced2 calc(297mm - 1px),#c9ced2 297mm)}.sheet .order-head{display:flex;align-items:center;gap:14px;margin-bottom:6mm}.sheet .order-no{font-size:19pt;font-weight:700;display:flex;align-items:center;gap:8px}.sheet .order-no .circle{border:2.5px solid #000;border-radius:50%;width:58px;height:44px;display:grid;place-items:center;font-size:22pt;line-height:1}.sheet .order-date{font-size:12pt;font-weight:700}.sheet .order-client{margin-left:auto;text-align:right;font-size:9pt}.sheet .order-client b{font-size:11pt}.group{border-top:2px dashed #000;padding-top:4mm;margin-top:4mm;page-break-inside:auto;break-inside:auto}.group:first-of-type{border-top:none;padding-top:0;margin-top:0}.group-head{display:grid;grid-template-columns:1.05fr 1fr;grid-gap:6mm;gap:6mm;margin-bottom:4mm;page-break-inside:avoid;break-inside:avoid;break-after:avoid;page-break-after:avoid}.gh-left .client{font-style:italic;font-weight:700;font-size:10pt;margin-bottom:2mm}.gh-left .title{font-size:22pt;font-weight:700;line-height:1}.gh-left .material{font-size:15pt;font-weight:700;line-height:1.1}.gh-left .colors{margin-top:2mm;font-size:11pt;font-weight:700}.gh-left .colors .c{display:flex;align-items:center;gap:6px}.swatch{width:13px;height:13px;border:1px solid #444;display:inline-block;flex:none}.cross-section{max-width:100%;max-height:36mm;object-fit:contain;margin:1mm 0 2mm}.gh-right .tech{font-weight:700;font-size:10.5pt;margin-bottom:1.5mm}.gh-right .attr{display:flex;gap:5px}.gh-right .attr b{white-space:nowrap}.gh-right .attr span{font-weight:400}.gh-right .attr-group{margin-top:2mm}.group-notes{margin:2mm 0 3mm;font-weight:700;font-size:11pt;text-transform:uppercase;line-height:1.3}.positions{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:5mm 4mm;gap:5mm 4mm}.positions.wide{grid-template-columns:repeat(2,1fr)}.pos{break-inside:avoid;page-break-inside:avoid}.pos .pos-head{font-size:8pt;line-height:1.3;margin-bottom:1mm}.pos .pos-head b{font-size:8.5pt}.pos .draw{width:100%;border:none;display:block}.pos .handing{text-align:center;font-weight:700;font-size:12pt;margin-top:1mm}.pos .own{font-size:8pt;margin-top:1mm}.pos .own div{line-height:1.35}.pos .note,.pos .own b{font-weight:700}.pos .note{font-size:8pt;text-transform:uppercase;margin-top:1mm}.sheet-foot{margin-top:6mm;padding-top:2mm;border-top:1px solid #999;font-size:7.5pt;color:#444;display:flex;justify-content:space-between}.editable{border:1px dashed #bbb;min-width:30px;padding:0 4px;outline:none}.editable:focus{border-color:var(--green);background:#f2fff6}@media (max-width:900px){.layout{grid-template-columns:1fr;padding:12px}.side{position:static}.sheet-wrap{padding:10px;overflow-x:auto}.topbar{flex-wrap:wrap;gap:8px}}@page{size:A4 portrait;margin:8mm}@media print{body{background:#fff}.no-print,.side,.tabs,.toolbar,.topbar{display:none!important}.layout{display:block;padding:0}.sheet-wrap{background:none;padding:0;border-radius:0;overflow:visible}.sheet{width:auto;min-height:0;padding:0;font-size:9pt;background-image:none}.editable{border:none}.group{page-break-before:auto;break-before:auto}}