/* Gravepedia site pages: login, register, dashboard, admin */
*{box-sizing:border-box;margin:0;padding:0}
:root{--bg:#0b0e1a;--card:#141829;--card2:#1a1f35;--line:#2a3050;--text:#eceaf4;--muted:#9aa0bd;--gold:#e8c27a;--ink:#1a1405;--ok:#34d399;--bad:#f87171;--warn:#fbbf24}
body.site-body{min-height:100vh;font-family:Inter,system-ui,sans-serif;background:radial-gradient(900px 400px at 80% -10%,#1d2347,transparent 60%),var(--bg);color:var(--text);line-height:1.55;overflow:auto;height:auto;display:block}
a{color:var(--gold)}
.btn,.btn-sm{display:inline-flex;align-items:center;gap:6px;background:var(--gold);color:var(--ink);border:0;border-radius:12px;padding:11px 20px;font:600 14px Inter,sans-serif;cursor:pointer;text-decoration:none;transition:.15s}
.btn:hover,.btn-sm:hover{filter:brightness(1.08)}
.btn-sm{padding:7px 12px;font-size:13px;border-radius:10px}
.btn.ghost,.btn-sm.ghost{background:transparent;color:var(--text);border:1px solid var(--line)}
.btn-sm.danger{background:#3a1519;color:#ffb4bd;border:1px solid #5b2229}
.btn-sm.good{background:#12301f;color:#9be9bd;border:1px solid #1f5a39}
.auth-wrap,.msg-card{max-width:420px;margin:8vh auto;padding:0 16px}
.msg-card{text-align:center;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:32px 24px}
.msg-card h1{font:700 26px 'Cormorant Garamond',Georgia,serif;margin-bottom:8px;color:var(--gold)}
.msg-card p{color:var(--muted);margin-bottom:16px}
.auth-card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:28px 24px;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.brand{font:700 30px 'Cormorant Garamond',Georgia,serif;color:var(--gold);text-align:center;margin-bottom:6px;text-decoration:none;display:block}
.auth-card h1{font:600 20px Inter,sans-serif;text-align:center;margin-bottom:4px}
.auth-card .sub{color:var(--muted);text-align:center;font-size:14px;margin-bottom:18px}
label.f{display:block;font:600 12px Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:12px 0 6px}
input.in,select.in{width:100%;background:var(--card2);border:1px solid var(--line);color:var(--text);border-radius:12px;padding:12px 14px;font:inherit}
input.in:focus,select.in:focus{outline:2px solid var(--gold);border-color:transparent}
.auth-card .btn{width:100%;justify-content:center;margin-top:18px}
.alt{text-align:center;margin-top:16px;color:var(--muted);font-size:14px}
.note{border-radius:12px;padding:10px 14px;margin-bottom:14px;font-size:14px}
.note.ok{background:#12301f;color:#9be9bd}.note.bad{background:#35161a;color:#ffb4bd}
/* dashboard */
.dash{max-width:1040px;margin:0 auto;padding:22px 16px 60px}
.topline{display:flex;flex-wrap:wrap;align-items:center;gap:12px;justify-content:space-between;margin-bottom:22px}
.topline .brand{text-align:left;margin:0;font-size:28px}
.topline .who{display:flex;gap:8px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:14px}
h2.sec{font:600 13px Inter,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:26px 0 12px}
.mcard{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px 18px;margin-bottom:14px}
.mcard .row1{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.mcard h3{font:600 18px Inter,sans-serif}
.mcard .meta{color:var(--muted);font-size:13px;margin-top:2px;word-break:break-all}
.badge{display:inline-block;font:600 11px Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border-radius:999px;border:1px solid var(--line);margin-left:8px;vertical-align:middle}
.badge.published{color:var(--ok);border-color:#1f5a39;background:#10261a}
.badge.private{color:var(--warn);border-color:#5b4515;background:#2a2108}
.badge.draft{color:var(--muted)}
.badge.pend{color:#111;background:var(--gold);border-color:var(--gold)}
.mform{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px}
.mform .in{width:auto;min-width:150px;padding:8px 12px;border-radius:10px;font-size:14px}
.acts{display:flex;gap:8px;flex-wrap:wrap}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.tabs a{padding:7px 12px;border:1px solid var(--line);border-radius:999px;color:var(--muted);text-decoration:none;font-size:13px}
.tabs a.on{background:var(--gold);color:var(--ink);border-color:var(--gold);font-weight:600}
.trib{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:10px;display:flex;gap:12px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}
.trib .body{flex:1 1 320px;min-width:0}
.trib b{color:var(--gold)}.trib small{color:var(--muted);margin-left:6px}
.trib p{margin-top:4px;white-space:pre-wrap;word-break:break-word}
.empty{color:var(--muted);border:1px dashed var(--line);border-radius:14px;padding:18px;text-align:center}
table.tb{width:100%;border-collapse:collapse;font-size:14px;background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden}
table.tb th,table.tb td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
table.tb th{color:var(--muted);font:600 11px Inter,sans-serif;letter-spacing:.1em;text-transform:uppercase;background:var(--card2)}
.scroll-x{overflow-x:auto}
.stats{display:flex;gap:12px;flex-wrap:wrap}
.stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 18px;min-width:120px}
.stat b{display:block;font-size:24px;color:var(--gold)}.stat span{color:var(--muted);font-size:12px}
@media (max-width:560px){.mform .in{flex:1 1 100%}}
