:root{--navy:#092b45;--navy2:#143d58;--blue:#096db7;--bright:#157ac7;--ink:#163b55;--muted:#647d90;--line:#dce6ee;--bg:#eef3f7;--white:#fff;--green:#177f59;--warn:#c48117;--shadow:0 4px 18px #11394f12}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font-family:Inter,Segoe UI,Arial,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:var(--blue)}.site-header{display:flex;align-items:center;gap:26px;padding:0 24px;min-height:69px;background:linear-gradient(110deg,#08253e,#154561);box-shadow:0 2px 12px #07273d35;color:white}.brand{color:white;text-decoration:none;font-size:25px;font-weight:820;white-space:nowrap;letter-spacing:-.9px;display:flex;align-items:center;gap:0}.brand>span:not(.brand-mark){color:#37b2ec}.brand-mark{display:inline-grid;place-items:center;background:#0876bd;border:1px solid #80c6ed;border-radius:9px;width:36px;height:35px;font-size:32px;margin-right:9px;line-height:1}.brand small{font-size:11px;padding:3px 5px;background:#2a759c;border-radius:4px;margin:0 0 15px 7px;letter-spacing:0}#main-nav{display:flex;gap:3px;align-self:stretch;align-items:stretch;overflow:auto}#main-nav a{display:flex;align-items:center;color:#e7f3fa;text-decoration:none;padding:12px 13px;font-size:12px;font-weight:700;white-space:nowrap;border-bottom:3px solid transparent}#main-nav a:hover{background:#ffffff11}#main-nav a.active{background:#147ec2;border-bottom-color:#77d4ff}.version{margin-left:auto;white-space:nowrap;color:#bbdbea;font-size:11px}.notice{display:flex;gap:7px;padding:8px 22px;font-size:12px;background:#e0eff9;border-bottom:1px solid #d3e4f1;color:#375f7a;flex-wrap:wrap}.notice #saved-indicator{margin-left:auto}main{margin:0 auto;max-width:1750px;padding:18px 20px 40px}footer{padding:17px;text-align:center;color:#627a8e;font-size:12px;border-top:1px solid var(--line);margin-top:24px}.screen-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:2px 0 15px;flex-wrap:wrap}.screen-head h1{font-size:22px;margin:0}.screen-head p{margin:5px 0 0;font-size:13px;color:var(--muted)}.actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.btn{border:1px solid #c4d6e4;background:white;color:#214e6e;padding:10px 12px;font-weight:650;border-radius:7px;transition:.14s;line-height:1.15}.btn:hover{border-color:#6fa6cf;background:#f6fbff}.btn.primary{background:var(--blue);border-color:var(--blue);color:white}.btn.primary:hover{background:#055a99}.btn.red{color:#b53d39}.btn.small{font-size:11px;padding:7px 8px}.btn.block{width:100%}.btn:disabled{opacity:.48;cursor:default}.tool-layout{display:grid;grid-template-columns:255px minmax(400px,1fr) 310px;gap:14px}.panel{border:1px solid var(--line);background:white;border-radius:11px;box-shadow:var(--shadow);min-width:0}.panel.pad{padding:18px}.panel h2{font-size:16px;margin:0 0 15px}.panel h3{font-size:14px;margin:6px 0 12px}.panel .panel-header{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-bottom:12px}.panel .panel-header h2{margin:0}.muted{color:var(--muted)}.fine{font-size:12px;color:var(--muted)}.hint{font-size:12px;line-height:1.55;background:#edf6fe;border:1px solid #cde6f7;color:#2e6585;padding:11px 12px;border-radius:7px}.hint.warn{background:#fff7e9;border-color:#f1dfb2;color:#765a28}.hint.ok{background:#edf9f1;color:#176646;border-color:#c8ead6}.stack{display:grid;gap:11px}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field{display:grid;gap:5px;font-size:12px;font-weight:700;color:#47687e;min-width:0}.field input,.field select,textarea,select,input[type="search"]{width:100%;padding:9px 10px;border:1px solid #c9d9e5;background:white;border-radius:6px;min-width:0;color:#1c4865;outline:none}.field input:focus,.field select:focus,textarea:focus,input[type="search"]:focus{border-color:#1b87ce;box-shadow:0 0 0 3px #1b87ce1d}textarea{min-height:100px;resize:vertical;line-height:1.5}.separator{height:1px;background:var(--line);margin:15px 0}.section-label{font-weight:800;font-size:12px;margin:16px 0 8px;color:#33546c}.tool-button{width:100%;border:1px solid transparent;display:flex;gap:10px;align-items:center;background:transparent;border-radius:7px;padding:10px;text-align:left;color:#274c69;font-weight:700;font-size:12px}.tool-button:hover{background:#edf5fb}.tool-button.active{background:#0875bd;color:white}.tag{background:#e7f2fb;color:#1b659e;font-weight:700;font-size:11px;border-radius:15px;padding:4px 9px}.tag.green{background:#e5f7ed;color:#186e48}.tag.orange{background:#fff0da;color:#926215}.pills{display:flex;gap:6px;flex-wrap:wrap}.pill{padding:7px 10px;border:1px solid #d2e0eb;background:white;border-radius:6px;color:#2e5874;font-weight:700;font-size:12px}.pill.active{background:#0874be;color:white;border-color:#0874be}.map-canvas{height:580px;min-height:480px;position:relative;border-radius:10px;overflow:hidden;background:#d8e4da}.map-fallback{display:grid;place-items:center;padding:30px;text-align:center;height:580px;background:linear-gradient(45deg,#ccd9c5 25%,#e9e6d9 25%,#e9e6d9 50%,#ccd9c5 50%,#ccd9c5 75%,#e9e6d9 75%);background-size:80px 80px}.map-banner{position:absolute;top:11px;right:11px;z-index:800;display:flex;gap:4px;background:white;padding:5px;border-radius:7px;box-shadow:0 2px 15px #153b5155}.map-banner button{border:0;border-radius:5px;background:white;color:#255475;font-weight:700;font-size:11px;padding:8px 9px}.map-banner button.active{background:#0a70bd;color:white}.map-legend{position:absolute;left:12px;bottom:20px;z-index:800;pointer-events:none;background:#fffffff2;padding:9px;border-radius:7px;font-size:11px;box-shadow:0 3px 13px #183c4e20}.map-legend div{padding:2px}.dot{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:7px;vertical-align:-1px}.segment-list{display:grid;gap:6px}.segment-row,.note-row{border:1px solid #dce8f0;border-radius:7px;background:#fbfdff;padding:9px;font-size:12px;cursor:pointer;text-align:left;width:100%;color:var(--ink)}.segment-row:hover,.note-row:hover{border-color:#92c6e6}.segment-row.selected{background:#eaf5fd;border-color:#44a0d4}.segment-row strong{display:block;margin-bottom:4px}.flex{display:flex;align-items:center;gap:8px}.between{justify-content:space-between}.checkboxes{display:grid;grid-template-columns:1fr 1fr;gap:7px}.checkboxes label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:650}.checkboxes input{accent-color:#067ac5}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}.stat{background:#f2f8fc;border:1px solid #dfebf2;border-radius:8px;padding:12px}.stat span{display:block;color:#607d90;font-size:12px}.stat strong{font-size:21px;color:#095f9b}.main-chart{padding:15px}.profile-svg{width:100%;height:auto;display:block;border:1px solid #eadfce;border-radius:7px}.summary-panel{display:grid;grid-template-columns:1.2fr 1fr;gap:13px;margin-top:14px}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table td,.data-table th{padding:9px 7px;text-align:left;border-bottom:1px solid #e5edf2;vertical-align:top}.data-table th{font-weight:800;color:#4b718c;background:#f4f8fa}.data-table td:last-child,.data-table th:last-child{text-align:right}.empty{text-align:center;padding:20px 10px;border:1px dashed #c2d6e2;border-radius:8px;color:#748e9f;font-size:13px}.profile-list{display:grid;gap:6px}.profile-list button{border:1px solid var(--line);background:#fbfdff;border-radius:7px;color:#315975;text-align:left;padding:10px;font-size:12px;font-weight:700}.profile-list button.selected{border-color:#1580c5;background:#edf7ff}.compact-list{display:grid;gap:8px;max-height:330px;overflow:auto}.pipe-box,.part-box{border:1px solid var(--line);padding:10px;border-radius:8px;background:#f7fbff}.pipe-box h4,.part-box h4{margin:0 0 8px}.pipe-box .two{margin-top:7px}.metrics{display:grid;gap:7px}.metric{display:flex;justify-content:space-between;font-size:12px;border-bottom:1px solid #ecf0f4;padding-bottom:7px}.metric strong{font-variant-numeric:tabular-nums}.categories{display:grid;grid-template-columns:1fr 1fr;gap:7px}.categories button{border:1px solid #d3e1eb;background:white;border-radius:8px;padding:13px 5px;font-weight:750;color:#315b78}.categories button.active{background:#eaf6fe;color:#096dae;border:2px solid #087bc1}.catalog{display:grid;grid-template-columns:1fr 1fr;gap:7px}.catalog button{border:1px solid #d4e1e9;border-radius:8px;background:#fafdff;color:#325875;min-height:73px;padding:8px 5px;font-size:12px;font-weight:700}.catalog button:hover{background:#edf8ff;border-color:#1c8fc9}.svg-preview{width:100%;background:#f9fcff;border:1px solid #e2eaf0;border-radius:9px;min-height:250px;overflow:auto}.svg-preview svg{width:100%;height:auto;min-width:500px}.part-list{display:flex;flex-wrap:wrap;gap:7px}.part-list button{border:1px solid #d4e1ec;border-radius:7px;padding:7px 9px;background:white;font-size:11px;font-weight:750;color:#2b5774}.part-list button.active{background:#0d74bb;border-color:#0d74bb;color:white}.road-visual{border-radius:8px;overflow:hidden;border:1px solid #dce5ee;max-width:740px;margin:auto}.road-layer{display:flex;justify-content:space-between;align-items:center;gap:15px;min-height:45px;padding:10px 14px;color:#1a384a;border-bottom:1px solid #ffffffaa}.road-layer b,.road-layer span{background:#ffffffce;padding:6px 8px;border-radius:5px}.layers-editor{display:grid;gap:8px}.layer-edit{display:grid;grid-template-columns:1fr 70px 32px;gap:6px;align-items:center}.layer-edit input{min-width:0}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.start-card{background:white;border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow);padding:22px;text-decoration:none;color:var(--ink);min-height:168px;display:flex;flex-direction:column;gap:10px}.start-card:hover{border-color:#399cda;transform:translateY(-1px)}.start-card .symbol{font-size:26px}.start-card h2{margin:0;font-size:18px}.start-card p{color:var(--muted);margin:0;line-height:1.5}.site-intro{background:linear-gradient(110deg,#0c3653,#1a709e);padding:30px;border-radius:12px;color:white;margin-bottom:15px}.site-intro h1{font-size:27px;margin:0 0 8px}.site-intro p{margin:0;color:#e6f6ff;line-height:1.5}.minor{font-size:11px}.toast{position:fixed;right:20px;bottom:22px;padding:13px 18px;background:#113d5e;border-radius:8px;color:white;z-index:3000;transform:translateY(12px);opacity:0;transition:.2s;pointer-events:none;box-shadow:0 8px 20px #06233750}.toast.show{opacity:1;transform:translateY(0)}.leaflet-container{font-family:inherit}.leaflet-control-attribution{font-size:10px!important}.pin{display:grid;place-items:center;border-radius:50%;width:27px;height:27px;background:white;border:2px solid #cc7d19;color:#b56f1b;font-size:15px;box-shadow:0 2px 9px #0004}.map-mark{background:none;border:0}.mapmark-label{white-space:nowrap;background:white;border:1px solid #accede;padding:3px 5px;border-radius:4px;color:#214967;font-size:11px;font-weight:750}.group-row{display:flex;gap:6px;flex-wrap:wrap}.help-title{margin-top:20px;font-size:13px;font-weight:750}#file-import{display:none}@media(max-width:1200px){.tool-layout{grid-template-columns:220px minmax(380px,1fr)}.inspector{grid-column:1 / -1}.version{display:none}}@media(max-width:780px){.site-header{display:block;padding:12px}.brand{padding:2px 3px 12px}#main-nav{height:44px}.notice{padding:8px 12px}main{padding:12px}.tool-layout{display:flex;flex-direction:column}.map-canvas,.map-fallback{height:420px;min-height:420px}.stats,.summary-panel,.cards{grid-template-columns:1fr}.two{grid-template-columns:1fr 1fr}.map-banner{left:8px;right:auto;top:8px}.map-banner button{font-size:10px;padding:6px}.screen-head h1{font-size:19px}}@media print{header,.notice,footer,.actions,.sidebar,.inspector,.btn,.map-banner,.leaflet-control-container{display:none!important}body{background:white}main{padding:0}.tool-layout{display:block}.panel{box-shadow:none;border:0}.map-canvas{height:460px}.screen-head{margin:0 0 20px}}

.route-handle{width:24px;height:24px;border:3px solid #107bc5;background:#fff;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:11px;color:#0b5e99;box-shadow:0 2px 5px #0004}.leaflet-interactive{cursor:pointer}.road-layer b{max-width:78%;overflow-wrap:anywhere}.part-list button{cursor:pointer}@media(max-width:560px){.map-banner{flex-wrap:wrap;max-width:calc(100% - 16px)}.panel.pad{padding:12px}.stats{grid-template-columns:1fr 1fr}}

.route-handle{display:grid;place-items:center;width:24px;height:24px;border:3px solid #116ba7;border-radius:50%;background:#fff;color:#125c8a;font-size:10px;font-weight:800;box-shadow:0 2px 6px #17395155;cursor:grab}.route-handle:active{cursor:grabbing}

/* Lokale Bedienhilfen für die Kartenansicht */
.sr-only{position:absolute!important;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden;white-space:nowrap}
.map-search{display:flex;align-items:center;gap:8px;margin:4px 0 10px}
.map-search input{width:100%;min-width:0;border:1px solid #cddce9;background:#fff;border-radius:8px;padding:11px 12px;font:inherit;color:#153b58}
.map-search input:focus{outline:2px solid #1677c9;outline-offset:1px}
.map-search button{flex-shrink:0}

/* Neue, unabhängige Fachrechner-Ansicht */
.calc-shell{display:grid;grid-template-columns:230px minmax(250px,.75fr) minmax(420px,1.3fr);gap:13px;align-items:start}
.calc-filters,.calc-catalog,.calc-detail{min-height:340px}
.calc-cat-list{display:grid;gap:4px}
.calc-count{margin-left:auto;font-size:11px;opacity:.8}
.calc-results{display:grid;gap:6px;max-height:650px;overflow:auto;margin-top:10px}
.calc-result{display:grid;gap:5px;text-align:left;background:#fbfdff;border:1px solid #dae6ee;border-radius:8px;padding:11px;color:var(--ink)}
.calc-result:hover{border-color:#459bcc;background:#f4faff}.calc-result.selected{border-color:#1884c2;background:#e8f5ff}
.calc-result strong{font-size:12px}.calc-result small{font-size:11px;line-height:1.45;color:var(--muted)}
.calc-detail h2{font-size:20px;margin:10px 0}.calc-detail-head{display:flex;justify-content:space-between;align-items:center;gap:6px;flex-wrap:wrap}
.calc-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.calc-output{padding:14px;background:#f0f8fd;border:1px solid #d5eafa;border-radius:8px;margin:16px 0}.calc-output h3{margin:0 0 13px}
@media(max-width:1250px){.calc-shell{grid-template-columns:220px minmax(320px,1fr)}.calc-detail{grid-column:1/-1}}
@media(max-width:780px){.calc-shell{grid-template-columns:1fr}.calc-detail{grid-column:auto}.calc-results{max-height:350px}.calc-field-grid{grid-template-columns:1fr}}

.quick-calc-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.quick-calc{padding:12px;border:1px solid #dce7ef;background:#fafdff;border-radius:8px;display:grid;gap:8px;align-content:start}.quick-calc h3{margin:0}.quick-calc p{margin:0}.quick-fields{display:grid;gap:6px}.quick-output{padding:10px;border-radius:6px;background:#e7f4ff;color:#1b5c88}.quick-output small{display:block}.quick-output strong{font-size:18px}.quick-calc .btn{text-decoration:none}@media(max-width:1160px){.quick-calc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.quick-calc-grid{grid-template-columns:1fr}}

/* Alpha 0.2.2: Drag-and-drop in both independent editors */
.parts-canvas { min-width: 650px!important; user-select: none; touch-action: pan-x; }
.part-draggable, .gp-pipe-draggable { cursor: grab; touch-action: none; outline: none; }
.part-draggable:active, .gp-pipe-draggable:active { cursor: grabbing; }
.part-draggable.is-selected > .part-hit { stroke: #1589df; stroke-width: 2.5; stroke-dasharray: 6 5; fill: #2b9dee10; }
.part-draggable:focus > .part-hit, .gp-pipe-draggable:focus { outline: 2px dashed #1788d0; outline-offset: 3px; }
.dragging-parts, .dragging-parts * { user-select: none!important; cursor: grabbing!important; }
.gp-drawing { max-width: 100%; overflow: auto; }
.gp-drawing .profile-svg { touch-action: pan-x; }
.gp-pipe-draggable:hover > circle:first-child { stroke: #ffb92b; stroke-width: 4; }
.map-status { position: absolute; z-index: 850; bottom: 12px; right: 12px; background: #ffffffed; color: #234f6c; max-width: 68%; padding: 8px 11px; font-size: 12px; line-height: 1.4; border-radius: 7px; box-shadow: 0 2px 10px #0002; }
.map-status.error { background: #fff2e7; color: #8a4c1a; border: 1px solid #f3cba5; }

/* Alpha 0.2.3 – Lesbare, dauerhaft sichtbare Kartennotizen */
.map-notes-switch{display:flex;align-items:center;gap:6px;margin-left:6px;padding:4px 9px;border-left:1px solid #dce8ef;color:#184c6d;font-size:12px;font-weight:750;white-space:nowrap;cursor:pointer;user-select:none}
.map-notes-switch input{width:17px;height:17px;margin:0;accent-color:#096eae;cursor:pointer}
.nbt-note-tooltip.leaflet-tooltip{border:0;padding:0;background:transparent;box-shadow:none;white-space:normal;pointer-events:none}
.nbt-note-tooltip.leaflet-tooltip::before{border-right-color:#fff}
.nbt-note-box{display:flex;flex-direction:column;gap:3px;width:max-content;max-width:230px;min-width:118px;background:#fff;color:#1e3547;border:1px solid #cbdbe5;border-left:4px solid var(--note-color,#136bac);border-radius:7px;box-shadow:0 3px 13px #152e3d45;padding:7px 9px;font:500 12px/1.32 system-ui, sans-serif;overflow-wrap:anywhere}
.nbt-note-box strong{font-size:11px;color:var(--note-color,#136bac)}
.nbt-note-box span{white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:780px){.map-notes-switch{font-size:11px;white-space:normal;border-left:0;padding:6px 5px}.nbt-note-box{max-width:165px;font-size:11px}}
@media print{.map-notes-switch{display:none!important}}

/* 0.2.6: editable dimension rails outside the trench */
.gp-dimension-draggable{cursor:ew-resize;outline:none;touch-action:none}
.gp-dimension-draggable:focus{filter:drop-shadow(0 0 2px #1b87ce)}
.gp-dimension-draggable:hover>path{stroke-width:2.5}

/* Alpha 0.2.11: editierbare Leitungsbeschriftungen direkt im Grabenprofil */
.gp-pipe-label{cursor:text;pointer-events:visiblePainted;user-select:none}
.gp-pipe-label:hover,.gp-pipe-label:focus{fill:#0767ae;stroke:#fff;outline:none;text-decoration:underline}
.gp-inline-label-editor{position:absolute;z-index:20;max-width:calc(100% - 12px);box-sizing:border-box;padding:12px;border:2px solid #0d79b9;border-radius:9px;background:#fff;box-shadow:0 8px 24px #143c5360;color:#163b53;font:14px/1.4 system-ui, sans-serif}
.gp-inline-label-editor label{display:grid;gap:5px;font-weight:750}
.gp-inline-label-editor input{min-width:0;width:100%;box-sizing:border-box;padding:9px;border:1px solid #9bb9cf;border-radius:5px;font:16px system-ui, sans-serif}
.gp-inline-label-actions{display:flex;gap:8px;margin-top:10px;justify-content:flex-end;flex-wrap:wrap}
@media print{.gp-inline-label-editor{display:none!important}}

/* Alpha 0.2.13: vertical repositioning of horizontal wall-to-axis dimensions */
.gp-hdim-draggable{cursor:ns-resize;outline:none;touch-action:none}
.gp-hdim-draggable:hover path:first-child{stroke:#087cc4;stroke-width:2.5}
.gp-hdim-draggable:focus{filter:drop-shadow(0 0 2px #1689cf)}

/* Alpha 0.2.14 – Trassenwarnbänder als eigene Objekte */
.gp-warnband-draggable { cursor:grab; touch-action:none; outline:none }
.gp-warnband-draggable:active { cursor:grabbing }
.gp-warnband-draggable:hover rect:first-child { stroke:#123f61;stroke-width:2 }
.gp-warnband-draggable:focus { filter:drop-shadow(0 0 3px #1979ba) }
.warnband-box { border-left:4px solid #e8b11c }
.warnband-follow { font-size:12px;line-height:1.4;padding:8px 0 }
.warnband-follow label { display:flex;align-items:flex-start;gap:7px;cursor:pointer }
.warnband-follow input {margin-top:2px;accent-color:#117cc1;width:16px;height:16px;flex-shrink:0}

/* Alpha 0.2.15: Schalter für die gesamte Leitungsbeschriftung und pro Medium */
.gp-label-controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 14px;margin:8px 0 12px;padding:9px 11px;border:1px solid #d8e7f0;border-radius:8px;background:#f4f9fc}
.gp-label-controls>.fine{margin:0;line-height:1.4}
.gp-label-switch{display:inline-flex;align-items:center;gap:9px;font-size:12px;font-weight:750;color:#1c4c6b;cursor:pointer;line-height:1.4}
.gp-label-switch input[type=checkbox]{width:18px;height:18px;flex:none;accent-color:#087ebc;cursor:pointer;margin:0}
.gp-label-switch-item{margin:0 0 10px;padding:7px 8px;background:#eff7fc;border-radius:5px;display:flex}
.gp-label-switch:focus-within{outline:2px solid #1e83bf;outline-offset:3px;border-radius:4px}

/* Alpha 0.2.16: frei verschiebbare Einzel- und Gruppenbeschriftungen */
.gp-label-draggable {cursor:move;touch-action:none;outline:none;user-select:none}
.gp-label-draggable:active {cursor:grabbing}
.gp-label-draggable:hover text,
.gp-label-draggable:focus text{fill:#086eae;stroke:#fff;stroke-width:3.5px}
.gp-label-draggable:focus{filter:drop-shadow(0 0 2px #147db5)}
.gp-label-settings{margin:9px 0 2px;padding:10px;border:1px solid #cbdfea;border-radius:7px;background:#fff;display:grid;gap:8px}
.gp-label-settings>.field{margin:0}
.gp-label-settings .two{gap:6px}
.gp-label-settings .fine{margin:0}
@media print{.gp-label-settings{display:none!important}}

/* Alpha 0.2.17 – Sandbettung/Leitungszonen und schlanke Warnbandlegende */
.gp-band-legend{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;margin:8px 2px;padding:8px 10px;border:1px solid #d9e3e9;border-radius:8px;background:#f7fafc;font-size:11px;color:#345269}
.gp-band-legend strong{color:#214b67}
.gp-band-legend span{display:inline-flex;align-items:center;gap:5px;min-width:0}
.gp-band-legend i{display:inline-block;width:16px;height:5px;border:1px solid #ab9b7b;flex-shrink:0;border-radius:2px}
.gp-sand-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:10px 0}
.gp-sand-pipechoice{display:flex;align-items:center;gap:7px;padding:5px 0;color:#284d66;font-size:12px}
.gp-sand-pipechoice input{width:17px;height:17px;accent-color:#0a79b6}
.gp-sand-autogen{border:1px solid #c6dbe7;border-radius:8px;background:#f7fbff;padding:10px;margin-bottom:13px}
.gp-sand-autogen strong{font-size:12px;color:#155178}
.gp-sand-draftinfo{background:#fff8e8;border:1px solid #e0c88e;border-radius:7px;padding:9px;margin-bottom:10px;font-size:12px}
.gp-sand-draftinfo p{margin:6px 0 10px}
.gp-sand-draftinfo button{margin:2px}
.gp-sand-item{border-left:3px solid #e9bf67}
.gp-sand-item h4 small{display:block;font-size:10px;font-weight:500;color:#607c8e}
.gp-sand-vertex{display:grid;grid-template-columns:25px minmax(0,1fr) minmax(0,1fr) 29px;align-items:center;gap:5px;margin:5px 0}
.gp-sand-vertex input{min-width:0;width:100%;border:1px solid #b9cbda;border-radius:5px;padding:6px 4px;font-size:12px}
.gp-sand-vertex small{font-size:10px;color:#60778b}
.gp-sand-handle{cursor:crosshair;touch-action:none}
.gp-sand-drag{cursor:move;touch-action:none}
.gp-sand-result{margin-top:11px}
.gp-sand-result>div{margin:5px 0;color:#174868}
.gp-sand-result small{display:block;line-height:1.45}
@media(max-width:620px){.gp-sand-actions{grid-template-columns:1fr}.gp-band-legend{font-size:10px}}

/* Alpha 0.3.9 – Trassenplaner: Oberflächenkürzel, freie Texte und Einbauten */
.route-surface-marker {background:transparent;border:0;pointer-events:none;}
.route-surface-marker span {display:block;min-width:26px;text-align:center;background:#fff;white-space:nowrap;border:1px solid #576c7a;border-radius:3px;padding:2px 3px;color:#1b405b;font-size:11px;font-weight:800;box-shadow:0 1px 4px #122f4a77}
.route-free-text-icon {background:none;border:0;overflow:visible!important;white-space:nowrap;}
.route-free-text-icon span {display:inline-block;transform-origin:left center;padding:3px 5px;white-space:pre-wrap;max-width:320px;background:#ffffffea;color:#1c415d;border:1px solid #aec9da;border-radius:3px;box-shadow:0 1px 4px #1234;cursor:grab;}
.route-asset-symbol {background:none;border:0;}
.route-asset-symbol span {display:grid;place-items:center;background:#ffffffee;width:34px;height:34px;border:1px solid #7893a4;border-radius:4px;box-shadow:0 2px 5px #1234;cursor:grab;}
.route-properties-block {border:1px solid #dbe7ef;border-radius:9px;padding:12px 10px;background:#f6fafc;display:grid;gap:8px}
.route-properties-block .two .field{min-width:0}
.route-print-summary {display:none}
@media print {
 .route-print-summary{display:block!important;margin-top:8mm;break-inside:avoid}
 .route-print-summary h2{font-size:12pt}
 .route-print-summary table{border-collapse:collapse;width:100%;font-size:9pt}
 .route-print-summary th,.route-print-summary td{border:1px solid #bccbd5;padding:6px;text-align:left;vertical-align:top;overflow-wrap:anywhere}
 .route-free-text-icon span,.route-surface-marker span {print-color-adjust:exact}
}

/* Alpha 0.3.9 – Grabenprofil: Platz für Medienfelder unterhalb des Profils */
.gp-screen {grid-template-columns:255px minmax(0,1fr);align-items:start}
.gp-screen>.main-chart {grid-column:2;grid-row:1}
.gp-screen>.sidebar {grid-column:1;grid-row:1 / span 2}
.gp-screen>.gp-tab-host {grid-column:2;grid-row:2;margin-top:0}
.gp-tab-buttons{display:flex;gap:5px;flex-wrap:wrap;border-bottom:1px solid #d7e4ed;margin-bottom:14px;padding-bottom:8px}
.gp-tab-buttons button{padding:10px 15px;border:1px solid #c5d8e6;background:#f8fbfe;border-radius:7px;color:#2d5770;font-size:13px;font-weight:750}
.gp-tab-buttons button.active{border-color:#167cb6;background:#167cb6;color:#fff}
.gp-tab-panel[hidden]{display:none!important}
.gp-screen .inspector{border:none;box-shadow:none;padding:0;max-width:none;grid-column:auto}
.gp-screen .inspector .compact-list{max-height:none;overflow:visible;display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));align-items:start;gap:12px}
.gp-screen .inspector .gp-sand-list{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}
.gp-screen .inspector .pipe-box{padding:14px}
.gp-screen .gp-tab-panel[data-gp-panel="berechnungen"] .metrics{grid-template-columns:1fr}
.gp-logo-mini{font-size:11px;color:#678295;border:1px dashed #c4d5de;min-height:35px;padding:5px;border-radius:6px;display:flex;align-items:center;justify-content:center}
.gp-logo-mini img{max-height:65px;max-width:100%;object-fit:contain}
.gp-conduit-controls{padding:10px;margin:8px 0;border:1px solid #cbdbe7;border-left:3px solid #50778c;border-radius:6px;background:#f6fafb}
.gp-hlabel-draggable{cursor:move;touch-action:none;outline:none}
.gp-hlabel-draggable:hover rect{stroke:#0e84d0;stroke-width:1.5}
@media(max-width:1080px){.gp-screen{grid-template-columns:1fr}.gp-screen>.sidebar,.gp-screen>.main-chart,.gp-screen>.gp-tab-host{grid-column:1;grid-row:auto}}
@media(max-width:650px){.gp-screen .inspector .compact-list{grid-template-columns:1fr}.gp-screen .two{grid-template-columns:1fr 1fr}}

/* NetzBauTools Alpha 0.3.10 – Grabenprofil: getrennte Bereiche und Leitungsreiter */
.gp-screen .gp-tab-buttons{gap:7px;margin-bottom:16px}
.gp-screen .gp-tab-buttons button{flex:0 0 auto}
.gp-screen .gp-tab-editor{width:100%}
.gp-screen .gp-tab-editor>.compact-list{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.gp-screen .gp-pipe-tab-buttons{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px;padding:10px;background:#f1f7fb;border:1px solid #d8e6ee;border-radius:9px}
.gp-screen .gp-pipe-tab-button{display:flex;align-items:center;gap:7px;min-width:135px;max-width:100%;border:1px solid #c9dbe8;border-radius:8px;background:white;padding:9px 12px;color:#2c536e;font-size:12px;font-weight:750;text-align:left}
.gp-screen .gp-pipe-tab-button small{font-size:10px;max-width:170px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:550;color:#678497}
.gp-screen .gp-pipe-tab-button:hover{background:#e9f5fc;border-color:#2786c2}
.gp-screen .gp-pipe-tab-button.active{background:#e5f4fe;border-color:#0f75b5;box-shadow:inset 0 0 0 1px #0f75b5;color:#0b5688}
.gp-screen .gp-pipe-tab-button.active small{color:#426f89}
.gp-screen .gp-pipe-dot{flex:0 0 auto;width:9px;height:9px;border-radius:50%;box-shadow:0 0 0 1px #b6c9d3}
.gp-screen .gp-pipe-detail-list{display:block;max-height:none;overflow:visible}
.gp-screen .gp-pipe-tabpanel{display:block;width:100%;max-width:100%;padding:18px}
.gp-screen .gp-pipe-tabpanel[hidden],.gp-tab-panel[hidden]{display:none!important}
.gp-screen .gp-empty-pipes{margin-top:0}
@media(max-width:650px){.gp-screen .gp-pipe-tab-button{min-width:0;flex:1 1 138px}.gp-screen .gp-pipe-tab-button small{max-width:120px}}
