/* ---------- crossword ---------- */
.cw-wrap{--s:28px;display:flex;flex-direction:column;align-items:center;gap:16px;width:100%}
.cw-wrap.wide{flex-direction:row;align-items:flex-start;justify-content:center}
.cw-board{display:grid;border:2px solid var(--tan);background:var(--tan);gap:1px;user-select:none;-webkit-user-select:none;touch-action:manipulation;flex:none}
.cw-b{background:#070504}
.cw-c{position:relative;background:#3a3027;display:grid;place-items:center;cursor:pointer}
.cw-c .num{position:absolute;top:1px;left:2px;font-size:calc(var(--s) * .3);line-height:1;color:var(--muted);font-weight:600;pointer-events:none}
.cw-c .l{font-family:var(--display);font-weight:700;font-size:calc(var(--s) * .6);line-height:1;color:var(--pc,var(--ink));transform:translateY(calc(var(--s) * .05));pointer-events:none}
.cw-c.circ::after{content:"";position:absolute;inset:1px;border:1px solid var(--muted);border-radius:50%;pointer-events:none}
.cw-c.word{background:#5a4630}
.cw-c.sel{background:var(--you)}
.cw-c.sel .l,.cw-c.sel .num{color:var(--amber-ink)}
.cw-c.pword{box-shadow:inset 0 0 0 999px color-mix(in srgb,var(--ps) 16%,transparent)}
.cw-c.psel{box-shadow:inset 0 0 0 2px var(--ps)}
.cw-c.bad .l{color:var(--bad)}
.cw-c.bad.sel .l{color:#5a0d07}
.cw-lists{display:none}
.cw-wrap.wide .cw-lists{display:grid;grid-template-columns:1fr 1fr;gap:18px;flex:1;max-width:620px;overflow:hidden}
.cw-lists section{display:flex;flex-direction:column;min-height:0;max-height:inherit}
.cw-lists h3{font-size:13px;font-family:var(--body);font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--tan);margin:0 0 6px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.cw-lists ol{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1}
.cw-lists li{display:flex;gap:8px;padding:5px 6px;border-radius:6px;cursor:pointer;font-size:14px;line-height:1.35}
.cw-lists li b{min-width:22px;text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}
.cw-lists li.cur{background:var(--hl2)}
.cw-lists li.cur b{color:var(--amber)}
.cw-lists li.full span{color:var(--muted)}
.cw-copy{font-size:12px;color:var(--muted);margin:0}
.cw-clue{display:flex;align-items:stretch;gap:6px;width:min(100%,900px);margin:0 auto 8px}
.cw-arw{flex:none;width:40px;border:1px solid var(--line);background:var(--raise);border-radius:8px;font-size:22px;color:var(--amber)}
.cw-ct{flex:1;min-height:48px;border:1px solid var(--line);background:var(--hl2);border-radius:8px;padding:6px 12px;text-align:left;font-size:15px;line-height:1.3;color:var(--ink)}
.cw-ct b{color:var(--amber);margin-right:6px;font-family:var(--display);letter-spacing:.06em}
.cw-kb button.wide{font-size:clamp(18px,2.4dvh,26px)}
/* picker */
.cw-list{display:flex;flex-direction:column;gap:8px}
.cw-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.cw-item .src{flex:none;width:96px;display:flex;flex-direction:column;font-weight:600;font-size:14px}
.cw-item .src small{color:var(--muted);font-weight:500;font-size:12px}
.cw-item .ttl{flex:1;min-width:0;display:flex;flex-direction:column}
.cw-item .ttl b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cw-item .ttl small{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cw-item .st{flex:none;font-size:12px;color:var(--muted)}
.cw-item.live{border-color:var(--amber)}
.cw-item.live .st{color:var(--amber)}
.cw-item.done{opacity:.6}
.cw-item.done .st{color:var(--good)}
.cw-item:hover{border-color:var(--tan)}
/* computers with a real keyboard don't need the on-screen one */
@media (hover: hover) and (pointer: fine) { .cw-kb{display:none} .cw-clue{margin-bottom:0} }
