:root{--paper:#f8f4ea;--ink:#183231;--blue:#155b94;--line:#7a857d;--soft:#e8f3e9;--gold:#f6be3b}body{background:var(--paper);color:var(--ink)}button{font:inherit}.s-shell{width:min(1080px,calc(100% - 32px));margin:auto}.s-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:19px 0;border-bottom:1px solid #d9dbd2}.s-brand{font-family:Georgia,serif;font-size:31px;font-weight:800;text-decoration:none;color:var(--ink)}.s-brand span{font-family:system-ui;font-size:23px}.s-nav{display:flex;gap:18px;flex-wrap:wrap}.s-nav a{color:var(--ink);font-size:14px}.s-nav a[aria-current]{font-weight:800;color:var(--blue)}.s-hero{padding:36px 0 20px}.s-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.14em;font-weight:800;color:#a53d1d}.s-hero h1{font-family:Georgia,serif;font-size:clamp(36px,6vw,64px);line-height:1;margin:8px 0}.s-hero p{max-width:720px;line-height:1.5;color:#4e5b55}.s-layout{display:grid;grid-template-columns:minmax(0,620px) minmax(230px,1fr);align-items:start;gap:28px;padding-bottom:50px}.s-panel{background:#fffdf7;border:1px solid #d4d8ce;border-radius:16px;padding:20px;box-shadow:0 9px 28px #233b2412}.s-title{display:flex;justify-content:space-between;gap:10px;align-items:center}.s-title h2{font-family:Georgia,serif;font-size:28px;margin:0}.s-meta{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0 18px}.s-pill{font-size:12px;background:#eef3e9;border-radius:20px;padding:7px 11px}.s-grid{display:grid;grid-template-columns:repeat(9,1fr);width:min(100%,540px);aspect-ratio:1;border:3px solid #233834;background:#233834;margin:auto;touch-action:manipulation}.s-cell{position:relative;border:0;border-right:1px solid #9ca8a2;border-bottom:1px solid #9ca8a2;background:#fffef9;color:#173132;font-size:clamp(15px,3.1vw,30px);font-weight:500;padding:0;min-width:0}.s-cell.box-r{border-right:3px solid #233834}.s-cell.box-b{border-bottom:3px solid #233834}.s-cell.given{background:#e7e8dc;font-weight:800}.s-cell.peer{background:#edf5ed}.s-cell.same{background:#dbeadc}.s-cell.selected{background:#f6d45a;outline:3px solid #17416b;outline-offset:-3px;z-index:1}.s-cell.notes{font-size:10px;letter-spacing:.03em;line-height:1.1;word-break:break-all;padding:3px}.s-controls{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:18px 0 8px}.s-button,.s-number{border:1px solid #aebbb4;background:#fffdf7;color:#173132;border-radius:11px;padding:11px 13px;min-height:44px;cursor:pointer}.s-button.active{background:#155b94;color:white;border-color:#155b94}.s-button.primary{background:#176e51;color:white;border-color:#176e51;font-weight:800}.s-button:disabled{opacity:.5;cursor:not-allowed}.s-number{font-size:21px;font-weight:800;min-width:45px}.s-number:hover,.s-button:hover{border-color:#155b94}.s-number:focus-visible,.s-button:focus-visible,.s-cell:focus-visible,a:focus-visible{outline:3px solid #ffae29;outline-offset:2px}.s-status{min-height:24px;font-size:14px;color:#4d5b55}.s-list{display:grid;gap:10px}.s-card{width:100%;text-align:left;border:1px solid #cbd2c7;background:#fffdf7;border-radius:12px;padding:14px;color:inherit;cursor:pointer}.s-card.active{border:2px solid #155b94;background:#edf4f9}.s-card strong,.s-card span{display:block}.s-card span{font-size:13px;color:#57665c;margin-top:5px}.s-note{font-size:13px;line-height:1.5;color:#4e5b55}.s-done{background:#e7f4e8;padding:16px;border-radius:12px;margin-top:14px}.s-footer{border-top:1px solid #d9dbd2;font-size:12px;color:#53615a;padding:20px 0;text-align:center}@media(max-width:800px){.s-layout{grid-template-columns:1fr}.s-panel{padding:12px}.s-hero{padding-top:23px}.s-cell{font-size:clamp(16px,5vw,27px)}.s-nav{gap:10px}.s-number{min-width:9%;padding:8px}}
html,body{height:100%;overflow:hidden}body{margin:0}#sudoku-app{height:100%;display:flex;flex-direction:column}.s-head{flex:none;height:54px;padding:0;border-bottom:1px solid #d9dbd2}.s-shell{width:min(1450px,calc(100% - 24px))}main.s-shell{flex:1;min-height:0;display:flex;flex-direction:column}.s-hero{flex:none;padding:8px 0}.s-hero h1{font-size:25px;margin:2px 0}.s-layout{flex:1;min-height:0;padding-bottom:6px;grid-template-columns:minmax(0,1fr) minmax(240px,.45fr);gap:12px}.s-panel{min-height:0;overflow:hidden;padding:8px;box-shadow:none}.s-panel:first-child{display:flex;flex-direction:column;align-items:center}.s-title,.s-meta{align-self:stretch}.s-title h2{font-size:20px}.s-meta{margin:5px 0}.s-pill{padding:5px 8px}.s-grid{flex:none;width:min(100%,calc(100dvh - 290px),610px)}.s-controls{margin:5px 0 0;gap:4px}.s-button,.s-number{min-height:32px;padding:5px 8px;font-size:12px}.s-number{min-width:34px;font-size:16px}.s-status{font-size:11px;min-height:14px;margin:4px 0}.s-list{max-height:75%;overflow:auto}.s-card{padding:8px}.s-note{font-size:11px;margin:8px 0}.s-footer{display:none}@media(max-width:800px){.s-head{height:45px}.s-brand{font-size:22px}.s-nav{gap:9px}.s-nav a{font-size:11px}.s-nav a:last-child{display:none}.s-layout{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:4px}.s-panel{padding:5px}.s-panel:last-child{max-height:90px}.s-panel:last-child h2,.s-note{display:none}.s-list{display:flex;overflow:auto;max-height:75px}.s-card{min-width:120px;padding:5px}.s-card span{font-size:10px}.s-grid{width:min(100%,calc(100dvh - 335px),500px)}.s-cell{font-size:clamp(15px,5vw,26px)}.s-number{min-width:9%;padding:4px}.s-controls{width:100%}.s-controls:last-of-type{flex-wrap:nowrap;overflow:auto}.s-button{white-space:nowrap}.s-hero h1{font-size:19px}.s-meta{font-size:10px}}@media(max-height:620px){.s-grid{width:min(100%,calc(100dvh - 195px),420px)}.s-panel:last-child{display:none}}


/* Keep the board, controls, and date picker reachable on short screens. */
html,body{height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto}
#sudoku-app{height:auto;min-height:100dvh;display:block}
main.s-shell{display:block;min-height:0}
.s-hero{padding:18px 0}
.s-layout{display:grid;align-items:start;padding-bottom:24px}
.s-panel{overflow:visible;min-height:0}
.s-grid{width:min(100%,540px)}
.s-list{max-height:none;overflow:visible}
.s-footer{display:block}
@media(max-width:800px){.s-layout{grid-template-columns:1fr;grid-template-rows:auto;gap:16px}.s-grid{width:min(100%,500px)}.s-panel:last-child{display:block;max-height:none}.s-panel:last-child h2,.s-note{display:block}.s-list{display:grid;max-height:none;overflow:visible}.s-controls:last-of-type{flex-wrap:wrap;overflow:visible}}
.s-cell.accepted{color:#087c6e}.s-cell.wrong{background:#ffe4df!important;animation:reject .28s linear 2}@keyframes reject{25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}
.s-brand{display:flex;align-items:center;gap:5px;font-family:Arial,sans-serif;font-size:23px;font-weight:900}.s-brand .brand-mark{width:30px;height:30px}
@media(min-width:801px){html,body{height:100%;overflow:hidden}#sudoku-app{height:100%;min-height:0;display:flex}.s-head{height:56px}.s-hero{padding:4px 0}.s-hero h1{font-size:24px}.s-layout{display:grid;grid-template-columns:minmax(0,1fr) 240px;flex:1;min-height:0}.s-panel{overflow:hidden}.s-grid{width:min(100%,calc(100dvh - 265px),560px)}.s-list{max-height:70vh;overflow:auto}main.s-shell{display:flex;padding-bottom:8px}.leeroline{flex:none}}
@media(max-width:800px){.s-grid{width:min(100%,calc(100dvh - 265px),500px)}.s-controls{margin-top:10px}.s-hero{padding:9px 0}}
@media(max-width:800px){.s-nav a:last-child{display:inline}.s-nav{gap:8px}.s-nav a{font-size:11px}}
