:root { color-scheme: light; --blue:#2357d8; --ink:#172033; --muted:#657085; --bg:#f4f7fb; --border:#dce2ec; --danger:#a92222; --success:#187548; }
* { box-sizing:border-box; }
body { margin:0; font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; color:var(--ink); background:var(--bg); }
.login-page { min-height:100vh; display:grid; place-items:center; padding:20px; }
.login-card,.card { background:#fff; border:1px solid var(--border); border-radius:14px; box-shadow:0 8px 30px rgba(27,42,75,.07); }
.login-card { width:min(420px,100%); padding:30px; }
.container { width:min(1120px,calc(100% - 32px)); margin:30px auto; }
.card { padding:24px; margin-bottom:24px; }
.topbar { background:#fff; border-bottom:1px solid var(--border); padding:16px max(16px,calc((100% - 1088px)/2)); display:flex; justify-content:space-between; }
.logout-form { display:block; }
.inline-action { display:inline-block; margin-left:6px; }
.link-button { padding:0; color:var(--blue); background:transparent; font-weight:650; }
h1,h2 { line-height:1.2; margin-top:0; }
h2 { font-size:1.25rem; }
.muted,small { color:var(--muted); }
form,.grid { display:grid; gap:16px; }
.grid { grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
label { display:grid; gap:6px; font-weight:650; }
input,select,textarea,button { font:inherit; }
input,select,textarea { width:100%; padding:10px 12px; border:1px solid #bfc8d8; border-radius:8px; background:#fff; }
textarea { resize:vertical; }
button { justify-self:start; border:0; border-radius:8px; padding:11px 18px; background:var(--blue); color:#fff; font-weight:700; cursor:pointer; }
button:disabled { opacity:.65; cursor:wait; }
button.secondary { background:#e8eefc; color:#173c98; }
button.small { padding:7px 10px; font-size:.875rem; }
.alert { padding:12px 14px; border-radius:8px; margin-bottom:16px; }
.alert.error { background:#fff0f0; color:var(--danger); border:1px solid #f3c7c7; }
.alert.success { background:#ecfbf4; color:var(--success); border:1px solid #bce8d2; }
dl { display:grid; grid-template-columns:max-content 1fr; gap:8px 18px; }
dt { font-weight:700; } dd { margin:0; overflow-wrap:anywhere; }
.access-url { font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:.9rem; }
.access-result { padding:14px 0; border-bottom:1px solid var(--border); }
.access-result h3 { margin:0 0 12px; }
.table-wrap { overflow-x:auto; }
table { width:100%; border-collapse:collapse; font-size:.9rem; }
th,td { text-align:left; padding:10px; border-bottom:1px solid var(--border); vertical-align:top; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
@media (max-width:600px) { .card,.login-card { padding:18px; } dl { grid-template-columns:1fr; gap:2px; } dd { margin-bottom:8px; } }
