:root{--ink: #1d2328;--muted: #5c6670;--line: #d6dadf;--bg: #f4f2ee;--panel: #ffffff;--accent: #1f4e79;--accent-2: #8a6d3b;--danger: #a33b2c;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0}.app{display:flex;flex-direction:column;min-height:100vh}.topbar{display:flex;align-items:center;gap:18px;padding:8px 16px;background:#26313a;color:#fff;position:sticky;top:0;z-index:5}.brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:17px;cursor:pointer;letter-spacing:.3px}.beta{font-weight:500;font-size:10px;background:#8a6d3b;padding:1px 6px;border-radius:8px;text-transform:uppercase}.topbar nav{display:flex;gap:4px;flex-wrap:wrap}.nav{background:transparent;color:#cfd8df;border:0;padding:7px 11px;border-radius:5px;cursor:pointer;font-size:13.5px}.nav:hover:not(:disabled){background:#36434e;color:#fff}.nav.active{background:#fff;color:#26313a;font-weight:600}.nav:disabled{opacity:.4;cursor:default}.project-name{margin-left:auto;color:#cfd8df;font-size:13px;max-width:30ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}main{flex:1;padding:16px;display:flex;flex-direction:column;gap:14px}.statusbar{padding:6px 16px;font-size:12px;color:var(--muted);border-top:1px solid var(--line);background:#fbfaf8}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px 16px}.panel h2{margin:0 0 10px;font-size:16px}.panel h3{margin:16px 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}.panel.note{background:#eef3f7;border-color:#cfdbe6}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;margin-bottom:8px}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border:1px solid #b9c0c7;background:#fff;color:var(--ink);border-radius:6px;cursor:pointer;font-size:13.5px}.btn:hover{border-color:var(--accent)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:#18406a}.btn-danger{color:var(--danger);border-color:#d9aaa3}.btn-small{padding:4px 9px;font-size:12.5px}.btn-icon{border:0;background:transparent;cursor:pointer;font-size:15px;color:var(--muted);padding:2px 6px}.btn-icon:hover{color:var(--danger)}.link{border:0;background:none;color:var(--accent);cursor:pointer;font-size:14px;padding:0;text-decoration:underline}.field{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted)}.field input,.field select,.field textarea{font-size:13.5px;padding:6px 8px;border:1px solid #c4cad0;border-radius:5px;color:var(--ink);background:#fff;min-width:0}.field.check{flex-direction:row;align-items:center;gap:6px}.field-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px 12px}.field.wide{grid-column:span 2}.project-list{list-style:none;margin:0;padding:0}.project-list li{display:flex;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid #eee}.project-list small{color:var(--muted)}.data-split{display:grid;grid-template-columns:210px 1fr;gap:14px}.bh-list ul{list-style:none;margin:0 0 10px;padding:0}.bh-list li{padding:7px 9px;border-radius:6px;cursor:pointer;display:flex;flex-direction:column}.bh-list li small{color:var(--muted);font-size:11.5px}.bh-list li.active{background:#e3ecf4}.bh-list .btn{margin:3px 3px 0 0}.tabs{display:flex;gap:2px;margin:16px 0 0;border-bottom:1px solid var(--line)}.tab{border:1px solid transparent;border-bottom:0;background:none;padding:7px 12px;cursor:pointer;border-radius:6px 6px 0 0;color:var(--muted)}.tab.active{background:#fff;border-color:var(--line);color:var(--ink);font-weight:600;margin-bottom:-1px}.etable-wrap{overflow-x:auto;padding-top:8px}.etable{border-collapse:collapse;width:100%;font-size:13px}.etable th{text-align:left;font-weight:600;font-size:11.5px;color:var(--muted);padding:4px;border-bottom:1px solid var(--line)}.etable td{padding:2px 3px;border-bottom:1px solid #f0f0f0;vertical-align:top}.etable input,.etable select,.etable textarea{width:100%;font-size:13px;padding:4px 5px;border:1px solid #d5dade;border-radius:4px;font-family:inherit}.etable textarea{resize:vertical;min-width:260px}.etable-actions{width:28px}.etable+.btn{margin-top:8px}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:14px;font-size:11.5px;color:var(--muted)}.legend-item{display:inline-flex;align-items:center;gap:5px}.legend-item svg{display:block}.template-view{display:grid;grid-template-columns:minmax(420px,1fr) minmax(360px,640px);gap:14px;align-items:start}.designer-preview{position:sticky;top:64px}.header-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px;align-items:center}.header-cell{display:flex;gap:3px;border:1px solid var(--line);border-radius:5px;padding:3px;background:#fafafa}.header-cell input{width:100px;font-size:12px;padding:3px}.header-cell input[type=number]{width:42px}.header-cell select{font-size:12px;max-width:150px}.cols-table input[type=number]{width:70px}.inline{display:inline-flex;gap:4px;align-items:center;font-size:12px;margin-right:8px}.inline input[type=number]{width:56px}.nowrap{white-space:nowrap}.preview-view{display:flex;flex-direction:column;gap:14px}.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.export-buttons{display:flex;flex-wrap:wrap;gap:6px}.status{margin:0;font-size:12.5px;color:var(--muted);flex-basis:100%}.check{margin:0;font-size:12.5px;flex-basis:100%}.check.ok{color:#2e6b4f}.check.bad{color:var(--danger)}.sheets{display:flex;flex-wrap:wrap;gap:18px}.sheet{background:#fff;box-shadow:0 1px 4px #0000002e;line-height:0;max-width:100%}.sheet svg{width:612px;max-width:100%;height:auto}.designer-preview .sheet svg{width:100%}.wizard{max-width:1100px}.wizard-step{margin-bottom:14px}.wizard-steps{display:flex;gap:6px;list-style:none;margin:0 0 14px;padding:0;counter-reset:step;font-size:12.5px}.wizard-steps li{counter-increment:step;padding:5px 12px 5px 8px;border-radius:14px;background:#eceff2;color:var(--muted)}.wizard-steps li:before{content:counter(step) ". ";font-weight:600}.wizard-steps li.current{background:var(--accent);color:#fff}.wizard-steps li.done{background:#dce8f2;color:var(--accent)}.wizard-summary{font-weight:600}.wizard-error{color:var(--danger);background:#fbeeec;border:1px solid #ebc9c3;padding:8px 10px;border-radius:6px}.wizard-warnings{color:#7a5a14;background:#fbf6e8;border:1px solid #eadfb8;padding:8px 10px 8px 28px;border-radius:6px;font-size:12.5px}.wizard-actions{display:flex;gap:8px;margin-top:12px;position:sticky;bottom:0;background:var(--panel);padding:10px 0 4px;border-top:1px solid var(--line)}.wizard .units{display:block;margin:0 0 12px;font-size:13px}.wizard .units small{color:var(--muted)}.map-entity{border:1px solid var(--line);border-radius:7px;padding:8px 12px 12px;margin:0 0 12px}.map-entity legend{font-weight:600;padding:0 6px;font-size:13px}.map-grid{display:grid;grid-template-columns:repeat(2,minmax(130px,190px) minmax(160px,1fr));gap:6px 10px;align-items:center;font-size:12.5px}.map-grid label{color:var(--muted);text-align:right}.map-grid select{font-size:12.5px;padding:3px 5px;border:1px solid #c4cad0;border-radius:4px;min-width:0}.map-grid select:disabled{background:#f3f4f5}.map-more label{display:inline-flex;gap:5px;align-items:center;margin:3px 14px 3px 0;font-size:12.5px}.table-list{border-collapse:collapse;font-size:12.5px;min-width:520px}.table-list th,.table-list td{text-align:left;padding:4px 10px;border-bottom:1px solid #eee}.table-list tr.used td{background:#eef4f9;font-weight:600}.preview-counts{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:0 0 12px;font-size:13px}.preview-counts dt{color:var(--muted)}.preview-counts dd{margin:0;font-weight:600}.preview-holes{border-collapse:collapse;font-size:12.5px}.preview-holes th,.preview-holes td{text-align:left;padding:3px 10px;border-bottom:1px solid #eee}@media (max-width: 900px){.map-grid{grid-template-columns:minmax(110px,160px) 1fr}}.about p{max-width:75ch;line-height:1.5}.small{font-size:12px;color:var(--muted)}@media (max-width: 900px){.data-split,.template-view{grid-template-columns:1fr}.designer-preview{position:static}}@media print{.topbar,.statusbar,.toolbar{display:none}}
