/* The profile table defines the density for every added workspace. */
:root{--ui-font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--ui-text-size:11px;--ui-caption-size:10px;--ui-control-size:11px;--ui-control-height:34px;--ui-section-size:14px}
body{font-family:var(--ui-font-family)}
button,input,select,textarea{font-family:var(--ui-font-family)}
.primary,.secondary,.copy,.sidebar nav button,.metadata-panel button{font-family:var(--ui-font-family);font-size:var(--ui-control-size);font-weight:600;line-height:1.4}
.primary,.secondary{min-height:var(--ui-control-height);padding:0 12px;border-radius:8px}
.copy{height:31px;padding:0 10px}
.metadata-panel,.title-filters-panel,.routing-direct-heading{font-family:var(--ui-font-family);font-size:var(--ui-text-size);line-height:1.5}
.metadata-panel{padding:15px 17px;border-radius:13px}
.metadata-panel :is(.metadata-heading,.routing-policy-heading){gap:14px;margin-bottom:13px}
.metadata-panel :is(.metadata-heading,.routing-policy-heading) h2,.title-filters-panel .filter-copy h2,.routing-direct-heading h2{margin:7px 0 0;font-size:var(--ui-section-size);line-height:1.4}
.metadata-panel .metadata-kicker,.title-filters-panel .filter-kicker,.title-filters-panel .filter-chip{font-family:var(--ui-font-family)}
.metadata-node-bar{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 112px;gap:10px;margin-bottom:13px}
.metadata-node-bar>div{min-width:0}
.metadata-node-bar label,.metadata-field-label{margin-bottom:5px;font-size:var(--ui-text-size)}
.metadata-panel input,.metadata-panel select,.metadata-panel textarea,.filter-control input{font-family:var(--ui-font-family);font-size:var(--ui-text-size);line-height:1.5}
.metadata-panel input,.metadata-panel select,.metadata-panel textarea{min-height:var(--ui-control-height);padding:6px 9px;border-radius:7px}
.metadata-panel select{padding-right:34px;background-position:right 11px center;background-size:14px 14px;text-overflow:ellipsis}
.metadata-node-bar .metadata-refresh{min-height:var(--ui-control-height);padding:0 10px;font-size:var(--ui-control-size)}
.metadata-tabs{gap:4px;margin-bottom:12px;padding-bottom:6px}
.metadata-tabs button{min-height:31px;padding:5px 10px;border-radius:6px}
.metadata-grid{gap:11px 16px}
.metadata-field{position:relative}
.metadata-field>.metadata-hint:not(.metadata-visually-hidden){position:absolute;top:100%;left:0;right:0;z-index:4;margin-top:5px;padding:6px 8px;border:1px solid #303b43;border-radius:6px;background:#11171e;box-shadow:0 4px 12px #0005;pointer-events:none}
.metadata-value-control{min-height:var(--ui-control-height);border-radius:7px}
.metadata-panel .metadata-value-control .metadata-source{padding-right:34px}
.metadata-panel .metadata-value-control.is-custom .metadata-source{width:34px;flex-basis:34px;padding:0}
.metadata-source-chevron{right:11px;width:14px;height:14px}
.metadata-panel .metadata-value-control .metadata-custom-value{background-position:right 11px center;background-size:14px 14px;padding-right:34px}
.metadata-panel .metadata-value-control textarea{height:32px;min-height:32px}
.metadata-panel .metadata-value-control textarea:focus,.metadata-panel .metadata-value-control textarea[rows="3"]{min-height:68px}
.metadata-panel .metadata-source option{font-size:var(--ui-text-size)}
.metadata-panel :is(.metadata-hint,.metadata-footer p,.metadata-success,.metadata-error,.metadata-loading,.metadata-provider-error,.metadata-empty,.guard-notice,.guard-unsaved,.guard-data-time){font-size:var(--ui-caption-size);line-height:1.5}
.metadata-footer,.routing-policy-footer,.guard-save-row,.revoked-save-row{justify-content:flex-end;gap:10px;margin-top:12px;padding-top:10px}
.metadata-footer>p,.routing-policy-footer>span,.guard-save-row>.guard-unsaved,.revoked-save-row>.guard-unsaved{margin-right:auto;text-align:left}
.metadata-actions{gap:6px}
.metadata-actions button{min-height:var(--ui-control-height);padding:0 12px}

/* Compact access state uses the profile label scale. */
.metadata-panel .access-guard-switch{font-size:var(--ui-section-size);gap:8px}
.metadata-panel .access-guard-switch input{width:16px;min-width:16px;height:16px;min-height:16px;padding:0}
.metadata-panel .guard-setting-badge{font-size:var(--ui-caption-size);padding:4px 7px}
.guard-setting-badge.is-enabled{color:#b2ccbe;border-color:#3a4e44;background:#142019}
.guard-policy-controls{gap:10px;margin:12px 0}
.guard-policy-controls .access-guard-interval{gap:8px;font-size:var(--ui-text-size)}
.guard-metrics{gap:8px}
.guard-metric{padding:9px 11px;gap:9px;border-radius:7px}
.metadata-panel .guard-metric>span{font-size:var(--ui-text-size)}
.metadata-panel .guard-metric strong{font-size:17px;line-height:1.2}
.guard-metric-copy{display:grid;gap:2px;min-width:0;font-size:var(--ui-text-size);color:#b9cabe}
.guard-metric-copy small{font-size:var(--ui-caption-size);line-height:1.4;color:#91a69a}
.guard-settings-explanation{margin:9px 0 0;font-size:var(--ui-caption-size);line-height:1.5;color:#92a69b;max-width:760px}
.guard-settings-current,.guard-settings-old{display:block;font-size:var(--ui-text-size);color:#b7cabe}
.guard-settings-old{color:#d8b888}
.guard-settings-issued{display:block;margin-top:4px;color:#8fa297;line-height:1.4}
.guard-device-section{margin-top:13px}
.guard-device-heading{margin-bottom:5px}
.metadata-panel .guard-device-heading h4{font-size:12px}
.metadata-panel .guard-devices,.metadata-panel .guard-devices th,.metadata-panel .guard-devices td{font-size:var(--ui-text-size);line-height:1.45}
.metadata-panel .guard-devices th,.metadata-panel .guard-devices td{padding-top:8px;padding-bottom:8px}
.metadata-panel :is(.guard-device-state,.guard-probe-state,.guard-probe-denied){font-size:var(--ui-text-size)}
.metadata-panel .guard-device-state{padding:3px 6px;border-radius:5px}
.metadata-panel .guard-device-name small,.metadata-panel .guard-devices td small,.metadata-panel .guard-devices td[data-label]::before{font-size:var(--ui-caption-size)}
.metadata-panel .access-guard-save{min-height:var(--ui-control-height);padding:0 14px}

/* Short rows for the denial editor. */
.revoked-toolbar{gap:10px;margin-bottom:8px;justify-content:space-between;flex-wrap:wrap}
.revoked-source-controls{display:flex;align-items:center;gap:9px;flex-wrap:wrap;min-width:0}
.metadata-panel .revoked-source{width:175px;color:#abbcc7;border-color:#354450;background-color:#111820}
.metadata-panel .revoked-source.is-custom{color:#b7cdbd;border-color:#3a4d40;background-color:#111b15}
.revoked-template-label{font-size:12px;font-weight:600;color:#bfccc7}
.metadata-panel .revoked-template-action{border:0;padding:0 3px;min-height:32px;background:transparent;color:#9eafa9;font:600 var(--ui-control-size)/1.4 var(--ui-font-family);cursor:pointer}
.revoked-template-action:hover{color:#d9ebe2}
.revoked-template-help{margin:0 0 9px;color:#92a69b;font-size:var(--ui-caption-size);line-height:1.5}
.metadata-panel :is(.revoked-kind,.revoked-profile-fields label>span,.revoked-servers-heading h3,.revoked-row-number,.revoked-server-preview,.revoked-server-preview small,.revoked-preview-unavailable,.revoked-save-row>span){font-size:var(--ui-text-size)}
.metadata-panel .revoked-preview-toggle,.metadata-panel .revoked-add,.metadata-panel .revoked-subtitle-toggle{min-height:32px;padding:0 8px}
.revoked-editor-card{padding:10px;border-radius:8px}
.revoked-profile-fields label{grid-template-columns:72px minmax(0,1fr);gap:9px}
.revoked-profile-fields label>span{padding-top:8px}
.metadata-panel .revoked-profile-fields textarea{height:34px;min-height:34px}
.revoked-servers-heading{margin-top:10px;gap:10px}
.revoked-server-list{gap:5px}
.revoked-server-row{grid-template-columns:20px minmax(0,1fr) 30px;padding:2px 4px}
.revoked-row-delete{width:30px;height:32px}
.metadata-panel .revoked-profile-preview>strong{font-size:var(--ui-section-size)}
.metadata-panel .revoked-profile-preview>p{font-size:var(--ui-text-size)}
.revoked-server-preview{padding:8px 5px}

/* Routing follows the profile scale, including editable destinations. */
.routing-policy-panel{margin-bottom:14px}
.metadata-panel .routing-profile-picker{gap:8px;font-size:var(--ui-text-size)}
.routing-profile-picker select{width:270px}
.routing-mode-options{gap:10px}
.routing-mode-option{padding:11px 12px;gap:9px;border-radius:8px}
.metadata-panel .routing-mode-option input{width:15px;min-width:15px;height:15px;min-height:15px;margin-top:1px;padding:0}
.metadata-panel .routing-mode-option strong{font-size:12px;line-height:1.45}
.metadata-panel .routing-mode-option small{margin-top:3px;font-size:var(--ui-caption-size)}
.routing-destinations{margin-top:13px}
.routing-list-heading{gap:10px;margin-bottom:6px}
.metadata-panel .routing-list-heading label{font-size:var(--ui-text-size)}
.metadata-panel .routing-list-heading span,.metadata-panel .routing-policy-help,.metadata-panel .routing-policy-footer>span{font-size:var(--ui-caption-size)}
.metadata-panel .routing-destinations textarea{min-height:110px;font:400 var(--ui-text-size)/1.65 var(--ui-font-family)}
.routing-policy-help{margin-top:7px}
.routing-direct-heading{padding:13px 17px 0;gap:10px;align-items:center}
.routing-direct-heading>div{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;min-width:0}
.routing-direct-heading h2{margin:0}
.routing-direct-heading span{font-size:var(--ui-caption-size)}
.rule-value code{font:500 var(--ui-text-size)/1.5 var(--ui-font-family)}
.title-filters-panel{padding:15px 17px;gap:20px;margin-bottom:14px}
.title-filters-panel .filter-copy p{font-size:var(--ui-text-size);line-height:1.5}
.filter-control input{height:var(--ui-control-height);padding:0 10px;border-radius:8px}
.filter-control .primary{min-height:var(--ui-control-height)}

.profile-subscription{display:grid;justify-items:start;gap:5px;min-width:155px}
td .profile-subscription-host{font:500 var(--ui-text-size)/1.5 var(--ui-font-family);color:#b7c5cf}
.profile-routing-mode{display:inline-flex;align-items:center;gap:5px;padding:3px 6px;border:1px solid #343f4a;border-radius:5px;background:#141a21;color:#aab8c5;font:500 var(--ui-caption-size)/1.4 var(--ui-font-family);white-space:nowrap}
.profile-routing-mode>i{width:5px;height:5px;background:currentColor;border-radius:50%}
.profile-routing-mode.is-selected{color:#b2ccbe;border-color:#3a4e44;background:#142019}
.profile-routing-mode small{font:inherit;color:inherit}

/* Keep dialogs inside the viewport while their contents scroll. */
.modal-bg{padding:16px}
.modal{display:flex;flex-direction:column;max-height:calc(100dvh - 32px);min-height:0;outline:none}
.modal>header{flex-shrink:0;gap:12px;padding:16px 17px}
.modal>header>div{min-width:0}
.modal>header .icon-btn{flex-shrink:0}
.modal h2{font-size:var(--ui-section-size);line-height:1.4;overflow-wrap:anywhere}
.modal header p{font-size:var(--ui-caption-size);line-height:1.5;overflow-wrap:anywhere}
.modal-form{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:17px;gap:13px}
.modal-form label{font-size:var(--ui-text-size);font-weight:500;letter-spacing:0;gap:6px;min-width:0}
.modal-form input,.modal-form select,.login-card input{font-family:var(--ui-font-family);font-size:var(--ui-text-size);font-weight:400;line-height:1.5;color-scheme:dark}
.modal-form input,.modal-form select{height:var(--ui-control-height);padding:0 9px;border-radius:7px}
.modal-form .two,.modal-form .three{gap:11px}
.modal-form .field-note,.modal-form .hint{font-size:var(--ui-caption-size);letter-spacing:0;line-height:1.5}
.modal-form footer{flex-shrink:0;margin-top:0;padding-top:12px}
.modal-form .select select{padding-right:34px;text-overflow:ellipsis}
.modal-form .select svg{top:50%;right:11px;transform:translateY(-50%)}
.modal-form .input-action input{padding-right:38px}
.modal-form .input-action button{width:26px;height:26px;top:4px;right:4px}
.device-list{min-height:0;overscroll-behavior:contain;padding:15px;gap:8px}
.device-row{padding:11px 12px;gap:11px}
.device-main .device-display-name{font-size:12px}
.device-main .device-client-name{font-family:var(--ui-font-family);font-size:var(--ui-caption-size)}
.device-actions .compact,.device-actions .danger-action{min-height:var(--ui-control-height);font-family:var(--ui-font-family);font-size:var(--ui-control-size);font-weight:600;line-height:1.4}
.device-rename-field input{font-size:var(--ui-text-size)}
.sidebar{overflow-y:auto;overscroll-behavior:contain}
.sidebar>.brand,.sidebar nav,.sidebar>.system-card,.sidebar>.logout{flex-shrink:0}
.logout{font-size:var(--ui-control-size)}
.profile-cell>.device-icon{flex-shrink:0}
.profile-cell>div:last-child{min-width:0;max-width:220px}
.profile-cell strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere;line-height:1.4}
.profile-cell span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.content>.page-head+.data-panel{margin-top:22px}
.log-event{font-family:var(--ui-font-family);font-size:var(--ui-caption-size);line-height:1.4}
.log-event.denied{background:#bd879412;color:#d9a7b3}
.filter-control{min-width:0}
.filter-chip{max-width:100%;align-items:flex-start;line-height:1.5}
.filter-chip>i{flex-shrink:0;margin-top:5px}
.filter-chip-label{min-width:0;overflow-wrap:anywhere}
.filter-chip button{flex-shrink:0}
.primary:disabled,.secondary:disabled{cursor:default}
.primary:disabled:hover{transform:none;background:var(--mint)}
@media(max-width:1100px){.title-filters-panel{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){
 .metadata-panel,.title-filters-panel{padding:13px 14px}
 .metadata-node-bar{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
 .metadata-node-bar .metadata-refresh{width:112px}
 .metadata-node-bar .metadata-refresh[aria-hidden=true]{display:none}
 .metadata-panel input,.metadata-panel select,.metadata-panel textarea{min-height:40px}
 .metadata-value-control{min-height:40px}
 .metadata-panel .metadata-value-control.is-custom .metadata-source{width:40px;flex-basis:40px}
 .metadata-panel .metadata-value-control textarea{height:38px;min-height:38px}
 .metadata-tabs button{min-height:36px;padding:6px 8px}
 .guard-policy-controls{grid-template-columns:1fr;gap:8px}
 .guard-policy-controls .access-guard-interval{grid-template-columns:55px minmax(0,1fr)}
 .guard-metric{padding:8px 10px}
 .metadata-panel .guard-metric strong{min-width:47px;font-size:17px}
 .metadata-panel .guard-devices td,.metadata-panel .guard-devices td:first-child,.metadata-panel .guard-devices td:last-child{padding:0}
 .guard-devices tr{padding:10px 0;gap:8px 10px}
 .metadata-panel .access-guard-save,.metadata-actions button{min-height:40px}
 .metadata-panel .revoked-preview-toggle,.metadata-panel .revoked-add,.metadata-panel .revoked-subtitle-toggle{min-height:40px;padding:0 5px}
 .metadata-panel .revoked-template-action{min-height:40px}
 .revoked-source-controls{gap:7px}
 .metadata-panel .revoked-source{width:160px}
 .revoked-profile-fields label{grid-template-columns:1fr;gap:4px}
 .revoked-profile-fields label>span{padding:0}
 .metadata-panel .revoked-profile-fields textarea{height:40px;min-height:40px}
 .revoked-server-row{grid-template-columns:18px minmax(0,1fr) 36px;padding:2px 3px}
 .revoked-row-delete{width:36px;height:40px}
 .revoked-save-row .metadata-actions button{min-height:40px}
 .routing-profile-picker select{width:100%}
 .routing-mode-option{padding:10px 11px}
 .routing-direct-heading{padding:12px 14px 0}
 .modal-bg{padding:10px}
 .modal{max-height:calc(100dvh - 20px);border-radius:12px}
 .modal>header{padding:13px 14px}
 .modal>header .icon-btn{width:40px;height:40px}
 .modal-form{padding:14px;gap:12px}
 .modal-form input,.modal-form select{height:40px}
 .modal-form .input-action button{height:32px;width:32px}
 .modal-form .input-action input{padding-right:42px}
 .modal-form footer button,.device-actions .compact,.device-actions .danger-action{min-height:40px}
 .device-list{padding:10px}
}
@media(max-width:700px) and (hover:none){
 .metadata-panel input:not([type=checkbox]):not([type=radio]):focus,.metadata-panel textarea:focus,.filter-control input:focus,.modal-form input:focus,.login-card input:focus,.device-rename-field input:focus{font-size:16px}
}
