:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#e8ebf4;background:#080b14;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 15% 0%,#17223e 0,transparent 28rem),#080b14}button,input,select{font:inherit}button,.button-link{border:1px solid #313a52;border-radius:9px;background:#171d2c;color:#eef1f9;padding:10px 15px;cursor:pointer;font-weight:650;transition:.15s ease;text-decoration:none;white-space:nowrap}button:hover:not(:disabled),.button-link:hover{border-color:#62719a;transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.42}button.primary{border-color:#5d6fff;background:#5d6fff;color:#fff}button.secondary{background:#202944}button.ghost{background:transparent}.migration-select{position:relative;min-width:130px}.migration-select-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:41px;gap:13px;border-color:#6979ff;background:linear-gradient(180deg,#6879ff,#5869f4);box-shadow:0 7px 18px #4658e033,inset 0 1px #ffffff21;color:#fff}.migration-select-trigger:hover:not(:disabled){border-color:#8491ff;box-shadow:0 9px 22px #4658e04d,inset 0 1px #ffffff29}.migration-select-trigger:focus-visible{outline:none;border-color:#a4adff;box-shadow:0 0 0 3px #6475ff38,0 9px 22px #4658e04d}.migration-select-trigger svg{width:17px;height:17px;flex:0 0 17px;transition:transform .15s ease}.migration-select-trigger path{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.migration-select.is-open .migration-select-trigger{border-color:#8e9aff;box-shadow:0 0 0 3px #6475ff2e,0 9px 22px #4658e042;transform:none}.migration-select.is-open .migration-select-trigger svg{transform:rotate(180deg)}.migration-select-menu{position:absolute;z-index:10;top:calc(100% + 8px);right:0;display:grid;width:100%;min-width:130px;gap:4px;padding:6px;border:1px solid #343e57;border-radius:12px;background:#151b2a;box-shadow:0 18px 42px #0000006b,inset 0 1px #ffffff09}.migration-select-menu button{width:100%;padding:9px 12px;border-color:transparent;border-radius:8px;background:transparent;color:#d9def0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px;text-align:left}.migration-select-menu button:hover,.migration-select-menu button:focus-visible{border-color:#707fff47;outline:none;background:#5d6fff26;color:#fff;transform:none}button.seed-action{padding:5px 7px;border-color:transparent;background:transparent;color:#68748f;font-size:11px;font-weight:550}button.seed-action:hover:not(:disabled){border-color:#303950;color:#a6b0c8;transform:none}button.danger{background:#b93d55;border-color:#d95a70}button.danger-text{color:#ff8b9d;background:transparent;border-color:transparent;padding-inline:8px}.page{display:flex;flex-direction:column;width:min(1500px,calc(100% - 48px));min-height:calc(100vh + 140px);margin:0 auto;padding:36px 0 72px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}h1,h2,p{margin-top:0}h1{font-size:clamp(28px,4vw,42px);letter-spacing:-.04em;margin:6px 0 0}h2{font-size:20px;letter-spacing:-.02em;margin:4px 0 0}.eyebrow,.label{color:#8390b1;font-size:11px;font-weight:800;letter-spacing:.14em}.header-actions,.button-row,.row-actions,.dialog-actions{display:flex;align-items:center;gap:10px}.version{color:#99a5c3;font-family:ui-monospace,monospace;font-size:13px}.panel{border:1px solid #252c3e;border-radius:16px;background:#0f1421eb;box-shadow:0 22px 65px #00000038}.status-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);gap:18px;margin-bottom:18px}.status-card,.job-card,.backups-panel{padding:24px}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.versions{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#293043;border:1px solid #293043;border-radius:11px;overflow:hidden;margin:24px 0}.versions div{background:#111725;padding:16px}.versions span,td small{color:#818da9;display:block;font-size:12px;margin-bottom:6px}.versions strong{font-family:ui-monospace,monospace;font-size:14px;word-break:break-all}.state-pill,.job-state,.tag{display:inline-flex;align-items:center;gap:7px;border-radius:100px;padding:6px 10px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.state-pill i{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 12px currentColor}.state-current{color:#59d49d;background:#2b9b6924}.state-pending,.state-uninitialized{color:#f0bc61;background:#f0bc611f}.state-drifted,.state-ahead,.state-unavailable{color:#ff7187;background:#ff53711f}.pending-list{display:flex;flex-wrap:wrap;max-height:116px;overflow:auto;gap:6px;margin:-8px 0 20px}.pending-list code,.confirm-id{background:#080c15;border:1px solid #252d40;padding:6px 8px;border-radius:7px;color:#aeb8d3;font-size:12px}.button-row{justify-content:flex-end;margin-top:20px}.progress-track{height:8px;border-radius:10px;background:#080c14;overflow:hidden;margin:27px 0 8px}.progress-track span{display:block;height:100%;background:linear-gradient(90deg,#5164f4,#8d75ff);transition:width .3s ease}.job-meta{display:flex;justify-content:space-between;color:#9aa5bf;font-size:13px}.job-state.running,.job-state.queued{color:#93a1ff;background:#5d6fff21}.job-state.completed{color:#59d49d;background:#2b9b6924}.job-state.failed{color:#ff7187;background:#ff53711f}.job-log{background:#080c14;border:1px solid #232a3a;border-radius:10px;padding:12px;margin-top:18px;min-height:116px;max-height:145px;overflow:auto;color:#98a4c0;font:11px/1.65 ui-monospace,SFMono-Regular,Consolas,monospace}.muted{color:#7f8aa5;font-size:12px;margin:12px 0 0}.warning-text{color:#e6b462}.backups-panel{min-height:280px}.maintenance-footer{display:flex;justify-content:flex-end;align-items:flex-end;margin-top:auto;padding-top:72px;opacity:.24;transition:opacity .15s ease}.maintenance-footer:hover,.maintenance-footer:focus-within{opacity:.78}.count{color:#7f8aa5;font-weight:500}.table-wrap{overflow-x:auto;margin:22px -24px -24px}table{width:100%;border-collapse:collapse}th{color:#727e9c;font-size:11px;letter-spacing:.08em;text-align:left;text-transform:uppercase;padding:11px 16px;border-bottom:1px solid #252c3e}th:first-child,td:first-child{padding-left:24px}th:last-child,td:last-child{padding-right:24px}td{padding:16px;border-bottom:1px solid #202638;font-size:13px;vertical-align:middle}tr:last-child td{border-bottom:0}td strong{display:block;font-weight:650}td small{margin:5px 0 0;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tags{display:flex;max-width:210px;gap:5px;flex-wrap:wrap}.tag{color:#aeb7d0;background:#20273a;padding:5px 8px}.tag-manual{color:#77d7b1}.tag-scheduled,.tag-automatic{color:#91a0ff}.tag-uploaded{color:#ce96ff}.tag-rollback,.tag-pre-restore,.tag-pre-migration{color:#f3bb62}.empty{display:grid;place-items:center;min-height:190px;color:#6f7a94}.empty.compact{min-height:190px}.alert{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;padding:13px 16px;border-radius:10px;font-size:13px}.alert.error,.inline-error{color:#ff9aaa;background:#b93d5529;border:1px solid rgba(217,90,112,.35)}.alert.notice{color:#73dfb3;background:#2b9b6921;border:1px solid rgba(59,190,130,.27)}.alert button{background:transparent;border:0;padding:0;font-size:20px}.inline-error{padding:10px 12px;border-radius:8px;font-size:12px;margin:12px 0}.centered{min-height:100vh;display:grid;place-items:center}.spinner{width:36px;height:36px;border:3px solid #273047;border-top-color:#6f7fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(430px,100%);padding:34px;border:1px solid #283149;border-radius:18px;background:#0f1422f5;box-shadow:0 30px 100px #0008}.logo-mark{display:grid;place-items:center;width:42px;height:42px;background:#5d6fff;color:#fff;border-radius:11px;font-weight:900;margin-bottom:25px}.login-card h1{font-size:32px;margin-bottom:10px}.login-card p,.dialog p{color:#8792ad;line-height:1.55;font-size:13px;margin-bottom:24px}label{display:grid;gap:7px;color:#aeb7ce;font-size:12px;font-weight:650;margin-top:16px}input,select{width:100%;border:1px solid #303950;border-radius:9px;padding:12px 13px;background:#0a0f1b;color:#eef1f8;outline:none}input:focus,select:focus{border-color:#6475ff;box-shadow:0 0 0 3px #586cff20}.wide{width:100%;margin-top:22px}.dialog-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:24px;background:#03050ac2;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.dialog{width:min(510px,100%);padding:25px;border:1px solid #303950;border-radius:16px;background:#111725;box-shadow:0 35px 120px #000b}.dialog .close{background:transparent;border:0;padding:0 5px;font-size:25px;color:#909bb5}.dialog-actions{justify-content:flex-end;margin-top:24px}.danger-box{display:grid;gap:4px;margin:22px 0;padding:13px;border:1px solid #703245;border-radius:9px;background:#3a1823;color:#ff9cae;font-size:13px}.danger-box span{color:#c98794;font-size:12px}.confirm-id{display:block;overflow:auto}.file-picker{display:block;width:100%;min-height:100px;border-style:dashed;color:#aeb8d3;background:#0a0f1a}@media(max-width:950px){.status-grid{grid-template-columns:1fr}.page{width:min(100% - 28px,760px);padding-top:22px}header{align-items:flex-start}.version{display:none}}@media(max-width:560px){.versions{grid-template-columns:1fr}.panel-heading{align-items:flex-start}.button-row{align-items:stretch;flex-direction:column}.button-row>button,.button-row .migration-select{width:100%}.status-card,.job-card,.backups-panel{padding:18px}.table-wrap{margin-inline:-18px}h1{font-size:29px}}
