@import "https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600&family=Fira+Sans:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;600;700&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f7f9;--surface:#fff;--surface-2:#f9fafb;--text:#1f2937;--muted:#667085;--faint:#8a919c;--border:#e1e5ea;--border-strong:#d1d6dc;--primary:#475569;--primary-hover:#334155;--accent:#a16207;--good:#13795b;--warning:#b45309;--danger:#c2413a;--info:#2563a5;--violet:#6d5cae;--shadow:0 5px 18px #1d263112;--sidebar:#20262e;--sidebar-text:#d7dce3}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#161a1f;--surface:#1e242b;--surface-2:#242b33;--text:#edf0f3;--muted:#a7afb9;--faint:#858e99;--border:#343c45;--border-strong:#45505b;--primary:#d2dae3;--primary-hover:#fff;--accent:#d4a348;--good:#55b995;--warning:#e1a34e;--danger:#e16b64;--info:#72a8db;--violet:#a899d4;--shadow:0 8px 24px #0003;--sidebar:#11151a;--sidebar-text:#d7dce3}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);min-width:320px;min-height:100vh;color:var(--text);margin:0;font-family:Fira Sans,Noto Sans SC,system-ui,sans-serif;font-size:14px;line-height:1.5}button,input,select{font:inherit}button,a,select{cursor:pointer}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,tr:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:2px}button{color:inherit}.app-shell{min-height:100vh}.sidebar{z-index:30;background:var(--sidebar);width:224px;color:var(--sidebar-text);border-right:1px solid #ffffff0d;flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0}.brand{border-bottom:1px solid #ffffff14;align-items:center;gap:11px;height:72px;padding:0 18px;display:flex}.brand-mark{color:#fff;background:#b9821a;border-radius:6px;place-items:center;width:35px;height:35px;font-size:18px;font-weight:700;display:grid;box-shadow:inset 0 0 0 1px #ffffff2e}.brand strong{color:#fff;font-size:17px;line-height:1.2;display:block}.brand span{color:#8993a0;margin-top:2px;font:500 9px/1 Fira Code,monospace;display:block}.sidebar nav{gap:3px;padding:13px 10px;display:grid}.nav-item{color:#aeb7c3;border-radius:5px;align-items:center;gap:11px;min-height:44px;padding:0 10px;text-decoration:none;transition:background .18s,color .18s;display:flex}.nav-item:hover{color:#fff;background:#ffffff0f}.nav-item.active{color:#fff;background:#ffffff1a;box-shadow:inset 3px 0 #c08a28}.nav-item span{flex:1}.nav-item small{color:#cbd2da;text-align:center;background:#ffffff14;border-radius:10px;min-width:21px;padding:1px 5px;font-size:11px}.nav-item small.danger-count{color:#ffd2cd;background:#d64e443d}.sidebar-section{color:#737e8b;text-transform:uppercase;padding:11px 20px 0;font-size:10px;font-weight:600}.sidebar-foot{border-top:1px solid #ffffff14;align-items:center;gap:10px;margin:auto 12px 13px;padding:12px;display:flex}.sidebar-foot strong,.sidebar-foot span{display:block}.sidebar-foot strong{color:#e9edf2;font-size:12px}.sidebar-foot span{color:#7f8995;font:10px Fira Code,monospace}.health-dot{background:#4fb488;border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 4px #4fb4881f}.main-content{min-height:100vh;margin-left:224px;padding:0 26px 18px}.topbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:20px;min-height:72px;display:flex}.page-heading{align-items:center;gap:10px;display:flex}.page-heading h1{letter-spacing:0;margin:0;font-size:19px;line-height:1.3}.page-heading p{color:var(--muted);margin:2px 0 0;font-size:12px}.top-actions{align-items:center;gap:8px;display:flex}.icon-btn,.row-action{border:1px solid var(--border);width:44px;height:44px;color:var(--muted);background:var(--surface);border-radius:5px;place-items:center;padding:0;transition:border-color .18s,color .18s,background .18s;display:inline-grid}.icon-btn:hover,.row-action:hover{color:var(--text);border-color:var(--border-strong);background:var(--surface-2)}.primary-btn,.secondary-btn{white-space:nowrap;border:1px solid #0000;border-radius:5px;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:0 14px;font-weight:600;transition:background .18s,border-color .18s;display:inline-flex}.primary-btn{color:#fff;background:#9a6610;border-color:#8b5b0d}.primary-btn:hover{background:#82540c}.secondary-btn{background:var(--surface);border-color:var(--border-strong)}.secondary-btn:hover{background:var(--surface-2)}.env-badge{height:30px;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:4px;align-items:center;gap:7px;padding:0 10px;font-size:11px;display:inline-flex}.env-badge i{background:var(--good);border-radius:50%;width:7px;height:7px}.top-actions>.icon-btn{width:38px;height:38px}.top-actions>.primary-btn,.top-actions>.env-badge{height:38px;min-height:38px}.loading-line{z-index:50;background:var(--accent);transform-origin:0;height:3px;animation:1.1s ease-in-out infinite loading;position:fixed;top:0;left:224px;right:0}.kpi-grid{grid-template-columns:repeat(7,minmax(130px,1fr));gap:10px;margin:18px 0 14px;display:grid}.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:6px;align-items:flex-start;gap:10px;min-width:0;min-height:94px;padding:14px;display:flex;box-shadow:0 1px 2px #1e283208}.kpi-card>div:last-child{min-width:0}.kpi-card span,.kpi-card small{color:var(--muted);display:block}.kpi-card span{white-space:nowrap;font-size:12px}.kpi-card strong{margin:1px 0 0;font:600 25px/1.25 Fira Code,monospace;display:block}.kpi-card small{white-space:nowrap;font-size:10px}.kpi-icon{background:color-mix(in srgb, currentColor 10%, transparent);border-radius:5px;flex:0 0 30px;place-items:center;width:30px;height:30px;display:grid}.tone-neutral .kpi-icon{color:var(--primary)}.tone-good .kpi-icon,.tone-good strong{color:var(--good)}.tone-warn .kpi-icon,.tone-warn strong{color:var(--warning)}.tone-danger .kpi-icon,.tone-danger strong{color:var(--danger)}.tone-info .kpi-icon{color:var(--info)}.tone-violet .kpi-icon{color:var(--violet)}.analytics-grid{grid-template-columns:minmax(0,1.65fr) minmax(300px,.75fr);gap:14px;margin-bottom:14px;display:grid}.panel{background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:0 1px 2px #1e283208}.panel-head,.fleet-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:18px;padding:16px 18px;display:flex}.panel-head h2,.fleet-head h2{margin:0;font-size:14px}.panel-head p,.fleet-head p{color:var(--muted);margin:2px 0 0;font-size:11px}.trend-chart{width:100%;height:260px}.trend-change{color:var(--danger);font:600 17px Fira Code,monospace}.trend-change small{color:var(--muted);text-align:right;font:10px Fira Sans,sans-serif;display:block}.chart-foot{height:34px;color:var(--faint);border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding:0 18px;font-size:10px;display:flex}.chart-foot span{align-items:center;gap:6px;display:flex}.anomaly-dot{background:var(--danger);border-radius:50%;width:7px;height:7px}.text-btn{min-height:34px;color:var(--accent);background:0 0;border:0;align-items:center;gap:3px;font-size:11px;display:inline-flex}.alert-list{display:grid}.alert-row{width:100%;min-height:74px;color:inherit;text-align:left;border:0;border-bottom:1px solid var(--border);background:0 0;grid-template-columns:32px minmax(0,1fr) 16px;align-items:center;gap:10px;padding:12px 14px;display:grid}.alert-row:last-child{border-bottom:0}.alert-row:hover{background:var(--surface-2)}.alert-mark{border-radius:5px;place-items:center;width:30px;height:30px;display:grid}.alert-mark.critical{color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent)}.alert-mark.warning{color:var(--warning);background:color-mix(in srgb, var(--warning) 12%, transparent)}.alert-copy{min-width:0}.alert-copy strong,.alert-copy span,.alert-copy small{display:block}.alert-copy strong{font-size:12px}.alert-copy span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.alert-copy small{color:var(--faint);font-size:9px}.fleet-panel{overflow:hidden}.fleet-head{padding:14px 18px}.fleet-tools{gap:8px;display:flex}.search-field,.filter-field{height:36px;color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:5px;align-items:center;gap:8px;padding:0 10px;display:flex}.search-field{width:240px}.search-field input,.filter-field select{width:100%;min-width:0;color:var(--text);background:0 0;border:0;outline:0}.search-field input::placeholder{color:var(--faint)}.filter-field select{appearance:none;padding-right:4px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:1060px}th{height:39px;color:var(--faint);background:var(--surface-2);border-bottom:1px solid var(--border);text-align:left;text-transform:uppercase;padding:0 12px;font-size:10px;font-weight:600}td{border-bottom:1px solid var(--border);vertical-align:middle;height:63px;padding:7px 12px}tbody tr{cursor:pointer;transition:background .15s}tbody tr:hover{background:var(--surface-2)}tbody tr:last-child td{border-bottom:0}td small{color:var(--muted);font-size:10px;display:block}.node-name{align-items:center;gap:9px;display:flex}.node-name strong{white-space:nowrap;display:block}.country-code{width:31px;height:25px;color:var(--primary);background:color-mix(in srgb, var(--primary) 10%, transparent);border:1px solid color-mix(in srgb, var(--primary) 17%, transparent);border-radius:4px;flex:none;place-items:center;font:600 10px Fira Code,monospace;display:inline-grid}.country-code.large{width:39px;height:34px;font-size:12px}.family{margin-left:6px;display:inline-block}.asn{font:500 11px Fira Code,monospace;display:block}.risk-cell{align-items:baseline;gap:5px;display:flex}.risk-cell strong{font:600 17px Fira Code,monospace}.risk-cell span{color:var(--muted);font-size:9px}.risk-high{color:var(--danger)!important}.risk-mid{color:var(--warning)!important}.risk-low{color:var(--good)!important}.status-badge{white-space:nowrap;color:var(--muted);align-items:center;gap:5px;font-size:10px;display:inline-flex}.status-badge i{background:var(--faint);border-radius:50%;width:7px;height:7px}.status-badge.is-online,.status-badge.is-available{color:var(--good)}.status-badge.is-online i,.status-badge.is-available i{background:var(--good)}.status-badge.is-warning,.status-badge.is-limited{color:var(--warning)}.status-badge.is-warning i,.status-badge.is-limited i{background:var(--warning)}.status-badge.is-alert,.status-badge.is-blocked{color:var(--danger)}.status-badge.is-alert i,.status-badge.is-blocked i{background:var(--danger)}.dnsbl{min-width:24px;height:22px;color:var(--good);background:color-mix(in srgb, var(--good) 9%, transparent);border-radius:4px;place-items:center;font:600 11px Fira Code,monospace;display:inline-grid}.dnsbl.hit{color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, transparent)}.last-seen{white-space:nowrap;color:var(--muted);font-size:11px}.row-action{background:0 0;width:36px;height:36px;position:relative}.row-action:after{content:"";position:absolute;inset:-4px}.empty-state{min-height:180px;color:var(--muted);place-content:center;justify-items:center;gap:4px;display:grid}.empty-state strong{color:var(--text)}.empty-state span{font-size:11px}footer{color:var(--faint);justify-content:space-between;padding:16px 2px 0;font-size:10px;display:flex}.drawer-backdrop,.modal-backdrop{z-index:60;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0e121866;position:fixed;inset:0}.detail-drawer{background:var(--surface);width:min(460px,100%);position:absolute;inset:0 0 0 auto;overflow-y:auto;box-shadow:-12px 0 30px #00000024}.drawer-head,.modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;min-height:72px;padding:15px 18px;display:flex}.drawer-head>div,.modal-head>div{align-items:center;gap:11px;display:flex}.drawer-head h2,.modal-head h2{margin:0;font-size:16px}.drawer-head p,.modal-head p{color:var(--muted);margin:2px 0 0;font-size:11px}.drawer-summary{border-bottom:1px solid var(--border);grid-template-columns:repeat(3,1fr);display:grid}.drawer-summary>div{border-right:1px solid var(--border);min-height:82px;padding:14px}.drawer-summary>div:last-child{border-right:0}.drawer-summary span{color:var(--muted);margin-bottom:6px;font-size:10px;display:block}.drawer-summary strong{font-size:13px}.drawer-summary>div:first-child strong{font:600 24px Fira Code,monospace}.detail-section{border-bottom:1px solid var(--border);padding:18px}.detail-section h3{margin:0 0 11px;font-size:12px}.detail-section dl{gap:9px;margin:0;display:grid}.detail-section dl div{grid-template-columns:90px 1fr;gap:10px;display:grid}.detail-section dt{color:var(--muted);font-size:11px}.detail-section dd{text-align:right;margin:0;font-size:11px}.change-list{gap:9px;display:grid}.change-list>div{background:var(--surface-2);border-left:3px solid var(--warning);border-radius:3px;align-items:flex-start;gap:10px;min-height:48px;padding:9px 10px;display:flex}.change-list strong,.change-list small{display:block}.change-list strong{font-size:11px}.change-list small{color:var(--muted);font-size:10px}.drawer-actions{background:var(--surface);border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:14px 18px;display:flex;position:sticky;bottom:0}.modal-backdrop{place-items:center;padding:16px;display:grid}.modal{background:var(--surface);border:1px solid var(--border);width:min(520px,100%);box-shadow:var(--shadow);border-radius:7px;overflow:hidden}.modal-head>div{display:block}.modal form,.enrollment-result{padding:18px}.modal label{color:var(--muted);gap:6px;margin-bottom:14px;font-size:11px;font-weight:600;display:grid}.modal input{height:40px;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:5px;padding:0 11px}.form-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.form-note{min-height:52px;color:var(--muted);background:color-mix(in srgb, var(--info) 8%, var(--surface));border:1px solid color-mix(in srgb, var(--info) 18%, var(--border));border-radius:5px;gap:9px;padding:10px;font-size:10px;display:flex}.form-note svg{color:var(--info);flex:none}.modal-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.step-status{align-items:center;gap:10px;margin-bottom:18px;display:flex}.step-status>span{color:#fff;background:var(--good);border-radius:50%;place-items:center;width:31px;height:31px;font-weight:700;display:grid}.step-status strong,.step-status small{display:block}.step-status small{color:var(--muted)}.command-box{background:#151a20;border-radius:5px;grid-template-columns:minmax(0,1fr) 38px;align-items:center;gap:8px;padding:10px;display:grid}.command-box code{overflow-wrap:anywhere;color:#dfe7ef;font-size:10px;line-height:1.6}.command-box .icon-btn{color:#c4ccd5;background:#252c34;border-color:#3b4652}.installation-steps{grid-template-columns:repeat(4,1fr);gap:2px;margin:18px 0;display:grid}.installation-steps div{color:var(--faint);text-align:center;padding-top:20px;font-size:9px;position:relative}.installation-steps div:before{content:"";background:var(--border);width:100%;height:2px;position:absolute;top:7px;left:-50%}.installation-steps div:first-child:before{display:none}.installation-steps i{z-index:1;background:var(--surface);border:2px solid var(--border-strong);border-radius:50%;width:12px;height:12px;margin-left:-6px;position:absolute;top:2px;left:50%}.installation-steps .done{color:var(--good)}.installation-steps .done i{background:var(--good);border-color:var(--good)}.toast{z-index:100;color:#fff;min-height:44px;box-shadow:var(--shadow);background:#26313b;border:1px solid #3b4651;border-radius:5px;align-items:center;gap:9px;padding:0 14px;display:flex;position:fixed;bottom:22px;right:22px}.spinning{animation:.8s linear infinite spin}.menu-btn,.mobile-close,.sidebar-scrim{display:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:110;color:#fff;background:#1f2937;border-radius:4px;padding:9px 12px;transition:transform .15s;position:fixed;top:8px;left:8px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.drawer-enter-active,.drawer-leave-active,.modal-enter-active,.modal-leave-active,.toast-enter-active,.toast-leave-active{transition:opacity .2s}.drawer-enter-active .detail-drawer,.drawer-leave-active .detail-drawer{transition:transform .22s}.drawer-enter-from,.drawer-leave-to,.modal-enter-from,.modal-leave-to,.toast-enter-from,.toast-leave-to{opacity:0}.drawer-enter-from .detail-drawer,.drawer-leave-to .detail-drawer{transform:translate(100%)}@keyframes loading{0%{transform:scaleX(.05)}70%{transform:scaleX(.75)}to{opacity:0;transform:scaleX(1)}}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1280px){.kpi-grid{grid-template-columns:repeat(4,1fr)}.kpi-card:nth-child(n+5){min-height:82px}.analytics-grid{grid-template-columns:minmax(0,1.35fr) minmax(290px,.75fr)}}@media (width<=980px){.sidebar{transition:transform .2s;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-scrim{z-index:25;background:#00000061;border:0;display:block;position:fixed;inset:0}.mobile-close{color:#cbd3dc;background:0 0;border-color:#ffffff1f;margin-left:auto;display:grid}.main-content{margin-left:0;padding-inline:18px}.loading-line{left:0}.menu-btn{display:grid}.analytics-grid{grid-template-columns:1fr}.alert-list{grid-template-columns:repeat(3,1fr)}.alert-row{grid-template-columns:28px minmax(0,1fr);min-height:92px}.alert-row>svg{display:none}.fleet-head{flex-direction:column;align-items:flex-start}.fleet-tools{width:100%}.search-field{flex:1;width:auto}}@media (width>=661px) and (width<=980px){table{table-layout:fixed;min-width:100%}th:nth-child(3),td:nth-child(3),th:nth-child(5),td:nth-child(5),th:nth-child(6),td:nth-child(6),th:nth-child(7),td:nth-child(7),th:nth-child(8),td:nth-child(8){display:none}th:first-child,td:first-child{width:27%}th:nth-child(2),td:nth-child(2){width:29%}th:nth-child(4),td:nth-child(4),th:nth-child(9),td:nth-child(9){width:17%}th:last-child,td:last-child{width:52px;padding-inline:6px}.table-wrap{overflow-x:hidden}}@media (width<=660px){.main-content{padding:0 12px 16px}.topbar{min-height:66px}.page-heading p,.env-badge{display:none}.top-actions{gap:5px}.top-actions .icon-btn:first-of-type{display:none}.primary-btn{padding-inline:11px}.kpi-grid{grid-template-columns:repeat(2,1fr);gap:8px;margin-top:12px}.kpi-card{min-height:84px;padding:11px}.kpi-card:last-child{grid-column:1/-1}.analytics-grid{gap:10px}.panel-head{padding:13px}.trend-chart{height:230px}.alert-list{grid-template-columns:1fr}.alert-row{min-height:72px}.fleet-head{padding:13px}.fleet-tools{flex-direction:column}.search-field,.filter-field{width:100%}.chart-foot{padding:0 12px}.chart-foot span:last-child{display:none}table{table-layout:fixed;min-width:100%}th:nth-child(n+3):not(:last-child),td:nth-child(n+3):not(:last-child){display:none}th:first-child,td:first-child{width:52%}th:nth-child(2),td:nth-child(2){width:auto}th:last-child,td:last-child{width:48px;padding-inline:6px}.table-wrap{overflow-x:hidden}footer{flex-direction:column;gap:3px}.drawer-summary{grid-template-columns:1fr 1fr}.drawer-summary>div:nth-child(2){border-right:0}.drawer-summary>div:last-child{border-top:1px solid var(--border);grid-column:1/-1;min-height:56px}.form-grid{grid-template-columns:1fr;gap:0}.modal{max-height:calc(100vh - 24px);overflow-y:auto}.toast{bottom:12px;left:12px;right:12px}.installation-steps{grid-template-columns:repeat(2,1fr);row-gap:10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.auth-shell{background:var(--bg);grid-template-rows:82px 1fr;min-height:100vh;display:grid}.auth-brand{color:var(--text);border-bottom:1px solid var(--border);background:var(--surface);align-items:center;gap:11px;padding:0 max(22px,50vw - 540px);display:flex}.auth-brand strong,.auth-brand span{display:block}.auth-brand strong{font-size:18px}.auth-brand span{color:var(--faint);font:500 9px Fira Code,monospace}.auth-panel{background:var(--surface);border:1px solid var(--border);width:min(430px,100% - 28px);box-shadow:var(--shadow);border-radius:7px;place-self:center;padding:28px}.auth-heading{align-items:flex-start;gap:12px;margin-bottom:22px;display:flex}.auth-heading>svg{color:var(--accent);margin-top:2px}.auth-heading h1{margin:0;font-size:20px}.auth-heading p{color:var(--muted);margin:4px 0 0;font-size:12px}.auth-panel form,.auth-panel label{display:grid}.auth-panel form{gap:15px}.auth-panel label{color:var(--muted);gap:6px;font-size:11px;font-weight:600}.auth-panel input{height:42px;color:var(--text);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:5px;padding:0 12px}.auth-submit{width:100%;min-height:42px;margin-top:3px}.auth-submit:disabled{opacity:.65;cursor:wait}.segmented{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;grid-template-columns:1fr 1fr;margin-bottom:20px;padding:3px;display:grid}.segmented button{height:34px;color:var(--muted);background:0 0;border:0;border-radius:4px}.segmented button.active{color:var(--text);background:var(--surface);font-weight:600;box-shadow:0 1px 3px #00000014}.form-error{color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, var(--surface));border-left:3px solid var(--danger);margin:0;padding:9px 10px;font-size:11px}.auth-footnote{color:var(--faint);text-align:center;margin:18px 0 0;font-size:10px}.auth-modal{width:min(430px,100%)}.public-auth-body{padding:18px}.public-auth-body form,.public-auth-body label{display:grid}.public-auth-body form{gap:14px}.public-auth-body label{color:var(--muted);gap:6px;font-size:11px;font-weight:600}.public-auth-body input{height:42px;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:5px;padding:0 11px}.nav-button{text-align:left;width:100%;font:inherit;background:0 0;border:0}.page-error{min-height:42px;color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, var(--surface));border:1px solid color-mix(in srgb, var(--danger) 20%, var(--border));border-radius:5px;align-items:center;gap:8px;margin-top:14px;padding:9px 12px;display:flex}.quality-grid{grid-template-columns:minmax(380px,1fr) minmax(380px,1fr);gap:14px;margin-bottom:14px;display:grid}.ranking-list,.unlock-list{display:grid}.ranking-list button,.unlock-list button{width:100%;min-height:59px;color:inherit;text-align:left;border:0;border-bottom:1px solid var(--border);background:0 0;align-items:center;gap:10px;padding:8px 14px;display:grid}.ranking-list button{grid-template-columns:32px minmax(0,1fr) 44px 36px 18px}.unlock-list button{grid-template-columns:minmax(0,1fr) 90px 90px 18px}.ranking-list button:last-child,.unlock-list button:last-child{border-bottom:0}.ranking-list button:hover,.unlock-list button:hover{background:var(--surface-2)}.rank{width:27px;height:27px;color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:4px;place-items:center;font:600 11px Fira Code,monospace;display:grid}.rank.podium{color:#fff;background:#9a6610;border-color:#9a6610}.ranking-name strong,.ranking-name small,.unlock-list button>span strong,.unlock-list button>span small{display:block}.ranking-name small,.unlock-list button>span small{color:var(--muted);font-size:10px}.unlock-count{color:var(--text);text-align:center;font:600 12px Fira Code,monospace}.unlock-count small{color:var(--faint);font:9px Fira Sans,sans-serif;display:block}.compact{min-height:150px}.section-title{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-title h3{margin:0}.detail-drawer.wide{width:min(620px,100%)}.drawer-loading{min-height:100%;color:var(--muted);place-items:center;display:grid}.media-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.media-detail-grid>div{background:var(--surface-2);border:1px solid var(--border);border-radius:4px;justify-content:space-between;align-items:center;gap:10px;min-height:42px;padding:8px 10px;display:flex}.media-detail-grid span{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.score-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.score-grid>div{grid-template-columns:minmax(0,1fr) 38px;align-items:center;gap:7px;display:grid}.score-grid span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.score-grid strong{text-align:right;font:600 12px Fira Code,monospace}.score-grid i{background:var(--border);border-radius:2px;grid-column:1/-1;height:4px;overflow:hidden}.score-grid b{background:var(--warning);height:100%;display:block}.detail-section .trend-chart{height:220px}.quiet-state{min-height:48px;color:var(--good);background:color-mix(in srgb, var(--good) 7%, var(--surface));border-radius:4px;align-items:center;gap:9px;padding:10px;display:flex}.network-stack{gap:7px;margin-top:14px;display:grid}.network-stack>div{background:var(--surface-2);border:1px solid var(--border);border-radius:5px;grid-template-columns:70px minmax(0,1fr) 52px;align-items:center;gap:9px;min-height:48px;padding:8px 10px;display:grid}.network-stack span strong,.network-stack span small{display:block}.network-stack span small{color:var(--muted);font-size:9px}.network-stack code{text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.network-stack>div>span:last-child{text-align:right}.schedule-section .section-title>div p{color:var(--muted);margin:2px 0 0;font-size:10px}.schedule-section select{width:150px;height:36px;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:5px;padding:0 8px}.scan-state{border-left:3px solid var(--info);background:color-mix(in srgb, var(--info) 8%, var(--surface));color:var(--muted);margin:12px 0 0;padding:8px 10px;font-size:10px}.scan-state.failed{border-left-color:var(--warning);background:color-mix(in srgb, var(--warning) 8%, var(--surface))}.large-modal{width:min(680px,100%)}.modal select{height:40px;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:5px;padding:0 10px}.form-grid.three{grid-template-columns:repeat(3,1fr)}.admin-modal{width:min(700px,100%);max-height:calc(100vh - 32px);overflow-y:auto}.admin-settings{border-bottom:1px solid var(--border);padding:14px 18px}.toggle-row{justify-content:space-between;align-items:center;gap:16px;margin:0!important;display:flex!important}.toggle-row strong,.toggle-row small{display:block}.toggle-row small{color:var(--faint);font-weight:400}.toggle-row input{width:42px;height:22px;accent-color:var(--accent)}.user-table{display:grid}.user-row{border-bottom:1px solid var(--border);grid-template-columns:34px minmax(0,1fr) 118px 44px;align-items:center;gap:10px;min-height:64px;padding:9px 18px;display:grid}.user-avatar{color:#fff;background:var(--primary);border-radius:4px;place-items:center;width:32px;height:32px;font-weight:700;display:grid}.user-row>span:nth-child(2) strong,.user-row>span:nth-child(2) small{display:block}.user-row>span:nth-child(2) small{color:var(--muted);font-size:10px}.user-row select{width:100%}.reset-result{background:var(--surface-2);border:1px solid var(--border);border-radius:5px;grid-template-columns:1fr auto;gap:8px;margin:14px 18px 18px;padding:12px;display:grid}.reset-result span{color:var(--muted);grid-column:1/-1;font-size:10px}.reset-result code{overflow-wrap:anywhere;font-size:10px}@media (width<=980px){.quality-grid{grid-template-columns:1fr}.form-grid.three{grid-template-columns:1fr 1fr}.form-grid.three label:last-child{grid-column:1/-1}}@media (width<=660px){.auth-panel{padding:20px}.quality-grid{grid-template-columns:minmax(0,1fr)}.ranking-list button{grid-template-columns:30px minmax(0,1fr) 35px 18px}.ranking-list .unlock-count{display:none}.unlock-list button{grid-template-columns:minmax(0,1fr) 70px 18px}.unlock-list button .status-badge:nth-of-type(2){display:none}.media-detail-grid,.score-grid,.form-grid.three{grid-template-columns:1fr}.form-grid.three label:last-child{grid-column:auto}.user-row{grid-template-columns:32px minmax(0,1fr) 40px}.user-row select{grid-column:2/3}.user-row .icon-btn{grid-area:1/3/3}.reset-result{grid-template-columns:1fr}.reset-result span{grid-column:auto}.schedule-section .section-title{flex-direction:column;align-items:flex-start}.schedule-section select{width:100%}}.public-shell{background:var(--bg);min-height:100vh}.public-header{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:20px;min-height:70px;padding:0 max(20px,50vw - 590px);display:flex}.public-brand{align-items:center;gap:10px;display:flex}.public-brand>span:last-child,.public-brand strong,.public-brand small{display:block}.public-brand strong{font-size:17px;line-height:1.2}.public-brand small{color:var(--faint);margin-top:2px;font:500 9px Fira Code,monospace}.public-actions{align-items:center;gap:8px;display:flex}.public-actions>.icon-btn,.public-actions>.primary-btn,.public-live{height:38px;min-height:38px}.public-actions>.icon-btn{width:38px}.public-live{color:var(--muted);border:1px solid var(--border);border-radius:5px;align-items:center;gap:7px;padding:0 10px;font-size:11px;display:inline-flex}.public-live i{background:var(--good);border-radius:50%;width:7px;height:7px}.public-main{width:min(1180px,100% - 40px);margin:0 auto;padding:34px 0 30px}.public-intro{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:40px;min-height:170px;display:grid}.public-kicker{color:var(--accent);align-items:center;gap:6px;font-size:11px;font-weight:600;display:inline-flex}.public-intro h1{letter-spacing:0;margin:7px 0 8px;font-size:32px;line-height:1.2}.public-intro p{max-width:690px;color:var(--muted);margin:0;font-size:13px}.public-summary{border:1px solid var(--border);background:var(--surface);border-radius:6px;grid-template-columns:repeat(3,112px);display:grid}.public-summary>div{border-right:1px solid var(--border);align-items:center;gap:9px;min-height:78px;padding:12px;display:flex}.public-summary>div:last-child{border-right:0}.public-summary svg{color:var(--accent)}.public-summary strong,.public-summary small{display:block}.public-summary strong{font:600 20px Fira Code,monospace}.public-summary small{color:var(--muted);white-space:nowrap;font-size:9px}.public-loading{left:0}.public-board{grid-template-columns:minmax(0,1.6fr) minmax(270px,.7fr);gap:14px;margin:22px 0;display:grid}.ranking-scale{color:var(--faint);font-size:10px}.public-ranking-list{display:grid}.public-ranking-list>div{border-bottom:1px solid var(--border);grid-template-columns:32px minmax(0,1fr) 70px 52px;align-items:center;gap:11px;min-height:62px;padding:8px 16px;display:grid}.public-ranking-list>div:last-child{border-bottom:0}.public-unlocks{color:var(--text);text-align:center;font:600 12px Fira Code,monospace}.public-unlocks small{color:var(--faint);font:9px Fira Sans,sans-serif;display:block}.public-score{text-align:right;font:600 20px Fira Code,monospace}.public-method dl{margin:0;padding:8px 16px 14px}.public-method dl div{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;min-height:43px;display:flex}.public-method dl div:last-child{border-bottom:0}.public-method dt{color:var(--muted);font-size:10px}.public-method dd{text-align:right;margin:0;font-size:10px}.public-section-head{justify-content:space-between;align-items:end;gap:16px;margin:0 0 12px;display:flex}.public-section-head h2{margin:0;font-size:16px}.public-section-head p{color:var(--muted);margin:3px 0 0;font-size:11px}.public-section-head>span{color:var(--faint);font-size:10px}.public-node-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.public-node{background:var(--surface);border:1px solid var(--border);border-radius:6px;min-width:0;padding:14px;box-shadow:0 1px 2px #1e283208}.public-node>header{grid-template-columns:39px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:40px;display:grid}.public-node>header>span:nth-child(2) strong,.public-node>header>span:nth-child(2) small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.public-node>header>span:nth-child(2) small{color:var(--muted);font-size:9px}.public-node-score{background:var(--surface-2);border-left:3px solid var(--accent);grid-template-columns:minmax(0,1fr) auto;align-items:center;min-height:70px;margin:13px 0;padding:9px 11px;display:grid}.public-node-score>span,.public-node-score>small{color:var(--muted);font-size:9px}.public-node-score>strong{grid-area:1/2/3;font:600 25px Fira Code,monospace}.public-node dl{gap:7px;margin:0;display:grid}.public-node dl div{justify-content:space-between;align-items:center;gap:10px;display:flex}.public-node dt{color:var(--muted);font-size:9px}.public-node dd{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:10px;overflow:hidden}.public-node>footer{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:8px;margin-top:13px;padding-top:10px;display:grid}.public-node>footer>span{color:var(--muted);justify-content:space-between;gap:5px;font-size:9px;display:flex}.public-footer{min-height:56px;color:var(--faint);background:var(--surface);border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:0 max(20px,50vw - 590px);font-size:10px;display:flex}@media (width<=900px){.public-intro{grid-template-columns:1fr;gap:20px;padding:28px 0}.public-summary{grid-template-columns:repeat(3,1fr)}.public-board{grid-template-columns:1fr}.public-node-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=620px){.public-header{min-height:62px;padding-inline:12px}.public-live,.public-actions>.icon-btn:first-of-type{display:none}.public-login{padding-inline:10px}.public-main{width:calc(100% - 24px);padding-top:8px}.public-intro{min-height:0}.public-intro h1{font-size:26px}.public-summary>div{justify-content:center;min-height:68px;padding:8px}.public-summary svg{display:none}.public-ranking-list>div{grid-template-columns:30px minmax(0,1fr) 44px;padding-inline:11px}.public-ranking-list .public-unlocks{display:none}.public-node-grid{grid-template-columns:1fr}.public-section-head{flex-direction:column;align-items:flex-start;gap:2px}.public-footer{flex-direction:column;align-items:flex-start;gap:3px;padding:12px}}
