/* Shared look for the login, landing, admin and 403 pages. Public (under /login/). */
:root { --bg:#0d1117; --card:#19223F; --line:#243258; --ink:#F0EDE8; --muted:#B0B8C4; --gold:#C99E50; --link:#7FA8C9; --bad:#ff8a80; }
* { box-sizing: border-box; }
body { margin:0; min-height:100vh; background:var(--bg); color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; display:flex; flex-direction:column; align-items:center; padding:3rem 1rem; }
a { color:var(--link); }
.card { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:2rem; width:100%; max-width:440px; }
.wide { max-width:820px; }
.eyebrow { color:var(--gold); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; font-weight:600; }
h1 { font-size:1.35rem; margin:.5rem 0 1rem; }
h2 { font-size:1rem; margin:1.5rem 0 .5rem; }
p { color:var(--muted); line-height:1.5; font-size:.95rem; }
label { display:block; font-size:.85rem; color:var(--muted); margin:.8rem 0 .3rem; }
input, select { width:100%; padding:.65rem .75rem; border-radius:6px; border:1px solid var(--line); background:#0f1630; color:var(--ink); font-size:.95rem; }
button { background:var(--gold); color:#19223F; border:0; border-radius:6px; padding:.65rem 1.2rem; font-weight:700; font-size:.92rem; cursor:pointer; }
button.ghost { background:transparent; color:var(--link); border:1px solid var(--line); font-weight:600; }
button.danger { background:#7a2730; color:var(--ink); }
button:disabled { opacity:.6; cursor:default; }
.row { display:flex; gap:.6rem; align-items:end; flex-wrap:wrap; }
.row > * { flex:1 1 auto; }
.row > button { flex:0 0 auto; }
.msg { margin-top:.8rem; font-size:.9rem; color:var(--muted); }
.err { color:var(--bad); }
.top { width:100%; max-width:820px; display:flex; justify-content:space-between; align-items:center; margin-bottom:1rem; color:var(--muted); font-size:.85rem; gap:1rem; }
.projects { list-style:none; padding:0; margin:0; display:grid; gap:.6rem; }
.projects a { display:block; padding:1rem; border:1px solid var(--line); border-radius:8px; text-decoration:none; color:var(--ink); }
.projects a:hover { border-color:var(--gold); }
.projects small { display:block; color:var(--muted); margin-top:.25rem; }
table { width:100%; border-collapse:collapse; font-size:.9rem; }
th, td { text-align:left; padding:.5rem .4rem; border-bottom:1px solid var(--line); vertical-align:middle; }
th { color:var(--muted); font-weight:600; font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; }
td.actions { text-align:right; white-space:nowrap; }
.confirm { color:var(--muted); font-size:.85rem; margin-right:.4rem; }
[hidden] { display:none !important; }
