:root {
  --ink: #20252a;
  --muted: #687078;
  --line: #d8dde2;
  --paper: #ffffff;
  --page: #f5f6f7;
  --accent: #245a83;
  --accent-dark: #183d59;
  --good-bg: #eef8ef;
  --maybe-bg: #eef5fb;
  --no-bg: #fbefef;
  --gold: #f2d574;
  --yellow: #fae9a4;
  --light-yellow: #fff6d5;
}
* { 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(--page); }
a { color: var(--accent); }
.shell { width: min(1180px, calc(100% - 28px)); margin: 0 auto; }
.site-header { background: #1f2932; color: white; border-bottom: 4px solid #d9e1e6; }
.header-inner { min-height: 62px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.brand { color: white; text-decoration: none; font-size: 1.35rem; font-weight: 800; letter-spacing: .08em; }
nav { display: flex; gap: 16px; align-items: center; } nav a, .link-button { color: white; }
.link-button { border: 0; background: none; text-decoration: underline; font: inherit; padding: 0; cursor: pointer; }
.inline { display:inline; margin:0; }
main.shell { padding: 34px 0 48px; min-height: 75vh; }
h1 { line-height:1.12; margin: 0 0 24px; } h2 { margin-top: 28px; }
.home-grid { display:grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.home-panel { background: var(--paper); border:1px solid var(--line); border-top: 5px solid #8897a2; padding: 24px; min-height: 300px; }
.writing-panel { border-top-color:#43805a; } .voting-panel { border-top-color:#407aa5; } .results-panel { border-top-color:#af7c25; }
.month-label { font-weight:700; font-size:1.1rem; }.answer-word { font: 800 2rem/1.1 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing:.08em; margin:18px 0; overflow-wrap:anywhere; }.answer-word.small { font-size:1.5rem; }
.button { display:inline-block; border:1px solid var(--accent-dark); background:var(--accent); color:white; border-radius:4px; padding:9px 15px; text-decoration:none; font:inherit; font-weight:650; cursor:pointer; }.button:hover { background:var(--accent-dark); }.button:disabled { opacity:.45; cursor:not-allowed; }.button.secondary { color:var(--ink); background:#fff; border-color:#aeb7be; }.button.danger { color:#8b1e1e; border-color:#cfabab; }.mini-button { border:1px solid #aeb7be; background:#fff; border-radius:3px; padding:5px 8px; cursor:pointer; }
.deadline,.muted,small { color:var(--muted); }.narrow { max-width:560px; margin:0 auto; }.narrow-wide { max-width:800px; margin:0 auto; }.back-link { display:inline-block; margin-bottom:16px; }
.form-card { background:white; border:1px solid var(--line); padding:22px; }.form-card label { display:block; font-weight:650; margin-bottom:18px; }.input { display:block; width:100%; margin-top:6px; border:1px solid #aeb7be; border-radius:3px; padding:10px 11px; font:inherit; background:white; }.textarea { resize:vertical; }.checkline { font-weight:400!important; }.checkline input { margin-right:6px; }.field-error { display:block; color:#a02222; font-size:.9rem; }.danger-zone { margin-top:18px; }
.flash-stack { margin-bottom:20px; }.flash,.status-banner { border:1px solid var(--line); background:#fff; padding:11px 14px; margin-bottom:12px; }.flash.success,.status-banner.success { background:#edf8ef; border-color:#bdd9c2; }.flash.error { background:#fff0f0; border-color:#ddbcbc; }.flash.info { background:#eef5fb; border-color:#c2d7e8; }.status-banner.warning { background:#fff6d5; border-color:#e7d58b; }
.points-summary { position:sticky; top:8px; z-index:3; margin:16px 0; padding:10px 14px; width:max-content; background:#1f2932; color:white; border-radius:4px; }
.vote-table,.results-table,.simple-table { border:1px solid var(--line); background:white; overflow:hidden; }.vote-header,.vote-row { display:grid; grid-template-columns:60px minmax(220px,2fr) minmax(240px,2fr) 145px 90px 80px 80px; }.vote-header,.results-header,.simple-row.header { font-weight:700; background:#e8ecef; border-bottom:1px solid var(--line); }.vote-header>div,.vote-row>.cell,.results-header>div,.result-row>.cell,.simple-row>div { padding:10px; border-right:1px solid var(--line); }.vote-row { border-bottom:1px solid var(--line); transition: background .12s; }.vote-row:last-child { border-bottom:0; }.vote-row.pin-good { background:var(--good-bg); }.vote-row.pin-maybe { background:var(--maybe-bg); }.vote-row.pin-no { background:var(--no-bg); }.clue-no,.numeric { text-align:center; font-variant-numeric:tabular-nums; }.clue-text { font-weight:650; }.pin-controls { white-space:nowrap; }.pin-button,.comment-button,.merit-button,.result-comments { background:white; border:1px solid #b9c0c6; border-radius:3px; min-width:34px; min-height:32px; cursor:pointer; }.pin-button.good { color:#1d7b37; }.pin-button.maybe { color:#2871a8; }.pin-button.no { color:#b12d2d; }.pin-button.active { outline:2px solid currentColor; outline-offset:-3px; font-weight:800; }.comment-button { position:relative; }.comment-tick { font-size:.7rem; position:absolute; right:1px; bottom:-1px; color:#237437; font-weight:900; }.merit-button { color:#a8afb4; font-size:1.25rem; }.merit-button.active { color:#2176b3; border-color:#2176b3; background:#eef6fc; }.points-select { max-width:64px; padding:6px; }.own-entry { color:#7a6161; font-size:.9rem; font-weight:650; }
.submit-bar { display:flex; gap:14px; align-items:center; justify-content:flex-end; margin-top:18px; min-height:42px; }#save-message { color:var(--muted); }
dialog { border:0; border-radius:5px; box-shadow:0 18px 60px #0004; width:min(620px,calc(100% - 30px)); padding:0; }dialog::backdrop { background:#0006; }.dialog-card { padding:22px; margin:0; }.dialog-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:14px; }.published-comment { border-left:3px solid #aeb7be; padding-left:12px; }
.results-header,.result-row { display:grid; grid-template-columns:62px 180px minmax(220px,2fr) minmax(230px,2fr) 75px 75px 95px; }.result-row { border-bottom:1px solid var(--line); }.result-row.winner { background:var(--gold); }.result-row.top-five:not(.winner) { background:var(--yellow); }.result-row.top-ten:not(.top-five) { background:var(--light-yellow); }.your-entry { display:inline-block; background:#1f2932; color:white; padding:2px 6px; border-radius:3px; font-size:.85rem; }.result-comments { white-space:nowrap; }
.admin-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; }.admin-heading h1 { margin-bottom:4px; }.admin-nav,.button-row { display:flex; gap:12px; flex-wrap:wrap; margin:14px 0 22px; }.button-row.compact { margin:0; gap:6px; }.button-row.compact form { margin:0; }.simple-row { display:grid; grid-template-columns:2fr 1fr 1fr 1.5fr .7fr; border-bottom:1px solid var(--line); }.simple-row:last-child { border:0; }.users-table .simple-row { grid-template-columns:2fr .6fr .7fr .6fr .6fr 1.6fr; }.audit-table .simple-row { grid-template-columns:1.2fr 1.5fr 1fr 1fr 2fr; }.entries-admin .simple-row { grid-template-columns:1.4fr 3fr .8fr 1.2fr; }.phase { text-transform:capitalize; }.stat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:20px 0; }.stat-grid>div { background:white; border:1px solid var(--line); padding:18px; }.stat-grid strong { display:block; font-size:1.8rem; }.stat-grid span { color:var(--muted); }.admin-form fieldset { border:1px solid var(--line); margin:0 0 20px; padding:18px; }.admin-form legend { font-weight:700; }.site-footer { color:var(--muted); padding:25px 0 35px; border-top:1px solid var(--line); }
@media (max-width: 850px) {
  .home-grid { grid-template-columns:1fr; }.home-panel { min-height:0; }.nav-user { display:none; }
  .vote-table,.results-table { border:0; background:transparent; }.vote-header,.results-header { display:none; }.vote-row,.result-row { display:block; margin-bottom:14px; border:1px solid var(--line); border-radius:5px; overflow:hidden; }.vote-row>.cell,.result-row>.cell { display:grid; grid-template-columns:92px 1fr; gap:8px; border-right:0; border-bottom:1px solid #e7eaed; padding:9px 11px; text-align:left; }.vote-row>.cell:last-child,.result-row>.cell:last-child { border-bottom:0; }.vote-row>.cell::before,.result-row>.cell::before { content:attr(data-label); font-weight:700; color:var(--muted); }.clue-no::before { content:"No."!important; }.points-summary { top:6px; }.submit-bar { align-items:flex-end; flex-direction:column; }.simple-table { overflow-x:auto; }.simple-row { min-width:760px; }.stat-grid { grid-template-columns:1fr; }
}
@media (max-width: 520px) { .shell { width:min(100% - 18px,1180px); }.header-inner { min-height:56px; }.site-header nav { gap:10px; font-size:.92rem; }.home-panel { padding:18px; }.form-card { padding:16px; }.answer-word { font-size:1.65rem; }.vote-row>.cell,.result-row>.cell { grid-template-columns:78px 1fr; }.admin-heading { align-items:flex-start; flex-direction:column; } }
