:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;--space-xxl:32px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:22px;--radius-full:999px;--font-family:-apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, "Segoe UI", sans-serif;--font-numeric:-apple-system, BlinkMacSystemFont, "SF Pro Display", system-ui, sans-serif;--color-field:#e36559;--color-pop:#e5e9eb;--color-pop-text:#191512;--color-line-strong:#fff;--color-line-hairline:#ffffff52;--color-separator:#ffffff29;--color-text:#fff;--color-text-secondary:#ffffffa6;--color-text-tertiary:#fff6;--color-peer:#ffffff1a;--color-note:#ffffffb8;--color-same-digit:#ffffff3d;--color-danger:#5c1512;--color-hint-evidence:#0b3a20;--color-hint-consequence:#46310b;--color-state-text:#fff}:root[data-theme=sangria]{--color-field:#e36559;--color-pop:#e5e9eb;--color-pop-text:#191512;--color-line-strong:#fff;--color-line-hairline:#ffffff52;--color-separator:#ffffff29;--color-text:#fff;--color-text-secondary:#ffffffa6;--color-text-tertiary:#fff6;--color-peer:#ffffff1a;--color-note:#ffffffb8;--color-same-digit:#ffffff3d;--color-danger:#5c1512;--color-hint-evidence:#0b3a20;--color-hint-consequence:#46310b;--color-state-text:#fff}:root[data-theme=green-field]{--color-field:#1b5e3c;--color-pop:#ffc72c;--color-pop-text:#1b5e3c;--color-line-strong:#fff;--color-line-hairline:#ffffff52;--color-separator:#ffffff29;--color-text:#fff;--color-text-secondary:#ffffffa6;--color-text-tertiary:#fff6;--color-peer:#ffffff1a;--color-note:#ffffffb8;--color-same-digit:#ffffff3d;--color-danger:#f08a7e;--color-hint-evidence:#9bdcb4;--color-hint-consequence:#f0c070;--color-state-text:#191512}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--color-field);color:var(--color-text);font-family:var(--font-family);-webkit-font-smoothing:antialiased;touch-action:manipulation}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}.loading{min-height:100dvh;color:var(--color-text-secondary);place-items:center;display:grid}.app{gap:var(--space-md);width:min(100%,520px);padding:var(--space-lg);padding-top:max(var(--space-lg), env(safe-area-inset-top));padding-bottom:max(var(--space-lg), env(safe-area-inset-bottom));flex-direction:column;min-height:100dvh;margin:0 auto;display:flex}.header{align-items:center;gap:10px;display:flex}.header h1{font:800 15px/1 var(--font-family);letter-spacing:-.02em;color:var(--color-text);flex:none;margin:0}.header-grow{flex:1;min-width:0}.header-more{font:500 16px/1 var(--font-family);color:var(--color-text);background:0 0;border:none;flex:none;padding:0}.status{white-space:nowrap;text-overflow:ellipsis;min-width:0;font:600 12px/1 var(--font-family);color:var(--color-text-secondary);align-items:center;gap:5px;margin:0;display:flex;overflow:hidden}.status-date{color:var(--color-text)}.status-band{color:var(--color-pop);font-weight:700}.status-sep{color:var(--color-text-tertiary)}.timer{font:500 12px/1 var(--font-numeric);font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.difficulties{gap:var(--space-sm);display:flex}.chip{padding:var(--space-sm) 0;border-radius:var(--radius-full);border:1.5px solid var(--color-text);color:var(--color-text-secondary);font:600 13px/1 var(--font-family);background:0 0;flex:1;transition:background .15s,color .15s}.chip.active{background:var(--color-pop);border-color:var(--color-pop);color:var(--color-pop-text)}.play-area{gap:var(--space-md);flex-direction:column;flex:1;min-height:0;display:flex}.play-area>.board{margin:auto}.sheet{z-index:10;max-height:45dvh;padding-bottom:max(var(--space-md), env(safe-area-inset-bottom));background:var(--color-field);border-top:2px solid var(--color-line-strong);border-radius:var(--radius-xl) var(--radius-xl) 0 0;flex-direction:column;transition:transform .24s cubic-bezier(.32,.72,0,1),max-height .24s;animation:.28s cubic-bezier(.32,.72,0,1) sheet-in;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 24px #00000024}.sheet.expanded{max-height:82dvh}@keyframes sheet-in{0%{transform:translateY(100%)}}.sheet-grabber{cursor:grab;touch-action:none;flex:none;place-items:center;height:28px;display:grid}.sheet-grabber span{border-radius:var(--radius-full);background:var(--color-text-tertiary);width:36px;height:5px}.sheet-body{overscroll-behavior:contain;padding:0 var(--space-lg) var(--space-sm);overflow-y:auto}.sheet-divider{margin:var(--space-lg) 0;border:none;border-top:1px solid var(--color-separator)}.hint-section{align-items:flex-start;gap:var(--space-sm);flex-direction:column;display:flex}.hint-section p{color:var(--color-text-secondary);margin:0;font-size:15px;line-height:1.45}.hint-actions-row{gap:var(--space-sm);width:100%;display:flex}.hint-actions-row .tool{flex:1}.hint-section .tool{padding:var(--space-sm) var(--space-xl);flex:none}.hint-section .tool:disabled{opacity:.45}@media (prefers-reduced-motion:reduce){.sheet{animation:none}}.board{aspect-ratio:1;background-color:var(--color-field);border:2px solid var(--color-line-strong);border-radius:var(--radius-lg);grid-template-columns:repeat(9,1fr);width:100%;max-height:100%;display:grid;overflow:hidden;container-type:inline-size}.cell{aspect-ratio:1;background:var(--color-field);border-right:1px solid var(--color-line-hairline);border-bottom:1px solid var(--color-line-hairline);font:400 clamp(16px, 6cqw, 30px) / 1 var(--font-numeric);font-variant-numeric:tabular-nums;place-items:center;padding:0;transition:background-color .12s;display:grid;position:relative}.cell:nth-child(9n+3),.cell:nth-child(9n+6){border-right-color:var(--color-line-strong)}.cell:nth-child(n+19):nth-child(-n+27),.cell:nth-child(n+46):nth-child(-n+54){border-bottom-color:var(--color-line-strong)}.cell:nth-child(9n){border-right:none}.cell:nth-child(n+73){border-bottom:none}.cell.given{color:var(--color-text);font-weight:600}.cell.entry{color:var(--color-pop)}.cell.peer{background:linear-gradient(var(--color-peer), var(--color-peer)), var(--color-field)}.cell.in-unit{background:linear-gradient(var(--color-separator), var(--color-separator)), var(--color-field)}.cell.covered{background:var(--color-same-digit)}.cell.same-digit{background:linear-gradient(var(--color-same-digit), var(--color-same-digit)), var(--color-field)}.cell.affected{background:var(--color-hint-consequence);color:var(--color-state-text)}.cell.hinted{background:var(--color-hint-evidence);color:var(--color-state-text)}.cell.selected{background:var(--color-pop);color:var(--color-pop-text)}.cell.conflict,.cell.faulty{background:var(--color-danger);color:var(--color-state-text)}.cell:focus-visible{outline:2px solid var(--color-pop);outline-offset:-2px;z-index:1}.notes{width:100%;height:100%;color:var(--color-note);grid-template-columns:repeat(3,1fr);padding:8%;font-size:2.6cqw;line-height:1;display:grid}.cell.selected .notes{color:var(--color-pop-text)}.cell.conflict .notes,.cell.hinted .notes,.cell.affected .notes{color:var(--color-state-text)}.notes span{place-items:center;display:grid}.hint{align-items:flex-start;gap:var(--space-md);padding:var(--space-md);border-radius:var(--radius-md);border:1px solid var(--color-separator);background:0 0;display:flex}.hint-body{flex:1;min-width:0}.hint-technique{font:600 12px/1 var(--font-family);text-transform:uppercase;letter-spacing:.04em;color:var(--color-pop);margin-bottom:2px;display:block}.hint p{color:var(--color-text-secondary);margin:0;font-size:14px;line-height:1.4}.hint-effect{color:var(--color-text-tertiary)!important;margin-top:4px!important;font-size:12px!important}.hint-actions{gap:var(--space-xs);flex-direction:column;display:flex}.keypad{gap:var(--space-sm);flex-direction:column;margin-top:auto;display:flex}.tools{gap:var(--space-sm);display:flex}.tool{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);border:1.5px solid var(--color-text);color:var(--color-text);font:500 14px/1 var(--font-family);white-space:nowrap;background:0 0;flex:1}.tool.active{background:var(--color-pop);border-color:var(--color-pop);color:var(--color-pop-text)}.tool:disabled{color:var(--color-text-tertiary);cursor:default}.digits{gap:var(--space-xs);grid-template-columns:repeat(9,1fr);display:grid}.key.digit{padding:var(--space-sm) 0;border-radius:var(--radius-sm);border:1px solid var(--color-line-strong);color:var(--color-text);background:0 0;flex-direction:column;align-items:center;gap:2px;display:flex}.key.digit:disabled{opacity:.32;cursor:default}.key .glyph{font:400 24px/1 var(--font-numeric);font-variant-numeric:tabular-nums}.key .remaining{color:var(--color-text-tertiary);font-size:10px;line-height:1}.notice{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);border:1px solid var(--color-separator);color:var(--color-text-secondary);background:0 0;font-size:13px;display:flex}.notice button{padding:0 var(--space-xs);color:var(--color-text-tertiary);margin-left:auto;font-size:18px;line-height:1}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.hint-technique.warn{color:var(--color-danger)}.completion{align-items:center;gap:var(--space-sm);padding-top:var(--space-sm);text-align:center;flex-direction:column;display:flex}.completion-mark{border-radius:var(--radius-full);background:var(--color-pop);width:44px;height:44px;color:var(--color-pop-text);place-items:center;font-size:24px;line-height:1;display:grid}.completion h2{margin:0;font-size:20px;font-weight:600}.completion-detail{font-variant-numeric:tabular-nums;margin:0!important}.completion-note{margin:0 0 var(--space-sm)!important;color:var(--color-text-tertiary)!important;font-size:13px!important}.completion .tool{width:100%;padding:var(--space-md)}.key .remaining{min-height:1em}.settings h2{margin:0 0 var(--space-md);font-size:20px;font-weight:600}.theme-picker{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-sm) 0;border-bottom:1px solid var(--color-separator);display:flex}.theme-picker-label{font-weight:600}.theme-options{gap:var(--space-sm);display:flex}.theme-option{align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md) var(--space-xs) var(--space-sm);border-radius:var(--radius-full);border:1.5px solid var(--color-text);color:var(--color-text-secondary);font:600 13px/1 var(--font-family);display:flex}.theme-option.active{background:var(--color-pop);border-color:var(--color-pop);color:var(--color-pop-text)}.theme-swatch{border-radius:var(--radius-full);border:2px solid;flex:none;width:18px;height:18px}.setting{gap:var(--space-sm);padding:var(--space-sm) 0;cursor:pointer;align-items:flex-start;display:flex}.setting input{width:1.1rem;height:1.1rem;accent-color:var(--color-pop);flex:none;margin-top:.15em}.setting span{gap:var(--space-xs);flex-direction:column;display:flex}.setting small{color:var(--color-text-secondary);line-height:1.4}.settings h3{margin:var(--space-md) 0 var(--space-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);font-size:13px;font-weight:600}.settings-note{margin:var(--space-md) 0 0;color:var(--color-text-tertiary);font-size:13px}.newgame h2{margin:0 0 var(--space-md);font-size:20px;font-weight:600}.newgame-label{margin:0 0 var(--space-sm);font:600 11px/1 var(--font-family);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary)}.newgame-divider{background:var(--color-separator);height:1px;margin:var(--space-lg) 0 var(--space-md)}.route{justify-content:space-between;align-items:center;gap:var(--space-md);width:100%;padding:var(--space-md);border-radius:var(--radius-sm);border:1.5px solid var(--color-text);color:var(--color-text);text-align:left;background:0 0;display:flex}.route+.route{margin-top:var(--space-sm)}.route-main{flex-direction:column;gap:3px;min-width:0;display:flex}.route-main strong{font:600 15px/1.2 var(--font-family)}.route-main small{font:500 12px/1.35 var(--font-family);color:var(--color-text-secondary)}.route-go{font:600 17px/1 var(--font-family);color:var(--color-text-secondary);flex:none}.calendar{margin-bottom:var(--space-lg)}.calendar-head{justify-content:space-between;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);font:600 14px/1 var(--font-family);display:flex}.calendar-step{padding:var(--space-xs) var(--space-sm);color:var(--color-text-secondary);font:600 18px/1 var(--font-family);background:0 0;border:none}.calendar-dow,.calendar-grid{gap:var(--space-xs);grid-template-columns:repeat(7,1fr);display:grid}.calendar-dow{margin-bottom:var(--space-xs)}.calendar-dow span{text-align:center;font:600 10px/1 var(--font-family);text-transform:uppercase;color:var(--color-text-tertiary)}.calendar-day{aspect-ratio:1;border-radius:var(--radius-sm);font:500 12px/1 var(--font-numeric);font-variant-numeric:tabular-nums;color:var(--color-text-secondary);place-items:center;display:grid;position:relative}.calendar-day.blank{visibility:hidden}.calendar-day.future{color:var(--color-text-tertiary)}.calendar-day.done{background:var(--color-pop);color:var(--color-pop-text);font-weight:700}.calendar-day.started{box-shadow:inset 0 0 0 1.5px var(--color-pop);color:var(--color-text);font-weight:600}.calendar-day.today:after{content:"";background:var(--color-text);border-radius:50%;width:3px;height:3px;position:absolute;bottom:3px;left:50%;transform:translate(-50%)}.calendar-day.today.done:after{background:var(--color-pop-text)}.calendar-band{font:700 7px/1 var(--font-family);opacity:.75;font-style:normal;position:absolute;top:2px;right:3px}.calendar-count{margin:var(--space-md) 0 0;font:500 12px/1 var(--font-family);color:var(--color-text-secondary)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.history h2{margin:0;font-size:20px;font-weight:600}.history-header{justify-content:space-between;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);display:flex}.history-header .tool{flex:none}.history-confirm p{margin:0 0 var(--space-md);color:var(--color-text-secondary);font-size:15px;line-height:1.45}.history-empty{margin:var(--space-xl) 0;text-align:center;color:var(--color-text-secondary);font-size:15px}.history-section{margin:var(--space-lg) 0 var(--space-sm);font:600 11px/1 var(--font-family);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary)}.history-section:first-of-type{margin-top:0}.history-resume{justify-content:space-between;align-items:center;gap:var(--space-md);width:100%;color:inherit;font:inherit;text-align:left;background:0 0;border:none;padding:0;display:flex}.history-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.history-row{align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0;border-bottom:1px solid var(--color-separator);display:flex}.history-row:last-child{border-bottom:none}.history-row-main,.history-row-end{flex-direction:column;gap:2px;display:flex}.history-row-main{flex:1;min-width:0}.history-row-main strong{font-size:15px;font-weight:500}.history-row-main small,.history-row-end small{color:var(--color-text-secondary);font-size:12px}.history-row-end{align-items:flex-end}.history-duration{font:500 15px/1 var(--font-numeric);font-variant-numeric:tabular-nums}.history-archive{border-radius:var(--radius-full);width:32px;height:32px;color:var(--color-text-tertiary);flex:none;place-items:center;font-size:20px;line-height:1;display:grid}.history-archive:active{background:var(--color-same-digit)}.menu{flex-direction:column;display:flex}.menu button{padding:var(--space-md) 0;color:var(--color-text);font:600 15px/1 var(--font-family);text-align:left;background:0 0;border:none}.menu button+button{border-top:1px solid var(--color-separator)}
