:root{--blue:#123d66;--blue2:#0876c9;--orange:#f28c18;--bg:#edf2f6;--text:#263746;--border:#ccd7e0;--red:#c73535;--green:#16834b}
*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text)}button,input,select{font:inherit}
.appHeader{position:sticky;top:0;z-index:20;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;padding:12px 20px;display:flex;justify-content:space-between;align-items:center}
.brandBlock{display:flex;align-items:center;gap:12px}.brandLogo{width:52px;height:52px;object-fit:contain;background:#fff;border-radius:8px;padding:4px}.brandBlock strong{display:block;font-size:18px}.brandBlock small{opacity:.8}
button{border:0;border-radius:8px;padding:10px 14px;font-weight:bold;cursor:pointer}.primary{background:var(--blue2);color:#fff}.secondary{background:#dfe7ed;color:#30495b}.orange{background:var(--orange);color:#fff}.dark{background:var(--blue);color:#fff}.ghost{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.35)}
.headerActions,.actions{display:flex;gap:8px;flex-wrap:wrap}
.appShell{width:min(1700px,98%);margin:18px auto 40px}.hero{background:linear-gradient(135deg,#123d66,#0876c9);color:#fff;border-radius:16px;padding:28px;display:flex;justify-content:space-between;align-items:center}.hero span{font-size:11px;letter-spacing:2px;color:#ffc16d}.hero h1{margin:5px 0}.hero p{margin:0;opacity:.85}.hero>b{width:78px;height:78px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.13);font-size:20px}
.panel{background:#fff;border:1px solid var(--border);border-radius:13px;padding:18px;margin:16px 0;box-shadow:0 8px 25px rgba(18,61,102,.08)}.sectionTitle{display:flex;justify-content:space-between;gap:12px;align-items:center}.sectionTitle h2{margin:0}.sectionTitle p{margin:5px 0 0;color:#667887;font-size:13px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:15px}label{font-size:11px;font-weight:bold;color:#5b6d7e}input,select{display:block;width:100%;margin-top:5px;padding:10px;border:1px solid var(--border);border-radius:7px;background:#fff}.notice{margin-top:14px;padding:12px;border-radius:8px;background:#eef6fc;border-left:5px solid var(--blue2);font-size:13px;line-height:1.5}
.scroll{overflow:auto;margin-top:14px}table{width:100%;border-collapse:collapse;font-size:12px}#fieldTable{min-width:1500px}th{background:var(--blue);color:#fff;padding:9px 6px;position:sticky;top:0}td{border-bottom:1px solid #dde5eb;padding:5px;text-align:center}tbody tr:nth-child(even){background:#f8fafc}td input,td select{margin:0;padding:7px;min-width:70px;text-align:center}.refRow{background:#fff4df!important}.badRow{background:#ffecec!important}.delete{background:#d64b4b;color:#fff;padding:6px 9px}.ok{color:var(--green);font-weight:bold}.bad{color:var(--red);font-weight:bold}.ref{color:#b85e00;font-weight:bold}.fileButton{background:#dfe7ed;color:#30485b;padding:10px 14px;border-radius:8px;cursor:pointer}.fileButton input{display:none}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stats div{background:#fff;border:1px solid var(--border);border-left:5px solid var(--orange);border-radius:10px;padding:14px}.stats small{display:block;text-transform:uppercase;font-size:10px;color:#687988;font-weight:bold}.stats strong{display:block;margin-top:6px;color:var(--blue);font-size:19px}
.sheetPreview{position:relative;background:#fff;margin:20px auto;padding:18px;box-shadow:0 12px 35px rgba(0,0,0,.12);overflow:hidden}.watermark{position:absolute;inset:5% 5% 5% 5%;width:90%;height:90%;object-fit:contain;opacity:.05;pointer-events:none;z-index:0}.sheetFrame{position:relative;z-index:1;border:2px solid #1d2f3d;padding:12px}.sheetHeader{display:grid;grid-template-columns:170px 1fr 250px;gap:15px;align-items:center;border-bottom:2px solid #1d2f3d;padding-bottom:10px}.sheetLogo{width:150px;height:70px;object-fit:contain}.sheetHeader h2{margin:0;color:var(--blue)}.sheetHeader p{margin:5px 0 0}.sheetMeta{display:grid;gap:4px;text-align:right;font-size:12px}.drawingArea{margin-top:12px;border:1px solid #80909d}#mainCanvas{width:100%;height:620px;display:block;background:rgba(255,255,255,.93)}.tablesArea{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.tablesArea h3{margin:0 0 6px;font-size:13px}.tableWrap{max-height:230px;overflow:auto;border:1px solid var(--border)}.tablesArea th{position:static}.titleBlock{display:grid;grid-template-columns:repeat(4,1fr);border:2px solid #1d2f3d;margin-top:12px}.titleBlock div{padding:8px;border-right:1px solid #1d2f3d;border-bottom:1px solid #1d2f3d;display:grid;gap:3px}.titleBlock b{font-size:10px;text-transform:uppercase}.titleBlock span{font-size:12px}
.modal{display:none;position:fixed;inset:0;background:rgba(8,25,39,.65);z-index:50;align-items:center;justify-content:center;padding:18px}.modal.open{display:flex}.modalCard{background:#fff;width:min(760px,100%);max-height:90vh;overflow:auto;border-radius:14px;padding:20px}.modalCard li{margin:10px 0;line-height:1.5}
@media(max-width:900px){.grid4{grid-template-columns:repeat(2,1fr)}.tablesArea{grid-template-columns:1fr}.sheetHeader{grid-template-columns:1fr}.sheetMeta{text-align:left}.titleBlock{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.grid4,.stats{grid-template-columns:1fr}.hero>b{display:none}.sectionTitle{align-items:flex-start;flex-direction:column}.headerActions{display:none}.titleBlock{grid-template-columns:1fr}}
@media print{
@page{size:auto;margin:8mm}
body{background:#fff}.appHeader,.hero,.panel,.stats{display:none!important}.appShell{width:100%;margin:0}.sheetPreview{box-shadow:none;margin:0;padding:0;page-break-inside:avoid}.sheetFrame{min-height:96vh}.watermark{opacity:.05!important;position:fixed;inset:5%;width:90%;height:90%;object-fit:contain}.sheetHeader,.drawingArea,.tablesArea,.titleBlock{position:relative;z-index:2}#mainCanvas{height:55vh}.tableWrap{max-height:none;overflow:visible}.tablesArea table{font-size:9px}
}
#drawingZoomValue,#pointSizeValue,#lineWidthValue,#labelSizeValue{display:block;margin-top:6px;color:var(--blue);font-weight:bold;font-size:12px}.drawingArea{overflow:auto;position:relative}#mainCanvas{transform-origin:top left}.fullReport{display:none;position:relative;background:#fff;margin-top:20px;padding:18px;overflow:hidden}.reportWatermark{position:fixed;inset:5%;width:90%;height:90%;object-fit:contain;opacity:.05;pointer-events:none;z-index:0}.reportPage{position:relative;z-index:1;border:2px solid #1d2f3d;padding:16px}.reportHeader{display:flex;gap:18px;align-items:center;border-bottom:2px solid #1d2f3d;padding-bottom:12px}.reportLogo{width:180px;height:80px;object-fit:contain}.reportHeader h1{margin:0;color:var(--blue);font-size:24px}.reportHeader p{margin:4px 0 0}.reportGrid,.reportStats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #1d2f3d;margin:14px 0}.reportGrid div,.reportStats div{padding:8px;border-right:1px solid #1d2f3d;border-bottom:1px solid #1d2f3d;display:grid;gap:3px}.reportGrid b,.reportStats b{font-size:10px;text-transform:uppercase}.reportGrid span,.reportStats span{font-size:12px}.reportTable{overflow:visible;margin-bottom:16px}.reportTable table{width:100%;font-size:9px}.reportTable th{position:static}.reportCanvasWrap{border:1px solid #80909d;margin-top:8px}.reportCanvasWrap canvas{width:100%;height:650px;display:block}.reportFooter{display:flex;justify-content:space-between;border-top:2px solid #1d2f3d;margin-top:14px;padding-top:8px;font-size:10px}@media print{body.printAll .appHeader,body.printAll .hero,body.printAll .panel,body.printAll .stats,body.printAll .sheetPreview{display:none!important}body.printAll .fullReport{display:block!important;margin:0;padding:0;box-shadow:none}body.printSheetOnly .fullReport{display:none!important}body.printSheetOnly .sheetPreview{display:block!important}.reportPage{border:2px solid #1d2f3d}.reportCanvasWrap canvas{height:55vh}.reportTable table{font-size:8px}.reportGrid,.reportStats{grid-template-columns:repeat(4,1fr)}}@media(max-width:800px){.reportGrid,.reportStats{grid-template-columns:repeat(2,1fr)}}

#exportDXF{background:#263746;color:#fff}
