:root{--bg:#071016;--panel:#0e1a21;--panel2:#14242d;--line:#263943;--ink:#eef7fa;--muted:#8fa4ae;--cyan:#00bde7;--red:#ff746c;--green:#57d696}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 Arial,sans-serif}header{height:68px;display:flex;align-items:center;gap:12px;padding:0 22px;border-bottom:1px solid var(--line);background:#09141b;position:sticky;top:0;z-index:5}.logo{width:38px;height:38px;border:2px solid var(--cyan);display:grid;place-items:center;font-weight:900}.brand-logo{width:118px;height:34px;object-fit:contain;object-position:left center}header strong,header small{display:block}header small{color:var(--muted)}.mode{margin-left:auto;border:1px solid var(--line);padding:7px 10px;border-radius:999px;color:var(--cyan);font-size:10px;font-weight:700}main{display:grid;grid-template-columns:370px 1fr;min-height:calc(100vh - 68px)}aside{padding:14px;border-right:1px solid var(--line);overflow:auto}aside section,details{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:15px;margin-bottom:12px}.new-features{margin:12px 0;padding:12px;border:1px solid #26515f;border-radius:9px;background:#091b22}.new-features>b{display:block;color:var(--cyan);font:800 11px monospace;letter-spacing:.08em}.new-features ul{margin:8px 0 0;padding-left:18px}.new-features li+li{margin-top:8px}.step{color:var(--cyan);font:bold 11px monospace}h2{margin:3px 0 7px;font-size:17px}p{color:var(--muted)}.drop{display:grid;place-items:center;text-align:center;border:1px dashed #42606e;border-radius:10px;padding:18px;cursor:pointer}.drop input{display:none}.drop span{color:var(--muted);font-size:11px}.photo{display:block;width:100%;max-height:260px;object-fit:contain;margin-top:10px;border-radius:8px;background:#fff}.hidden{display:none!important}textarea,input,select{width:100%;background:#09141b;color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:9px;font:inherit}textarea{margin-top:10px;resize:vertical}.row,.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}.manual-part{display:grid;grid-template-columns:minmax(170px,1.5fr) repeat(3,minmax(120px,1fr)) auto auto;gap:10px;align-items:end;margin:0 18px 14px;padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.manual-part label{font-size:11px;color:var(--muted)}.manual-part input{margin-top:5px}.manual-part small{grid-column:1/-1;color:var(--muted)}button{background:#14242d;color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:9px 12px;font-weight:700;cursor:pointer}.primary{background:var(--cyan);color:#032733;border-color:var(--cyan)}.locked-action{border-color:#75422e!important;color:#ffb79d!important;background:#2a1916!important}.locked-action:hover{background:#3a211b!important}.full{width:100%;margin-top:12px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.grid label{font-size:11px;color:var(--muted)}.info{margin-top:8px;color:var(--muted);font-size:12px}.ocr-progress{margin-top:10px}.ocr-progress>div{height:6px;background:#20323c;border-radius:8px;overflow:hidden}.ocr-progress span{display:block;height:100%;width:0;background:var(--cyan)}.ocr-progress b{display:block;margin-top:5px;font-size:11px}.workspace{padding:22px;min-width:0}.hero{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.hero p{margin:0;color:var(--cyan);font:bold 10px monospace}.hero h1{margin:4px 0 0;font-size:30px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.stat{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:13px}.stat small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase}.stat b{font-size:20px}nav{display:flex;gap:6px;border-bottom:1px solid var(--line)}nav button{border:0;border-bottom:2px solid transparent;border-radius:0;background:none}nav button.active{color:var(--cyan);border-bottom-color:var(--cyan)}.panel{display:none;padding-top:14px}.panel.active{display:block}.tablewrap{overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:10px}table{width:100%;min-width:900px;border-collapse:collapse}th,td{padding:8px;border-bottom:1px solid var(--line);text-align:left}th{font-size:10px;color:var(--muted);text-transform:uppercase}.review-summary{display:flex;flex-direction:column;gap:3px;margin-bottom:10px;padding:12px;border:1px solid #ffb64d;border-radius:10px;background:#352510;color:#ffe0a3}.review-summary span{font-size:12px}.ocr-check{background:#342914}.ocr-pending{outline:2px solid #ffb64d;outline-offset:-2px}.review-info{display:flex;flex-direction:column;gap:3px;margin-bottom:7px;padding:7px 8px;border-radius:7px;background:#4a3214;color:#ffe0a3}.review-info b{font-size:9px;letter-spacing:.06em}.review-info span{font-size:10px}.uncertain-field{border:2px solid #ffb64d!important;background:#2b210e!important}.review-edit,.review-approve{display:block;width:100%;margin-bottom:5px}.review-edit{color:#9deaff;border-color:#287185}.review-approve{background:#226542;border-color:#3eb978;color:#d9ffea}.ocr-check td:first-child:before{content:'SPRAWDŹ OCR';display:block;color:#ffc75a;font-size:9px;font-weight:800;margin-bottom:3px}td input{min-width:90px}.delete{color:var(--red)}.canvasbox{background:#e7edf0;border-radius:10px;padding:10px;overflow:auto}canvas{display:block;width:100%;height:auto}.sheet-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.sheet-tabs button.active{background:var(--cyan);color:#032733}.lock{display:flex;gap:12px;flex-direction:column;background:#352018;border:1px solid #75422e;padding:14px;border-radius:10px;color:#ffd1bd}.lock span{color:#eab7a0}pre{background:#050a0d;border:1px solid var(--line);padding:15px;border-radius:10px;overflow:auto;color:#b9e9d0}.warnbox{background:#351f20;color:#ffc9c6;padding:10px;border-radius:8px;margin-top:10px}#toast{position:fixed;right:18px;bottom:18px;background:var(--cyan);color:#032733;padding:10px 14px;border-radius:8px;font-weight:700;opacity:0;transition:.2s}#toast.show{opacity:1}.stay-advanced{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:8px;background:#09141b;border:1px solid #26515f;border-radius:9px;padding:10px}.cam-stats{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:8px;margin:12px 0}.compare,.metric{display:flex;flex-direction:column;gap:3px;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:10px}.compare h3{font-size:10px;color:var(--muted);margin:0}.compare.active{border-color:var(--green)}.compare.saving{border-color:var(--cyan)}.compare span,.metric span{font-size:11px;color:var(--muted)}.cam-toolbar,.cam-legend{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0}.cam-toolbar label{display:flex;align-items:center;gap:8px;color:var(--muted)}.cam-toolbar select{width:auto}.cam-legend span{font-size:9px;font-weight:800;padding:4px 7px;border-radius:5px;background:#13232b}.cam-legend .cut{color:#00bde7}.cam-legend .stay{color:#57d696}.cam-legend .rapid{color:#f2a33b}.cam-legend .plunge{color:#ed61e7}.cam-legend .retract{color:#ff746c}.cam-canvasbox{width:100%;max-width:100%;overflow:hidden;background:#e7edf0;border-radius:10px;padding:10px}.cam-canvasbox canvas{display:block;max-width:100%;margin:0 auto}.segment-info{background:#09141b;border:1px solid var(--line);border-radius:7px;padding:9px;margin-top:8px;color:var(--muted)}.canvasbox{width:100%;max-width:100%;overflow:hidden}.canvasbox canvas{max-width:100%;margin:0 auto}@media(max-width:900px){main{grid-template-columns:1fr}aside{border-right:0;border-bottom:1px solid var(--line)}.workspace{padding:14px}.hero{display:block}.stats{grid-template-columns:1fr 1fr}.actions button{flex:1}.mode{display:none}.cam-stats{grid-template-columns:1fr 1fr}.cam-stats .compare{min-width:0}.stay-advanced{grid-template-columns:1fr}.manual-part{grid-template-columns:1fr 1fr;margin:0 0 14px}.manual-part label:first-child,.manual-part small{grid-column:1/-1}.manual-part button{width:100%}.cam-toolbar button{flex:1}.cam-toolbar label{width:100%}.cam-toolbar select{flex:1}}@media(max-width:600px){.tablewrap{overflow:visible;background:transparent;border:0}.tablewrap table{display:block;min-width:0}.tablewrap thead{display:none}.tablewrap tbody{display:grid;gap:12px}.tablewrap tr{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.tablewrap td{display:flex;min-width:0;flex-direction:column;gap:5px;padding:0;border:0}.tablewrap td::before{color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.tablewrap td:nth-child(1),.tablewrap td:nth-child(6),.tablewrap td:nth-child(9){grid-column:1/-1}.tablewrap td:nth-child(1)::before{content:'Nazwa'}.tablewrap td:nth-child(2)::before{content:'Szerokość [mm]'}.tablewrap td:nth-child(3)::before{content:'Wysokość [mm]'}.tablewrap td:nth-child(4)::before{content:'Ilość'}.tablewrap td:nth-child(5)::before{content:'Materiał'}.tablewrap td:nth-child(6)::before{content:'Usłojenie'}.tablewrap td:nth-child(7)::before{content:'Obrót 90°'}.tablewrap td:nth-child(8)::before{content:'Frezowanie podwójne'}.tablewrap td:nth-child(7),.tablewrap td:nth-child(8){min-height:54px;justify-content:space-between}.tablewrap td:nth-child(7) input,.tablewrap td:nth-child(8) input{width:24px;height:24px;min-width:24px;margin:2px 0}.tablewrap td input,.tablewrap td select{min-width:0;width:100%;font-size:16px}.tablewrap .delete{width:100%;padding:11px}.ocr-check td:first-child:before{content:'Nazwa · sprawdź OCR';display:block;margin:0}.stats{gap:7px}.stat{padding:10px}.stat b{font-size:18px}}