@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@500&display=swap");
:root{font-family:Inter,sans-serif;color:#dce3ed;background:#0b1018;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:#0b1018}button,input,select{font:inherit}.sidebar{position:fixed;inset:0 auto 0 0;display:flex;width:240px;flex-direction:column;padding:22px 16px;border-right:1px solid #202837;background:#0d131d}.brand{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none}.brand>b,.login-logo>b{display:grid;width:38px;height:38px;place-items:center;border-radius:10px;background:linear-gradient(145deg,#657bf0,#4256bb)}.brand span,.login-logo span,.health span,.profile span{display:flex;flex-direction:column}.brand small,.login-logo small,.health small,.profile small{margin-top:2px;color:#657287}.caption{margin:32px 10px 9px;color:#485467;font-size:9px;font-weight:700;letter-spacing:.14em}.sidebar nav{display:flex;flex-direction:column;gap:4px}.sidebar nav a{padding:11px 12px;border-radius:8px;color:#8491a5;font-size:12px;font-weight:600;text-decoration:none}.sidebar nav a:hover,.sidebar nav a.active{color:#fff;background:#1a2335;box-shadow:inset 3px 0 #6980ff}.health{display:flex;align-items:center;gap:10px;margin-top:auto;padding:14px 8px;border-top:1px solid #202837;font-size:9px}.health i{width:7px;height:7px;border-radius:50%;background:#3bd99b;box-shadow:0 0 8px #3bd99b}main{margin-left:240px}.topbar{display:flex;height:64px;align-items:center;justify-content:space-between;padding:0 30px;border-bottom:1px solid #202837;background:#0d131dcc}.search{display:flex;width:360px;gap:8px;color:#59667a}.search input{width:100%;border:0;outline:0;background:transparent}.profile{display:flex;align-items:center;gap:9px;border:0;color:#cbd4e0;background:transparent;cursor:pointer}.profile>span{align-items:flex-start}.page{max-width:1500px;margin:auto;padding:30px}.page-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:24px}.page-title p{margin:0 0 10px;color:#58667b;font-size:9px;letter-spacing:.1em}.page-title h1{margin:0;font-size:25px}.page-title span{display:block;margin-top:7px;color:#738096;font-size:11px}.primary,.secondary{height:38px;padding:0 15px;border-radius:8px;font-size:10px;font-weight:700;cursor:pointer}.primary{border:1px solid #7286fc;color:#fff;background:linear-gradient(145deg,#6379ef,#5369dd)}.primary:disabled{opacity:.45}.secondary{border:1px solid #2b3546;color:#aab5c6;background:#151c28}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:14px}.stats article{display:flex;min-height:115px;flex-direction:column;padding:18px;border:1px solid #212a39;border-radius:12px;background:linear-gradient(145deg,#131a26,#101620)}.stats span{color:#748196;font-size:10px}.stats strong{margin-top:10px;font:700 23px "JetBrains Mono"}.stats small{margin-top:6px;color:#586579;font-size:8px}.panel{overflow:hidden;min-height:330px;border:1px solid #212a39;border-radius:12px;background:#111822}.panel.empty{display:grid;place-content:center;text-align:center}.panel.empty p{color:#68758a}table{width:100%;border-collapse:collapse}th{padding:13px 18px;color:#59667a;background:#0f151f;font-size:8px;text-align:left;text-transform:uppercase}td{padding:15px 18px;border-top:1px solid #202836;color:#aab5c5;font-size:10px}td strong,td small{display:block}td small{margin-top:5px;color:#5c697c}code{padding:4px 7px;border-radius:5px;color:#8fa0ff;background:#1b2540;font-family:"JetBrains Mono"}em{padding:5px 8px;border-radius:5px;color:#56d5a5;background:#19372f;font-size:8px;font-style:normal}.empty-row{text-align:center;color:#68758a;height:250px}dialog{width:min(560px,calc(100% - 30px));padding:0;border:1px solid #2b3547;border-radius:14px;background:#111822;box-shadow:0 30px 80px #0009}dialog::backdrop{background:#04070cc9;backdrop-filter:blur(6px)}dialog form{display:flex;flex-direction:column;gap:14px;padding:23px}dialog header{display:flex;justify-content:space-between;margin:-23px -23px 5px;padding:22px 23px;border-bottom:1px solid #252f3e}dialog header small{color:#6980ff;font-size:8px}dialog h2{margin:7px 0;font-size:20px}dialog header p{margin:0;color:#6b788c;font-size:9px}dialog header button{border:0;color:#7c899d;background:transparent;font-size:24px;cursor:pointer}label{display:flex;flex-direction:column;gap:7px;color:#9aa7b9;font-size:9px;font-weight:600}input,select{height:40px;padding:0 12px;border:1px solid #2a3547;border-radius:8px;outline:0;color:#dce3ed;background:#0d141e}input:focus,select:focus{border-color:#647af0}.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}dialog footer{display:flex;justify-content:flex-end;gap:9px}.form-error,.error{margin:0;color:#f08b91;font-size:9px}.login-body{display:grid;min-height:100vh;place-items:center;background:radial-gradient(circle at 70% 30%,#202b50,#0b1018 45%)}.login-card{width:min(430px,calc(100% - 32px));padding:38px;border:1px solid #293349;border-radius:16px;background:#111925;box-shadow:0 30px 80px #0008}.login-logo{display:flex;align-items:center;gap:11px}.eyebrow{margin:38px 0 8px!important;color:#7186ff!important;font-size:9px!important;letter-spacing:.13em}.login-card h1{margin:0;font-size:25px}.login-card>p{color:#6f7c90;font-size:11px}.login-card form{display:flex;flex-direction:column;gap:16px;margin-top:28px}.login-card .primary{width:100%;margin-top:5px}@media(max-width:900px){.sidebar{width:190px}.sidebar nav a{font-size:10px}main{margin-left:190px}.stats{grid-template-columns:1fr 1fr}.page{padding:20px}}
dialog::backdrop{backdrop-filter:none}

/* Typography scale aligned with DefCore DCI. */
:root{font-family:system-ui,sans-serif;font-size:15px}
.brand{font-size:18px;font-weight:750}
.brand>b,.login-logo>b{font-size:13px}
.brand small,.login-logo small{font-size:12px}
.caption{font-size:11px}
.sidebar nav a{font-size:15px}
.health{font-size:12px}
.search,.profile{font-size:15px}
.page-title p{font-size:11px}
.page-title h1{font-size:26px}
.page-title span{font-size:15px}
.primary,.secondary{font-size:15px}
.stats span{font-size:13px}
.stats strong{font-size:30px}
.stats small{font-size:12px}
th{font-size:12px}
td{font-size:15px}
td small{font-size:12px}
code,em{font-size:12px}
dialog header small{font-size:11px}
dialog h2{font-size:26px}
dialog header p{font-size:15px}
label{font-size:15px}
.form-error,.error{font-size:15px}
.eyebrow{font-size:11px!important}
.login-card h1{font-size:26px}
.login-card>p{font-size:15px}
@media(max-width:900px){.sidebar nav a{font-size:15px}}
.icon-button{display:grid;width:36px;height:36px;padding:0;place-items:center;border:1px solid #3a2930;border-radius:7px;background:#26181d;color:#ff7b72;font-size:20px;cursor:pointer}
.icon-button:hover{border-color:#da3633;background:#3d1f25}
.icon-button:disabled{cursor:not-allowed;opacity:.45}
.sidebar-bottom{margin-top:auto}
.settings-nav{padding-top:12px;border-top:1px solid #202837}
.sidebar-bottom .health{margin-top:8px}
.usage-cell{min-width:250px}
.usage-summary{display:flex;align-items:center;justify-content:space-between;gap:18px}
.usage-summary span:last-child{color:#8491a5;white-space:nowrap}
.usage-track{height:4px;margin-top:7px;overflow:hidden;background:#30363d}
.usage-track i{display:block;height:100%;background:#2ea043}
.address-panel{overflow-x:auto}
.address-panel table{min-width:1220px}
.address-actions{display:flex;gap:8px}
.edit-icon{border-color:#2b3d5d;background:#18233a;color:#8fa0ff}
.edit-icon:hover{border-color:#647af0;background:#202d4d}
.comment-cell{max-width:260px;white-space:pre-wrap;overflow-wrap:anywhere}
.address-mac{font-family:"JetBrains Mono",monospace;letter-spacing:.01em}
.login-link{display:block;margin-top:4px;border:0;color:#8fa0ff;background:transparent;font-size:10px;text-align:center;text-decoration:none;cursor:pointer}.form-success{margin:0;color:#56d5a5;font-size:9px}
.settings-card{overflow:hidden;border:1px solid #212a39;border-radius:12px;background:#111822}.settings-card>header{display:flex;align-items:center;padding:20px 22px;border-bottom:1px solid #202836}.settings-card>header div{flex:1}.settings-card>header small{color:#6980ff;font-size:8px;font-weight:700;letter-spacing:.12em}.settings-card>header h2{margin:6px 0 4px;font-size:18px}.settings-card>header p{margin:0;color:#657287;font-size:10px}.settings-card>header>strong{display:grid;min-width:38px;height:38px;place-items:center;border-radius:9px;color:#9cafff;background:#1b2540}.settings-user-list article{display:grid;grid-template-columns:38px minmax(190px,1fr) 130px 120px auto;align-items:center;gap:14px;padding:15px 22px;border-top:1px solid #202836}.settings-user-list article:first-child{border-top:0}.user-avatar{display:grid;width:36px;height:36px;place-items:center;border-radius:9px;color:#dce3ed;background:#202b40;font-weight:700}.user-identity strong,.user-identity small{display:block}.user-identity small{margin-top:4px;color:#657287}.user-role{justify-self:start}.user-role-operator{color:#8fa0ff;background:#1b2540}.user-role-viewer{color:#aab5c6;background:#202836}.user-state{display:block;font-size:9px}.user-state.is-active{color:#56d5a5}.user-state.is-disabled{color:#f08b91}.api-key-state{display:block;margin-top:5px;color:#657287;font-size:8px}.user-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px}.toggle-field{flex-direction:row;align-items:center;gap:10px}.toggle-field input{width:16px;height:16px;margin:0}.toggle-field span{font-size:10px}
.target-type{color:#79c0ff;background:#172b42}
.target-vps{color:#c7a0ff;background:#2b2040}
.address-filter-panel{display:grid;grid-template-columns:minmax(240px,1.5fr) minmax(150px,.7fr) minmax(180px,1fr) minmax(180px,1fr) auto auto;align-items:end;gap:12px;margin-bottom:14px;padding:16px 18px;border:1px solid #212a39;border-radius:12px;background:#111822}
.address-filter-panel label{font-size:12px}
.address-filter-panel>span{align-self:center;color:#657287;font-size:12px;white-space:nowrap}
.address-filter-panel .secondary{margin-bottom:1px}
[data-address-row][hidden],[data-address-filter-empty][hidden],[data-quarantine-row][hidden],[data-quarantine-filter-empty][hidden]{display:none}
.table-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border-top:1px solid #202836;color:#657287;font-size:12px}
.table-pagination>div{display:flex;align-items:center;gap:12px}
.table-pagination .secondary{height:34px;padding:0 12px}
.table-pagination .secondary:disabled{cursor:not-allowed;opacity:.4}
.quarantine-active{color:#ffbd66;background:#3a2b19}
.quarantine-resolved{color:#7f8b9d;background:#202733}
.quarantine-resolve{height:32px;padding:0 10px}
.field-hint{margin-top:-8px;color:#6f7c90;font-size:12px;line-height:1.45}
input[readonly]{color:#8491a5;background:#111721;cursor:not-allowed}
.dashboard-action{display:flex;align-items:center;text-decoration:none}
.dashboard-stats article:last-child strong{color:#ffbd66}
.ip-version-breakdown{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:10px 0 8px}
.ip-version-breakdown>div{min-width:0;padding-right:8px;border-right:1px solid #283140}
.ip-version-breakdown>div:last-child{padding-right:0;border-right:0}
.ip-version-breakdown small{display:block;margin:0 0 3px;color:#657287;font-size:11px}
.ip-version-breakdown strong{display:block;margin:0;overflow:hidden;font-size:20px;text-overflow:ellipsis;white-space:nowrap}
.dashboard-stats a,.dashboard-panel a{color:#8fa0ff;text-decoration:none}
.dashboard-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0 0 14px}
.dashboard-summary a{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border:1px solid #212a39;border-radius:10px;color:#7f8b9d;background:#101720;text-decoration:none}
.dashboard-summary a:hover{border-color:#34425a;background:#141d29}
.dashboard-summary strong{color:#dce3ed;font:700 18px "JetBrains Mono"}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(330px,.8fr);gap:14px}
.dashboard-panel{min-height:430px}
.dashboard-panel>header{display:flex;align-items:center;justify-content:space-between;padding:18px;border-bottom:1px solid #202836}
.dashboard-panel h2{margin:0;font-size:17px}
.dashboard-panel header p{margin:5px 0 0;color:#657287;font-size:12px}
.dashboard-panel header>a{font-size:12px}
.recent-list{padding:0 18px}
.recent-list article{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid #202836}
.recent-list article:last-child{border-bottom:0}
.recent-list article div{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:6px}
.recent-list strong{max-width:100%;overflow:hidden;color:#c5cedb;font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.recent-list small,.recent-list time{color:#657287;font-size:11px}
.recent-list time{flex:none}
.dashboard-empty{padding:70px 0;color:#657287;text-align:center}
@media(max-width:1200px){.dashboard-grid{grid-template-columns:1fr}.dashboard-summary{grid-template-columns:1fr 1fr}}
@media(max-width:1100px){.address-filter-panel{grid-template-columns:1fr 1fr}.address-filter-panel>span{justify-self:end}}
.pool-groups{display:flex;flex-direction:column;gap:12px}
.pool-group{overflow:hidden;border:1px solid #212a39;border-radius:12px;background:#111822}
.pool-group>summary{display:flex;min-height:76px;align-items:center;justify-content:space-between;gap:20px;padding:16px 20px;list-style:none;cursor:pointer;user-select:none}
.pool-group>summary::-webkit-details-marker{display:none}
.pool-group>summary:hover{background:#151d29}
.pool-group-location{display:flex;align-items:center;gap:14px}
.pool-group-location>div{display:flex;flex-direction:column;gap:5px}
.pool-group-location strong{font-size:15px}
.pool-group-location small{color:#657287;font-size:12px}
.pool-group-chevron{display:grid;width:28px;height:28px;place-items:center;border:1px solid #2b3546;border-radius:7px;color:#8fa0ff;font-size:22px;transition:transform .18s ease}
.pool-group[open] .pool-group-chevron{transform:rotate(90deg)}
.pool-group-counters{display:flex;gap:28px}
.pool-group-counters>span{display:flex;min-width:65px;flex-direction:column;align-items:flex-end;gap:3px}
.pool-group-counters strong{font:700 18px "JetBrains Mono"}
.pool-group-counters small{color:#657287;font-size:11px}
.pool-group-table{border-top:1px solid #202836}
.pool-group-table table{margin:0}
.settings-user-list article.settings-user-card{display:block;padding:0}.settings-user-main{display:grid;grid-template-columns:38px minmax(190px,1fr) 130px 90px auto;align-items:center;gap:14px;padding:18px 22px}.api-keys-panel{margin:0 22px 18px 74px;border:1px solid #222d3d;border-radius:10px;background:#0d141e;overflow:hidden}.api-keys-heading{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #202a38}.api-keys-heading>div strong,.api-keys-heading>div small{display:block}.api-keys-heading>div strong{font-size:11px}.api-keys-heading>div small{margin-top:3px;color:#657287;font-size:9px}.api-keys-heading>span{display:grid;min-width:25px;height:25px;place-items:center;border-radius:7px;color:#9cafff;background:#1b2540;font-size:10px;font-weight:700}.api-key-list{padding:6px}.api-key-row{display:grid;grid-template-columns:30px minmax(180px,1fr) 150px 30px;align-items:center;gap:10px;padding:9px 10px;border-radius:7px}.api-key-row+.api-key-row{border-top:1px solid #1d2633}.api-key-row:hover{background:#121b27}.api-key-icon{display:grid;width:28px;height:28px;place-items:center;border-radius:7px;color:#8fa0ff;background:#1b2540;font-size:16px}.api-key-info strong,.api-key-info code,.api-key-date small,.api-key-date span{display:block}.api-key-info strong{margin-bottom:4px;font-size:10px}.api-key-info code{color:#78879c;font-size:9px;letter-spacing:.04em}.api-key-date{text-align:right}.api-key-date small{color:#566478;font-size:8px}.api-key-date span{margin-top:3px;color:#8795a8;font-size:9px}.api-key-empty{padding:14px;color:#657287;text-align:center;font-size:9px}
@media(max-width:900px){.settings-user-main{grid-template-columns:38px 1fr auto}.settings-user-main .user-role,.settings-user-main .user-state{grid-column:auto}.settings-user-main .user-actions{grid-column:1/-1;justify-content:flex-start}.api-keys-panel{margin-left:22px}.api-key-row{grid-template-columns:30px 1fr 30px}.api-key-date{display:none}}
.api-key-info{min-width:0}.api-key-info code{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:900px){.settings-user-main{grid-template-areas:"avatar identity" "avatar role" "avatar state" "actions actions";grid-template-columns:38px minmax(0,1fr);align-items:start;column-gap:12px;row-gap:7px;padding:16px}.settings-user-main .user-avatar{grid-area:avatar}.settings-user-main .user-identity{grid-area:identity;min-width:0}.settings-user-main .user-role{grid-area:role;justify-self:start}.settings-user-main .user-state{grid-area:state}.settings-user-main .user-actions{grid-area:actions;display:grid;grid-template-columns:1fr 1fr;width:100%;margin-top:5px}.settings-user-main .user-actions button{width:100%;padding:0 8px}.api-keys-panel{clear:both;margin:0 16px 16px}.api-keys-heading{gap:10px;padding:11px 12px}.api-keys-heading>div{min-width:0}.api-keys-heading>div small{line-height:1.4}.api-key-row{grid-template-columns:28px minmax(0,1fr) 30px;padding:9px 7px}.api-key-date{display:none}}
.backup-settings-card { margin-top: 20px; }
.restore-settings-card { margin-top: 20px; }
.restore-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; padding: 22px; border-bottom: 1px solid #263247; }
.restore-source { display: flex; flex-direction: column; gap: 14px; padding: 18px; border: 1px solid #263247; border-radius: 12px; background: #0d1522; }
.restore-source h3 { margin: 0; }
.restore-settings-card > .form-error { padding: 0 22px; }
.restore-list { display: flex; flex-direction: column; gap: 10px; padding: 22px; }
.restore-record { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 16px; padding: 14px; border: 1px solid #263247; border-radius: 10px; }
.restore-record > div:first-child { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.restore-record strong, .restore-record small { overflow-wrap: anywhere; }
.restore-error { color: #ff8f8f; }
.restore-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
@media (max-width: 760px) { .restore-grid { grid-template-columns: 1fr; } .restore-record { grid-template-columns: 1fr; } .restore-actions { justify-content: flex-start; } }
.backup-status { padding: 7px 11px; border-radius: 999px; color: #91a0b8; background: #172131; font-size: 12px; }
.backup-status.is-active { color: #44d99a; background: rgba(24, 169, 105, .15); }
.backup-settings-layout { display: grid; grid-template-columns: minmax(300px, .8fr) minmax(420px, 1.2fr); gap: 24px; padding: 22px; }
.backup-settings-form { display: flex; flex-direction: column; gap: 16px; }
.backup-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.backup-history { min-width: 0; border-left: 1px solid #263247; padding-left: 24px; }
.backup-history-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.backup-history-heading span { color: #7590ba; }
.backup-record-list { display: flex; flex-direction: column; gap: 8px; }
.backup-record { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 14px; border: 1px solid #263247; border-radius: 10px; background: #111a27; }
.backup-record > div:first-child { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.backup-record strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.backup-record small { color: #7f91ad; }
.backup-record-meta { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.backup-record-status { color: #91a0b8; font-size: 12px; }
.backup-record-status.is-success { color: #44d99a; }
.backup-record-status.is-failed { color: #ff7777; }
.secondary.compact { padding: 6px 10px; font-size: 12px; text-decoration: none; }
@media (max-width: 1050px) { .backup-settings-layout { grid-template-columns: 1fr; } .backup-history { border-left: 0; border-top: 1px solid #263247; padding: 20px 0 0; } }
@media (max-width: 650px) { .backup-record { align-items: flex-start; flex-direction: column; } .backup-record-meta { flex-wrap: wrap; } }
.settings-hub-grid { display:grid; grid-template-columns:repeat(2,minmax(280px,1fr)); gap:14px; }
.settings-hub-card { min-height:220px; display:flex; flex-direction:column; padding:28px 24px 22px; border:1px solid #253044; border-radius:12px; color:#e8edf5; background:#111a27; text-decoration:none; transition:border-color .18s ease,transform .18s ease,background .18s ease; }
.settings-hub-card:hover { border-color:#526b9a; background:#131e2d; transform:translateY(-2px); }
.settings-hub-icon { display:grid; width:42px; height:42px; margin-bottom:22px; place-items:center; border-radius:11px; font-size:20px; }
.settings-hub-icon.backup { color:#8e9cff; background:#1c294b; }
.settings-hub-icon.users { color:#4ee0ad; background:#123c35; }
.settings-hub-card h2 { margin:0 0 12px; font-size:18px; }
.settings-hub-card p { max-width:520px; margin:0; color:#7589a8; font-size:12px; line-height:1.65; }
.settings-hub-card footer { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:auto; padding-top:24px; color:#43dca6; font-size:10px; }
.settings-hub-card footer strong { color:#8598ff; font-size:11px; }
.settings-back-link { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; }
@media (max-width:760px) { .settings-hub-grid { grid-template-columns:1fr; } .settings-hub-card { min-height:200px; } }
.form-error.is-success { color:#44d99a; }
.read-only-notice { margin-bottom:16px; padding:10px 14px; border:1px solid #294466; border-radius:10px; color:#9db7dc; background:#101b2b; font-size:13px; }
.secondary.is-disabled { pointer-events:none; opacity:.45; }
body[data-user-role="viewer"] [data-pool-delete],
body[data-user-role="viewer"] [data-prefix-delete],
body[data-user-role="viewer"] [data-address-edit],
body[data-user-role="viewer"] [data-address-delete],
body[data-user-role="viewer"] [data-quarantine-resolve] { display:none; }
