.app-notification[data-v-3cd65cbe]{position:fixed;z-index:50;top:max(68px,calc(env(safe-area-inset-top) + 56px));left:50%;display:flex;align-items:flex-start;width:min(696px,calc(100% - 24px));gap:10px;padding:12px 12px 12px 14px;transform:translate(-50%);border:1px solid;border-radius:14px;box-shadow:0 14px 38px #0007;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.app-notification>div[data-v-3cd65cbe]{min-width:0;flex:1 1 auto}.app-notification strong[data-v-3cd65cbe],.app-notification p[data-v-3cd65cbe]{overflow-wrap:anywhere}.app-notification strong[data-v-3cd65cbe]{display:block;font-size:13px}.app-notification p[data-v-3cd65cbe]{margin:3px 0 0;font-size:12px;line-height:1.45}.app-notification button[data-v-3cd65cbe]{flex:0 0 30px;width:30px;min-height:30px;padding:0;border:0;border-radius:9px;color:inherit;background:#ffffff18;font-size:21px;line-height:1;text-align:center}.app-notification--success[data-v-3cd65cbe]{border-color:#34d39988;color:#d1fae5;background:#064e3bcc}.app-notification--error[data-v-3cd65cbe]{border-color:#fb718588;color:#ffe4e6;background:#881337e8}.app-notification--warning[data-v-3cd65cbe]{border-color:#fbbf2488;color:#fef3c7;background:#78350fe8}.app-notification--info[data-v-3cd65cbe]{border-color:#5eead488;color:#ccfbf1;background:#134e4ae8}:root[data-theme=light]{color:#064e3b;background:#d1fae5ee}:root[data-theme=light]{color:#881337;background:#ffe4e6f2}:root[data-theme=light]{color:#78350f;background:#fef3c7f2}:root[data-theme=light]{color:#134e4a;background:#ccfbf1f2}:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--tg-theme-text-color, #e7f6f3);background:var(--tg-theme-bg-color, #061713);--app-background: radial-gradient(circle at top, #0d3a33 0, #061713 42%, #030b09 100%);--panel-background: linear-gradient(145deg, #102d28dd, #0a201cdd);--panel-shadow: 0 18px 45px #0005;--control-background: #163a33;--input-background: #081d19;--surface-background: #06171366;--secondary-text: #9bbab3;--muted-text: #7fa79e;--link-text: var(--tg-theme-link-color, #99f6e4);--code-text: var(--tg-theme-text-color, #d5f5ee);font-synthesis:none}:root[data-theme=light]{color:var(--tg-theme-text-color, #12332d);background:var(--tg-theme-bg-color, #f3faf8);--app-background: radial-gradient(circle at top, #d9f5ef 0, #f3faf8 46%, #ffffff 100%);--panel-background: linear-gradient(145deg, #ffffffee, #eef9f6ee);--panel-shadow: 0 18px 45px #0f766e1c;--control-background: var(--tg-theme-secondary-bg-color, #e0f2ee);--input-background: var(--tg-theme-secondary-bg-color, #edf7f5);--surface-background: #ffffffa8;--secondary-text: var(--tg-theme-hint-color, #53736c);--muted-text: var(--tg-theme-hint-color, #66847d);--link-text: var(--tg-theme-link-color, #0f766e);--code-text: var(--tg-theme-text-color, #12332d)}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;overflow:hidden}body{margin:0;min-width:320px;min-height:100dvh;background:var(--app-background)}button,input,select{font:inherit}.shell{display:flex;flex-direction:column;width:min(720px,100%);height:100dvh;margin:0 auto;overflow:hidden;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.hero{display:flex;flex:0 0 auto;align-items:center;gap:10px;margin-bottom:10px}.hero--compact{gap:8px;margin-bottom:6px}.hero--compact .brand-mark{width:32px;height:32px;border-radius:10px;font-size:13px}.hero--compact .eyebrow{display:none}.hero--compact h1{font-size:17px}.hero--compact .role-badge{padding:5px 8px}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border:1px solid #2dd4bf66;border-radius:12px;background:#0f766e;box-shadow:0 8px 22px #0f766e33;font-weight:800}.hero h1,.panel h2,.panel h3{margin:0}.hero h1{font-size:21px;letter-spacing:-.5px}.eyebrow{margin:0 0 5px;color:#5eead4;font-size:10px;font-weight:800;letter-spacing:1.6px}.role-badge{margin-left:auto;padding:7px 10px;border:1px solid #2dd4bf55;border-radius:999px;color:#99f6e4;font-size:10px;font-weight:800}.app-body{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:hidden}.app-body>.panel,.app-body>.home-page{flex:1 1 auto;min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.page-navigation{display:flex;flex:0 0 auto;align-items:center;gap:9px;margin-bottom:6px}.page-navigation .eyebrow{display:none}.page-navigation .back-button{flex:0 0 auto;min-height:34px;padding:6px 10px;color:#99f6e4;font-weight:800;text-align:center}.page-navigation strong{display:block;color:var(--tg-theme-text-color, #e7f6f3);font-size:16px}.home-page{display:grid;grid-template-rows:auto auto 1fr;gap:8px}.panel{border:1px solid #5eead422;border-radius:16px;background:var(--panel-background);box-shadow:var(--panel-shadow);padding:14px}.status-panel{display:flex;align-items:center;justify-content:center;gap:12px;min-height:180px}.spinner{width:20px;height:20px;border:2px solid #5eead433;border-top-color:#5eead4;border-radius:50%;animation:spin .8s linear infinite}.error-panel{border-color:#fb718544}.error-panel h2{margin-bottom:10px}.error-panel small,.metric-card small,.admin-panel small{color:var(--secondary-text);line-height:1.5}.welcome-panel{display:flex;justify-content:space-between;align-items:center;margin-bottom:0}.welcome-panel h2{font-size:18px}.online{color:#99f6e4;font-size:12px}.online span{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:#34d399;box-shadow:0 0 12px #34d399}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:0}.metric-card p{margin:0 0 6px;color:var(--secondary-text);font-size:11px}.metric-card strong{display:block;margin-bottom:4px;font-size:17px}.metric-card small{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.actions-panel{min-height:0;margin-top:0}.admin-panel{margin-top:0}.action-list,.admin-grid{display:grid;gap:7px;margin-top:10px}.action-list{grid-template-columns:repeat(2,minmax(0,1fr))}.action-list button{position:relative;padding-right:38px}.action-list button:not(:disabled):after{content:"›";position:absolute;top:50%;right:15px;transform:translateY(-52%);color:#5eead4;font-size:24px;line-height:1}.action-list .admin-entry{border-color:#2dd4bf55;color:#d5f5ee;background:#0f766e33;font-weight:800}.admin-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:8px}.admin-grid button.active,.firewall-tabs button.active{border-color:#2dd4bf88;color:var(--link-text);background:#0f766e33;font-weight:800}button{min-height:40px;padding:8px 11px;border:1px solid #5eead422;border-radius:11px;color:var(--tg-theme-text-color, #bddbd4);background:var(--control-background);text-align:left}button:disabled{cursor:not-allowed;opacity:.58}.admin-dashboard{margin-top:12px;padding-top:12px;border-top:1px solid #5eead422}.dashboard-heading,.dashboard-subheading,.dashboard-recent-operations article{display:flex;align-items:center;justify-content:space-between;gap:12px}.dashboard-heading>span,.dashboard-subheading>span{color:#99f6e4;font-size:11px}.dashboard-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}.dashboard-metrics article{padding:12px;border:1px solid #5eead41c;border-radius:13px;background:var(--surface-background)}.dashboard-metrics small,.dashboard-metrics strong{display:block}.dashboard-metrics small{min-height:34px;color:var(--muted-text)}.dashboard-metrics strong{margin-top:7px;font-size:20px}.dashboard-recent-operations{display:grid;gap:8px;margin-top:14px}.dashboard-recent-operations article{padding:11px 12px;border:1px solid #5eead41c;border-radius:12px;background:var(--surface-background)}.dashboard-recent-operations article strong,.dashboard-recent-operations article small{display:block}.dashboard-recent-operations article small{margin-top:4px;color:var(--muted-text)}.dashboard-recent-operations article>span{flex:0 0 auto;color:#99f6e4;font-size:11px;font-weight:800}.dashboard-note{margin:12px 0 0;color:#fcd34d;font-size:11px;line-height:1.5}.vpn-account-panel{margin-top:14px}.vpn-account-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.vpn-account-heading>span{color:#99f6e4;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.vpn-account-valid{display:block;margin-top:15px;color:#6ee7b7;font-size:13px}.vpn-account-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.vpn-account-metrics>div{padding:12px;border:1px solid #5eead41c;border-radius:13px;background:var(--surface-background)}.vpn-account-metrics small,.vpn-account-metrics strong{display:block}.vpn-account-metrics small{margin-bottom:6px;color:var(--muted-text)}.vpn-account-metrics strong{overflow-wrap:anywhere;font-size:13px}.vpn-account-note{margin:12px 0 0;color:var(--muted-text);font-size:11px;line-height:1.55}.node-panel{margin-top:14px}.node-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.node-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:16px}.node-summary article{padding:13px;border:1px solid #5eead41c;border-radius:13px;background:var(--surface-background)}.node-summary small,.node-summary strong{display:block}.node-summary small{margin-bottom:6px;color:var(--muted-text)}.node-summary strong{overflow-wrap:anywhere;font-size:14px}.node-note{margin:12px 0 0;color:var(--muted-text);font-size:11px;line-height:1.55}.config-panel{margin-top:14px}.config-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.config-heading>span{color:#99f6e4;font-size:11px}.config-grid{display:grid;gap:9px;margin-top:16px}.config-grid article{padding:13px;border:1px solid #5eead41c;border-radius:13px;background:var(--surface-background)}.config-grid strong,.config-grid small{display:block}.config-grid strong{font-size:13px}.config-grid small{margin-top:4px;color:var(--link-text)}.config-grid code{display:block;margin-top:10px;padding:9px 10px;overflow-wrap:anywhere;border-radius:9px;color:var(--code-text);background:var(--input-background);font-size:11px}.config-grid p{margin:8px 0 0;color:var(--secondary-text);font-size:12px;line-height:1.55}.config-pending{margin:12px 0 0;color:#fcd34d;font-size:11px;line-height:1.55}.help-panel{margin-top:14px}.help-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.help-heading>span{color:#99f6e4;font-size:11px}.help-steps{display:grid;gap:10px;margin:18px 0 0;padding:0;list-style:none;counter-reset:help-step}.help-steps li{position:relative;padding:13px 13px 13px 48px;border:1px solid #5eead41c;border-radius:13px;background:var(--surface-background);counter-increment:help-step}.help-steps li:before{content:counter(help-step);position:absolute;top:13px;left:13px;display:grid;place-items:center;width:24px;height:24px;border-radius:8px;color:#05201b;background:#5eead4;font-size:12px;font-weight:900}.help-steps strong,.help-faq strong{color:#d5f5ee;font-size:13px}.help-steps p,.help-faq p{margin:6px 0 0;color:var(--secondary-text);font-size:12px;line-height:1.55}.help-faq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px}.help-faq article{padding:13px;border:1px solid #5eead41c;border-radius:13px;background:#0f766e12}.help-security{margin:14px 0 10px;color:#fcd34d;font-size:11px;line-height:1.5}.support-link{display:block;padding:12px 14px;border:1px solid #2dd4bf55;border-radius:12px;color:var(--link-text);background:var(--control-background);font-size:13px;font-weight:800;text-align:center;text-decoration:none}.admin-panel--users{display:flex;min-height:0;flex-direction:column;overflow:hidden!important;padding:10px}.user-workspace{display:grid;flex:1 1 auto;grid-template-rows:auto auto minmax(0,1fr);gap:7px;min-width:0;min-height:0;overflow:hidden}.user-workspace-header{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.user-workspace-header .eyebrow{margin-bottom:2px;font-size:8px}.user-workspace-header h3{font-size:15px}.user-workspace-metrics{display:flex;flex:0 0 auto;gap:5px}.user-workspace-metrics span{padding:5px 7px;border:1px solid #2dd4bf44;border-radius:9px;color:var(--secondary-text);background:#0f766e22;font-size:8px;white-space:nowrap}.user-workspace-metrics b{color:#5eead4;font-size:11px}.user-workspace-tabs{display:flex;min-width:0;gap:6px;overflow-x:auto;scrollbar-width:none}.user-workspace-tabs::-webkit-scrollbar{display:none}.user-workspace-tabs button{flex:1 0 86px;min-height:34px;padding:6px 8px;font-size:10px;text-align:center;white-space:nowrap}.user-workspace-tabs button.active{border-color:#2dd4bf88;color:var(--link-text);background:#0f766e33;font-weight:800}.user-workspace-tabs .user-add-button{flex:0 0 70px;color:#05201b;background:#5eead4;font-weight:800}.user-workspace-view{display:flex;min-width:0;min-height:0;flex-direction:column;overflow:hidden}.user-directory-controls{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(92px,.7fr) minmax(112px,.9fr);gap:6px}.user-directory-controls input,.user-directory-controls select{width:100%;min-width:0;min-height:36px;padding:5px 7px;overflow:hidden;border:1px solid #5eead433;border-radius:9px;color:var(--tg-theme-text-color, #e7f6f3);background:var(--input-background);font-size:16px;text-overflow:ellipsis}.user-directory-summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 2px 3px;color:#99f6e4;font-size:9px}.user-directory-summary small{overflow:hidden;color:var(--muted-text);text-overflow:ellipsis;white-space:nowrap}.user-directory-view .user-list{flex:1 1 auto;align-content:start;min-height:0;margin-top:0;padding:2px;overflow:auto;overscroll-behavior:contain}.user-directory-view .user-row{display:grid;grid-template-columns:minmax(0,1fr) auto;min-width:0;padding:9px 10px}.user-row.disabled{opacity:.68}.user-row-identity{min-width:0}.user-row-identity strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.user-row-identity small{overflow:hidden;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.user-directory-view .user-row-actions{min-width:80px}.user-directory-view .user-row-actions .role-badge{max-width:96px;overflow:hidden;padding:4px 6px;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.user-directory-view .compact-button{min-width:62px;min-height:29px;padding:4px 8px;font-size:9px;text-align:center}.user-access-view{position:relative}.user-resolver{display:grid;width:min(440px,100%);margin:auto;gap:10px;padding:16px;border:1px solid #5eead433;border-radius:14px;background:var(--surface-background)}.user-resolver h4,.user-resolver p{margin:0}.user-resolver p:not(.eyebrow){color:var(--secondary-text);font-size:11px;line-height:1.5}.user-resolver label{display:grid;gap:5px;color:var(--secondary-text);font-size:10px}.user-resolver input{width:100%;min-height:42px;padding:7px 9px;border:1px solid #5eead433;border-radius:10px;color:var(--tg-theme-text-color, #e7f6f3);background:var(--input-background);font-size:16px}.user-resolver .primary-button{color:#05201b;background:#5eead4;font-weight:800;text-align:center}.user-editor-identity{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding-bottom:7px;border-bottom:1px solid #5eead422}.user-editor-identity .back-button{min-height:30px;padding:4px 7px;color:#99f6e4;font-size:9px;text-align:center}.user-editor-identity>div{min-width:0}.user-editor-identity strong,.user-editor-identity small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-editor-identity strong{font-size:12px}.user-editor-identity small{margin-top:2px;color:var(--muted-text);font-size:9px}.protected-badge,.draft-badge{padding:4px 6px;border:1px solid #fbbf2455;border-radius:999px;color:#fde68a;font-size:8px;font-weight:800;white-space:nowrap}.draft-badge{border-color:#2dd4bf55;color:#99f6e4}.user-editor-scroll{display:grid;flex:1 1 auto;align-content:start;gap:8px;min-height:0;padding:7px 2px;overflow:auto;overscroll-behavior:contain}.user-role-editor{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,.55fr);align-items:center;gap:9px;padding:9px;border:1px solid #5eead422;border-radius:11px;background:var(--surface-background)}.user-role-editor h4,.permission-matrix h4,.user-vpn-binding h4{margin:0;font-size:12px}.user-role-editor small{display:block;margin-top:3px;color:var(--muted-text);font-size:9px;line-height:1.35}.user-role-editor select{width:100%;min-width:0;min-height:38px;padding:6px 8px;border:1px solid #5eead433;border-radius:9px;color:var(--tg-theme-text-color, #e7f6f3);background:var(--input-background);font-size:16px}.protected-role-value{justify-self:end;padding:8px 10px;border:1px solid #5eead455;border-radius:9px;color:#5eead4;background:#5eead411;font-size:10px;text-align:center}.permission-matrix{min-width:0}.permission-matrix-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 2px 5px}.permission-matrix-heading>span{color:#99f6e4;font-size:9px}.permission-group{margin-top:5px;border:1px solid #5eead422;border-radius:11px;background:var(--surface-background)}.permission-group summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 9px;cursor:pointer;list-style:none}.permission-group summary::-webkit-details-marker{display:none}.permission-group summary strong{font-size:11px}.permission-group summary span{color:#99f6e4;font-size:9px}.permission-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:7px 9px;border-top:1px solid #5eead414;cursor:pointer}.permission-item input{width:18px;height:18px;margin:0;accent-color:#2dd4bf}.permission-item>span{min-width:0}.permission-item b,.permission-item small{display:block}.permission-item b{font-size:10px}.permission-item small{margin-top:2px;color:var(--muted-text);font-size:8px;line-height:1.3}.permission-item em{padding:3px 5px;border-radius:999px;color:var(--secondary-text);background:#64748b22;font-size:7px;font-style:normal;white-space:nowrap}.permission-item.risk-high b{color:#fda4af}.permission-item.risk-medium b{color:#fde68a}.access-change-summary{display:grid;gap:3px;padding:8px 9px;border:1px solid #fbbf2444;border-radius:10px;color:#fde68a;background:#42200633}.access-change-summary strong{font-size:10px}.access-change-summary small{overflow-wrap:anywhere;font-size:8px}.user-vpn-binding{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,.8fr) auto auto;align-items:center;gap:6px;padding:9px;border:1px solid #5eead422;border-radius:11px;background:var(--surface-background)}.user-vpn-binding input{width:100%;min-width:0;min-height:36px;padding:5px 7px;border:1px solid #5eead433;border-radius:9px;color:var(--tg-theme-text-color, #e7f6f3);background:var(--input-background);font-size:16px}.user-vpn-binding button{min-height:34px;padding:5px 8px;font-size:9px;text-align:center}.user-vpn-binding .danger-button{color:#fda4af}.user-editor-actions{position:sticky;bottom:0;z-index:2;display:grid;grid-template-columns:.7fr 1.3fr;gap:7px;padding-top:7px;background:linear-gradient(180deg,transparent,var(--tg-theme-bg-color, #061713) 30%)}.user-editor-actions.has-delete{grid-template-columns:.75fr .8fr 1.35fr}.user-editor-actions button{min-height:39px;text-align:center}.user-editor-actions .primary-button{color:#05201b;background:#5eead4;font-weight:800}.user-editor-actions .danger-button{color:#fff1f2;background:#be123c;font-weight:800}.user-delete-confirmation{position:sticky;bottom:0;z-index:3;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:7px;padding:8px;border:1px solid #fb718566;border-radius:11px;color:#fff1f2;background:#4c0519f2}.user-delete-confirmation>div{min-width:0}.user-delete-confirmation strong,.user-delete-confirmation small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-delete-confirmation strong{font-size:10px}.user-delete-confirmation small{margin-top:2px;color:#fecdd3;font-size:8px}.user-delete-confirmation button{min-height:36px;padding:5px 9px;font-size:9px;text-align:center}.user-delete-confirmation .danger-button{color:#fff;background:#e11d48;font-weight:800}.user-editor-error{position:absolute;right:4px;bottom:49px;left:4px;z-index:3;padding:7px 9px;border:1px solid #fb718555;border-radius:9px;color:#fecdd3;background:#4c0519ee}.role-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-top:20px;padding-top:18px;border-top:1px solid #5eead422}.role-form label{display:grid;gap:7px;color:var(--secondary-text);font-size:12px}.role-form input,.role-form select{width:100%;min-height:44px;padding:9px 11px;border:1px solid #5eead433;border-radius:12px;color:var(--tg-theme-text-color, #e7f6f3);background:var(--input-background)}.role-form .primary-button{grid-column:1 / -1;color:#05201b;background:#5eead4;font-weight:800;text-align:center}.role-message{margin:12px 0 0;color:#99f6e4;font-size:12px}.vpn-binding-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-top:18px;padding-top:18px;border-top:1px solid #5eead422}.vpn-binding-form .form-heading,.vpn-binding-form .primary-button{grid-column:1 / -1}.vpn-binding-form .form-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.vpn-binding-form .form-heading>span{color:#99f6e4;font-size:11px}.vpn-binding-form label{display:grid;gap:7px;color:var(--secondary-text);font-size:12px}.vpn-binding-form input{width:100%;min-height:44px;padding:9px 11px;border:1px solid #5eead433;border-radius:12px;color:var(--tg-theme-text-color, #e7f6f3);background:var(--input-background)}.vpn-binding-form .primary-button{color:#05201b;background:#5eead4;font-weight:800;text-align:center}.user-search-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px;padding-top:18px;border-top:1px solid #5eead422}.user-search-heading>span{color:#99f6e4;font-size:12px}.user-search{width:100%;min-height:44px;margin-top:12px;padding:9px 11px;border:1px solid #5eead433;border-radius:12px;color:var(--tg-theme-text-color, #e7f6f3);background:var(--input-background)}.user-list{display:grid;gap:8px;margin-top:18px}.pagination-button{width:100%;min-height:38px;color:var(--link-text);background:var(--surface-background);font-size:11px;text-align:center}.user-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid #5eead41c;border-radius:13px;background:var(--surface-background)}.user-row strong,.user-row small{display:block}.user-row small{margin-top:4px;color:var(--muted-text)}.user-row-actions{display:grid;justify-items:end;gap:7px}.user-row-actions .role-badge{margin-left:0}.audit-section{margin-top:20px;padding-top:18px;border-top:1px solid #5eead422}.audit-heading,.audit-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.audit-heading>span{color:#99f6e4;font-size:12px}.audit-filter{width:100%;min-height:44px;margin-top:14px;padding:9px 11px;border:1px solid #5eead433;border-radius:12px;color:var(--tg-theme-text-color, #e7f6f3);background:var(--input-background)}.audit-list{display:grid;gap:8px;margin-top:10px}.audit-row{padding:12px;border:1px solid #5eead41c;border-radius:13px;background:var(--surface-background)}.audit-row strong,.audit-row small{display:block}.audit-row small{margin-top:4px;color:var(--muted-text)}.audit-result{text-align:right}.audit-result span{color:#99f6e4;font-size:11px;font-weight:800}.empty-state{margin:8px 0 0;color:var(--muted-text);font-size:12px;text-align:center}.vpn-section{margin-top:20px;padding-top:18px;border-top:1px solid #5eead422}.vpn-heading,.session-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.compact-button{min-height:36px;padding:7px 11px;color:#99f6e4;font-size:12px;text-align:center}.vpn-error{display:grid;gap:5px;margin-top:14px;padding:13px;border:1px solid #fb718544;border-radius:13px;background:#3b111633}.vpn-error strong{color:#fecdd3}.vpn-error small{color:#fda4af}.vpn-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}.vpn-metrics>div{padding:12px;border:1px solid #5eead41c;border-radius:13px;background:var(--surface-background)}.vpn-metrics small,.vpn-metrics strong{display:block}.vpn-metrics small{margin-bottom:7px;color:var(--muted-text)}.vpn-metrics strong{font-size:18px}.vpn-state.online{color:#6ee7b7}.vpn-state.offline{color:#fda4af}.vpn-up-since{margin:10px 0 0;color:var(--muted-text);font-size:11px}.session-list{display:grid;gap:8px;margin-top:12px}.session-row{padding:12px;border:1px solid #5eead41c;border-radius:13px;background:var(--surface-background)}.session-row strong,.session-row small,.session-network span{display:block}.session-row small{margin-top:4px;color:var(--muted-text)}.session-network{text-align:right}.session-network span{color:var(--tg-theme-text-color, #bddbd4);font-size:12px}.admin-panel--vpn{display:flex;min-height:0;flex-direction:column;overflow:hidden!important;padding:10px}.vpn-workspace{display:grid;flex:1 1 auto;grid-template-rows:auto auto minmax(0,1fr);gap:6px;min-width:0;min-height:0;overflow:hidden}.vpn-workspace-header{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:7px;min-width:0}.vpn-workspace-header>div{min-width:0}.vpn-workspace-header strong,.vpn-workspace-header small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vpn-workspace-header strong{font-size:13px}.vpn-workspace-header small{margin-top:2px;color:var(--muted-text);font-size:8px}.vpn-workspace-metrics{display:flex;gap:4px}.vpn-workspace-metrics span{padding:4px 6px;border:1px solid #2dd4bf44;border-radius:999px;color:var(--secondary-text);background:#0f766e22;font-size:8px;font-weight:800;white-space:nowrap}.vpn-workspace-header .compact-button{min-height:30px;padding:5px 8px;font-size:10px}.vpn-workspace-tabs{display:flex;gap:5px;min-width:0;overflow-x:auto;scrollbar-width:none}.vpn-workspace-tabs::-webkit-scrollbar{display:none}.vpn-workspace-tabs button{flex:1 0 72px;min-height:34px;padding:5px 7px;font-size:10px;text-align:center;white-space:nowrap}.vpn-workspace-tabs button.active{border-color:#2dd4bf88;color:var(--link-text);background:#0f766e33;font-weight:800}.vpn-workspace-content{display:flex;min-width:0;min-height:0;flex-direction:column;overflow:hidden}.vpn-account-directory,.vpn-detail{display:flex;flex:1 1 auto;min-width:0;min-height:0;flex-direction:column;overflow:hidden}.vpn-directory-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}.vpn-directory-controls form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px}.vpn-directory-controls input,.vpn-create-form input,.vpn-detail input,.vpn-detail select{width:100%;min-width:0;min-height:36px;padding:5px 7px;border:1px solid #5eead433;border-radius:9px;color:var(--tg-theme-text-color, #e7f6f3);background:var(--input-background);font-size:16px}.vpn-directory-controls button,.vpn-create-form button{min-height:36px;padding:5px 8px;font-size:9px;text-align:center}.vpn-create-button{color:#05201b;background:#5eead4;font-weight:800}.vpn-create-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:5px;margin-top:6px;padding:7px;border:1px solid #2dd4bf44;border-radius:10px;background:#0f766e22}.vpn-compact-list,.session-list{display:grid;flex:1 1 auto;align-content:start;gap:6px;min-height:0;margin-top:6px;padding:2px;overflow:auto;overscroll-behavior:contain}.vpn-account-row,.vpn-group-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-height:50px;padding:7px 9px;text-align:left}.vpn-account-row>span,.vpn-group-row>span{min-width:0}.vpn-account-row strong,.vpn-account-row small,.vpn-account-row b,.vpn-group-row strong,.vpn-group-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vpn-account-row strong,.vpn-group-row strong{font-size:11px}.vpn-account-row small,.vpn-group-row small{margin-top:3px;color:var(--muted-text);font-size:8px}.vpn-account-row>span:last-child{text-align:right}.vpn-account-row b{color:#6ee7b7;font-size:9px}.vpn-account-row b.locked{color:#fda4af}.vpn-detail-header{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding-bottom:6px;border-bottom:1px solid #5eead422}.vpn-detail-header button{min-height:30px;padding:4px 7px;color:#99f6e4;font-size:9px;text-align:center}.vpn-detail-header strong,.vpn-detail-header small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vpn-detail-header strong{font-size:12px}.vpn-detail-header small{margin-top:2px;color:var(--muted-text);font-size:8px}.vpn-detail-scroll{display:grid;flex:1 1 auto;align-content:start;gap:7px;min-height:0;padding:6px 2px;overflow:auto}.vpn-detail-scroll form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:6px;padding:7px;border:1px solid #5eead422;border-radius:10px;background:var(--surface-background)}.vpn-detail-scroll label{display:grid;min-width:0;gap:3px;color:var(--secondary-text);font-size:9px}.vpn-detail-scroll form button{min-height:36px;padding:5px 8px;font-size:9px;text-align:center}.vpn-detail-scroll .vpn-routing-form{grid-template-columns:repeat(3,minmax(0,1fr)) auto}.vpn-danger-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.vpn-danger-actions button{min-height:36px;padding:5px 7px;font-size:9px;text-align:center}.vpn-danger-actions button.danger,.vpn-confirm-panel button.danger{color:#fff1f2;background:#be123c;font-weight:800}.vpn-inline-action{min-height:27px;margin-top:4px;padding:3px 7px;color:#fda4af;font-size:8px;text-align:center}.vpn-ban-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px;border:1px solid #5eead41c;border-radius:11px;background:var(--surface-background)}.vpn-ban-row strong,.vpn-ban-row small{display:block}.vpn-ban-row small{margin-top:3px;color:var(--muted-text);font-size:8px}.vpn-ban-row button{min-height:30px;padding:4px 8px;font-size:9px;text-align:center}.vpn-workspace-error{position:absolute;right:12px;bottom:12px;left:12px;z-index:4;padding:7px 9px;border:1px solid #fb718555;border-radius:9px;color:#fecdd3;background:#4c0519ee;font-size:9px}.admin-panel--vpn{position:relative}.vpn-password-panel,.vpn-confirm-panel{position:absolute;right:10px;bottom:10px;left:10px;z-index:5;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:6px;padding:9px;border:1px solid #fbbf2466;border-radius:11px;background:#292012f5;box-shadow:0 12px 35px #0008}.vpn-password-panel strong,.vpn-password-panel small,.vpn-password-panel code,.vpn-confirm-panel strong,.vpn-confirm-panel small{display:block;min-width:0}.vpn-password-panel small,.vpn-confirm-panel small{margin-top:2px;color:#fde68a;font-size:8px}.vpn-password-panel code{max-width:100%;margin-top:5px;overflow:hidden;color:#fff;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.vpn-password-panel button,.vpn-confirm-panel button{min-height:34px;padding:5px 8px;font-size:9px;text-align:center}.admin-panel--firewall{display:flex;min-height:0;flex-direction:column;overflow:hidden!important;padding:10px}.firewall-section{display:grid;flex:1 1 auto;grid-template-rows:auto auto auto minmax(0,1fr);gap:6px;min-width:0;min-height:0;overflow:hidden}.firewall-page-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:7px;min-width:0}.firewall-page-toolbar>div:first-child{min-width:0}.firewall-page-toolbar .eyebrow{margin-bottom:3px;font-size:8px}.firewall-page-toolbar strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.firewall-toolbar-meta{display:flex;align-items:center;justify-content:flex-end;gap:4px}.firewall-toolbar-meta span{padding:4px 6px;border:1px solid #2dd4bf44;border-radius:999px;color:#6ee7b7;background:#0f766e22;font-size:8px;font-weight:800;white-space:nowrap}.firewall-page-toolbar .compact-button{min-height:30px;padding:5px 8px;font-size:10px}.firewall-tabs{display:flex;min-width:0;gap:6px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none}.firewall-tabs::-webkit-scrollbar{display:none}.firewall-tabs button{flex:1 0 96px;min-height:34px;padding:6px 7px;font-size:10px;text-align:center;white-space:nowrap}.firewall-workflow{min-width:0;padding-top:5px;border-top:1px solid #5eead422}.firewall-workflow-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.firewall-workflow-heading .eyebrow{display:none}.firewall-workflow-heading h3{font-size:13px}.firewall-workflow-heading small{color:#6ee7b7;font-size:9px;font-weight:800}.firewall-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:5px 0 0;padding:0;list-style:none}.firewall-steps li{display:flex;align-items:center;justify-content:center;gap:3px;min-width:0;min-height:30px;padding:4px 2px;border:1px solid #64748b33;border-radius:9px;color:var(--muted-text);background:var(--surface-background);font-size:9px;font-weight:700;white-space:nowrap}.firewall-steps li span{display:grid;width:16px;height:16px;place-items:center;border-radius:50%;background:#334155;font-size:8px}.firewall-steps li.active{border-color:#2dd4bf77;color:#99f6e4;background:#0f766e33}.firewall-steps li.active span,.firewall-steps li.done span{color:#052e2b;background:#5eead4}.firewall-steps li.done{color:#5eead4}.firewall-workspace-content{display:flex;min-width:0;min-height:0;flex-direction:column;overflow:hidden}.firewall-members{display:grid;flex:1 1 auto;align-content:start;gap:6px;min-height:0;padding:2px;overflow:auto;overscroll-behavior:contain}.firewall-member{display:grid;grid-template-columns:minmax(0,1fr) minmax(112px,auto);gap:8px;align-items:center;min-width:0;padding:9px 10px;border:1px solid #5eead41c;border-radius:12px;background:var(--surface-background)}.firewall-member-main,.firewall-member-side{min-width:0}.firewall-member strong,.firewall-member small{display:block}.firewall-member strong{overflow-wrap:anywhere;font-size:12px;line-height:1.12}.firewall-member small{margin-top:3px;overflow:hidden;color:var(--muted-text);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.firewall-member-side{text-align:right}.firewall-member-side>span{display:block;overflow:hidden;color:var(--tg-theme-text-color, #bddbd4);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.firewall-member-side>small{font-size:8px}.firewall-member-actions{display:flex;justify-content:flex-end;gap:5px;margin-top:5px}.firewall-member-actions button{min-width:44px;min-height:27px;padding:3px 7px;color:var(--link-text);font-size:9px;text-align:center}.firewall-member-actions button.danger{color:#fda4af}.firewall-form{display:grid;flex:1 1 auto;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:7px;min-width:0;min-height:0;padding:2px 2px 0;overflow:auto;overscroll-behavior:contain}.firewall-form label{display:grid;min-width:0;gap:3px;color:var(--secondary-text);font-size:9px}.firewall-form input,.firewall-form select{width:100%;min-width:0;min-height:38px;padding:6px 8px;overflow:hidden;border:1px solid #5eead433;border-radius:10px;color:var(--tg-theme-text-color, #e7f6f3);background:var(--input-background);font-size:16px;text-overflow:ellipsis}.firewall-form input[readonly]{color:var(--muted-text);cursor:default;opacity:.82}.firewall-form-actions{position:sticky;bottom:0;z-index:2;grid-column:1 / -1;padding-top:7px;background:linear-gradient(180deg,transparent,var(--tg-theme-bg-color, #061713) 30%)}.firewall-form-actions button{width:100%;min-height:40px}.preview-button{color:#05201b;background:#5eead4;font-weight:800;text-align:center}.firewall-plan{display:flex;flex:1 1 auto;min-width:0;min-height:0;flex-direction:column;margin-top:2px;padding:10px 10px 0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;border:1px solid #fbbf2444;border-radius:13px;background:#42200633}.firewall-plan-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px}.firewall-summary-disclosure{min-width:0;margin-top:5px}.firewall-summary-disclosure summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:6px;cursor:pointer;list-style:none}.firewall-summary-disclosure summary::-webkit-details-marker{display:none}.firewall-summary-disclosure summary>span{display:-webkit-box;min-width:0;overflow:hidden;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:13px;font-weight:800;line-height:1.16}.firewall-summary-disclosure summary>small:before{content:"展开";color:#fcd34d;font-size:8px;font-weight:800;white-space:nowrap}.firewall-summary-disclosure[open] summary>small:before{content:"收起"}.firewall-summary-disclosure>p{margin-top:6px;padding:7px 8px;overflow-wrap:anywhere;border:1px solid #fbbf2433;border-radius:8px;color:#d6d3d1;background:#1f171077;font-size:10px;line-height:1.4}.firewall-plan-heading>strong{color:#fde68a;font-size:10px;white-space:nowrap}.dry-run-badge{color:#fcd34d;font-size:8px;font-weight:900;letter-spacing:.8px}.plan-status{display:block;margin-top:4px;color:#fde68a;font-size:9px}.firewall-plan-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:7px}.firewall-plan-summary span{min-width:0;padding:6px 7px;border:1px solid #fbbf2433;border-radius:9px;background:#1f171077}.firewall-plan-summary small,.firewall-plan-summary strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.firewall-plan-summary small{color:#a8a29e;font-size:8px}.firewall-plan-summary strong{margin-top:2px;color:#fde68a;font-size:10px}.firewall-plan-meta{margin-top:7px;padding:6px 8px;border:1px solid #fbbf2422;border-radius:9px;color:#a8a29e;font-size:9px}.firewall-plan-meta summary{cursor:pointer;color:#d6d3d1;font-weight:700}.firewall-plan-meta>small{display:block;margin-top:6px;overflow-wrap:anywhere}.firewall-plan-actors{display:flex;flex-wrap:wrap;gap:3px 8px;overflow-wrap:anywhere;color:var(--secondary-text);font-size:9px}.firewall-plan-meta .firewall-plan-actors{margin-top:4px}.firewall-remove-impact{display:grid;gap:3px;margin-top:7px;padding:7px 8px;border:1px solid #fb718566;border-radius:9px;color:#fecdd3;background:#4c051933;font-size:9px;line-height:1.35}.firewall-remove-impact.shared{border-color:#fbbf2466;color:#fde68a;background:#42200633}.firewall-plan-steps{margin:7px 0;padding-left:18px;color:#d6d3d1;font-size:9px;line-height:1.35}.firewall-plan p{margin:0;color:#fcd34d;font-size:9px;line-height:1.35}.firewall-plan-actions{position:sticky;bottom:0;z-index:2;display:grid;grid-template-columns:.72fr 1.28fr;gap:7px;margin-top:auto;padding:7px 0 9px;background:linear-gradient(180deg,transparent,#25160f 24%)}.firewall-plan-actions button{min-height:40px;text-align:center}.secondary-button{color:var(--secondary-text);background:var(--surface-background)}.confirm-plan-button{width:100%;margin-top:0;border-color:#fbbf2466;color:#fde68a;background:#713f1233;font-weight:800;text-align:center}.firewall-plan-list{display:grid;flex:1 1 auto;align-content:start;gap:6px;min-height:0;padding:2px;overflow:auto;overscroll-behavior:contain}.firewall-plan-list-heading{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 2px;background:var(--tg-theme-bg-color, #061713)}.firewall-plan-list-heading h3{font-size:13px}.firewall-plan-list-heading>span{color:#99f6e4;font-size:10px}.firewall-plan-filters{position:sticky;top:28px;z-index:1;display:grid;grid-template-columns:minmax(92px,.55fr) minmax(0,1.45fr);gap:5px;padding:0 2px 5px;background:var(--tg-theme-bg-color, #061713)}.firewall-plan-filters input,.firewall-plan-filters select{width:100%;min-width:0;min-height:34px;padding:5px 7px;border:1px solid #5eead433;border-radius:9px;color:var(--tg-theme-text-color, #e7f6f3);background:var(--input-background);font-size:16px}.firewall-plan-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(78px,auto);align-items:center;gap:8px;min-width:0;min-height:58px;padding:7px 9px;overflow:hidden;background:var(--surface-background)}.firewall-plan-row span{min-width:0}.firewall-plan-row strong,.firewall-plan-row small,.firewall-plan-row b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.firewall-plan-row strong{color:#d5f5ee;font-size:10px}.firewall-plan-row-main>strong b{display:inline;margin-right:4px;color:#5eead4}.firewall-plan-row small{margin-top:3px;color:var(--muted-text);font-size:8px}.firewall-plan-row-status{text-align:right}.firewall-plan-row-status b{max-width:112px;padding:3px 5px;border-radius:999px;color:#fde68a;background:#f59e0b22;font-size:8px}.firewall-plan-row-status b.status-committed{color:#6ee7b7;background:#10b98122}.firewall-plan-row-status b.status-executing{color:#7dd3fc;background:#0ea5e922}.firewall-plan-row-status b.status-apply_failed,.firewall-plan-row-status b.status-commit_failed,.firewall-plan-row-status b.status-rollback_failed,.firewall-plan-row-status b.status-commit_unknown{color:#fda4af;background:#e11d4822}.firewall-execute-form{display:grid;min-width:0;gap:7px;margin-top:auto;padding:8px;overflow:hidden;border:1px solid #fb718566;border-radius:10px;background:#4c051933}.firewall-execute-form button{width:100%;max-width:100%;min-height:40px;color:#fff1f2;background:#be123c;font-weight:900;text-align:center;white-space:normal}.firewall-execution-path,.firewall-progress-stages{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:4px}.firewall-execution-path span,.firewall-progress-stages span{min-width:0;padding:6px 3px;border:1px solid #fb718544;border-radius:8px;text-align:center;background:#1f071077}.firewall-execution-path b,.firewall-execution-path small,.firewall-progress-stages b,.firewall-progress-stages small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.firewall-execution-path b{color:#fff1f2;font-size:9px}.firewall-execution-path small{margin-top:2px;color:#fda4af;font-size:7px}.firewall-execution-path i,.firewall-progress-stages i{color:#fb7185;font-style:normal}.firewall-execution-ack{display:flex;align-items:center;gap:7px;min-width:0;padding:7px 8px;border:1px solid #fb718555;border-radius:9px;color:#fecdd3;background:#1f071077;font-size:9px;line-height:1.3}.firewall-execution-ack input{flex:0 0 auto;width:18px;height:18px;margin:0;accent-color:#fb7185}.firewall-execution-ack span{min-width:0;overflow-wrap:anywhere}.firewall-live-progress{min-width:0;margin-top:7px;padding:9px;overflow:hidden;border:1px solid #38bdf866;border-radius:10px;background:#082f4966}.firewall-progress-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.firewall-progress-heading strong,.firewall-progress-heading small{display:block}.firewall-progress-heading strong{color:#e0f2fe;font-size:10px}.firewall-progress-heading small{margin-top:2px;color:#7dd3fc;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8px}.firewall-progress-heading>b{flex:0 0 auto;color:#7dd3fc;font-size:9px}.firewall-progress-stages{margin-top:7px}.firewall-progress-stages span{border-color:#64748b55;background:#0f172a66}.firewall-progress-stages b{color:#e2e8f0;font-size:9px}.firewall-progress-stages small{margin-top:2px;color:#94a3b8;font-size:7px}.firewall-progress-stages i{color:#38bdf8}.firewall-progress-stages span.running,.firewall-progress-stages span.submitted{border-color:#38bdf888;background:#0369a144}.firewall-progress-stages span.success{border-color:#34d39988;background:#04785744}.firewall-progress-stages span.failed,.firewall-progress-stages span.unknown{border-color:#fb718588;background:#9f123944}.firewall-progress-track{height:6px;margin-top:7px;overflow:hidden;border-radius:999px;background:#0f172a}.firewall-progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2dd4bf,#38bdf8);transition:width .35s ease}.firewall-live-progress>small{display:block;margin-top:6px;color:#7dd3fc;font-size:8px}.firewall-live-progress>p{margin-top:6px;color:#fecdd3}.firewall-readonly-warning{margin-top:7px!important;padding:8px;border:1px solid #f59e0b55;border-radius:9px;background:#78350f33}.firewall-reconcile,.firewall-new-change{position:sticky;bottom:0;z-index:2;min-height:40px;margin-top:7px}.firewall-new-change{width:100%;text-align:center}:root[data-theme=light] .eyebrow,:root[data-theme=light] .role-badge,:root[data-theme=light] .online,:root[data-theme=light] .dashboard-heading>span,:root[data-theme=light] .dashboard-subheading>span,:root[data-theme=light] .dashboard-recent-operations article>span,:root[data-theme=light] .vpn-account-heading>span,:root[data-theme=light] .config-heading>span,:root[data-theme=light] .help-heading>span,:root[data-theme=light] .role-message,:root[data-theme=light] .vpn-binding-form .form-heading>span,:root[data-theme=light] .user-search-heading>span,:root[data-theme=light] .audit-heading>span,:root[data-theme=light] .audit-result span,:root[data-theme=light] .compact-button,:root[data-theme=light] .firewall-group-heading strong,:root[data-theme=light] .firewall-group-heading>span,:root[data-theme=light] .firewall-plan-list-heading>span{color:var(--tg-theme-link-color, #0f766e)}:root[data-theme=light] .help-steps strong,:root[data-theme=light] .help-faq strong,:root[data-theme=light] .firewall-plan-row strong{color:var(--tg-theme-text-color, #12332d)}:root[data-theme=light] .firewall-plan-meta,:root[data-theme=light] .firewall-plan-actors{color:#78716c}:root[data-theme=light] .firewall-plan-meta summary,:root[data-theme=light] .firewall-plan-steps{color:#57534e}:root[data-theme=light] .dashboard-note,:root[data-theme=light] .config-pending,:root[data-theme=light] .help-security,:root[data-theme=light] .firewall-form-heading>span,:root[data-theme=light] .firewall-plan-heading>strong,:root[data-theme=light] .dry-run-badge,:root[data-theme=light] .firewall-plan p,:root[data-theme=light] .plan-status{color:#92400e}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:480px){input,select,textarea{font-size:16px}.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.role-form,.vpn-binding-form,.vpn-account-metrics,.node-summary,.help-faq,.vpn-metrics{grid-template-columns:1fr}.user-directory-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.user-directory-controls input{grid-column:1 / -1}.user-vpn-binding{grid-template-columns:minmax(0,1fr) auto auto}.user-vpn-binding>div{grid-column:1 / -1}.welcome-panel{align-items:center;gap:10px}.vpn-heading,.session-row,.firewall-member,.firewall-plan-heading{align-items:flex-start}.vpn-workspace-header{grid-template-columns:minmax(0,1fr) auto}.vpn-workspace-metrics{grid-column:1 / -1;grid-row:2}.vpn-detail-scroll .vpn-routing-form{grid-template-columns:1fr 1fr}.vpn-detail-scroll .vpn-routing-form button{grid-column:1 / -1}.dashboard-metrics small{min-height:0}}@media(max-width:360px){.user-workspace-metrics span:last-child{display:none}.user-role-editor{grid-template-columns:1fr}.permission-item{grid-template-columns:auto minmax(0,1fr)}.permission-item em{grid-column:2;justify-self:start}.firewall-toolbar-meta span:last-child{display:none}.firewall-member{grid-template-columns:minmax(0,1fr) 106px;padding-inline:8px}.firewall-tabs button{flex-basis:88px}.vpn-workspace-metrics span:nth-child(3){display:none}.vpn-create-form{grid-template-columns:1fr}}@media(max-height:680px){.shell{padding-top:max(8px,env(safe-area-inset-top));padding-bottom:max(8px,env(safe-area-inset-bottom))}.hero{margin-bottom:7px}.brand-mark{width:36px;height:36px}.hero h1{font-size:19px}.panel{padding:11px}.admin-panel--firewall,.admin-panel--users{padding:8px}.user-workspace{gap:5px}.user-workspace-header .eyebrow,.permission-matrix-heading .eyebrow{display:none}.user-editor-scroll{gap:5px;padding-block:5px}.permission-group{margin-top:3px}.permission-group summary{padding-block:6px}.permission-item{padding-block:5px}.permission-item small,.firewall-page-toolbar .eyebrow{display:none}.firewall-steps{margin-top:0}.firewall-form{gap:5px}.firewall-form input,.firewall-form select{min-height:36px}.vpn-workspace-metrics{display:none}.vpn-detail-scroll{gap:5px;padding-block:4px}.welcome-panel .eyebrow,.actions-panel>h3{display:none}.action-list{margin-top:0}}
