/* r11: restrained, compact console. All business controls retain their handlers. */
:root{--bg:#f5f7fa;--panel:#fff;--text:#34445b;--muted:#7d8b9e;--line:#e6eaf0;--blue:#287cf5;--cyan:#287cf5;--radius:6px}
body{background:var(--bg);font-size:13px;line-height:1.55;color:var(--text);-webkit-font-smoothing:antialiased}
button{min-height:32px;padding:5px 12px;border-radius:4px;line-height:20px;font-weight:400;background:var(--blue);box-shadow:none}
button:hover{background:#1769de}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #83b4ff;outline-offset:2px}
button:disabled{opacity:.45}
input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea{border-color:#dce2ea;border-radius:4px;min-height:32px;padding:5px 9px;font-size:13px}
input[type=checkbox],input[type=radio]{width:14px;height:14px;accent-color:var(--blue)}
input:focus,select:focus,textarea:focus{border-color:#81b2fa;box-shadow:0 0 0 2px #eaf2ff}
.secondary,.icon{background:#fff;border-color:#dce2ea;color:#53637b}.secondary:hover,.icon:hover{color:var(--blue);background:#f6faff;border-color:#a7caff}
.danger{background:#fff;color:#d65360;border-color:#f0d6db}.danger:hover{background:#fff4f5;border-color:#e7aab3}
.tiny{min-height:27px;padding:3px 8px;border-radius:4px;font-size:12px;margin:1px}
.app{grid-template-columns:208px minmax(0,1fr)}
#sidebar{padding:0 10px;background:#fff;border-right:1px solid var(--line)}
.brand{height:66px;min-height:66px;padding:0 12px;font-size:17px;letter-spacing:-.4px;border-bottom:1px solid #f0f2f6;margin:0 0 8px}
.brand .brand-mark.small{width:31px;height:31px;border-radius:9px;background:linear-gradient(145deg,#299cfa,#4161ed);color:#fff;font-size:11px;box-shadow:none}
.nav-fold-tools{padding:0 8px 7px;border:0}.nav-fold-tools button{color:#8995a5;font-size:11px;min-height:22px}
#nav{gap:3px;margin:0;padding:0 0 14px;scrollbar-color:#d9e0e9 transparent;scrollbar-width:thin}
#nav>button,#nav .nav-children>button{min-height:36px;padding:7px 12px;border-radius:4px;font-size:13px;color:#59697e;font-weight:400}
.nav-group summary{min-height:40px;padding:9px 12px;color:#54647a;font-size:13px;font-weight:500}
.nav-children{margin:1px 0 5px 13px;padding:0 0 0 6px;border-color:#edf0f5;gap:1px}
#nav .nav-children>button{padding-left:15px}
#nav button.active{color:#1e72ea;background:#ecf4ff;font-weight:500;box-shadow:inset 2px 0 #3387fc}
#nav button:hover,.nav-group summary:hover{background:#f5f8fc}
.sidebar-bottom{padding:6px 8px 0;border-top:1px solid #f0f2f6}.logout{font-size:12px;color:#9b6470;min-height:32px}
.brand-footer{font-size:11px;padding:9px 3px;line-height:1.7}
main>header,.page-tabs+header{min-height:68px;padding:13px 24px;gap:16px;border-bottom:1px solid var(--line)}
header h2{font-size:18px;font-weight:600;letter-spacing:0;color:#24374f}header p{font-size:11px;color:#8c97a6;margin-top:2px}
.refresh-current{min-height:26px;padding:3px 8px;font-size:11px;border-color:#e4e9f1}
.pill{border-radius:5px;background:#f9fafc;color:#63738a;font-size:12px;padding:5px 10px;border-color:#e9edf3}
.console-timezone{font-size:11px;color:#8a98aa}
.page-tabs{min-height:38px;padding:4px 24px;gap:8px}.page-tab{border-radius:4px}.page-tab button,.close-all-tabs{min-height:27px;font-size:11px}
.section-nav{display:flex;align-items:center;gap:25px;margin:20px 22px 0;padding:0 18px;background:#fff;border:1px solid var(--line);border-bottom:0;border-radius:6px 6px 0 0;min-height:46px;overflow:auto;scrollbar-width:thin}
.section-nav button{flex:none;border:0;border-radius:0;background:transparent;color:#65768e;padding:12px 2px;min-height:45px;box-shadow:inset 0 -1px #e9edf3}
.section-nav button:hover{color:var(--blue);background:transparent}
.section-nav button[aria-current=page]{color:var(--blue);box-shadow:inset 0 -2px var(--blue);font-weight:500}
#content{padding:18px 22px 0}
body:has(#section-nav:not([hidden])) #content{padding-top:14px}
.console-surface,.panel,.card,.line-card,.cdn-panel,.cdn-hero,.cdn-metric{border:1px solid var(--line);border-radius:6px;box-shadow:0 1px 3px #21374d04;background:#fff}
.panel{margin-top:12px}.panel-head{padding:13px 16px;border-color:var(--line)}.panel-head h3,.toolbar h3,.cdn-toolbar h3{font-size:14px;font-weight:500}
.cards,.cdn-metrics,.line-cards{gap:14px}.card,.node-summary .card,.cdn-metric{padding:17px 20px}.card strong,.node-summary .card strong,.cdn-metric strong{font-size:27px;font-weight:600;letter-spacing:-.5px;margin:7px 0;color:#2c476c}
#content .overview-cards .card:nth-child(n){border:1px solid var(--line);border-radius:6px;position:relative}
#content .overview-cards .card:nth-child(n):before{content:'';position:absolute;left:0;top:22px;width:3px;height:28px;border-radius:0 3px 3px 0;background:#6aa8ff}
#content .overview-cards .card span{font-size:12px;color:#7d8c9e}.quota-panel>.card{border:0;background:#fff;padding-top:9px}
.toolbar,.cdn-toolbar{gap:8px;padding-bottom:8px;align-items:center}.toolbar>span:last-child{gap:6px}.toolbar .tiny{margin:0}
.list-search,.stats-filter,.cdn-search{gap:8px;padding:12px 14px;border-color:var(--line);border-radius:6px;margin-bottom:12px;background:#fff}
.list-search input{max-width:500px}.list-search .page-size{margin-left:auto}.page-size select{min-height:30px;font-size:12px;padding:4px 7px}
.page-size,.page-info,.local-list-tools,.node-sort{color:#8592a3;font-size:12px}.page-info{white-space:nowrap}
.pagination{padding:3px 1px;font-size:12px;color:#7e8c9e}.pagination button{min-height:28px;padding:3px 9px;border-radius:4px;font-size:12px}.pagination button.active{color:var(--blue);background:#f4f8ff;border-color:#7eaff7}
.table-wrap{border-radius:5px;scrollbar-color:#d1dbe7 #f6f8fb}
table{font-size:13px;color:#475a74}th{background:#f7f8fa;color:#65758b;font-weight:500;font-size:12px;padding:10px 13px;border-color:#e7ebf1}td{padding:11px 13px;border-color:#edf0f4;line-height:1.55;vertical-align:middle}tbody tr:hover{background:#fafcff}tbody tr.is-selected{background:#f2f7ff}
.status{padding:1px 6px;line-height:20px;font-size:11px;border-radius:3px;background:#edf8f2;color:#258460}.status.off{background:#fdf0f2;color:#c15c6e}.status.warn{background:#fff6e7;color:#ac7b28}.status.pending{background:#f1f4f9;color:#72849d}
.hint{color:#8693a5;font-size:12px;line-height:1.6}.empty{padding:42px 18px;color:#8b98a9}
.domain-notice,.line-banner,.line-warning,.cdn-note,.callout{border-color:#e2eaf6;border-left-width:2px;border-radius:5px;background:#f5f9ff;padding:11px 14px;line-height:1.7;font-size:12px;color:#6b829e}
.domain-notice b,.line-warning b,.line-banner b{font-size:12px;font-weight:500;color:#47668b}
.console-notice{padding:0;margin:0 0 13px;background:#f2f7ff}
.console-notice summary{display:flex;align-items:center;gap:15px;padding:10px 14px;cursor:pointer;list-style:none}.console-notice summary::-webkit-details-marker{display:none}.console-notice summary b{margin:0;flex:none}.console-notice summary span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;color:#8a9bb0;font-size:12px}.console-notice summary em{font-style:normal;flex:none;margin-left:auto;color:#5789ce;font-size:11px}.console-notice>div{border-top:1px solid #e4edfa;padding:10px 14px}.console-notice[open] summary span{visibility:hidden}
.route-surface{padding:0 16px 4px}.route-surface>.panel{border:0;border-radius:0;margin:0;box-shadow:none}.route-surface .table-wrap{border-radius:0}.route-surface>.pagination{padding:12px 0;margin:0}
.route-toolbar{display:flex;gap:12px;padding:15px 0 10px;margin:0;justify-content:space-between;align-items:center}
.route-primary-actions{display:flex;align-items:center;gap:7px;flex:none;flex-wrap:wrap}
.route-toolbar .list-search{display:flex;flex:1;justify-content:flex-end;gap:7px;border:0;padding:0;margin:0;background:transparent;min-width:250px}
.route-toolbar .list-search>input{width:240px;flex:1 1 180px;max-width:320px;min-width:140px;font-size:12px}
.route-toolbar .list-search .page-size{margin-left:6px;gap:5px;font-size:12px}.route-toolbar .list-search .page-info{font-size:11px}
.route-list-meta{display:flex;align-items:center;gap:9px;padding:0 0 12px;font-size:12px;color:#8290a3}
.route-list-meta select{font-size:12px;min-height:29px;width:148px;padding:3px 8px;margin-right:8px}.route-meta-tip{margin-left:auto;font-size:11px;color:#9aa5b4}
.route-table{table-layout:fixed;min-width:1090px;width:100%;max-width:none}
.route-table th,.route-table td{padding:11px 10px;vertical-align:middle;min-width:0}
.route-table th:nth-child(1){width:36px}.route-table th:nth-child(2){width:58px}.route-table th:nth-child(3){width:17%}.route-table th:nth-child(4){width:7%}.route-table th:nth-child(5){width:19%}.route-table th:nth-child(6){width:22%}.route-table th:nth-child(7){width:7%}.route-table th:nth-child(8){width:125px}.route-table th:nth-child(9){width:114px}
.route-table .route-domain-host{align-items:center;gap:5px}.route-table .route-domain-host>.code{font:500 13px/1.55 -apple-system,BlinkMacSystemFont,'Segoe UI','Microsoft YaHei',sans-serif;color:#3263a3}
.route-table .route-domain-host button,.route-table .target-url-item button{display:inline-flex;align-items:center;justify-content:center;width:24px;min-height:24px;padding:3px;background:transparent;border-color:transparent;color:#94a7bf}.route-table .route-domain-host button:hover,.route-table .target-url-item button:hover{border-color:#cbdcf3;background:#f2f7ff;color:var(--blue)}
.route-owner{margin-top:4px;font-size:11px;color:#8998ab}.route-dns-name{background:transparent;color:#61748d;font-size:11px;padding:0;margin:0 0 3px;-webkit-line-clamp:1}
.route-table .route-auto-dns{display:inline-flex;align-items:center;gap:5px;padding:0;border:0;background:transparent;color:#7588a3;min-height:22px;font-size:11px;margin:0}
.route-table .route-auto-dns.is-enabled{color:#3b8a6d}.route-auto-dns.is-enabled:before{content:'';width:5px;height:5px;border-radius:50%;background:#34b67d}.route-table .route-auto-dns:hover{color:var(--blue);text-decoration:underline}.route-dns-cell>.hint{font-size:11px;margin-top:1px}
.route-state{gap:3px;align-items:flex-start;display:grid;grid-template-columns:auto auto;column-gap:5px}.route-state>.hint{grid-column:1/-1;grid-row:2;font-size:11px;white-space:nowrap}.route-state>.status{font-size:10px;padding:0 4px;line-height:19px;white-space:nowrap}
.route-table .target-url-item{grid-template-columns:16px minmax(0,1fr) 24px;align-items:center;gap:5px}.route-table .target-url-item .code{font:11px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;color:#647d9d}.route-table .target-url-item>b{background:#f0f4fa;color:#8b9aae;font-size:10px;width:16px;height:17px;line-height:17px;border-radius:3px;text-align:center}.target-url-details{margin:2px 0 0}.target-url-details>summary{font-size:11px;padding:1px 0;color:#5d8dcf}.route-targets .random-target-hint{margin-top:1px;font-size:10px;color:#95a3b5}.route-clamp{font-size:12px}
.route-table .route-actions,.node-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.route-table .route-actions>button,.route-table .row-menu>.console-menu-trigger,.node-actions>button,.node-actions>.row-menu>.console-menu-trigger{border:0;background:transparent;color:var(--blue);width:auto;min-height:28px;font-size:12px;padding:2px 1px;margin:0;white-space:nowrap}
.route-table .route-actions>button:hover,.node-actions>button:hover{text-decoration:underline;background:transparent}
.console-menu-wrap{display:inline-flex;align-items:center;flex:none}.console-menu-trigger{display:inline-flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap}.console-menu-trigger[aria-expanded=true]{color:var(--blue);border-color:#8abaff;background:#f4f8ff}
.console-action-menu{position:fixed;z-index:2000;display:flex;flex-direction:column;min-width:170px;max-width:calc(100vw - 24px);padding:5px;background:#fff;border:1px solid #e1e7f0;border-radius:5px;box-shadow:0 6px 24px #203b5926;overflow:auto;overscroll-behavior:contain}
#content .console-action-menu>button{display:block;width:100%;border:0;border-radius:3px;margin:0;min-height:32px;padding:6px 12px;background:transparent;color:#566c86;font-size:12px;line-height:20px;text-align:left;font-weight:400;white-space:nowrap}
#content .console-action-menu>button:hover,#content .console-action-menu>button:focus-visible{background:#edf5ff;color:var(--blue);outline:none}
#content .console-action-menu>button.danger{color:#d55e6e}#content .console-action-menu>button.danger:hover{background:#fff2f4}.console-action-menu>button[data-action^=delete],.console-action-menu>button[data-action=batch-delete]{border-top:1px solid #eff2f6!important;margin-top:4px!important;padding-top:9px!important}
.node-table th,.node-table td{padding:12px 9px}.node-name{font-size:13px;font-weight:500}.node-ip-summary{font-size:11px;margin:6px 0}.node-table .node-actions{gap:6px;align-items:flex-start}.node-table .node-actions>button{white-space:normal;text-align:left}.node-detail summary{color:#728aaa}.metrics{gap:8px}.metric-row i{height:3px;background:#edf2f8}.metric-row i b{background:#85aef0}.node-ip{border-radius:3px}
.line-card,.cdn-panel,.settings-section{padding:17px 18px}.settings-section{border-radius:6px}.settings-section h3{font-size:15px;font-weight:500;margin-bottom:12px}.field{font-size:12px;color:#526780;gap:6px;margin:13px 0}.field input,.field select{min-height:34px}.field textarea{line-height:1.65}.grid2{gap:16px}.switch-field{padding:10px 12px;border-radius:5px;border-color:var(--line)}
dialog{border-radius:8px;box-shadow:0 18px 70px #243a5b33;border-color:#e4e9f1}dialog::backdrop{background:#20334f55;backdrop-filter:blur(1px)}.modal-head{padding:16px 20px}.modal-head h3{font-size:16px;font-weight:500}.modal-actions{padding:13px 20px;background:#fafbfd;gap:8px}#modal-body{padding:6px 20px 18px}.modal-actions button{min-width:70px}.app-footer{padding:16px 22px;font-size:11px;margin-top:18px;color:#96a1b1}
@media(min-width:769px) and (max-width:1200px){
 .route-table{display:table;min-width:1090px}.route-table thead{display:table-header-group}.route-table tbody{display:table-row-group}.route-table thead tr,.route-table tbody tr{display:table-row;margin:0;border:0;border-radius:0;background:transparent}.route-table thead th,.route-table.has-mobile-select-all thead th:first-child{display:table-cell;padding:10px;margin:0;border:0;border-bottom:1px solid var(--line);border-radius:0}.route-table th:first-child{width:36px!important}.route-table thead th:after{display:none!important}.route-table tbody td,.route-table tbody .route-select-cell,.route-table tbody .route-id-cell{display:table-cell;padding:11px 10px;border-top:0;border-bottom:1px solid #edf0f4}.route-table tbody td:before{display:none}.route-table tbody .route-actions-cell .route-actions{display:flex}
}
@media(min-width:1025px) and (max-width:1450px){.app{grid-template-columns:190px minmax(0,1fr)}#content{padding:16px 18px 0}.section-nav{margin:16px 18px 0}.route-toolbar{flex-wrap:wrap}.route-toolbar .list-search{flex-basis:100%;justify-content:flex-start}.route-toolbar .list-search>input{max-width:400px}.route-toolbar .list-search .page-size{margin-left:auto}.node-table{min-width:1200px}}
@media(max-width:1024px){
 .app{display:block}#sidebar{width:224px;padding:0 10px}.brand{height:64px;min-height:64px}.page-tabs+header,main>header{min-height:64px;padding:12px 16px}#content{padding:14px}.section-nav{margin:14px 14px 0;gap:20px;padding:0 14px}.section-nav button{font-size:12px;min-height:43px}.console-timezone{display:none}.route-toolbar{flex-wrap:wrap}.route-primary-actions{flex-wrap:wrap}.route-toolbar .list-search{flex-basis:100%;justify-content:flex-start}.route-toolbar .list-search>input{max-width:none}.route-table .route-state{display:grid}.route-surface{padding:0 12px 4px}.panel{border-radius:6px}.node-table tbody tr{margin:10px;border-radius:6px}.node-table tbody td{font-size:12px;padding:10px 12px}.cards{gap:12px}.card{padding:16px}.field input,.field select,.field textarea{font-size:14px}.page-tabs{padding:4px 14px}
}
@media(max-width:768px){
 .route-surface{padding:0 10px 4px}.route-table{min-width:0}.route-table tbody tr{border-color:#e7ecf3;box-shadow:none;margin:0 0 12px;border-radius:5px}.route-table tbody td{padding:9px 10px}.route-table tbody td:before{font-size:10px;color:#95a2b3}.route-table tbody .route-actions-cell .route-actions{display:flex;justify-content:flex-end;gap:14px}.route-table .route-actions>button,.route-table .row-menu>.console-menu-trigger{min-height:34px;font-size:13px;padding:4px 8px}.route-table.has-mobile-select-all thead th:first-child{margin:0 0 12px;padding:8px 10px;border-radius:4px;background:#f7f9fc}.route-table .route-dns-cell,.route-table .route-domain-cell{grid-column:1/-1}.route-domain-host>.code{font-size:14px!important}.route-state{display:flex!important;flex-wrap:wrap}.route-state>.hint{font-size:11px}.route-table .route-target-cell{grid-column:1/-1}.route-table .target-url-item .code{font-size:12px}.route-table .route-dns-name{-webkit-line-clamp:2}.route-table .target-url-item button,.route-table .route-domain-host button{min-height:30px!important;width:30px}.route-table .target-url-item{grid-template-columns:16px minmax(0,1fr) 30px}
 .route-toolbar .list-search{row-gap:9px}.route-toolbar .list-search>input{flex-basis:calc(100% - 75px)}.route-toolbar .list-search .page-size{margin-left:0}.route-toolbar .list-search .page-info{margin-left:auto}.route-list-meta{flex-wrap:wrap;padding-bottom:10px}.route-meta-tip{display:none}.route-list-meta select{width:130px}.route-primary-actions{gap:6px}.route-primary-actions>button,.route-primary-actions>.console-menu-wrap>.console-menu-trigger{font-size:12px;padding:5px 9px}.console-notice summary{gap:10px;padding:9px 12px}.console-notice summary span{display:none}.console-notice summary em{font-size:11px}.route-toolbar .list-search input{font-size:14px}.route-surface>.pagination{padding:3px 0 10px;align-items:flex-start;gap:9px}.route-surface>.pagination>span:last-child{display:flex;flex-wrap:wrap;gap:4px}#content .console-action-menu>button{min-height:40px;padding:9px 12px;font-size:13px}.console-action-menu{min-width:182px}
}
@media(max-width:640px){
 header h2{font-size:17px}.pill{font-size:10px;max-width:135px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-title-row{gap:7px}.refresh-current{font-size:10px;padding:3px 6px}.section-nav{gap:21px}.list-search{padding:11px}.list-search input{max-width:none}.list-search .page-size{margin-left:0}.console-notice{margin-bottom:12px}.grid2{gap:8px}.field{margin:11px 0}.field input,.field select,.field textarea{font-size:16px}.card,.node-summary .card{padding:14px}.card strong{font-size:25px}.modal-head{padding:15px 16px}#modal-body{padding:5px 16px 16px}.modal-actions{padding:12px 16px}.app-footer{margin-top:5px;padding:14px}
}
/* A single product needs no workspace switch. Keep its DOM for the shell. */
#workspace-switch{display:none}
.route-state{display:flex;flex-wrap:wrap;flex-direction:row;gap:3px 5px}.route-state>.hint{order:2;flex-basis:100%}
@media(max-width:768px){
 .route-toolbar .list-search>button{width:auto;flex:none}.route-toolbar .list-search>.page-size{display:flex;flex:none;width:auto;gap:7px}.route-toolbar .list-search>.page-size select{width:auto;min-width:78px}.route-toolbar .list-search>.page-info{width:auto;flex:1;text-align:right}
 .route-table tbody .route-select-cell{order:0}.route-table tbody .route-id-cell{order:1}.route-table tbody .route-domain-cell{order:2}.route-table tbody .route-group-cell{order:3}.route-table tbody .route-remark-cell{order:4}.route-table tbody .route-dns-cell{order:5}.route-table tbody .route-target-cell{order:6}.route-table tbody .route-state-cell{order:7;grid-column:1/-1}.route-table tbody .route-actions-cell{order:8}
}
@media(max-width:640px){.refresh-current{font-size:0;min-width:30px;padding:3px 6px}.refresh-current:after{content:'↻';display:block;font-size:16px;line-height:19px}.header-title{min-width:0}.page-title-row{white-space:nowrap}}
@media(min-width:769px){.route-table .route-domain-host>.code{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.release-panel .cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:768px){.release-panel .cards{grid-template-columns:1fr}}

/* Certificate list: compact targets and visible bulk selection. */
.certificate-selection-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:12px 0;color:#687f9e;font-size:12px}
.certificate-table th:first-child,.certificate-table td:first-child{width:42px;text-align:center}
.certificate-table tr.is-selected>td{background:#f2f7ff}
.certificate-table .certificate-target-cell{min-width:240px;max-width:360px}
.certificate-table .target-url-list{width:100%;max-width:none;min-width:0}
.certificate-table .target-url-item{display:grid;grid-template-columns:16px minmax(0,1fr) 26px;align-items:start;gap:6px}
.certificate-table .target-url-item .code{font:11px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere;min-width:0}
.certificate-table .target-url-item>b{width:16px;height:17px;line-height:17px;font-size:10px;text-align:center;background:#eef5fb;border-radius:4px}
.certificate-table .target-url-item button{display:inline-flex;align-items:center;justify-content:center;width:26px;min-height:26px;padding:3px;margin:0;background:transparent}
@media(max-width:760px){
 .certificate-table .certificate-target-cell{grid-column:1/-1;min-width:0;max-width:none}
 .certificate-table td:first-child{width:auto;text-align:left}
 .certificate-table th:last-child,.certificate-table .certificate-actions-cell{position:static;box-shadow:none}
 .certificate-table .target-url-item{grid-template-columns:16px minmax(0,1fr) 30px}
 .certificate-table .target-url-item button{width:30px;min-height:30px}
}
