:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#202b42;background:#f5f7fb;font-size:14px;--muted:#728099;--line:#e7ebf2;--blue:#4266ec}
*{box-sizing:border-box}body{margin:0;display:flex;min-height:100vh}button,input,textarea,select{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #9db0ff;outline-offset:3px}a{color:var(--blue)}.sidebar{width:250px;background:#111b30;color:#c2cce0;padding:32px 22px;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column}.brand{text-decoration:none;color:white;font-size:20px;font-weight:650;display:flex;align-items:center;gap:12px}.brand-icon{font-size:34px;color:#a7bbff}.workspace-label{font-size:10px;letter-spacing:1.2px;margin:34px 0 40px;color:#8696b4;display:flex;justify-content:space-between;align-items:center}.workspace-label span{border:1px solid #364664;padding:4px 6px;border-radius:5px;font-size:9px}.section-label{display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:1.7px;color:#8190ab;padding:0 10px 12px}.section-label button{color:#aab8d1;border:0;background:none;font-size:24px}#projects{display:grid;gap:6px}.project-item{background:none;color:#afbdd6;border:0;border-radius:9px;padding:14px 12px;text-align:left;display:flex;align-items:center;gap:12px}.project-item.active{background:#253655;color:#fff}.project-item .glyph{width:25px;height:25px;background:#344869;border-radius:6px;text-align:center;padding-top:3px}.sidebar-bottom{margin-top:auto;padding-top:30px;display:flex;gap:12px;align-items:center;font-size:12px}.sidebar-bottom small{display:block;font-size:10px;color:#8091ae;margin-top:5px}.avatar{width:35px;height:35px;display:grid;place-items:center;background:#283957;border-radius:50%;color:white}main{margin-left:250px;width:calc(100% - 250px)}header{height:77px;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 42px}.breadcrumb{font-size:12px;color:var(--muted);display:flex;gap:13px}.breadcrumb span:last-child{color:#25334e}.local-badge{font-size:11px;color:#727e94;background:#f3f5fa;border:1px solid var(--line);border-radius:20px;padding:8px 12px}.content{max-width:1280px;margin:auto;padding:40px 42px 20px}.project-heading{display:flex;justify-content:space-between;align-items:center}.eyebrow{letter-spacing:1.8px;font-size:10px;color:var(--muted);font-weight:600}h1{font-size:36px;font-weight:650;letter-spacing:-1.2px;margin:10px 0}p{color:var(--muted);line-height:1.65}.project-heading p{margin:0 0 20px;max-width:700px}.project-icon{width:62px;height:62px;border:1px solid #dce4ff;color:var(--blue);background:#edf1ff;border-radius:16px;font-size:32px;display:grid;place-items:center}.tabs{display:flex;gap:26px;border-bottom:1px solid #dfe5ef;margin:15px 0 28px;overflow:auto}.tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:16px 0;white-space:nowrap;color:var(--muted)}.tabs button.active{color:var(--blue);border-bottom-color:var(--blue);font-weight:600}.tabs span{font-size:10px;background:#e9edff;padding:2px 5px;border-radius:4px;margin-left:4px}.grid{display:grid;grid-template-columns:1.45fr 1fr;gap:20px}.card{background:white;border:1px solid var(--line);border-radius:14px;padding:25px;min-width:0}.card+.card{margin-top:20px}.grid .card{margin-top:0}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:10px}h2{font-size:17px;font-weight:600;margin:0}h3{font-size:14px;margin:0 0 6px}.subtle{font-size:11px;color:var(--muted)}.pill{font-size:10px;white-space:nowrap;padding:5px 8px;border-radius:5px;background:#f1f4f8;color:#7c899d}.pill.blue{background:#edf1ff;color:var(--blue)}.route{display:flex;align-items:center;gap:10px;margin:24px 0}.node{flex:1;border:1px solid var(--line);border-radius:10px;padding:16px 12px}.node-icon{background:#eef2ff;color:var(--blue);border-radius:8px;width:32px;height:32px;display:grid;place-items:center;font-size:19px;margin-bottom:14px}.node small{display:block;color:var(--muted);font-size:10px;margin-top:7px}.arrow{color:#a1aec4}.note{font-size:12px;padding:12px 14px;background:#f7f9fc;border-radius:8px;line-height:1.6;color:#71809a}.features{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:22px 0}.features strong{display:block;font-size:22px;font-weight:600}.features small{display:block;color:var(--muted);font-size:11px;margin-top:8px}.row{display:flex;align-items:flex-start;gap:12px;padding:15px 0;border-bottom:1px solid #f0f2f7}.row:last-child{border:0}.row p{margin:4px 0 0;font-size:12px}.row-icon{width:32px;height:32px;flex-shrink:0;display:grid;place-items:center;background:#f2f5fa;border-radius:8px;color:#6e80a2}.row-text{flex:1;min-width:0}.link-button{border:0;background:none;color:var(--blue);padding:0;font-size:12px}.primary,.secondary{border:0;border-radius:8px;padding:11px 16px}.primary{background:var(--blue);color:white}.secondary{background:#edf1f7;color:#50617e}.full{width:100%}.ai-card{background:linear-gradient(135deg,#f6f8ff,#fff);border-color:#dfe5fa}.ai-card p{font-size:12px}.agent-tags{display:flex;gap:8px;margin:18px 0}.agent-tags span{padding:6px 9px;background:white;border:1px solid #e2e7f2;border-radius:6px;font-size:11px}.server-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.server-grid .card{margin:0}.server-title{margin:18px 0}.metric{display:flex;justify-content:space-between;padding:13px 0;border-top:1px solid var(--line);font-size:12px}.metric span{color:var(--muted)}.task{align-items:center}.task input{width:17px;height:17px;accent-color:var(--blue);flex-shrink:0}.task.done strong{text-decoration:line-through;color:var(--muted)}.task strong{font-size:13px;font-weight:500}.task-form{display:flex;gap:10px;margin-top:20px}input,textarea,select{border:1px solid #dce3ee;border-radius:8px;padding:12px;color:#26364f;background:#fff;max-width:100%}input:focus,textarea:focus,select:focus{outline:2px solid #b8c5ff;border-color:var(--blue)}.task-form input{flex:1;min-width:0}label{display:block;font-size:12px;color:#5d6c84;margin:18px 0 8px}label input,label textarea{display:block;width:100%;margin-top:8px}textarea{resize:vertical;line-height:1.7}.editor{width:100%;min-height:300px;margin:15px 0}.actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.chat-layout{display:grid;grid-template-columns:1fr 260px;gap:20px}.chat-empty{text-align:center;padding:40px 20px}.chat-symbol{margin:0 auto 20px;border-radius:15px;background:#edf1ff;color:var(--blue);width:55px;height:55px;display:grid;place-items:center;font-size:27px}.chat-empty h2{font-size:23px}.chat-empty p{max-width:440px;margin:12px auto}.chat-composer{width:100%;min-height:105px;margin-top:15px}.context-item{font-size:12px;margin:16px 0;line-height:1.7;color:#61718a}.context-item strong{color:#334762}.empty{padding:35px;text-align:center;color:var(--muted)}footer{display:flex;justify-content:space-between;margin-top:32px;padding:12px 0;font-size:10px;color:#8995a9}#notice{font-size:12px;color:#3655b7;margin-bottom:12px}dialog{border:1px solid var(--line);border-radius:16px;width:440px;max-width:calc(100% - 30px);padding:28px;color:#25344c}dialog::backdrop{background:#101c3966}dialog h2{margin-top:12px;font-size:24px}.warning{padding:13px 16px;margin-bottom:20px;background:#fff9ed;border:1px solid #efe4cd;color:#886b37;border-radius:8px;font-size:12px;line-height:1.6}.source{font-size:11px;color:var(--muted);margin-top:20px}
@media(max-width:1100px){.sidebar{width:210px}main{margin-left:210px;width:calc(100% - 210px)}.content{padding:30px 25px}header{padding:0 25px}.grid,.chat-layout{grid-template-columns:1fr}.server-grid{grid-template-columns:1fr}.grid .card+.card{margin-top:0}}
@media(max-width:650px){body{display:block}.sidebar{position:static;width:100%;padding:15px 20px}.brand{font-size:18px}.brand-icon{font-size:25px}.workspace-label,.sidebar-bottom,.section-label{display:none}#projects{display:flex;overflow:auto;margin-top:15px}.project-item{white-space:nowrap;padding:9px}.sidebar:after{content:'Новый проект: кнопка + в списке';display:none}main{margin:0;width:100%}header{padding:0 20px;height:55px}.local-badge{font-size:9px}.content{padding:25px 16px}.project-icon{display:none}h1{font-size:30px}.tabs{gap:20px}.card{padding:20px}.route{gap:6px}.node{padding:12px 7px}.node strong{font-size:11px}.node small{font-size:9px}.features{gap:8px}footer{display:block;line-height:2}footer span{display:block}.task-form{flex-direction:column}.section-label{display:flex;padding:12px 0 0}.section-label button{font-size:20px}.section-label{font-size:9px}}
.sidebar-tools{display:grid;gap:8px;margin-top:auto;padding-top:28px}.sidebar-tools button{background:none;border:0;color:#93a4c3;text-align:left;font-size:11px;padding:6px 10px}.sidebar-tools button:hover{color:white}.sidebar-bottom{margin-top:12px}button:disabled,select:disabled{opacity:.5;cursor:not-allowed}#notice.error{color:#a54242;background:#fff1f1;padding:12px;border-radius:8px}.connection{display:flex;align-items:center;gap:15px;border:1px solid #e3e8f4;border-radius:9px;padding:15px;background:#f7f9fd;font-size:12px;margin-bottom:20px}.connection p{font-size:11px;margin:5px 0 0}.connection button{flex-shrink:0;font-size:11px}.message{margin:18px 0;padding:16px;border-radius:10px}.user-message{background:#edf1ff;margin-left:25px}.assistant-message{border:1px solid #e9edf4;background:white}.message-label{font-size:11px;font-weight:600;color:#6e7d96;margin-bottom:10px;display:flex;justify-content:space-between;gap:8px}.message-label span{font-size:9px;font-weight:400}.message-body{font-size:13px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.run-error{font-size:12px;color:#a04c41;line-height:1.7;margin-bottom:12px}.thinking{font-size:12px;color:#71809b;margin:10px 0 15px}.pulse{display:inline-block;width:7px;height:7px;border-radius:50%;background:#4266ec;margin-right:6px;animation:pulse 1.5s infinite}#model{width:100%;font-size:12px}.chat-layout{grid-template-columns:minmax(0,1fr) 235px}.chat-layout>.card{align-self:start}#messages{max-height:600px;overflow:auto}.chat-composer{min-height:125px}.source{line-height:1.7}@keyframes pulse{50%{opacity:.25}}@media(prefers-reduced-motion:reduce){.pulse{animation:none}}@media(max-width:1100px){.chat-layout{grid-template-columns:1fr}.connection{flex-wrap:wrap}}@media(max-width:650px){.sidebar-tools{display:flex;margin:8px 0 0;padding:0;flex-wrap:wrap}.sidebar-tools button{font-size:10px}.sidebar-bottom{display:flex;padding-top:5px}.sidebar-bottom .avatar{display:none}.message-label{flex-wrap:wrap}.user-message{margin-left:0}.actions{flex-wrap:wrap}.chat-empty{padding:25px 5px}}
.login-page{display:grid;place-items:center;min-height:100dvh;background:radial-gradient(ellipse at 20% 15%,#e8eeff,transparent 55%),#f5f7fb;padding:44px 20px}.login-shell{margin:0;width:100%;max-width:450px}.login-brand{color:#202e49;justify-content:center;margin-bottom:32px}.login-brand .brand-icon{color:#4266ec}.login-card{background:#fff;border:1px solid #e0e6f2;border-radius:20px;padding:36px;box-shadow:0 18px 60px #2237640a}.login-card h1{font-size:30px;letter-spacing:-.8px;margin:15px 0 12px}.login-card p{font-size:13px}.login-card input{width:100%}.login-card label{margin:20px 0 8px}.login-card .primary{margin-top:26px;padding:14px}.login-caption{text-align:center;font-size:12px;margin:23px 0 0}.login-card .source{font-size:11px;line-height:1.6}#login-error{background:#fff1f1;color:#a54242;padding:12px;border-radius:8px;overflow-wrap:anywhere}#account-dialog p{font-size:13px}#account-name{overflow-wrap:anywhere}@media(max-width:650px){.login-page{display:grid;padding:28px 18px}.login-card{padding:27px 24px}.login-card h1{font-size:28px}.login-brand{margin-bottom:26px}}

.mfa-panel{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;margin:20px 0}.mfa-panel h3{font-size:16px;margin:0 0 10px}.mfa-panel input,.mfa-panel select{width:100%}.mfa-panel button{margin-top:16px}.mfa-panel [hidden]{display:none!important}#account-dialog{max-height:calc(100dvh - 40px);overflow-y:auto;width:500px}#mfa-qr{display:block;width:240px;height:240px;max-width:100%;margin:16px auto;background:white}#mfa-secret{display:block;overflow-wrap:anywhere;margin:12px 0}#mfa-recovery-codes{font-size:12px;overflow-x:auto;padding:14px;background:#f3f6fb;border-radius:8px;line-height:1.9}#mfa-error{background:#fff1f1;color:#a54242;padding:12px;border-radius:8px}.mfa-panel details{font-size:12px;margin:15px 0}.mfa-panel label{margin-top:12px}

.monitor-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}.monitor-toolbar h2{margin:0}.monitor-toolbar p{margin:7px 0 0;font-size:12px}.live-servers{grid-template-columns:repeat(3,minmax(0,1fr))}.server-live{min-width:0}.server-live .server-title h2{font-size:20px;margin:12px 0}.server-live .metric{gap:10px;font-size:12px}.server-live .metric strong{text-align:right}.metric-date{align-items:start;font-size:10px!important}.metric-date strong{max-width:120px}.pill.green{background:#e8f6ee;color:#23724b}.pill.amber{background:#fff2d9;color:#8a611c}.server-live progress{display:block;width:100%;height:5px;accent-color:#4266ec;margin:0 0 12px}.metric-stale progress{accent-color:#a3adbb}.metric-stale .metric{color:#7e8794}#monitor-error{font-size:12px;color:#a54242;margin:12px 0}@media(max-width:1300px){.live-servers{grid-template-columns:1fr}.monitor-toolbar{flex-wrap:wrap}}
.project-title-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:8px}.project-title-row h1{overflow-wrap:anywhere;min-width:0}.project-title-row button{font-size:12px;white-space:nowrap}.project-heading>div:first-child{min-width:0}.project-icon{flex-shrink:0}#rename-name{width:100%}#rename-error{color:#a54242;font-size:13px}.project-item{overflow-wrap:anywhere;min-width:0}.project-item .glyph{flex-shrink:0}
#rename-project{display:inline-grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--line);border-radius:8px;background:white;font-size:21px;color:var(--muted)}#rename-project:hover{color:var(--blue);background:#edf1ff}.tabs [hidden]{display:none}.client-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}#client-dialog{max-height:calc(100dvh - 40px);overflow:auto;width:540px}#client-dialog input,#client-dialog select,#client-dialog textarea{width:100%}#client-error{color:#a54242;font-size:13px}@media(max-width:650px){.client-fields{grid-template-columns:1fr}}

.client-table-wrap{overflow-x:auto;background:white;border:1px solid var(--line);border-radius:14px}.client-table{width:100%;min-width:760px;border-collapse:collapse;table-layout:fixed;text-align:left;font-size:12px}.client-table th{padding:16px 14px;background:#f8f9fc;color:var(--muted);font-weight:500;font-size:11px}.client-table td{padding:18px 14px;border-top:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}.client-table th:nth-child(1){width:21%}.client-table th:nth-child(2){width:18%}.client-table th:nth-child(3){width:24%}.client-table th:nth-child(4){width:13%}.client-table th:nth-child(5){width:17%}.client-table th:nth-child(6){width:7%}.client-table strong{display:block;font-size:13px}.client-table tbody tr:hover{background:#fafbff}.client-table .client-date{white-space:nowrap}.client-actions button{width:30px;height:30px;padding:0;font-size:18px;display:grid;place-items:center}.client-note{margin-top:8px;color:var(--muted);font-size:11px}.client-note summary{cursor:pointer;width:fit-content}.client-note p{white-space:pre-wrap;margin:8px 0 0;line-height:1.5}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.client-table{min-width:1220px}.client-table th:nth-child(1){width:15%}.client-table th:nth-child(2){width:12%}.client-table th:nth-child(3){width:17%}.client-table th:nth-child(4){width:18%}.client-table th:nth-child(5){width:11%}.client-table th:nth-child(6){width:9%}.client-table th:nth-child(7){width:11%}.client-table th:nth-child(8){width:7%}.client-table td small{display:block;color:var(--muted);font-size:10px;margin-top:7px;line-height:1.5}.client-actions button{margin-bottom:6px}#client-provision-label{display:flex;align-items:center;gap:10px;font-size:12px;margin:18px 0}#client-provision-label[hidden]{display:none}#client-provision{width:auto!important}#vpn-access-dialog{width:540px;max-height:calc(100dvh - 40px);overflow:auto}#vpn-access-dialog p{font-size:13px}#vpn-qr{display:block;width:260px;height:260px;margin:18px auto;max-width:100%}#vpn-uri{width:100%;height:85px;font-size:11px;word-break:break-all}#vpn-access-error{color:#a54242;font-size:12px}#vpn-secret[hidden]{display:none}
.client-table{min-width:900px}.client-table th:nth-child(1){width:19%}.client-table th:nth-child(2){width:22%}.client-table th:nth-child(3){width:23%}.client-table th:nth-child(4){width:13%}.client-table th:nth-child(5){width:14%}.client-table th:nth-child(6){width:9%}.client-actions button{display:inline-grid;margin-right:3px}.client-table td{padding:16px 10px}.client-table th{padding:16px 10px}
#client-manual-fields[hidden]{display:none}
/* VPN clients: compact list and a detail drawer. */
.clients-heading{margin-bottom:22px}.clients-heading h2{font-size:24px;margin:0 0 8px}.clients-heading p{margin:0;color:var(--muted);font-size:13px}.vpn-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:24px}.vpn-summary>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px 24px}.vpn-summary span{display:block;font-size:12px;color:var(--muted);margin-bottom:12px}.vpn-summary strong{font-size:27px;font-weight:600;letter-spacing:-.6px}.clients-controls{display:flex;gap:12px;align-items:center}.clients-controls label{margin:0}.client-search{flex:1}.clients-controls input,.clients-controls select{width:100%;margin:0;background:white;border:1px solid var(--line);border-radius:9px;padding:12px 14px}.clients-controls select{min-width:225px}.client-table{min-width:830px}.client-table th:nth-child(1){width:24%}.client-table th:nth-child(2){width:12%}.client-table th:nth-child(3){width:26%}.client-table th:nth-child(4){width:19%}.client-table th:nth-child(5){width:19%}.client-table td{vertical-align:middle;padding:20px 14px}.client-table th{padding:16px 14px}.client-name-button{font-weight:600;text-align:left;border:0;background:none;padding:0;color:#202b42}.client-name-button:hover{color:var(--blue)}.client-table tbody tr[data-client-row]{cursor:pointer}.activity-online{color:#367256;display:inline-flex;align-items:center;gap:7px}.activity-online:before{content:'';width:6px;height:6px;flex-shrink:0;background:#57a27c;border-radius:50%}.activity-help{color:var(--muted);cursor:help}.activity-help:focus:after{content:attr(aria-label);position:absolute;z-index:5;max-width:300px;background:#202b42;color:white;padding:12px;border-radius:8px;line-height:1.5}.client-actions .config-button{width:auto;white-space:nowrap;height:33px;padding:0 10px;font-size:11px;margin:0}.client-action-group{display:flex;align-items:center;gap:6px;justify-content:flex-end}.client-menu summary{list-style:none;font-size:21px;line-height:30px;text-align:center;width:26px;border-radius:6px;cursor:pointer}.client-menu summary::-webkit-details-marker{display:none}.client-menu[open] summary,.client-menu summary:hover{background:#eaf0ff}.client-menu-items{position:absolute;right:24px;z-index:6;background:#fff;padding:6px;min-width:190px;border:1px solid var(--line);box-shadow:0 8px 30px #18284322;border-radius:10px}.client-actions .client-menu-items button{display:block;width:100%;text-align:left;height:auto;padding:11px 12px;font-size:12px;border:0;background:none;margin:0}.client-menu-items button:hover{background:#f2f5fb}.danger{color:#ae4343!important}.clients-empty{text-align:center!important;padding:40px!important;color:var(--muted)}.client-table-wrap{position:relative;overflow:visible}#vpn-status{min-height:18px}.client-drawer#vpn-access-dialog{position:fixed;inset:0 0 0 auto;margin:0;width:min(570px,100vw);max-width:100vw;max-height:100dvh;height:100dvh;border:0;border-radius:0;padding:30px;box-shadow:-16px 0 60px #14243b22;overflow-y:auto}.drawer-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.drawer-heading h2{margin:8px 0;font-size:25px}.drawer-heading p{margin:6px 0;color:var(--muted)}.drawer-heading button{padding:7px 11px}#vpn-detail-status{display:flex;gap:16px;align-items:center;flex-wrap:wrap;font-size:12px;margin:18px 0 26px}.drawer-section{border-top:1px solid var(--line);padding:22px 0}.drawer-section h3{font-size:14px;margin:0 0 16px}.drawer-section summary{cursor:pointer;font-size:13px;color:var(--muted)}#vpn-client-info{display:grid;grid-template-columns:110px 1fr;gap:12px;font-size:12px}#vpn-client-info dt{color:var(--muted)}#vpn-client-info dd{margin:0;overflow-wrap:anywhere}#vpn-client-notes{white-space:pre-wrap;line-height:1.6;color:var(--muted)}.traffic-chart{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin:24px 0 12px}.traffic-day{text-align:center;font-size:9px;color:var(--muted);min-width:0}.traffic-day>span{white-space:nowrap;font-variant-numeric:tabular-nums}.traffic-track{height:100px;display:flex;align-items:flex-end;justify-content:center;margin:10px 0;background:#f5f7fc;border-radius:5px}.traffic-bar{width:75%;background:#7283ee;border-radius:4px 4px 0 0}.traffic-day:last-child .traffic-bar{background:#4c5fe4}.traffic-day small{font-size:10px}.vpn-history{list-style:none;padding:0;margin:0}.vpn-history li{padding:0 0 20px 17px;border-left:1px solid #dfe5f0;position:relative;font-size:12px}.vpn-history li:before{content:'';position:absolute;left:-4px;top:4px;width:7px;height:7px;border-radius:50%;background:#9caae0}.vpn-history strong{font-weight:500;display:block;line-height:1.5}.vpn-history time{display:block;color:var(--muted);margin-top:5px;font-size:11px}.client-drawer button[hidden]{display:none}#client-status,#client-status+label{display:none}label[for=client-status]{display:none}
@media(max-width:1100px){.client-table-wrap{overflow-x:auto}.client-menu-items{right:8px}.client-table{min-width:790px}.client-table td{padding:18px 10px}.client-table th{padding:14px 10px}}
@media(max-width:650px){.vpn-summary{gap:7px}.vpn-summary>div{padding:14px 10px}.vpn-summary strong{font-size:21px}.vpn-summary span{font-size:10px;min-height:24px}.clients-controls{align-items:stretch;flex-direction:column}.clients-controls select{min-width:0}.clients-heading{gap:15px}.clients-heading h2{font-size:21px}.client-drawer#vpn-access-dialog{padding:23px}.traffic-chart{gap:5px}}
/* Profile inventory columns and bidirectional sorting. */
.client-table{min-width:1360px}.client-table-wrap{overflow-x:auto}.client-table th:nth-child(1){width:20%}.client-table th:nth-child(2){width:9%}.client-table th:nth-child(3){width:9%}.client-table th:nth-child(4){width:14%}.client-table th:nth-child(5){width:8%}.client-table th:nth-child(6){width:16%}.client-table th:nth-child(7){width:7%}.client-table th:nth-child(8){width:7%}.client-table th:nth-child(9){width:10%}.client-table th{padding:15px 10px}.client-table td{padding:18px 10px}.client-table .client-sort{display:inline-flex;align-items:center;gap:5px;border:0;background:none;color:inherit;padding:5px 0;font-size:11px;text-align:left;white-space:nowrap}.client-sort span{color:#9aa6ba}.client-table th[aria-sort=ascending] .client-sort,.client-table th[aria-sort=descending] .client-sort{color:var(--blue)}.client-table th[aria-sort=ascending] .client-sort span,.client-table th[aria-sort=descending] .client-sort span{color:var(--blue)}.os-label{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;font-size:11px}.os-icon{width:18px;height:18px;flex-shrink:0}.os-Windows{color:#147fd1}.os-Android{color:#4a9469}.os-macOS{color:#4b83be}.os-KeeneticOS{color:#627995}.muted{color:var(--muted)}.client-owner-button{border:0;background:none;padding:0;text-align:left;font-size:12px;line-height:1.5;color:inherit}.client-owner-button.muted{color:var(--muted);font-size:11px}.client-owner-button:hover{color:var(--blue);text-decoration:underline}.traffic-number{font-variant-numeric:tabular-nums;white-space:nowrap}.client-menu{position:relative}.client-menu-items{right:0;top:30px}.client-table tbody tr:nth-last-child(-n+2) .client-menu-items{top:auto;bottom:30px}.client-table .client-name-button{font-size:12px;overflow-wrap:anywhere}.client-table .activity-help{margin-left:4px}.client-table .client-action-group{gap:2px}.client-table .config-button{padding:0 6px;font-size:10px}.client-table .client-menu summary{width:22px}
.client-table{min-width:1180px}.client-table th:nth-child(1){width:19%}.client-table th:nth-child(2){width:9%}.client-table th:nth-child(3){width:9%}.client-table th:nth-child(4){width:13%}.client-table th:nth-child(5){width:8%}.client-table th:nth-child(6){width:16%}.client-table th:nth-child(7){width:7%}.client-table th:nth-child(8){width:7%}.client-table th:nth-child(9){width:12%}.table-scroll-hint{display:none;color:var(--muted);font-size:10px;margin:0 0 10px;text-align:right}@media(max-width:1510px){.table-scroll-hint{display:block}}#client-profile[readonly]{background:#f3f5f9;color:var(--muted)}
/* Inline registry edits and recipient groups. */
.client-inline-button{font:inherit;font-size:11px;color:inherit;border:0;background:none;padding:0;text-align:left;line-height:1.6;max-width:100%;cursor:text}.client-inline-button .inline-pencil{visibility:hidden;color:var(--blue);margin-left:5px}.client-inline-button:hover .inline-pencil,.client-inline-button:focus-visible .inline-pencil{visibility:visible}.client-inline-button:hover{color:var(--blue)}.vpn-inline-form{min-width:110px}.vpn-inline-form input,.vpn-inline-form select{width:100%;padding:7px 5px;font-size:12px;border:1px solid #a2b2e9;border-radius:5px;margin:0}.inline-actions{display:flex;gap:5px;margin-top:5px}.inline-actions button{border:1px solid var(--line);background:#f4f6ff;color:var(--blue);border-radius:5px;padding:4px 10px}.inline-actions button:last-child{color:var(--muted)}#vpn-inline-error{color:#ae4343}.recipient-row th{background:#edf1fa!important;padding:12px 14px!important}.recipient-row button{width:100%;text-align:left;border:0;background:none;color:#344765;font-weight:600;font-size:12px}.recipient-row small{display:inline;margin-left:12px;color:var(--muted);font-weight:400}.client-table tbody tr.recipient-row:hover{background:none}#vpn-group-toggle{white-space:nowrap;min-height:41px}#vpn-group-toggle[aria-pressed=true]{background:#e9edff;color:var(--blue);border-color:#c5cffa}.client-table{min-width:1340px}.client-table th:nth-child(1){width:17%}.client-table th:nth-child(2){width:8%}.client-table th:nth-child(3){width:8%}.client-table th:nth-child(4){width:12%}.client-table th:nth-child(5){width:9%}.client-table th:nth-child(6){width:12%}.client-table th:nth-child(7){width:14%}.client-table th:nth-child(8){width:6%}.client-table th:nth-child(9){width:6%}.client-table th:nth-child(10){width:8%}.clients-controls{flex-wrap:wrap}.client-search{min-width:180px}
.recipient-row button:focus-visible{outline-offset:3px}

.vpn-inline-form{min-width:0}.vpn-inline-form input,.vpn-inline-form select{min-width:0;max-width:100%}
/* Compact recipient-first registry. */
.client-table{min-width:0;table-layout:fixed}.client-table th:nth-child(1){width:15%}.client-table th:nth-child(2){width:18%}.client-table th:nth-child(3){width:9%}.client-table th:nth-child(4){width:9%}.client-table th:nth-child(5){width:9%}.client-table th:nth-child(6){width:15%}.client-table th:nth-child(7){width:7%}.client-table th:nth-child(8){width:7%}.client-table th:nth-child(9){width:11%}.client-table th,.client-table td{padding:14px 7px}.client-table .client-sort{white-space:normal;gap:3px}.client-table .client-name-button{font-size:11px}.client-table .os-label{gap:4px;white-space:normal}.client-table .inline-pencil{position:absolute;margin-left:3px;visibility:hidden}.client-inline-button{position:relative;cursor:pointer}.client-inline-button:hover .inline-pencil,.client-inline-button:focus-visible .inline-pencil{visibility:visible}.client-actions .config-button{white-space:normal;padding:4px 5px;height:auto;min-height:30px}.client-table .traffic-number{white-space:normal}.client-table .activity-online{display:inline}.client-table .activity-online:before{display:inline-block;margin-right:5px}.access-help{border:0;background:none;padding:2px;color:var(--muted);font-size:12px;cursor:help}#vpn-access-help{width:min(420px,calc(100vw - 32px));border:1px solid var(--line);border-radius:14px;padding:24px;color:#202b42;box-shadow:0 15px 60px #14243b33;font-size:13px;line-height:1.6}#vpn-access-help::backdrop{background:#14243b33}#vpn-access-help ul{padding-left:18px}#vpn-access-help li{margin:7px 0}.table-scroll-hint{display:none!important}@media(max-width:800px){.client-table{min-width:850px}.table-scroll-hint{display:block!important}}

.client-table td[data-inline-cell="fullName"]>.client-inline-button{font-weight:600;font-size:11px}
/* Daily usage overview; the table filters do not change project totals. */
.vpn-usage{margin-bottom:24px}.usage-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:12px}.usage-heading h2{font-size:17px;margin:0}.usage-period{display:flex;background:#e9edf6;border-radius:8px;padding:3px;gap:2px}.usage-period button{border:0;background:none;padding:7px 12px;border-radius:6px;font-size:12px;color:var(--muted)}.usage-period button[aria-pressed=true]{background:#fff;color:var(--blue);box-shadow:0 1px 4px #172b4214}
.vpn-charts{display:grid;grid-template-columns:1fr 1fr;gap:14px}.usage-card{--chart-color:#5266d8;background:white;border:1px solid var(--line);border-radius:12px;padding:20px 18px 12px;min-width:0}.usage-clients{--chart-color:#4d9270}.usage-card-heading{display:flex;justify-content:space-between;align-items:start;gap:12px;min-height:52px}.usage-card h3{font-size:14px;margin:0 0 6px;font-weight:600}.usage-card-heading p{color:var(--muted);font-size:11px;margin:0}.usage-total{text-align:right;flex-shrink:0}.usage-total strong{display:block;font-size:23px;letter-spacing:-.5px}.usage-total>span{display:block;font-size:10px;color:var(--muted);margin-top:3px}
.usage-chart-body{position:relative;margin:36px 0 0 54px;height:180px}.usage-scale{position:absolute;left:-54px;top:0;height:144px;width:47px;color:var(--muted);font-size:10px;text-align:right}.usage-scale span{position:absolute;right:0;transform:translateY(50%);white-space:nowrap}.usage-plot{position:relative;display:grid;grid-template-columns:repeat(var(--days),minmax(0,1fr));gap:4px}.usage-grid{position:absolute;top:0;left:0;right:0;height:144px;pointer-events:none}.usage-grid i{position:absolute;left:0;right:0;border-top:1px solid #e6eaf1}.usage-day{min-width:0;position:relative}.usage-point{height:144px;width:100%;display:flex;align-items:flex-end;justify-content:center;position:relative;background:none;border:0;padding:0;border-radius:0;cursor:pointer}.usage-bar{display:block;width:72%;max-width:30px;background:var(--chart-color);border-radius:3px 3px 0 0;opacity:.8}.usage-point.is-current .usage-bar{opacity:1}.usage-point.is-partial .usage-bar,.usage-pattern{background-color:var(--chart-color);background-image:repeating-linear-gradient(135deg,transparent 0,transparent 4px,#ffffff80 4px,#ffffff80 6px)}.usage-point.is-selected{background:#5266d80c;box-shadow:inset 0 -3px var(--chart-color)}.usage-point:focus-visible{outline:2px solid var(--chart-color);outline-offset:2px}.usage-missing{align-self:center;color:var(--muted);font-size:10px;writing-mode:vertical-rl}.usage-zero{height:2px;width:72%;max-width:30px;background:var(--chart-color)}.usage-date{display:block;height:30px;padding-top:10px;text-align:center;color:var(--muted);font-size:11px;white-space:nowrap}.usage-value{position:absolute;left:50%;transform:translateX(-50%);color:var(--chart-color);font-size:11px;font-weight:600;white-space:nowrap;pointer-events:none}.usage-before{position:relative;min-width:0;height:144px;background:#f0f2f6;border-radius:5px;color:#6c7687;text-align:center;z-index:1}.usage-before>div{display:flex;align-items:center;justify-content:center;height:100%;font-size:11px;line-height:1.5;overflow:hidden;overflow-wrap:anywhere}.usage-before>span{display:block;font-size:11px;padding-top:10px;white-space:nowrap}.usage-tooltip{display:none;position:absolute;bottom:calc(100% + 24px);left:50%;transform:translateX(-50%);z-index:10;padding:9px 11px;border-radius:7px;background:#202b42;color:white;font-size:12px;width:190px;max-width:65vw;white-space:normal;text-align:left;line-height:1.5;box-shadow:0 5px 15px #172b4222;pointer-events:none}.usage-point:hover .usage-tooltip,.usage-point:focus-visible .usage-tooltip{display:block}.usage-point:hover .usage-bar{filter:brightness(.9)}.usage-day:last-child .usage-tooltip{left:auto;right:0;transform:none}.usage-legend{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:10px;margin:2px 0 0 54px}.usage-pattern{display:inline-block;width:12px;height:12px;border-radius:2px;flex-shrink:0}.vpn-usage .source{font-size:11px;margin:12px 0 0;line-height:1.6}
.usage-day-details{margin-top:16px;padding:18px;background:white;border:1px solid var(--line);border-radius:12px}.usage-detail-heading{display:flex;align-items:start;justify-content:space-between;gap:12px}.usage-detail-heading h3{font-size:15px;margin:0 0 6px}.usage-detail-heading p{font-size:12px;margin:0;color:var(--muted)}.usage-detail-scroll{overflow:auto;max-height:310px;margin-top:14px}.usage-detail-scroll table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}.usage-detail-scroll th{font-size:11px;color:var(--muted);background:#f8f9fc;position:sticky;top:0}.usage-detail-scroll th,.usage-detail-scroll td{padding:12px;border-bottom:1px solid var(--line)}.usage-detail-scroll td:first-child{overflow-wrap:anywhere}.usage-detail-scroll th:last-child,.usage-detail-scroll td:last-child{text-align:right;white-space:nowrap}
@media(max-width:1000px){.vpn-charts{grid-template-columns:1fr}}@media(max-width:500px){.usage-card{padding:16px 12px 12px}.usage-card-heading{display:block}.usage-total{display:flex;gap:8px;align-items:baseline;text-align:left;margin-top:12px}.usage-total strong{font-size:20px}.usage-chart-body{margin-left:43px}.usage-scale{left:-43px;width:38px;font-size:9px}.usage-legend{margin-left:43px}.usage-period button{padding:7px 9px}.usage-value,.usage-date{font-size:9px}.usage-before>div,.usage-before>span{font-size:9px}.usage-tooltip{width:160px}.usage-detail-scroll{font-size:11px}}


.usage-month .usage-day:last-child .usage-date{width:60px;margin-left:calc(100% - 60px);text-align:right}.usage-before.is-narrow>div{writing-mode:vertical-rl;width:100%}.usage-before.is-narrow>span{display:none}

.usage-heading h2{flex:1}.usage-toggle{border:1px solid var(--line);background:#fff;color:var(--muted);padding:8px 12px;border-radius:8px;font-size:12px;white-space:nowrap}.usage-toggle:hover{color:var(--blue);border-color:var(--blue)}#vpn-usage-body[hidden],#vpn-usage-period[hidden]{display:none}.usage-toggle:focus-visible{outline:2px solid var(--blue);outline-offset:2px}@media(max-width:500px){.usage-heading{flex-wrap:wrap}.usage-heading h2{flex-basis:100%}}

.vpn-identity{margin:18px 0 24px}.vpn-profile-name{font-size:13px;font-weight:600;overflow-wrap:anywhere;color:#465572}.vpn-identity #vpn-detail-status{margin:12px 0;gap:12px}.vpn-platform{display:flex;flex-wrap:wrap;gap:8px}.vpn-platform-chip{display:inline-flex;align-items:center;gap:6px;background:#f3f5fa;border-radius:7px;padding:6px 9px;font-size:11px;color:#56647b}.vpn-platform-chip svg{width:16px;height:16px;flex-shrink:0}.vpn-platform-chip .os-label{font-size:11px}.vpn-usage-metrics{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:9px}.vpn-usage-metrics>div{padding:12px 10px;background:#f6f8fc;border-radius:9px;min-width:0}.vpn-usage-metrics span{display:block;color:var(--muted);font-size:10px;margin-bottom:8px}.vpn-usage-metrics strong{font-size:18px;font-weight:600;line-height:1.5;display:block}.vpn-usage-metrics #vpn-detail-first-activity{font-size:12px}.client-drawer #vpn-first-activity-note{font-size:10px;line-height:1.6;color:var(--muted);margin:10px 0 16px}.vpn-fold>summary{font-size:13px;font-weight:500;cursor:pointer;color:#465572}.vpn-fold[open]>summary{margin-bottom:18px}.vpn-fold .traffic-chart{margin-top:18px}.vpn-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.vpn-section-heading h3{margin:0}.vpn-section-heading button{font-size:12px}.client-drawer .vpn-management .source{font-size:11px;line-height:1.6}.vpn-management .actions{justify-content:flex-start;flex-wrap:wrap}.vpn-archive-action{margin-top:20px;display:flex;align-items:flex-start;gap:14px}.vpn-archive-action button{flex-shrink:0}.vpn-archive-action p{margin:0}.client-drawer #vpn-client-notes{font-size:12px}.client-drawer .drawer-heading h2{font-size:24px;line-height:1.3}.client-drawer .drawer-heading #vpn-access-device{font-size:13px}.client-drawer #vpn-access-error:empty{display:none}@media(max-width:420px){.vpn-usage-metrics{grid-template-columns:1fr 1fr}.vpn-usage-metrics>div:last-child{grid-column:span 2}.vpn-archive-action{display:block}.vpn-archive-action p{margin-top:10px}}

header{gap:14px;flex-wrap:wrap}.portal-statusbar{display:flex;gap:7px;align-items:center;margin-left:auto;flex-wrap:wrap}.portal-chip{display:flex;align-items:center;gap:6px;padding:8px 10px;background:#f7f9fc;border:1px solid #e5eaf2;border-radius:8px;font-size:11px;color:#526075;cursor:pointer}.portal-chip i{width:6px;height:6px;background:#9aa5b5;border-radius:50%;flex-shrink:0}.portal-chip.ok i{background:#45956a}.portal-chip.warn i{background:#d1972f}.portal-chip strong{font-size:11px;font-weight:500;color:#25354f}.portal-chip:hover{border-color:#a1ace7;background:#f0f3ff}.portal-chip:focus-visible{outline:2px solid var(--blue);outline-offset:2px}#portal-status-dialog{width:min(530px,calc(100vw - 32px));max-height:85dvh;overflow:auto;padding:26px;border:1px solid var(--line);border-radius:16px;color:#25354f}.portal-detail-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.portal-detail-heading h2{margin:0;font-size:21px}.portal-detail-heading button{padding:7px 10px}#portal-status-content{font-size:13px;line-height:1.7}#portal-status-content h3{font-size:14px;margin:22px 0 10px}#portal-status-content .source{font-size:11px;color:var(--muted)}.portal-warning{background:#fff5df;padding:12px;border-radius:8px;color:#7b5925}.portal-models{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:270px;overflow:auto}.portal-models>div{border:1px solid var(--line);padding:9px 12px;border-radius:8px}.portal-models strong,.portal-models small{display:block;overflow-wrap:anywhere}.portal-models small{font-size:10px;color:var(--muted)}.portal-limit{border:1px solid var(--line);border-radius:10px;padding:13px;margin:12px 0}.portal-limit>div{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.portal-limit progress{width:100%;height:9px;accent-color:var(--blue)}.portal-metrics{display:grid;grid-template-columns:1fr 1.5fr;gap:12px}.portal-metrics dt{color:var(--muted)}.portal-metrics dd{margin:0;font-weight:500}@media(max-width:1150px){.portal-statusbar{order:3;width:100%;margin:0}.local-badge{margin-left:auto}}@media(max-width:600px){.portal-statusbar{display:grid;grid-template-columns:1fr 1fr}.portal-chip{padding:8px 7px;flex-wrap:wrap}.portal-chip strong{font-size:10px}.portal-models{grid-template-columns:1fr}.portal-metrics{grid-template-columns:1fr}.portal-metrics dd{margin-top:-8px}}
header{height:auto;min-height:77px;padding-top:14px;padding-bottom:14px}@media(max-width:600px){header{min-height:55px}}
/* Compact operations strip: every metric is sourced from the portal status API. */
header{flex-wrap:nowrap;padding:10px 22px;gap:14px}.breadcrumb{flex:none}.portal-statusbar{flex:1;min-width:0;width:auto;margin-left:0;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:nowrap}.portal-status-left{display:flex;align-items:center;gap:7px;min-width:0;overflow-x:auto;scrollbar-width:thin;padding:2px 0}.portal-status-right{flex:none}.portal-chip{min-height:39px;flex:none;gap:7px;padding:6px 10px;border-radius:10px;border-color:#e2e7ed;background:#f6f8fa;font-size:11px;white-space:nowrap;font-variant-numeric:tabular-nums}.portal-chip:hover{background:#eef3f7}.portal-chip.ok{background:#f0f7f3;border-color:#dae9df}.portal-chip.caution{background:#faf7ec;border-color:#eee8cd}.portal-chip.warn{background:#fff2ee;border-color:#efd9d1}.portal-chip.unknown{background:#f4f5f7;color:#7c8795}.portal-chip strong{font-size:12px;font-weight:700}.portal-chip-caption{font-size:10px;font-weight:650;letter-spacing:.06em;color:#6e7987}.portal-chip-dual{display:grid;gap:1px;font-size:9px;color:#7a8794}.portal-chip-dual>span{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:107px}.portal-chip-dual strong{font-size:10px;color:#33495c}.portal-spark{width:42px;height:15px;fill:none;stroke:#5a9a7e;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}.portal-spark-empty{display:inline-block;width:42px;text-align:center;color:#bac3cc}.portal-quota-icon{font-size:22px;line-height:1;color:#e09667}.portal-quota-body{display:grid;gap:4px;min-width:133px}.portal-quota-line{display:flex;justify-content:space-between;gap:7px;align-items:center}.portal-quota-line span{font-size:9px;color:#788592}.portal-mini-track{height:4px;border-radius:9px;background:#e5e9ec;overflow:hidden}.portal-mini-track>span{display:block;height:100%;border-radius:9px;background:#3d9a75}.portal-chip.caution .portal-mini-track>span{background:#c99938}.portal-chip.warn .portal-mini-track>span{background:#c35c4f}.portal-provider-icon{font-size:21px;line-height:1;color:#4f647b}.portal-status-right .portal-chip{background:#eef2f6}.local-badge{flex:none}@media(max-width:1450px){.local-badge{display:none}}@media(max-width:1150px){.portal-statusbar{order:initial;width:auto;margin:0}.local-badge{margin:0}}@media(max-width:700px){header{flex-wrap:wrap;padding:10px 15px}.breadcrumb{width:100%}.portal-statusbar{width:100%;order:2}.portal-status-left{flex:1}.portal-status-right .portal-chip-caption{display:none}}
dialog::backdrop{background:#101c3977;backdrop-filter:blur(3px)}#portal-status-dialog{width:min(610px,calc(100vw - 30px));padding:0;box-shadow:0 24px 75px #15203944}.portal-detail-heading{padding:17px 22px;border-bottom:1px solid var(--line)}.portal-detail-heading h2{font-size:18px}.portal-detail-heading button{width:32px;height:32px;padding:0;display:grid;place-items:center}#portal-status-content{padding:18px 22px 22px}.portal-dialog-intro{margin:0 0 15px;font-size:12px}.portal-limit{padding:17px 19px;margin:11px 0;border-radius:14px;box-shadow:0 2px 5px #16253708}.portal-limit-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.portal-limit-head>div{display:grid;gap:3px}.portal-limit-head strong{font-size:16px}.portal-limit-head strong small{font-size:10px;font-weight:600;color:#7f8b99;border:1px solid #e2e7ed;border-radius:12px;padding:2px 6px;vertical-align:middle}.portal-limit-head span,.portal-limit>small{color:#8994a2;font-size:11px}.portal-limit-head b{font-size:25px;line-height:1;font-variant-numeric:tabular-nums;color:#257e5c}.portal-limit.caution .portal-limit-head b{color:#a57923}.portal-limit.warn .portal-limit-head b{color:#b44f45}.portal-limit progress{display:block;height:8px;margin-top:10px;accent-color:#278662}.portal-limit.caution progress{accent-color:#b99038}.portal-limit.warn progress{accent-color:#b84f49}.portal-limit .source{margin:9px 0 0}.portal-provider-card{border:1px solid var(--line);border-radius:14px;overflow:hidden}.portal-provider-head{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#f5f7f9}.portal-provider-head>div{min-width:0;flex:1;display:grid}.portal-provider-head strong{font-size:17px}.portal-provider-head small{color:#7c8997;font-size:11px}.portal-provider-state{font-size:11px;color:#657385;border:1px solid #e0e5eb;border-radius:20px;padding:5px 8px;white-space:nowrap}.portal-provider-state.ok{color:#328263;border-color:#d2e9dc;background:#eff8f2}.portal-provider-body{padding:4px 16px 17px}.portal-provider-body h3{margin-top:12px!important}.portal-models{max-height:300px}.portal-models>div{background:#fbfcfd}.portal-models strong{font-size:12px}
/* The status strip sits above the project breadcrumb and stays visible while scrolling. */
.status-strip{position:sticky;top:0;z-index:20;background:#111b30;border-bottom:1px solid #34445d;box-shadow:0 3px 12px #111b301e}.status-strip .portal-statusbar{width:100%;min-height:62px;margin:0;padding:8px 22px;order:initial;display:flex;gap:12px;flex-wrap:nowrap}.status-strip .portal-status-left{flex:1;min-width:0;scrollbar-color:#52627b transparent}.status-strip .portal-status-right{margin-left:auto}.status-strip .portal-chip{background:#253655;border-color:#3a4d69;color:#c4d0e3}.status-strip .portal-chip:hover{background:#304567;border-color:#7b91b6}.status-strip .portal-chip.ok{background:#1d3c40;border-color:#375f58}.status-strip .portal-chip.caution{background:#4b3b31;border-color:#786044}.status-strip .portal-chip.warn{background:#54363d;border-color:#81505b}.status-strip .portal-chip.unknown{background:#28364b;border-color:#43516a;color:#b6c0d0}.status-strip .portal-chip strong,.status-strip .portal-chip-dual strong{color:#f4f7fd}.status-strip .portal-chip-caption,.status-strip .portal-chip-dual,.status-strip .portal-quota-line span{color:#aebbd0}.status-strip .portal-mini-track{background:#4a5c72}.status-strip .portal-status-right .portal-chip{background:#253655}.status-strip .portal-provider-icon{color:#d5dfef}.status-strip .portal-spark-empty{color:#8292a9}.status-strip .portal-chip:focus-visible{outline-color:#b9c9ff}.status-strip+header{height:auto;min-height:64px;padding:10px 22px}@media(max-width:700px){.status-strip .portal-statusbar{padding:7px 12px;min-height:55px}.status-strip .portal-status-right .portal-chip-caption{display:none}.status-strip+header{padding:10px 15px}}
/* One restrained surface for healthy metrics; color is reserved for warnings and tiny progress cues. */
.status-strip .portal-chip.ok{background:#253655;border-color:#3a4d69}.status-strip .portal-chip.ok:hover{background:#304567;border-color:#7b91b6}.portal-quota-reset{font-size:9px;color:#7d8998;line-height:1}.status-strip .portal-quota-reset{color:#aebbd0}.portal-connection-dot{width:6px;height:6px;border-radius:50%;background:#45b583;flex:none}.portal-chip.warn .portal-connection-dot{background:#e0847c}.portal-chip.unknown .portal-connection-dot{background:#8c9aac}
/* OpenAI Blossom is kept monochrome and paired with the actual Codex quota data. */
.portal-gpt-icon{width:24px;height:24px;flex:none;display:grid;place-items:center;background:#fff;border-radius:6px}.portal-gpt-icon svg{width:17px;height:17px;display:block;fill:#000}.portal-gpt-lines{display:grid;gap:3px}.portal-gpt-row{display:grid;grid-template-columns:23px 48px 31px;align-items:center;gap:6px;color:#aebbd0;font-size:9px;line-height:1}.portal-gpt-row strong{text-align:right;font-size:10px}.portal-gpt-track{height:4px;background:#4a5c72;border-radius:8px;overflow:hidden}.portal-gpt-track>span{display:block;height:100%;background:#48a782;border-radius:8px}.portal-chip.caution .portal-gpt-track>span{background:#cda34e}.portal-chip.warn .portal-gpt-track>span{background:#dc776e}
/* Compact, equal-height chips use the original CPU/MEM type scale. */
.status-strip .portal-statusbar{min-height:52px;padding:5px 22px}.status-strip .portal-chip{height:39px;min-height:39px;padding:5px 9px;gap:6px;font-size:10px;line-height:1.1;align-items:center}.status-strip .portal-chip-caption,.status-strip .portal-chip strong,.status-strip .portal-chip-dual strong,.status-strip .portal-gpt-row strong,.status-strip .portal-model-label{font-size:10px;line-height:1.1}.status-strip .portal-chip-dual,.status-strip .portal-gpt-row{font-size:9px;line-height:1.1}.status-strip .portal-chip strong{font-weight:650}.status-strip .portal-gpt-lines,.status-strip .portal-chip-dual{gap:2px}.status-strip .portal-gpt-row{grid-template-columns:22px 43px 31px;gap:5px}.status-strip .portal-gpt-icon{width:21px;height:21px}.status-strip .portal-gpt-icon svg{width:15px;height:15px}.portal-model-label{white-space:nowrap;color:#c4d0e3}.portal-model-brand{width:21px;height:21px;display:grid;place-items:center;background:#fff;border-radius:6px;flex:none}.portal-model-brand svg{width:15px;height:15px;fill:#000}.portal-model-check{width:14px;height:14px;display:grid;place-items:center;border:1.5px solid #65b996;border-radius:50%;font-size:10px;line-height:1;color:#65b996;font-weight:700;flex:none}.portal-model-check.warn{border-color:#e09b78;color:#e09b78}.portal-model-check.unknown{border-color:#8796aa;color:#8796aa}@media(max-width:700px){.status-strip .portal-statusbar{min-height:52px;padding:5px 12px}}
/* Keep metric labels at the same scale as CPU/MEM, including the two-line backup tile. */
.status-strip .portal-metric-label,.status-strip .portal-backup-caption{font-size:9px;font-weight:400;letter-spacing:0;line-height:1.1;color:#aebbd0}.status-strip .portal-backup-caption,.status-strip .portal-backup-stamp{display:grid;gap:2px}.status-strip .portal-backup-stamp{font-size:10px;line-height:1.1;text-align:right}
/* Project chat */
.run-state{font-size:10px;font-weight:600;padding:3px 7px;border-radius:999px;background:#edf1f7;color:#52627a;white-space:nowrap}.run-state.running{background:#e8f0ff;color:#365bb7}.run-state.completed{background:#eaf7ef;color:#2d7750}.run-state.failed,.run-state.interrupted{background:#fff0ec;color:#a74942}.chat-answer-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.chat-answer-actions button{font-size:11px}.chat-attachment-list{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0}.chat-attachment{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:7px;background:#eff2f8;color:#4c5d75;font-size:10px;overflow-wrap:anywhere;max-width:100%}.chat-attachment button{border:0;background:none;color:#6c7890;font-size:17px;line-height:1;padding:0 2px;cursor:pointer}.chat-composer-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:9px 0}.chat-composer-tools span{font-size:10px;color:var(--muted)}.chat-file-button{display:inline-flex;align-items:center;padding:8px 11px;border-radius:7px;cursor:pointer;font-size:11px}.chat-composer-tools input[type=file]{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.chat-file-button:focus-within{outline:2px solid var(--blue)}.task-details{padding:0 16px 14px 45px;color:#53627a;font-size:12px}.task-details summary{cursor:pointer}.task-details div{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6;margin-top:10px}.task-entry{border-bottom:1px solid #eef0f5}.task-entry .row{border:0}#answer-task-dialog{width:min(520px,calc(100vw - 30px))}#answer-task-dialog input{width:100%}#answer-task-error{color:#a54242;font-size:12px}
