[hidden]{display:none!important}
:root{--bg:#f5f7f8;--paper:#fff;--ink:#182a32;--muted:#657881;--line:#dfe7e9;--blue:#087f8c;--green:#785ac3;--soft:#e6f3f2;--red:#b4434b;--amber:#936418;--radius:14px}
*{box-sizing:border-box}body{margin:0;font:14px/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--ink);font-variant-numeric:tabular-nums}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:var(--paper);border-radius:9px;padding:9px 14px;color:var(--ink);transition:background .15s,border-color .15s;min-height:38px}button:hover{border-color:#99bdc2;background:#f1f8f8}button:disabled{opacity:.6;cursor:wait}.primary{background:var(--blue);color:#fff;border-color:var(--blue);font-weight:600}.primary:hover{background:#066572;color:white}.danger{color:var(--red)}.muted{color:var(--muted)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #087f8c66;outline-offset:3px}.skip-link{position:fixed;top:-80px;left:20px;z-index:1100;background:var(--paper);padding:12px;color:var(--blue)}.skip-link:focus{top:10px}
aside{width:232px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);padding:30px 22px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;font-size:23px;font-weight:700;letter-spacing:-.6px}.brand-mark{display:grid;place-items:center;background:var(--blue);color:white;width:40px;height:40px;border-radius:12px;font-size:25px;letter-spacing:0}.brand small{display:block;font-size:12px;font-weight:400;letter-spacing:1px;color:var(--muted);margin-top:1px}nav{margin-top:46px;display:grid;gap:7px}nav button{display:flex;align-items:center;gap:12px;background:transparent;border:0;text-align:left;color:var(--muted);padding:13px 15px}nav svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}nav button.active{background:var(--soft);color:#086a76;font-weight:650}nav button:hover{background:#f0f5f5}.side-bottom{margin-top:auto;padding-top:24px;border-top:1px solid var(--line)}.side-server{font-size:12px;color:var(--muted)}.side-server small{display:block;margin:8px 0 17px;padding-left:13px}.side-bottom button{width:100%;text-align:left;background:#fafcfc;color:var(--muted)}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--blue);margin-right:7px}
main{margin-left:232px;max-width:1680px;padding:30px 36px 16px}header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px}.breadcrumb{font-size:12px;color:var(--blue);margin-bottom:9px}.breadcrumb span{color:var(--muted);margin-left:8px}h1{font-size:28px;line-height:1.3;font-weight:650;letter-spacing:-.7px;margin:0 0 7px}h2{font-size:16px;line-height:1.5;font-weight:650;margin:0}h3{font-size:14px;margin:0 0 12px}p{margin:6px 0}.header-right{display:flex;gap:12px;align-items:center}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:6px;padding:4px 9px;font-size:12px;background:#e6f3ed;color:#267450;white-space:nowrap}.badge.bad{background:#fbecec;color:#a53641}.badge.dim{background:#edf1f3;color:#64757b}.badge.warn{background:#fff3d9;color:#875e15}.badge::before{content:'';width:4px;height:4px;border-radius:50%;background:currentColor;flex:none}
.cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:22px}.card,.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:21px;min-width:0}.card label{display:block;color:var(--muted);font-size:12px;margin:0}.metric{font-size:28px;line-height:1.35;font-weight:650;letter-spacing:-.8px;margin:13px 0 7px;white-space:nowrap}.metric small{font-size:12px;font-weight:400;letter-spacing:0;color:var(--muted);margin-left:5px}.card .sub{font-size:12px;color:var(--muted)}.cards>.card:first-child{border-top:3px solid var(--blue);padding-top:19px}.grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(250px,1fr);gap:20px;margin-bottom:22px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.panel-head .muted{font-size:12px}.legend{font-size:12px;color:var(--muted)}.legend .blue{color:var(--blue)}.legend .green{color:var(--green)}.chart{height:190px;display:block;width:100%}.chart-axis{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);padding:0 5px;gap:10px}.resource{margin:18px 0}.resource-title{display:flex;justify-content:space-between;gap:12px;font-size:12px}.bar{height:5px;background:#edf1f3;border-radius:8px;margin-top:8px;overflow:hidden}.bar i{height:100%;display:block;background:var(--blue)}
.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;white-space:nowrap;font-size:12px}th{font-weight:500;color:var(--muted);text-align:left;background:#fafcfc;border-bottom:1px solid var(--line);padding:11px 12px}td{border-bottom:1px solid #eef2f3;padding:17px 12px}tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafdfd}.name{font-weight:650;font-size:13px}.note{font-size:12px;color:var(--muted);max-width:220px;overflow:hidden;text-overflow:ellipsis}.row-warnings{display:flex;gap:5px;margin-top:7px}.row-warnings .badge{font-size:12px}.actions{display:flex;gap:6px;align-items:center}.actions button{padding:5px 9px;font-size:12px;min-height:31px}.empty{text-align:center;padding:40px 20px;color:var(--muted)}.empty strong{display:block;font-size:15px;color:var(--ink);margin-bottom:8px}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:18px;flex-wrap:wrap}.toolbar input{max-width:260px;flex:1 1 160px;margin:0}.toolbar select{width:auto;min-width:115px;margin:0}.toolbar .primary{margin-left:auto}.list-count{font-size:12px;color:var(--muted);margin-bottom:14px}footer{color:var(--muted);font-size:12px;padding:23px 0}footer span{float:right}
.login{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,440px);align-items:center;gap:90px;max-width:1140px;padding:70px;margin:auto}.login-story h1{font-size:46px;letter-spacing:-2px;line-height:1.3;margin:70px 0 20px}.login-story>p{font-size:16px;color:var(--muted)}.story-diagram{display:flex;align-items:center;margin-top:50px;font-size:12px;color:var(--muted)}.story-diagram span{padding:9px 13px;background:white;border:1px solid var(--line);border-radius:8px;white-space:nowrap}.story-diagram i{width:26px;height:1px;background:#99c9ce}.login-card{background:white;padding:36px;border:1px solid var(--line);border-radius:20px;box-shadow:0 18px 60px #274b5610}.login-card .login-brand{font-size:13px;font-weight:600;color:var(--blue);margin-bottom:24px}.login-card h2{font-size:25px;margin-bottom:5px}.login-card>p{margin-bottom:28px}.login-card>button{width:100%;margin-top:12px}.login-card .login-note{font-size:12px;margin:24px 0 0;text-align:center;color:var(--muted)}.password-field{display:flex;border:1px solid #cad8dc;border-radius:9px;align-items:center;margin-top:7px}.password-field:focus-within{outline:2px solid #087f8c33;border-color:var(--blue)}.password-field input{border:0;margin:0;min-width:0;background:transparent;outline:none!important}.password-field button{border:0;background:transparent;min-height:36px;padding:7px 11px;font-size:12px;color:var(--muted)}
label{display:block;font-size:12px;color:#47606a;margin-bottom:14px}input,select,textarea{display:block;width:100%;border:1px solid #cad8dc;border-radius:9px;padding:9px 11px;background:white;color:var(--ink);margin-top:6px}input:focus,select:focus,textarea:focus{outline:2px solid #087f8c22;border-color:var(--blue)}textarea{min-height:120px;font:12px/1.7 ui-monospace,monospace;resize:vertical}.two{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.checks{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 18px}.checks label{display:flex;align-items:center;gap:7px;margin:0;color:var(--ink);background:#f5f8f9;padding:8px 10px;border-radius:7px}.checks label:has(:checked){background:var(--soft);color:#096c78}.checks input{width:16px;height:16px;margin:0;accent-color:var(--blue)}.form-note{font-size:12px;color:var(--muted);margin:10px 0 18px;line-height:1.8}.form-footer{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:18px;margin-top:18px}.form-error{background:#fbecec;color:#9d303b;padding:10px 13px;border-radius:8px;margin:10px 0;font-size:12px}.form-section{border-top:1px solid var(--line);margin-top:18px;padding-top:18px}.form-section:first-child{margin:0;padding:0;border:0}dialog{border:1px solid var(--line);border-radius:18px;padding:26px;width:min(720px,95vw);max-height:90dvh;box-shadow:0 30px 100px #132c3b25;color:var(--ink)}dialog::backdrop{background:#182a3260;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.dialog-head h2{font-size:19px}.dialog-head button{border:0;min-width:36px;padding:5px}.dialog-head+div>.cards{grid-template-columns:repeat(2,1fr)}#toast{position:fixed;right:25px;bottom:25px;max-width:calc(100vw - 32px);padding:13px 19px;background:#182a32;color:white;border-radius:10px;z-index:1000;box-shadow:0 8px 30px #0002}.notice{background:#fff8e9;border:1px solid #ecdfbf;border-radius:10px;padding:12px 16px;font-size:12px;margin-bottom:20px}.notice.bad{background:#fbecec;color:#9d303b;border-color:#ecd0d3}.settings-stack{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}.qr{text-align:center;margin:20px 0}.qr img{width:210px;height:210px}.link-input{font-family:ui-monospace,monospace;font-size:12px}.audit{font-size:12px}.audit p{display:flex;gap:20px;border-bottom:1px solid #eef2f3;padding:12px 0}.audit span{color:var(--muted);white-space:nowrap}pre{white-space:pre-wrap;word-break:break-all;font:12px/1.7 ui-monospace,monospace;background:#f5f8f9;border-radius:8px;padding:15px}details{margin:14px 0}summary{cursor:pointer;margin-bottom:14px;color:var(--blue)}details .two{margin-top:14px}
.network-panel{margin-bottom:22px;background:#fff;border-top:3px solid var(--blue)}.network-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:25px;align-items:center}.network-cards{grid-template-columns:1fr;gap:0;margin:0}.network-cards .card{border:0;border-radius:0;border-left:2px solid #bddfe3;padding:7px 17px;margin:8px 0;background:transparent}.network-cards .card:first-child{padding:7px 17px;border-top:0}.network-cards .card:last-child{border-left-color:#d2c6ec}.network-cards .metric{font-size:29px;margin:5px 0}.network-chart{width:100%;height:180px;display:block}.network-legend{margin-bottom:10px}.network-panel>.form-note{margin:20px 0 0;padding-top:14px;border-top:1px solid #eef2f3}.connection-flow{display:flex;gap:14px;align-items:center;background:#f5f9f9;border:1px solid var(--line);border-radius:12px;padding:18px;margin:10px 0 20px}.connection-flow>div{flex:1}.connection-flow strong{display:block;font-size:14px}.connection-flow small{color:var(--muted);font-size:12px}.connection-flow>span{color:#88aeb3}.mobile-list{display:none}.probe-note{font-size:12px;white-space:normal;max-width:260px;overflow-wrap:anywhere;margin-top:7px}.rules-summary{max-height:330px;overflow:auto}.section-description{font-size:12px;color:var(--muted);margin:-10px 0 20px}.usage-heading{display:flex;gap:12px;align-items:center}
@media(max-width:1250px){main{padding:28px 25px}.cards{grid-template-columns:repeat(3,minmax(0,1fr))}.metric{font-size:26px}.grid{grid-template-columns:1fr}}
@media(max-width:900px){aside{width:195px;padding:25px 18px}main{margin-left:195px;padding:24px 20px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.network-layout{grid-template-columns:1fr}.network-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.login{gap:40px;padding:45px}.login-story h1{font-size:37px}.story-diagram{flex-wrap:wrap}}
@media(max-width:650px){aside{position:sticky;top:0;z-index:50;width:100%;padding:13px 16px 9px;display:block;border-right:0;border-bottom:1px solid var(--line)}.brand{font-size:20px}.brand-mark{width:31px;height:31px;border-radius:9px;font-size:22px}.brand small{display:none}.side-bottom{display:none}nav{display:flex;margin-top:11px;gap:5px}nav button{flex:1;justify-content:center;gap:6px;padding:9px 5px;font-size:12px;white-space:nowrap}nav svg{width:16px;height:16px}main{margin-left:0;padding:21px 14px}header{align-items:flex-start;margin-bottom:20px;gap:8px}h1{font-size:24px}#page-description{font-size:12px}.breadcrumb{display:none}.header-right{gap:5px;flex-wrap:wrap;justify-content:flex-end;max-width:133px}.header-right button{font-size:12px;min-height:30px;padding:5px 9px}.header-right .badge{font-size:12px;padding:3px 6px}.cards{gap:10px}.card,.panel{padding:16px}.metric{font-size:24px}.cards .sub{font-size:12px}.panel-head{gap:8px;flex-wrap:wrap}.panel-head button{font-size:12px;padding:6px 10px}.network-cards .metric{font-size:22px}.network-cards .card{padding:5px 10px}.network-cards .card:first-child{padding:5px 10px}.network-layout{gap:15px}.network-chart{height:140px}.network-panel>.form-note{margin-top:12px}.toolbar input{max-width:none;flex-basis:100%}.toolbar select{min-width:0;flex:1}.toolbar .primary{margin:0;font-size:12px}.subs-table{display:none}.mobile-list{display:grid;gap:12px}.mobile-sub{border:1px solid var(--line);border-radius:11px;padding:15px}.mobile-sub-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.mobile-sub dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:15px 0;font-size:12px}.mobile-sub dt{color:var(--muted);font-size:12px}.mobile-sub dd{margin:3px 0 0}.mobile-sub .actions{border-top:1px solid var(--line);padding-top:12px;flex-wrap:wrap}.two{grid-template-columns:1fr}.login{display:block;min-height:100dvh;padding:35px 20px;max-width:450px}.login-story .brand{margin-bottom:32px}.login-story h1,.login-story>p,.story-diagram{display:none}.login-card{padding:28px}.login-brand{display:none}.actions{flex-wrap:wrap}footer span{float:none;display:block;margin-top:5px}.connection-flow{padding:14px;gap:8px}.connection-flow strong{font-size:12px}.audit p{display:block}.audit span{display:block;margin-bottom:4px}dialog{padding:20px;max-height:90dvh}#toast{right:16px;bottom:16px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* Approved Material 3 console: blue tonal surfaces and pill navigation. */
:root{--bg:#f6f8fc;--paper:#fff;--ink:#1c2942;--muted:#67718a;--line:#e3e7ef;--blue:#2257d8;--green:#7697d9;--soft:#dce7ff;--radius:28px}
body{font-family:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}button{border-radius:24px}button:hover{background:#e7edfb;border-color:#c3d4f5}.primary:hover{background:#1847ba}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:#8ab0ff}aside{background:#edf1f9;border:0;padding:30px 18px}aside>.brand{padding:0 12px}nav{margin-top:38px;gap:8px}nav button{border-radius:30px;padding:16px 20px;gap:14px}nav button.active{background:#d9e5ff;color:#1845a6}nav button:hover{background:#e2e9f7}.brand-mark{background:#d9e5ff;color:#2257d8;border-radius:15px}.side-bottom{border-top:0}.side-bottom button{background:#e4eaf6;border:0}.breadcrumb{color:var(--muted)}main{padding:28px 42px 44px}header{margin-bottom:30px}h1{font-size:34px;letter-spacing:-1.3px}h2{font-size:19px}.badge{border-radius:20px;padding:7px 11px}.card,.panel{border:0;padding:25px}.cards>.card:first-child{border:0;padding-top:25px}.metric{font-size:34px}.panel-head{margin-bottom:20px}.panel-head button{border:0;background:#e7edfb;color:#234b9a}.bar{height:7px;background:#e9edf7}.bar i{border-radius:8px}.notice{border-radius:20px;border:0;padding:18px}.notice.warn{background:#fff1d6;color:#8b6a34}input,select,textarea{border-radius:14px;border-color:#bdc9df;background:#fbfcff}.toolbar input{border-radius:28px;background:#e8edf6;border:0}.login-story h1{color:var(--ink)}.login-card{border-radius:30px}.login-story{background:transparent}.login{background:#f6f8fc}dialog{border:0;border-radius:28px;background:#f8faff}dialog::backdrop{background:#13234255;backdrop-filter:blur(3px)}.dialog-head button{border:0;background:#e7edfb}.form-section{border-color:#e3e7ef}.mobile-sub{border-radius:20px;background:#f8faff}footer{border-top:0}th{background:#f8faff}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(290px,1fr);gap:20px;margin-bottom:20px}.dashboard-grid .network-panel{margin:0;background:#dce7ff;padding:27px 30px}.network-layout{display:block}.network-cards{grid-template-columns:1fr 1fr;gap:25px;margin:23px 0 15px}.network-cards .card,.network-cards .card:first-child{padding:0;border:0}.network-cards .metric{font-size:43px;letter-spacing:-1.5px}.network-cards .card label,.network-cards .sub{color:#5370a6}.network-panel .panel-head h2{color:#244783}.network-panel .badge{background:#c4d7ff;color:#2458b1}.network-chart{height:170px}.network-panel>.form-note{border-top:1px solid #bfd1f4;color:#5370a6;font-size:12px}.network-legend{margin:0;color:#526b9e}.network-plot{margin-top:20px}.usage-total{font-size:37px;line-height:1.3;font-weight:620;letter-spacing:-1.3px;margin:24px 0}.usage-total small{display:block;font-size:12px;font-weight:400;letter-spacing:0;color:var(--muted);margin-top:7px}.usage-secondary{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:20px;margin-top:22px;gap:12px}.usage-secondary span{color:var(--muted);font-size:12px}.usage-secondary strong{display:block;font-size:21px;margin-top:5px}.below-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.traffic-history{margin-bottom:20px}.route-line{display:flex;gap:13px;align-items:center;margin:22px 0}.route-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:15px;background:#e5edff;color:#2756bd;font-size:21px;flex:none}.route-meta{flex:1;min-width:0}.route-meta small{display:block;color:var(--muted);font-size:12px;margin-top:5px}.seg{display:flex;background:#e8edf6;padding:4px;border-radius:25px;gap:2px}.seg button{padding:7px 13px;border:0;background:transparent;color:var(--muted);font-size:12px;min-height:32px}.seg button.selected{background:white;color:var(--blue);box-shadow:0 2px 6px #25385b12}.routing-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#e5eee9;border-radius:24px;padding:19px 22px;margin-bottom:25px}.routing-banner strong{color:#305d49}.routing-banner p{font-size:12px;color:#5e7669}.routing-banner button{white-space:nowrap}.routing-toolbar{display:flex;align-items:center;gap:18px;margin-bottom:22px}.routing-toolbar input{max-width:390px;flex:1;min-width:150px;border:0;border-radius:30px;padding:14px 18px;background:#e8edf6}.routing-filters{display:flex;flex-wrap:wrap;gap:8px}.routing-filters button{border-radius:20px;padding:8px 15px;background:transparent;color:#5b6780}.routing-filters button.selected{background:#dce7ff;color:#1c49aa;border-color:transparent}.section-caption{font-size:12px;color:var(--muted);margin:0 0 16px}.platform-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.platform{width:100%;background:white;padding:23px;border-radius:26px;text-align:left;border:2px solid transparent}.platform:hover{background:#fff;box-shadow:0 7px 20px #293d6c0c;border-color:#dce7ff}.platform.changed{border-color:#89a9ff}.platform-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.logo{height:49px;width:49px;border-radius:16px;display:grid;place-items:center;background:#f0f3f8}.platform-logo{width:32px;height:32px;object-fit:contain}.platform h3{font-size:16px;margin:16px 0 5px}.platform p{font-size:12px;color:var(--muted);min-height:38px}.policy{display:flex;align-items:center;justify-content:space-between;margin-top:22px}.chip{background:#edf2ff;color:#355eaa;padding:8px 11px;border-radius:15px;font-size:12px}.chip.isp{background:#efe6fb;color:#8052a1}.chip.direct{background:#e4f1e7;color:#3e7b51}.rules-footer{margin:22px 0 10px;display:flex;justify-content:space-between;align-items:center;gap:20px;background:#e8edf6;border-radius:24px;padding:18px 22px}.rules-footer p{font-size:12px;color:var(--muted)}.rules-footer button{white-space:nowrap}.routing-drawer{position:fixed;inset:0 0 0 auto;margin:0;width:480px;max-width:100%;height:100dvh;max-height:100dvh;border-radius:28px 0 0 28px;padding:29px 30px}.routing-drawer .dialog-head{margin-bottom:27px}.routing-drawer h2{font-size:27px}.drawer-brand{display:flex;align-items:center;gap:15px;margin-bottom:24px}.drawer-brand .platform-logo{width:44px;height:44px}.drawer-brand p{color:var(--muted)}.route-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:12px 0 24px}.route-choice{position:relative;margin:0!important;padding:17px 8px;border:1px solid #d6deed;border-radius:20px;background:white;text-align:center;color:#667089;cursor:pointer;font-size:13px}.route-choice:has(input:checked){background:#dfebff;border:2px solid #3364ce;color:#1e4caa;padding:16px 7px}.route-choice input{width:auto;margin:0 6px 0 0;accent-color:#2257d8}.route-explain{font-size:12px;background:#edf2fa;padding:15px;border-radius:16px;margin:18px 0}.routing-toggle{display:flex!important;align-items:center;justify-content:space-between;margin-top:24px!important;gap:15px}.routing-toggle input{width:22px;height:22px;accent-color:#2257d8}.routing-drawer textarea{font-family:ui-monospace,monospace;font-size:12px}.summary-item{padding:20px 0;border-bottom:1px solid var(--line)}.summary-item p{font-size:12px;color:var(--muted)}.summary-item pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#edf2fa;padding:12px;border-radius:14px;font-size:12px}.routing-drawer .form-footer{position:sticky;bottom:-29px;background:#f8faff;padding:20px 0;margin-top:20px}.routing-drawer .form-error{background:#fbecec;color:#a53641;border-radius:14px;padding:12px}
@media(max-width:1200px){main{padding:28px 25px}.dashboard-grid{grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr)}.network-cards .metric{font-size:32px}.routing-toolbar{flex-wrap:wrap}.platform-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){aside{width:195px;padding:25px 18px}main{margin-left:195px;padding:24px 20px}.dashboard-grid,.below-grid{grid-template-columns:1fr}.network-cards .metric{font-size:39px}.routing-banner,.rules-footer{align-items:flex-start;flex-direction:column}.platform-grid{gap:12px}.platform{padding:18px}.routing-filters{gap:6px}}
@media(max-width:650px){aside{position:sticky;width:100%;padding:13px 12px 9px;background:#edf1f9}aside>.brand{padding:0 4px}nav{margin-top:11px;gap:3px}nav button{flex-direction:column;gap:2px;padding:7px 3px;font-size:12px;border-radius:20px;min-width:0}nav svg{width:19px;height:19px}main{margin-left:0;padding:21px 14px}h1{font-size:27px}.card,.panel{padding:20px;border-radius:25px}.dashboard-grid .network-panel{padding:23px 20px}.network-cards .metric{font-size:27px;letter-spacing:-.7px}.network-cards{gap:10px;margin-top:22px}.network-cards .card,.network-cards .card:first-child{padding:0}.network-cards .card label{font-size:12px}.network-layout{gap:0}.network-chart{height:150px}.dashboard-grid,.below-grid{gap:15px;margin-bottom:15px}.usage-total{font-size:35px}.routing-toolbar input{max-width:none;width:100%;flex-basis:100%}.routing-filters button{font-size:12px;padding:7px 11px}.routing-banner{padding:18px}.routing-banner .actions{gap:7px}.routing-banner button{font-size:12px;padding:9px 12px}.platform-grid{grid-template-columns:1fr 1fr;gap:10px}.platform{padding:15px;border-radius:22px}.platform-top .badge{font-size:12px;padding:5px 7px}.platform-top{gap:4px;flex-wrap:wrap}.logo{width:42px;height:42px;border-radius:14px}.platform-logo{width:28px;height:28px}.platform h3{font-size:14px}.platform p{font-size:12px;min-height:36px}.chip{font-size:12px;padding:7px 9px}.policy{margin-top:13px}.section-caption{font-size:12px;line-height:1.7}.rules-footer{padding:18px;border-radius:22px}.routing-drawer{border-radius:24px 0 0 24px;padding:23px 20px}.routing-drawer .form-footer{bottom:-23px}.route-choice{font-size:12px;padding:15px 5px}.route-choice:has(input:checked){padding:14px 4px}.route-choice input{margin-right:3px}.route-meta strong{font-size:12px}.resource-title{font-size:12px}header{gap:8px}.header-right{max-width:125px}.header-right .badge{padding:5px 7px}footer{font-size:12px}.routing-drawer h2{font-size:24px}.route-icon{width:35px;height:35px}.route-line{gap:10px}}
.routing-regions{display:flex;gap:6px;border-radius:28px;background:#e8edf6;padding:5px;margin:0 0 22px;width:fit-content}.routing-regions button{border:0;background:transparent;padding:11px 24px;color:#67718a}.routing-regions button.selected{background:#fff;color:#2257d8;box-shadow:0 2px 6px #25385b12}.routing-regions span{margin-left:8px;font-size:12px;background:#e4ebfa;border-radius:14px;padding:3px 7px}@media(max-width:650px){.routing-regions{width:100%}.routing-regions button{flex:1;padding:10px 12px}}

/* Compact platform cards retain accessible controls and readable labels. */
.platform-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.platform{padding:16px;border-radius:20px}
.platform-top .badge{font-size:12px;padding:5px 8px}
.platform .logo{width:38px;height:38px;border-radius:12px}
.platform .platform-logo{width:27px;height:27px;border-radius:6px}
.platform h3{font-size:15px;margin:11px 0 4px;line-height:1.4}
.platform p{margin:0;min-height:0;line-height:1.5}
.platform .policy{margin-top:12px}
.platform .chip{padding:6px 9px;font-size:12px}
@media(max-width:1200px){.platform-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.platform-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.platform-grid{gap:9px}.platform{padding:12px;border-radius:18px}.platform .logo{width:32px;height:32px;border-radius:10px}.platform .platform-logo{width:24px;height:24px}.platform-top .badge{font-size:12px;padding:4px 6px}.platform h3{font-size:13px;margin-top:9px}.platform .policy{margin-top:10px}}

/* Horizontal platform identity, compact information rows. */
.platform{padding:13px 14px;border-radius:18px}
.platform-top{justify-content:flex-start;flex-wrap:nowrap;gap:9px}
.platform .logo{flex:none;width:32px;height:32px;border-radius:10px}
.platform .platform-logo{width:24px;height:24px}
.platform h3{margin:0;font-size:14px;min-width:0;overflow-wrap:anywhere;line-height:1.4}
.platform-details{display:flex;align-items:center;gap:7px;margin-top:9px;flex-wrap:wrap}
.platform-details .badge{font-size:12px;padding:3px 6px;line-height:1.4}
.platform-details p{font-size:12px;margin:0;line-height:1.4}
.platform .policy{margin-top:9px}
.platform .chip{padding:4px 8px}
@media(max-width:650px){.platform{padding:11px}.platform-top{gap:7px}.platform h3{font-size:12px}.platform .logo{width:28px;height:28px}.platform .platform-logo{width:22px;height:22px}.platform-details{gap:5px;margin-top:8px}.platform-details p{font-size:12px}.platform .policy{margin-top:8px}}

.platform-usage{margin:24px 0;border-top:1px solid var(--line);padding-top:20px}.platform-usage .panel-head{margin-bottom:10px}.platform-usage-list{max-height:420px;overflow:auto}.platform-usage-row{padding:15px 0;border-bottom:1px solid var(--line)}.platform-usage-title{display:flex;gap:10px;align-items:center}.platform-usage-title img{object-fit:contain;border-radius:6px;flex:none}.platform-usage-title div{flex:1;min-width:0}.platform-usage-title small{display:block;font-size:12px;color:var(--muted);margin-top:4px}.platform-usage-title>b{font-size:14px;white-space:nowrap}.platform-usage-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px;font-size:12px;color:var(--muted)}.platform-usage-values b{display:block;color:var(--ink);font-size:12px;margin-top:3px}@media(max-width:650px){.platform-usage-title strong{font-size:12px}.platform-usage .panel-head h2{font-size:17px}.platform-usage .panel-head .muted{font-size:12px}.platform-usage-values{grid-template-columns:repeat(2,minmax(0,1fr))}}

#dialog .cards>.card{min-width:0}#dialog .cards .metric{overflow-wrap:anywhere}@media(max-width:650px){#dialog .cards>.card{padding:14px}#dialog .cards .metric{font-size:clamp(18px,5vw,24px);letter-spacing:-.5px}}

.password-field input{flex:1;width:0}.password-field button{flex:0 0 52px;min-width:52px;min-height:44px;padding:8px;white-space:nowrap;line-height:1.3;text-align:center;margin-right:3px;border-radius:10px}

.routing-filters{flex:1;min-width:0}
/* Spacious subscription analytics: compact summary and a dense, readable ranking. */
#dialog.usage-dialog{width:min(1180px,calc(100vw - 64px));max-width:none;max-height:calc(100dvh - 48px);padding:26px 28px;overflow:auto}
.usage-dialog .dialog-head{position:sticky;top:-26px;background:#f8faff;z-index:2;padding:15px 0;margin-top:-15px;margin-bottom:12px;gap:12px}
.usage-context{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.usage-context>div{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.usage-context span:not(.badge){color:var(--muted);font-size:12px}.usage-context button{padding:8px 14px;font-size:12px}
#dialog.usage-dialog .usage-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:22px}#dialog.usage-dialog .usage-summary>.card{padding:16px 13px;border-radius:18px}#dialog.usage-dialog .usage-summary .metric{font-size:23px;letter-spacing:-.6px;margin-top:10px}.usage-summary label{font-size:12px}
.usage-analysis{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:22px}.usage-dialog .platform-usage{margin:0;padding:0;border:0;min-width:0}.usage-dialog .platform-usage-list{max-height:none;overflow:visible}.usage-dialog .panel-head{margin-bottom:14px}.usage-dialog h2{font-size:18px}.usage-toolbar{display:grid;grid-template-columns:minmax(140px,1fr) 130px 130px;gap:8px;margin-bottom:9px}.usage-toolbar input,.usage-toolbar select{margin:0;padding:10px 12px;font-size:12px;width:100%;min-width:0}.usage-dialog .platform-usage-row{padding:15px 0}.usage-dialog .platform-usage-title strong{font-size:13px}.usage-dialog .platform-usage-title>b{font-size:15px}.usage-dialog .platform-usage-title>b small{text-align:right;font-weight:400}.usage-dialog .platform-usage-values{margin-top:10px}
.usage-exit-panel{background:#eaf0fb;border-radius:22px;padding:20px;height:fit-content}.usage-exit-item{margin:22px 0}.usage-exit-item>strong{font-size:12px;display:block;margin-bottom:9px}.usage-exit-item .resource-title{font-size:12px}.usage-exit-item .bar{background:#d4dff3;margin-top:9px}.usage-scope{border-top:1px solid #d4dff3;margin-top:20px;padding-top:15px;color:var(--muted);font-size:12px;line-height:1.7}.usage-scope summary{cursor:pointer;color:#35548d;font-weight:600}.usage-trend{margin-top:24px;border-top:1px solid var(--line);padding-top:20px}.usage-trend .chart{height:140px}.usage-bottom{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:12px;padding-top:16px}
@media(max-width:1000px){#dialog.usage-dialog .usage-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.usage-analysis{grid-template-columns:minmax(0,1fr) 220px}.usage-toolbar{grid-template-columns:1fr 1fr}.usage-toolbar input{grid-column:1/-1}}
@media(max-width:650px){#dialog.usage-dialog{width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:18px 16px;border-radius:0}.usage-dialog .dialog-head{top:-18px;margin-top:-10px;padding-top:12px}.usage-dialog .dialog-head h2{font-size:20px}.usage-context{align-items:flex-start}.usage-context span:not(.badge){font-size:12px}.usage-context button{white-space:nowrap}#dialog.usage-dialog .usage-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}#dialog.usage-dialog .usage-summary>.card{padding:13px}#dialog.usage-dialog .usage-summary .metric{font-size:22px}.usage-analysis{grid-template-columns:1fr;gap:20px}.usage-dialog .platform-usage-values{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;font-size:12px}.usage-dialog .platform-usage-values b{font-size:12px}.usage-dialog .platform-usage-title strong{font-size:12px}.usage-exit-panel{padding:18px}.usage-trend .legend{font-size:12px}.usage-bottom{line-height:1.8;padding-bottom:20px}}

/* Display-only provider plans share the existing console surfaces. */
.line-plans{margin-bottom:20px}.line-plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.line-plan{min-width:0;background:#f0f4fc;border-radius:22px;padding:20px}.line-plan-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.line-plan-head h3{font-size:15px;overflow-wrap:anywhere}.line-plan-head button{font-size:12px;padding:6px 10px;white-space:nowrap}.line-plan-quota{font-size:24px;letter-spacing:-.5px;font-weight:600;margin:20px 0 6px}.line-plan-bandwidth{font-size:12px;color:var(--muted)}.line-plan-usage{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:24px;font-size:12px}.line-plan-usage span{color:var(--muted)}.line-plan-usage strong{font-size:19px}.line-plan-remaining{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted);margin-top:12px}.line-plan .form-note{margin-bottom:0}.line-plan-note{margin-bottom:0;margin-top:18px}
@media(max-width:1200px){.line-plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.line-plan-grid{grid-template-columns:1fr}.line-plan{padding:18px}.line-plan-quota{font-size:24px}.line-plan-note{font-size:12px}}

/* Console refinement: calm surfaces, consistent density and intentional hierarchy. */
:root{--bg:#f5f7fc;--ink:#1c2942;--muted:#63718a;--line:#e3e9f2;--radius:22px;--surface-muted:#f4f7fc;--focus:#2257d833;--elevation:0 2px 8px #1c355606}
body{line-height:1.6;-webkit-font-smoothing:antialiased}
button{border-radius:12px;font-weight:500;transition:background .15s,border-color .15s,box-shadow .15s}
button:hover{background:#f0f4fc;border-color:#c6d3eb}
button:disabled{cursor:not-allowed;opacity:.46}
.primary{border-radius:13px;box-shadow:0 2px 4px #2257d81a}
.primary:hover{box-shadow:0 3px 8px #2257d825}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
aside{background:#edf2fa;border-right:1px solid #e4eaf4;padding:28px 18px}
.brand{font-size:22px;letter-spacing:-.4px}
.brand small{font-size:12px;letter-spacing:.4px;margin-top:3px}
.brand-mark{border-radius:13px}
nav{gap:6px;margin-top:32px}
nav button{border-radius:14px;padding:13px 17px;min-height:48px}
nav button.active{box-shadow:inset 0 0 0 1px #ccdfff}
.side-bottom button{border-radius:12px;background:#e6edf8;min-height:40px}
main{padding:30px 38px 32px}
header{margin-bottom:26px}
h1{font-size:30px;letter-spacing:-.8px;line-height:1.3}
h2{font-size:17px;font-weight:650;letter-spacing:-.15px}
#page-description{font-size:13px;margin-top:7px}
.breadcrumb{font-size:12px;margin-bottom:10px}
.header-right{gap:10px}
.header-right>button{min-height:40px;padding:8px 15px}
.badge{padding:5px 9px;border-radius:9px;line-height:1.5}
.card,.panel{border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--elevation)}
.cards>.card:first-child{border:1px solid var(--line);padding-top:24px}
.panel-head{margin-bottom:18px}
.panel-head button{background:#edf3ff;border:1px solid #e0e9fa;border-radius:11px}
.metric{font-size:31px;letter-spacing:-.8px}
.dashboard-grid,.below-grid{gap:18px;margin-bottom:18px}
.dashboard-grid .network-panel{padding:25px 27px;background:#e7efff;border-color:#dbe6fb}
.network-cards .card,.network-cards .card:first-child{box-shadow:none;border:0;background:transparent}
.network-cards{margin:20px 0 14px;gap:18px}
.network-cards .metric{font-size:38px;letter-spacing:-1px}
.network-panel .badge{background:#d4e3ff}
.network-panel>.form-note{border-color:#cfddf4;font-size:12px}
.usage-total{font-size:35px;letter-spacing:-1px}
.usage-secondary{padding-top:18px;margin-top:20px}
.usage-secondary strong{font-size:20px}
.route-line{margin:20px 0;gap:12px}
.route-icon{width:38px;height:38px;border-radius:12px}
.bar{height:6px;background:#e7edf7}
.seg{border-radius:12px;padding:3px}
.seg button{border-radius:9px;padding:6px 13px}
.table-wrap{border-radius:12px}
th{font-size:12px;font-weight:600;background:#f4f7fc;padding:12px 14px;color:#65748d}
td{padding:17px 14px;border-color:#ecf0f6;vertical-align:middle}
tbody tr:hover{background:#f7faff}
.name{font-size:13px}
.note{line-height:1.6;margin-top:3px}
.actions{gap:7px;flex-wrap:wrap}
.actions button{border-radius:9px;min-height:32px}
.toolbar{gap:10px;margin-bottom:14px}
.toolbar input{border-radius:12px;border:1px solid var(--line);background:#fff}
.toolbar select{background:#fff;border-color:var(--line)}
input,select,textarea{border-radius:11px;background:#fff;border-color:#cdd8e8;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px var(--focus)}
label{font-weight:500;color:#455773;line-height:1.6}
label input,label select,label textarea{font-weight:400}
textarea{padding:12px 14px;line-height:1.8}
.password-field{border-radius:12px;border-color:#cdd8e8;background:#fff}
.password-field input{box-shadow:none}
.checks label{border:1px solid transparent;border-radius:10px;background:var(--surface-muted)}
.checks label:has(:checked){border-color:#cdddf8;background:#edf3ff;color:#234b9a}
.notice{border-radius:14px;padding:14px 17px;line-height:1.7}
.routing-banner{border-radius:18px;padding:18px 20px;margin-bottom:20px;border:1px solid #dcebe2}
.routing-banner p{line-height:1.7}
.routing-regions{border-radius:16px;padding:4px;margin-bottom:18px;background:#e8eef8}
.routing-regions button{border-radius:12px;padding:10px 22px}
.routing-regions span{border-radius:8px;background:#e9effb}
.routing-toolbar{gap:14px;margin-bottom:18px}
.routing-toolbar input{background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px 15px;min-height:42px}
.routing-filters{gap:7px}
.routing-filters button{border-radius:10px;background:#fff;border-color:var(--line);padding:7px 12px;font-size:12px}
.routing-filters button.selected{background:#e3edff;border-color:#cbdcfc}
.section-caption{font-size:12px;margin-bottom:13px}
.platform{border:1px solid var(--line);border-radius:15px;padding:14px;box-shadow:var(--elevation)}
.platform:hover{border-color:#bacef3;background:#fcfdff;box-shadow:0 3px 12px #2945740b}
.platform.changed{border-color:#89a9ff;background:#f8faff}
.platform .logo{background:#f4f7fc;border-radius:9px}
.platform h3{font-size:13px;line-height:1.5}
.platform-details{gap:6px;margin-top:10px}
.platform-details .badge{border-radius:6px;padding:3px 6px}
.platform .chip{border-radius:7px;padding:4px 8px}
.platform .policy>span:last-child{color:#8192af;font-size:16px}
.rules-footer{border-radius:16px;background:#eaf0fa;padding:17px 20px}
.line-plan{border:1px solid #e4ebf7;background:#f6f8fd;border-radius:16px;padding:19px}
.line-plan-head h3{margin:0;font-size:14px;line-height:1.5}
.line-plan-head button{background:#fff;border-color:#dfe7f4;border-radius:9px;min-height:32px}
.line-plan-quota{font-size:23px;margin-top:19px;letter-spacing:-.5px}
.line-plan-usage{margin-top:20px}
.line-plan-usage strong{font-size:19px}
.line-plan .form-note{font-size:12px;line-height:1.75}
.line-plan-note{padding-top:15px;border-top:1px solid #edf1f7;line-height:1.8}
dialog{border:1px solid #dce5f2;border-radius:22px;background:#fbfcff;box-shadow:0 24px 80px #15294a26;padding:25px}
dialog::backdrop{background:#16284155;backdrop-filter:blur(4px)}
.dialog-head{margin-bottom:21px;gap:14px}
.dialog-head h2{font-size:21px;line-height:1.4}
.dialog-head button{border-radius:50%;width:36px;height:36px;min-height:36px;flex:none;padding:0;background:#edf2fb}
.form-footer{padding-top:17px;gap:9px}
.form-footer button{min-width:84px;min-height:40px}
.form-note{line-height:1.8}
.form-error{border-radius:10px}
.routing-drawer{width:500px;border-radius:22px 0 0 22px;padding:26px}
.routing-drawer .dialog-head{margin-bottom:23px}
.routing-drawer h2{font-size:23px}
.routing-drawer .form-footer{bottom:-26px;background:#fbfcff;padding:18px 0}
.route-choice{border-radius:12px;background:#fff;padding:14px 7px}
.route-choice:has(input:checked){padding:13px 6px;background:#e8f0ff}
.route-explain{border-radius:12px;background:#f0f4fc;line-height:1.8}
.drawer-brand{margin-bottom:20px}
#dialog.usage-dialog{border-radius:22px}
.usage-dialog .dialog-head{background:#fbfcff}
#dialog.usage-dialog .usage-summary>.card{border-radius:13px;border:1px solid var(--line);box-shadow:none}
.usage-exit-panel{border:1px solid #e0e8f7;border-radius:16px;background:#f0f5ff}
.usage-context button,.usage-toolbar input,.usage-toolbar select{border-radius:10px}
.platform-usage-row:last-child{border-bottom:0}
.login-card{border-radius:24px;padding:32px;box-shadow:0 10px 38px #2342690c}
.login-card h2{font-size:24px}
#toast{border-radius:12px;box-shadow:0 6px 24px #15294a22}
footer{margin-top:6px;line-height:1.8;color:#72819a}
@media(max-width:1200px){main{padding:26px 25px}.network-cards .metric{font-size:32px}}
@media(max-width:900px){main{padding:24px 20px}.dashboard-grid,.below-grid{grid-template-columns:1fr}.network-cards .metric{font-size:35px}}
@media(max-width:650px){
 aside{padding:12px 12px 8px;background:#edf2fa;border-right:0;box-shadow:0 2px 8px #1c355609}
 nav{gap:3px;margin-top:10px}nav button{padding:7px 3px;border-radius:11px;min-height:44px;font-size:12px}
 .brand{font-size:19px}.brand-mark{border-radius:10px}
 main{padding:20px 14px 24px}h1{font-size:25px}h2{font-size:16px}header{margin-bottom:20px}
 #page-description{font-size:12px;line-height:1.7}.header-right{gap:5px}
 .header-right>button{min-height:36px;padding:6px 10px}.header-right .badge{padding:5px 7px;font-size:12px}
 .panel,.card{padding:18px;border-radius:18px}.cards>.card:first-child{padding-top:18px}
 .dashboard-grid .network-panel{padding:21px 19px;border-radius:20px}.network-cards .metric{font-size:27px;letter-spacing:-.7px}
 .network-cards .card,.network-cards .card:first-child{padding:0}.network-cards{gap:12px;margin-top:18px}
 .usage-total{font-size:31px}.usage-secondary strong{font-size:18px}
 .routing-banner{padding:16px;border-radius:15px}.routing-banner .actions{width:100%;justify-content:flex-end}
 .routing-regions button{padding:9px 7px;font-size:12px;min-height:44px}.routing-regions span{margin-left:4px;padding:3px 5px;font-size:12px}
 .routing-toolbar{gap:10px}.routing-toolbar input{width:100%;max-width:none;flex-basis:100%;min-height:44px}
 .routing-filters{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
 .routing-filters button{flex:none;padding:7px 11px;min-height:44px;font-size:12px}
 .platform{padding:12px;border-radius:13px}.platform h3{font-size:12px}.platform-details{gap:5px;margin-top:8px}
 .platform .logo{width:30px;height:30px}.platform .platform-logo{width:24px;height:24px}
 .platform .policy{margin-top:9px}.rules-footer{padding:16px;border-radius:15px}
 .line-plan{padding:17px;border-radius:14px}.line-plan-head button{min-height:40px}.line-plan-quota{font-size:22px}
 input:not([type=checkbox]):not([type=radio]),select{min-height:44px}.toolbar select{font-size:12px}
 .mobile-sub{border-radius:14px;background:#fbfcff}.mobile-sub .actions button{min-height:40px;flex:1}
 dialog{border-radius:20px;padding:22px 18px}.dialog-head h2{font-size:20px}.dialog-head button{width:40px;height:40px;min-height:40px}
 .form-footer button{min-height:44px}.routing-drawer{width:100%;border-radius:0;padding:22px 18px}
 .routing-drawer .form-footer{bottom:-22px;padding:16px 0}.routing-drawer h2{font-size:22px}
 #dialog.usage-dialog{border-radius:0}.usage-dialog .dialog-head{background:#fbfcff}
 .login-card{padding:27px 23px;border-radius:22px}footer span{float:none;display:block;margin-top:5px}
}
@media(prefers-reduced-motion:reduce){button,input,select,textarea{transition:none}}
/* Keep selection controls aligned with their labels. */
.route-choice{display:flex;align-items:center;justify-content:center;gap:7px;min-height:58px}
.route-choice input{display:inline-block;flex:none;margin:0;accent-color:var(--blue)}
@media(max-width:650px){.routing-banner{gap:12px}.route-choice{gap:5px;min-height:54px}.route-choice input{margin:0}}

/* Evidence console: restrained Material surfaces with a shared local identity. */
:root{--bg:#F5F7FB;--paper:#FFFFFF;--ink:#18263D;--muted:#65738B;--blue:#224DD4;--green:#168579;--line:#E1E7F0;--soft:#E9EFFD;--radius:20px;--focus:#224dd455}
body{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Noto Sans CJK SC","Microsoft YaHei",sans-serif}
aside{width:232px;background:#fff;border-right:1px solid var(--line);padding:29px 18px}
aside>.brand{padding:0 10px}.brand{font-size:22px;letter-spacing:-.5px}.brand small{letter-spacing:.25px;color:#7a879a}.brand-mark{background:transparent;border-radius:14px;flex:none;object-fit:contain}
nav{margin-top:35px;gap:5px}nav button{border-radius:12px;padding:13px 15px;font-size:13px;gap:13px;color:#5e6c83}nav button.active{background:#edf2ff;color:var(--blue)}nav button:hover{background:#f3f6fc}nav svg{width:20px;height:20px}
.side-bottom{border-top:1px solid var(--line)}.side-bottom button{background:#f4f7fc;border-radius:11px}.dot{background:var(--green)}
main{margin-left:232px;max-width:1712px;padding:30px 34px 30px}header{margin-bottom:25px}h1{font-size:29px;letter-spacing:-.75px}h2{font-size:16px}h3{font-size:14px}.breadcrumb{font-size:12px;margin-bottom:7px;color:#6f7d92}#page-description{font-size:13px}
.panel,.card{border:1px solid var(--line);border-radius:20px;padding:22px;box-shadow:0 2px 5px #18263d03}.panel-head{margin-bottom:18px;gap:14px}.panel-head button{border:1px solid #dce5f6;border-radius:10px;color:#325385;background:#f6f8fd}.panel-head button.primary{background:var(--blue);border-color:var(--blue);color:white}
button{border-radius:10px;min-height:38px}button.primary{background:var(--blue);border-color:var(--blue);border-radius:10px;color:#fff}button.primary:hover{background:#183cab}.actions button{min-height:34px}.badge{padding:4px 8px;border-radius:7px;font-size:12px;background:#e7f4f1;color:#177a6d}.badge.dim{background:#f0f3f8;color:#65738b}.badge.warn{background:#fff4e0;color:#936418}.badge.bad{background:#fcecee;color:#a53641}.badge::before{width:5px;height:5px}
input,select,textarea{border-radius:10px;background:#fff;border-color:#ced8e8;color:var(--ink)}label{color:#5b6a83}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #224dd466;outline-offset:3px}input:focus,select:focus,textarea:focus{outline:2px solid #224dd422;border-color:var(--blue)}
.notice{border-radius:12px;padding:13px 16px}.notice.bad{background:#fcecee}.notice.warn{background:#fff4e0}.form-note{font-size:12px;color:#6d7b91;line-height:1.8}.section-description{font-size:12px;color:var(--muted);margin:5px 0 0}
.dashboard-grid .network-panel{background:#edf3ff;border-color:#dce6fb;padding:23px 25px}.network-panel .badge{background:#e0eaff;color:#3457a2}.network-panel>.form-note{border-top-color:#d5e1f7;color:#647b9e}.network-cards .card,.network-cards .card:first-child{background:transparent;box-shadow:none}.network-cards .metric{font-size:34px;letter-spacing:-.8px}.network-cards .sub,.network-cards .card label{color:#5c7298}.network-chart{height:165px}.usage-total{font-size:33px;letter-spacing:-1px}.usage-secondary{margin-top:18px;padding-top:16px}.usage-secondary strong{font-size:20px}.route-icon{background:#eff3fc;border-radius:12px}.seg{border-radius:10px}.seg button{border-radius:8px}
.monitor-summary{margin:0 0 20px;padding:19px 22px}.monitor-summary .panel-head{margin-bottom:14px}.health-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:15px}.health-strip>div{min-width:0}.health-strip span{display:block;color:var(--muted);font-size:12px}.health-strip strong{font-size:21px;font-weight:650;display:block;margin-top:5px;line-height:1.45}.health-strip small{display:block;font-size:12px;color:var(--muted);font-weight:400}.attention-list{border-top:1px solid var(--line)}.attention-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid #edf1f7}.attention-item:last-child{border-bottom:0}.attention-item strong{font-size:12px;font-weight:550}.attention-item small{font-size:12px;color:var(--muted);margin-left:10px}.attention-item button{min-height:32px;font-size:12px;padding:5px 12px}
.monitor-tabs{display:flex;gap:5px;background:#eaf0fb;padding:5px;width:fit-content;border-radius:12px;margin-bottom:20px}.monitor-tabs button,.statistics-presets button{background:transparent;border:0;color:var(--muted);padding:8px 17px;border-radius:9px}.monitor-tabs button.selected,.statistics-presets button.selected{color:var(--blue);background:#fff;box-shadow:0 1px 4px #20345a10}.monitor-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:20px;margin-bottom:20px}.monitor-grid .health-strip{grid-template-columns:1fr 1fr}.service-list{border-top:1px solid var(--line);margin-top:20px}.service-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid #edf1f7;gap:10px}.service-row:last-child{border-bottom:0}.service-row strong{display:block;font-size:13px;font-weight:550}.service-row small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.exit-panel{margin-bottom:20px}.exit-panel>.panel-head{align-items:flex-start}.exit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.exit-card{padding:17px 18px;border:1px solid var(--line);background:#fcfdff;border-radius:16px;min-width:0;display:flex;flex-direction:column}.exit-head{display:flex;justify-content:space-between;align-items:flex-start;gap:9px}.exit-head h3{font-size:14px;margin:0;line-height:1.5}.exit-head small{font-size:12px;color:var(--muted)}.exit-head .badge{font-size:12px}.exit-ip{position:relative;margin-top:20px;display:flex;flex-wrap:wrap;align-items:center;gap:3px 8px}.exit-ip>span{font-size:12px;color:var(--muted);flex-basis:100%}.exit-ip strong{font-size:22px;line-height:1.45;letter-spacing:-.4px;overflow-wrap:anywhere;min-width:0}.exit-ip button{border:0;background:transparent;color:var(--blue);font-size:12px;padding:4px 6px;min-height:30px}.exit-location{font-size:12px;color:#6d7b91;margin:4px 0 18px}.exit-facts{margin:0;display:grid;gap:9px}.exit-facts>div{display:grid;grid-template-columns:90px minmax(0,1fr);gap:7px}.exit-facts dt{color:#748198;font-size:12px}.exit-facts dd{margin:0;font-size:12px;text-align:right;overflow-wrap:anywhere}.exit-speed{border-top:1px solid var(--line);padding-top:12px;margin-top:16px}.exit-speed>strong{display:block;font-size:13px;margin-top:8px}.exit-speed>strong span{margin-left:8px;font-size:12px;color:#5b6a83}.exit-speed>small{display:block;font-size:12px;color:var(--muted);margin-top:4px}.exit-actions{padding-top:14px;margin-top:auto;flex-wrap:wrap;gap:5px}.exit-actions button{padding:5px 10px;font-size:12px;min-height:34px}.exit-card.highlight{border-color:#6686e6;box-shadow:0 0 0 3px #224dd420}.speed-explanation{padding:12px 0 0;border-top:1px solid var(--line);margin-top:15px}.speed-explanation summary{color:#3d5a91;font-size:12px;cursor:pointer}.exit-detail-context{margin-bottom:23px}.exit-detail-context .exit-speed{margin-bottom:14px}#node-metadata-form{border-top:1px solid var(--line);padding-top:20px;margin-top:22px}#dialog:not(.usage-dialog):not(.routing-drawer){width:min(660px,calc(100vw - 40px))}.diagnostic-entry>.panel-head{margin-bottom:10px}
.monitor-toolbar{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px;margin:12px 0 17px}.monitor-toolbar label{margin:0;flex:1;min-width:130px}.monitor-toolbar input,.monitor-toolbar select{margin:5px 0 0;min-height:40px;font-size:12px}.monitor-toolbar button{min-width:112px;min-height:40px}.event-list{max-height:680px;overflow:auto}.event-row{display:grid;grid-template-columns:160px minmax(0,1fr) 140px;gap:14px;padding:15px 0;border-bottom:1px solid var(--line);align-items:start}.event-row:last-child{border-bottom:0}.event-row time,.event-row>span{font-size:12px;color:var(--muted)}.event-row strong{font-size:13px;font-weight:550}.event-row p{font-size:12px;color:#748198;margin-bottom:0}.statistics-presets{display:flex;flex-wrap:wrap;gap:4px;background:#eef2fa;width:fit-content;border-radius:10px;padding:4px;margin-bottom:17px}.statistics-presets button{padding:7px 15px;font-size:12px;min-height:35px}.statistics-context{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;padding-top:19px;border-top:1px solid var(--line)}.statistics-context strong{font-size:13px;font-weight:550}.statistics-context small{display:block;color:var(--muted);font-size:12px;margin-top:4px}.statistics-context a{font-size:12px;color:var(--blue);padding:7px 10px;border:1px solid #dce5f6;border-radius:9px;text-decoration:none;white-space:nowrap}.statistics-total{display:flex;align-items:center;justify-content:space-between;gap:15px;background:#f2f6fe;border-radius:12px;padding:14px 17px;margin:17px 0;color:var(--muted);font-size:12px}.statistics-total strong{font-size:22px;color:var(--ink);margin-left:12px}.results-toolbar label{flex:0 1 205px}.results-toolbar .muted{font-size:12px;align-self:center;margin-left:auto}.statistics-table th{font-size:12px}.statistics-table td{font-size:12px;padding:13px 12px}.statistics-scope{border-top:1px solid var(--line);padding-top:17px;margin-top:20px}.pagination{display:flex;justify-content:center;align-items:center;gap:15px;margin-top:20px;font-size:12px}.pagination button{font-size:12px}.fetch-evidence{display:block;color:#738096;font-size:12px;line-height:1.75;margin-top:7px}
.toolbar input{border-radius:10px;background:#fff;border:1px solid #ced8e8}.subs-table .actions{flex-wrap:wrap;max-width:260px}.subs-table .actions button{min-height:30px;padding:4px 8px}.mobile-sub{background:white;border:1px solid var(--line)}.line-plan{background:#f7f9fd;border-radius:16px}.line-plan-quota{font-size:22px}.line-plan-grid{gap:14px}.line-plans{margin-top:0}.line-plan-head button{min-height:34px}
.routing-banner{border:1px solid #dbe8e4;background:#edf6f3;border-radius:16px}.routing-regions{border-radius:12px;background:#eaf0fb;gap:4px;margin-bottom:18px}.routing-regions button{border-radius:9px;padding:10px 22px}.routing-regions span{border-radius:6px}.routing-toolbar{gap:12px;flex-wrap:wrap;align-items:flex-end}.routing-toolbar input{border-radius:10px;background:#fff;border:1px solid #ced8e8;flex:1 1 220px;padding:10px 13px;max-width:340px;margin:0}.routing-egress{flex:0 1 150px;margin:0;font-size:12px}.routing-egress select{margin-top:3px;min-height:41px;font-size:12px}.routing-filters{flex-basis:100%;gap:6px}.routing-filters button{border-radius:8px;padding:6px 12px;min-height:33px;font-size:12px}.platform{border:1px solid var(--line);border-radius:15px;background:#fff;padding:14px}.platform:hover{box-shadow:0 3px 10px #18263d08;border-color:#99b0eb}.platform.changed{border:1px solid #89a9ff;background:#f8faff}.platform .chip{border-radius:6px;background:#edf2ff;font-size:12px}.platform .chip.isp{background:#f1ebfa}.platform .chip.direct{background:#e9f4ef}.rules-footer{border-radius:15px;background:#edf2fb}.routing-drawer .form-footer{background:#fbfcff}
.login{background:var(--bg)}.login-card{border-radius:22px;box-shadow:0 12px 40px #18263d09}.login-card .login-brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-size:18px;margin-bottom:26px}.login-brand:before,.login-brand:after{content:none}.login-story h1{font-size:42px;letter-spacing:-1.5px}.story-diagram span{border-radius:10px}.story-diagram i{background:#b4c5e9}.login-card .password-field:focus-within{outline-color:#224dd433}dialog{border-radius:20px;background:#fff}.usage-dialog .dialog-head{background:white}footer{font-size:12px;border-top:1px solid #e5ebf4;padding-top:18px}
@media(max-width:1200px){main{padding:27px 24px}.exit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.monitor-grid{grid-template-columns:1fr 1fr}}
@media(max-width:900px){aside{width:195px}main{margin-left:195px;padding:25px 20px}.monitor-grid{grid-template-columns:1fr}.exit-grid{grid-template-columns:1fr}.health-strip{gap:12px}.health-strip strong{font-size:18px}.event-row{grid-template-columns:125px minmax(0,1fr)}.event-row>span{grid-column:2}}
@media(max-width:650px){aside{position:sticky;inset:0;width:100%;padding:12px 12px 8px;z-index:10;border-right:0;border-bottom:1px solid var(--line)}aside>.brand{padding:0 3px}.brand{font-size:19px}.brand-mark{width:34px;height:34px}.brand small{font-size:12px}nav{display:flex;margin-top:11px;gap:4px;overflow-x:auto;scrollbar-width:none}nav button{flex:1 0 53px;flex-direction:column;gap:3px;padding:7px 3px;font-size:12px;min-height:48px;border-radius:10px}nav svg{width:18px;height:18px}.side-bottom{display:none}main{margin:0;max-width:100%;padding:22px 14px}h1{font-size:25px}#page-description{font-size:12px}header{gap:10px;align-items:flex-start;margin-bottom:20px}.header-right{flex-direction:column;align-items:flex-end;gap:5px;max-width:114px}.header-right>button{min-height:34px}.header-right .badge{font-size:12px}.panel,.card{padding:18px;border-radius:18px}.panel-head{flex-wrap:wrap;align-items:flex-start;gap:12px}.panel-head .actions{width:100%;justify-content:flex-end}.panel-head button{min-height:44px}.actions button{min-height:40px}.health-strip{grid-template-columns:1fr 1fr;gap:15px 12px}.health-strip strong{font-size:19px}.health-strip span{font-size:12px}.monitor-summary{padding:18px}.monitor-summary .panel-head button{font-size:12px;padding:6px 9px;min-height:34px}.attention-item small{display:block;margin:3px 0 0}.attention-item button{min-height:40px}.monitor-tabs{width:100%;margin-bottom:17px}.monitor-tabs button{flex:1;min-height:44px;padding:8px 10px;font-size:12px}.monitor-grid{gap:16px;margin-bottom:16px}.service-row .badge{font-size:12px}.event-row{grid-template-columns:1fr;gap:5px}.event-row>span{grid-column:auto}.event-row p{margin-top:4px}.event-list{max-height:700px}.monitor-toolbar{gap:10px}.monitor-toolbar label{min-width:120px}.monitor-toolbar input,.monitor-toolbar select{min-height:44px}.exit-card{padding:17px;border-radius:15px}.exit-grid{gap:13px}.exit-ip strong{font-size:23px}.exit-actions{gap:6px}.exit-actions button{min-height:44px;padding:6px 12px}.exit-facts dt,.exit-facts dd{font-size:12px}.exit-facts>div{grid-template-columns:95px minmax(0,1fr)}.exit-speed>strong{font-size:14px}.statistics-presets{width:100%;gap:2px}.statistics-presets button{padding:6px 8px;flex:1;min-height:44px;font-size:12px}.statistics-context{flex-direction:column;gap:11px}.statistics-context a{min-height:40px;padding:8px 12px}.statistics-total{align-items:flex-start;flex-direction:column;gap:6px;padding:13px}.statistics-total strong{font-size:21px;margin-left:7px}.results-toolbar .muted{margin-left:0}.results-toolbar label{flex:1}.statistics-table td{padding:12px 10px}.statistics-scope{font-size:12px}.pagination button{min-height:44px}.fetch-evidence{font-size:12px}.toolbar input{max-width:none}.toolbar .primary{margin-left:0;min-height:44px}.dashboard-grid .network-panel{padding:20px}.network-cards .metric{font-size:26px}.network-panel .panel-head{align-items:center;flex-wrap:nowrap}.network-panel .panel-head h2{font-size:15px}.network-panel .badge{font-size:12px}.network-chart{height:150px}.route-line strong{font-size:12px}.routing-toolbar input{max-width:none;width:100%;flex-basis:100%;min-height:44px}.routing-egress{flex:1}.routing-filters{flex-basis:100%;overflow-x:auto;flex-wrap:nowrap}.routing-filters button{min-height:44px}.routing-regions button{padding:9px 8px;min-height:44px;font-size:12px}.routing-regions span{font-size:12px}.routing-banner button{min-height:40px}.platform{padding:12px}.platform .chip{font-size:12px}.platform-grid{gap:9px}.rules-footer button{min-height:44px}.line-plan-grid{grid-template-columns:1fr}.line-plan-head button{min-height:44px}.diagnostic-entry .panel-head{gap:10px}.diagnostic-entry .primary{width:100%}#dialog:not(.usage-dialog):not(.routing-drawer){width:calc(100vw - 24px);padding:20px 16px;max-height:92dvh}.exit-detail-context strong{overflow-wrap:anywhere}#dialog input,#dialog select{min-height:44px}#dialog .dialog-head{align-items:flex-start}#dialog .dialog-head h2{font-size:18px}#dialog .dialog-head button{flex:none}.usage-dialog .dialog-head{background:#fff}.login{padding:22px}.login-card .login-brand{display:flex}.login-card{width:100%;padding:27px 23px}.login-story{display:none}footer span{float:none;display:block}footer{font-size:12px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

.exit-grid{align-items:start}.exit-card .exit-actions{margin-top:14px}.exit-card .exit-ip{margin-top:16px}.monitor-read-error:empty{display:none}

.monitor-grid{align-items:start}
