.login-page { min-height:100vh; display:grid; place-items:center; padding:24px; }
.login-card { width:min(440px,100%); background:var(--bg-card,#171923); border:1px solid #343849; border-radius:16px; padding:32px; }
.login-card h1 { margin-bottom:12px; }
.login-card form { display:grid; gap:16px; margin-top:24px; }
.login-card input, .storage-controls input { min-height:42px; }
#loginError, #reauthError, #storageError { color:#fca5a5; }
.storage-panel, .recovery-panel { border:1px solid #343849; border-radius:14px; padding:24px; margin:20px 0; background:var(--bg-card,#171923); }
.storage-panel p, .recovery-panel p { margin:12px 0; line-height:1.6; }
.storage-controls { display:flex; flex-wrap:wrap; gap:16px; align-items:center; margin:20px 0; }
.storage-controls input[type=number] { width:100px; padding:8px; background:#171923; color:#fff; border:1px solid #636779; border-radius:6px; }
.storage-controls label { display:flex; gap:8px; align-items:center; }
.storage-details { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:16px; margin:16px 0; }
.storage-details div { padding:12px; border:1px solid #343849; border-radius:8px; }
.storage-details dt { color:#b7bfd0; font-size:13px; margin-bottom:6px; }
.storage-details dd { margin:0; overflow-wrap:anywhere; }
.notice { padding:12px 20px; border:1px solid #d99d36; background:#332a17; color:#ffe1a0; margin:12px 0; border-radius:8px; }
.recovery-item { border-top:1px solid #343849; padding:14px 0; }
.recovery-item button { margin:8px 8px 0 0; }
.pager { display:flex; gap:16px; justify-content:center; align-items:center; margin:24px 0; }
dialog { margin:auto; border:1px solid #636779; border-radius:14px; padding:28px; width:min(480px,90vw); color:#eef0f6; background:#171923; }
dialog::backdrop { background:rgba(0,0,0,.75); }
dialog form { display:grid; gap:16px; }
dialog p { line-height:1.6; }
button:disabled { opacity:.5; cursor:not-allowed; }
