:root{--parchment:#f5f0e8;--ink:#1a1712;--ink-light:#3d3830;--gold:#b8975a;--warm-mid:#8c7b60;--rule:rgba(184,151,90,0.28);--terra:#855031}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--parchment);color:var(--ink);font-family:Jost,sans-serif;font-weight:300;letter-spacing:.01em;line-height:1.7;-webkit-font-smoothing:antialiased}.screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.25rem;gap:.4rem}.wordmark{font-family:Cormorant Garamond,serif;font-weight:500;font-size:2rem;letter-spacing:.02em;color:var(--ink)}.sub{font-size:.6rem;letter-spacing:.26em;text-transform:uppercase;color:var(--warm-mid);margin-bottom:1.5rem}.card{width:100%;max-width:360px;background:#fffdf8;border:1px solid var(--rule);border-radius:4px;padding:1.75rem;display:flex;flex-direction:column;gap:.5rem}.label{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--warm-mid);margin-top:.5rem}.field{width:100%;font-family:Jost,sans-serif;font-size:.95rem;padding:.6rem .7rem;border:1px solid var(--rule);border-radius:3px;background:var(--parchment);color:var(--ink)}.field:focus{outline:none;border-color:var(--gold)}.btn{margin-top:1rem;font-family:Jost,sans-serif;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;padding:.7rem 1rem;border:1px solid var(--ink);border-radius:3px;background:var(--ink);color:var(--parchment);cursor:pointer;transition:opacity .2s}.btn:disabled{opacity:.5;cursor:default}.btn--ghost{margin-top:.5rem;background:none;color:var(--ink);border-color:var(--rule)}.error{font-size:.8rem;color:var(--terra);border:1px solid var(--terra);border-radius:3px;padding:.5rem .7rem}.serif{font-family:Cormorant Garamond,serif}.muted{font-size:.9rem;color:var(--ink-light);margin-top:.6rem}.admin{max-width:760px;margin:0 auto;padding:2rem 1.25rem 4rem;display:flex;flex-direction:column;gap:1.25rem}.admin-head{display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid var(--rule);padding-bottom:1rem}.admin .wordmark{font-size:1.6rem}.admin .sub{margin-bottom:0}.admin-back{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--warm-mid);text-decoration:none}.admin-back:hover{color:var(--gold)}.admin .card{max-width:none}.grant-form{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.grant-form .field{flex:1 1 12rem;width:auto}.grant-form .btn{margin-top:0}.grant-msg{flex-basis:100%}.ok-msg{font-size:.8rem;color:var(--lichen);border:1px solid var(--lichen);border-radius:3px;padding:.5rem .7rem}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-table th{text-align:left;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--warm-mid);font-weight:400;padding:.4rem .5rem}.admin-table td,.admin-table th{border-bottom:1px solid var(--rule)}.admin-table td{padding:.6rem .5rem;vertical-align:middle}.field--sm{font-size:.85rem;padding:.35rem .5rem;width:auto}.btn--sm{margin-top:0;font-size:.6rem;padding:.45rem .7rem}.row-role{display:flex;gap:.4rem;align-items:center}.row-actions{text-align:right}.self-tag{margin-left:.5rem;font-size:.55rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);border:1px solid var(--rule);border-radius:999px;padding:.1rem .5rem}