:root{--bg:#f3f4f6;--panel:#fff;--line:#d8dde6;--text:#1f2937;--muted:#64748b;--blue:#0078d4;--blue2:#106ebe;--green:#107c10;--red:#a4262c;--yellow:#986f0b;--side:#f8f9fb;--shadow:0 2px 8px rgba(0,0,0,.08)}*{box-sizing:border-box}body{margin:0;font-family:"Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px;font-weight:400}.app{display:flex;min-height:100vh}.side{width:240px;background:var(--side);border-right:1px solid var(--line);position:fixed;inset:0 auto 0 0;z-index:5}.brand{height:64px;display:flex;gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}.brand span{display:block;color:var(--muted);font-size:12px}.logo{width:34px;height:34px;background:var(--blue);color:#fff;display:grid;place-items:center;font-weight:600;border-radius:2px}nav{padding:14px 8px}nav button{display:block;width:100%;border:0;background:transparent;text-align:left;padding:11px 12px;border-radius:2px;color:#111827;font-weight:500;cursor:pointer}nav button.active,nav button:hover{background:#e8f2fb;color:#0b5cab}main{margin-left:240px;flex:1}header{height:56px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:0 18px;position:sticky;top:0;z-index:4}h1{font-size:20px;font-weight:500;margin:0;flex:1}h2{font-size:20px;font-weight:500;margin:0 0 16px}h3{font-size:16px;font-weight:600;margin:0}.version{color:#475569;font-size:13px}button{border:1px solid #8a8f98;background:#fff;border-radius:2px;padding:8px 13px;cursor:pointer;font-weight:500}button.primary{background:var(--blue);color:#fff;border-color:var(--blue)}button.primary:hover{background:var(--blue2)}button.danger{border-color:var(--red);color:var(--red);background:#fff}button.ghost{border-color:transparent;background:transparent}button:disabled{opacity:.55;cursor:not-allowed}#content{padding:20px}.card{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);padding:18px;margin-bottom:18px}.dash{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.tile{background:#fff;border:1px solid var(--line);padding:18px;box-shadow:var(--shadow)}.tile b{display:block;font-size:30px;font-weight:500}.tile span{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.field label{display:block;color:#475569;font-size:12px;margin-bottom:5px}.field input{width:100%;padding:9px 10px;border:1px solid #aab1bd;border-radius:2px;background:#fff}.server{border:1px solid var(--line);background:#fff;padding:16px;margin-bottom:14px}.server-head{display:flex;justify-content:space-between;gap:16px}.server-title{font-weight:600;font-size:16px}.server-sub{color:var(--muted);margin-top:5px}.badges{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.badge{display:inline-flex;align-items:center;border-radius:999px;background:#eef2f7;color:#334155;padding:4px 9px;font-size:12px;line-height:1}.badge.ok{background:#dff6dd;color:#107c10}.badge.warn{background:#fff4ce;color:#986f0b}.badge.err{background:#fde7e9;color:#a4262c}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.server-progress{margin-top:14px;border:1px solid #dbeafe;background:#f8fbff;padding:12px;display:none}.server-progress.show{display:block}.progress-title{display:flex;align-items:center;gap:8px;margin-bottom:8px}.bar{height:7px;background:#e5e7eb;border-radius:999px;overflow:hidden}.bar>div{height:100%;background:var(--blue);width:0%;transition:width .25s}.check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.check-card{border:1px solid var(--line);padding:12px;background:#fff}.check-card .ico{font-size:20px}.check-card b{display:block;font-weight:600;margin:4px 0}.check-card small{color:var(--muted)}.task{border:1px solid var(--line);background:#fff;margin:12px 0;padding:14px}.task-top{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:8px}.step{display:grid;grid-template-columns:32px 1fr auto;gap:10px;align-items:center;border-bottom:1px solid #eef1f5;padding:10px 0}.step:last-child{border-bottom:0}.ico{font-size:18px;text-align:center}.muted{color:var(--muted)}.callout{border-left:4px solid var(--blue);background:#f8fbff;padding:12px;margin:8px 0}.callout.err{border-color:var(--red);background:#fff7f8}.modal{position:fixed;inset:0;background:rgba(0,0,0,.35);display:grid;place-items:center;z-index:20}.modal.hidden,.hidden{display:none}.modal-card{width:min(760px,calc(100vw - 28px));max-height:calc(100vh - 40px);overflow:auto;background:#fff;border:1px solid var(--line);box-shadow:0 18px 50px rgba(0,0,0,.25)}.modal-head{display:flex;align-items:center;border-bottom:1px solid var(--line);padding:14px 16px}.modal-head h3{flex:1}.modal-head button{border:0;background:transparent;font-size:20px}.modal-body{padding:16px}.modal-actions{border-top:1px solid var(--line);padding:12px 16px;text-align:right}.toast{position:fixed;right:20px;bottom:20px;background:#111827;color:#fff;padding:12px 16px;box-shadow:var(--shadow);z-index:30}.mobile{display:none}pre{white-space:pre-wrap;background:#f8fafc;border:1px solid var(--line);padding:12px;max-height:360px;overflow:auto}@media(max-width:900px){.side{transform:translateX(-100%);transition:.2s}.side.open{transform:translateX(0)}main{margin-left:0}.mobile{display:inline-block}.grid,.dash,.check-grid{grid-template-columns:1fr}.actions button{width:100%}header{padding:0 10px}#content{padding:12px}.server-head,.task-top{display:block}.version{display:none}}

.split{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.ghost{background:#fff;border:1px solid #d0d7de;color:#1f2328}.ghost:hover{background:#f6f8fa}@media(max-width:700px){.split{display:block}.split button{width:100%;margin-top:10px}}
.field select{width:100%;padding:9px 10px;border:1px solid #aab1bd;border-radius:2px;background:#fff;font:inherit}.client-conf, textarea.conf{width:100%;min-height:220px;border:1px solid var(--line);padding:10px;font-family:ui-monospace,Consolas,monospace}.actions a.primary{background:var(--blue);color:#fff;border:1px solid var(--blue);border-radius:2px}.actions a.primary:hover{background:var(--blue2)}

/* 0.6.5 server accordion */
.server.accordion{padding:0;overflow:hidden}.accordion-head{padding:16px;cursor:pointer;align-items:flex-start}.accordion-head:hover{background:#f7fbff}.server-title-row{display:flex;align-items:center;gap:8px}.chev{font-size:15px;color:#64748b;transition:transform .18s}.server.expanded .chev{transform:rotate(90deg)}.server-main{min-width:0}.server-right{display:flex;align-items:center;gap:8px}.badges.compact{margin:10px 0 0}.server-body{display:none;border-top:1px solid var(--line);background:#fff}.server.expanded .server-body{display:block}.server-tabs{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:16px}.srv-block{border:1px solid #e5eaf1;background:#fbfcfe;padding:14px}.srv-block h3{margin:0 0 10px;font-weight:500}.mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mini{border:1px solid #e5eaf1;background:#fff;padding:10px;min-width:0}.mini b{display:block;font-weight:500;color:#334155;margin-bottom:4px}.mini span{display:block;color:#475569;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.action-grid button{width:100%}@media(max-width:900px){.server-tabs{grid-template-columns:1fr}.mini-grid{grid-template-columns:1fr}.server-right{display:none}.accordion-head{padding:14px}.action-grid{grid-template-columns:1fr}}
.hidden-field{display:none!important}.nav-item{display:block;width:100%;padding:11px 12px;border-radius:2px;color:#111827;text-decoration:none;font-weight:500}.nav-item:hover{background:#e8f2fb;color:#0b5cab}.installer-frame{width:100%;height:calc(100vh - 80px);border:1px solid var(--line);background:#fff}

/* 0.7.13 QR UI */
.qr-box{display:flex;justify-content:center;align-items:center;background:#fff;border:1px solid var(--line);padding:16px;margin:12px auto;max-width:360px}.qr-svg{width:min(320px,80vw);height:auto;display:block;fill:#111}.client-card .actions{align-items:center}
/* stage12 client policies */
.client-card details{border:1px solid #e5eaf1;border-radius:6px;margin-top:10px;background:#fff}.client-card summary{cursor:pointer;padding:10px 12px;font-weight:500;color:#1f2937}.client-card details>div,.policy-box{padding:12px;border-top:1px solid #e5eaf1}.policy-box textarea{min-height:92px;resize:vertical}.policy-box select,.policy-box input,.policy-box textarea{width:100%;box-sizing:border-box;border:1px solid #d7dde6;border-radius:6px;padding:8px 9px;background:#fff;font:inherit}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.chip{border:1px solid #d7dde6;border-radius:999px;padding:6px 10px;background:#fff;display:inline-flex;gap:6px;align-items:center}.row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.client-tabs .actions{padding:0 12px 12px}.policy-box h3{font-size:15px;font-weight:500;margin:16px 0 8px;color:#334155}
/* ShellRoute 0.8.4 client accordion */
.client-card .server-body{display:none;border-top:1px solid var(--line);background:#fff}
.client-card.expanded .server-body{display:block}
.client-card.expanded .chev{transform:rotate(90deg)}
.template-actions{margin-top:10px;flex-wrap:wrap}.template-actions button{font-size:12px;padding:7px 9px}
.client-card .srv-block{min-width:0}.client-card textarea{min-height:78px}


/* ShellRoute 0.8.5 client UI and lists */
.client-card .server-body{display:none}.client-card.expanded .server-body{display:block}.client-body{border-top:1px solid var(--line);background:#fff}.client-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:16px}.client-grid .wide{grid-column:1/-1}.usage-line{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}.tun-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#94a3b8;margin-right:6px}.tun-dot.on{background:#16a34a}.tun-dot.off{background:#ef4444}.policy-v2 .policy-head{border-left:4px solid var(--blue);padding:8px 10px;background:#f8fbff;margin-bottom:10px}.policy-v2 .policy-head b{display:block}.policy-presets{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 14px}.policy-switches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}.policy-switches label,.day-row label{border:1px solid var(--line);background:#fff;padding:8px;border-radius:14px}.compact-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.day-row{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.domain-ref-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:12px 0}.domain-ref-grid div{border:1px solid var(--line);background:#fbfcfe;padding:8px}.domain-ref-grid b{display:block;font-weight:500}.domain-ref-grid span{font-size:12px;color:#64748b}.list-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.list-grid textarea{min-height:180px}.server-title-row .chev{transition:.15s}.client-card.expanded .chev{transform:rotate(90deg)}@media(max-width:900px){.client-grid,.list-grid,.policy-switches,.compact-grid,.domain-ref-grid,.usage-line{grid-template-columns:1fr}.client-grid{padding:10px}}

/* ShellRoute 0.8.6 stable client/lists layout */
.client-card .client-body{display:none;}
.client-card.expanded .client-body{display:block;}
.client-card .chev{transition:transform .16s ease;}
.client-card.expanded .chev{transform:rotate(90deg);}
.client-sections{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:14px;}
.client-sections .wide{grid-column:1 / -1;}
.list-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.list-grid textarea{width:100%;min-height:170px;box-sizing:border-box;resize:vertical;}
.list-grid input{width:100%;box-sizing:border-box;}
@media(max-width:900px){.client-sections,.list-grid{grid-template-columns:1fr}.client-sections .wide{grid-column:auto}}
/* ShellRoute 0.8.7 domain lists priority */
.policy-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.tabbtn{border:1px solid var(--line,#e5eaf1);background:#fff;padding:9px 12px}.tabbtn.active{background:#eaf2ff;border-color:#93c5fd}.policy-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.policy-layout textarea,.policy-layout input{width:100%;box-sizing:border-box}.policy-layout textarea{min-height:150px;resize:vertical}.client-acc{border:1px solid var(--line,#e5eaf1);background:#fff;margin:12px 0;overflow:hidden}.client-head{display:flex;justify-content:space-between;gap:14px;padding:14px 16px;cursor:pointer}.client-head:hover{background:#f8fafc}.client-title-row{display:flex;align-items:center;gap:8px}.client-acc .chev{color:#64748b;transition:transform .16s}.client-acc.expanded .chev{transform:rotate(90deg)}.client-body{display:none;border-top:1px solid var(--line,#e5eaf1);padding:16px}.client-acc.expanded .client-body{display:block}.client-metrics{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.client-tabs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.client-tabs-grid .span-2{grid-column:1/-1}.buttonish{display:inline-block;border:1px solid var(--line,#e5eaf1);padding:9px 12px;text-decoration:none;color:inherit;background:#fff}@media(max-width:900px){.policy-layout,.client-tabs-grid{grid-template-columns:1fr}.client-head{display:block}.client-metrics{justify-content:flex-start;margin-top:10px}}

/* ShellRoute 0.8.9 policy enforcement start */
.policy-apply-box{border-left:3px solid #2563eb;background:#f8fbff}.policy-apply-box pre{max-height:360px;overflow:auto}.policy-apply-box .action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:900px){.policy-apply-box .action-grid{grid-template-columns:1fr}}
/* ShellRoute 0.9.2 WireGuard live statistics */
.wg-stats-toolbar{display:flex;align-items:center;gap:12px;justify-content:flex-end;margin:0 0 12px;flex-wrap:wrap}.wg-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.wg-live-stats{border-left:3px solid #2563eb}.wg-live-badge.ok{background:#dcfce7;color:#166534}.wg-live-badge.warn{background:#fef3c7;color:#92400e}.wg-task .task-top{margin-bottom:8px}@media(max-width:900px){.wg-stat-grid{grid-template-columns:1fr}.wg-stats-toolbar{justify-content:stretch}.wg-stats-toolbar button{width:100%}}
/* WireGuard live analytics */
.wg-chart-wrap{margin-top:14px;border:1px solid var(--line,#e5eaf1);background:#fff;padding:12px}.wg-chart{display:block;width:100%;height:150px;margin-top:10px}.wg-chart path{fill:none;stroke-width:2;vector-effect:non-scaling-stroke}.wg-chart-grid{stroke:#e5e7eb;stroke-width:1!important}.wg-chart-rx{stroke:#2563eb}.wg-chart-tx{stroke:#16a34a}.wg-chart-legend{display:flex;gap:16px;color:#64748b;font-size:12px;margin-top:6px}.wg-empty-chart{height:110px;display:flex;align-items:center;justify-content:center;color:#64748b;background:#f8fafc;margin-top:10px}.wg-stats-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;padding:12px;border:1px solid var(--line,#e5eaf1);background:#fff}.wg-live-stats .mini span{white-space:normal}.wg-stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}@media(max-width:1100px){.wg-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.wg-stat-grid{grid-template-columns:1fr}.wg-stats-toolbar button{width:100%}}

/* ShellRoute 0.9.9 policy exceptions and verification */
.policy-enforcement{border-left:3px solid #2563eb;background:#fbfdff}
.policy-state{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.policy-actions{grid-template-columns:repeat(4,minmax(0,1fr))}
.ghost-danger{background:#fff;color:#b91c1c;border-color:#fecaca}
.task-steps{display:grid;gap:8px;margin:12px 0}
.task-step{display:flex;gap:10px;align-items:flex-start;padding:9px 10px;border:1px solid var(--line,#e5eaf1);background:#fff}
.task-step span{font-size:18px}.task-step div{min-width:0}.task-step b,.task-step small{display:block}.task-step small{color:#64748b;margin-top:2px}
.task-step.success{border-color:#bbf7d0}.task-step.error{border-color:#fecaca}.task-step.warning{border-color:#fde68a}
.progress{height:7px;background:#e5e7eb;overflow:hidden;margin:10px 0}.progress span{display:block;height:100%;background:#2563eb;transition:width .2s}
@media(max-width:900px){.policy-actions{grid-template-columns:1fr 1fr}.policy-state{justify-content:flex-start}}
/* ShellRoute 0.10.0 REALITY */
.reality-server{margin:14px 0}.reality-client{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line,#e5eaf1);padding:11px 12px;background:#fff;margin:8px 0}.reality-client small{display:block;color:#64748b;margin-top:3px}.reality-client .actions{display:flex;gap:8px;flex-wrap:wrap}.callout.ok{border-color:#bbf7d0;background:#f0fdf4}@media(max-width:760px){.reality-client{display:block}.reality-client .actions{margin-top:10px}.reality-client .actions button{width:100%}}

/* ShellRoute 0.10.3 guides and REALITY client management */
.guide-hero{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.guide-hero h2{margin-top:0}.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.guide-step{display:grid;grid-template-columns:34px 1fr;gap:10px;padding:11px 0;border-bottom:1px solid var(--line,#e5e7eb)}.guide-step:last-child{border-bottom:0}.guide-step>span{width:28px;height:28px;border:1px solid #cbd5e1;display:grid;place-items:center;font-weight:700;background:#fff}.guide-step p{margin:4px 0 0;color:#64748b;line-height:1.45}.guide-checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.guide-checks label{border:1px solid #dbe4ee;background:#f8fafc;padding:10px}.client-guide-profile{display:grid;grid-template-columns:280px 1fr;gap:20px;margin-top:18px}.reality-client.disabled{opacity:.7;background:#f8fafc}.reality-client small{display:block;margin-top:5px;color:#64748b;word-break:break-all}@media(max-width:900px){.guide-grid,.guide-checks,.client-guide-profile{grid-template-columns:1fr}.guide-hero{display:block}.client-guide-profile .qr-box{margin:auto}}

/* ShellRoute 0.10.4 official application links and REALITY monitoring */
.app-downloads{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin:12px 0 16px}
.app-download{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid #dce5f0;background:#fff;text-decoration:none;color:#172033;transition:.15s ease}
.app-download:hover{border-color:#2563eb;box-shadow:0 5px 18px rgba(37,99,235,.10);transform:translateY(-1px)}
.app-download b{font-weight:600;color:#1d4ed8}.app-download span{font-size:12px;color:#64748b}
.reality-monitor-card{margin-top:14px}.reality-monitor-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}
.reality-monitor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.reality-monitor-client{border:1px solid #e3e9f1;background:#fbfcfe;padding:12px}.reality-monitor-client b{display:block;margin-bottom:5px}.reality-monitor-client small{display:block;color:#64748b;line-height:1.55}
@media(max-width:700px){.reality-monitor-head{display:block}.reality-monitor-head button{margin-top:10px;width:100%}}

/* Client transport management and aligned client layout */
.client-layout-grid{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr))!important;gap:14px!important;padding:16px!important;align-items:stretch}
.client-layout-grid>.srv-block{grid-column:span 6;min-width:0;margin:0;box-sizing:border-box}
.client-layout-grid>.client-layout-full,.client-layout-grid>.wide,.client-layout-grid>.client-transport-panel{grid-column:1/-1}
.client-layout-overview,.client-layout-config{min-height:205px}
.client-layout-config .actions{align-content:start}
.client-layout-grid .srv-block h3{margin:0 0 12px}
.client-layout-grid .mini-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.client-layout-grid .mini{min-height:58px;box-sizing:border-box}
.client-layout-grid .actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.client-layout-grid .actions button,.client-layout-grid .actions .buttonish,.transport-actions button,.transport-actions .buttonish{min-height:36px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}
.policy-v2 .policy-switches{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.policy-v2 .policy-switches label{display:flex;align-items:center;gap:9px;min-height:44px;padding:9px 11px;border-radius:8px;box-sizing:border-box;line-height:1.3}
.policy-v2 .policy-switches input,.policy-v2 .day-row input{width:auto!important;min-width:14px;margin:0;flex:0 0 auto}
.policy-v2 .compact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.policy-v2 .compact-grid .field{min-width:0;margin:0}
.policy-v2 .compact-grid input,.policy-v2 .compact-grid select{height:38px}
.policy-v2 .day-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.policy-v2 .day-row label{display:flex;align-items:center;gap:6px;border-radius:8px;min-height:36px;box-sizing:border-box}
.policy-v2 .domain-ref-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}
.policy-v2 .domain-ref-grid>div{min-height:58px;box-sizing:border-box}
.transport-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:14px}
.transport-section-head h3{margin:0 0 4px!important}.transport-section-head p{margin:0;color:#64748b}
.transport-mode-control{display:grid;grid-template-columns:minmax(190px,260px) auto;gap:6px 8px;align-items:end;flex:0 0 auto}
.transport-mode-control label{grid-column:1/-1;font-size:12px;color:#475569}
.transport-mode-control select{height:38px;min-width:0}
.transport-mode-control button{height:38px}
.transport-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:stretch}
.transport-card{border:1px solid var(--line,#dbe4ee);background:#fff;padding:14px;min-width:0;display:flex;flex-direction:column;gap:13px;box-sizing:border-box}
.transport-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-height:42px}
.transport-card-head>div:first-child{min-width:0}.transport-card-head b,.transport-card-head small{display:block}.transport-card-head small{color:#64748b;margin-top:3px}
.transport-head-badges{display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.transport-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;flex:1}
.transport-metrics>div{border:1px solid #e5eaf1;background:#fbfcfe;padding:9px 10px;min-width:0;box-sizing:border-box}
.transport-metrics span,.transport-metrics b{display:block}.transport-metrics span{font-size:12px;color:#64748b;margin-bottom:4px}.transport-metrics b{font-size:13px;font-weight:500;overflow-wrap:anywhere}
.transport-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:auto}
.transport-disabled{opacity:.72;background:#f8fafc}.transport-empty .callout{margin:0;flex:1}
.badges.compact{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.badges.compact .badge{display:inline-flex;align-items:center;min-height:22px}
@media(max-width:1180px){.policy-v2 .policy-switches,.policy-v2 .compact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.policy-v2 .domain-ref-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.client-layout-grid{grid-template-columns:1fr!important;padding:10px!important}.client-layout-grid>.srv-block,.client-layout-grid>.client-layout-half,.client-layout-grid>.client-layout-full,.client-layout-grid>.wide,.client-layout-grid>.client-transport-panel{grid-column:1!important}.client-layout-overview,.client-layout-config{min-height:0}.transport-grid{grid-template-columns:1fr}.transport-section-head{display:block}.transport-mode-control{margin-top:12px;grid-template-columns:1fr auto}.policy-v2 .domain-ref-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.client-layout-grid .mini-grid,.transport-metrics,.policy-v2 .policy-switches,.policy-v2 .compact-grid,.policy-v2 .domain-ref-grid{grid-template-columns:1fr}.transport-mode-control{grid-template-columns:1fr}.transport-mode-control button{width:100%}.transport-card-head{display:block}.transport-head-badges{justify-content:flex-start;margin-top:8px}.transport-actions>*{width:100%}}

/* 0.10.8 automatic REALITY monitor settings */
.reality-auto-settings{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:10px 0 12px;padding:10px 12px;border:1px solid var(--line,#d8dee8);background:#fafcff}
.reality-auto-settings label{display:flex;align-items:center;gap:8px;font-size:13px}
.reality-auto-settings select{min-width:110px}
.reality-auto-settings button{margin-left:auto}
@media (max-width:760px){.reality-auto-settings{align-items:stretch}.reality-auto-settings label{justify-content:space-between}.reality-auto-settings button{margin-left:0;width:100%}}

/* 0.10.9 visible REALITY monitor controls */
.reality-client-monitor-toolbar{margin-bottom:14px}
.reality-client-monitor-toolbar h3{margin:0 0 4px}
.reality-client-monitor-toolbar .reality-auto-settings{margin-bottom:8px}
.reality-toolbar-actions{display:flex;justify-content:flex-end;gap:8px}
@media(max-width:760px){.reality-toolbar-actions>*{width:100%}}

/* ShellRoute 0.11.0 unified client analytics */
.ua-toolbar,.ua-client-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.ua-toolbar{padding:20px;border:1px solid #d8e0ec;background:#fff;margin-bottom:14px}.ua-toolbar h2,.ua-client h2{margin:0 0 5px}.ua-toolbar p,.ua-client-head p{margin:0;color:#5e6f86}.ua-toolbar-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ua-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px}.ua-summary>div,.ua-total>div{border:1px solid #d8e0ec;background:#fff;padding:14px;min-width:0}.ua-summary span,.ua-total span,.ua-metrics span{display:block;color:#65758b;font-size:12px;margin-bottom:5px}.ua-summary b,.ua-total b{font-size:18px}.ua-filters{display:grid;grid-template-columns:minmax(260px,1fr) 280px;gap:10px;margin-bottom:14px}.ua-filters input,.ua-filters select{width:100%;box-sizing:border-box}.ua-list{display:grid;gap:14px}.ua-client{border:1px solid #cfd9e8;background:#fff;padding:18px}.ua-head-badges{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.ua-total{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:15px 0}.ua-transports{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ua-transport{border:1px solid #d9e2ef;background:#fafcff;padding:14px;min-width:0}.ua-transport.online{border-left:3px solid #22a45d}.ua-transport-head{display:flex;justify-content:space-between;gap:12px}.ua-transport-head h3{margin:0 0 3px}.ua-transport-head p{margin:0;color:#65758b;font-size:12px}.ua-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:12px}.ua-metrics>div{border:1px solid #e0e7f1;background:#fff;padding:10px;min-width:0}.ua-metrics b{font-size:14px;overflow-wrap:anywhere}.ua-note{font-size:12px;color:#5f6e82}.ua-periods{display:grid;gap:7px}.ua-periods.three{grid-template-columns:repeat(3,minmax(0,1fr))}.ua-period{display:flex;justify-content:space-between;gap:8px;border:1px solid #e0e7f1;background:#fff;padding:9px;font-size:12px}.ua-period span{color:#65758b}.ua-period b{text-align:right}.ua-combined{margin-top:12px;border:1px solid #d9e2ef;background:#f8fbff;padding:14px}.ua-combined h3{margin:0 0 10px}.ua-charts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.ua-charts>div{border:1px solid #d9e2ef;padding:12px;background:#fff}.ua-chart{width:100%;height:132px;margin-top:8px}.ua-grid{stroke:#dce4ee;stroke-width:1;fill:none}.ua-rx,.ua-tx{fill:none;stroke-width:2}.ua-rx{stroke:#1677ff}.ua-tx{stroke:#7a58d6}.ua-chart-title{font-weight:600}.ua-chart-legend{display:flex;gap:14px;color:#65758b;font-size:11px}.ua-empty-chart{height:132px;display:flex;align-items:center;justify-content:center;color:#718096;text-align:center}.ua-actions{display:flex;gap:9px;justify-content:flex-end;margin-top:14px;flex-wrap:wrap}
@media(max-width:1200px){.ua-summary{grid-template-columns:repeat(3,1fr)}.ua-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:850px){.ua-toolbar,.ua-client-head{display:block}.ua-toolbar-actions,.ua-head-badges{margin-top:12px;justify-content:flex-start}.ua-summary,.ua-total{grid-template-columns:repeat(2,1fr)}.ua-filters,.ua-transports,.ua-charts,.ua-periods.three{grid-template-columns:1fr}.ua-client{padding:12px}.ua-period{display:block}.ua-period b{display:block;text-align:left;margin-top:4px}}

/* ShellRoute 0.11.1 compact client UI */
.client-ui-tabs{width:100%}.client-tab-nav{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--line,#d8e0ec);padding:0 0 10px;margin-bottom:12px}.client-tab-nav button{background:#fff;border:1px solid #cfd8e6;padding:8px 13px}.client-tab-nav button.active{background:#0878d1;color:#fff;border-color:#0878d1}.client-tab-panel{display:none}.client-tab-panel.active{display:block}.client-overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.client-connections-slot>.client-transport-panel{margin:0}.client-policy-section{margin:0}.client-analytics-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.client-analytics-head h3{margin:0 0 4px}.client-analytics-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}.client-analytics-summary>div,.client-analytics-metrics>div{border:1px solid #dce4ef;background:#fff;padding:10px;min-width:0}.client-analytics-summary span,.client-analytics-metrics span{display:block;font-size:12px;color:#66768d;margin-bottom:4px}.client-analytics-transports{display:grid;grid-template-columns:1fr 1fr;gap:10px}.client-analytics-transport{border:1px solid #d8e1ed;background:#fafcff;padding:12px}.client-analytics-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:10px}.client-periods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.client-period{border:1px solid #dce4ef;background:#fff;padding:9px;display:flex;justify-content:space-between;gap:8px;font-size:12px}.client-period span{color:#66768d}.client-charts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.client-charts>div{border:1px solid #dce4ef;background:#fff;padding:10px}.client-chart{width:100%;height:120px}.client-chart-rx,.client-chart-tx{fill:none;stroke-width:2}.client-chart-rx{stroke:#0878d1}.client-chart-tx{stroke:#7559d6}.client-chart-legend{display:flex;gap:12px;font-size:11px;color:#66768d}.client-empty-chart{height:120px;display:flex;align-items:center;justify-content:center;color:#718096;text-align:center}.compact-monitor-toolbar,.compact-monitor-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.compact-monitor-status,.compact-monitor-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.reality-inline-settings.hidden{display:none}.reality-inline-settings{margin-top:10px}.reality-client-monitor-toolbar{padding:10px 12px;margin-bottom:10px}.ua-client-summary{padding:14px}.ua-total.compact{margin:10px 0}.ua-lazy-details{display:none;border-top:1px solid #d8e0ec;margin-top:12px;padding-top:12px}.ua-lazy-details.open{display:block}.ua-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ua-detail-grid>section{border:1px solid #dce4ef;background:#fafcff;padding:10px}.ua-detail-grid h3{margin:0 0 6px}
@media(max-width:900px){.client-overview-grid,.client-analytics-transports,.client-charts,.ua-detail-grid{grid-template-columns:1fr}.client-analytics-summary,.client-analytics-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.client-periods{grid-template-columns:1fr}.client-analytics-head{display:block}.client-analytics-head button{margin-top:10px;width:100%}}

/* ShellRoute 0.12.0 client lifecycle */
.life-header-badge{display:inline-flex;margin-left:6px}.life-status-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:12px}.life-status-head h3{margin:0 0 4px}.life-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:12px 0}.life-summary>div{border:1px solid #dbe3ee;background:#fff;padding:11px;min-width:0}.life-summary span{display:block;color:#66768a;font-size:12px;margin-bottom:5px}.life-summary b{font-size:14px;overflow-wrap:anywhere}.life-progress{height:10px;background:#e8edf4;overflow:hidden;margin-top:8px}.life-progress>span{display:block;height:100%;background:linear-gradient(90deg,#1677ff,#22a45d);max-width:100%}.life-progress-caption{display:flex;justify-content:space-between;color:#66768a;font-size:11px;margin:5px 0 14px}.life-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:12px}.life-settings,.life-events{border:1px solid #d9e2ef;background:#fafcff;padding:14px}.life-settings h3,.life-events h3{margin-top:0}.life-event-list{display:grid;gap:7px;max-height:390px;overflow:auto}.life-event{display:flex;justify-content:space-between;gap:10px;border-left:3px solid #9aa8ba;background:#fff;padding:9px 10px}.life-event.warning{border-color:#e9a23b}.life-event.error{border-color:#d84b4b}.life-event.success{border-color:#22a45d}.life-event p{margin:3px 0 0;color:#66768a;font-size:12px}.life-event time{white-space:nowrap;color:#718096;font-size:11px}.life-danger-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.life-events .buttonish{font-size:12px}.badge.err{background:#ffe9e9;color:#a52b2b;border-color:#f2bcbc}
@media(max-width:1200px){.life-summary{grid-template-columns:repeat(3,1fr)}}
@media(max-width:850px){.life-status-head{display:block}.life-grid{grid-template-columns:1fr}.life-summary{grid-template-columns:repeat(2,1fr)}.life-progress-caption,.life-event{display:block}.life-event time{display:block;margin-top:5px}.life-danger-actions>*{flex:1}}

/* ShellRoute 0.12.2 global and per-client lists */
.domain-lists-page{padding:18px}.domain-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0;border-bottom:1px solid #d8e0ec;padding-bottom:10px}.domain-tabs button.active{background:#0878d1;color:#fff;border-color:#0878d1}.domain-list-settings,.domain-client-head{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}.domain-client-head{grid-template-columns:repeat(4,minmax(0,1fr))}.domain-client-head.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.domain-list-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.domain-list-box{border:1px solid #d8e1ed;background:#fafcff;padding:12px;min-width:0}.domain-list-box textarea{width:100%;min-height:155px;box-sizing:border-box;resize:vertical}.domain-list-title{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:8px}.domain-list-title h3{margin:0 0 3px}.domain-list-title p{margin:0;color:#687990;font-size:12px}.domain-list-title>span{min-width:30px;text-align:center;border:1px solid #d8e1ed;background:#fff;padding:4px 7px;font-size:12px}.danger-list{border-left:4px solid #d94b4b}.allow-list{border-left:4px solid #28a66a}.bypass-list{border-left:4px solid #e3a223}.tunnel-list{border-left:4px solid #0878d1}.ads-list{border-left:4px solid #7958d8}.domain-effective,.client-domain-head{border:1px solid #d8e1ed;background:#f7fbff;padding:12px;margin-top:12px}.client-domain-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin:0 0 12px}.client-domain-head h3{margin:0 0 4px}.domain-counts{display:flex;gap:7px;flex-wrap:wrap}.domain-counts span{border:1px solid #d8e1ed;background:#fff;padding:5px 8px;font-size:12px}.domain-check-grid{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end}.domain-list-box:nth-child(5){grid-column:1/-1}.client-tab-panel[data-client-tab-panel="lists"] .domain-list-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1000px){.domain-client-head{grid-template-columns:repeat(2,minmax(0,1fr))}.domain-list-grid{grid-template-columns:1fr}.domain-list-box:nth-child(5){grid-column:auto}}
@media(max-width:720px){.domain-list-settings,.domain-client-head,.domain-client-head.compact,.domain-check-grid{grid-template-columns:1fr}.client-domain-head{display:block}.domain-counts{margin-top:9px}.domain-lists-page{padding:12px}}

/* Stage 19 domain policy enforcement */
.domain-policy-panel{border:1px solid #cfd9e8;background:#f8fbff;padding:16px;margin-bottom:16px}.dp-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.dp-head h2{margin:0 0 5px}.dp-head p{margin:0;max-width:920px}.dp-summary{margin:12px 0}.dp-settings{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:10px;align-items:end;border:1px solid #dce5f0;background:#fff;padding:12px}.dp-settings label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#5f6f84}.dp-settings .switch-line{flex-direction:row;align-items:center;align-self:center}.dp-server-list{display:grid;gap:8px;margin-top:12px}.dp-server{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:10px;align-items:center;border:1px solid #dce5f0;background:#fff;padding:11px}.dp-server small{display:block;color:#68798f;margin-top:3px}.dp-server .callout{grid-column:1/-1;margin:0}.dp-coverage{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.dp-coverage>div{border:1px solid #dce5f0;background:#fff;padding:12px}.dp-coverage b,.dp-coverage span{display:block}.dp-coverage span{font-size:12px;color:#68798f;margin-top:5px;line-height:1.45}@media(max-width:1000px){.dp-settings{grid-template-columns:1fr 1fr}.dp-settings button{grid-column:1/-1}.dp-coverage{grid-template-columns:1fr}}@media(max-width:700px){.dp-head{display:block}.dp-head button{width:100%;margin-top:12px}.dp-settings{grid-template-columns:1fr}.dp-settings button{grid-column:auto}.dp-server{grid-template-columns:1fr}.dp-server .badges{justify-content:flex-start}}
.domain-client-enforcement{display:flex;align-items:center;gap:7px;flex-wrap:wrap;border:1px solid #dce5f0;background:#f8fbff;padding:10px 12px;margin:10px 0}.domain-client-enforcement>b{margin-right:4px}

/* Stage 20: client pages and notifications */
.notice-intro{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:20px;border:1px solid var(--line,#d8e0ec);background:#fff;margin-bottom:12px}.notice-intro h2{margin:0 0 6px}.notice-intro p{margin:0;color:#66768b}.notice-actions{display:flex;gap:8px;flex-wrap:wrap}.notice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.notice-page{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid #dce4ef;padding:12px;margin-top:8px;background:#fbfdff}.notice-page small{display:block;color:#6d7d92;margin-top:3px}.notice-page>div:last-child{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.notice-domain-help{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.notice-domain-help>div{border:1px solid #dce4ef;padding:12px;background:#fbfdff}.notice-domain-help b,.notice-domain-help span{display:block}.notice-domain-help span{font-size:12px;color:#69798e;margin-top:5px}@media(max-width:900px){.notice-grid,.notice-domain-help{grid-template-columns:1fr}.notice-intro,.notice-page{display:block}.notice-actions,.notice-page>div:last-child{margin-top:10px;justify-content:flex-start}}

/* 0.15.0 browser invitations and device portal */
.portal-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.portal-table{display:grid;gap:9px}.portal-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;border:1px solid var(--line,#d8e0ec);background:#fff}.portal-row>div:first-child{display:grid;gap:3px}.portal-row span,.portal-row small{color:#68788e}.portal-row input{min-width:340px}.checks{display:flex;gap:14px;flex-wrap:wrap;margin:12px 0}.checks label{display:flex;align-items:center;gap:7px}.portal-admin-grid .callout input{width:100%;margin:10px 0}@media(max-width:900px){.portal-admin-grid{grid-template-columns:1fr}.portal-row{align-items:flex-start;flex-direction:column}.portal-row .actions{width:100%}.portal-row .actions>*{flex:1}.portal-row input{min-width:0;width:100%}}

/* 0.16.0 portal HTTPS and administrator authentication */
.portal-auth-shell{min-height:calc(100vh - 150px);display:flex;align-items:center;justify-content:center;padding:24px}.portal-auth-card{width:min(460px,100%);padding:24px}.portal-auth-card h2{margin:8px 0}.portal-auth-logo{width:48px;height:48px;display:grid;place-items:center;background:#0878d1;color:#fff;font-weight:700;font-size:18px}.portal-auth-card .field{margin-top:12px}.portal-auth-card>button{width:100%;margin-top:16px}.portal-admin-top,.portal-section-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.portal-admin-top{padding:16px;border:1px solid var(--line);background:#fff;margin-bottom:14px}.portal-admin-top h2,.portal-section-head h2{margin:0 0 5px}.portal-admin-top p,.portal-section-head p{margin:0;color:#68788e}.portal-tls-card{margin-bottom:14px}.portal-tls-grid{display:grid;grid-template-columns:1fr 1fr .7fr;gap:12px;margin:15px 0}.portal-tls-grid small{display:block;color:#68788e;margin-top:5px}.portal-tls-status{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:12px 0}.portal-tls-status>div{border:1px solid #dce4ef;background:#f9fbfe;padding:11px;min-width:0}.portal-tls-status span{display:block;color:#68788e;font-size:12px;margin-bottom:5px}.portal-tls-status b{overflow-wrap:anywhere}.portal-task-live{border:1px solid #b9d6f4;background:#f3f9ff;padding:12px;margin:12px 0}.portal-task-live .progress{height:8px;background:#dae7f5;margin:8px 0}.portal-task-live .progress span{display:block;height:100%;background:#0878d1}.portal-task-live small{color:#5f7086}.portal-tls-card .actions{display:flex;gap:8px;flex-wrap:wrap}.portal-tls-card code{background:#eef2f7;padding:2px 5px}.badge.err{background:#ffe9e9;color:#a52b2b;border-color:#f2bcbc}@media(max-width:1000px){.portal-tls-grid,.portal-tls-status{grid-template-columns:1fr 1fr}}@media(max-width:720px){.portal-admin-top,.portal-section-head{display:block}.portal-admin-top .actions,.portal-section-head .badges{margin-top:10px}.portal-tls-grid,.portal-tls-status{grid-template-columns:1fr}.portal-tls-card .actions>*{width:100%}}

/* ShellRoute 0.16.1 global administrator authentication */
body.admin-locked{overflow:hidden;background:#eef1f5}.admin-login-page{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#eef3f8,#f8fafc)}.admin-login-card{width:min(430px,100%);background:#fff;border:1px solid #cfd8e5;box-shadow:0 18px 50px rgba(30,50,75,.16);padding:28px}.admin-login-brand{display:flex;align-items:center;gap:12px;margin-bottom:24px}.admin-login-brand b{display:block;font-size:18px}.admin-login-brand span{display:block;color:#64748b;font-size:12px;margin-top:2px}.admin-login-logo{width:44px;height:44px;background:#0878d1;color:#fff;display:grid;place-items:center;font-weight:700;font-size:17px}.admin-login-card h1{font-size:23px;margin:0 0 8px}.admin-login-card>p{color:#64748b;margin:0 0 20px}.admin-login-card label{display:block;color:#475569;font-size:12px;margin-top:13px}.admin-login-card label input{display:block;width:100%;padding:10px 11px;border:1px solid #aab5c3;margin-top:5px;font:inherit}.admin-login-card>button.primary{width:100%;margin-top:18px}.admin-login-note{border-left:3px solid #0878d1;background:#f4f8fc;padding:11px;margin-top:14px;font-size:12px}.admin-login-error{border-left:3px solid #c4314b;background:#fff4f5;color:#8d1e32;padding:10px;margin:12px 0}.admin-login-actions{display:flex;gap:8px;margin-top:18px}.admin-login-actions button{flex:1}.global-admin-controls{display:flex;align-items:center;gap:7px;margin-left:4px}.global-admin-controls span{font-size:12px;color:#64748b;max-width:150px;overflow:hidden;text-overflow:ellipsis}.global-admin-controls button{padding:6px 9px;font-size:12px}@media(max-width:900px){.global-admin-controls span,.global-admin-controls #globalAdminAccount{display:none}.admin-login-card{padding:21px}}

/* ShellRoute 0.16.3 global admin controls and ACME challenge repair */
.admin-bio-button{width:100%;margin-top:10px;background:#fff;border:1px solid #8aa5c4;color:#174a78;font-weight:600}.admin-bio-button:hover{background:#f2f7fc}.admin-bio-list{display:grid;gap:9px;margin:15px 0}.admin-bio-row{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid #d8e1ed;background:#f8fbff;padding:11px}.admin-bio-row b,.admin-bio-row span,.admin-bio-row small{display:block}.admin-bio-row span{font-size:12px;color:#4d6077;margin-top:3px}.admin-bio-row small{font-size:11px;color:#75849a;margin-top:4px}.portal-tls-status{grid-template-columns:repeat(5,minmax(0,1fr))}@media(max-width:1100px){.portal-tls-status{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.admin-bio-row{align-items:flex-start;flex-direction:column}.admin-bio-row button{width:100%}.portal-tls-status{grid-template-columns:1fr}}

/* ShellRoute 0.16.5 NAT with forwarded HTTP-01 certificate flow */
.portal-dns-challenge{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:8px;align-items:end;margin:12px 0}.portal-dns-challenge label{display:block;font-size:12px;color:#5f6f83}.portal-dns-challenge input{display:block;width:100%;margin-top:5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.portal-dns-challenge button{white-space:nowrap}.callout.ok{border-left-color:#22a45d;background:#f2fbf6}
@media(max-width:760px){.portal-dns-challenge{grid-template-columns:1fr}.portal-dns-challenge button{width:100%}}

/* ShellRoute 0.16.6 live Let's Encrypt request monitor */
.portal-cert-task{margin:14px 0;padding:14px;border:1px solid #d8e0ec;background:#fff}.portal-cert-task.running{border-left:3px solid #1677ff}.portal-cert-task.error{border-left:3px solid #d93939}.portal-cert-task.success{border-left:3px solid #20a35a}.portal-cert-task-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.portal-cert-task-head b,.portal-cert-task-head span{display:block}.portal-cert-task-head span{margin-top:3px;color:#65758b;font-size:12px}.portal-cert-current{display:flex;justify-content:space-between;gap:12px;margin-top:8px;color:#526176;font-size:12px}.portal-ca-wait{display:grid;grid-template-columns:18px 1fr;gap:12px;margin-top:12px;padding:12px;border:1px solid #d9e3f0;background:#f7faff}.portal-ca-wait span,.portal-ca-wait small{display:block;margin-top:4px}.portal-ca-wait code{overflow-wrap:anywhere}.portal-ca-pulse{width:12px;height:12px;border-radius:50%;background:#1677ff;margin-top:4px;animation:portal-ca-pulse 1.2s infinite}.ok-text{color:#15854d}.warn-text{color:#a56b00}.portal-cert-task details{margin-top:10px}.portal-cert-task pre{max-height:260px;overflow:auto;white-space:pre-wrap;word-break:break-word;background:#f5f7fa;border:1px solid #d9e0ea;padding:10px;font-size:11px}@keyframes portal-ca-pulse{0%{transform:scale(.75);opacity:.45}50%{transform:scale(1.15);opacity:1}100%{transform:scale(.75);opacity:.45}}
@media(max-width:760px){.portal-cert-task-head,.portal-cert-current{display:block}.portal-cert-task-head .badge{margin-top:8px}}


/* 0.16.20: единая сетка, быстрые приглашения и мобильная компоновка */
main{display:flex;flex-direction:column;min-width:0}.side{display:flex;flex-direction:column}.side nav{flex:1;overflow:auto}.side-contact{display:grid;gap:5px;padding:14px 16px;border-top:1px solid var(--line);font-size:12px}.side-contact span{color:var(--muted)}.side-contact a,.app-contact-footer a,.admin-contact a{color:#0b5cab;text-decoration:none}.app-contact-footer{display:flex;align-items:center;justify-content:flex-end;gap:14px;padding:13px 20px;border-top:1px solid var(--line);background:#fff;color:var(--muted);font-size:12px}.app-contact-footer span{margin-right:auto}#content{width:100%;max-width:1600px;margin:0 auto;flex:1}.card{min-width:0}.grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));align-items:start}.field input,.field select,select,textarea{width:100%;min-height:40px;padding:9px 10px;border:1px solid #aab1bd;border-radius:2px;background:#fff;font:inherit}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.section-head h2{margin-bottom:5px}.section-head p{margin:0}.overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.overview-grid>.card{margin:0}.quick-invite-card{border-top:3px solid var(--blue)}.quick-invite-grid{display:grid;grid-template-columns:minmax(170px,1fr) minmax(240px,2fr) repeat(2,minmax(130px,.8fr));gap:12px;align-items:start;margin-top:16px}.quick-invite-options{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:15px 0}.quick-invite-options label{display:flex;align-items:center;gap:7px}.quick-invite-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.quick-invite-result{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(300px,1.5fr);gap:12px;align-items:end;margin-top:16px;padding:14px;border:1px solid #b9d6f4;background:#f5faff}.quick-invite-result>div:first-child{align-self:center}.quick-invite-result b,.quick-invite-result span{display:block}.quick-invite-result span{color:var(--muted);font-size:12px;margin-top:4px}.quick-invite-result input{min-height:40px;width:100%;grid-column:2}.quick-invite-result .actions{grid-column:1/-1;margin:0}.button-link{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:8px 13px;border:1px solid #8a8f98;background:#fff;color:var(--text);text-decoration:none;border-radius:2px;font-weight:500}.portal-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}.portal-row .actions{justify-content:flex-end;margin:0}.portal-admin-grid,.portal-tls-grid,.portal-tls-status{align-items:start}.admin-contact{display:flex;gap:10px;align-items:center;justify-content:center;border-top:1px solid #e1e7ef;margin-top:22px;padding-top:15px;font-size:12px}.admin-contact span{color:var(--muted)}
@media(max-width:1180px){.quick-invite-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-grid{grid-template-columns:1fr}.dash{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){header{min-height:56px;height:auto;flex-wrap:wrap;padding-block:8px}header h1{min-width:120px}.global-admin-controls{margin-left:auto}.app-contact-footer{flex-wrap:wrap;justify-content:center}.app-contact-footer span{width:100%;margin:0;text-align:center}.side{width:min(290px,86vw);box-shadow:10px 0 30px rgba(15,23,42,.18)}#content{padding:12px}.card{padding:15px;margin-bottom:12px}.section-head{display:block}.section-head .badge{margin-top:9px}.portal-row{grid-template-columns:1fr}.portal-row .actions{justify-content:flex-start;margin-top:10px}.quick-invite-result{grid-template-columns:1fr}.quick-invite-result input,.quick-invite-result .actions{grid-column:1}.quick-invite-result .actions>*{width:100%}}
@media(max-width:640px){body{font-size:14px}.dash,.quick-invite-grid{grid-template-columns:1fr}.tile{padding:14px}.tile b{font-size:25px}.quick-invite-options{display:grid;grid-template-columns:1fr;gap:10px}.quick-invite-actions{display:grid;grid-template-columns:1fr}.quick-invite-actions>*{width:100%}.actions{display:grid;grid-template-columns:1fr}.actions>*{width:100%}.global-admin-controls{width:100%;display:grid;grid-template-columns:1fr 1fr}.global-admin-controls button{width:100%}.admin-login-page{padding:12px}.admin-login-card{padding:20px}.admin-contact{flex-wrap:wrap}.portal-admin-grid{gap:12px}}

/* 0.16.21 consolidated information architecture */
.overview-grid{grid-template-columns:minmax(0,1fr)}
.overview-state-card{min-width:0}
.compact-dash{margin:16px 0;grid-template-columns:repeat(4,minmax(0,1fr))}
.overview-server-list{display:grid;gap:8px;margin-top:14px}
.overview-server-row{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(0,1.3fr);gap:16px;align-items:center;border:1px solid var(--line,#d8e0eb);padding:12px 14px;background:#fff}
.overview-server-row>div:first-child{display:grid;gap:3px}.overview-server-row span{color:var(--muted,#66758b);font-size:13px;overflow-wrap:anywhere}
.system-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.system-grid>.span-2{grid-column:1/-1}
.system-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:15px}
.service-list,.system-task-list{display:grid;gap:8px}.service-row,.system-task{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line,#d8e0eb);padding:11px 12px;background:#fff}
.service-row>div,.system-task>div:first-child{display:grid;gap:3px}.service-row span,.system-task span{color:var(--muted,#66758b);font-size:12px}.system-task{grid-template-columns:minmax(0,1fr) auto auto}.system-task a{white-space:nowrap}
.page-tabs{display:flex;gap:8px;margin-bottom:14px;border-bottom:1px solid var(--line,#d8e0eb);padding-bottom:10px}.page-tabs button.active{background:var(--primary,#0b7bdc);border-color:var(--primary,#0b7bdc);color:#fff}.guide-tab-body{min-width:0}
.server-reality-settings{border-top:2px solid #dbe7f6}.transport-settings-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}
@media(max-width:1100px){.compact-dash,.system-metrics,.transport-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.compact-dash,.system-grid,.system-metrics,.transport-settings-grid{grid-template-columns:1fr}.system-grid>.span-2{grid-column:auto}.overview-server-row{grid-template-columns:1fr}.overview-server-row .badges{justify-content:flex-start}.service-row,.system-task{grid-template-columns:1fr}.system-task a{justify-self:start}.page-tabs{display:grid;grid-template-columns:1fr 1fr}.server-reality-settings .action-grid{grid-template-columns:1fr}.system-grid .section-head{align-items:flex-start}.system-grid .section-head>button{width:100%}}

/* 0.16.23 client management */
.client-manage-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.client-manage-summary>div{border:1px solid var(--line,#d7dee8);padding:12px;min-width:0}.client-manage-summary span{display:block;color:var(--muted,#64748b);font-size:12px;margin-bottom:5px}.client-manage-summary b{display:block;overflow-wrap:anywhere}.client-manage-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.client-manage-groups section{border:1px solid var(--line,#d7dee8);padding:14px;min-width:0}.client-manage-groups h3{margin:0 0 7px}.client-manage-groups p{margin:0 0 12px;color:var(--muted,#64748b);line-height:1.45}.client-manage-groups .danger-zone{grid-column:1/-1;border-color:#efb2b2;background:#fff8f8}@media(max-width:760px){.client-manage-summary,.client-manage-groups{grid-template-columns:1fr}.client-manage-groups .danger-zone{grid-column:auto}.client-manage-groups .actions{display:grid;grid-template-columns:1fr}.client-manage-groups .actions>*{width:100%;text-align:center}}

/* Unified ShellRoute dialogs */
body.sr-dialog-open{overflow:hidden}.sr-dialog-root{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:18px}.sr-dialog-root.hidden{display:none}.sr-dialog-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.5);backdrop-filter:blur(3px)}.sr-dialog-card{position:relative;width:min(560px,100%);max-height:min(82vh,760px);display:flex;flex-direction:column;background:#fff;border:1px solid #cbd5e1;border-radius:16px;box-shadow:0 24px 70px rgba(15,23,42,.24);overflow:hidden}.sr-dialog-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 22px 15px;border-bottom:1px solid #e2e8f0}.sr-dialog-card h3{margin:3px 0 0;font-size:21px;line-height:1.25}.sr-dialog-kicker{font-size:10px;letter-spacing:.2em;font-weight:800;color:#1476ff}.sr-dialog-x{width:34px;height:34px;padding:0;border:0;background:transparent;font-size:25px;line-height:1;color:#64748b}.sr-dialog-body{padding:20px 22px;overflow:auto;color:#334155}.sr-dialog-body p{margin:0 0 12px;line-height:1.55}.sr-dialog-body p:last-child{margin-bottom:0}.sr-dialog-card footer{display:flex;justify-content:flex-end;gap:10px;padding:15px 22px;border-top:1px solid #e2e8f0;background:#f8fafc}.sr-dialog-card footer button{min-width:110px}.sr-dialog-error{margin:0 22px 16px;padding:11px 13px;border:1px solid #fecaca;border-radius:9px;background:#fff1f2;color:#991b1b;font-size:13px}.sr-dialog-error.hidden{display:none}.sr-dialog-danger-mark{float:left;display:grid;place-items:center;width:42px;height:42px;margin:0 14px 8px 0;border-radius:50%;background:#fee2e2;color:#b91c1c;font-size:25px;font-weight:800}.sr-dialog-field{display:grid;gap:7px;margin-top:14px}.sr-dialog-field span{font-weight:700}.sr-dialog-field input,.sr-dialog-field textarea{width:100%}.sr-biometric-note{display:grid;gap:4px;margin-top:17px;padding:13px 14px;border:1px solid #bfdbfe;border-radius:10px;background:#eff6ff;color:#1e3a8a}.sr-biometric-note span{font-size:13px;line-height:1.45}@media(max-width:600px){.sr-dialog-root{padding:10px;align-items:end}.sr-dialog-card{width:100%;max-height:90vh;border-radius:16px 16px 10px 10px}.sr-dialog-card header,.sr-dialog-body,.sr-dialog-card footer{padding-left:16px;padding-right:16px}.sr-dialog-card footer{display:grid;grid-template-columns:1fr}.sr-dialog-card footer button{width:100%;min-height:44px}.sr-dialog-error{margin-left:16px;margin-right:16px}}

/* Managed list catalog */
.domain-managed-catalog{margin:16px 0 20px}.domain-managed-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.domain-managed-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:16px;padding:15px;border:1px solid #d9e2ef;background:#f8fafc}.domain-managed-card h3{margin:0 0 5px}.domain-managed-card p{margin:0 0 9px;color:#64748b;line-height:1.45}.domain-managed-meta{display:flex;flex-wrap:wrap;gap:7px}.domain-managed-actions{display:grid;gap:8px;min-width:150px}.domain-managed-actions button{width:100%}@media(max-width:760px){.domain-managed-grid{grid-template-columns:1fr}.domain-managed-card{grid-template-columns:1fr}.domain-managed-actions{min-width:0}.domain-managed-actions button{min-height:44px}}
/* 0.16.24 managed lists layout */
.domain-managed-card{grid-template-columns:1fr;align-items:stretch}.domain-managed-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.domain-managed-head>div{min-width:0}.domain-managed-actions{display:flex;justify-content:flex-end;min-width:0}.domain-managed-actions button{width:auto}.callout.warn{border-color:#d97706;background:#fffbeb;color:#92400e}@media(max-width:760px){.domain-managed-head{display:grid;grid-template-columns:1fr}.domain-managed-actions{display:grid;grid-template-columns:1fr}.domain-managed-actions button{width:100%;min-height:44px}}

/* ShellRoute 0.16.26 */
.system-page-tabs{margin-bottom:14px}
.system-optional-deps{margin-top:14px;border-top:1px solid var(--border,#d8e0eb);padding-top:12px}
.system-optional-deps summary,.custom-html-field summary{cursor:pointer;font-weight:700;color:#253247}
.system-script-editor{width:100%;min-height:280px;box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}
.system-script-result{white-space:pre-wrap;max-height:520px;overflow:auto;background:#f7f9fc;border:1px solid #d8e0eb;padding:14px}
.managed-detail-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:18px}
.managed-source-list{padding-left:20px;word-break:break-word}
.managed-source-list li{margin:7px 0}
.managed-list-preview{width:100%;min-height:430px;box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;white-space:pre}
.client-pages-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.client-pages-head h2{margin:0 0 5px}
.system-pages-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}
.system-page-card{margin:0}
.system-page-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}
.system-page-summary>div{border:1px solid #d8e0eb;background:#f8fafc;padding:10px;min-width:0}
.system-page-summary b,.system-page-summary span{display:block}
.system-page-summary span{margin-top:5px;color:#5e6f87;overflow-wrap:anywhere}
.simple-page-builder .custom-html-field{margin:14px 0;border:1px solid #d8e0eb;padding:12px}
.simple-page-builder .custom-html-field textarea{width:100%;box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}
@media(max-width:900px){
 .managed-detail-grid,.system-pages-grid{grid-template-columns:1fr}
 .system-page-summary{grid-template-columns:1fr}
 .client-pages-head{display:block}.client-pages-head>button{width:100%;margin-top:10px}
 .managed-list-preview{min-height:300px}
}
