/* Daily Crossword (crossword.html), on top of style.css + andazaa-theme.css. */
.cw main{padding-bottom:60px}
.timer{font:700 20px/1 var(--mono);color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:0}
.cw-start{position:relative}
.cw-start .ghost{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;width:min(220px,60%);margin:6px 0 18px;opacity:.55}
.cw-start .ghost i{aspect-ratio:1;border:1.5px solid var(--line2);border-radius:3px;background:var(--paper)}
.cw-start .ghost i.b{border-color:transparent;background:transparent}
.cw-start .q{margin-top:6px}

.cw-play{padding-top:14px}
.cluebar{display:flex;align-items:stretch;gap:6px;margin-bottom:12px;position:sticky;top:0;z-index:5;background:var(--bg);padding:6px 0}
.cb-step{flex:none;width:40px;border:1.5px solid var(--line2);border-radius:8px;background:var(--paper);font:700 20px/1 var(--mono);cursor:pointer;color:var(--ink)}
.cb-text{flex:1;min-width:0;min-height:54px;display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;background:#fde9c9;cursor:pointer;font-size:16px;line-height:1.3}
.cb-text b{font:700 14px/1 var(--mono);flex:none}
.cb-text i{color:var(--muted);font-style:normal;white-space:nowrap}

.xgrid{display:grid;gap:0;width:min(100%,calc(var(--w) * 46px));margin:0 auto;user-select:none;-webkit-user-select:none;touch-action:manipulation}
.cell{position:relative;aspect-ratio:1;border:1px solid var(--ink);margin:-.5px;background:var(--paper);cursor:pointer;display:grid;place-items:center}
.cell.blk{border-color:transparent;background:transparent;cursor:default;z-index:0}
.cell b{font:700 clamp(15px,4.6vw,24px)/1 var(--sans);text-transform:uppercase;letter-spacing:0}
.cell small{position:absolute;top:1px;left:2px;font:600 clamp(7px,2vw,10px)/1 var(--mono);color:var(--ink2)}
.cell.word{background:#fde9c9}
.cell.cur{background:var(--accent)}
.cell.bad b{color:var(--bad)}
.cell.bad::after{content:"";position:absolute;inset:0;background:linear-gradient(to top right,transparent 47%,var(--bad) 48%,var(--bad) 52%,transparent 53%);opacity:.55}
.cell.rev::before{content:"";position:absolute;top:0;right:0;border-style:solid;border-width:0 8px 8px 0;border-color:transparent #3a6ee8 transparent transparent}
.cell.ok{background:#e3f2e8}
.cell.blk.ok{background:transparent}

.tools{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
.tools .btn{min-height:44px;padding:8px 6px;font-size:13px;flex-direction:column;gap:2px}
.tools .btn small{font:500 11px var(--mono);color:var(--muted)}

.kb{margin-top:12px;display:grid;gap:6px;user-select:none;-webkit-user-select:none;touch-action:manipulation}
.kb div{display:flex;gap:4px;justify-content:center}
.kb button{flex:1;max-width:40px;min-height:46px;border:1px solid var(--line2);border-radius:6px;background:var(--paper);font:700 16px var(--sans);color:var(--ink);cursor:pointer;padding:0}
.kb button.wide{max-width:58px;flex:1.5;font-size:18px}
.kb button:active{background:var(--accent)}

.clues{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}
@media(max-width:560px){.clues{grid-template-columns:1fr}}
.clues h3{font:700 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 6px}
.clues ol{list-style:none;margin:0;padding:0}
.clues li{display:flex;gap:10px;padding:8px 6px;border-bottom:1px solid var(--line);cursor:pointer;font-size:15px;line-height:1.35;border-radius:4px}
.clues li b{font:700 13px/1.5 var(--mono);width:20px;flex:none}
.clues li i{font-style:normal;color:var(--muted)}
.clues li.cur{background:#fde9c9}
.clues li.near{background:var(--paper)}
.clues li.filled span{color:var(--muted)}
.clues.ans li{cursor:default}
.clues.ans em{display:block;font:700 14px/1.4 var(--mono);font-style:normal;letter-spacing:.08em;margin-top:2px}

.cw-done .big.small{font-size:clamp(34px,8vw,52px)}
.cw-done .xgrid{margin-top:16px}
.cw main::before{content:none}
.cw main>section.cw-play{padding:14px 0 20px}
.cw .bar .brand{font-size:clamp(24px,5vw,44px)}
@media(max-width:480px){.cw .bar .brand{font-size:21px}.cw .bar .icons{gap:0}.cw .icon{width:32px}}
@media(max-width:360px){.cw .bar .brand{font-size:18px}.cw .icon{width:29px}}
/* The results card is the dark hero from the Andaaza theme: keep its text readable. */
.cw-done .pct{color:#d2d7d2;text-align:left}
.cw-done .pct b{color:#fff}
.cw-done .save-note{color:#d2d7d2}
.cw-done .save-note .link{color:#fff}
.cw-done .actions .btn{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.cw-done .actions .btn.ghost{background:transparent;border-color:#fff;color:#fff}
/* Phones: clue bar + keyboard docked at the bottom while playing; the floating pills step aside. */
.dock{position:fixed;left:0;right:0;bottom:0;z-index:900;background:var(--bg);border-top:1px solid var(--line2);padding:8px 8px calc(8px + env(safe-area-inset-bottom));box-shadow:0 -8px 24px -16px #0006}
.dock .cluebar{position:static;margin:0;padding:0 0 8px}
.dock .cb-text{min-height:48px;font-size:15px}
.dock .kb{margin:0}
.dock .kb button{min-height:44px}
.cw-playing.cw-touch main{padding-bottom:250px}
.cw-playing.cw-touch .mini-footer,.cw-playing .ww-music,.cw-playing #ww-insta-root,.cw-playing #ww-coffee-root{display:none!important}
.cw-done .cell b{color:var(--ink)}.cw-done .cell small{color:var(--ink2)}
