/* Penned release — layers on top of lexiken-v3.css */

/* ---------- topbar: fewer, quieter controls ---------- */
.topactions{gap:6px}
.privacy-row{align-items:flex-start}
.privacy-row label{display:flex;flex-direction:column;gap:2px;max-width:225px;white-space:normal}
.privacy-row label small{font-size:10px;line-height:1.35;font-weight:650;color:var(--ink3)}
.icon-btn{width:40px;min-width:40px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:15px}
.streak-btn{display:inline-flex;align-items:center;gap:5px;font-size:14px;font-variant-numeric:tabular-nums}
.streak-btn .streak-flame{font-size:14px;line-height:1}
.streak-btn:has(.streak-flame){background:var(--goldT);color:var(--goldInk)}

/* day stepper + the day's four puzzles */
.nav-row{gap:10px;flex-wrap:wrap}
.daynav{flex:0 0 250px;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:6px}
.daylabel{font-family:inherit;background:var(--srf);color:var(--ink);border:none;border-radius:999px;padding:6px 10px;min-height:52px;cursor:pointer;box-shadow:0 3px 0 var(--press);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.15;min-width:0}
.daylabel b{font-size:13px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.daylabel span{font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3)}
.daylabel:disabled{cursor:default;box-shadow:0 3px 0 var(--press)}
.daylabel:not(:disabled):active{transform:translateY(2px);box-shadow:0 1px 0 var(--press)}
.puzzletabs{flex:1;min-width:220px;display:grid;gap:6px}
.ptab{border:none;background:var(--srf);border-radius:999px;padding:7px 8px;min-height:52px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1;box-shadow:0 3px 0 var(--press);color:var(--ink);position:relative}
.ptab:active{transform:translateY(2px);box-shadow:0 1px 0 var(--press)}
.ptab-size{font-size:13px;font-weight:800}
.ptab-state{font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3)}
.ptab.done{background:var(--t3);color:var(--d3)}
.ptab.done .ptab-state{color:var(--d3)}
.ptab.started .ptab-state{color:var(--d1)}
.ptab.on{background:var(--ink);color:var(--bg);box-shadow:0 3px 0 var(--inkSh)}
.ptab.on .ptab-state{color:var(--bg);opacity:.75}

/* ---------- side rail: today ---------- */
.day-panel .day-dots{display:flex;gap:6px}
.day-dot{flex:1;border:none;background:var(--bg);border-radius:12px;padding:8px 0;cursor:pointer;color:var(--ink3);box-shadow:0 2px 0 var(--press)}
.day-dot b{font-size:15px;font-weight:800;display:block;line-height:1}
.day-dot.done{background:var(--t3);color:var(--d3)}
.day-dot.on{outline:2.5px solid var(--ink);outline-offset:1px}
.day-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.day-stat{background:var(--bg);border-radius:12px;padding:8px 10px;display:flex;flex-direction:column;gap:1px}
.day-stat b{font-size:19px;font-weight:800;color:var(--ink);line-height:1.05;font-variant-numeric:tabular-nums}
.day-stat span{font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--ink3)}
.day-more{align-self:flex-start;font-size:12px}

/* ---------- share card: the win screen, words held back ---------- */
.done-dialog,.stats-dialog{max-width:430px;text-align:left}
/* confetti is contained by the card, not the dialog, so the dialog keeps its own scrolling */
.done-kicker{font-size:10.5px;font-weight:800;letter-spacing:.22em;color:var(--ink3)}
.done-title{margin:4px 0 0;font-family:var(--display);font-size:30px;font-weight:800;line-height:1.05;color:var(--ink)}
.share-won{position:relative;inset:auto;border-radius:16px;background:none;padding:4px 0 0;overflow:hidden;animation:none}
.share-won .won-inner{max-height:none;overflow:visible;gap:11px}
.share-won .end-actions{width:100%;margin-top:6px}
.marks-row{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;background:var(--bg);border-radius:999px;padding:9px 18px}
.marks-emoji{font-size:26px;letter-spacing:4px;line-height:1}
.marks-flair{font-size:17px;color:var(--gold)}
.marks-caption{font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--ink3)}
.wchip.redacted{cursor:default}
.wchip .redact{letter-spacing:1.5px;font-size:11px;opacity:.75}
.redact-note{font-size:11.5px;font-weight:700;line-height:1.45;color:var(--ink3);max-width:320px;text-align:center;text-wrap:pretty}
.day-share-rows{display:flex;flex-direction:column;gap:6px;width:min(100%,300px)}
.day-share-row{display:flex;align-items:center;gap:10px;background:var(--bg);border-radius:999px;padding:8px 16px}
.day-share-row.miss{opacity:.5}
.dsr-size{font-size:12.5px;font-weight:800;color:var(--ink2);width:34px;flex:none;font-variant-numeric:tabular-nums}
.dsr-marks{font-size:19px;letter-spacing:2.5px;line-height:1.2}
.share-scope{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;width:min(100%,300px);background:var(--bg);border-radius:999px;padding:4px}
.scope-btn{font-family:inherit;font-size:12px;font-weight:800;border:none;border-radius:999px;padding:8px 6px;cursor:pointer;background:none;color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scope-btn.on{background:var(--card);color:var(--ink);box-shadow:0 2px 0 var(--press)}
.share-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px}
.share-btn svg{flex:none}
.share-status{font-size:12px;font-weight:700;color:var(--goodTx);min-height:15px;text-align:center}
.done-next{font-size:11.5px;font-weight:700;color:var(--ink3);text-align:center}
.btn-solid{font-size:14px;font-weight:800;border:none;border-radius:999px;padding:11px 20px;cursor:pointer;background:var(--ink);color:var(--bg);box-shadow:0 3px 0 var(--inkSh);font-family:inherit}
.btn-solid:active{transform:translateY(2px);box-shadow:0 1px 0 var(--inkSh)}
/* overlapping word reveals shrink so a long parade stays readable */
.word-moment.compact{min-width:118px;max-width:170px;padding:7px 12px}
.word-moment.compact span{font-size:8px;letter-spacing:.1em}
.word-moment.compact b{font-size:16px;letter-spacing:.04em}
/* ---------- progress screen ---------- */
.stat-hero{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px}
.stat-cell{background:var(--bg);border-radius:14px;padding:11px 10px;display:flex;flex-direction:column;gap:2px}
.stat-cell b{font-size:26px;font-weight:800;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.stat-cell span{font-size:9.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--ink3);line-height:1.2}
.stat-cell.gold{background:var(--goldT)}
.stat-cell.gold b,.stat-cell.gold span{color:var(--goldInk)}
.stat-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.stat-chip{background:var(--bg);border-radius:999px;padding:5px 11px;font-size:11.5px;font-weight:800;color:var(--ink2)}
.stat-chip.gold{background:var(--goldT);color:var(--goldInk)}
.heat-label{margin-top:18px;font-size:10.5px;font-weight:800;letter-spacing:.2em;color:var(--ink3)}
.heat{margin-top:9px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.heat-cell{aspect-ratio:1;border:none;border-radius:7px;cursor:pointer;padding:0;background:
  linear-gradient(var(--c3),var(--c3)) padding-box;
  background-color:var(--bg);opacity:1;position:relative;box-shadow:inset 0 0 0 1.5px var(--line)}
.heat-cell{background:color-mix(in oklab, var(--c3) calc(var(--fill,0) * 100%), var(--bg))}
.heat-cell.full{box-shadow:inset 0 0 0 1.5px var(--d3)}
.heat-cell.today{box-shadow:0 0 0 2.5px var(--ink)}
.heat-cell.before{opacity:.3;cursor:default}
.heat-cell.ahead{opacity:.35;cursor:default;background:transparent;box-shadow:inset 0 0 0 1.5px var(--line)}
.day-list{margin-top:9px;display:flex;flex-direction:column;gap:5px}
.day-row{display:flex;align-items:center;gap:10px;background:var(--bg);border:none;border-radius:11px;padding:9px 12px;cursor:pointer;font-family:inherit;color:var(--ink);text-align:left}
.day-row:active{transform:translateY(1px)}
.dr-date{font-size:13px;font-weight:800;flex:1}
.dr-marks{font-size:13px;letter-spacing:3px;color:var(--d3)}
.dr-count{font-size:12px;font-weight:800;color:var(--ink3);font-variant-numeric:tabular-nums;width:30px;text-align:right}
.day-row.full{background:var(--t3)}
.day-row.full .dr-date,.day-row.full .dr-count{color:var(--d3)}

/* ---------- footer ---------- */
.pagefoot{justify-content:center}

@media (max-width:960px){
  .daynav{flex:1 1 100%;grid-template-columns:44px minmax(0,1fr) 44px}
  .puzzletabs{flex:1 1 100%;min-width:0}
  .stat-hero{grid-template-columns:repeat(2,minmax(0,1fr))}
  .done-title{font-size:26px}
}
