/* Network documentation follows the existing Maps workspace and typography. */
.ftth-panel{display:flex;flex-direction:column;min-height:0;flex:1;color:var(--ink);background:#fff;overflow:hidden}
.ftth-top{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:9px 10px;border-bottom:1px solid var(--line);font-size:12px}.ftth-top>span{font-size:10px;color:var(--muted)}
.ftth-palette{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:8px 8px 3px}
.ftth-panel button{font:inherit;cursor:pointer}.ftth-palette button,.ftth-actions button,.ftth-line-controls button{min-height:32px;padding:4px 7px;border:1px solid var(--line);border-radius:6px;background:#fff;color:#173550;font-size:11px;font-weight:650}
.ftth-palette button{display:flex;align-items:center;justify-content:center;gap:4px}.ftth-palette button[aria-pressed="true"]{background:#e9f9f0;border-color:#079447;color:#066a39}
.ftth-panel button:disabled{cursor:default;opacity:.5}.ftth-feedback{flex:none;min-height:16px;margin:4px 9px;font-size:11px;line-height:1.35;color:#41627c}.ftth-feedback[data-tone="error"]{color:#c51d30}
.ftth-scroll{flex:1;min-height:0;overflow:auto;padding:4px 8px 10px}.ftth-editor{padding:8px;border:1px solid var(--line);border-radius:8px;margin-bottom:8px;background:#f8fbfd}.ftth-editor h3{margin:0 0 8px;font-size:13px}
.ftth-panel label{display:flex;flex-direction:column;gap:4px;margin-bottom:7px;font-size:11px;font-weight:600}.ftth-panel input,.ftth-panel textarea,.ftth-panel select{min-width:0;width:100%;border:1px solid var(--line);border-radius:6px;padding:7px;background:#fff;font:inherit;font-size:12px;color:var(--ink)}.ftth-panel input:disabled,.ftth-panel textarea:disabled,.ftth-panel select:disabled{color:#243b53;background:#f4f7fa;opacity:1}.ftth-panel textarea{resize:vertical;min-height:58px}
.ftth-fields{display:flex;gap:6px}.ftth-fields label{flex:1}.ftth-geometry{display:block;margin:5px 0;color:var(--muted);font-size:10px}.ftth-actions,.ftth-line-controls{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.ftth-actions .primary{background:#078d49;border-color:#078d49;color:#fff}.ftth-actions .danger{color:#c91d32}.ftth-actions button{flex:1}
.ftth-ports-panel{border:1px solid var(--line);border-radius:8px;padding:8px;margin:0 0 9px}.ftth-ports-panel header{display:flex;justify-content:space-between;align-items:center;gap:5px;margin-bottom:7px;font-size:12px}.ftth-ports-panel header small{font-size:10px;color:var(--muted)}
.ftth-ports{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px}.ftth-port{min-width:0;min-height:31px;border:1px solid #bfdbcc;border-radius:5px;font-size:11px;font-weight:700}.ftth-port.free{background:#eaf8f0;color:#087b40}.ftth-port.occupied{background:#e5eefc;color:#154c98;border-color:#b3c9ee}.ftth-port.selected{outline:2px solid #078d49;outline-offset:1px}
.ftth-port-selection{margin-top:9px;padding-top:8px;border-top:1px solid var(--line);font-size:12px}.ftth-port-selection p{font-size:11px;overflow-wrap:anywhere}.ftth-port-selection label{margin-top:8px}.ftth-client-results{display:grid;gap:4px;max-height:210px;overflow:auto}.ftth-client-results button{padding:7px;border:1px solid var(--line);border-radius:6px;background:#fff;text-align:left;color:var(--ink)}.ftth-client-results strong{display:block;font-size:11px}.ftth-client-results small{display:block;margin-top:3px;font-size:10px;color:var(--muted)}
.ftth-list-filters{display:grid;grid-template-columns:minmax(0,1fr);gap:5px;margin-bottom:5px}.ftth-fiber-legend{display:flex;gap:10px;margin:8px 0;font-size:10px;color:#47647d}.ftth-fiber-legend span{display:flex;align-items:center;gap:4px}
.ftth-kind-dot{display:inline-block;flex:none;width:9px;height:9px;border-radius:50%;background:#64748b}.ftth-kind-dot.primary,.ftth-kind-dot.olt{background:#2563eb}.ftth-kind-dot.secondary{background:#16a34a}.ftth-kind-dot.cto{background:#1e293b}.ftth-kind-dot.drop{background:#f97316}.ftth-kind-dot.ceo{background:#059669}.ftth-kind-dot.break{background:#dc2626}
.ftth-feature-list{display:grid;gap:4px}.ftth-feature-row{display:grid;grid-template-columns:10px minmax(0,1fr);gap:3px 7px;align-items:center;width:100%;padding:8px;border:1px solid var(--line);border-radius:6px;background:#fff;text-align:left;color:var(--ink)}.ftth-feature-row.selected{border-color:#079447;background:#eefaf3}.ftth-feature-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.ftth-feature-row small{grid-column:2;font-size:10px;color:var(--muted)}.ftth-empty{margin:8px 2px;color:var(--muted);font-size:12px;line-height:1.4}
.ftth-map-marker,.ftth-vertex-marker{border:0;background:transparent}.ftth-map-marker,.leaflet-marker-icon.ftth-map-marker.leaflet-interactive{pointer-events:none}.ftth-map-marker svg{display:block;pointer-events:none}.ftth-marker-hit{pointer-events:all;cursor:pointer;filter:drop-shadow(0 1px 1px #102a4320)}.ftth-map-marker:focus-visible{outline:none}.ftth-map-marker:focus-visible .ftth-marker-hit>rect{stroke:#0284c7;stroke-width:2}
.ftth-map-group{font-family:inherit;min-width:0;max-width:100%;color:#16314a}.ftth-map-group>strong,.ftth-map-group>small{display:block;margin-bottom:5px}.ftth-map-group>small{font-size:11px;line-height:1.4;color:#60758a}.ftth-map-group-list{display:grid;gap:4px;min-width:0;max-height:220px;overflow:auto}.ftth-map-group-list button{min-width:0;font:inherit;font-size:12px;line-height:1.4;text-align:left;background:#fff;color:#15324c;border:1px solid #d5dfeb;border-radius:5px;padding:7px;overflow-wrap:anywhere;cursor:pointer}.ftth-map-group-list button:focus-visible{outline:2px solid #0284c7;outline-offset:1px}
.maps-workspace.ftth-active .maps-list-filters,.maps-workspace.ftth-active #maps-list{display:none}
.maps-workspace.ftth-active .maps-mode-switch{flex-wrap:nowrap}.maps-workspace.ftth-active .maps-legend{display:none}
@media(max-width:760px){.maps-workspace.ftth-active{grid-template-rows:32px minmax(160px,1fr) minmax(190px,.85fr)}.maps-workspace.ftth-active .maps-map-column{grid-row:2}.maps-workspace.ftth-active .ftth-panel{grid-row:3;min-height:0;border:1px solid var(--line);border-radius:7px}.maps-workspace.ftth-active .maps-list-head{grid-row:1}.maps-mode-switch button{padding-inline:6px}.ftth-top{padding:6px 8px}.ftth-palette{grid-template-columns:repeat(4,minmax(0,1fr));padding-top:5px}.ftth-palette button{min-height:30px;font-size:10px}.ftth-feedback{font-size:10px}.maps-workspace.is-fullscreen.ftth-active{grid-template-columns:minmax(0,55%) minmax(0,45%);grid-template-rows:minmax(0,1fr)}.maps-workspace.is-fullscreen.ftth-active .maps-list-column{display:flex;min-height:0;grid-column:2;grid-row:1}.maps-workspace.is-fullscreen.ftth-active .maps-map-column{grid-column:1;grid-row:1}.maps-workspace.is-fullscreen.ftth-active .ftth-panel{border:0}.maps-workspace.is-fullscreen.ftth-active .maps-mode-switch{flex-wrap:wrap}.maps-workspace.is-fullscreen.ftth-active .maps-list-head{flex:none;padding:4px}.maps-workspace.is-fullscreen.ftth-active .ftth-palette{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.maps-workspace.is-fullscreen.ftth-active .maps-mode-switch{height:auto;min-height:30px;align-content:flex-start;width:100%}.maps-workspace.is-fullscreen.ftth-active .maps-list-head{align-items:stretch}.ftth-more{padding:8px;border:1px solid var(--line);border-radius:6px;background:#f4f8fb;color:#0c643e;font-size:11px}}

/* Hide only client points while drafting the network; keep map controls reachable. */
.maps-clients-toggle{top:52px}.maps-clients-toggle[aria-pressed="true"]{background:#e9f9f0;border-color:#079447;color:#066a39}
@media(max-width:760px){.maps-clients-toggle{top:42px}}

.ftth-type-menu{min-width:0;border:1px solid var(--line);border-radius:7px;background:#fff;overflow:hidden}.ftth-type-menu>summary{display:flex;align-items:center;gap:7px;min-height:36px;padding:7px 9px;cursor:pointer;list-style:none;color:#173550}.ftth-type-menu>summary::-webkit-details-marker{display:none}.ftth-type-menu>summary::before{content:'▸';color:#078d49}.ftth-type-menu[open]>summary::before{content:'▾'}.ftth-type-menu[open]>summary{background:#f0f8f4;border-bottom:1px solid var(--line)}.ftth-type-menu>summary strong{font-size:12px}.ftth-type-menu>summary>span{margin-left:auto;padding:2px 7px;border-radius:12px;background:#e9eff4;font-size:10px}.ftth-menu-content{display:grid;gap:5px;padding:7px}.ftth-menu-actions{display:flex;flex-wrap:wrap;gap:4px}.ftth-menu-actions button{display:flex;align-items:center;gap:5px;min-height:30px;padding:5px 8px;border:1px solid #bad9ca;border-radius:6px;background:#f0faf5;color:#076a39;font-size:11px;font-weight:650}.ftth-menu-actions button[aria-pressed="true"]{background:#078d49;color:#fff}.ftth-feature-list{margin-bottom:8px}.ftth-type-menu .ftth-empty{margin:3px 1px;font-size:11px}

/* Four-step creation keeps field data local until the final review. */
.ftth-wizard-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;list-style:none;margin:0 0 9px;padding:0}
.ftth-wizard-steps li{padding:6px 3px;border-radius:5px;background:#e9eff4;color:#49627b;font-size:10px;text-align:center;line-height:1.25}
.ftth-wizard-steps li.active{background:#087d43;color:#fff;font-weight:700}
.ftth-step-section{min-width:0}.ftth-step-section h4{margin:0 0 7px;font-size:12px}
.ftth-field-note,.ftth-map-hint{display:block;margin:3px 0 9px;color:#5c7186;font-size:10px;line-height:1.4}
.ftth-review{display:grid;grid-template-columns:minmax(75px,.8fr) minmax(0,1.4fr);gap:6px 8px;font-size:11px;margin:0}
.ftth-review dt{color:#5d7187}.ftth-review dd{margin:0;overflow-wrap:anywhere;color:#122e49;font-weight:600}
.ftth-panel .ftth-checkbox-field{display:flex;flex-direction:row;align-items:flex-start;gap:7px;font-weight:500;line-height:1.4}
.ftth-panel .ftth-checkbox-field input{flex:none;width:16px;height:16px;margin:0;padding:0}
.ftth-fields{flex-wrap:wrap}.ftth-fields label{min-width:100px}
.ftth-port.unverified{background:#edf1f5;border-color:#c6d0db;color:#4c637b}
.ftth-port{display:flex;align-items:center;justify-content:center;gap:4px;padding:4px 2px}
.ftth-connection-dot{display:inline-block;flex:none;width:8px;height:8px;border-radius:50%;border:1px solid transparent;vertical-align:middle}
.ftth-connection-dot.online{background:#079b48}.ftth-connection-dot.offline{background:#dc2635}.ftth-connection-dot.long_offline{background:#7b8796}.ftth-connection-dot.unknown{background:transparent;border-color:#7b8796}
.ftth-linked-panel{min-width:0;margin-top:9px;border-top:1px solid var(--line);padding-top:8px}.ftth-linked-panel h4{font-size:11px;margin:0 0 6px}
.ftth-connection-legend{display:flex;align-items:center;gap:9px;white-space:nowrap;overflow-x:auto;max-width:100%;padding-bottom:5px;font-size:9px;color:var(--muted)}.ftth-connection-legend>span{display:inline-flex;align-items:center;gap:4px;flex:none}
.ftth-linked-clients{display:grid;grid-template-columns:minmax(0,1fr);gap:3px;min-width:0;max-height:190px;overflow:auto;overscroll-behavior:contain}
.ftth-linked-client{display:flex;align-items:center;gap:7px;min-width:0;min-height:29px;padding:5px 7px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink);text-align:left;font-size:11px}
.ftth-linked-client strong{flex:none;min-width:17px;text-align:center;color:#154c98}.ftth-linked-name{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ftth-linked-client[aria-pressed="true"]{border-color:#078d49;background:#f0faf5}
#ftth-assigned-client{display:flex;align-items:flex-start;gap:6px}#ftth-assigned-client>.ftth-connection-dot{margin-top:3px}
.ftth-ports-panel,.ftth-editor,.ftth-menu-content{min-width:0}.ftth-menu-content{grid-template-columns:minmax(0,1fr)}
.ftth-olt-group{min-width:0;border:1px solid var(--line);border-radius:7px;padding:4px;background:#f8fbfd;display:grid;gap:4px}.ftth-olt-ctos{min-width:0}.ftth-olt-ctos>summary{padding:7px 4px;color:#31566e;cursor:pointer;font-size:11px;font-weight:650}.ftth-olt-cto-list{min-width:0;display:grid;gap:4px;padding:0 0 3px 8px;border-left:2px solid #c2d9e5}.ftth-olt-cto-list .ftth-feature-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ftth-olt-cto-list .ftth-editor,.ftth-olt-cto-list .ftth-ports-panel{max-width:100%}#ftth-olt-field select{max-width:100%;text-overflow:ellipsis}
@media(max-width:760px){.maps-workspace.is-fullscreen.ftth-active .ftth-ports{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:480px){.ftth-wizard-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.ftth-review{grid-template-columns:minmax(70px,.8fr) minmax(0,1.2fr)}.ftth-editor .ftth-actions button{flex:1 1 calc(50% - 5px);min-width:0}}

/* Read-only network cards share the host dialog proportions. */
.ftth-feature-dialog{width:min(1120px,calc(100vw - 24px));max-height:calc(100dvh - 24px);min-height:0;margin:auto;padding:0;border:1px solid #ccd9e5;border-radius:12px;background:#fff;color:var(--ink);box-shadow:0 24px 70px #071b3150;overflow:hidden}
.ftth-feature-dialog:not([open]){display:none}.ftth-feature-dialog[open]{display:flex;flex-direction:column}
.ftth-feature-dialog::backdrop{background:#071b3166}
.ftth-feature-card-header{flex:none;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:15px 18px 11px;border-bottom:1px solid var(--line)}
.ftth-feature-card-header>div{min-width:0}.ftth-feature-card-kicker{display:block;font-size:11px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:#087d49}
.ftth-feature-card-header h2{margin:3px 0 4px;font-size:20px;line-height:1.2;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ftth-feature-card-header p{margin:0;font-size:11px;color:var(--muted)}
.ftth-feature-dialog .close{position:static;flex:none;display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--line);border-radius:7px;background:#fff;font-size:23px;line-height:1}
.ftth-feature-card-body{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:12px 18px}
.ftth-feature-card-body h3{margin:0 0 8px;font-size:14px;line-height:1.25}
.ftth-feature-card-clients{margin-bottom:14px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}
.ftth-feature-card-clients>header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px;padding:10px 12px;border-bottom:1px solid var(--line);background:#f7fafc}
.ftth-feature-card-clients h3{margin:0}.ftth-feature-card-clients>header>strong{font-size:11px;color:#486078}
.ftth-feature-card-note,.ftth-feature-card-empty,.ftth-feature-card-stale{margin:8px 12px;font-size:11px;line-height:1.45;color:#536b81}
.ftth-feature-card-stale{padding:7px 9px;border:1px solid #eed9a3;border-radius:5px;background:#fff9eb;color:#805718}
.ftth-feature-card-table-wrap{width:100%;min-width:0;max-height:min(34dvh,310px);overflow:auto;overscroll-behavior:contain}
.ftth-feature-card-table-wrap table{width:100%;min-width:700px;table-layout:fixed;white-space:normal}
.ftth-feature-card-table-wrap th{position:sticky;top:0;z-index:1;font-size:10px;padding:8px;background:#f3f7fa}
.ftth-feature-card-table-wrap td{padding:8px;vertical-align:top;font-size:12px;line-height:1.4;overflow-wrap:anywhere}
.ftth-feature-card-table-wrap th:nth-child(1){width:52px}.ftth-feature-card-table-wrap th:nth-child(2){width:29%}.ftth-feature-card-table-wrap th:nth-child(3){width:90px}.ftth-feature-card-table-wrap th:nth-child(4){width:27%}
.ftth-feature-card-table-wrap td strong,.ftth-feature-card-table-wrap td small{display:block}.ftth-feature-card-table-wrap td strong{font-size:12px;font-weight:650}
.ftth-feature-card-table-wrap td small{margin-top:3px;color:#63778b;font-size:10px;line-height:1.35}
.ftth-contract-badge{display:inline-flex;max-width:100%;padding:2px 7px;border-radius:5px;font-size:11px;font-weight:650;background:#eef2f6;color:#52677b}
.ftth-contract-badge.active{background:#e4f7ec;color:#067c41}.ftth-contract-badge.cancelled{background:#ffebed;color:#b52b3a}.ftth-contract-badge.warning{background:#fff4d8;color:#8b611a}
.ftth-feature-card-table-wrap .ftth-card-stale{color:#986c22}.ftth-card-connection{display:inline-flex;align-items:flex-start;gap:6px;font-size:11px;line-height:1.4}.ftth-card-connection>.ftth-connection-dot{margin-top:3px}
.ftth-feature-card-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:7px;margin:0 0 13px}
.ftth-feature-card-facts>div{min-width:0;padding:8px 9px;border:1px solid var(--line);border-radius:7px;background:#fbfdff}
.ftth-feature-card-facts dt{margin:0 0 4px;font-size:10px;color:#60768c}.ftth-feature-card-facts dd{margin:0;font-size:12px;line-height:1.35;font-weight:600;overflow-wrap:anywhere}
.ftth-feature-card-notes{margin:0 0 3px;font-size:12px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;color:#3d556c}
.ftth-feature-card-footer{flex:none;display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:7px;padding:10px 18px;border-top:1px solid var(--line);background:#fbfdff}
.ftth-feature-card-footer .btn{height:35px;padding:0 12px;font-size:12px}
.ftth-card-mobile-label{display:none}
@media(max-width:600px){
 .ftth-feature-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:9px}
 .ftth-feature-card-header{padding:11px 12px 9px}.ftth-feature-card-header h2{font-size:17px}
 .ftth-feature-card-body{padding:10px 11px}.ftth-feature-card-clients>header{padding:8px 9px}
 .ftth-feature-card-table-wrap{max-height:36dvh}.ftth-feature-card-table-wrap table{display:block;width:100%;min-width:0;table-layout:auto}
 .ftth-feature-card-table-wrap thead{display:none}.ftth-feature-card-table-wrap tbody{display:grid;gap:6px;padding:7px}
 .ftth-feature-card-table-wrap tr{display:grid;grid-template-columns:28px minmax(0,1fr) minmax(0,1fr);gap:5px 7px;padding:8px;border:1px solid var(--line);border-radius:6px}
 .ftth-feature-card-table-wrap td{display:block;min-width:0;width:auto;padding:0;border:0;font-size:11px}
 .ftth-feature-card-table-wrap td:nth-child(1){grid-column:1;grid-row:1/4;font-weight:750;color:#315575}
 .ftth-feature-card-table-wrap td:nth-child(2){grid-column:2/-1;grid-row:1}
 .ftth-feature-card-table-wrap td:nth-child(3){grid-column:2;grid-row:2}
 .ftth-feature-card-table-wrap td:nth-child(4){grid-column:2/-1;grid-row:3}
 .ftth-feature-card-table-wrap td:nth-child(5){grid-column:3;grid-row:2}
 .ftth-card-mobile-label{display:block;margin-bottom:2px;color:#6a7c8e;font-size:10px}
 .ftth-feature-card-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.ftth-feature-card-facts>div{padding:7px}
 .ftth-feature-card-footer{padding:9px 11px;gap:5px}.ftth-feature-card-footer .btn{flex:1;min-width:0;height:36px;padding:0 7px;font-size:11px}
}
