:root {
    color-scheme: light;
    --bg: #f3f6fa;
    --surface: #ffffff;
    --surface-alt: #f8fafc;
    --text: #172033;
    --muted: #667085;
    --border: #dbe3ed;
    --border-strong: #c5d0dd;
    --primary: #155eef;
    --primary-dark: #0f48ba;
    --primary-soft: #edf4ff;
    --navy: #101828;
    --success: #137a4a;
    --success-soft: #eaf8f1;
    --warning: #9a6700;
    --warning-soft: #fff7df;
    --danger: #b42318;
    --danger-soft: #fff1f0;
    --shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 8px 24px rgba(16, 24, 40, .04);
    --radius: 12px;
}
* { box-sizing: border-box; }
html { min-height: 100%; background: var(--bg); }
body { margin: 0; min-height: 100vh; font: 14px/1.5 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: var(--bg); color: var(--text); }
a { color: var(--primary); text-decoration: none; }
a:hover { text-decoration: none; }
h1,h2,h3,h4,p { margin-top: 0; }
h2 { margin-bottom: 8px; font-size: clamp(25px, 3vw, 34px); line-height: 1.15; letter-spacing: -.025em; }
h3 { margin-bottom: 6px; font-size: 18px; }
h4 { margin: 0; font-size: 14px; }
.app-header { position: sticky; top: 0; z-index: 50; background: rgba(16, 24, 40, .96); color: white; box-shadow: 0 1px 0 rgba(255,255,255,.08); backdrop-filter: blur(12px); }
.header-inner { max-width: 1500px; margin: 0 auto; padding: 13px 28px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display: flex; align-items: center; gap: 11px; color: white; min-width: 260px; }
.brand:hover { color: white; }
.brand-mark { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: linear-gradient(145deg, #2878ff, #0f47b5); font-weight: 800; font-size: 13px; letter-spacing: .05em; box-shadow: inset 0 1px rgba(255,255,255,.3); }
.brand strong, .brand small { display: block; }
.brand strong { font-size: 15px; letter-spacing: -.01em; }
.brand small { margin-top: 1px; color: #98a2b3; font-size: 11px; }
.app-header nav { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; }
.app-header nav a { color: #cbd5e1; padding: 8px 12px; border-radius: 8px; font-weight: 600; font-size: 13px; }
.app-header nav a:hover { background: rgba(255,255,255,.08); color: white; }
.app-header nav a.active { background: #ffffff; color: var(--navy); }
.app-main { max-width: 1500px; margin: 0 auto; padding: 34px 28px 72px; }
footer { max-width: 1500px; margin: 0 auto; padding: 0 28px 28px; display: flex; justify-content: space-between; gap: 20px; color: #98a2b3; font-size: 12px; }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.page-heading.compact { align-items: center; }
.page-heading p { margin: 0; color: var(--muted); max-width: 780px; }
.heading-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.eyebrow { display: block; margin-bottom: 7px; color: var(--primary); font-size: 11px; line-height: 1; text-transform: uppercase; letter-spacing: .12em; font-weight: 800; }
.surface, .card, .empty { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); }
.table-surface { overflow-x: auto; }
.data-table, table { width: 100%; border-collapse: collapse; }
th, td { padding: 15px 16px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--border); }
th { background: var(--surface-alt); color: #475467; font-size: 11px; text-transform: uppercase; letter-spacing: .065em; font-weight: 750; white-space: nowrap; }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: #fbfcfe; }
.row-note { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.metric-value { display: block; font-size: 18px; line-height: 1.1; font-weight: 750; }
.muted { color: var(--muted); font-size: 12px; }
.mono { font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace; }
.warning-text { color: var(--warning); }
.button, button, .icon-button { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; border: 1px solid var(--border-strong); background: white; color: #344054; border-radius: 8px; padding: 7px 12px; text-decoration: none; cursor: pointer; font: inherit; font-weight: 650; line-height: 1; transition: .15s ease; }
.button:hover, button:hover, .icon-button:hover { border-color: #98a2b3; background: #f8fafc; transform: translateY(-1px); }
.primary { color: white; background: var(--primary); border-color: var(--primary); box-shadow: 0 1px 2px rgba(21,94,239,.25); }
.primary:hover { color: white; background: var(--primary-dark); border-color: var(--primary-dark); }
.danger { color: white; background: var(--danger); border-color: var(--danger); }
.danger.ghost { color: var(--danger); background: white; border-color: #f0b8b4; }
.danger.ghost:hover { background: var(--danger-soft); border-color: var(--danger); }
button:disabled, .button.disabled { opacity: .5; cursor: not-allowed; transform: none; }
.actions { display: flex; flex-wrap: wrap; gap: 6px; min-width: 220px; }
.actions.compact { min-width: 0; }
.actions.compact .button, .actions.compact button { min-height: 31px; padding: 6px 9px; font-size: 12px; }
.actions form { margin: 0; }
.notice { display: flex; align-items: center; gap: 8px; border: 1px solid #b7d0fb; background: var(--primary-soft); color: #1849a9; padding: 12px 15px; border-radius: 9px; margin-bottom: 18px; }
.notice.error { border-color: #f3aaa4; background: var(--danger-soft); color: #8e1b12; }
.notice.warning { border-color: #f0d285; background: var(--warning-soft); color: #7a5100; }
.notice.subtle { margin: 0; background: var(--surface-alt); border-color: var(--border); color: var(--text); justify-content: space-between; }
.badge { display: inline-flex; align-items: center; border-radius: 999px; padding: 3px 8px; font-size: 11px; font-weight: 700; }
.badge.good { background: var(--success-soft); color: var(--success); }
.badge.warning { background: var(--warning-soft); color: var(--warning); }
.badge.neutral { background: #eef2f6; color: #596579; }
.badge.danger-badge { background: var(--danger-soft); color: var(--danger); }
.status-dot { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; }
.status-dot::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #98a2b3; box-shadow: 0 0 0 3px #eef2f6; }
.status-dot.online { color: var(--success); }
.status-dot.online::before { background: #18a264; box-shadow: 0 0 0 3px #ddf6e9; }
.status-dot.offline { color: var(--muted); }
.error-small { display: block; margin-top: 4px; color: var(--danger); font-size: 12px; }
.endpoint-grid { display: grid; grid-template-columns: repeat(2, minmax(68px, 1fr)); gap: 5px; min-width: 160px; }
.endpoint-button { min-height: 29px; white-space: nowrap; font-size: 11px; padding: 5px 7px; }
.endpoint-preview, .source-object-name { overflow-wrap: anywhere; }
.irr-source-badges { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 7px; max-width: 230px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px; padding: 26px; }
.form-grid label > span { display: block; margin-bottom: 7px; font-weight: 700; color: #344054; }
.form-grid input[type="text"], .form-grid input:not([type]), .form-grid input[type="number"], .form-grid input[type="email"], .form-grid input[type="date"], .form-grid select, .form-grid textarea { width: 100%; border: 1px solid var(--border-strong); border-radius: 8px; padding: 10px 11px; font: inherit; color: var(--text); background: white; outline: none; transition: border-color .15s, box-shadow .15s; }
.form-grid input:focus, .form-grid select:focus, .form-grid textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(21,94,239,.12); }
.form-grid textarea { resize: vertical; }
.form-grid small { display: block; margin-top: 5px; color: var(--muted); font-size: 12px; }
.wide { grid-column: 1 / -1; }
.form-section-title { display: flex; align-items: center; gap: 12px; padding-top: 5px; border-bottom: 1px solid var(--border); padding-bottom: 12px; }
.form-section-title > span { display: grid; place-items: center; flex: 0 0 29px; width: 29px; height: 29px; border-radius: 9px; color: var(--primary); background: var(--primary-soft); font-weight: 800; }
.form-section-title h3 { margin: 0 0 2px; font-size: 15px; }
.form-section-title p { margin: 0; color: var(--muted); font-size: 12px; }
.option-grid { border: 0; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; }
.option-grid legend, .option-panel legend, .segmented-control legend, .port-selection legend { margin-bottom: 9px; padding: 0; font-weight: 750; color: #344054; }
.option-card { display: flex; align-items: flex-start; gap: 9px; border: 1px solid var(--border); border-radius: 9px; padding: 12px; background: var(--surface-alt); }
.option-card.compact { padding: 10px 12px; }
.option-card input, .toggle-row input, .segmented-control input, .port-choice input { margin-top: 2px; accent-color: var(--primary); }
.option-card span, .toggle-row span, .segmented-control span { display: block; }
.option-card small, .toggle-row small, .segmented-control small { margin-top: 2px; }
.option-panel { border: 1px solid var(--border); border-radius: 10px; padding: 16px; margin: 0; }
.toggle-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 12px; }
.toggle-row { display: flex; align-items: flex-start; gap: 10px; }
.form-actions { display: flex; align-items: center; gap: 8px; }
.sticky-actions { position: sticky; bottom: 14px; z-index: 5; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 13px 15px; border: 1px solid var(--border-strong); border-radius: 10px; background: rgba(255,255,255,.95); box-shadow: 0 12px 35px rgba(16,24,40,.12); backdrop-filter: blur(10px); }
.sticky-actions > div:first-child strong, .sticky-actions > div:first-child span { display: block; }
.sticky-actions > div:first-child span { color: var(--muted); font-size: 11px; margin-top: 2px; }
.segmented-control { border: 0; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
.segmented-control label { display: flex; gap: 10px; border: 1px solid var(--border); border-radius: 10px; padding: 14px; background: var(--surface-alt); }
.subform { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 20px 24px; padding: 18px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-alt); }
[hidden] { display: none !important; }
.port-selection { border: 0; margin: 0; padding: 0; }
.port-selection > div { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.port-choice { display: flex; align-items: flex-start; gap: 8px; border: 1px solid var(--border); border-radius: 8px; padding: 9px 10px; background: white; }
.port-choice span, .port-choice strong, .port-choice small { display: block; }
.port-choice small { margin-top: 1px; color: var(--muted); text-transform: capitalize; }
.port-choice.unavailable { opacity: .56; background: #f4f5f7; }
.demarcation-preview { border: 1px solid #b8cced; border-radius: 10px; padding: 16px; background: linear-gradient(145deg, #f8fbff, #eef5ff); }
.preview-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.preview-heading span { color: var(--primary); font-size: 10px; text-transform: uppercase; letter-spacing: .1em; font-weight: 800; }
.demarcation-preview dl { display: grid; grid-template-columns: max-content 1fr; gap: 4px 12px; margin: 12px 0 0; }
.demarcation-preview dt { font-weight: 750; }
.demarcation-preview dd { margin: 0; overflow-wrap: anywhere; }
.customer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(410px, 1fr)); gap: 18px; }
.customer-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px; box-shadow: var(--shadow); }
.customer-card-head { display: flex; justify-content: space-between; gap: 18px; align-items: flex-start; }
.customer-card-head h3 { margin: 0; }
.title-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.customer-notes { margin: 8px 0 0; white-space: pre-line; }
.icon-button { min-height: 31px; padding: 6px 9px; font-size: 12px; }
.customer-service-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
.service-panel { border: 1px solid var(--border); border-radius: 10px; padding: 14px; background: var(--surface-alt); }
.service-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.metric { display: grid; place-items: center; min-width: 25px; height: 25px; border-radius: 999px; background: white; border: 1px solid var(--border); font-weight: 750; font-size: 11px; }
.service-list { list-style: none; padding: 0; margin: 10px 0; display: grid; gap: 8px; }
.service-list li { border-bottom: 1px solid var(--border); padding-bottom: 7px; }
.service-list li:last-child { border-bottom: 0; padding-bottom: 0; }
.service-list a, .service-list span { display: block; }
.service-list span { margin-top: 2px; color: var(--muted); font-size: 11px; overflow-wrap: anywhere; }
.empty-inline { min-height: 37px; margin: 10px 0; color: var(--muted); font-size: 12px; }
.text-action { display: inline-block; margin-top: 2px; font-size: 12px; font-weight: 700; }
.customer-card-actions { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--border); display: flex; flex-wrap: wrap; gap: 7px; }
.empty-state { min-height: 300px; display: grid; place-items: center; align-content: center; text-align: center; padding: 42px; background: var(--surface); border: 1px dashed var(--border-strong); border-radius: var(--radius); }
.empty-state h3 { margin: 10px 0 5px; }
.empty-state p { margin: 0 0 15px; color: var(--muted); }
.empty-icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 13px; background: var(--primary-soft); color: var(--primary); font-weight: 850; font-size: 18px; }
.inventory-stack { display: grid; gap: 18px; }
.inventory-datacenter { padding: 20px; }
.inventory-heading, .inventory-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.inventory-heading h3 { margin-bottom: 4px; }
.inventory-tree { margin-top: 18px; display: grid; gap: 14px; }
.inventory-room { border-left: 4px solid #a9c7f6; padding-left: 14px; }
.inventory-rack { margin: 12px 0 0 12px; border-left: 3px solid #d5deeb; padding-left: 14px; }
.inventory-panel { margin: 12px 0 0 12px; background: var(--surface-alt); border: 1px solid var(--border); border-radius: 9px; padding: 13px; }
.nested-empty { margin-left: 12px; }
.port-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px; margin-top: 10px; }
.port-card { background: white; border: 1px solid var(--border); border-radius: 8px; padding: 10px; display: grid; gap: 7px; }
.toolbar { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 20px; }
.table-wrap { overflow-x: auto; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); }
@media (max-width: 1000px) {
    .header-inner { align-items: flex-start; flex-direction: column; gap: 10px; }
    .brand { min-width: 0; }
    .app-header { position: static; }
    .customer-service-grid { grid-template-columns: 1fr; }
}
@media (max-width: 800px) {
    .app-main { padding: 25px 16px 55px; }
    .header-inner { padding: 13px 16px; }
    footer { padding: 0 16px 24px; flex-direction: column; }
    .page-heading, .toolbar, .inventory-heading, .inventory-row, .sticky-actions { align-items: flex-start; flex-direction: column; }
    .form-grid, .subform { grid-template-columns: 1fr; padding: 18px; }
    .wide { grid-column: auto; }
    .segmented-control { grid-template-columns: 1fr; }
    .customer-grid { grid-template-columns: 1fr; }
    .sticky-actions { position: static; }
}

/* Partner and IPAM extensions */
.partner-service-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 12px; margin-top: 18px; }
.filter-bar { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(180px, .6fr) auto; align-items: end; gap: 12px; margin-bottom: 18px; padding: 14px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); }
.filter-bar label > span { display: block; margin-bottom: 6px; font-size: 12px; font-weight: 700; color: #344054; }
.filter-bar select { width: 100%; border: 1px solid var(--border-strong); border-radius: 8px; padding: 9px 10px; background: white; color: var(--text); font: inherit; }
.filter-actions { display: flex; gap: 7px; }
.ipam-stack { display: grid; gap: 18px; }
.ipam-pool { overflow: hidden; }
.ipam-pool-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 22px; padding: 20px; }
.ipam-pool-head h3 { margin: 0; }
.ipam-prefix { margin-top: 8px; font-size: 17px; font-weight: 750; color: #243b64; }
.ipam-description { margin-top: 7px; white-space: pre-line; }
.utilization-row { display: grid; grid-template-columns: minmax(180px, 1fr) max-content; align-items: center; gap: 16px; padding: 12px 20px; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); background: var(--surface-alt); color: var(--muted); font-size: 12px; }
.utilization-track { height: 8px; overflow: hidden; border-radius: 999px; background: #e8edf4; }
.utilization-track span { display: block; min-width: 2px; max-width: 100%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #155eef, #5b8def); }
.embedded-table { border: 0; border-radius: 0; box-shadow: none; }
.embedded-table th:first-child, .embedded-table td:first-child { padding-left: 20px; }
.embedded-table th:last-child, .embedded-table td:last-child { padding-right: 20px; }
.empty-inline.roomy { min-height: auto; margin: 0; padding: 24px 20px; }
@media (max-width: 1150px) {
    .partner-service-grid { grid-template-columns: 1fr; }
    .utilization-row { grid-template-columns: 1fr; }
}
@media (max-width: 800px) {
    .filter-bar { grid-template-columns: 1fr; }
    .ipam-pool-head { flex-direction: column; }
}
/* Network device inventory */
.device-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 18px; }
.device-card { padding: 20px; display: flex; flex-direction: column; gap: 16px; }
.device-card-head { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; }
.device-card-head h3 { margin: 7px 0 0; font-size: 20px; }
.compact-definition { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; }
.compact-definition div { padding: 10px 12px; border: 1px solid var(--border); border-radius: 9px; background: var(--surface-alt); }
.compact-definition dt { color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .05em; font-weight: 750; }
.compact-definition dd { margin: 3px 0 0; font-weight: 700; overflow-wrap: anywhere; }
.inline-error { padding: 9px 11px; border-radius: 8px; background: var(--danger-soft); color: var(--danger); font-size: 12px; overflow-wrap: anywhere; }
.compact-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 18px; }
.device-description { margin-bottom: 18px; padding: 14px 16px; color: var(--muted); white-space: pre-wrap; overflow-wrap: anywhere; }
.stale-row { opacity: .68; }
.interface-facts { display: flex; flex-wrap: wrap; gap: 10px 20px; padding: 13px 15px; background: var(--surface-alt); border: 1px solid var(--border); border-radius: 9px; color: var(--muted); font-size: 12px; }
.port-link-summary { margin-top: 6px; padding-top: 6px; border-top: 1px dashed var(--border); }
.port-link-summary strong { display: block; font-size: 12px; }
.port-link-summary span { display: block; color: var(--muted); font-size: 11px; overflow-wrap: anywhere; }
.cid-button { min-width: 42px; }
@media (max-width: 1000px) { .compact-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 650px) { .device-grid, .compact-definition, .compact-metrics { grid-template-columns: 1fr; } }

/* Service-centric inventory and interface telemetry */
.service-table td { vertical-align: top; }
.service-type.bgp { background: #e8f0ff; color: #1849a9; }
.service-type.dia { background: #e8f8f0; color: #087443; }
.service-type.l2vpn { background: #f3e8ff; color: #6b21a8; }
.service-type.ix { background: #fff4e5; color: #9a5200; }
.service-summary { margin-bottom: 18px; padding: 16px 18px; white-space: pre-line; }
.service-identity-panel { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1px; padding: 0; overflow: hidden; margin-bottom: 18px; }
.service-identity-panel > div { padding: 16px; background: var(--surface-alt); }
.service-identity-panel span, .service-identity-panel strong, .service-identity-panel small { display: block; }
.service-identity-panel span { color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .05em; font-weight: 750; }
.service-identity-panel strong { margin-top: 6px; overflow-wrap: anywhere; }
.service-identity-panel small { margin-top: 4px; color: var(--muted); }
.service-child-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; }
.child-panel { padding: 18px; min-width: 0; }
.panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 12px; }
.panel-heading h3 { margin: 2px 0 0; }
.resource-list { display: grid; gap: 8px; }
.resource-list article { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 11px; border: 1px solid var(--border); border-radius: 8px; background: var(--surface-alt); }
.resource-list article > div:first-child { min-width: 0; }
.resource-list article strong, .resource-list article span { display: block; }
.resource-list article span { margin-top: 2px; color: var(--muted); font-size: 11px; overflow-wrap: anywhere; }
.inline-add-form { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border); }
.inline-add-form select { min-width: 0; }
.service-chip { display: block; padding: 5px 7px; margin-bottom: 5px; border: 1px solid var(--border); border-radius: 7px; background: var(--surface-alt); }
.service-chip strong, .service-chip span { display: block; }
.service-chip span { color: var(--muted); font-size: 10px; }
.inset-table { border: 0; box-shadow: none; margin: 0 -1px; }
.empty-state.compact { min-height: 150px; }
.bandwidth-panel { padding: 18px; margin-bottom: 18px; }
.range-buttons { display: flex; gap: 5px; flex-wrap: wrap; }
.bandwidth-chart { position: relative; height: 280px; padding: 14px 10px 26px 68px; border: 1px solid var(--border); border-radius: 10px; background: linear-gradient(180deg,#fbfdff,#f7f9fc); }
.bandwidth-chart svg { width: 100%; height: 100%; overflow: visible; }
.grid-line { stroke: #dbe3ef; stroke-width: 1; vector-effect: non-scaling-stroke; }
.traffic-line { fill: none; stroke-width: 2.5; vector-effect: non-scaling-stroke; stroke-linejoin: round; stroke-linecap: round; }
.traffic-line.rx { stroke: #155eef; }
.traffic-line.tx { stroke: #12a150; }
.chart-y { position: absolute; left: 10px; color: var(--muted); font-size: 10px; }
.chart-y.peak { top: 10px; }
.chart-y.zero { bottom: 22px; }
.chart-legend { display: flex; gap: 18px; flex-wrap: wrap; margin-top: 12px; color: var(--muted); font-size: 11px; }
.chart-legend i { display: inline-block; width: 18px; height: 3px; margin-right: 6px; vertical-align: middle; border-radius: 3px; }
.chart-legend i.rx { background: #155eef; }
.chart-legend i.tx { background: #12a150; }
@media (max-width: 950px) {
  .service-child-grid, .service-identity-panel { grid-template-columns: 1fr; }
  .inline-add-form { grid-template-columns: 1fr; }
}

/* Service readiness */
.readiness-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:.7rem; }
.readiness-item { display:flex; align-items:center; gap:.65rem; padding:.8rem .9rem; border:1px solid var(--border); border-radius:10px; background:var(--surface-subtle,#f8fafc); color:var(--muted); }
.readiness-item.complete { color:var(--text); border-color:#b8e4c9; background:#f0fbf4; }
.readiness-mark { font-size:1.1rem; font-weight:800; }

/* IPAM availability assistant */
.proposal-panel{border:1px solid var(--border);border-radius:14px;padding:18px;background:linear-gradient(135deg,rgba(37,99,235,.06),rgba(255,255,255,.7));display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:end}.proposal-panel h3{margin:3px 0 5px}.proposal-panel p{margin:0;color:var(--muted)}.proposal-controls{display:flex;align-items:end;gap:10px}.proposal-controls label{min-width:150px}.prefix-input{display:flex;align-items:center;border:1px solid var(--border);border-radius:9px;background:#fff;overflow:hidden}.prefix-input span{padding:0 0 0 12px;color:var(--muted);font-weight:700}.prefix-input input{border:0!important;box-shadow:none!important}.proposal-results{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px}.proposal-panel #proposal-status{grid-column:1/-1}.proposal-chip{border:1px solid #a9c2f8;background:#fff;color:#174ca7;border-radius:999px;padding:8px 12px;cursor:pointer}.proposal-chip:hover{background:#eaf1ff;border-color:#2563eb}@media(max-width:800px){.proposal-panel{grid-template-columns:1fr}.proposal-controls{align-items:stretch;flex-direction:column}.proposal-controls label{width:100%}}

/* 9.2.3 partner and service-detail layout */
.partner-list { display: grid; gap: 18px; }
.partner-overview-card { overflow: hidden; }
.partner-overview-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 20px 22px; }
.partner-overview-head h3 { margin: 0; font-size: 20px; }
.partner-services-table-wrap { overflow-x: auto; border-top: 1px solid var(--border); }
.partner-services-table th:first-child, .partner-services-table td:first-child { padding-left: 22px; }
.partner-services-table th:last-child, .partner-services-table td:last-child { padding-right: 22px; }
.partner-services-table td { vertical-align: middle; }
.service-id-link { font-weight: 750; white-space: nowrap; }
.service-resource-counts { display: flex; flex-wrap: wrap; gap: 6px; min-width: 230px; }
.service-resource-counts span { display: inline-flex; align-items: center; gap: 4px; padding: 4px 7px; border: 1px solid var(--border); border-radius: 999px; background: var(--surface-alt); color: var(--muted); font-size: 11px; white-space: nowrap; }
.service-resource-counts strong { color: var(--text); }
.partner-services-empty { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px; border-top: 1px solid var(--border); background: var(--surface-alt); }
.partner-services-empty strong, .partner-services-empty span { display: block; }
.partner-services-empty span { margin-top: 3px; color: var(--muted); font-size: 12px; }
.partner-overview-footer { display: flex; justify-content: flex-end; padding: 12px 22px; border-top: 1px solid var(--border); background: #fffafa; }

.service-hero { display: flex; align-items: flex-start; justify-content: space-between; gap: 28px; padding: 24px; margin-bottom: 18px; }
.service-hero-main { min-width: 0; }
.service-hero h2 { margin: 0; font-size: clamp(27px, 3vw, 38px); overflow-wrap: anywhere; }
.service-hero-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px; }
.service-hero-meta > a { font-weight: 750; margin-right: 4px; }
.service-hero-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; flex: 0 0 auto; }
.metric-grid { display: grid; gap: 14px; }
.metric-card { min-width: 0; padding: 17px 18px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); }
.metric-card span, .metric-card strong, .metric-card small { display: block; }
.metric-card span { color: var(--muted); font-size: 11px; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.metric-card strong { margin-top: 7px; font-size: 23px; line-height: 1.1; overflow-wrap: anywhere; }
.metric-card small { margin-top: 5px; color: var(--muted); font-size: 11px; }
.service-metrics { margin-bottom: 18px; }
.readiness-panel { padding: 18px; margin-bottom: 18px; }
.readiness-panel .panel-heading { margin-bottom: 14px; }
.service-identity-panel { border-radius: var(--radius); }
.service-child-grid { align-items: start; }
.child-panel { display: flex; flex-direction: column; gap: 0; min-height: 100%; }
.child-panel .empty-inline { margin: 6px 0 4px; }
.resource-list article { align-items: flex-start; }
.resource-list article > form { flex: 0 0 auto; margin: 0; }
.inline-add-form select { width: 100%; min-height: 36px; border: 1px solid var(--border-strong); border-radius: 8px; padding: 7px 10px; background: white; color: var(--text); font: inherit; }
.inline-add-form.two-control { grid-template-columns: minmax(0, 1fr) auto; }
.child-panel > .text-action { margin-top: 12px; }
.danger-zone { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 18px; padding: 18px; border: 1px solid #f0b8b4; border-radius: var(--radius); background: var(--danger-soft); }
.danger-zone strong { display: block; color: #8e1b12; }
.danger-zone p { margin: 3px 0 0; color: #9c4038; font-size: 12px; }
.danger-zone form { margin: 0; flex: 0 0 auto; }

@media (max-width: 900px) {
    .partner-overview-head, .service-hero, .partner-services-empty, .danger-zone { flex-direction: column; align-items: stretch; }
    .service-hero-actions { justify-content: flex-start; }
    .partner-overview-head .heading-actions { width: 100%; }
    .partner-overview-head .heading-actions .button { flex: 1 1 auto; }
    .service-resource-counts { min-width: 0; }
}

/* 9.2.3 L2VPN-specific provisioning */
.l2vpn-identity-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(180px, .65fr) minmax(0, 1fr);
    gap: 1px;
    padding: 0;
    overflow: hidden;
    margin-bottom: 18px;
    border-radius: var(--radius);
}
.l2vpn-identity-panel article {
    padding: 18px;
    background: var(--surface-alt);
    min-width: 0;
}
.l2vpn-identity-panel span,
.l2vpn-identity-panel strong,
.l2vpn-identity-panel small { display: block; }
.l2vpn-identity-panel span {
    color: var(--muted);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .05em;
    font-weight: 750;
}
.l2vpn-identity-panel strong { margin-top: 7px; font-size: 17px; overflow-wrap: anywhere; }
.l2vpn-identity-panel small { margin-top: 5px; color: var(--muted); overflow-wrap: anywhere; }
.l2vpn-identity-panel .transport-identity { text-align: center; }
.l2vpn-child-grid { grid-template-columns: minmax(0, 1.35fr) minmax(0, .85fr); }
@media (max-width: 950px) {
    .l2vpn-identity-panel,
    .l2vpn-child-grid { grid-template-columns: 1fr; }
    .l2vpn-identity-panel .transport-identity { text-align: left; }
}

/* 9.3.1 multipoint L2VPN and VLAN/VNI inventory */
.proposal-inline { min-height: 0; padding: 1px 6px; border-radius: 999px; color: var(--primary); border-color: #a9c2f8; background: var(--primary-soft); font-size: 11px; vertical-align: baseline; }
.l2vpn-port-repeater { display: grid; gap: 12px; }
.l2vpn-port-list { display: grid; gap: 10px; }
.l2vpn-port-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; align-items: end; padding: 13px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-alt); }
.l2vpn-port-row label { min-width: 0; }
.l2vpn-port-row select { width: 100%; }
.l2vpn-port-row .remove-l2vpn-port { margin-bottom: 0; }
.l2vpn-multipoint-panel { padding: 18px; margin-bottom: 18px; }
.encapsulation-summary { display: flex; flex-wrap: wrap; gap: 7px; }
.l2vpn-endpoint-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(230px,1fr)); gap: 10px; }
.l2vpn-endpoint-grid article { padding: 14px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-alt); min-width: 0; }
.l2vpn-endpoint-grid span, .l2vpn-endpoint-grid strong, .l2vpn-endpoint-grid small { display: block; }
.l2vpn-endpoint-grid span { color: var(--primary); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.l2vpn-endpoint-grid strong { margin-top: 6px; overflow-wrap: anywhere; }
.l2vpn-endpoint-grid small { margin-top: 4px; color: var(--muted); overflow-wrap: anywhere; }
@media (max-width: 700px) { .l2vpn-port-row { grid-template-columns: 1fr; } }

/* 9.4.0 paired encapsulation pools and device-first L2VPN endpoints */
.device-port-row { grid-template-columns: minmax(190px,.75fr) minmax(260px,1.25fr) auto; }
.pool-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(270px,1fr)); gap: 14px; margin-bottom: 18px; }
.pool-card { padding: 18px; }
.pool-card-head { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; }
.pool-card h3 { margin: 0; }
.pool-range-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 15px 0; }
.pool-range-grid div { padding: 11px; border: 1px solid var(--border); border-radius: 9px; background: var(--surface-alt); }
.pool-range-grid span, .pool-range-grid strong { display: block; }
.pool-range-grid span { color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .06em; font-weight: 750; }
.pool-range-grid strong { margin-top: 5px; }
.pool-pair-preview { margin: 10px 0 0; color: var(--muted); font-size: 12px; }
@media (max-width: 820px) { .device-port-row { grid-template-columns: 1fr; } }


/* 9.4.1 device-first service port assignment */
.service-device-port-form { grid-template-columns: minmax(180px,.8fr) minmax(240px,1.2fr) auto; }
@media (max-width: 760px) { .service-device-port-form { grid-template-columns: 1fr; } }

/* 10.0.0 portal shell and map-centric dashboard */
.portal-body { background:#f4f7fb; }
.portal-shell { min-height:100vh; display:grid; grid-template-columns:235px minmax(0,1fr); }
.portal-sidebar { position:sticky; top:0; height:100vh; display:flex; flex-direction:column; background:linear-gradient(180deg,#071a2e 0%,#0d2741 55%,#0b2137 100%); color:#fff; border-right:1px solid rgba(255,255,255,.08); z-index:60; }
.portal-brand { min-height:74px; display:flex; align-items:center; gap:13px; padding:14px 18px; color:#fff; border-bottom:1px solid rgba(255,255,255,.11); }
.portal-brand:hover { color:#fff; }
.portal-brand > span:last-child strong,.portal-brand > span:last-child small { display:block; line-height:1; }
.portal-brand > span:last-child strong { font-size:20px; letter-spacing:.05em; }
.portal-brand > span:last-child small { margin-top:4px; font-size:10px; letter-spacing:.2em; color:#dbe8f7; }
.portal-brand-mark { position:relative; width:31px; height:34px; flex:0 0 31px; }
.portal-brand-mark i { position:absolute; width:7px; height:7px; border-radius:50%; background:#2874ff; box-shadow:0 0 8px rgba(40,116,255,.35); }
.portal-brand-mark i:nth-child(1){left:12px;top:0}.portal-brand-mark i:nth-child(2){left:2px;top:9px}.portal-brand-mark i:nth-child(3){left:12px;top:10px}.portal-brand-mark i:nth-child(4){left:22px;top:9px}.portal-brand-mark i:nth-child(5){left:0;top:21px}.portal-brand-mark i:nth-child(6){left:12px;top:22px}.portal-brand-mark i:nth-child(7){left:24px;top:21px}
.portal-nav { flex:1; padding:18px 10px; overflow:auto; }
.portal-nav-group { display:grid; gap:4px; margin-bottom:22px; }
.portal-nav-group > span { margin:0 8px 7px; color:#7f96ad; font-size:10px; letter-spacing:.12em; font-weight:700; }
.portal-nav a { display:flex; align-items:center; gap:10px; min-height:42px; padding:9px 11px; border-radius:7px; color:#e9f1fa; font-size:13px; font-weight:620; }
.portal-nav a b { display:grid; place-items:center; width:20px; height:20px; font-size:17px; font-weight:500; color:#d9e6f4; }
.portal-nav a:hover { background:rgba(255,255,255,.07); color:#fff; }
.portal-nav a.active { background:linear-gradient(135deg,#155eef,#2878ff); color:#fff; box-shadow:0 5px 14px rgba(18,85,226,.3); }
.portal-sidebar-foot { padding:16px 18px 20px; border-top:1px solid rgba(255,255,255,.09); }
.portal-sidebar-foot .status-dot { color:#d9e6f4; }
.portal-sidebar-foot small { display:block; margin-top:5px; color:#718aa4; }
.portal-workspace { min-width:0; }
.portal-topbar { position:sticky; top:0; z-index:45; min-height:74px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:12px 24px; color:#fff; background:linear-gradient(90deg,#07182a,#061525); border-bottom:1px solid rgba(255,255,255,.08); }
.portal-topbar > div:first-child strong,.portal-topbar > div:first-child small,.portal-admin strong,.portal-admin small { display:block; }
.portal-topbar > div:first-child strong { font-size:15px; }
.portal-topbar > div:first-child small,.portal-admin small { margin-top:2px; color:#8fa2b8; font-size:10px; }
.portal-admin { display:flex; align-items:center; gap:9px; }
.portal-admin .avatar { display:grid; place-items:center; width:35px; height:35px; border-radius:50%; background:#155eef; font-weight:800; font-size:12px; }
.portal-workspace .app-main { max-width:none; padding:28px 24px 64px; }
.portal-workspace footer { display:none; }

.dashboard-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:18px; }
.dashboard-heading h1,.wizard-page-heading h1 { margin:0 0 7px; font-size:32px; letter-spacing:-.035em; line-height:1.08; }
.dashboard-heading p { margin:0; color:var(--muted); }
.dashboard-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:18px; }
.dashboard-kpis article { padding:16px 18px; background:#fff; border:1px solid #d8e1ec; border-radius:9px; box-shadow:0 3px 12px rgba(14,35,58,.04); }
.dashboard-kpis span,.dashboard-kpis strong,.dashboard-kpis small { display:block; }
.dashboard-kpis span { color:#65758a; font-size:11px; font-weight:700; }
.dashboard-kpis strong { margin-top:5px; font-size:25px; line-height:1; color:#0d2036; }
.dashboard-kpis small { margin-top:6px; color:#8b9aae; font-size:10px; }
.dashboard-map-shell { overflow:hidden; margin-bottom:18px; border-radius:9px; }
.dashboard-map-head { min-height:74px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:15px 17px; border-bottom:1px solid var(--border); }
.dashboard-map-head h2 { margin:1px 0 0; font-size:19px; }
.map-filter-row { display:flex; gap:9px; min-width:min(520px,55vw); }
.map-filter-row input,.map-filter-row select { min-height:38px; width:100%; border:1px solid #d6dfeb; border-radius:7px; padding:8px 11px; background:#fff; font:inherit; }
.map-filter-row select { max-width:160px; }
.dashboard-map-layout { display:grid; grid-template-columns:minmax(0,1fr) 270px; min-height:570px; }
.network-map { min-height:570px; background:#e9f2fb; }
.map-detail-panel { padding:22px 18px; border-left:1px solid var(--border); background:#fff; }
.map-detail-panel h3 { margin:8px 0 5px; font-size:20px; }
.map-detail-panel p { color:var(--muted); }
.map-detail-panel dl { display:grid; gap:12px; margin:22px 0; }
.map-detail-panel dt { color:#77869a; font-size:10px; text-transform:uppercase; letter-spacing:.06em; font-weight:750; }
.map-detail-panel dd { margin:2px 0 0; color:#1b2b40; font-size:12px; overflow-wrap:anywhere; }
.map-location-code { display:inline-flex; min-width:47px; justify-content:center; margin-top:7px; padding:5px 9px; border:1px solid #90d4aa; border-radius:999px; background:#f0fbf4; color:#148046; font-weight:800; font-size:11px; }
.wide-button { width:100%; }
.dc-map-icon-wrap { background:transparent; border:0; }
.dc-map-icon { display:grid; place-items:center; width:38px; height:38px; border-radius:50%; color:#fff; background:#155eef; border:3px solid #fff; box-shadow:0 2px 8px rgba(9,44,103,.3); font-size:10px; font-weight:850; }
.dc-map-icon.disabled { background:#8795a8; }
.leaflet-control-zoom a { font-weight:500!important; }
.dashboard-table-panel { padding:0; overflow:hidden; }
.dashboard-table-panel > .panel-heading { padding:14px 16px; margin:0; border-bottom:1px solid var(--border); }
.dashboard-table-panel h2 { margin:0; font-size:17px; }

/* 10.0.0 end-to-end service provisioning */
.service-wizard { padding:0; overflow:hidden; }
.wizard-intro { display:flex; align-items:center; gap:15px; padding:20px 24px; background:linear-gradient(135deg,#fbfdff,#f5f9ff); border-bottom:1px solid var(--border); }
.wizard-intro h2 { margin:0 0 3px; font-size:20px; }
.wizard-intro p { margin:0; color:var(--muted); font-size:12px; }
.wizard-type-icon { display:grid; place-items:center; width:42px; height:42px; border-radius:10px; background:#e9f1ff; color:#155eef; font-size:13px; font-weight:850; }
.wizard-section { display:grid; grid-template-columns:56px minmax(0,1fr); border-bottom:1px solid var(--border); }
.wizard-step { display:grid; place-items:start center; padding-top:25px; color:#155eef; font-size:16px; font-weight:850; background:#f9fbfe; border-right:1px solid var(--border); }
.wizard-step::before { content:""; position:absolute; }
.wizard-section-body { padding:23px 26px 27px; min-width:0; }
.wizard-section-head { margin-bottom:18px; }
.wizard-section-head h3 { margin:0 0 4px; font-size:18px; }
.wizard-section-head p { margin:0; color:var(--muted); font-size:12px; }
.embedded-grid { padding:0; background:transparent; }
.endpoint-repeater { display:grid; gap:11px; }
.endpoint-port-list,[data-port-list] { display:grid; gap:10px; }
.endpoint-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; gap:10px; align-items:end; padding:13px; border:1px solid var(--border); border-radius:9px; background:#fafcff; }
.endpoint-row label > span { display:block; margin-bottom:6px; color:#344054; font-size:11px; font-weight:750; }
.endpoint-row select { width:100%; min-height:39px; border:1px solid var(--border-strong); border-radius:7px; padding:7px 9px; background:#fff; font:inherit; }
.proposal-card { min-width:0; padding:16px; border:1px solid #bfd1ee; border-radius:10px; background:linear-gradient(135deg,#f7faff,#fff); }
.proposal-card.proposal-disabled { opacity:.48; pointer-events:none; }
.proposal-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:14px; }
.proposal-card-head h4 { margin:2px 0 0; font-size:15px; }
.proposal-fields { display:grid; grid-template-columns:1.2fr .65fr 1.2fr; gap:10px; }
.proposal-fields.stacked { grid-template-columns:1fr; }
.proposal-fields label > span { display:block; margin-bottom:5px; color:#526175; font-size:10px; font-weight:750; }
.proposal-fields select,.proposal-fields input { width:100%; min-height:39px; border:1px solid var(--border-strong); border-radius:7px; padding:8px 9px; background:#fff; font:inherit; }
.proposal-card > small { display:block; margin-top:8px; color:var(--muted); }
.dual-proposal-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }
.existing-resource-strip { display:flex; align-items:center; flex-wrap:wrap; gap:7px; margin-top:12px; padding:10px 12px; border-radius:8px; background:#f8fafc; border:1px solid var(--border); }
.recommendation-card { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:14px; padding:14px 16px; border:1px solid #acd7bc; border-radius:10px; background:#f1fbf5; }
.recommendation-card strong,.recommendation-card p { display:block; margin:0; }
.recommendation-card p { margin-top:3px; color:#4f6b5b; font-size:12px; }
.checkbox-panel { display:flex; flex-wrap:wrap; gap:9px 16px; border:1px solid var(--border); border-radius:9px; padding:12px 14px; }
.checkbox-panel legend { padding:0 5px; color:#344054; font-size:11px; font-weight:750; }
.checkbox-panel label { display:flex; align-items:center; gap:6px; }
.setup-loa-create { padding:15px; border:1px solid var(--border); border-radius:9px; background:#fafcff; }
.wizard-submit-bar { position:sticky; bottom:0; z-index:12; display:flex; align-items:center; justify-content:space-between; gap:18px; padding:15px 20px; background:rgba(255,255,255,.96); border-top:1px solid var(--border-strong); box-shadow:0 -8px 25px rgba(12,31,54,.08); backdrop-filter:blur(10px); }
.wizard-submit-bar strong,.wizard-submit-bar span { display:block; }
.wizard-submit-bar span { margin-top:2px; color:var(--muted); font-size:10px; }

@media (max-width:1100px) {
  .portal-shell { grid-template-columns:200px minmax(0,1fr); }
  .dashboard-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dashboard-map-layout { grid-template-columns:1fr; }
  .map-detail-panel { border-left:0; border-top:1px solid var(--border); }
  .network-map { min-height:470px; }
  .dual-proposal-grid { grid-template-columns:1fr; }
}
@media (max-width:780px) {
  .portal-shell { display:block; }
  .portal-sidebar { position:static; height:auto; }
  .portal-brand { min-height:60px; }
  .portal-nav { display:flex; gap:8px; overflow-x:auto; padding:9px; }
  .portal-nav-group { display:flex; gap:5px; margin:0; }
  .portal-nav-group > span,.portal-sidebar-foot { display:none; }
  .portal-nav a { min-width:max-content; min-height:36px; }
  .portal-topbar { position:static; min-height:60px; }
  .dashboard-heading,.dashboard-map-head { align-items:stretch; flex-direction:column; }
  .dashboard-kpis { grid-template-columns:1fr; }
  .map-filter-row { min-width:0; width:100%; flex-direction:column; }
  .map-filter-row select { max-width:none; }
  .wizard-section { grid-template-columns:42px minmax(0,1fr); }
  .wizard-section-body { padding:18px 14px 22px; }
  .endpoint-row,.proposal-fields { grid-template-columns:1fr; }
  .wizard-submit-bar { align-items:stretch; flex-direction:column; }
}

/* Service footprint maps, inbound LOAs and datacenter drill-downs */
.count-link { font-weight: 750; color: var(--primary); text-decoration: none; white-space: nowrap; }
.count-link:hover { text-decoration: underline; }
.service-map-panel { padding: 18px; margin: 18px 0; }
.service-map-panel .panel-heading small { display:block; margin-top:4px; color:var(--muted); max-width:760px; }
.service-map-layout { display:grid; grid-template-columns:minmax(0, 1fr) 280px; gap:16px; min-height:340px; }
.service-map { min-height:340px; border:1px solid var(--border); border-radius:12px; overflow:hidden; background:#edf4fb; z-index:0; }
.service-map-locations { display:grid; align-content:start; gap:8px; }
.service-map-locations > a { display:block; padding:12px; border:1px solid var(--border); border-radius:10px; background:var(--surface-alt); text-decoration:none; color:var(--text); }
.service-map-locations > a:hover { border-color:#8ab1ff; background:#f5f8ff; }
.service-map-locations strong,.service-map-locations span,.service-map-locations small { display:block; }
.service-map-locations span,.service-map-locations small { color:var(--muted); margin-top:3px; }
.service-dc-icon-wrap { background:transparent; border:0; }
.service-dc-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; background:#155eef; color:white; border:3px solid white; box-shadow:0 3px 10px rgba(15,39,82,.28); font-size:10px; font-weight:850; }
.resource-subheading { margin:14px 0 8px; font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); }
.resource-subheading:first-of-type { margin-top:0; }
.inbound-heading { padding-top:14px; border-top:1px solid var(--border); }
.inbound-loa-summary { border-color:#b9c9f7; background:#f5f8ff; }
.inbound-loa-summary strong { color:#194ca8; }
@media (max-width: 950px) { .service-map-layout { grid-template-columns:1fr; } .service-map-locations { grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); } }

/* 10.3.0 aggregate service traffic and routing-policy builder */
.service-traffic-panel { margin-bottom: 18px; }
.traffic-metrics { grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 0 0 18px; }
.billing-metric { background: linear-gradient(135deg, #eff6ff, #f8fbff); border-color: #bfdbfe; }
.service-aggregate-chart { height: 260px; }
.p95-line { stroke-width: 1.5; stroke-dasharray: 8 7; opacity: .75; }
.p95-line.rx { stroke: #2563eb; }
.p95-line.tx { stroke: #7c3aed; }
.p95-key { color: var(--muted); }
.bgp-peer-selector { display: flex; flex-direction: column; gap: 8px; }
.bgp-peer-selector > span { font-weight: 700; color: var(--text); }
.bgp-peer-checkboxes { min-height: 48px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.checkbox-chip { display: inline-flex; align-items: center; gap: 7px; border: 1px solid var(--border); border-radius: 999px; padding: 8px 12px; background: #fff; cursor: pointer; }
.checkbox-chip input { margin: 0; }
.policy-category-grid { display: grid; grid-template-columns: 1fr; gap: 18px; }
.route-map-builder { padding: 22px; }
.route-map-sequences { display: grid; gap: 14px; margin: 16px 0; }
.route-map-sequence { display: grid; grid-template-columns: 120px 140px minmax(180px, .8fr) minmax(220px, 1.2fr); gap: 12px; padding: 16px; border: 1px solid var(--border); border-radius: 12px; background: #f8fafc; align-items: end; }
.route-map-sequence .wide { grid-column: 1 / -1; }
.route-map-sequence > button { justify-self: start; }
.toggle-inline { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; }
.config-preview pre { margin: 0; padding: 16px; border-radius: 10px; overflow: auto; background: #07111f; color: #dbeafe; line-height: 1.55; }
@media (max-width: 1180px) {
  .traffic-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .route-map-sequence { grid-template-columns: 1fr 1fr; }
  .route-map-sequence .wide { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
  .traffic-metrics, .route-map-sequence { grid-template-columns: 1fr; }
  .route-map-sequence .wide { grid-column: auto; }
}

/* 10.3 routing-policy mode selector */
.policy-mode-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:14px 0 22px; }
.policy-mode-card { display:flex; align-items:flex-start; gap:12px; padding:16px; border:1px solid var(--border); border-radius:14px; background:#f8fafc; cursor:pointer; }
.policy-mode-card:has(input:checked) { border-color:#2563eb; box-shadow:0 0 0 2px rgba(37,99,235,.08); background:#eff6ff; }
.policy-mode-card input { width:auto; margin-top:4px; }
.policy-mode-card span { display:grid; gap:5px; }
.policy-mode-card small { color:var(--muted); line-height:1.45; }
.subsection-heading { margin:8px 0 14px; }
.subsection-heading h3 { margin:3px 0 5px; }
.subsection-heading p { margin:0; color:var(--muted); }
.scope-selection-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:14px 0; }
.scope-card { border:1px solid var(--border); border-radius:14px; padding:16px; background:#f8fafc; display:grid; gap:14px; }
.scope-card-head { display:flex; justify-content:space-between; align-items:center; }
.scope-route-map { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; padding:10px 12px; background:white; border:1px solid var(--border); border-radius:10px; }
.scope-route-map span { color:var(--muted); font-size:.88rem; }
@media (max-width: 850px) { .policy-mode-grid,.scope-selection-grid { grid-template-columns:1fr; } }

/* 10.4 rack and patch-panel inventory */
.rack-inventory-list{display:grid;gap:20px}.rack-inventory-card{padding:20px}.rack-notes{margin:0 0 18px;color:var(--muted,#64748b)}
.rack-elevation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:14px}.rack-elevation{border:1px solid #d8e1ee;border-radius:12px;overflow:hidden;background:#f8fafc}.rack-elevation-head{display:flex;justify-content:space-between;padding:11px 14px;background:#eef4fb;border-bottom:1px solid #d8e1ee}.rack-u-stack{max-height:640px;overflow:auto}.rack-u-row{display:grid;grid-template-columns:54px 1fr;min-height:28px;border-bottom:1px solid #e5eaf1}.rack-u-label{display:flex;align-items:center;justify-content:center;font:600 12px ui-monospace,SFMono-Regular,Menlo,monospace;color:#526276;background:#f1f5f9;border-right:1px solid #e5eaf1}.rack-u-content{padding:3px 6px;display:flex;gap:4px;flex-wrap:wrap;align-items:center}.rack-occupant{display:inline-flex;padding:3px 7px;border-radius:6px;font-size:12px;font-weight:700;text-decoration:none}.rack-occupant.device{background:#dbeafe;color:#1d4ed8}.rack-occupant.service{background:#ede9fe;color:#6d28d9}.rack-empty{font-size:11px;color:#a0aec0}.rack-lower-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}.rack-mount-form{margin-top:18px;display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(220px,2fr) 100px 100px 110px auto;gap:10px;align-items:end}.rack-mount-form>div small{display:block;color:#64748b;margin-top:3px}.panel-inventory-grid{display:grid;gap:18px}.patch-panel-card{padding:18px}.room-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:16px}.room-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px}.room-summary small{display:block;color:#64748b;margin-top:3px}.segmented-choice{display:flex;gap:10px;margin:12px 0 16px}.segmented-choice label{cursor:pointer}.segmented-choice input{position:absolute;opacity:0}.segmented-choice span{display:block;padding:9px 14px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;font-weight:700}.segmented-choice input:checked+span{background:#eaf2ff;border-color:#2563eb;color:#1d4ed8}
@media(max-width:1100px){.rack-elevation-grid,.rack-lower-grid{grid-template-columns:1fr}.rack-mount-form{grid-template-columns:1fr 1fr}.rack-mount-form>div{grid-column:1/-1}}
.inventory-reference-line{display:block;margin-top:7px;font-size:12px;color:#64748b;line-height:1.6}.inventory-reference-line>span{display:block}.inventory-reference-line a{font-weight:650}

/* 10.4.1 datacenter identity, rack numbering and mounted patch panels */
.datacenter-page-heading{align-items:flex-end}.datacenter-card-grid{display:grid;gap:18px}.datacenter-overview-card{padding:0;overflow:hidden}.dc-card-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 22px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#fff,#f8fbff)}.dc-identity{display:flex;align-items:center;gap:14px}.dc-identity h2{margin:0 0 4px;font-size:22px}.dc-identity p{margin:0;color:var(--muted)}.dc-code{display:grid;place-items:center;min-width:70px;min-height:48px;padding:7px 12px;border-radius:10px;background:linear-gradient(135deg,#155eef,#2878ff);color:#fff;font:850 13px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em;box-shadow:0 7px 18px rgba(21,94,239,.22)}.dc-address-block{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 22px;color:#334155;background:#fbfdff;border-bottom:1px solid var(--border)}.dc-address-block>strong{font-size:13px}.dc-address-block>span,.dc-address-block>small{color:var(--muted)}.dc-stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;border-bottom:1px solid var(--border)}.dc-stat-grid article,.dc-stat-grid a{display:grid;gap:4px;padding:15px 20px;border-right:1px solid var(--border);text-decoration:none;color:var(--text);background:#fff}.dc-stat-grid>*:last-child{border-right:0}.dc-stat-grid a:hover{background:#f4f8ff}.dc-stat-grid span{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:750}.dc-stat-grid strong{font-size:20px}.dc-room-list{padding:18px 22px}.dc-room-list-head{display:flex;justify-content:space-between;margin-bottom:10px}.dc-room-list-head span{color:var(--muted);font-size:11px}.dc-room-row{display:grid;grid-template-columns:minmax(130px,.5fr) minmax(260px,1.5fr) auto;align-items:center;gap:16px;padding:12px 0;border-top:1px solid var(--border)}.dc-room-row>div:first-child span{display:block;margin-top:3px;color:var(--muted);font-size:11px}.dc-room-racks{display:flex;flex-wrap:wrap;gap:6px}.dc-room-racks a,.dc-room-racks span{padding:5px 8px;border-radius:7px;background:#f1f5f9;color:#475569;font-size:11px;text-decoration:none}.dc-room-racks a:hover{background:#e4edfb;color:#155eef}.rack-occupant.panel{background:#dcfce7;color:#15803d}.rack-lower-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.rack-elevation-head span{color:var(--muted);font-size:11px}.patch-panel-card .panel-heading small{line-height:1.5}
@media(max-width:1100px){.dc-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dc-stat-grid>*{border-bottom:1px solid var(--border)}.rack-lower-grid{grid-template-columns:1fr 1fr}.dc-room-row{grid-template-columns:1fr}.dc-room-row .resource-actions{justify-content:flex-start}}
@media(max-width:720px){.dc-card-header,.dc-address-block{align-items:flex-start;flex-direction:column}.dc-stat-grid{grid-template-columns:1fr 1fr}.rack-lower-grid{grid-template-columns:1fr}}
.dc-physical-references{border-top:1px solid var(--border);background:#fbfdff}.dc-physical-references summary{cursor:pointer;padding:13px 22px;color:#475569;font-weight:750;font-size:12px}.dc-reference-list{display:grid;gap:8px;padding:0 22px 18px}.dc-reference-list article{display:grid;grid-template-columns:minmax(180px,.5fr) minmax(0,1.5fr);gap:14px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:#fff}.dc-reference-list article>div:first-child span{display:block;margin-top:3px;color:var(--muted);font-size:10px}.dc-reference-ports{display:flex;flex-wrap:wrap;gap:6px}.dc-port-ref{display:inline-flex;align-items:center;gap:5px;padding:5px 7px;border-radius:7px;background:#f1f5f9;font-size:10px}.dc-port-ref a{font-weight:750}@media(max-width:720px){.dc-reference-list article{grid-template-columns:1fr}}

/* 10.5.0 compact inventory, country groups, history and service labels */
.service-type.colocation{background:#e0f2fe;color:#075985}.service-dc-icon-wrap{background:transparent!important;border:0!important}.service-dc-icon{display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 10px;border-radius:18px;background:#155eef;color:#fff;border:2px solid #fff;box-shadow:0 2px 9px rgba(15,23,42,.25);font:800 11px ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap}.compact-heading{margin-bottom:14px}.compact-section{padding:16px 18px;margin-bottom:14px}.compact-table td,.compact-table th{padding:10px 12px}.button.small{padding:6px 9px;font-size:11px}.compact-resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.compact-details{overflow:hidden}.compact-details>summary,.country-group>summary,.compact-dc-row>summary,.nested-details>summary{cursor:pointer;list-style:none}.compact-details>summary::-webkit-details-marker,.country-group>summary::-webkit-details-marker,.compact-dc-row>summary::-webkit-details-marker,.nested-details>summary::-webkit-details-marker{display:none}.compact-details>summary{display:flex;align-items:center;justify-content:space-between;padding:14px 16px}.compact-details[open]>summary{border-bottom:1px solid var(--border)}.compact-details>.resource-list,.history-list{padding:8px 14px 14px}.history-list article{display:grid;grid-template-columns:12px 1fr auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--border)}.history-list article:last-child{border-bottom:0}.history-list span{display:block;color:var(--muted);font-size:11px}.history-dot{width:9px;height:9px;border-radius:50%;background:#94a3b8}.history-dot.created{background:#16a34a}.history-dot.deleted{background:#dc2626}.country-group{padding:0;margin-bottom:12px}.country-group>summary{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;background:#fff}.country-title{display:flex;gap:11px;align-items:center}.country-title small{display:block;color:var(--muted);margin-top:2px}.country-flag{font-size:22px}.compact-dc-list{border-top:1px solid var(--border)}.compact-dc-row{border-bottom:1px solid var(--border)}.compact-dc-row:last-child{border-bottom:0}.compact-dc-row>summary{display:grid;grid-template-columns:auto minmax(250px,1fr) auto auto;gap:14px;align-items:center;padding:12px 16px}.dc-code.compact{min-width:58px;min-height:32px;font-size:11px;box-shadow:none}.dc-main small{display:block;color:var(--muted);margin-top:2px}.dc-inline-stats{display:flex;gap:10px;font-size:11px}.dc-inline-stats a{text-decoration:none}.dc-expanded{padding:0 16px 14px;background:#fbfdff;border-top:1px solid var(--border)}.dc-expanded-head{display:flex;justify-content:space-between;align-items:center;padding:12px 0}.dc-expanded-head>div:first-child{display:flex;gap:14px;color:var(--muted);font-size:11px}.dc-stat-grid.compact{border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-bottom:10px}.dc-stat-grid.compact article,.dc-stat-grid.compact a{padding:9px 12px}.dc-stat-grid.compact strong{font-size:16px}.nested-details{border-top:1px solid var(--border)}.nested-details>summary{padding:10px 2px;font-weight:700}.nested-details[open]>summary{color:#155eef}.partner-metrics{margin-bottom:14px}@media(max-width:900px){.compact-resource-grid{grid-template-columns:1fr}.compact-dc-row>summary{grid-template-columns:auto 1fr}.dc-inline-stats,.compact-dc-row>summary>.status-dot{grid-column:2}.dc-expanded-head{align-items:flex-start;gap:12px;flex-direction:column}}

/* 10.6.0 compact global UI and automation audit */
.portal-shell{grid-template-columns:218px minmax(0,1fr)}
.portal-brand{min-height:64px;padding:11px 15px}.portal-brand>span:last-child strong{font-size:18px}.portal-brand>span:last-child small{font-size:9px}
.portal-nav{padding:12px 8px}.portal-nav-group{gap:2px;margin-bottom:14px}.portal-nav-group>span{margin:0 7px 5px;font-size:9px}.portal-nav a{min-height:36px;padding:7px 9px;font-size:12px;gap:8px}.portal-nav a b{width:18px;height:18px;font-size:15px}
.portal-topbar{min-height:64px;padding:9px 20px}.portal-workspace .app-main{padding:20px 20px 48px}
.page-heading{margin-bottom:16px;gap:16px}.page-heading h1,.page-heading h2{margin-bottom:5px}.page-heading p{font-size:12px}.eyebrow{margin-bottom:5px;font-size:10px}
h2{font-size:clamp(23px,2.5vw,30px)}h3{font-size:16px}
.surface,.card,.empty{border-radius:10px}.compact-section,.child-panel{padding:13px 15px;margin-bottom:12px}.panel-heading{margin-bottom:9px}
th,td{padding:10px 12px}.data-table th,.compact-table th{font-size:10px}.row-note{font-size:11px}
.button,button,.icon-button{min-height:32px;padding:6px 10px;border-radius:7px;font-size:12px}.actions.compact .button,.actions.compact button{min-height:28px;padding:5px 8px;font-size:11px}
.form-grid{gap:14px 18px;padding:18px}.form-grid label>span{margin-bottom:5px;font-size:12px}.form-grid input[type="text"],.form-grid input:not([type]),.form-grid input[type="number"],.form-grid input[type="email"],.form-grid input[type="date"],.form-grid input[type="password"],.form-grid select,.form-grid textarea{padding:8px 9px}.form-grid small{font-size:11px}
.form-section-title{padding-top:4px}.form-section-title h3{margin-bottom:2px}.sticky-actions{padding:12px 0 0}.notice{padding:9px 12px;margin-bottom:12px;font-size:12px}
.service-hero{padding:16px 18px;margin-bottom:12px}.service-hero h2{font-size:clamp(24px,2.5vw,32px)}.service-hero-meta{margin-top:8px}.service-metrics,.service-traffic-panel{margin-bottom:12px}.service-identity-panel{margin-bottom:12px}.service-identity-panel>div{padding:12px}.service-child-grid{gap:12px}.child-panel{min-height:0}.metric-card{padding:13px 14px}.metric-value{font-size:16px}
.rack-inventory-list,.panel-inventory-grid,.datacenter-card-grid{gap:12px}.rack-inventory-card,.patch-panel-card{padding:14px}.rack-elevation-grid,.rack-lower-grid{gap:12px}.rack-u-row{min-height:24px}.dc-card-header{padding:14px 16px}.dc-address-block{padding:10px 16px}.dc-stat-grid article,.dc-stat-grid a{padding:10px 14px}.dc-room-list{padding:12px 16px}.dc-room-row{padding:9px 0}
.country-group{margin-bottom:8px}.country-group>summary{padding:10px 13px}.compact-dc-row>summary{padding:9px 13px}.dc-expanded{padding:0 13px 10px}.compact-details>summary{padding:10px 13px}.compact-details>.resource-list,.history-list{padding:6px 12px 10px}
.compact-form{max-width:1050px}
.automation-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.automation-summary{padding:12px 14px}.automation-summary span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:750}.automation-summary strong{display:block;margin-top:4px;font-size:14px;overflow-wrap:anywhere}
.automation-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:0!important;overflow:hidden}.automation-step{display:flex;align-items:center;gap:10px;padding:12px 14px;border-right:1px solid var(--border);background:#fff}.automation-step:last-child{border-right:0}.automation-step b{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#eef2f6;color:#64748b}.automation-step span strong,.automation-step span small{display:block}.automation-step span small{color:var(--muted);font-size:10px;margin-top:1px}.automation-step.active b{background:var(--primary-soft);color:var(--primary)}.automation-step.done b{background:var(--success-soft);color:var(--success)}
.automation-actions{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 12px}.automation-actions form{margin:0}
.automation-diff-panel{padding:0!important;overflow:hidden}.automation-diff-panel>.panel-heading{padding:11px 14px;margin:0;border-bottom:1px solid var(--border)}.diff-view{max-height:520px;overflow:auto;background:#0c1525;color:#dbe7f5;font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.diff-line{display:grid;grid-template-columns:24px 1fr;min-height:22px;border-bottom:1px solid rgba(255,255,255,.025)}.diff-line b{display:grid;place-items:center;user-select:none}.diff-line code{padding:2px 9px;white-space:pre-wrap;overflow-wrap:anywhere;font:inherit}.diff-line.add{background:rgba(22,163,74,.14)}.diff-line.add b{color:#6ee7a1}.diff-line.remove{background:rgba(220,38,38,.15)}.diff-line.remove b{color:#ff8e8e}.diff-line.same{color:#8fa4bc}
.automation-config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.automation-config-grid .compact-details{margin:0}.config-block{margin:0;padding:12px 14px;max-height:430px;overflow:auto;background:#0c1525;color:#dbe7f5;font:11px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;border-radius:0 0 9px 9px;white-space:pre-wrap}
@media(max-width:1000px){.portal-shell{grid-template-columns:195px minmax(0,1fr)}.automation-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.automation-config-grid{grid-template-columns:1fr}}
@media(max-width:760px){.automation-flow{grid-template-columns:1fr}.automation-step{border-right:0;border-bottom:1px solid var(--border)}.automation-step:last-child{border-bottom:0}.automation-summary-grid{grid-template-columns:1fr}}

/* 10.8.0 compact inventory, service-centric routing policy and learned automation target */
.compact-inventory-list{display:grid;gap:8px}.compact-inventory-item{padding:0;overflow:hidden}.compact-inventory-item>summary{display:grid;grid-template-columns:minmax(260px,1.4fr) minmax(220px,.9fr) auto;gap:14px;align-items:center;padding:10px 13px;cursor:pointer;list-style:none}.compact-inventory-item>summary::-webkit-details-marker{display:none}.compact-inventory-item[open]>summary{border-bottom:1px solid var(--border);background:#fbfdff}.inventory-primary{display:grid;gap:2px;min-width:0}.inventory-primary strong{font-size:14px}.inventory-primary>span:last-child{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inventory-stats{display:flex;justify-content:flex-end;gap:12px;color:var(--muted);font-size:11px}.inventory-stats strong{color:var(--text)}.inventory-summary-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}.compact-inventory-body{padding:11px 13px 13px}.compact-note{margin:0 0 10px;color:var(--muted);font-size:11px}.compact-rack-elevations{margin-top:2px}.compact-rack-resources{margin-top:10px}.compact-rack-resources .nested-details{border:1px solid var(--border);border-radius:8px;overflow:hidden}.compact-rack-resources .nested-details>summary{padding:8px 10px}.compact-rack-resources .resource-list{padding:0 9px 8px}.mount-device-details{margin-top:10px;border:1px solid var(--border);border-radius:8px}.mount-device-details>summary{padding:8px 10px}.compact-mount-form{padding:8px 10px;margin:0;border:0;background:#fbfdff}.compact-port-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:7px}.compact-port-card{padding:9px 10px;min-height:0}.port-card-line{display:flex;align-items:center;justify-content:space-between;gap:8px}.port-meta{display:grid;gap:2px;margin:5px 0;font-size:10px;color:var(--muted)}.compact-filter-bar{padding:9px 11px;margin-bottom:9px}.ipam-compact-pool>summary{grid-template-columns:minmax(300px,1.3fr) minmax(230px,.8fr) auto}.ipam-summary-usage{display:grid;gap:5px}.ipam-summary-usage small{color:var(--muted)}.compact-footer-actions{display:flex;justify-content:flex-end;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}
.policy-service-list{display:grid;gap:8px}.policy-service-row{padding:0;overflow:hidden}.policy-service-row>summary{display:grid;grid-template-columns:minmax(210px,.8fr) minmax(240px,1fr) minmax(260px,1fr) auto;align-items:center;gap:14px;padding:11px 13px;cursor:pointer;list-style:none}.policy-service-row>summary::-webkit-details-marker{display:none}.policy-service-row[open]>summary{border-bottom:1px solid var(--border);background:#fbfdff}.policy-service-id{font-weight:800}.policy-summary-cell{display:grid;gap:2px}.label-mini{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-weight:800}.policy-service-expanded{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:10px 12px 12px}.policy-direction-card{border:1px solid var(--border);border-radius:8px;padding:11px;background:#fff}.policy-direction-card .panel-heading{margin-bottom:8px}.policy-direction-card h3{font-size:14px}.policy-definition{gap:7px}.policy-definition div{padding:8px 9px}.compact-endpoints{margin:8px 0}.legacy-policy-section{margin-top:10px}.automation-target-list{border:1px solid var(--border);border-radius:8px;padding:9px 10px;background:#fbfdff}.automation-target-list>strong{display:block;margin-bottom:6px}.compact-list{display:grid;gap:4px}.compact-list-row{display:grid;grid-template-columns:170px minmax(220px,1fr) auto minmax(240px,1.1fr);gap:8px;align-items:center;padding:5px 0;border-top:1px solid var(--border);font-size:11px}.compact-list-row:first-child{border-top:0}.compact-list-row small{color:var(--muted)}
@media(max-width:1000px){.compact-inventory-item>summary,.ipam-compact-pool>summary,.policy-service-row>summary{grid-template-columns:1fr auto}.inventory-stats,.ipam-summary-usage,.policy-summary-cell{grid-column:1/-1;justify-content:flex-start}.policy-service-expanded{grid-template-columns:1fr}.compact-list-row{grid-template-columns:1fr 1fr}.compact-list-row small{grid-column:1/-1}}
@media(max-width:650px){.compact-inventory-item>summary,.ipam-compact-pool>summary,.policy-service-row>summary{grid-template-columns:1fr}.inventory-summary-actions{justify-content:flex-start}.inventory-stats{flex-wrap:wrap}.compact-list-row{grid-template-columns:1fr}.compact-rack-elevations{grid-template-columns:1fr}}

/* 10.9.0 automation attention badges */
.portal-top-actions{display:flex;align-items:center;gap:12px}.automation-bell{position:relative;display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(255,255,255,.14);border-radius:9px;color:#dbe7f5;background:rgba(255,255,255,.04);font-size:18px}.automation-bell:hover{background:rgba(255,255,255,.1);color:#fff}.automation-count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#e5484d;color:#fff;font-size:10px;font-weight:800;line-height:1}.automation-bell .automation-count{position:absolute;top:-6px;right:-6px;border:2px solid #07182a}.portal-nav a .automation-count{margin-left:auto}.automation-attention-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}.automation-attention-card{padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:#fff}.automation-attention-card strong{display:block;font-size:18px}.automation-attention-card span{color:var(--muted);font-size:11px}.job-trigger{max-width:320px}@media(max-width:900px){.automation-attention-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 10.9.2 automation grouping + draft controls */
.automation-device-groups{display:grid;gap:10px}.automation-device-group{overflow:hidden}.automation-device-group>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;cursor:pointer;list-style:none}.automation-device-group>summary::-webkit-details-marker{display:none}.automation-device-group[open]>summary{border-bottom:1px solid var(--border);background:#fbfdff}.automation-device-title{display:flex;align-items:center;gap:10px;min-width:0}.automation-device-title small{display:block;margin-top:2px;color:var(--muted)}.device-glyph{display:grid;place-items:center;width:29px;height:29px;border-radius:8px;background:#e8f0ff;color:#155eef;font-weight:850;font-size:12px}.automation-device-stats{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:11px}.automation-device-stats .chevron{font-size:16px;transition:transform .15s}.automation-device-group[open] .chevron{transform:rotate(180deg)}.automation-device-table{border:0;border-radius:0;box-shadow:none}.automation-job-settings{padding-bottom:12px}.automation-mode-form{display:flex;align-items:end;gap:9px}.automation-mode-form label{min-width:340px}.automation-desired-editor>form{padding:12px 14px 14px}.editor-help{padding:9px 10px;margin-bottom:8px;border:1px solid var(--border);border-radius:8px;background:#fbfdff;color:var(--muted);font-size:11px;line-height:1.45}.automation-config-editor{display:block;width:100%;min-height:420px;resize:vertical;border:1px solid #26364a;border-radius:8px;background:#0c1525;color:#dbe7f5;padding:12px 14px;font:11px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;tab-size:3}.automation-config-editor:focus{outline:2px solid rgba(21,94,239,.3);border-color:#3b82f6}.automation-desired-editor .form-actions{margin-top:9px;display:flex;align-items:center;gap:10px}@media(max-width:760px){.automation-device-group>summary{align-items:flex-start;flex-direction:column}.automation-device-stats{width:100%;flex-wrap:wrap}.automation-mode-form{align-items:stretch;flex-direction:column}.automation-mode-form label{min-width:0}.automation-config-editor{min-height:320px}}

/* 10.11.0 device country grouping and telemetry */
.device-country-group{margin-bottom:24px}.device-country-heading{margin-bottom:10px}.device-country-heading>div{display:flex;align-items:center;gap:10px}.device-country-heading h3{margin:1px 0 0}.interface-addresses{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}.interface-addresses .badge{font-size:10px}.dom-values{display:flex;gap:7px;flex-wrap:wrap;margin-top:6px}.dom-values span{font-size:10px;color:var(--muted);padding:3px 6px;border:1px solid var(--border);border-radius:6px;background:var(--surface-alt)}
.dom-sensor-details{margin-top:6px;font-size:10px}.dom-sensor-details summary{cursor:pointer;color:var(--link);font-weight:700}.dom-sensor-details .row-note{margin-top:3px}

/* 10.12.1 upstream billing and reconciliation layout */
.upstream-commercial-metrics{margin-bottom:12px}
.upstream-section,.upstream-billing-panel,.upstream-traffic-section{margin-bottom:12px;overflow:hidden}
.upstream-section{padding:0}
.upstream-section>.panel-heading,.upstream-billing-panel>.panel-heading{padding:13px 15px;margin:0;border-bottom:1px solid var(--border);background:#fbfdff}
.upstream-section>.panel-heading small,.upstream-billing-panel>.panel-heading small{display:block;margin-top:3px;max-width:900px;color:var(--muted);line-height:1.45}
.upstream-table-wrap{border:0;border-radius:0;box-shadow:none}
.upstream-table-wrap table{margin:0}
.upstream-table-wrap th,.upstream-table-wrap td{padding:9px 12px;vertical-align:middle}
.upstream-suggestion-table th:last-child,.upstream-suggestion-table td:last-child{width:245px}
.upstream-suggestion-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;white-space:nowrap}
.upstream-suggestion-actions form{display:flex;align-items:center;gap:6px;margin:0}
.upstream-suggestion-actions select{min-width:96px;height:30px;padding:4px 26px 4px 8px;font-size:11px}
.upstream-suggestion-actions .button.small{height:30px;padding:5px 9px}
.upstream-section-empty{margin:0;border:0;border-radius:0;box-shadow:none;padding:18px 15px}
.upstream-ignored-suggestions{border-top:1px solid var(--border);border-radius:0}
.upstream-ignored-suggestions>summary{padding:10px 15px;background:#fbfdff}
.upstream-ignored-suggestions>summary span:first-child small{display:block;margin-top:2px;color:var(--muted);font-weight:400}
.upstream-billing-panel{padding:0}
.upstream-billing-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0}
.upstream-billing-metrics .metric-card{border:0;border-right:1px solid var(--border);border-radius:0;box-shadow:none;padding:13px 15px}
.upstream-billing-metrics .metric-card:last-child{border-right:0}
.upstream-billing-metrics .warning-metric{background:#fffaf0}
.upstream-billing-breakdown{border-top:1px solid var(--border);border-radius:0}
.upstream-billing-breakdown>summary{padding:10px 15px;background:#fbfdff}
.upstream-billing-breakdown>summary span:first-child small{display:block;margin-top:2px;color:var(--muted);font-weight:400}
.compact-notice{margin:0;border-radius:0;border-left:0;border-right:0;border-bottom:0}
.upstream-ports-panel .actions.compact{justify-content:flex-end;white-space:nowrap}
.upstream-ports-panel .danger.small{padding:6px 9px;font-size:11px}
.upstream-danger-zone{margin-top:12px}
@media(max-width:1100px){.upstream-billing-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.upstream-billing-metrics .metric-card:nth-child(2){border-right:0}.upstream-billing-metrics .metric-card:nth-child(-n+2){border-bottom:1px solid var(--border)}}
@media(max-width:760px){.upstream-billing-metrics{grid-template-columns:1fr}.upstream-billing-metrics .metric-card{border-right:0;border-bottom:1px solid var(--border)}.upstream-billing-metrics .metric-card:last-child{border-bottom:0}.upstream-suggestion-actions{align-items:stretch;flex-direction:column}.upstream-suggestion-actions form{width:100%}.upstream-suggestion-actions select{flex:1}.upstream-suggestion-table th:last-child,.upstream-suggestion-table td:last-child{width:auto}}

/* v10.12.2 service creation wizard */
.service-create-wizard{overflow:hidden;padding:0}.service-type-choice-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.service-type-choice{position:relative;display:flex;align-items:center;gap:10px;min-height:82px;padding:13px;border:1px solid var(--border);border-radius:10px;background:#fff;cursor:pointer}.service-type-choice:hover{border-color:#9fb9ed;background:#fbfdff}.service-type-choice input{position:absolute;opacity:0;pointer-events:none}.service-type-choice:has(input:checked){border-color:#155eef;box-shadow:0 0 0 2px rgba(21,94,239,.12);background:#f7faff}.service-choice-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:10px;background:#edf3ff;color:#155eef;font-weight:900;font-size:19px}.service-type-choice.dia .service-choice-icon{background:#eaf8f1;color:#087443}.service-type-choice.l2vpn .service-choice-icon{background:#f4ebff;color:#6b21a8}.service-type-choice.ix .service-choice-icon{background:#fff4e5;color:#9a5200}.service-type-choice.colocation .service-choice-icon{background:#e0f2fe;color:#075985}.service-choice-copy{min-width:0}.service-choice-copy strong,.service-choice-copy small{display:block}.service-choice-copy small{margin-top:3px;color:var(--muted);font-size:10px;line-height:1.35}.service-choice-check{position:absolute;right:9px;top:8px;display:none;color:#155eef;font-weight:900}.service-type-choice:has(input:checked) .service-choice-check{display:block}.service-type-locked{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:#fbfdff}.service-type-locked strong,.service-type-locked small{display:block}.service-type-locked small{margin-top:2px;color:var(--muted)}.billing-model-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.billing-model-choice{position:relative;display:block;padding:13px 14px;border:1px solid var(--border);border-radius:10px;background:#fff;cursor:pointer}.billing-model-choice input{position:absolute;right:12px;top:13px}.billing-model-choice strong,.billing-model-choice small{display:block;padding-right:24px}.billing-model-choice small{margin-top:4px;color:var(--muted);font-size:10px;line-height:1.4}.billing-model-choice:has(input:checked){border-color:#155eef;background:#f7faff;box-shadow:0 0 0 2px rgba(21,94,239,.1)}.billing-model-choice:has(input:disabled){opacity:.55;cursor:not-allowed}.commercial-context{margin:0 0 12px}.commercial-fields{margin-top:10px}.service-create-wizard [hidden]{display:none!important}.service-create-wizard .wizard-section:last-of-type{border-bottom:0}
@media(max-width:1100px){.service-type-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.service-type-choice-grid,.billing-model-grid{grid-template-columns:1fr}}

/* v10.12.2 upstream aggregate/member telemetry */
.upstream-commercial-metrics .important-metric{background:#f7faff;border-color:#b7caf5}.upstream-commercial-metrics .important-metric strong{font-size:20px}.member-traffic-line{fill:none;stroke-width:1.25;opacity:.42;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}.member-traffic-line.member-tx{stroke-dasharray:4 4}.member-traffic-line.member-0,.member-port-key.member-0{stroke:#7c3aed;background:#7c3aed}.member-traffic-line.member-1,.member-port-key.member-1{stroke:#c2410c;background:#c2410c}.member-traffic-line.member-2,.member-port-key.member-2{stroke:#0891b2;background:#0891b2}.member-traffic-line.member-3,.member-port-key.member-3{stroke:#be185d;background:#be185d}.member-traffic-line.member-4,.member-port-key.member-4{stroke:#4d7c0f;background:#4d7c0f}.member-traffic-line.member-5,.member-port-key.member-5{stroke:#b45309;background:#b45309}.member-traffic-line.member-6,.member-port-key.member-6{stroke:#475569;background:#475569}.member-traffic-line.member-7,.member-port-key.member-7{stroke:#0f766e;background:#0f766e}.upstream-member-traffic{margin-top:12px;border:1px solid var(--border);border-radius:9px}.upstream-member-traffic>summary{background:#fbfdff}.member-port-key{display:inline-block;width:10px;height:10px;margin-right:7px;border-radius:50%;vertical-align:middle}

/* v10.12.3 upstream traffic share visualizations */
.upstream-overview-share{margin-bottom:12px;overflow:hidden;padding:0}.upstream-overview-share>.panel-heading{padding:13px 15px;margin:0;border-bottom:1px solid var(--border);background:#fbfdff}.upstream-overview-share>.panel-heading small{display:block;margin-top:3px;color:var(--muted)}
.traffic-share-card{margin-top:12px;border:1px solid var(--border);border-radius:9px;background:#fbfdff;padding:12px 14px}.traffic-share-heading h4{margin:2px 0 0;font-size:13px}.traffic-share-heading small{display:block;margin-top:3px;color:var(--muted)}
.traffic-share-layout{display:grid;grid-template-columns:160px minmax(0,1fr);align-items:center;gap:18px;padding:12px 0 0}.upstream-overview-share .traffic-share-layout{padding:14px 16px 16px}.overview-share-layout{grid-template-columns:190px minmax(0,1fr)}
.traffic-donut-wrap{position:relative;width:138px;height:138px;margin:auto}.overview-donut-wrap{width:164px;height:164px}.traffic-donut{display:block;width:100%;height:100%;overflow:visible}.traffic-donut-track{fill:none;stroke:#e8edf5;stroke-width:7}.traffic-donut-segment{fill:none;stroke-width:7;stroke-linecap:butt;transition:opacity .15s}.traffic-donut-total{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;pointer-events:none}.traffic-donut-total strong{font-size:14px}.traffic-donut-total span{margin-top:2px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.04em}
.traffic-share-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px}.overview-share-legend{grid-template-columns:repeat(3,minmax(0,1fr))}.traffic-share-row{display:grid;grid-template-columns:11px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:8px 9px;border:1px solid var(--border);border-radius:8px;background:#fff;color:inherit;text-decoration:none}.traffic-share-row:hover{border-color:#b7caf5;background:#f8fbff}.traffic-share-row>div:nth-child(2){min-width:0}.traffic-share-row strong,.traffic-share-row small{display:block}.traffic-share-row small{margin-top:2px;color:var(--muted);font-size:10px;white-space:normal}.traffic-share-values{text-align:right;white-space:nowrap}.traffic-share-values strong{font-size:12px}.traffic-share-key{width:10px;height:10px;border-radius:50%}
.traffic-donut-segment.pie-0{stroke:#7c3aed}.traffic-share-key.pie-0{background:#7c3aed}.traffic-donut-segment.pie-1{stroke:#c2410c}.traffic-share-key.pie-1{background:#c2410c}.traffic-donut-segment.pie-2{stroke:#0891b2}.traffic-share-key.pie-2{background:#0891b2}.traffic-donut-segment.pie-3{stroke:#be185d}.traffic-share-key.pie-3{background:#be185d}.traffic-donut-segment.pie-4{stroke:#4d7c0f}.traffic-share-key.pie-4{background:#4d7c0f}.traffic-donut-segment.pie-5{stroke:#b45309}.traffic-share-key.pie-5{background:#b45309}.traffic-donut-segment.pie-6{stroke:#475569}.traffic-share-key.pie-6{background:#475569}.traffic-donut-segment.pie-7{stroke:#0f766e}.traffic-share-key.pie-7{background:#0f766e}
@media(max-width:1100px){.overview-share-legend{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.traffic-share-layout,.overview-share-layout{grid-template-columns:1fr}.traffic-share-legend,.overview-share-legend{grid-template-columns:1fr}.traffic-donut-wrap,.overview-donut-wrap{width:138px;height:138px}}
/* v10.13.0 commercial dashboards and sFlow */
.sflow-protocol-grid{display:grid;gap:9px;padding:14px}.sflow-protocol-row{display:grid;grid-template-columns:110px minmax(120px,1fr) 54px;align-items:center;gap:12px}.sflow-protocol-row small{display:block;color:var(--muted);font-size:10px}.sflow-protocol-track{height:10px;border-radius:999px;background:#e8edf5;overflow:hidden}.sflow-protocol-track span{display:block;height:100%;background:var(--primary,#2563eb);border-radius:inherit}.revenue-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}.revenue-share-panel{min-width:0}.service-category-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:12px 0}.service-category-card{text-decoration:none;color:inherit}.service-category-card strong{display:block;font-size:20px}.service-category-card small{display:block;color:var(--muted);margin-top:4px}@media(max-width:1000px){.service-category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.revenue-dashboard-grid{grid-template-columns:1fr}}@media(max-width:650px){.service-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sflow-protocol-row{grid-template-columns:90px minmax(80px,1fr) 48px}}

/* v10.14.0 customer dashboard layout + routing-aware sFlow */
.customer-overview-metrics{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:12px}
.revenue-dashboard-grid{align-items:stretch}
.revenue-share-panel{overflow:hidden;padding:0}
.revenue-share-panel>.panel-heading{padding:13px 15px;margin:0;border-bottom:1px solid var(--border);background:#fbfdff}
.revenue-share-panel>.panel-heading small{display:block;margin-top:3px;color:var(--muted)}
.revenue-share-panel .traffic-share-layout{grid-template-columns:132px minmax(0,1fr);gap:14px;padding:14px 15px 15px}
.revenue-share-panel .traffic-donut-wrap{width:112px;height:112px}
.revenue-share-panel .traffic-share-legend{grid-template-columns:1fr;align-self:stretch}
.revenue-share-panel .traffic-share-row{width:100%}
.revenue-share-panel .traffic-donut-total strong{font-size:12px}
.partner-list{gap:12px}
.partner-overview-head{padding:14px 16px;align-items:center}
.partner-overview-head h3{font-size:17px}
.partner-services-table th,.partner-services-table td{padding-top:11px;padding-bottom:11px}
.partner-services-empty{padding:16px}

.sflow-overview-filter{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:14px 15px;margin-bottom:12px}
.sflow-filter-form{display:grid;grid-template-columns:minmax(260px,1fr) 160px auto;gap:10px;align-items:end;flex:1}
.sflow-filter-form label>span{display:block;margin-bottom:5px;color:#344054;font-size:11px;font-weight:700}
.sflow-filter-form select{width:100%;min-height:36px;border:1px solid var(--border-strong);border-radius:8px;background:#fff;padding:7px 10px;font:inherit;color:var(--text)}
.sflow-scope-note{text-align:right;white-space:nowrap}.sflow-scope-note strong,.sflow-scope-note span{display:block}.sflow-scope-note span{margin-top:2px;color:var(--muted);font-size:11px}
.sflow-metrics{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:12px}.sflow-metrics .metric-card{padding:13px 14px}.sflow-metrics .metric-card strong{font-size:18px}
.sflow-home-note{margin-bottom:12px}.sflow-home-note>span:first-child{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.sflow-home-note>span:last-child{max-width:720px;text-align:right;color:var(--muted);font-size:11px}
.sflow-flow-panel,.sflow-enabled-panel{overflow:hidden;padding:0;margin-bottom:12px}.sflow-flow-panel>.panel-heading,.sflow-enabled-panel>.panel-heading{padding:13px 15px;margin:0;border-bottom:1px solid var(--border);background:#fbfdff}.sflow-flow-panel>.panel-heading small,.sflow-enabled-panel>.panel-heading small{display:block;margin-top:3px;color:var(--muted)}
.no-shadow{box-shadow:none;border:0;border-radius:0}.sflow-flow-table td{vertical-align:middle}.sflow-flow-table .home-asn{color:var(--success);font-weight:800}.sflow-flow-table th:nth-child(3),.sflow-flow-table th:nth-child(4){min-width:170px}.sflow-flow-table th:nth-child(5){min-width:190px}
.compact-empty{min-height:120px;padding:24px;border:0;border-radius:0;box-shadow:none}.compact-empty h3{font-size:15px}.compact-empty p{margin:0;color:var(--muted)}
.sflow-enabled-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px 14px}.sflow-enabled-port{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;border:1px solid var(--border);border-radius:8px;background:#fff;color:inherit}.sflow-enabled-port:hover{background:#f8fbff;border-color:#b7caf5}.sflow-enabled-port strong,.sflow-enabled-port small{display:block}.sflow-enabled-port small{margin-top:2px;color:var(--muted);font-size:10px}.sflow-enabled-port>span{color:var(--primary);font-weight:700;white-space:nowrap}
@media(max-width:1200px){.sflow-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.sflow-enabled-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.customer-overview-metrics{grid-template-columns:1fr}.sflow-overview-filter{align-items:stretch;flex-direction:column}.sflow-filter-form{grid-template-columns:1fr 1fr auto;width:100%}.sflow-scope-note{text-align:left}.sflow-home-note{align-items:flex-start;flex-direction:column}.sflow-home-note>span:last-child{text-align:left}.sflow-enabled-grid{grid-template-columns:1fr}}
@media(max-width:650px){.sflow-filter-form{grid-template-columns:1fr}.sflow-metrics{grid-template-columns:1fr}.revenue-share-panel .traffic-share-layout{grid-template-columns:1fr}.revenue-share-panel .traffic-donut-wrap{width:118px;height:118px}}

/* v10.14.1 top-ASN sFlow overview and drill-down */
.sflow-global-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px}
.sflow-asn-panel,.sflow-uplinks-panel,.sflow-asn-detail-panel{overflow:hidden;padding:0;margin-bottom:12px}
.sflow-asn-panel>.panel-heading,.sflow-uplinks-panel>.panel-heading,.sflow-asn-detail-panel>.panel-heading{padding:13px 15px;margin:0;border-bottom:1px solid var(--border);background:#fbfdff}
.sflow-asn-panel>.panel-heading small,.sflow-uplinks-panel>.panel-heading small,.sflow-asn-detail-panel>.panel-heading small{display:block;margin-top:3px;color:var(--muted)}
.sflow-asn-table td:nth-child(2),.sflow-asn-table th:nth-child(2){text-align:right}.sflow-asn-link{font-weight:800}.sflow-asn-link:hover{text-decoration:underline}.home-asn{color:var(--success)!important;font-weight:800}
.sflow-uplink-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px 14px}
.sflow-uplink-card{border:1px solid var(--border);border-radius:9px;background:#fff;overflow:hidden}
.sflow-uplink-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--border);background:#fbfdff}.sflow-uplink-card>header strong,.sflow-uplink-card>header small{display:block}.sflow-uplink-card>header small{margin-top:3px;color:var(--muted);font-size:10px}
.sflow-uplink-sides{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.sflow-uplink-sides>div{padding:10px 12px}.sflow-uplink-sides>div+div{border-left:1px solid var(--border)}
.sflow-side-title{display:block;margin-bottom:6px;color:#475467;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.sflow-rank-list{list-style:none;padding:0;margin:0;display:grid;gap:4px}.sflow-rank-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 0;border-bottom:1px dashed #e7edf5}.sflow-rank-list li:last-child{border-bottom:0}.sflow-rank-list a{font-weight:700}.sflow-rank-list strong{white-space:nowrap;font-size:11px}
.sflow-asn-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:12px}.sflow-asn-filter{grid-template-columns:minmax(180px,260px) auto;max-width:430px}.sflow-asn-detail-panel .data-table td{vertical-align:middle}
@media(max-width:1100px){.sflow-uplink-grid{grid-template-columns:1fr}.sflow-asn-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.sflow-global-grid{grid-template-columns:1fr}.sflow-uplink-sides{grid-template-columns:1fr}.sflow-uplink-sides>div+div{border-left:0;border-top:1px solid var(--border)}.sflow-asn-metrics{grid-template-columns:1fr}.sflow-asn-filter{grid-template-columns:1fr;max-width:none}}

/* v10.14.2 ASN names, Upstream aggregation and min/last/max rate ranking */
.sflow-filter-form-wide{grid-template-columns:minmax(240px,1fr) 150px 160px auto}
.sflow-asn-filter-wide{grid-template-columns:minmax(170px,220px) minmax(170px,220px) auto;max-width:620px}
.sflow-rate-table th,.sflow-rate-table td{white-space:nowrap}.sflow-rate-table th:first-child,.sflow-rate-table td:first-child{white-space:normal;min-width:190px}.sflow-rate-table th:nth-child(2),.sflow-rate-table td:nth-child(2){white-space:normal;min-width:120px}
.sflow-asn-identity{display:block;color:inherit;text-decoration:none;min-width:0}.sflow-asn-identity strong,.sflow-asn-identity small{display:block}.sflow-asn-identity small{margin-top:2px;color:var(--muted);font-size:10px;font-weight:500;white-space:normal}.sflow-asn-identity:hover strong{text-decoration:underline}
.rate-sort-active{background:var(--primary-soft,#eef4ff);color:var(--primary,#2563eb);font-weight:800}
.sflow-upstream-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px 14px}.sflow-upstream-card{min-width:0}
.sflow-rate-rank-list li{align-items:center}.sflow-rate-rank-list .sflow-asn-identity{flex:1;min-width:0}.sflow-rates{display:grid;grid-template-columns:1fr;justify-items:end;gap:1px;min-width:118px}.sflow-rates small{font-size:9px;color:var(--muted);white-space:nowrap}.sflow-rates strong{font-size:10px;white-space:nowrap;color:var(--text)}
.sflow-asn-name-heading{font-size:14px!important;color:var(--muted);font-weight:600;margin-top:3px!important}
@media(max-width:1150px){.sflow-upstream-grid{grid-template-columns:1fr}.sflow-filter-form-wide{grid-template-columns:1fr 150px 160px auto}}
@media(max-width:800px){.sflow-filter-form-wide,.sflow-asn-filter-wide{grid-template-columns:1fr;max-width:none}.sflow-rate-table{min-width:760px}}

/* v10.18.1 interactive authentication */
.logout-form{margin:0}.logout-button{white-space:nowrap}
.login-body{min-height:100vh;margin:0;background:linear-gradient(135deg,#f4f7fb 0%,#eef2f8 52%,#e8edf5 100%);display:grid;place-items:center;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#152033}
.login-shell{width:min(100%,520px);padding:28px}
.login-panel{background:#fff;border:1px solid #dbe2ec;border-radius:20px;box-shadow:0 24px 70px rgba(24,39,75,.14);padding:34px}
.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:34px}.login-brand>div{display:flex;flex-direction:column;line-height:1}.login-brand strong{font-size:22px;letter-spacing:.16em}.login-brand small{font-size:10px;letter-spacing:.19em;color:#738096;margin-top:7px}
.login-heading h1{margin:.25rem 0 .6rem;font-size:2rem}.login-heading p{margin:0 0 1.4rem;color:#68758a;line-height:1.55}.login-form{display:grid;gap:16px}.login-form label{display:grid;gap:7px}.login-form label>span{font-weight:650;font-size:.88rem}.login-form input{width:100%;box-sizing:border-box;border:1px solid #cfd8e5;border-radius:10px;padding:12px 13px;font:inherit;background:#fff}.login-form input:focus{outline:2px solid rgba(49,94,251,.15);border-color:#315efb}.login-submit{width:100%;justify-content:center;min-height:44px;margin-top:4px}.login-foot{text-align:center;margin-top:24px;color:#8994a6}.notice{border-radius:10px;padding:11px 13px;margin:0 0 18px;font-size:.9rem}.notice.success{background:#edf9f2;color:#23663e;border:1px solid #cdebd8}.notice.error{background:#fff0f0;color:#9a2c2c;border:1px solid #f1cccc}

/* v10.19.0 commerce, onboarding and access-control polish */
.form-section-title{margin:8px 0 -2px;padding-top:12px;border-top:1px solid var(--border);font-size:13px;color:#344054;text-transform:uppercase;letter-spacing:.04em}
.user-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.user-summary-card{padding:15px 16px}.user-summary-card span,.user-summary-card small{display:block;color:var(--muted)}.user-summary-card strong{display:block;font-size:22px;margin:3px 0}
.user-directory{overflow:hidden;padding:0}.user-directory table td{vertical-align:middle}.user-identity{display:flex;align-items:center;gap:10px}.user-identity .avatar{flex:0 0 auto}.user-role-pill{display:inline-flex;padding:5px 8px;border-radius:999px;background:#f2f5fa;border:1px solid var(--border);font-size:11px;font-weight:700}.user-customer{display:block;font-weight:650}.user-customer small{display:block;color:var(--muted);font-weight:400}
.user-edit-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px}.role-help{padding:18px}.role-help h3{margin-top:0}.role-help ul{padding-left:18px;color:var(--muted);font-size:12px;line-height:1.6}
.login-register{display:flex;justify-content:center;gap:6px;margin-top:18px;color:var(--muted);font-size:12px}.login-register a{font-weight:700}
.registration-body{display:block;padding:40px 20px}.registration-shell{width:min(100%,980px);margin:auto}.registration-panel{padding:34px}.registration-form{margin-top:8px}
.product-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.product-card{position:relative;display:flex;flex-direction:column;min-height:240px;padding:18px;border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:0 4px 14px rgba(16,24,40,.04);cursor:pointer}.product-card:hover{border-color:#aebfe9;box-shadow:0 10px 26px rgba(31,52,110,.08)}.product-card>input{position:absolute;right:16px;top:16px;width:18px;height:18px}.product-card-head{display:grid;gap:5px;padding-right:30px}.product-card-head .badge{justify-self:start}.product-card-head strong{font-size:18px}.product-card-head small,.product-card p{color:var(--muted)}.product-card p{flex:1;line-height:1.55}.product-price strong{font-size:24px}.product-price span{color:var(--muted)}.product-price small{display:block;margin-top:6px}.sticky-order-bar{position:sticky;bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:18px;padding:14px 16px;border:1px solid #c8d5f2;border-radius:12px;background:rgba(255,255,255,.96);box-shadow:0 12px 32px rgba(24,39,75,.14);backdrop-filter:blur(8px)}
.sof{max-width:1280px;margin-inline:auto;padding:24px}.sof-header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid #111827;padding-bottom:14px;margin-bottom:18px}.sof-header div{display:flex;flex-direction:column}.sof-header strong{letter-spacing:.08em;font-size:18px}.sof-header span{color:var(--muted)}.sof-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.sof-grid>div,.sof-contacts>div{border:1px solid var(--border);border-radius:10px;padding:14px}.sof h3{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:#344054}.sof dl{display:grid;grid-template-columns:145px 1fr;gap:6px 10px;margin:0}.sof dt{color:var(--muted);font-size:11px}.sof dd{margin:0;font-weight:650;white-space:pre-line}.sof-contacts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0 20px}.sof-contacts span,.sof-contacts small{display:block}.sof-contacts small{margin-top:4px;color:var(--muted)}.sof-sign-form table input{min-width:120px;width:100%}.sof-requirements-row td{background:#fbfcfe}.sof-requirements-row label{display:grid;gap:6px}.sof-terms{margin-top:18px;padding:18px;border:1px solid var(--border);border-radius:10px;background:#fbfcfe}.sof-terms p{color:#475467;line-height:1.65}.signature-section{margin-top:18px;border-top:1px solid var(--border);padding-top:18px}.signature-box{margin:12px 0}.signature-box canvas{display:block;width:100%;max-width:760px;height:180px;border:1px solid #aeb9ca;border-radius:10px;background:#fff;touch-action:none}.signature-actions{display:flex;align-items:center;gap:12px;margin-top:8px}.signature-actions small{color:var(--muted)}.consent-row{display:flex;gap:10px;align-items:flex-start;margin:14px 0;color:#344054}.consent-row input{margin-top:3px}.signed-summary{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.signed-summary>div{border:1px solid var(--border);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:4px}.signed-summary small{color:var(--muted)}.signed-summary img{margin-top:10px;max-width:360px;max-height:100px;object-fit:contain;object-position:left center;border-top:1px solid var(--border);padding-top:8px}.danger-zone{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}
@media(max-width:1000px){.product-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.user-edit-layout{grid-template-columns:1fr}.user-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sof-grid,.sof-contacts,.signed-summary{grid-template-columns:1fr}}
@media(max-width:650px){.product-card-grid,.user-summary-grid{grid-template-columns:1fr}.registration-body{padding:0}.registration-panel{border-radius:0}.sticky-order-bar{align-items:stretch;flex-direction:column}.sof{padding:14px}.sof dl{grid-template-columns:1fr}.sof dd{margin-bottom:6px}}
.profile-info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:14px}.profile-info-grid>div{padding:11px 12px;border:1px solid var(--border);border-radius:8px;background:#fbfcfe;min-width:0}.profile-info-grid>div.wide{grid-column:span 2}.profile-info-grid span,.profile-info-grid strong,.profile-info-grid small{display:block}.profile-info-grid span{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700}.profile-info-grid strong{margin-top:4px;white-space:pre-line}.profile-info-grid small{margin-top:3px;color:var(--muted);overflow-wrap:anywhere}@media(max-width:900px){.profile-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.profile-info-grid{grid-template-columns:1fr}.profile-info-grid>div.wide{grid-column:auto}}

/* v10.19.1 global settings and password tools */
.settings-module-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.settings-module-card{display:flex;align-items:center;gap:12px;padding:16px;text-decoration:none;color:var(--text);transition:border-color .15s ease,box-shadow .15s ease}.settings-module-card:hover{border-color:#a9bce7;box-shadow:0 8px 20px rgba(31,52,110,.08)}.settings-module-card>div{flex:1;min-width:0}.settings-module-card strong,.settings-module-card small{display:block}.settings-module-card small{margin-top:4px;color:var(--muted);line-height:1.4}.settings-icon{width:36px;height:36px;border-radius:10px;background:#eef3ff;color:#315efb;display:grid;place-items:center;font-weight:850;font-size:17px}.settings-form{display:grid;gap:14px}.settings-section{padding:0;overflow:hidden}.settings-section .panel-heading{padding:16px;border-bottom:1px solid var(--border)}.settings-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px}.settings-field{display:grid;align-content:start;gap:7px}.settings-field>span{font-size:12px;font-weight:750}.settings-field small{color:var(--muted);line-height:1.45}.settings-savebar{position:sticky;bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid #c8d5f2;border-radius:12px;background:rgba(255,255,255,.96);box-shadow:0 12px 32px rgba(24,39,75,.14);backdrop-filter:blur(8px);z-index:5}.settings-savebar span{color:var(--muted);font-size:12px}.password-tool{padding:20px}.password-output-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center}.password-output{font-size:17px;letter-spacing:.04em}.password-options-grid{display:grid;grid-template-columns:160px repeat(4,minmax(130px,1fr));gap:12px;align-items:end;margin-top:18px}.password-field-row{display:flex;align-items:center;gap:8px}.password-field-row input{flex:1;min-width:0}.password-field-row .button{white-space:nowrap}
@media(max-width:1100px){.settings-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.password-options-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.settings-module-grid,.settings-field-grid,.password-options-grid{grid-template-columns:1fr}.settings-savebar,.password-output-row{grid-template-columns:1fr;display:grid}.settings-savebar{align-items:stretch}}

/* v10.20.0 email authentication */
.login-help-links{display:flex;justify-content:center;margin-top:14px;font-size:.9rem}.login-help-links a{color:var(--accent,#335dff);font-weight:650;text-decoration:none}.login-secondary-form{display:flex;gap:10px;justify-content:center;margin-top:14px}.mfa-code-input{font-size:1.45rem;letter-spacing:.35em;text-align:center;font-variant-numeric:tabular-nums}.settings-inline-test{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.settings-inline-test label{min-width:280px;flex:1}.email-test-panel{margin-top:18px}

/* v10.21.0 customer portal parity + sFlow query visibility */
.portal-workspace .app-main{padding:22px 24px 38px;max-width:none}.portal-workspace .page-heading{margin-bottom:14px}.portal-workspace .page-heading h2{font-size:30px;letter-spacing:-.035em}.portal-workspace .surface{box-shadow:0 2px 7px rgba(15,23,42,.035)}
.customer-portal-metrics{grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:14px}.customer-profile-panel{overflow:hidden}.customer-profile-panel .profile-info-grid{padding:0}.customer-profile-panel .profile-info-grid>div{border-radius:0;border-width:0 1px 1px 0;background:#fff;padding:14px 16px}.customer-profile-panel .profile-info-grid>div:nth-child(4n){border-right:0}
.customer-service-category-grid{margin:0 0 14px}.customer-service-category-grid .service-category-card{min-height:86px}.customer-service-filter{display:grid;grid-template-columns:minmax(260px,1.5fr) minmax(150px,.5fr) minmax(160px,.5fr) auto;gap:12px;align-items:end;padding:14px 16px;margin-bottom:14px}.customer-service-filter label{display:grid;gap:6px}.customer-service-filter label>span{font-size:10px;text-transform:uppercase;letter-spacing:.05em;font-weight:750;color:var(--muted)}.customer-service-filter .filter-actions{display:flex;gap:8px}
.customer-service-table td{vertical-align:middle}.customer-service-table .row-note{max-width:420px}.customer-service-hero{margin-bottom:12px}.customer-service-hero .service-hero-main h2{font-size:27px}.customer-service-detail-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(320px,.8fr);gap:14px;align-items:start}.customer-service-detail-grid>.surface{margin:0}.customer-service-detail-grid>.wide{grid-column:1/-1}.customer-map-location{display:block;padding:12px 13px;border:1px solid var(--border);border-radius:9px;background:#fbfcfe;text-decoration:none;color:inherit}.customer-map-location+ .customer-map-location{margin-top:8px}.customer-map-location strong,.customer-map-location span,.customer-map-location small{display:block}.customer-map-location span,.customer-map-location small{margin-top:3px;color:var(--muted)}
.customer-order-list article{display:flex;align-items:center;justify-content:space-between;gap:14px}.customer-order-list article>div{min-width:0}.customer-order-list article span{display:block;color:var(--muted);margin-top:3px}.customer-sflow-filter{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:16px;margin-bottom:12px}.customer-sflow-filter>div h3{margin:2px 0 4px}.customer-sflow-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:12px}.sflow-query-warning{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.sflow-query-warning span{color:inherit;opacity:.8}.sflow-admin-customer-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:1350px){.customer-portal-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.customer-service-detail-grid{grid-template-columns:1fr}.customer-service-detail-grid>.wide{grid-column:auto}.customer-profile-panel .profile-info-grid>div:nth-child(4n){border-right:1px solid var(--border)}}
@media(max-width:950px){.customer-service-filter{grid-template-columns:1fr 1fr}.customer-service-filter label:first-child{grid-column:1/-1}.customer-sflow-filter{align-items:stretch;flex-direction:column}.customer-sflow-metrics,.sflow-admin-customer-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.portal-workspace .app-main{padding:16px}.customer-portal-metrics,.customer-sflow-metrics,.sflow-admin-customer-metrics,.customer-service-filter{grid-template-columns:1fr}.customer-service-filter label:first-child{grid-column:auto}.customer-service-filter .filter-actions{align-items:stretch;flex-direction:column}}

/* v10.22.0 — Service Catalog, ordering, address plans and assumed customer view */
.catalog-offering-grid,.admin-catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.catalog-offering-card,.admin-catalog-card{position:relative;display:flex;flex-direction:column;gap:10px;min-height:220px;padding:18px;border:1px solid var(--border);border-radius:13px;background:#fff;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.catalog-offering-card:hover,.admin-catalog-card:hover{border-color:#9fb9ed;box-shadow:0 7px 20px rgba(16,41,76,.08);transform:translateY(-1px)}.catalog-offering-card>input,.admin-catalog-card>input,.catalog-source-card>input{position:absolute;opacity:0;pointer-events:none}.catalog-offering-card:has(input:checked),.admin-catalog-card:has(input:checked){border-color:#155eef;box-shadow:0 0 0 2px rgba(21,94,239,.12),0 8px 22px rgba(16,41,76,.08);background:#f8fbff}.catalog-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.catalog-code{font:600 11px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--muted)}.catalog-card-title,.admin-catalog-card>strong{font-size:17px;line-height:1.25}.catalog-offering-card p,.admin-catalog-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.5;flex:1}.catalog-card-commercial{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding-top:11px;border-top:1px solid var(--border)}.catalog-card-commercial div span,.catalog-card-commercial div strong{display:block}.catalog-card-commercial div span{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.catalog-card-commercial div strong{margin-top:3px;font-size:12px}.catalog-card-select{font-weight:700;font-size:11px;color:#155eef}.catalog-offering-card:has(input:checked) .catalog-card-select:before,.admin-catalog-card:has(input:checked) .catalog-card-select:before{content:'✓ ';}.catalog-selected-summary{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr);gap:18px;padding:18px;border:1px solid #cbd9f4;border-radius:13px;background:linear-gradient(135deg,#f7faff,#fff);margin-bottom:18px}.catalog-selected-summary h3{margin:4px 0 5px;font-size:20px}.catalog-selected-summary p{margin:0;color:var(--muted)}.catalog-commercial-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.catalog-commercial-cards>div{padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:#fff}.catalog-commercial-cards span,.catalog-commercial-cards strong{display:block}.catalog-commercial-cards span{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.catalog-commercial-cards strong{margin-top:3px;font-size:12px}.order-detail-panel{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(0,1.25fr);gap:18px}.order-detail-section{padding:17px;border:1px solid var(--border);border-radius:12px;background:#fff}.form-section-title{display:flex;flex-direction:column;gap:3px;margin-bottom:14px}.form-section-title strong{font-size:14px}.form-section-title span{font-size:11px;color:var(--muted);line-height:1.4}.datacenter-picker select{font-size:12px}.datacenter-picker small{line-height:1.4}.order-lock-notice{margin-top:18px}.catalog-empty-state{padding:32px}.catalog-source-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:18px}.catalog-source-card{position:relative;display:flex;align-items:center;gap:12px;padding:16px;border:1px solid var(--border);border-radius:12px;background:#fff;cursor:pointer}.catalog-source-card>span:nth-of-type(2){min-width:0;flex:1}.catalog-source-card strong,.catalog-source-card small{display:block}.catalog-source-card small{margin-top:3px;color:var(--muted);font-size:10px}.catalog-source-card>b{display:none;color:#155eef}.catalog-source-card:has(input:checked){border-color:#155eef;background:#f7faff;box-shadow:0 0 0 2px rgba(21,94,239,.1)}.catalog-source-card:has(input:checked)>b{display:block}.catalog-source-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#edf3ff;color:#155eef;font-weight:900}.admin-catalog-picker{padding:16px;border:1px solid var(--border);border-radius:12px;background:#fafcff}.admin-catalog-card{min-height:205px}.assume-customer-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 28px;border-bottom:1px solid #f0c36d;background:#fff8e7;color:#6c4400}.assume-customer-banner strong,.assume-customer-banner span{display:block}.assume-customer-banner span{margin-top:2px;font-size:11px}.address-plan-panel{padding:20px}.address-family-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.addressing-card{border:1px solid var(--border);border-radius:12px;background:#fff;overflow:hidden}.addressing-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;background:#f7f9fc;border-bottom:1px solid var(--border)}.addressing-card dl{margin:0}.addressing-card dl>div{display:grid;grid-template-columns:145px minmax(0,1fr);gap:14px;padding:11px 15px;border-bottom:1px solid #edf0f5}.addressing-card dl>div:last-child{border-bottom:0}.addressing-card dt{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}.addressing-card dd{margin:0;font-size:12px;overflow-wrap:anywhere}.address-chip-list{display:flex;flex-wrap:wrap;gap:5px}.address-chip-list code{padding:3px 6px;border:1px solid #dbe4f2;border-radius:6px;background:#f7f9fc;font-size:11px}.resource-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.heading-actions form.inline-form{margin:0}.order-detail-section .embedded-grid{margin-top:0}
@media(max-width:1200px){.catalog-offering-grid,.admin-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-selected-summary,.order-detail-panel{grid-template-columns:1fr}}
@media(max-width:760px){.catalog-offering-grid,.admin-catalog-grid,.catalog-source-choice,.address-family-grid{grid-template-columns:1fr}.catalog-selected-summary{padding:14px}.catalog-commercial-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.assume-customer-banner{align-items:flex-start;flex-direction:column;padding:10px 16px}.addressing-card dl>div{grid-template-columns:1fr;gap:4px}}

/* v10.23 catalog bandwidth and four-stage order/service workflow */
.catalog-bandwidth-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border:1px solid var(--border);border-radius:9px;background:#f8fafc}.catalog-bandwidth-line span{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.catalog-bandwidth-line strong{font-size:13px;color:#102b46}
.datacenter-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.datacenter-card{position:relative;display:flex;flex-direction:column;gap:6px;min-height:176px;padding:17px;border:1px solid var(--border);border-radius:13px;background:#fff;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.datacenter-card:hover{border-color:#9fb9ed;box-shadow:0 7px 20px rgba(16,41,76,.08);transform:translateY(-1px)}.datacenter-card>input{position:absolute;opacity:0;pointer-events:none}.datacenter-card:has(input:checked){border-color:#155eef;box-shadow:0 0 0 2px rgba(21,94,239,.12),0 8px 22px rgba(16,41,76,.08);background:#f8fbff}.datacenter-card-head{display:flex;align-items:center;justify-content:space-between}.datacenter-code{display:inline-flex;align-items:center;width:max-content;padding:4px 7px;border-radius:7px;background:#edf3ff;color:#155eef;font:700 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace}.datacenter-check{display:none;color:#155eef;font-weight:900}.datacenter-card:has(input:checked) .datacenter-check{display:block}.datacenter-card>strong{font-size:15px;line-height:1.3}.datacenter-provider{font-size:11px;color:var(--muted)}.datacenter-card address{margin:6px 0 2px;font-style:normal;font-size:11px;line-height:1.55;color:#40566d;flex:1}.datacenter-select{font-size:11px;font-weight:700;color:#155eef}.datacenter-card:has(input:checked) .datacenter-select:before{content:'✓ '}
.interface-order-panel{display:grid;grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr);gap:16px;align-items:start;padding:17px;border:1px solid var(--border);border-radius:12px;background:#fff}.interface-order-panel label.wide{grid-column:1/-1}.compact-summary{margin-bottom:16px}.admin-service-context,.admin-service-notes{padding:22px 26px;border-bottom:1px solid var(--border);background:#fbfdff}.admin-service-context .catalog-source-choice{margin:16px 0 0}.admin-commercial-editor{margin-top:18px;padding:17px;border:1px solid var(--border);border-radius:12px;background:#fbfdff}.admin-commercial-editor>[data-network-commercial]{margin-top:10px}.admin-service-notes{background:#fff}.admin-service-notes label{display:block}.order-draft-edit{padding:0;overflow:hidden}.order-edit-section{padding:20px 22px;border-bottom:1px solid var(--border)}.order-edit-section:last-of-type{border-bottom:0}.order-draft-edit>.form-actions{padding:18px 22px}.admin-service-wizard [data-service-bandwidth][readonly]{background:#f4f6f9;color:#52677b;cursor:not-allowed}
@media(max-width:1200px){.datacenter-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.interface-order-panel{grid-template-columns:1fr}}
@media(max-width:760px){.datacenter-card-grid{grid-template-columns:1fr}.admin-service-context,.admin-service-notes{padding:18px 14px}.interface-order-panel{padding:14px}}

/* v10.24.0 order-flow and admin service-form refinements */
.datacenter-card:has(input:checked) .datacenter-select:before{content:''}
.datacenter-card:has(input:checked) .datacenter-select{color:#155eef}

.interface-option-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.interface-option-card{position:relative;display:flex;align-items:center;gap:12px;min-height:96px;padding:16px 17px;border:1px solid var(--border);border-radius:12px;background:#fff;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.interface-option-card:hover{border-color:#9fb9ed;box-shadow:0 7px 20px rgba(16,41,76,.08);transform:translateY(-1px)}
.interface-option-card>input{position:absolute;opacity:0;pointer-events:none}
.interface-option-card:has(input:checked){border-color:#155eef;box-shadow:0 0 0 2px rgba(21,94,239,.12),0 8px 22px rgba(16,41,76,.08);background:#f8fbff}
.interface-option-icon{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:10px;background:#edf3ff;color:#155eef;font-size:18px;font-weight:850}
.interface-option-copy{min-width:0}.interface-option-copy strong,.interface-option-copy small{display:block}.interface-option-copy strong{font-size:14px;overflow-wrap:anywhere}.interface-option-copy small{margin-top:4px;color:var(--muted);font-size:10px;line-height:1.4}

.subsection-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:0 0 16px;padding:0 0 13px;border-bottom:1px solid var(--border)}
.subsection-heading h3,.subsection-heading h4{margin:2px 0 4px;font-size:16px;color:var(--text);text-transform:none;letter-spacing:normal}
.subsection-heading h4{font-size:14px}.subsection-heading p{margin:0;max-width:900px;color:var(--muted);font-size:11px;line-height:1.45;text-transform:none;letter-spacing:normal}
.admin-service-context{padding:22px 26px 24px;background:#fbfdff;border-bottom:1px solid var(--border)}
.admin-context-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:16px}
.admin-terms-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px}
.admin-commercial-editor{margin-top:18px;padding:18px;border:1px solid var(--border);border-radius:12px;background:#fbfdff}
.admin-commercial-editor .subsection-heading{margin-bottom:14px}
.admin-service-notes{padding:22px 26px;background:#fff;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.standalone-field{display:block}.standalone-field>span{display:block;margin-bottom:6px;color:#344054;font-size:12px;font-weight:700}.standalone-field input,.standalone-field select,.standalone-field textarea{width:100%;border:1px solid var(--border-strong);border-radius:8px;padding:9px 10px;background:#fff;color:var(--text);font:inherit;outline:none}.standalone-field input:focus,.standalone-field select:focus,.standalone-field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(21,94,239,.12)}.standalone-field small{display:block;margin-top:5px;color:var(--muted);font-size:11px}
.admin-service-wizard .wizard-section-body>.admin-catalog-grid{margin-top:0}
.admin-service-wizard .catalog-source-choice{margin:0}

.order-draft-summary{padding:0;overflow:hidden}.order-draft-summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 22px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#f8fbff,#fff)}.order-draft-summary-head h3{margin:4px 0 3px;font-size:20px}.order-draft-summary-head p{margin:0;color:var(--muted);font-size:11px}.order-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}.order-summary-grid article{padding:16px 18px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);min-height:94px}.order-summary-grid article:nth-child(3n){border-right:0}.order-summary-grid span,.order-summary-grid strong,.order-summary-grid small{display:block}.order-summary-grid span{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}.order-summary-grid strong{margin-top:5px;font-size:14px}.order-summary-grid small{margin-top:4px;color:var(--muted);font-size:10px}.order-summary-location{display:grid;grid-template-columns:minmax(220px,.55fr) minmax(0,1.45fr);gap:18px;align-items:start;padding:18px 22px}.order-summary-location h4{margin:4px 0 3px;font-size:15px}.order-summary-location p{margin:0;color:var(--muted);font-size:11px}.order-summary-location address{margin:0;padding:13px 15px;border:1px solid var(--border);border-radius:10px;background:#fbfdff;font-style:normal;font-size:12px;line-height:1.55;color:#40566d}.order-draft-next{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:14px;padding:20px 22px}.order-draft-next h3{margin:4px 0 4px}.order-draft-next p{margin:0;max-width:760px;color:var(--muted);font-size:11px;line-height:1.5}.order-draft-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.order-draft-actions form{margin:0}

.customer-order-wizard .interface-option-grid:empty{display:none}

@media(max-width:1200px){.interface-option-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-terms-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.order-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.order-summary-grid article:nth-child(3n){border-right:1px solid var(--border)}.order-summary-grid article:nth-child(2n){border-right:0}}
@media(max-width:760px){.interface-option-grid,.admin-context-grid,.admin-terms-grid,.order-summary-grid,.order-summary-location{grid-template-columns:1fr}.order-summary-grid article{border-right:0!important}.order-draft-next{align-items:flex-start;flex-direction:column}.order-draft-actions{width:100%}.admin-service-context,.admin-service-notes{padding:18px 14px}}
.catalog-grid-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 12px}.catalog-grid-heading strong{font-size:12px;color:#344054}.catalog-grid-heading span{color:var(--muted);font-size:10px}
@media(max-width:760px){.catalog-grid-heading{align-items:flex-start;flex-direction:column;gap:3px}}
