/* Case Files component styles (case-ui.js). Needs the base classes from plaza-base.css (.panel, .primary, .ghost, .hidden, .small). */
.cu .xw{display:grid;grid-template-columns:repeat(5,1fr);gap:3px;width:min(100%,300px);margin:12px auto;touch-action:manipulation}.cu .cell{position:relative;aspect-ratio:1;border-radius:4px}.cu .cell.black{background:#26384c}
.cu .cell input{width:100%;height:100%;padding:0;border:2px solid #26384c;border-radius:4px;background:#fffdf5;color:#26384c;text-align:center;font-weight:900;font-size:clamp(1.1rem,6vw,1.6rem);text-transform:uppercase;caret-color:transparent;cursor:pointer}.cu .cell input:focus{outline:none}
.cu .cell.hl input{background:#fff3b0}.cu .cell.cur input{background:#ffdd52;box-shadow:0 0 0 3px #07549a inset}.cu .cell.done input{background:#c9e8b4;color:#2f6a1f}.cu .cell.bad input{background:#f6c3c0;animation:cu-shake .4s}
.cu .cell .n{position:absolute;left:3px;top:1px;font-size:.62rem;font-weight:800;color:#5d6a76;pointer-events:none;z-index:1}
@keyframes cu-shake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
.cu .clues{display:grid;gap:6px;margin-top:6px}.cu .clue{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:start;padding:7px 9px;border:2px solid #cbbd9c;border-radius:6px;background:#fffdf5;cursor:pointer;text-align:left;color:#26384c}.cu .clue b{color:#274e76;white-space:nowrap}.cu .clue.active{border-color:#26384c;background:#fff3b0}.cu .clue.solved{background:#e1f2d4;border-color:#8fb08d}.cu .clue.solved span{color:#2f6a1f;font-weight:700}
/* suspects */
.cu .suspects{display:grid;gap:10px;margin-top:8px}.cu .sus{border:2px solid #26384c;border-radius:8px;background:#fffdf5;padding:10px 12px;box-shadow:2px 3px 0 #43515e;color:#26384c}.cu .sus.cleared{opacity:.55;background:#eee6d3}.cu .sus.testing{box-shadow:0 0 0 3px #07549a}
.cu .sus .who{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.cu .sus .name{font-weight:900;font-size:1.1rem}.cu .sus .role{color:#5d6a76;font-size:.85rem}.cu .sus q{display:block;margin:6px 0 8px;font-style:italic;line-height:1.4;quotes:"\201C" "\201D"}.cu .sus q .ans{font-style:normal;font-weight:900;color:#2f6a1f}
.cu .acts{display:flex;gap:8px;flex-wrap:wrap}.cu .verdict{margin-top:8px;padding:8px 10px;border-radius:6px;font-size:.92rem;line-height:1.4}.cu .verdict.bad{background:#f6dcda;border:1px solid #d98285}.cu .verdict.ok{background:#dff1d2;border:1px solid #8fb08d}.cu .verdict.open{background:#f3ecd2;border:1px solid #cbbd9c}
.cu .chips{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}.cu .chip{font-size:.72rem;font-weight:800;padding:2px 6px;border-radius:10px;border:1px solid #26384c}.cu .chip.pass{background:#c9e8b4}.cu .chip.fail{background:#f6c3c0}.cu .chip.unknown{background:#ece6d4}
.cu .bar{display:flex;justify-content:space-between;align-items:center;margin:8px 0;font-weight:800;color:#274e76}.cu .msg{min-height:1.4em;font-weight:800;color:#8a3d3d;margin:6px 0}
/* sticky suspect strip + crossing off */
.cu .notes{position:sticky;top:0;z-index:30;margin:0 -14px 12px;padding:8px 14px 8px;background:rgba(248,236,201,.96);border-bottom:3px solid #26384c;box-shadow:0 4px 0 rgba(38,56,76,.12)}
.cu .notes-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:.72rem;font-weight:900;letter-spacing:.08em;color:#8a3d3d}.cu .notes-head small{font-weight:700;letter-spacing:0;color:#5d6a76;margin-left:4px}.cu .probe-pill{color:#274e76;letter-spacing:.02em}
.cu .note-chips{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:6px}@media(min-width:520px){.cu .note-chips{grid-template-columns:repeat(6,1fr)}}
.cu .nchip{position:relative;display:flex;flex-direction:column;align-items:center;padding:5px 4px;border:2px solid #26384c;border-radius:6px 9px 5px 8px;background:#fffdf5;color:#26384c;box-shadow:2px 3px 0 #44525f;cursor:pointer;line-height:1.15}.cu .nchip b{font-size:.95rem}.cu .nchip small{font-size:.62rem;color:#5d6a76}
.cu .nchip.crossed{background:#e9e1cc;color:#8c8575;box-shadow:none}.cu .nchip.crossed b{text-decoration:line-through;text-decoration-thickness:2px;text-decoration-color:#b03a3a}.cu .nchip .xm{position:absolute;right:5px;top:0;font-size:1rem;font-weight:900;color:#b03a3a;line-height:1.1}.cu .nchip.locked{cursor:default}
.cu .cell input,.cu .clue{scroll-margin-top:120px}
.cu .sus.crossed{opacity:.72}.cu .sus.crossed .name{text-decoration:line-through;text-decoration-thickness:2px;text-decoration-color:#b03a3a}
.cu .verdict .cross{margin-top:8px}
.cu .locked-q{margin:6px 0 8px;padding:8px 10px;border:2px dashed #cbbd9c;border-radius:6px;background:#f6f0df;color:#7a735f;font-size:.92rem;line-height:1.4}
.cu .sus .role.riddle{font-style:italic;color:#8a6a10;max-width:60%;text-align:right}
.cu .evidence{display:grid;gap:8px;margin-top:8px}.cu .ev{display:grid;gap:3px;padding:9px 11px;border:2px solid #8fb08d;border-radius:8px;background:#eef7e6;text-align:left;cursor:pointer;animation:cu-evin .5s ease;color:#26384c}.cu .ev b{color:#2f6a1f;letter-spacing:.06em}.cu .ev span{color:#26384c;line-height:1.4}.cu .ev small{color:#5d6a76}@keyframes cu-evin{from{opacity:0;transform:translateY(-6px)}}
.cu .sus.flash{animation:cu-flash 1.4s ease}@keyframes cu-flash{0%,60%{box-shadow:0 0 0 4px #ffdd52,2px 3px 0 #43515e}}
@media(prefers-reduced-motion:reduce){.cu .cell.bad input,.cu .ev,.cu .sus.flash{animation:none}}
.cu .cell.given input{background:#ece3b8;color:#6b4f10}
