:root{--bg: #f3f5f7;--ink: #172f3b;--muted: #596772;--accent: #176b55;--accent-soft: #e1f0e8;--lime: #d8f595;--border: #dce2e7;--control-border: #84949f;--danger: #a13434;--ok: #176b55;--warn: #805100;--card: #fff;--sans: "Segoe UI Variable", "Segoe UI", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--mono: "SFMono-Regular", Consolas, monospace;--radius: 18px}*{box-sizing:border-box}html,body{margin:0;padding:0}html{scroll-padding-bottom:7rem}body{font-family:var(--sans);color:var(--ink);background:var(--bg);min-height:100vh;font-size:15px;line-height:1.5}a{color:var(--accent);text-underline-offset:3px}button,input,select{font:inherit}button,select,input:not([type=checkbox]),summary{min-height:44px}button{cursor:pointer;border:1px solid var(--control-border);background:#fff;color:var(--ink);border-radius:10px;padding:.55rem .85rem;font-weight:600}button:hover:not(:disabled){background:#edf2f3}button.primary{background:var(--ink);border-color:var(--ink);color:#fff}button.primary:hover:not(:disabled){background:#284957}button:disabled{opacity:.5;cursor:not-allowed}input:not([type=checkbox]),select{min-width:0;max-width:100%;border:1px solid var(--control-border);border-radius:10px;padding:.6rem .75rem;background:#fff;color:var(--ink)}input::placeholder{color:#64747e;opacity:1}input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);flex-shrink:0}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}main:focus{outline:none}.icon{display:inline-block;vertical-align:middle;flex-shrink:0}.text-link{border:0;padding:0;background:none;color:var(--accent);text-decoration:underline;text-underline-offset:3px;text-align:left}.text-link:hover:not(:disabled){background:none;text-decoration-thickness:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:fixed;left:1rem;top:-10rem;z-index:60;background:#fff;padding:.75rem}.skip-link:focus{top:.5rem}.app-shell{max-width:1264px;margin:0 auto;padding:0 2rem 3rem}.qa-banner{background:var(--ink);color:#fff;font-size:.8125rem;font-weight:600;padding:.7rem 1rem;border-radius:0 0 10px 10px}.qa-banner-ro{background:#654212;color:#fff}.topnav{min-height:88px;display:flex;align-items:center;gap:2rem;border-bottom:1px solid var(--border);margin-bottom:2rem}.brand{display:inline-flex;align-items:center;gap:.65rem;font-weight:800;font-size:1.15rem;letter-spacing:-.04em;text-decoration:none;color:var(--ink);white-space:nowrap}.brand-mark{display:grid;grid-template-columns:repeat(2,8px);gap:3px;padding:8px;background:var(--ink);border-radius:10px}.brand-mark i{width:8px;height:8px;background:#fff;border-radius:2px}.brand-mark i:last-child{background:var(--lime)}.nav-links{display:flex;align-items:center;gap:.35rem}.nav-links a{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;padding:.5rem .8rem;border-radius:10px;text-decoration:none;font-size:.875rem;font-weight:600;color:var(--muted)}.nav-links a.active{background:#e2e9ec;color:var(--ink)}.nav-links .icon{width:18px;height:18px}.sync-pill{margin-left:auto;display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:var(--muted);min-width:0}.sync-pill>span:before{content:"●";margin-right:.35rem;color:var(--ok);font-size:.65rem}.sync-error>span,.sync-offline>span{color:var(--warn)}.sync-error>span:before,.sync-offline>span:before{color:var(--warn)}.sync-action{display:inline-flex;align-items:center;justify-content:center;border:0;padding:.4rem;gap:.4rem;background:transparent;min-width:44px;font-size:.75rem}.sync-action .icon{width:17px;height:17px}.eyebrow{color:var(--muted);font-weight:750;font-size:.65rem;letter-spacing:.14em;margin:0 0 .5rem}h1{font-family:var(--sans);font-size:clamp(1.75rem,3vw,2.4rem);font-weight:800;letter-spacing:-.045em;margin:0 0 .4rem;line-height:1.15}.lede{color:var(--muted);margin:0 0 1.5rem;max-width:42rem}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem}.page-heading .lede{margin:0;font-size:.875rem}.continue-btn{display:inline-flex;gap:1rem;align-items:center;border-color:var(--border);box-shadow:0 2px 3px #172f3b05;font-size:.8rem;border-radius:12px;white-space:nowrap}.continue-btn strong{color:var(--accent);margin-left:.25rem}.continue-mobile{display:none}.muted{color:var(--muted);font-size:.8125rem}.status-ok{color:var(--ok)}.status-err{color:var(--danger)}.status-warn{color:var(--warn)}.notice{border:1px solid currentColor;border-radius:12px;padding:.85rem 1rem;background:#fff}.notice button{margin-left:.5rem}.field-label{display:block;font-size:.75rem;font-weight:650;margin-bottom:.35rem}.stats-panel{border-radius:var(--radius);margin-bottom:1.5rem;background:#fff}.progress-hero{display:block;background:var(--ink);color:#fff;padding:1.15rem 1.5rem;border-radius:var(--radius);cursor:pointer;list-style:none}.progress-hero::-webkit-details-marker{display:none}.stats-panel[open] .progress-hero{border-radius:var(--radius) var(--radius) 0 0}.hero-top,.hero-bottom{display:flex;justify-content:space-between;align-items:center;gap:.75rem;font-size:.75rem;color:#d3dfe3}.hero-top{font-weight:600}.stats-toggle{display:inline-flex;align-items:center;gap:.4rem;color:var(--lime)}.stats-toggle .icon{width:16px;height:16px}.stats-panel[open] .stats-toggle .icon{transform:rotate(180deg)}.stats-summary{display:flex;align-items:baseline;gap:.5rem;margin:.15rem 0 .65rem;font-variant-numeric:tabular-nums}.stats-summary strong{color:#fff;font-size:2.5rem;line-height:1.3;font-weight:750;letter-spacing:-.05em}.stats-summary>span{color:#d3dfe3;font-size:.9rem}.stats-time{display:inline-flex;align-items:center;gap:.35rem;font-variant-numeric:tabular-nums}.stats-time .icon{width:14px;height:14px}.solve-progress{display:block;width:100%;height:5px;margin:0 0 .65rem;accent-color:var(--lime);border:0;border-radius:4px;overflow:hidden;background:#4a606b}.solve-progress::-webkit-progress-bar{background:#4a606b}.solve-progress::-webkit-progress-value{background:var(--lime)}.solve-progress::-moz-progress-bar{background:var(--lime)}.stats-body{padding:.75rem 1.5rem 1.5rem;border:1px solid var(--border);border-top:0;border-radius:0 0 var(--radius) var(--radius)}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:1rem 0}.stats-grid>div{background:var(--bg);padding:1rem;border-radius:12px;overflow-wrap:anywhere}.stat-label{display:block;color:var(--muted);font-size:.75rem;margin-bottom:.35rem}.stats-grid strong{font-variant-numeric:tabular-nums;font-size:1.1rem}.stats-grid .text-link{font-size:.875rem}.stats-subhead{font-size:.95rem;margin:1.4rem 0 .5rem}.constraint-stats,.recent-solves{list-style:none;margin:0;padding:0;max-height:15rem;overflow:auto;border-radius:4px}.constraint-stats li,.recent-solves li{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.4rem .25rem;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;font-size:.875rem}.recent-solves button{overflow-wrap:anywhere}.recent-solves li>span{white-space:nowrap}.constraint-stats.zero{max-height:10rem}.stats-body details summary{display:flex;align-items:center;cursor:pointer}.filters{display:grid;gap:.85rem;margin-bottom:.5rem}.search-field{display:flex;align-items:center;position:relative;background:#fff;border:1px solid var(--control-border);border-radius:12px;box-shadow:0 2px 4px #172f3b04}.search-field>.icon{margin-left:1rem;color:var(--muted)}.search-field input{border:0;background:transparent;flex:1;width:100%;min-height:52px;padding:.7rem;font-size:1rem;border-radius:12px}.search-field button{border:0;background:transparent;font-size:1.3rem;padding:0;min-width:44px}.status-tabs{display:flex;gap:.25rem;padding:4px;background:#e7ecef;border-radius:11px;width:fit-content;max-width:100%}.status-tabs button{border:0;background:transparent;border-radius:8px;padding:.5rem 1rem;color:var(--muted);font-size:.8rem;min-height:40px}.status-tabs button[aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:0 1px 4px #172f3b15}.browse-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.75rem}.constraint-details{min-width:0}.constraint-details>summary{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;color:var(--ink);font-weight:600;font-size:.8rem;list-style:none}.constraint-details>summary::-webkit-details-marker{display:none}.constraint-details>summary .icon:first-child{width:18px;height:18px}.constraint-details>summary .icon:last-child{width:14px;height:14px}.constraint-details[open]{grid-column:1 / -1;background:#fff;border:1px solid var(--border);border-radius:12px;padding:.5rem 1rem 1rem}.constraint-details[open]>summary .icon:last-child{transform:rotate(180deg)}.sort-field{justify-self:end}.sort-field select{font-size:.8rem;background:transparent;border-color:transparent;font-weight:600;padding-right:0}.constraint-tools{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end;padding:.5rem 0 .75rem}.constraint-tools label{min-width:0}.constraint-tools label:first-child{flex:1}.constraint-tools input{width:100%}.constraint-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem;max-height:20rem;overflow:auto;padding:.25rem}.constraint-panel label{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.6rem;background:var(--bg);border-radius:8px;padding:.5rem;min-height:44px;font-size:.8125rem;border:1px solid transparent;cursor:pointer;overflow-wrap:anywhere}.constraint-panel label.special{background:#f5f1e7}.constraint-panel label.on{border-color:var(--accent);background:var(--accent-soft)}.cons-hint{display:block;color:var(--muted);font-size:.75rem;margin-top:.25rem}.cons-count{font-variant-numeric:tabular-nums;color:var(--muted)}.selected-constraints{display:flex;flex-wrap:wrap;gap:.5rem}.selected-constraints button{background:var(--accent-soft);border-color:#9ebdaf;font-size:.75rem;border-radius:8px}.results-bar{display:flex;align-items:center;gap:1rem;justify-content:space-between;margin-bottom:.5rem}.results-bar p{margin:.35rem 0;font-size:.75rem;color:var(--muted)}.results-bar button{font-size:.75rem}.puzzle-list{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem}.puzzle-row{display:flex;flex-direction:column;gap:.45rem;min-width:0;background:#fff;border:1px solid var(--border);border-radius:16px;padding:.5rem 1rem 1rem;box-shadow:0 3px 8px #172f3b04;scroll-margin-block:2rem 7rem}.puzzle-row.is-solved{border-color:#a6c9b8;background:#fcfefd}.puzzle-card-meta{display:flex;align-items:center;gap:.4rem;min-width:0}.puzzle-num{font-family:var(--mono);font-size:.6875rem;color:#52636f;background:#edf1f4;border-radius:6px;padding:.2rem .4rem;font-weight:700;white-space:nowrap}.is-solved .puzzle-num{color:var(--accent);background:var(--accent-soft)}.puzzle-setter{color:var(--muted);font-size:.75rem;flex:1;min-width:0;overflow-wrap:anywhere;line-height:1.4}.puzzle-identity{min-width:0;overflow-wrap:anywhere}.puzzle-title{font-size:1.15rem;font-weight:750;letter-spacing:-.025em;margin:0;line-height:1.35}.puzzle-title a{display:flex;align-items:center;gap:.5rem;min-height:44px;text-decoration:none;color:var(--ink)}.puzzle-title a>span{flex:1;min-width:0}.puzzle-title a .icon{width:18px;height:18px;color:var(--accent)}.puzzle-title a:hover{color:var(--accent)}.chips{display:flex;flex-wrap:wrap;gap:.3rem;min-width:0;min-height:22px;margin-bottom:auto}.chip{font-size:.6875rem;color:#475965;background:#eef2f5;border-radius:5px;padding:.2rem .5rem;overflow-wrap:anywhere}.puzzle-actions{display:flex;flex-shrink:0}.puzzle-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;border-radius:8px;color:var(--muted)}.puzzle-actions a:hover{background:var(--bg);color:var(--ink)}.puzzle-actions .icon{width:18px;height:18px}.progress-ctl{display:grid;grid-template-columns:minmax(0,1fr) 122px;align-items:center;gap:.5rem;min-width:0;margin-top:.4rem;border-top:1px solid #e8ecef;padding-top:.7rem}.status-controls{display:flex;flex-direction:column;align-items:start;min-width:0}.solved-check{display:inline-flex;align-items:center;gap:.45rem;min-height:44px;font-size:.8125rem;font-weight:600;cursor:pointer;color:var(--muted)}.solved-check input{margin:0}.is-solved .solved-check{color:var(--accent)}.status-menu-wrap{position:relative;flex-shrink:0}.status-menu-btn{width:44px;padding:0;border-color:transparent;background:transparent;border-radius:8px;color:var(--muted)}.status-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:50;background:#fff;border:1px solid var(--control-border);border-radius:12px;box-shadow:0 6px 24px #172f3b20;display:grid;min-width:10rem;padding:.3rem}.status-menu button{border:0;background:transparent;text-align:left;font-size:.875rem}.in-progress-tag{color:var(--warn);font-size:.6875rem;font-weight:600}.time-field{position:relative;min-width:0}.time-field .icon{position:absolute;top:14px;left:10px;width:16px;height:16px;color:var(--muted);pointer-events:none}.time-field input{width:100%;font-family:var(--mono);font-size:.875rem;font-variant-numeric:tabular-nums;padding-left:32px;border-color:var(--control-border);background:#fff}.time-field input[aria-invalid=true]{border:2px solid var(--danger)}.time-error{grid-column:1 / -1;font-size:.75rem;margin:0}.more-btn{width:100%;margin-top:1rem;border-color:var(--border);background:#fff;border-radius:12px;min-height:52px;font-size:.875rem}.empty{grid-column:1 / -1;text-align:center;padding:2.5rem 1rem;background:#fff;border:1px dashed var(--control-border);border-radius:var(--radius)}.empty h2{font-size:1.1rem;margin:0}.empty p{color:var(--muted)}.settings-grid{display:grid;gap:1rem}.settings-block{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;min-width:0}.settings-block h2{font-size:1.1rem;font-weight:750;letter-spacing:-.025em;margin:.65rem 0 .5rem}.settings-icon,.collection-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--accent-soft);color:var(--accent);border-radius:12px}.code-box[readonly]{font-family:var(--mono);font-size:clamp(.95rem,3vw,1.2rem);letter-spacing:.05em;background:var(--bg);padding:.75rem;border-radius:10px;display:block;width:17rem;max-width:100%;margin:.75rem 0 1rem}.row-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.row-actions>label{min-width:0;max-width:100%}.recovery-input{font-family:var(--mono);text-transform:uppercase;flex:1;width:14rem}input[type=file]{border:0;padding:.25rem 0;width:100%;font-size:.875rem;background:transparent}input::file-selector-button{min-height:44px;border:1px solid var(--control-border);background:#fff;color:var(--ink);border-radius:10px;padding:.4rem .7rem;margin-right:.75rem;cursor:pointer}.welcome-page{max-width:840px;margin:3rem auto}.welcome-page>h1{font-size:clamp(2.5rem,6vw,4rem)}.welcome-page>.lede{font-size:1rem;max-width:30rem;margin-top:1rem}.section-grid{display:grid;gap:1rem;margin-top:2rem}.section-card{display:block;text-decoration:none;color:#fff;background:var(--ink);border:1px solid var(--ink);border-radius:22px;padding:2rem}.section-card:hover{background:#234350}.section-card .collection-icon{background:var(--lime);color:var(--ink);margin-bottom:1.5rem}.section-card .eyebrow{display:block;color:var(--lime)}.section-card h2{margin:0 0 .5rem;font-size:1.75rem;letter-spacing:-.04em}.section-card p{margin:0;color:#d3dfe3;max-width:30rem}.collection-cta{display:inline-flex;align-items:center;gap:1rem;margin-top:1.5rem;font-size:.875rem;font-weight:600;color:var(--lime)}.home-note{display:flex;align-items:center;gap:.5rem;margin-top:1.5rem;font-size:.8rem;color:var(--muted)}@media(min-width:740px){.puzzle-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1100px){.puzzle-list{grid-template-columns:repeat(3,minmax(0,1fr))}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.backup-block{grid-column:1 / -1}}@media(max-width:739px){.app-shell{padding:0 1rem calc(6rem + env(safe-area-inset-bottom))}.topnav{min-height:68px;margin-bottom:1rem;gap:.5rem;border:0}.brand{font-size:1.05rem;gap:.5rem}.brand-mark{padding:7px}.sync-pill{font-size:.65rem;gap:0}.sync-action span{display:none}.nav-links{position:fixed;z-index:40;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--border);box-shadow:0 -4px 16px #172f3b06;padding:.35rem 1rem max(.35rem,env(safe-area-inset-bottom));gap:.5rem}.nav-links a{flex:1;flex-direction:column;gap:.2rem;min-height:54px;font-size:.65rem;padding:.4rem .25rem;border-radius:12px}.nav-links .icon{width:20px;height:20px}.nav-links a.active{background:#edf4df;color:#27482d}.page-heading{display:block;margin-bottom:1rem}.page-heading .eyebrow{margin-bottom:.5rem;font-size:.55rem;letter-spacing:.1em}.page-heading h1{font-size:1.8rem;margin:0}.page-heading .lede,.continue-btn{display:none}.continue-mobile{display:inline-flex;align-items:center;padding:0;gap:.3rem;font-size:.7rem;border:0;background:transparent;color:var(--accent)}.continue-mobile .icon{width:14px;height:14px}.stats-panel{margin-bottom:1.2rem}.progress-hero{padding:1rem 1.15rem;border-radius:16px}.hero-top,.hero-bottom{font-size:.6875rem}.stats-summary{margin:.1rem 0 .55rem}.stats-summary strong{font-size:2.1rem}.stats-summary>span{font-size:.8rem}.stats-body{padding:.5rem 1rem 1rem}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.stats-grid>div{padding:.75rem}.filters{gap:.65rem}.browse-controls{grid-template-columns:minmax(0,1fr) auto auto;gap:.4rem}.status-tabs{width:100%}.status-tabs button{flex:1;padding:.5rem .2rem;font-size:.75rem;min-height:44px}.constraint-panel{grid-template-columns:minmax(0,1fr)}.constraint-tools label,.constraint-tools select{width:100%}.sort-field select{font-size:.8125rem}.puzzle-list{gap:.8rem}.time-field input{font-size:1rem;padding-left:30px}.settings-block{padding:1.15rem}.welcome-page{margin-top:1rem}.section-card{padding:1.5rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important}}
