:root{--font-sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-md: 13px;--font-size-base: 14px;--font-size-lg: 16px;--font-size-xl: 20px;--font-size-2xl: 28px;--font-size-3xl: 36px;--line-height-tight: 1.25;--line-height-base: 1.5;--line-height-relaxed: 1.65;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--icon-button-size: 32px;--control-sm: 34px;--control-md: 40px;--control-lg: 44px;--radius-sm: 8px;--radius-md: 10px;--radius-lg: 12px;--radius-xl: 16px;--color-canvas: #f4f6f7;--color-surface: #ffffff;--color-surface-muted: #f8f9fa;--color-surface-raised: #ffffff;--color-sidebar: #fbfcfc;--color-overlay: rgba(18, 27, 32, .42);--color-text: #182127;--color-text-secondary: #56636b;--color-text-tertiary: #7f8a91;--color-text-disabled: #a7afb4;--color-border: #dde2e5;--color-border-strong: #cbd3d7;--color-divider: #edf0f2;--color-accent: #324c58;--color-accent-hover: #263d47;--color-accent-soft: #edf2f4;--color-focus: #5f7b87;--color-success: #267248;--color-success-soft: #edf7f1;--color-warning: #956615;--color-warning-soft: #fff7e8;--color-danger: #a3483f;--color-danger-hover: #8f3e36;--color-danger-soft: #fff1ef;--color-danger-border: #e8c4bf;--color-log-background: #11171b;--color-log-text: #e8ecee;--color-log-warning: #f2ca7a;--color-log-warning-soft: rgba(149, 102, 21, .2);--color-log-error: #ff9d92;--color-log-error-soft: rgba(163, 72, 63, .24);--shadow-modal: 0 24px 80px rgba(20, 30, 36, .22);--shadow-sidebar: 8px 0 24px rgba(24, 34, 40, .06);--sidebar-width: 252px;--topbar-height: 64px;--content-max: 1240px}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:var(--color-canvas)}body{margin:0;min-width:320px;min-height:100vh;color:var(--color-text);background:var(--color-canvas);font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-base);font-synthesis:none;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}h1,h2,h3,p{margin-top:0}h1{margin-bottom:var(--space-2);font-size:var(--font-size-2xl);line-height:var(--line-height-tight);letter-spacing:-.035em}h2{margin-bottom:0;font-size:var(--font-size-xl);line-height:1.3;letter-spacing:-.02em}h3{margin-bottom:var(--space-1);font-size:var(--font-size-lg);line-height:1.35;letter-spacing:-.01em}code,pre{font-family:var(--font-mono)}.eyebrow{margin:0 0 var(--space-2);color:var(--color-text-tertiary);font-size:var(--font-size-xs);font-weight:750;letter-spacing:.12em;line-height:1.2}.primary-button,.secondary-button,.danger-button,.refresh-button,.inline-button{display:inline-flex;min-height:var(--control-md);align-items:center;justify-content:center;padding:0 var(--space-4);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-md);font-weight:700;line-height:1;text-decoration:none;transition:background .15s ease,border-color .15s ease,color .15s ease,opacity .15s ease}.primary-button{border:1px solid var(--color-accent);background:var(--color-accent);color:#fff}.primary-button:hover:not(:disabled){border-color:var(--color-accent-hover);background:var(--color-accent-hover)}.secondary-button,.refresh-button{border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text)}.secondary-button:hover:not(:disabled),.refresh-button:hover:not(:disabled){border-color:#9eabb2;background:var(--color-surface-muted)}.danger-button{border:1px solid var(--color-danger);background:var(--color-danger);color:#fff}.danger-button:hover:not(:disabled){border-color:var(--color-danger-hover);background:var(--color-danger-hover)}.primary-button:disabled,.secondary-button:disabled,.danger-button:disabled,.refresh-button:disabled{cursor:progress;opacity:.5}.secondary-button--small{min-height:var(--control-sm);padding:0 var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.primary-button--compact{min-height:36px;padding:0 14px}.text-button,.copy-button{border:0;background:transparent;color:#49636f;cursor:pointer;font:inherit;font-size:var(--font-size-sm);font-weight:680}.text-button{padding:var(--space-1) 0}.text-button:hover:not(:disabled),.copy-button:hover:not(:disabled){color:var(--color-text)}.text-button:disabled,.copy-button:disabled{cursor:progress;opacity:.5}.text-button--danger{color:var(--color-danger)}.copy-button{padding:6px 8px}.icon-button{display:inline-grid;width:var(--control-sm);height:var(--control-sm);place-items:center;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer}.auth-shell{display:grid;min-height:100vh;place-items:center;padding:var(--space-6)}.auth-card{width:min(100%,430px);padding:var(--space-8);border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:0 10px 36px #1822280d}.auth-card--compact{width:min(100%,470px)}.auth-card h1{font-size:30px}.auth-brand{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-8)}.auth-brand>span{display:grid;width:38px;height:38px;place-items:center;border-radius:var(--radius-md);background:var(--color-accent);color:#fff;font-size:var(--font-size-sm);font-weight:800;letter-spacing:.08em}.auth-brand>strong{font-size:var(--font-size-lg)}.auth-copy{margin-bottom:var(--space-6);color:var(--color-text-secondary);font-size:var(--font-size-md);line-height:var(--line-height-relaxed)}.auth-form,.modal-form{display:grid;gap:var(--space-4)}.auth-form label,.modal-form label{display:grid;gap:7px;color:var(--color-text-secondary);font-size:var(--font-size-md);font-weight:650}.auth-form input,.modal-form input{width:100%;min-height:var(--control-lg);padding:9px 11px;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text)}.auth-form input:focus,.modal-form input:focus{border-color:var(--color-focus)}.modal-form small{color:var(--color-text-tertiary);font-weight:500}.form-error,.operation-error{margin:0;color:var(--color-danger);font-size:var(--font-size-md);line-height:var(--line-height-base)}.console-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;z-index:20;display:flex;width:var(--sidebar-width);flex-direction:column;padding:var(--space-5) var(--space-3) var(--space-4);border-right:1px solid var(--color-border);background:var(--color-sidebar)}.sidebar-brand{display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-2) var(--space-6)}.sidebar-brand__mark{display:grid;width:38px;height:38px;flex:none;place-items:center;border-radius:var(--radius-md);background:var(--color-accent);color:#fff;font-size:var(--font-size-sm);font-weight:800;letter-spacing:.08em}.sidebar-brand strong{display:block;font-size:var(--font-size-base)}.sidebar-brand span{display:block;margin-top:2px;color:var(--color-text-tertiary);font-size:10px;letter-spacing:.03em}.sidebar-nav{display:grid;gap:var(--space-1)}.nav-link{display:flex;align-items:center;gap:var(--space-3);padding:10px var(--space-3);border-radius:var(--radius-md);color:var(--color-text-secondary);text-decoration:none;transition:color .15s ease,background .15s ease}.nav-link:hover{background:var(--color-surface-muted);color:var(--color-text)}.nav-link--active{background:var(--color-accent-soft);color:var(--color-accent)}.nav-link__icon{display:grid;width:30px;height:30px;flex:none;place-items:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-tertiary);font-size:10px;font-weight:800;letter-spacing:.04em}.nav-link--active .nav-link__icon{border-color:#c8d5da;color:var(--color-accent)}.nav-link__copy{min-width:0}.nav-link__copy strong{display:block;font-size:var(--font-size-md)}.nav-link__copy small{display:block;margin-top:2px;color:var(--color-text-tertiary);font-size:var(--font-size-xs)}.sidebar-footer{margin-top:auto;padding:var(--space-4) var(--space-3) 0;border-top:1px solid var(--color-divider)}.sidebar-footer span{display:block;color:var(--color-text-tertiary);font-size:var(--font-size-xs)}.sidebar-footer strong{display:block;margin-top:var(--space-1);font-size:var(--font-size-md)}.sidebar--drawer,.drawer-backdrop{display:none}.workspace{min-height:100vh;margin-left:var(--sidebar-width)}.topbar{position:sticky;top:0;z-index:15;display:flex;min-height:var(--topbar-height);align-items:center;justify-content:space-between;gap:var(--space-4);padding:0 var(--space-6);border-bottom:1px solid var(--color-border);background:#ffffffeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar__leading{display:flex;align-items:center;gap:var(--space-3)}.topbar__leading>div{display:grid;gap:1px}.topbar__kicker{color:var(--color-text-tertiary);font-size:9px;font-weight:750;letter-spacing:.12em}.topbar__leading strong{font-size:var(--font-size-base)}.topbar__actions{display:flex;align-items:center;gap:var(--space-3)}.menu-button{display:none;font-size:17px}.workspace-content{width:min(100%,calc(var(--content-max) + var(--space-12)));margin:0 auto;padding:var(--space-8) var(--space-6) var(--space-12)}.content-page{display:grid;gap:var(--space-5)}.content-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-6);padding-bottom:var(--space-2)}.content-header__copy{max-width:760px}.content-header__copy h1{margin-bottom:var(--space-2)}.content-header__copy>p:last-child{margin-bottom:0;color:var(--color-text-secondary);font-size:var(--font-size-md);line-height:var(--line-height-relaxed)}.content-header__actions{display:flex;align-items:center;gap:var(--space-2)}.global-loading,.empty-state,.resource-empty,.database-empty{padding:60px var(--space-5);color:var(--color-text-tertiary);text-align:center}.error-banner{display:flex;gap:var(--space-2) var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--color-danger-border);border-radius:var(--radius-lg);background:var(--color-danger-soft);color:var(--color-danger);font-size:var(--font-size-md)}.summary-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-border)}.summary-strip>div{min-width:0;padding:var(--space-4) var(--space-5);background:var(--color-surface)}.summary-strip__value{display:block;overflow:hidden;margin-bottom:var(--space-1);font-weight:720;text-overflow:ellipsis;white-space:nowrap}.summary-strip__label{color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}.service-card,.detail-panel{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.service-card{padding:var(--space-5)}.service-card__top,.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.status{display:inline-flex;align-items:center;gap:7px;padding:5px 9px;border-radius:999px;background:var(--color-surface-muted);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:650}.status__dot{width:7px;height:7px;border-radius:50%;background:currentColor}.status--good{background:var(--color-success-soft);color:var(--color-success)}.status--warn{background:var(--color-warning-soft);color:var(--color-warning)}.status--bad{background:var(--color-danger-soft);color:var(--color-danger)}.service-card__meta{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);margin:24px 0 var(--space-4)}.service-card__meta dt{margin-bottom:var(--space-1);color:var(--color-text-tertiary);font-size:var(--font-size-xs);text-transform:uppercase}.service-card__meta dd{margin:0;font-size:var(--font-size-base);font-weight:650}.image-name,.backup-path{overflow:hidden;margin-bottom:0;color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap}.panel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.detail-panel{min-width:0;padding:var(--space-6)}.detail-panel--wide{grid-column:1 / -1}.panel-actions{display:flex;align-items:center;gap:var(--space-3)}.version{max-width:280px;overflow:hidden;color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4);margin-top:var(--space-6)}.metric-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{min-width:0}.metric>span{display:block;margin-bottom:6px;color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.metric>strong{display:block;overflow:hidden;color:var(--color-text);font-size:var(--font-size-xl);letter-spacing:-.025em;text-overflow:ellipsis}.metric>small{display:block;margin-top:var(--space-1);color:var(--color-text-tertiary);font-size:var(--font-size-xs)}.backup-path{margin-top:var(--space-5)}.resource-management,.postgres-management{margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--color-divider)}.section-heading,.database-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-5);margin-bottom:var(--space-4)}.section-heading p,.database-section-heading p{margin-bottom:0;color:var(--color-text-tertiary);font-size:var(--font-size-md);line-height:var(--line-height-base)}.form-note,.database-form-note{margin:0 0 var(--space-4);color:var(--color-text-tertiary);font-size:var(--font-size-sm);line-height:var(--line-height-base)}.operation-error{margin:var(--space-3) 0}.operation-notice{margin:var(--space-3) 0;padding:10px 12px;border:1px solid #cce0d3;border-radius:var(--radius-md);background:var(--color-success-soft);color:#32694a;font-size:var(--font-size-md)}.resource-main,.resource-cell{min-width:0}.resource-main strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resource-main small{display:block;margin-top:3px;color:var(--color-text-tertiary);font-size:10px}.resource-cell code{overflow:hidden;display:block;color:var(--color-text-secondary);font-family:var(--font-mono);font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap}.mobile-label{display:none}.muted-label{color:var(--color-text-disabled);font-size:var(--font-size-xs)}.database-table,.redis-user-table,.caddy-route-table{overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.database-row,.redis-user-row,.caddy-route-row{display:grid;align-items:center;gap:var(--space-3);min-height:58px;padding:10px var(--space-4);border-top:1px solid var(--color-divider);font-size:var(--font-size-md)}.database-row:first-child,.redis-user-row:first-child,.caddy-route-row:first-child{border-top:0}.database-row{grid-template-columns:minmax(140px,1.2fr) minmax(115px,.9fr) minmax(80px,.55fr) minmax(85px,.55fr) minmax(330px,2.1fr)}.redis-user-row{grid-template-columns:minmax(140px,.9fr) minmax(180px,1.35fr) minmax(110px,.7fr) minmax(270px,1.5fr)}.caddy-route-row{grid-template-columns:minmax(180px,1.25fr) minmax(170px,1.1fr) minmax(110px,.6fr) minmax(250px,1.3fr)}.database-row--header,.redis-user-row--header,.caddy-route-row--header{min-height:38px;background:var(--color-surface-muted);color:var(--color-text-tertiary);font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase}.database-row__action,.redis-user-row__action,.caddy-route-row__action{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.resource-detail-grid,.database-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3);margin:0}.resource-detail-grid div,.database-detail-grid div{min-width:0;padding:11px;border-radius:var(--radius-md);background:var(--color-surface-muted)}.resource-detail-grid dt,.database-detail-grid dt{margin-bottom:5px;color:var(--color-text-tertiary);font-size:var(--font-size-xs)}.resource-detail-grid dd,.database-detail-grid dd{overflow:hidden;margin:0;color:var(--color-text);font-size:var(--font-size-md);font-weight:650;text-overflow:ellipsis;white-space:nowrap}.resource-detail-grid code,.database-detail-grid code{font-family:var(--font-mono);font-size:var(--font-size-sm)}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:var(--space-6);background:var(--color-overlay)}.resource-modal{width:min(100%,560px);max-height:min(86vh,760px);overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface-raised);box-shadow:var(--shadow-modal)}.resource-modal--wide{width:min(100%,780px)}.resource-modal--danger{border-color:var(--color-danger-border)}.resource-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-5);padding:var(--space-5) var(--space-5) var(--space-4);border-bottom:1px solid var(--color-divider)}.resource-modal__header h2{font-size:var(--font-size-xl)}.resource-modal__description{max-width:560px;margin:7px 0 0;color:var(--color-text-secondary);font-size:var(--font-size-md);line-height:1.55}.resource-modal--danger .eyebrow,.resource-modal--danger h2{color:var(--color-danger)}.resource-modal__body{overflow-y:auto;max-height:calc(86vh - 100px);padding:var(--space-5);overscroll-behavior:contain}.modal-close{border:0;background:var(--color-surface-muted);font-size:20px;line-height:1}.modal-form__actions{display:flex;justify-content:flex-end;gap:var(--space-2);padding-top:var(--space-1)}.confirm-dialog{display:grid;gap:var(--space-5)}.confirm-dialog__content{color:var(--color-text-secondary);font-size:var(--font-size-md)}.confirm-warning{margin:0;padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-warning-soft);color:#7d5a18;line-height:var(--line-height-base)}.confirm-facts{display:grid;grid-template-columns:auto 1fr;gap:var(--space-2) var(--space-4);align-items:center}.confirm-facts span{color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.confirm-facts strong{font-size:var(--font-size-md)}.danger-callout{padding:var(--space-3);border:1px solid var(--color-danger-border);border-radius:var(--radius-md);background:var(--color-danger-soft)}.danger-callout strong{display:block;margin-bottom:var(--space-1);color:var(--color-danger)}.danger-callout p{margin:0;color:#82504b;font-size:var(--font-size-md);line-height:var(--line-height-base)}.credential-field{display:grid;gap:5px;margin-top:var(--space-3)}.credential-field:first-child{margin-top:0}.credential-field>span{color:var(--color-text-tertiary);font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase}.credential-field>code,.credential-value{min-width:0;padding:9px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted)}.credential-field>code,.credential-value code{overflow-wrap:anywhere;color:#314047;font-family:var(--font-mono);font-size:var(--font-size-sm)}.credential-value{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.credential-value code{min-width:0}.credential-actions{display:flex;align-items:center;gap:2px}.credential-note{margin:var(--space-3) 0 0;color:var(--color-text-tertiary);font-size:var(--font-size-sm);line-height:var(--line-height-base)}.backup-management{margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--color-divider)}.backup-summary{display:flex;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-3);color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.backup-list{display:grid;gap:9px}.backup-snapshot{overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.backup-snapshot summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);padding:13px var(--space-4);cursor:pointer;list-style-position:inside}.backup-snapshot summary>span:first-child{display:inline-flex;align-items:center;gap:10px}.backup-snapshot summary strong{font-family:var(--font-mono);font-size:var(--font-size-sm)}.backup-snapshot summary small,.backup-snapshot summary>span:last-child{color:var(--color-text-tertiary);font-size:var(--font-size-xs)}.backup-databases{border-top:1px solid var(--color-divider)}.backup-database-row{display:grid;grid-template-columns:minmax(180px,1fr) 110px 120px;align-items:center;gap:var(--space-3);min-height:44px;padding:var(--space-2) var(--space-4);border-top:1px solid var(--color-divider);font-size:var(--font-size-sm)}.backup-database-row:first-child{border-top:0}.backup-database-row code{overflow:hidden;font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap}.restore-card{margin:var(--space-4) 0;padding:var(--space-4);border:1px solid #e5d8b8;border-radius:var(--radius-lg);background:#fffaf0}.restore-card__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.restore-card__heading strong{display:block;margin-bottom:3px}.restore-card__heading p{margin-bottom:0;color:#887956;font-size:var(--font-size-sm)}.database-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:10px;margin:var(--space-4) 0 var(--space-2);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-muted)}.database-form label{display:grid;gap:6px;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:650}.database-form input{width:100%;min-height:42px;padding:8px 10px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text)}.database-form--restore{grid-template-columns:repeat(3,minmax(0,1fr)) auto;margin-bottom:0;background:#ffffffa6}.host-metric-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-3);margin-top:var(--space-6)}.operations-section{margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--color-divider)}.operation-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:var(--space-3)}.operation-service-card{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-muted)}.operation-service-card>div:first-child{min-width:0;display:grid;gap:var(--space-1)}.operation-service-card small{color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.operation-service-actions{display:flex;gap:var(--space-2);flex-shrink:0}.audit-list{display:grid;gap:var(--space-2);margin-top:var(--space-3)}.audit-row{display:grid;grid-template-columns:minmax(160px,.8fr) minmax(0,2fr) auto;gap:var(--space-3);align-items:center;padding:11px var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md)}.audit-row>div{display:grid;gap:3px}.audit-row small,.audit-row time{color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.audit-row code{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-sm)}.service-log-viewer{margin:0;max-height:min(62vh,640px);overflow:auto;padding:var(--space-4);border-radius:var(--radius-md);background:#11171b;color:#e8ecee;font:12px/1.55 var(--font-mono);white-space:pre-wrap;word-break:break-word}@media(max-width:1080px){.database-row{grid-template-columns:minmax(130px,1.1fr) minmax(105px,.8fr) 70px 80px minmax(280px,1.8fr)}.host-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.operation-service-grid{grid-template-columns:1fr}}@media(max-width:900px){.sidebar:not(.sidebar--drawer){display:none}.workspace{margin-left:0}.menu-button{display:inline-grid}.drawer-backdrop{position:fixed;inset:0;z-index:29;display:block;width:100%;height:100%;padding:0;border:0;background:var(--color-overlay)}.sidebar--drawer{z-index:30;display:flex;transform:translate(-105%);box-shadow:var(--shadow-sidebar);transition:transform .18s ease}.sidebar--drawer-open{transform:translate(0)}.workspace-content{padding:var(--space-6) var(--space-4) var(--space-10)}.service-grid,.panel-grid{grid-template-columns:1fr}.resource-detail-grid,.database-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.database-form--restore{grid-template-columns:1fr 1fr}.database-form--restore .primary-button{grid-column:1 / -1}}@media(max-width:820px){.topbar{padding:0 var(--space-4)}.topbar__actions .text-button{display:none}.content-header{flex-direction:column;gap:var(--space-3)}.summary-strip{grid-template-columns:1fr}.database-table,.redis-user-table,.caddy-route-table{overflow:visible;border:0;border-radius:0;background:transparent}.database-row--header,.redis-user-row--header,.caddy-route-row--header{display:none}.database-row,.redis-user-row,.caddy-route-row{min-width:0;grid-template-columns:1fr 1fr;gap:var(--space-3) var(--space-4);margin-top:10px;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.database-row:first-child,.redis-user-row:first-child,.caddy-route-row:first-child{border-top:1px solid var(--color-border)}.resource-main{grid-column:1 / -1;padding-bottom:var(--space-2);border-bottom:1px solid var(--color-divider)}.resource-main strong{font-size:var(--font-size-lg)}.resource-cell{display:grid;gap:var(--space-1)}.mobile-label{display:block;color:var(--color-text-tertiary);font-size:10px;font-weight:700;text-transform:uppercase}.database-row__action,.redis-user-row__action,.caddy-route-row__action{grid-column:1 / -1;justify-content:flex-start;padding-top:var(--space-1);border-top:1px solid var(--color-divider)}.resource-cell code{white-space:normal;word-break:break-all}}@media(max-width:620px){:root{--topbar-height: 58px}.workspace-content{padding:var(--space-5) 10px var(--space-8)}.topbar__kicker{display:none}.topbar__actions{gap:var(--space-2)}.topbar__actions .secondary-button{min-height:34px}.content-page{gap:var(--space-4)}.content-header h1{font-size:26px}.detail-panel,.service-card{padding:var(--space-4);border-radius:var(--radius-lg)}.panel-heading{align-items:flex-start;flex-direction:column;gap:var(--space-2)}.panel-actions{width:100%;justify-content:space-between}.version{max-width:65%}.metric-grid,.metric-grid--two,.host-metric-grid{grid-template-columns:1fr 1fr;gap:var(--space-2)}.metric>strong{font-size:17px}.section-heading,.database-section-heading{align-items:stretch;flex-direction:column}.section-heading .primary-button,.database-section-heading .primary-button{width:100%}.database-row,.redis-user-row,.caddy-route-row{grid-template-columns:1fr}.resource-main,.resource-cell,.database-row__action,.redis-user-row__action,.caddy-route-row__action{grid-column:1}.database-row__action>*,.redis-user-row__action>*,.caddy-route-row__action>*{flex:1 1 auto;text-align:center}.resource-modal{width:100%;max-height:calc(100dvh - 24px);border-radius:14px}.resource-modal__header{padding:18px 18px 14px}.resource-modal__body{max-height:calc(100dvh - 104px);padding:17px 18px 20px}.modal-backdrop{align-items:end;padding:var(--space-3)}.modal-form__actions{display:grid;grid-template-columns:1fr 1fr}.modal-form__actions button{width:100%}.resource-detail-grid,.database-detail-grid{grid-template-columns:1fr}.credential-value{align-items:flex-start;flex-direction:column}.credential-actions{width:100%;justify-content:flex-end}.backup-snapshot summary{align-items:flex-start;flex-direction:column;gap:6px}.backup-database-row{grid-template-columns:minmax(120px,1fr) 72px 96px;padding-inline:10px}.database-form,.database-form--restore{grid-template-columns:1fr}.database-form .primary-button,.database-form--restore .primary-button{grid-column:auto}.operation-service-card{align-items:flex-start;flex-direction:column}.operation-service-actions{width:100%}.operation-service-actions button{flex:1}.audit-row{grid-template-columns:1fr;gap:6px}.audit-row code{white-space:normal;word-break:break-word}.confirm-facts{grid-template-columns:1fr;gap:var(--space-1)}.confirm-facts strong{margin-bottom:var(--space-2)}}.icon-button{display:inline-flex;width:var(--icon-button-size);min-width:var(--icon-button-size);height:var(--icon-button-size);min-height:var(--icon-button-size);align-items:center;justify-content:center;padding:0;transition:background .15s ease,border-color .15s ease,color .15s ease}.icon-button:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-accent-soft);color:var(--color-text)}.icon-button svg{display:block;width:16px;height:16px;flex:none}.nav-link__icon svg{display:block;width:18px;height:18px;flex:none}.nav-link__icon{display:inline-flex;align-items:center;justify-content:center;letter-spacing:0}.modal-header-actions{display:flex;flex:none;align-items:center;gap:var(--space-2)}.modal-expand,.modal-close{flex:none}.resource-modal--extra-wide{width:min(96vw,1180px);max-height:min(92vh,900px)}.resource-modal--extra-wide .resource-modal__body{max-height:calc(92vh - 104px)}.resource-modal--fullscreen{display:flex;width:calc(100vw - 24px);height:calc(100dvh - 24px);max-height:none;flex-direction:column;border-radius:var(--radius-lg)}.resource-modal--fullscreen .resource-modal__header{flex:none}.resource-modal--fullscreen .resource-modal__body{display:flex;min-height:0;max-height:none;flex:1;flex-direction:column}.database-row__action button,.redis-user-row__action button,.caddy-route-row__action button{display:inline-flex;min-height:var(--control-sm);align-items:center;justify-content:center;padding:0 10px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:680;line-height:1;white-space:nowrap}.database-row__action button:hover:not(:disabled),.redis-user-row__action button:hover:not(:disabled),.caddy-route-row__action button:hover:not(:disabled){border-color:var(--color-border);background:var(--color-accent-soft);color:var(--color-text)}.database-row__action .text-button--danger,.redis-user-row__action .text-button--danger,.caddy-route-row__action .text-button--danger{color:var(--color-danger)}.database-row__action .text-button--danger:hover:not(:disabled),.redis-user-row__action .text-button--danger:hover:not(:disabled),.caddy-route-row__action .text-button--danger:hover:not(:disabled){border-color:var(--color-danger-border);background:var(--color-danger-soft);color:var(--color-danger-hover)}.muted-label{display:inline-flex;min-height:26px;align-items:center;justify-content:center;padding:0 9px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-muted);color:var(--color-text-tertiary);font-size:var(--font-size-xs);font-weight:650;line-height:1;white-space:nowrap}.credential-field>code,.credential-value{min-height:var(--control-lg);padding:0 11px}.credential-field>code{display:flex;align-items:center}.credential-value{flex-wrap:nowrap}.credential-value code{min-width:0;overflow-x:auto;overflow-y:hidden;overflow-wrap:normal;white-space:nowrap;scrollbar-width:thin}.credential-actions{width:auto;flex:none}.copy-button{display:inline-flex;min-height:30px;flex:none;align-items:center;justify-content:center;white-space:nowrap}.auth-form input,.modal-form input,.database-form input{min-height:var(--control-lg);height:var(--control-lg)}.database-form .primary-button,.database-form--restore .primary-button{min-height:var(--control-lg)}.service-log-viewer{width:100%;max-height:min(72vh,760px);overflow:auto;padding:10px;border-radius:var(--radius-md);background:var(--color-log-background);color:var(--color-log-text);font:12px/1.65 var(--font-mono);white-space:normal;word-break:normal}.service-log-line+.service-log-line{margin-top:2px}.resource-modal--fullscreen .service-log-viewer{min-height:0;max-height:none;flex:1}html,body,#root,.console-shell,.workspace,.workspace-content,.content-page,.summary-strip,.service-grid,.panel-grid,.service-card,.detail-panel{min-width:0;max-width:100%}body{overflow-x:clip}.summary-strip>div,.service-card__top>div,.panel-heading>div,.metric,.topbar__leading,.topbar__actions{min-width:0}.metric>strong{max-width:100%;overflow-wrap:anywhere;word-break:break-word}@media(max-width:620px){.credential-value{align-items:center;flex-direction:row}.credential-actions{width:auto}.database-row__action>.muted-label,.redis-user-row__action>.muted-label,.caddy-route-row__action>.muted-label{flex:0 0 auto}.resource-modal--extra-wide,.resource-modal--fullscreen{width:100%}.resource-modal--fullscreen{height:calc(100dvh - 24px)}.summary-strip__value,.image-name,.backup-path{max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.service-card__top{min-width:0}.service-card__top .status{flex:none}}.ui-control{width:100%;min-height:40px;padding:0 11px;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);outline:none;background:var(--color-surface);color:var(--color-text);font:inherit;font-size:var(--font-size-md);transition:border-color .15s ease,background .15s ease,box-shadow .15s ease,color .15s ease;appearance:none}.ui-control:hover:not(:disabled){border-color:#9eabb2}.ui-control:focus-visible,.ui-control:focus-within{border-color:var(--color-focus);box-shadow:0 0 0 2px #4865711f}.ui-control:disabled{cursor:not-allowed;opacity:.5}.ui-control--compact{min-height:32px;height:32px;padding-inline:9px;border-radius:var(--radius-sm);font-size:12px}.ui-control--dark{border-color:#34434c;background:#0f1519;color:#e4eaed}.ui-control--dark:hover:not(:disabled){border-color:#52636d}.ui-control--dark:focus-visible,.ui-control--dark:focus-within{border-color:#647985;box-shadow:0 0 0 2px #6f889629}.ui-control::placeholder,.ui-control-placeholder{color:var(--color-text-tertiary)}.ui-control--dark::placeholder,.ui-control--dark .ui-control-placeholder{color:#71828b}.ui-control[type=search]::-webkit-search-decoration,.ui-control[type=search]::-webkit-search-cancel-button,.ui-control[type=search]::-webkit-search-results-button,.ui-control[type=search]::-webkit-search-results-decoration{appearance:none}.ui-select-root{position:relative;min-width:0}.ui-select-trigger,.ui-picker-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;cursor:pointer}.ui-select-trigger>span,.ui-picker-trigger>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-select-trigger>svg,.ui-picker-trigger>svg{width:15px;height:15px;flex:none;color:currentColor;opacity:.68}.ui-popover{position:fixed;z-index:1200;overflow:hidden;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);box-shadow:0 14px 40px #18222829}.ui-popover--dark{border-color:#34434c;background:#151d22;color:#e4eaed;box-shadow:0 16px 42px #00000061}.ui-select-menu{max-height:min(300px,calc(100dvh - 24px));overflow-y:auto;padding:5px}.ui-select-option{display:flex;width:100%;min-height:34px;align-items:center;justify-content:space-between;gap:10px;padding:6px 9px;border:0;border-radius:7px;outline:none;background:transparent;color:inherit;font:inherit;font-size:12px;text-align:left;cursor:pointer}.ui-select-option:hover:not(:disabled),.ui-select-option:focus-visible{background:var(--color-surface-muted)}.ui-popover--dark .ui-select-option:hover:not(:disabled),.ui-popover--dark .ui-select-option:focus-visible{background:#253139}.ui-select-option[data-selected=true]{color:var(--color-accent);font-weight:700}.ui-popover--dark .ui-select-option[data-selected=true]{color:#d7e6ed}.ui-select-option:disabled{cursor:not-allowed;opacity:.4}.ui-select-option svg{width:14px;height:14px;flex:none}.ui-number-control{display:grid;grid-template-columns:32px minmax(40px,1fr) 32px;align-items:center;padding:0;overflow:hidden}.ui-number-control>button{display:grid;width:32px;height:100%;min-height:30px;place-items:center;padding:0;border:0;background:transparent;color:var(--color-text-secondary);cursor:pointer}.ui-number-control>button:hover:not(:disabled){background:var(--color-surface-muted);color:var(--color-text)}.ui-control--dark.ui-number-control>button{color:#87969e}.ui-control--dark.ui-number-control>button:hover:not(:disabled){background:#253139;color:#eef3f5}.ui-number-control>button:disabled{cursor:not-allowed;opacity:.35}.ui-number-control>button svg{width:14px;height:14px}.ui-number-control>input{min-width:0;width:100%;height:100%;padding:0 4px;border:0;outline:0;background:transparent;color:inherit;font:inherit;text-align:center;appearance:none}.ui-switch{position:relative;display:inline-flex;width:38px;height:22px;flex:none;align-items:center;padding:2px;border:0;border-radius:999px;background:#c8d0d4;cursor:pointer;transition:background .16s ease}.ui-switch:hover:not(:disabled){background:#b6c0c5}.ui-switch.is-checked{background:var(--color-accent)}.ui-switch.is-checked:hover:not(:disabled){background:var(--color-accent-hover)}.ui-switch__thumb{width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000029;transform:translate(0);transition:transform .16s ease}.ui-switch.is-checked .ui-switch__thumb{transform:translate(16px)}.ui-time-popover,.ui-datetime-popover{padding:12px}.ui-time-editor,.ui-datetime-time-row{display:flex;align-items:center;gap:8px}.ui-time-editor>.ui-number-control{width:82px}.ui-time-editor>span,.ui-datetime-time-row>span{color:var(--color-text-secondary);font-weight:700}.ui-popover--dark .ui-time-editor>span,.ui-popover--dark .ui-datetime-time-row>span{color:#87969e}.ui-popover-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:12px}.ui-popover-actions--spread{justify-content:space-between}.ui-popover-actions--spread>div{display:flex;align-items:center;gap:6px}.ui-quiet-button,.ui-primary-action{min-height:30px;padding:0 10px;border:0;border-radius:7px;font:inherit;font-size:12px;font-weight:650;cursor:pointer}.ui-quiet-button{background:transparent;color:var(--color-text-secondary)}.ui-quiet-button:hover{background:var(--color-surface-muted);color:var(--color-text)}.ui-primary-action{background:var(--color-accent);color:#fff}.ui-primary-action:hover{background:var(--color-accent-hover)}.ui-popover--dark .ui-quiet-button{color:#9eacb3}.ui-popover--dark .ui-quiet-button:hover{background:#253139;color:#eef3f5}.ui-popover--dark .ui-primary-action{background:#dbe5e9;color:#172027}.ui-popover--dark .ui-primary-action:hover{background:#eef3f5}.ui-calendar-header{display:grid;grid-template-columns:30px 1fr 30px;align-items:center;gap:6px;margin-bottom:8px}.ui-calendar-header strong{font-size:13px;text-align:center}.ui-calendar-header button{display:grid;width:30px;height:30px;place-items:center;padding:0;border:0;border-radius:7px;background:transparent;color:var(--color-text-secondary);cursor:pointer}.ui-calendar-header button:hover{background:var(--color-surface-muted);color:var(--color-text)}.ui-popover--dark .ui-calendar-header button{color:#9eacb3}.ui-popover--dark .ui-calendar-header button:hover{background:#253139;color:#eef3f5}.ui-calendar-header svg{width:15px;height:15px}.ui-calendar-weekdays,.ui-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.ui-calendar-weekdays{margin-bottom:3px}.ui-calendar-weekdays span{display:grid;height:24px;place-items:center;color:var(--color-text-tertiary);font-size:10px}.ui-popover--dark .ui-calendar-weekdays span{color:#71828b}.ui-calendar-grid button{display:grid;min-width:0;height:32px;place-items:center;padding:0;border:0;border-radius:7px;background:transparent;color:inherit;font:inherit;font-size:12px;cursor:pointer}.ui-calendar-grid button:hover{background:var(--color-surface-muted)}.ui-calendar-grid button.is-outside{color:var(--color-text-tertiary);opacity:.55}.ui-calendar-grid button.is-today:not(.is-selected){box-shadow:inset 0 0 0 1px var(--color-border-strong)}.ui-calendar-grid button.is-selected{background:var(--color-accent);color:#fff;font-weight:700}.ui-popover--dark .ui-calendar-grid button:hover{background:#253139}.ui-popover--dark .ui-calendar-grid button.is-outside{color:#65757d}.ui-popover--dark .ui-calendar-grid button.is-today:not(.is-selected){box-shadow:inset 0 0 0 1px #52636d}.ui-popover--dark .ui-calendar-grid button.is-selected{background:#dbe5e9;color:#172027}.ui-datetime-time-row{margin-top:10px;padding-top:10px;border-top:1px solid var(--color-divider)}.ui-popover--dark .ui-datetime-time-row{border-top-color:#29353c}.ui-datetime-time-row>svg{width:15px;height:15px;flex:none;color:var(--color-text-tertiary)}.ui-popover--dark .ui-datetime-time-row>svg{color:#71828b}.ui-datetime-time-row>.ui-number-control{width:82px}@media(max-width:620px){.ui-popover{max-width:calc(100vw - 16px)}}.dtc-time-popover,.dtc-datetime-popover{padding:12px}.dtc-time-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dtc-time-column{min-width:0}.dtc-time-column__label{display:block;margin-bottom:6px;color:var(--color-text-tertiary);font-size:10px;font-weight:700;text-align:center}.ui-popover--dark .dtc-time-column__label{color:#71828b}.dtc-time-wheel{position:relative;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted)}.ui-popover--dark .dtc-time-wheel{border-color:#34434c;background:#0f1519}.dtc-time-wheel__viewport{position:relative;z-index:1;height:170px;overflow-y:auto;overscroll-behavior:contain;scroll-snap-type:y mandatory;scrollbar-width:thin;scrollbar-color:rgba(112,128,137,.45) transparent}.dtc-time-wheel__viewport:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.ui-popover--dark .dtc-time-wheel__viewport:focus-visible{outline-color:#647985}.dtc-time-wheel__items{display:grid}.dtc-time-option{display:grid;width:100%;place-items:center;padding:0;border:0;outline:none;background:transparent;color:var(--color-text-secondary);font:600 13px/1 var(--font-mono);cursor:pointer;scroll-snap-align:center;transition:color .12s ease,background .12s ease}.dtc-time-option:hover,.dtc-time-option:focus-visible{background:#48657112;color:var(--color-text)}.dtc-time-option.is-selected{color:var(--color-text);font-weight:750}.ui-popover--dark .dtc-time-option{color:#87969e}.ui-popover--dark .dtc-time-option:hover,.ui-popover--dark .dtc-time-option:focus-visible{background:#1c272d;color:#eef3f5}.ui-popover--dark .dtc-time-option.is-selected{color:#eef3f5}.dtc-time-wheel__selection{position:absolute;z-index:0;top:50%;left:5px;right:5px;height:34px;transform:translateY(-50%);border-radius:7px;background:var(--color-surface);box-shadow:inset 0 0 0 1px var(--color-border);pointer-events:none}.ui-popover--dark .dtc-time-wheel__selection{background:#202b31;box-shadow:inset 0 0 0 1px #34434c}.dtc-time-wheel:before,.dtc-time-wheel:after{position:absolute;z-index:2;left:0;right:0;height:36px;content:"";pointer-events:none}.dtc-time-wheel:before{top:0;background:linear-gradient(to bottom,var(--color-surface-muted),transparent)}.dtc-time-wheel:after{bottom:0;background:linear-gradient(to top,var(--color-surface-muted),transparent)}.ui-popover--dark .dtc-time-wheel:before{background:linear-gradient(to bottom,#0f1519,transparent)}.ui-popover--dark .dtc-time-wheel:after{background:linear-gradient(to top,#0f1519,transparent)}.dtc-datetime-popover{padding:0}.dtc-datetime-body{display:grid;grid-template-columns:minmax(0,1fr) 174px;gap:12px;padding:12px}.dtc-calendar{min-width:0}.dtc-calendar .ui-calendar-header{margin-bottom:7px}.dtc-calendar .ui-calendar-grid button{height:34px;border-radius:8px}.dtc-datetime-time{min-width:0;padding-left:12px;border-left:1px solid var(--color-divider)}.ui-popover--dark .dtc-datetime-time{border-left-color:#29353c}.dtc-datetime-time__heading{display:flex;height:30px;align-items:center;gap:7px;margin-bottom:5px;color:var(--color-text-secondary);font-size:12px;font-weight:650}.dtc-datetime-time__heading svg{width:14px;height:14px}.ui-popover--dark .dtc-datetime-time__heading{color:#9eacb3}.dtc-datetime-time .dtc-time-wheel__viewport{height:170px}.dtc-datetime-actions{margin-top:0;padding:10px 12px;border-top:1px solid var(--color-divider)}.ui-popover--dark .dtc-datetime-actions{border-top-color:#29353c}@media(max-width:620px){.dtc-datetime-popover{width:calc(100vw - 16px)!important}.dtc-datetime-body{grid-template-columns:1fr}.dtc-datetime-time{padding-top:10px;padding-left:0;border-top:1px solid var(--color-divider);border-left:0}.ui-popover--dark .dtc-datetime-time{border-top-color:#29353c;border-left:0}.dtc-datetime-time .dtc-time-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.dtc-time-wheel__viewport,.dtc-datetime-time .dtc-time-wheel__viewport{height:136px}}.backup-heading-actions{display:flex;align-items:center;gap:var(--space-2)}.backup-heading-actions .secondary-button{gap:7px}.backup-heading-actions .secondary-button svg{width:14px;height:14px;flex:none}.backup-policy-form{display:grid;min-height:0;gap:var(--space-5)}.backup-policy-switch-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted)}.backup-policy-switch-row strong{display:block;margin-bottom:4px;font-size:14px}.backup-policy-switch-row p{margin:0;color:var(--color-text-secondary);font-size:12px;line-height:1.6}.backup-policy-switch-control{display:flex;flex:none;align-items:center;gap:10px;color:var(--color-text-secondary);font-size:12px}.backup-policy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.backup-policy-grid .ui-field{display:grid;gap:7px;min-width:0;color:var(--color-text-secondary);font-size:var(--font-size-md);font-weight:650}.backup-policy-grid .ui-field>span:first-child{color:var(--color-text-secondary);font-size:12px;font-weight:650}.backup-retention-control{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}.backup-retention-control>span{color:var(--color-text-secondary);font-size:12px;font-weight:500}.backup-policy-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted)}.backup-policy-status>span{display:grid;gap:4px;min-width:0;color:var(--color-text-secondary);font-size:11px}.backup-policy-status>span strong{overflow:hidden;color:var(--color-text);font-size:12px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.backup-policy-footer{position:sticky;bottom:0;z-index:3;display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);margin:0 -4px -4px;padding:var(--space-4) 4px calc(4px + env(safe-area-inset-bottom));border-top:1px solid var(--color-divider);background:linear-gradient(to bottom,rgba(255,255,255,.94),var(--color-surface-raised) 28%)}.backup-policy-footer .primary-button,.backup-policy-footer .secondary-button{min-width:92px}.restore-modal-form{display:grid;gap:var(--space-5)}.restore-modal-context{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px var(--space-4);align-items:center;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted)}.restore-modal-context>span{color:var(--color-text-tertiary);font-size:var(--font-size-xs);font-weight:650}.restore-modal-context>code{min-width:0;overflow-wrap:anywhere;color:var(--color-text);font-family:var(--font-mono);font-size:var(--font-size-sm)}.restore-modal-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.restore-modal-fields label{display:grid;gap:7px;min-width:0}.restore-modal-fields label>span{color:var(--color-text-secondary);font-size:12px;font-weight:650}.restore-modal-confirmation{grid-column:1 / -1}@media(max-width:620px){.backup-heading-actions{width:100%;flex-wrap:wrap}.backup-heading-actions .secondary-button{flex:1 1 auto}.backup-policy-switch-row{align-items:flex-start}.backup-policy-grid,.backup-policy-status,.restore-modal-fields{grid-template-columns:1fr}.restore-modal-confirmation{grid-column:auto}.backup-policy-footer{gap:var(--space-2)}.backup-policy-footer .primary-button,.backup-policy-footer .secondary-button{flex:1 1 0}}.log-overlay{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:16px;background:#0a0f1294}.log-overlay--fullscreen{padding:0}.log-dialog{width:min(96vw,1180px);height:min(82dvh,820px);min-height:520px;overflow:hidden;border:1px solid #253139;border-radius:var(--radius-lg);background:#11171b;box-shadow:0 22px 70px #0000006b;outline:none}.log-dialog--fullscreen{width:100vw;height:100dvh;min-height:0;border:0;border-radius:0;box-shadow:none}.log-viewer-shell{position:relative;display:flex;width:100%;height:100%;min-height:0;flex-direction:column;overflow:hidden;background:#11171b;color:#d8e0e4}.log-viewer-toolbar{position:relative;z-index:2;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding:var(--space-3);border-bottom:1px solid #29353c;background:#151d22}.log-toolbar-service{display:inline-flex;min-width:0;height:32px;align-items:center;gap:8px;padding:0 4px;color:#dbe4e8;font-size:12px;white-space:nowrap}.log-toolbar-service__dot{width:7px;height:7px;flex:none;border-radius:50%;background:#74b98c;box-shadow:0 0 0 3px #74b98c1a}.log-toolbar-service strong{overflow:hidden;text-overflow:ellipsis}.log-toolbar-group{display:flex;min-width:0;align-items:center;gap:var(--space-2)}.log-toolbar-group--filters{flex:1 1 480px;min-width:260px}.log-toolbar-group--filters>.ui-select-root{flex:0 0 150px}.log-range-control{width:100%}.log-datetime-control{width:148px;flex:0 0 148px}.log-search{min-width:150px;flex:1 1 180px}.log-level-filter{flex:0 1 auto;flex-wrap:wrap}.log-level-chip{height:28px;padding:0 8px;border:0;border-radius:6px;background:transparent;color:#87969e;font:inherit;font-size:11px;text-transform:capitalize;cursor:pointer}.log-level-chip:hover,.log-level-chip.is-active{background:#253139;color:#eef3f5}.log-level-chip--fatal.is-active,.log-level-chip--error.is-active{color:#ff9c96}.log-level-chip--warn.is-active{color:#f3c97a}.log-level-chip--info.is-active{color:#9fd3ff}.log-toolbar-actions{margin-left:auto}.log-icon-button{display:inline-grid;width:var(--icon-button-size);min-width:var(--icon-button-size);height:var(--icon-button-size);min-height:var(--icon-button-size);place-items:center;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:#9eacb3;line-height:1}.log-icon-button svg{display:block;width:16px;height:16px;flex:none}.log-icon-button:hover:not(:disabled),.log-icon-button.is-active{background:#28353d;color:#f4f7f8}.log-icon-button:disabled{opacity:.45}.log-icon-button.is-active:first-child{color:#9fdeb2}.log-close-button:hover:not(:disabled){background:#38282a;color:#ffb3ad}.is-spinning{animation:log-spin .8s linear infinite}@keyframes log-spin{to{transform:rotate(360deg)}}.log-viewer-statusbar{display:flex;justify-content:space-between;gap:var(--space-3);padding:7px var(--space-3);border-bottom:1px solid #222c32;background:#12191d;color:#72828a;font-size:11px}.log-viewer-message{padding:7px var(--space-3);border-bottom:1px solid #253139;background:#172027;color:#a8b7bf;font-size:12px}.log-viewer-message--error{background:#2a1b1b;color:#ffaba5}.log-viewer-viewport{flex:1 1 auto;min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;padding:var(--space-2) 0 var(--space-4);scrollbar-gutter:stable;font-family:var(--font-mono);font-size:12px;line-height:1.55}.service-log-line{display:grid;min-width:0;grid-template-columns:132px 52px minmax(0,1fr);gap:10px;padding:3px var(--space-3);border-left:2px solid transparent;color:#c9d2d6}.service-log-line:hover{background:#ffffff06}.service-log-line time{color:#71828b;white-space:nowrap}.service-log-level{color:#819199;text-transform:uppercase;font-size:10px;font-weight:700;line-height:18px}.service-log-message{min-width:0;white-space:pre-wrap;overflow-wrap:anywhere}.service-log-line--fatal,.service-log-line--error{border-left-color:#a94e48;background:#77302b2e;color:#ff9f99}.service-log-line--warn{border-left-color:#9f7a34;background:#6f531f21;color:#e8c67d}.service-log-line--info .service-log-level{color:#7bb8df}.service-log-line--debug{color:#88979e}.service-log-empty{display:grid;min-height:220px;place-items:center;color:#75858d}.log-new-entries{position:absolute;left:50%;bottom:var(--space-4);z-index:3;display:inline-flex;align-items:center;gap:6px;transform:translate(-50%);height:32px;padding:0 12px;border:1px solid #41515a;border-radius:999px;background:#243037f5;color:#eef3f5;font:inherit;font-size:12px;cursor:pointer;box-shadow:0 8px 24px #00000047}.log-new-entries svg{width:14px;height:14px}@media(max-width:900px){.log-dialog{width:calc(100vw - 20px);height:calc(100dvh - 20px);min-height:0}.log-toolbar-service{flex:0 0 auto}.log-toolbar-group--filters{order:2;width:100%;flex-basis:100%}.log-level-filter{order:3;flex:1 1 auto}.log-toolbar-actions{order:1}}@media(max-width:620px){.log-overlay{padding:0}.log-dialog,.log-dialog--fullscreen{width:100vw;height:100dvh;min-height:0;border:0;border-radius:0}.log-viewer-toolbar{gap:6px;padding:8px}.log-toolbar-service{max-width:112px;padding-left:2px}.log-toolbar-actions{margin-left:auto;gap:2px}.log-toolbar-group--filters{min-width:0;gap:6px}.log-toolbar-group--filters>.ui-select-root,.log-datetime-control,.log-search{width:auto;min-width:0;flex:1 1 132px}.log-level-filter{width:100%;gap:2px}.log-level-chip{flex:1 1 auto;min-width:38px;padding-inline:5px}.log-viewer-statusbar{display:none}.service-log-line{grid-template-columns:90px 42px minmax(0,1fr);gap:6px;padding-inline:8px}.service-log-line time{overflow:hidden;text-overflow:ellipsis}}
