/* Главгеопроект КП — оформление как в ИГМИ/ИГИ: верхняя панель, шаги слева, один экран на шаг. Бренд: оранжевый / жёлтый / графит. */
:root{--g:#343638;--o:#f28a00;--o-dark:#d97900;--o-soft:#fff4e3;--y:#ffca14;--paper:#f5f3ee;--line:#e2ded6;--muted:#6f7a7e;
  --ok:#2f8a4c;--ok-bg:#eaf6ee;--warn:#9a5d00;--warn-bg:#fff5e2;--bad:#b83a22;--bad-bg:#fdecea;--blue:#1f5fa8}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font:14px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--g);background:var(--paper);overflow:hidden}
button{font:inherit;cursor:pointer;border:0;color:inherit}
button:disabled{opacity:.45;cursor:not-allowed}
[hidden]{display:none!important}
h2,h3{margin:0}

/* buttons, chips */
.btn{padding:9px 16px;border-radius:10px;font-weight:700;background:#fff;border:1px solid #cfd4d5;color:var(--g);white-space:nowrap}
.btn:hover:not(:disabled){border-color:var(--o)}
.btn.primary{background:var(--g);color:#fff;border-color:var(--g)}
.btn.primary:hover:not(:disabled){background:#1f2021}
.btn.orange{background:var(--o);color:#fff;border-color:var(--o)}
.btn.orange:hover:not(:disabled){background:var(--o-dark)}
.btn.ghost{background:#fff;border-color:#c9a15b;color:var(--warn)}
.btn.small{padding:6px 11px;font-size:12px;border-radius:8px}
.btn.big{padding:13px 18px;font-size:15px}
.wide-btn{width:100%;margin-top:10px}
.chip{padding:4px 10px;border-radius:99px;font-size:12px;font-weight:800;white-space:nowrap}
.chip.ok{background:var(--ok-bg);color:var(--ok)}.chip.warn{background:var(--warn-bg);color:var(--warn)}.chip.bad{background:var(--bad-bg);color:var(--bad)}.chip.neutral{background:#eef0f0;color:#5d686b}

/* app frame */
.app{display:grid;grid-template-rows:64px 1fr;height:100vh}
.topbar{display:flex;align-items:center;gap:16px;padding:0 18px;background:#fff;border-bottom:1px solid var(--line);min-width:0}
.brand-logo-image{height:36px;width:auto;display:block}
.top-object{flex:1;min-width:0;border-left:1px solid var(--line);padding-left:16px}
.top-object b{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-object span{display:block;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-chips{display:flex;gap:6px}
.body{display:grid;grid-template-columns:232px 1fr;min-height:0}
.rail{background:#fff;border-right:1px solid var(--line);padding:14px 12px;display:flex;flex-direction:column;gap:3px;overflow:auto}
.step{display:flex;gap:12px;align-items:center;padding:10px 12px;border-radius:12px;background:none;text-align:left;width:100%}
.step:hover{background:#f7f5f0}
.step.active{background:var(--o-soft);box-shadow:inset 3px 0 0 var(--o)}
.num{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:13px;background:#eeeae2;flex:none}
.step.done .num{background:var(--ok);color:#fff;font-size:0}.step.done .num::after{content:"✓";font-size:14px}
.step.active .num{background:var(--o);color:#fff}
.step.attention .num{background:var(--bad);color:#fff}
.step b{display:block;font-size:14px}.step small{display:block;color:var(--muted);font-size:11.5px;line-height:1.35}
.rail hr{border:0;border-top:1px solid var(--line);margin:10px 4px;width:calc(100% - 8px)}
.aux{font-size:13px;padding:8px 12px;border-radius:10px;background:none;text-align:left;width:100%}
.aux:hover{background:#f7f5f0}.aux.active{background:var(--o-soft)}
.rail-foot{margin-top:auto;font-size:11px;color:var(--muted);padding:8px 12px 0}
.content{overflow:auto;padding:14px 24px 32px;min-height:0;display:flex;flex-direction:column}
.page{display:none}.page.active{display:flex;flex-direction:column;flex:1;min-height:0}
.page-head{margin:8px 0 14px}.page-head h2{font-size:21px}.page-head p{color:var(--muted);margin:3px 0 0}
.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}
.card h3{font-size:15px;margin:0 0 12px}

/* status line */
.status{border-radius:10px;padding:8px 12px;font-size:12.5px;font-weight:700;line-height:1.45}
.idle{background:#eceeee;color:#5f696c}.busy{background:#fff4d5;color:#8a5800}.ok{background:var(--ok-bg);color:#1d6b3b}.error{background:#fff0eb;color:#a43d1c}

/* forms */
label{font-size:12px;font-weight:700;color:#555b5d;display:grid;gap:5px;margin-bottom:11px}
input,textarea,select{width:100%;border:1px solid #d8ddde;border-radius:10px;padding:9px 11px;font:inherit;font-size:14px;color:#222;background:#fcfcfb;outline:none}
textarea{resize:vertical}
input:focus,textarea:focus,select:focus{border-color:var(--o);box-shadow:0 0 0 3px rgba(242,138,0,.13)}
.field-hint{display:block;color:#7a8588;font-size:10.5px;font-weight:600;line-height:1.35}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.input-with-unit{display:grid;grid-template-columns:1fr 66px;gap:6px}
.input-with-unit select{font-weight:800;background:#f4f2ed}
.input-with-unit.compact{grid-template-columns:1fr 60px}
details>summary{cursor:pointer;font-weight:700;font-size:13px;margin:4px 0 10px}
.title-fields{border-top:1px solid var(--line);padding-top:8px;margin-top:2px}
.form-actions{display:flex;gap:8px;margin-top:4px}
.form-actions .btn.primary{flex:1}
.hint{font-size:11px;line-height:1.5;color:#7a8588;margin:8px 0 0}
.field-problem{background:#fff0eb;color:#a43d1c;border-radius:9px;padding:9px 11px;font-size:12px;line-height:1.45;margin:4px 0}
.field-problem button{margin-left:8px;padding:5px 10px;border-radius:8px;background:#fff;border:1px solid #d9a58f;color:#a43d1c;font-weight:700}

/* step 1 */
/* workspace: form + live preview */
.workspace{display:grid;grid-template-columns:minmax(460px,1fr) minmax(400px,46%);gap:18px;flex:1;min-height:0}
.form-col{overflow-y:auto;min-height:0;padding:2px 4px 30px 2px}
.content.fixed{overflow:hidden}
.preview-pane{display:flex;flex-direction:column;min-height:0;background:#e9e6df;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.preview-bar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#fff;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}
.preview-bar b{color:var(--g);font-size:13px}
.preview-bar .spacer{flex:1}
.preview-state{font-weight:700}
.preview-state.busy{background:none;color:#8a5800}
.preview-pages{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;align-items:center;gap:14px}
.preview-pages canvas{width:100%;max-width:640px;height:auto;background:#fff;box-shadow:0 6px 22px rgba(0,0,0,.14);border-radius:2px}
.preview-empty{margin:auto;color:var(--muted);font-size:13px;text-align:center}

/* cards and fields */
.card+.card{margin-top:14px}
.row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.row4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.checks-inline{display:flex;flex-wrap:wrap;gap:6px 16px;margin:2px 0 12px}
.check{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:#3f4648;margin:0;cursor:pointer}
.check input{width:16px;height:16px;margin:0;accent-color:var(--o)}
.money{font-variant-numeric:tabular-nums;font-weight:700}
.sub{font-size:12px;color:var(--muted);margin:-4px 0 12px}

/* toggle */
.switch{position:relative;width:40px;height:23px;flex:none;margin:0;display:block}
.switch input{opacity:0;width:0;height:0;position:absolute}
.switch span{position:absolute;inset:0;background:#cfd4d5;border-radius:99px;transition:.15s;cursor:pointer}
.switch span::after{content:"";position:absolute;left:3px;top:3px;width:17px;height:17px;border-radius:50%;background:#fff;transition:.15s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.switch input:checked+span{background:var(--o)}
.switch input:checked+span::after{transform:translateX(17px)}
.switch input:focus-visible+span{box-shadow:0 0 0 3px rgba(242,138,0,.25)}

/* survey sections */
.sec{background:#fff;border:1px solid var(--line);border-radius:16px;margin-bottom:12px;overflow:hidden}
.sec.off{background:#faf9f6}
.sec.off .sec-body{display:none}
.sec-head{display:flex;align-items:center;gap:12px;padding:14px 16px}
.sec-head .tag{font-size:11px;font-weight:800;border-radius:7px;padding:3px 7px;background:#f1eee7;color:#6c6457;flex:none}
.sec:not(.off) .sec-head .tag{background:var(--o-soft);color:#a45c00}
.sec-head h3{font-size:15px;margin:0;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sec.off .sec-head h3{color:#8a9194}
.sec-head .sum{font-size:13px;color:var(--muted);white-space:nowrap}
.sec:not(.off) .sec-head .sum b{color:var(--g)}
.sec-body{padding:2px 16px 16px;border-top:1px solid #f0ece4}
.sec-body h4{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:14px 0 8px}
.price-row{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:10px;background:#fffaf0;border:1px solid #f0e2c6;border-radius:12px;padding:12px 12px 1px;margin-top:10px}
.price-row input{background:#fff}
.wells{display:grid;gap:6px;margin-bottom:10px}
.well-row{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:center}
.well-row label{margin:0}
.well-row .btn{margin-top:18px}
.lines-view{background:#faf9f6;border:1px dashed #ddd6c8;border-radius:12px;padding:10px 12px;font:13px/1.55 "Times New Roman",Georgia,serif;color:#333;white-space:pre-wrap;max-height:260px;overflow:auto}
.lines-edit{font:13px/1.5 "Times New Roman",Georgia,serif;min-height:200px}
.lines-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.lines-actions small{color:var(--muted);font-size:11.5px}
.manual-flag{font-size:11px;font-weight:800;color:#8a5800;background:#fff4d5;border-radius:6px;padding:2px 6px}
.add-row{display:flex;gap:8px;margin:4px 0 8px}

/* totals */
.kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 16px;min-width:0}
.kpi .t{font-size:11.5px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.kpi .v{font-size:22px;font-weight:800;margin:4px 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi .d{font-size:12px;color:#666;line-height:1.4}
.breakdown{width:100%;border-collapse:collapse;font-size:13px}
.breakdown td{padding:7px 4px;border-bottom:1px solid #f0ece4}
.breakdown td:last-child{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.breakdown tr.total td{font-weight:800;border-bottom:0;padding-top:10px}
.breakdown td.days{color:var(--muted);text-align:right;width:130px}

/* checks and output */
.check-list{display:grid;gap:8px;margin:0 0 14px}
.check-item{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;font-size:13px}
.check-item.bad{box-shadow:inset 4px 0 0 var(--bad)}.check-item.warn{box-shadow:inset 4px 0 0 #e0a100}.check-item.ok{box-shadow:inset 4px 0 0 var(--ok)}
.check-item span{flex:1}
.exports{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}
.exp{border:1px solid var(--line);border-radius:16px;padding:16px;background:#fff;display:flex;flex-direction:column;gap:6px}
.exp b{font-size:15px}.exp span{font-size:12.5px;color:var(--muted);flex:1}
.issued{display:grid;gap:6px}
.issued-row{display:flex;gap:8px;align-items:center;font-size:12.5px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 10px;overflow-wrap:anywhere}
.issued-row span{flex:1}

/* registry */
.reg-tools{display:flex;gap:10px;align-items:center;margin-bottom:12px}
.reg-tools input{max-width:420px}
table.reg{width:100%;border-collapse:collapse;font-size:13px;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
table.reg th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:10px 12px;background:#faf8f4;border-bottom:1px solid var(--line)}
table.reg td{padding:10px 12px;border-bottom:1px solid #f0ece4;vertical-align:top}
table.reg tr:last-child td{border-bottom:0}
table.reg tr.current td{background:var(--o-soft)}
table.reg td.no{font-weight:800;white-space:nowrap}
table.reg td.sum{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
table.reg td.act{white-space:nowrap;text-align:right}
table.reg td.act .btn{margin-left:4px}
.kinds{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.kinds span{font-size:10.5px;font-weight:800;background:#f1eee7;color:#6c6457;border-radius:6px;padding:1px 6px}

/* settings */
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start;max-width:1100px}
.contact-row{display:grid;grid-template-columns:1fr 1.3fr 1fr auto;gap:8px;align-items:end;margin-bottom:6px}
.contact-row label{margin:0}
.toast{position:fixed;right:22px;bottom:22px;background:var(--g);color:#fff;border-radius:12px;padding:12px 16px;font-size:13px;box-shadow:0 10px 30px rgba(0,0,0,.25);z-index:50;max-width:460px;display:flex;gap:12px;align-items:center}
.toast .btn{padding:6px 10px;font-size:12px}

@media (max-width:1280px){.workspace{grid-template-columns:1fr 40%}.row4{grid-template-columns:repeat(2,minmax(0,1fr))}.exports{grid-template-columns:1fr}}
@media (max-width:1150px){.body{grid-template-columns:200px 1fr}.top-chips{display:none}}
.row2>label,.row3>label,.row4>label,.price-row>label{align-content:start}
.kpi .v{white-space:normal;font-size:20px;line-height:1.2}
.sec-head h3{white-space:normal}
.preview-pages{position:relative}

.adv-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px}
.adv-chips button{padding:5px 10px;border-radius:99px;border:1px solid #d8ddde;background:#fff;font-size:12px;font-weight:700;color:#4a5054}
.adv-chips button:hover{border-color:var(--o)}
.adv-chips button.on{background:var(--o);border-color:var(--o);color:#fff}
.extras-edit{display:grid;gap:6px;margin-bottom:6px}
.ex-row{display:grid;grid-template-columns:170px 110px auto 1fr;gap:6px 8px;align-items:end;background:#faf9f6;border:1px solid #efeae0;border-radius:12px;padding:8px 10px}
.ex-row label{margin:0}.ex-row label:first-child{grid-column:1/-1}.ex-row .btn{margin-bottom:2px}
.ex-row .ex-hint{grid-column:1/-1;font-size:11.5px;color:var(--muted)}
.ex-row .ex-hint:empty{display:none}
.add-row select{width:auto;max-width:360px;padding:6px 10px;font-size:12.5px;border-radius:8px}
.prices .ex-name{width:100%;padding:6px 8px;font-size:13px}
.prices .ex-unit{width:80px;padding:6px 8px;font-size:13px}
.prices select{width:auto;padding:6px 8px;font-size:13px}
.danger-zone>summary{font-weight:700;font-size:14px;color:#8a5800;margin:0}
.danger-zone[open]>summary{margin-bottom:8px}
/* price calculation */
.price-row .calc{grid-column:1/-1;margin:-2px 0 10px;font-size:12px}
.calc-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.calc-mode{font-size:11px;font-weight:800;border-radius:6px;padding:2px 7px}
.calc-mode.auto{background:var(--ok-bg);color:var(--ok)}.calc-mode.manual{background:#fff4d5;color:#8a5800}
.calc-lines{margin-top:5px;color:#5d686b;line-height:1.55}
.calc-warn{margin-top:5px;color:var(--bad);font-weight:700}
.calc-note{color:var(--muted)}
.prices{max-width:1000px}
.ptable{border-collapse:collapse;width:100%;font-size:13px;margin-bottom:6px}
.ptable th,.ptable td{border-bottom:1px solid #f0ece4;padding:6px 8px;text-align:left}
.ptable thead th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#faf8f4}
.ptable tbody th{font-weight:600;color:#3f4648;white-space:nowrap}
.pin{width:110px;padding:6px 8px;font-size:13px;text-align:right;font-variant-numeric:tabular-nums}
.pin.bad{border-color:var(--bad)}
.prices .sub{margin:8px 0 0}.prices .sub .pin{width:110px}
