:root{--ink:#172033;--muted:#687386;--line:#a7b2c2;--heavy:#253650;--blue:#2962d8;--blue-soft:#e7efff;--same:#d9e6ff;--wrong:#c93636;--wrong-bg:#fff0f0;--paper:#fff;--bg:#f4f7fb;--shadow:0 18px 50px rgba(24,39,75,.10);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);min-height:100vh;-webkit-tap-highlight-color:transparent}.topbar{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 max(18px,env(safe-area-inset-left));max-width:1040px;margin:auto}.brand{border:0;background:none;display:flex;align-items:center;gap:10px;font-size:1.03rem;font-weight:750;color:var(--ink);cursor:pointer;padding:8px 0}.brand-mark{display:grid;place-items:center;width:31px;height:31px;background:var(--ink);color:white;border-radius:9px;font-family:Georgia,serif;font-size:1.18rem}.icon-btn{width:44px;height:44px;border:0;background:transparent;border-radius:12px;display:grid;place-items:center;cursor:pointer}.icon-btn:hover{background:#e8edf5}.icon-btn svg{width:23px;fill:none;stroke:var(--ink);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}main{max-width:1040px;margin:auto;padding:8px 16px 28px}.home{max-width:760px;margin:4vh auto 0}.eyebrow{margin:0;color:var(--blue);font-size:.8rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.home h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.4rem,5.6vw,3.65rem);line-height:1;margin:10px 0 12px;font-weight:600;letter-spacing:-.035em;white-space:nowrap}.home-copy{font-size:1.04rem;color:var(--muted);margin:0 0 28px}.difficulty-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.difficulty-card{border:1px solid #dce2eb;background:var(--paper);border-radius:18px;min-height:144px;padding:20px;text-align:left;cursor:pointer;box-shadow:0 5px 20px rgba(28,45,80,.04);transition:.18s ease}.difficulty-card:hover,.difficulty-card:focus-visible{transform:translateY(-2px);border-color:#9fb9ed;box-shadow:var(--shadow);outline:none}.difficulty-card strong{display:block;font-family:Georgia,serif;font-size:1.5rem;margin-bottom:8px}.difficulty-card span{color:var(--muted);font-size:.9rem}.difficulty-card b{display:inline-block;margin-top:18px;color:var(--blue);font-size:.85rem}.stats-strip{margin-top:28px;background:#18243a;color:#fff;border-radius:18px;padding:20px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat{text-align:center}.stat strong{display:block;font-size:1.5rem}.stat span{font-size:.76rem;color:#bfc9d8}.game{display:grid;grid-template-columns:minmax(310px,540px) minmax(235px,300px);gap:clamp(24px,6vw,68px);justify-content:center;align-items:start}.game-main{min-width:0}.game-head{display:flex;align-items:flex-end;justify-content:space-between;margin:4px 0 12px}.game-title{margin:0;font-family:Georgia,serif;font-size:1.5rem}.puzzle-meta{color:var(--muted);font-size:.82rem;margin-top:3px}.timer-area{display:flex;align-items:center;gap:8px}.timer{font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:750}.pause-btn{border:1px solid #d7deea;background:white;border-radius:10px;width:40px;height:40px;cursor:pointer;font-size:1rem}.board-wrap{position:relative}.board{display:grid;grid-template-columns:repeat(9,1fr);width:100%;aspect-ratio:1;border:2px solid var(--heavy);background:var(--heavy);gap:1px;box-shadow:0 8px 28px rgba(19,35,64,.09);touch-action:manipulation}.cell{position:relative;border:0;background:white;color:#2054ae;display:grid;place-items:center;font-size:clamp(1.18rem,5.6vw,2rem);font-weight:600;padding:0;cursor:pointer}.cell.given{color:#172033;font-weight:760}.cell.peer{background:#f0f4fa}.cell.same{background:var(--same)}.cell.selected{background:#c6d9ff;box-shadow:inset 0 0 0 2px var(--blue);z-index:1}.cell.wrong{color:var(--wrong);background:var(--wrong-bg)}.cell:nth-child(3n):not(:nth-child(9n)){border-right:2px solid var(--heavy)}.cell:nth-child(n+19):nth-child(-n+27),.cell:nth-child(n+46):nth-child(-n+54){border-bottom:2px solid var(--heavy)}.notes{position:absolute;inset:2px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);font-size:clamp(.43rem,1.8vw,.68rem);font-weight:650;line-height:1;color:#345789}.notes span{display:grid;place-items:center}.pause-cover{position:absolute;inset:2px;background:rgba(250,252,255,.98);display:grid;place-items:center;text-align:center;z-index:4}.pause-cover strong{font-family:Georgia,serif;font-size:1.6rem;display:block;margin-bottom:8px}.pause-cover button{border:0;background:var(--blue);color:white;border-radius:12px;padding:13px 22px;font-size:1rem;font-weight:700}.tools{display:flex;gap:10px;margin-top:14px}.tool-btn{flex:1;min-height:48px;border:1px solid #d8dfeb;background:white;border-radius:12px;font-weight:700;color:var(--ink);cursor:pointer}.tool-btn.active{background:var(--ink);color:white;border-color:var(--ink)}.tool-btn span{display:block;font-size:.69rem;font-weight:500;opacity:.7;margin-top:2px}.game-side{padding-top:58px}.number-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.number-btn{aspect-ratio:1;border:1px solid #d6deea;background:white;color:#2054ae;border-radius:14px;font-size:1.55rem;font-weight:720;cursor:pointer;box-shadow:0 3px 9px rgba(26,45,80,.04)}.number-btn:hover{border-color:#87a8eb;background:#f8faff}.number-btn.done{opacity:.28}.mistakes{text-align:center;color:var(--muted);font-size:.85rem;margin:16px 0 0}.modal-backdrop{position:fixed;inset:0;background:rgba(14,25,43,.55);display:grid;place-items:center;padding:18px;z-index:10}.modal{background:white;border-radius:22px;padding:28px;width:min(440px,100%);box-shadow:0 28px 80px rgba(12,24,43,.3);text-align:center}.modal-icon{width:58px;height:58px;border-radius:50%;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;margin:0 auto 14px;font-size:1.65rem}.modal h2{font-family:Georgia,serif;font-size:1.85rem;margin:0 0 6px}.modal-sub{color:var(--muted);margin:0 0 22px}.result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:18px}.result-grid div{background:#f4f7fb;padding:12px 5px;border-radius:12px}.result-grid strong{display:block;font-size:1.04rem}.result-grid span{color:var(--muted);font-size:.7rem}.modal button{width:100%;min-height:48px;border-radius:12px;font-size:.96rem;font-weight:720;cursor:pointer;margin-top:8px}.primary{border:0;background:var(--blue);color:white}.secondary{border:1px solid #d8dfeb;background:white;color:var(--ink)}.stats-page{max-width:700px;margin:3vh auto}.stats-page h1{font-family:Georgia,serif;font-size:2.4rem;margin:8px 0 24px}.stats-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stats-card{background:white;border:1px solid #dce2eb;border-radius:16px;padding:20px}.stats-card strong{display:block;font-size:1.7rem}.stats-card span{color:var(--muted);font-size:.8rem}.table-card{background:white;border:1px solid #dce2eb;border-radius:16px;margin-top:14px;padding:8px 18px}.stats-row{display:grid;grid-template-columns:1fr 1fr 1fr;padding:14px 0;border-bottom:1px solid #e7ebf1;font-size:.9rem}.stats-row:last-child{border:0}.stats-row.header{color:var(--muted);font-size:.75rem}.back-btn{border:0;background:none;color:var(--blue);padding:8px 0;font-weight:700;cursor:pointer}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);background:#172033;color:white;border-radius:11px;padding:11px 18px;opacity:0;pointer-events:none;transition:.2s;z-index:20;font-size:.9rem}#toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:700px){.topbar{height:54px}.brand-mark{width:29px;height:29px}main{padding:2px 10px 20px}.home{margin-top:3vh}.home h1{font-size:clamp(2.35rem,11.5vw,3.15rem);white-space:normal}.home h1 span{display:block}.difficulty-grid{grid-template-columns:1fr}.difficulty-card{min-height:96px;padding:16px 18px}.difficulty-card strong{font-size:1.3rem}.difficulty-card b{float:right;margin-top:-29px}.stats-strip{padding:16px 8px}.game{display:block;max-width:540px;margin:auto}.game-head{margin-top:0}.game-title{font-size:1.25rem}.board{box-shadow:none}.game-side{padding-top:11px}.number-pad{grid-template-columns:repeat(9,1fr);gap:4px}.number-btn{border-radius:9px;font-size:clamp(1.15rem,6vw,1.55rem);min-height:42px}.mistakes{margin:10px 0 0}.tools{margin-top:9px}.tool-btn{min-height:44px}.stats-cards{grid-template-columns:repeat(2,1fr)}.result-grid{gap:5px}.modal{padding:24px 18px}}
@media(max-width:370px){.topbar{height:48px}.game-title{font-size:1.1rem}.puzzle-meta{font-size:.72rem}.timer{font-size:.95rem}.pause-btn{width:36px;height:36px}.tools{gap:5px}.tool-btn{font-size:.78rem}.number-pad{gap:2px}.number-btn{border-radius:7px;min-height:37px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Optical logo alignment and an intentional two-line mobile headline. */
.brand-mark{display:flex;align-items:center;justify-content:center;padding:0 0 2px;line-height:1;text-align:center;color:var(--bg)}
@media(max-width:700px){.brand-mark{padding:0}.home h1{font-size:clamp(2.05rem,9.5vw,2.7rem)}.home h1 span{white-space:nowrap}}

/* Keep the three headline statistics balanced in one mobile row. */
@media(max-width:700px){.stats-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.stats-card{min-width:0;padding:14px 7px;text-align:center}.stats-card strong{font-size:clamp(1.25rem,5.5vw,1.6rem)}.stats-card span{display:block;line-height:1.25}}

/* Give every difficulty-card state a stable, aligned action position. */
.difficulty-card{display:flex;flex-direction:column}.difficulty-card>span{display:block}.difficulty-card>b{margin-top:auto;padding-top:18px}
@media(max-width:700px){.difficulty-card{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:12px}.difficulty-card>strong{grid-column:1;grid-row:1}.difficulty-card>span{grid-column:1;grid-row:2}.difficulty-card>b{grid-column:2;grid-row:1/3;align-self:center;float:none;margin:0;padding:0;white-space:nowrap}}

.delete-member-button{border-color:#edc5c5!important;color:var(--wrong)!important;background:#fff!important}.delete-member-button:hover,.delete-member-button:focus-visible{background:var(--wrong-bg)!important}.danger-icon{background:var(--wrong-bg);color:var(--wrong)}.danger-button{border:0;background:var(--wrong);color:#fff}.delete-member-modal .modal-sub{line-height:1.55}

/* Keep all 81 cells perfectly even, regardless of their content. */
.board{grid-template-columns:repeat(9,minmax(0,1fr));grid-template-rows:repeat(9,minmax(0,1fr))}
.cell{min-width:0;min-height:0}
.game-home-btn{border:0;background:transparent;color:var(--blue);padding:0 0 7px;font-size:.88rem;font-weight:750;cursor:pointer}
.game-home-btn:hover,.game-home-btn:focus-visible{text-decoration:underline}
.game-side{padding-top:81px}
@media(max-width:700px){.game-home-btn{font-size:.84rem;padding-bottom:5px}.game-side{padding-top:11px}}

/* Prevent narrow touch screens from panning a few pixels side to side. */
html,body{width:100%;max-width:100%;overflow-x:hidden}
#app,main,.game,.game-main,.board-wrap,.board,.game-side,.number-pad{min-width:0;max-width:100%}
.number-btn,.tool-btn{min-width:0}
@media(max-width:700px){main{width:100%}.game{width:100%;overflow-x:clip}.board{width:100%}.number-pad{width:100%}}

.landing{max-width:900px;margin:5vh auto 0;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,390px);gap:clamp(32px,8vw,88px);align-items:center}.landing-copy h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(3.2rem,8vw,5.4rem);line-height:.94;margin:12px 0 22px;letter-spacing:-.05em;font-weight:600}.landing-lead{font-size:1.12rem;line-height:1.65;color:var(--muted);max-width:550px}.landing-actions{display:flex;align-items:center;gap:20px;margin-top:30px;flex-wrap:wrap}.landing-primary{width:auto;min-height:52px;padding:0 22px;text-transform:uppercase;letter-spacing:.04em}.landing-signin{border:0;background:transparent;color:var(--blue);font-size:.96rem;font-weight:750;cursor:pointer}.landing-board{background:white;border:1px solid #dce2eb;padding:22px;border-radius:22px;box-shadow:var(--shadow);transform:rotate(1deg)}.mini-grid{display:grid;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(9,1fr);aspect-ratio:1;border:2px solid var(--heavy);background:var(--heavy);gap:1px}.mini-grid span{display:grid;place-items:center;background:white;font-family:Georgia,serif;font-size:clamp(.7rem,2vw,1.1rem);font-weight:700}.mini-grid span:nth-child(3n):not(:nth-child(9n)){border-right:2px solid var(--heavy)}.mini-grid span:nth-child(n+19):nth-child(-n+27),.mini-grid span:nth-child(n+46):nth-child(-n+54){border-bottom:2px solid var(--heavy)}.benefits{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:34px}.benefits div{border-top:1px solid #d7deea;padding-top:16px}.benefits strong,.benefits span{display:block}.benefits span{color:var(--muted);font-size:.86rem;margin-top:4px}@media(max-width:700px){.landing{display:block;margin:4vh auto 0;padding:0 8px;text-align:center}.landing-copy h1{font-size:3.45rem}.landing-lead{font-size:1rem;line-height:1.55}.landing-actions{display:grid;gap:12px}.landing-primary{width:100%}.landing-board{width:min(76vw,330px);margin:36px auto 0;padding:15px}.benefits{display:grid;grid-template-columns:1fr;margin-top:34px;text-align:left}.benefits div{padding:13px 4px}}

.signin-form{text-align:left}.signin-form .modal-icon,.signin-form h2,.signin-form .modal-sub{text-align:center}.email-label{display:block;font-size:.86rem;font-weight:750;margin-bottom:7px}.signin-form input{width:100%;min-height:50px;border:1px solid #c8d1df;border-radius:12px;padding:0 14px;font:inherit;color:var(--ink);outline:none}.signin-form input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.form-error{min-height:20px;margin:7px 0 0;color:var(--wrong);font-size:.82rem}.modal button:disabled,.access-actions button:disabled{opacity:.6;cursor:wait}.member-line{display:flex;justify-content:space-between;align-items:center;gap:16px;color:var(--muted);font-size:.8rem;margin-bottom:24px;padding:10px 12px;background:rgba(255,255,255,.7);border:1px solid #e0e6ef;border-radius:12px}.member-line>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.member-line button{border:0;background:transparent;color:var(--blue);border-radius:8px;padding:8px 9px;font-weight:700;cursor:pointer}.member-line button:hover,.member-line button:focus-visible{background:var(--blue-soft);outline:none}.access-page{max-width:560px;margin:8vh auto;background:white;border:1px solid #dce2eb;border-radius:22px;padding:clamp(26px,6vw,48px);box-shadow:var(--shadow);text-align:center}.access-page h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.1rem,7vw,3.2rem);line-height:1.05;margin:12px 0}.access-page>p:not(.eyebrow){color:var(--muted);line-height:1.6}.access-actions{display:grid;gap:10px;margin-top:24px}.access-actions button{min-height:49px;border-radius:12px;font-size:.95rem;font-weight:720;cursor:pointer}

.admin-page{max-width:960px;margin:3vh auto}.admin-head h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.2rem,7vw,3.3rem);line-height:1;margin:10px 0 24px}.member-search{background:white;border:1px solid #dce2eb;border-radius:16px;padding:18px;margin-bottom:14px}.member-search label{display:block;font-size:.85rem;font-weight:750;margin-bottom:8px}.member-search>div{display:grid;grid-template-columns:1fr auto;gap:8px}.member-search input{min-width:0;min-height:46px;border:1px solid #c8d1df;border-radius:10px;padding:0 13px;font:inherit}.member-search button{min-height:46px;border-radius:10px;padding:0 20px;font-weight:750}.member-list{display:grid;gap:12px}.member-row{background:#fff;border:1px solid #dce2eb;border-radius:16px;padding:18px}.member-row-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.member-identity{min-width:0}.member-identity strong,.member-identity span,.member-identity small{display:block}.member-identity strong{overflow-wrap:anywhere}.member-identity span,.member-identity small{color:var(--muted);font-size:.8rem;margin-top:3px}.member-controls{display:flex;align-items:center;gap:10px}.member-row .status{color:var(--muted);font-size:.8rem;font-weight:750}.member-row .status.active{color:#177245}.activity-state{display:inline-flex;margin-top:16px;border-radius:999px;padding:5px 9px;font-size:.76rem;font-weight:750;background:#edf1f7;color:#526078}.activity-state.recent{background:#e8f7ee;color:#177245}.activity-state.inactive{background:#fff2e3;color:#935c15}.activity-state.never{background:#f1f3f7;color:#5b6575}.activity-state.started{background:#edf3ff;color:#245cdb}.member-activity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:13px;padding-top:14px;border-top:1px solid #e7ebf1}.member-activity-grid span{display:block;color:var(--muted);font-size:.76rem;margin-bottom:4px}.member-activity-grid strong{display:block;font-size:.9rem;overflow-wrap:anywhere}.activity-pending{margin:14px 0 0;color:var(--muted);font-size:.82rem}.compact{min-height:38px;border-radius:9px;padding:0 13px;font-weight:750;cursor:pointer}.loading-row,.empty-row{padding:22px;color:var(--muted);text-align:center}
@media(max-width:600px){.member-line{display:block;padding:10px 8px 7px}.member-line>span{display:block;width:100%;padding:0 5px 7px}.member-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}.member-actions button{min-height:40px;padding:7px 4px;font-size:.78rem}.member-row-head{display:block}.member-controls{display:grid;grid-template-columns:auto 1fr 1fr;margin-top:14px}.member-controls .status{align-self:center}.member-controls button{padding:0 8px}.member-activity-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 10px}.member-search>div{grid-template-columns:1fr}.member-search button{width:100%}}
.difficulty-card:disabled{cursor:default;transform:none;box-shadow:none}.difficulty-card.completed{background:#f1f8f4;border-color:#b9dcc7}.difficulty-card.completed b{color:#28794a}

.stats-row{grid-template-columns:1.1fr .8fr 1fr 1fr}
.library-invite{margin-top:18px;background:#fff;border:1px solid #dce2eb;border-radius:18px;padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:24px}.library-invite h2{font-family:Georgia,serif;font-size:1.5rem;margin:6px 0}.library-invite p:not(.eyebrow){color:var(--muted);font-size:.9rem;margin:0}.library-invite button{border:0;background:transparent;color:var(--blue);font-weight:750;white-space:nowrap;cursor:pointer;padding:12px 0}
.library-page{max-width:780px;margin:3vh auto}.library-head h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.5rem,7vw,3.7rem);line-height:1;margin:10px 0}.library-head>p:last-child{color:var(--muted);margin:0 0 24px}.library-filters{display:flex;justify-content:space-between;gap:16px;margin-bottom:16px}.library-filters>div{display:flex;gap:6px;flex-wrap:wrap}.filter-chip{min-height:38px;border:1px solid #d3dbe7;background:#fff;color:var(--ink);border-radius:999px;padding:0 14px;font-weight:700;cursor:pointer}.filter-chip.active{background:var(--ink);border-color:var(--ink);color:#fff}.archive-list{display:grid;gap:9px}.archive-card{display:grid;grid-template-columns:1.2fr 1.4fr auto;align-items:center;gap:16px;background:#fff;border:1px solid #dce2eb;border-radius:14px;padding:15px 17px}.archive-card>div:first-child span,.archive-card>div:first-child strong,.archive-status span,.archive-status small{display:block}.archive-card>div:first-child span{color:var(--muted);font-size:.78rem;margin-bottom:3px}.archive-card>div:first-child strong{font-family:Georgia,serif;font-size:1.15rem}.archive-status{font-size:.82rem;color:var(--muted)}.archive-status .complete-label{color:#28794a;font-weight:750}.archive-status small{margin-top:3px}.archive-card>button,.load-more-wrap button{min-height:40px;border-radius:10px;padding:0 15px;font-weight:750;cursor:pointer}.library-empty{background:#fff;border:1px solid #dce2eb;border-radius:14px;padding:38px;text-align:center}.library-empty strong,.library-empty span{display:block}.library-empty span{color:var(--muted);margin-top:5px}.load-more-wrap{text-align:center;padding:12px}.load-more-wrap button{min-width:190px}
@media(max-width:700px){.library-invite{display:block;padding:19px}.library-invite button{padding-bottom:0}.library-page{margin-top:2vh}.library-filters{display:block}.library-filters>div{display:grid;width:100%;gap:7px}.library-filters>div:first-child{grid-template-columns:repeat(4,minmax(0,1fr))}.library-filters>div:last-child{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:10px}.filter-chip{width:100%;min-height:44px;padding:0 6px;font-size:.86rem}.archive-card{grid-template-columns:1fr auto;gap:9px 12px}.archive-status{grid-column:1}.archive-card>button{grid-column:2;grid-row:1/3}.stats-row{grid-template-columns:1fr .75fr 1fr 1fr;font-size:.8rem}.stats-row.header{font-size:.68rem}}

.community-results{border:1px solid #d8e3f5;background:#f7faff;border-radius:15px;padding:15px;margin:0 0 12px;text-align:left}.community-title{margin:0 0 11px;color:var(--blue);font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.community-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:8px}.community-grid>div{background:#fff;border-radius:10px;padding:10px}.community-grid strong,.community-grid span{display:block}.community-grid strong{font-size:1.08rem}.community-grid span{color:var(--muted);font-size:.7rem;line-height:1.25;margin-top:2px}.community-message{margin:11px 2px 0;color:var(--ink);font-size:.86rem;line-height:1.35}.community-message strong{color:var(--blue)}

/* Honest Daily participation, kept secondary to the puzzles. */
.daily-participation-summary{display:inline-flex;align-items:center;min-height:30px;margin:-14px 0 16px;color:#4f6078;font-size:.82rem;font-weight:650}.daily-participation-summary:before{content:"";width:7px;height:7px;border-radius:50%;background:#2e9c65;margin-right:8px}.difficulty-card>em{display:block;margin-top:8px;color:#62728a;font-size:.76rem;font-style:normal}.difficulty-card>b{padding-top:13px}

/* Safe reset and comfortable touch targets. */
.reset-tool{color:#8b3b3b}.back-btn,.game-home-btn{display:inline-flex;align-items:center;min-height:44px;padding:8px 4px}.pause-btn,.icon-btn,.brand{min-width:44px;min-height:44px}.month-navigation{display:grid;grid-template-columns:46px minmax(180px,1fr) 46px auto;gap:8px;align-items:end;margin:0 0 14px}.month-navigation>button{min-width:44px;min-height:46px;border:1px solid #d3dbe7;background:#fff;color:var(--blue);border-radius:11px;font-size:1.05rem;font-weight:750;cursor:pointer}.month-navigation>button:disabled{color:#9aa5b5;background:#f0f3f7;cursor:default}.month-navigation label span{display:block;color:var(--muted);font-size:.72rem;font-weight:700;margin:0 0 4px 2px}.month-navigation input{width:100%;min-height:46px;border:1px solid #c8d1df;border-radius:11px;background:#fff;color:var(--ink);padding:0 12px;font:inherit;font-weight:700}.month-navigation .current-month-button{padding:0 14px;font-size:.78rem;white-space:nowrap}

@media(max-width:700px){.difficulty-card{grid-template-rows:auto auto auto;min-height:112px}.difficulty-card>strong{grid-column:1;grid-row:1}.difficulty-card>span{grid-column:1;grid-row:2}.difficulty-card>em{grid-column:1;grid-row:3;margin-top:5px}.difficulty-card>b{grid-column:2;grid-row:1/4}.game-home-btn,.back-btn{font-size:.92rem;padding:10px 5px}.number-btn{min-height:44px}.month-navigation{grid-template-columns:46px minmax(0,1fr) 46px}.month-navigation .current-month-button{grid-column:1/-1;min-height:44px}.library-filters{margin-top:18px}}
@media(max-width:370px){.number-btn{min-height:42px}.month-navigation{grid-template-columns:44px minmax(0,1fr) 44px}}

/* Library browse modes */
.library-control{margin-bottom:14px}.library-control>span{display:block;color:var(--muted);font-size:.75rem;font-weight:750;margin:0 0 7px 2px}.library-view-tabs,.library-difficulty{display:flex;gap:7px;flex-wrap:wrap}.difficulty-control{margin-top:4px}.library-control .filter-chip{min-height:40px;padding:0 17px}.month-navigation select{width:100%;min-height:46px;border:1px solid #c8d1df;border-radius:11px;background:#fff;color:var(--ink);padding:0 12px;font:inherit;font-weight:700}
@media(max-width:700px){.library-view-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.library-difficulty{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%}.library-control .filter-chip{width:100%;min-height:44px;padding:0 6px;font-size:.86rem}}

/* Achievements: meaningful progress without crowding the daily game. */
.achievements-section{margin-top:22px}.achievements-heading h2{font-family:Georgia,"Times New Roman",serif;font-size:1.8rem;margin:6px 0 16px}.achievement-summary{display:grid;grid-template-columns:.85fr 1.3fr;gap:12px;margin-bottom:20px}.status-card,.next-achievement{background:#fff;border:1px solid #dce2eb;border-radius:16px;padding:18px}.status-card span,.next-achievement>span{display:block;color:var(--muted);font-size:.78rem;font-weight:700;margin-bottom:7px}.status-card strong,.next-achievement strong{display:block;font-family:Georgia,serif;font-size:1.25rem}.achievement-progress{height:9px;background:#e8edf4;border-radius:999px;overflow:hidden;margin:15px 0 8px}.achievement-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),#5f88ec);border-radius:inherit}.next-achievement>div:last-child{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:.8rem}.next-achievement>div:last-child b{color:var(--ink)}.next-achievement.complete{background:#f7f4e8;border-color:#dfd3a5}.next-achievement.complete p{color:var(--muted);font-size:.85rem;margin:8px 0 0}.achievement-groups{display:grid;grid-template-columns:1.35fr 1fr;gap:16px}.achievement-groups>div{background:#fff;border:1px solid #dce2eb;border-radius:16px;padding:17px}.achievement-groups h3{font-family:Georgia,serif;font-size:1.15rem;margin:0 0 11px}.achievement-note{color:var(--muted);font-size:.78rem;margin:-5px 0 10px}.achievement-list{display:grid;gap:6px}.achievement-row{display:grid;grid-template-columns:28px 1fr auto auto;align-items:center;gap:8px;min-height:42px;border-top:1px solid #edf0f5;padding:6px 0}.achievement-row:first-child{border-top:0}.achievement-row.locked{opacity:.52}.achievement-icon{font-size:1.15rem}.achievement-row strong{font-size:.86rem}.achievement-state{color:var(--muted);font-size:.72rem}.achievement-row.earned .achievement-state{color:#28794a;font-weight:750}.achievement-row button,.achievement-share{border:0;background:transparent;color:var(--blue);font-weight:750;cursor:pointer;min-height:36px;padding:6px}.achievement-celebration{border:1px solid #dfd3a5;background:linear-gradient(145deg,#fffdf6,#f5f8ff);border-radius:15px;padding:15px;margin:0 0 12px;text-align:center}.celebration-icons{font-size:1.75rem;line-height:1.2}.achievement-celebration h3{font-family:Georgia,serif;font-size:1.2rem;margin:7px 0 4px}.achievement-celebration p{color:var(--muted);font-size:.84rem;margin:0 0 6px}.achievement-share{display:inline-flex;align-items:center;justify-content:center}.milestone-modal{border-top:4px solid #f0b429}.confetti-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:1000}
@media(max-width:700px){.achievement-summary,.achievement-groups{grid-template-columns:1fr}.achievement-groups{gap:11px}.achievement-row{grid-template-columns:28px 1fr auto}.achievement-row button{grid-column:2;justify-self:start;min-height:34px;padding:2px 0}.achievement-section{margin-top:18px}.status-card,.next-achievement{padding:16px}}
.home-milestone{width:100%;min-height:50px;margin:12px 0 0;padding:10px 16px;border:1px solid #dce2eb;border-radius:14px;background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:center;gap:9px;font:inherit;cursor:pointer;box-shadow:0 3px 12px rgba(28,45,80,.03)}.home-milestone:hover,.home-milestone:focus-visible{border-color:#9fb9ed;box-shadow:var(--shadow);outline:none}.home-milestone>span{font-size:1.15rem}.home-milestone strong{font-size:.86rem}.home-milestone em{font-size:.8rem;font-style:normal;font-weight:750;color:var(--blue)}
@media(max-width:700px){.home-milestone{padding:10px 12px;gap:7px}.home-milestone strong{font-size:.8rem}.home-milestone em{font-size:.75rem}}
.milestone-spectacle{position:fixed;inset:0;z-index:1001;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-align:center;overflow:hidden;background:radial-gradient(circle at center,rgba(36,92,219,.32),rgba(16,29,52,0) 52%)}.spectacle-icon{display:block;font-size:clamp(5rem,18vw,9rem);filter:drop-shadow(0 12px 22px rgba(8,18,36,.35))}.milestone-spectacle strong{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2rem,8vw,4.2rem);line-height:1;text-shadow:0 3px 18px rgba(8,18,36,.55)}.milestone-spectacle em{margin-top:9px;font-size:clamp(.9rem,3vw,1.15rem);font-style:normal;font-weight:750;letter-spacing:.04em;text-shadow:0 2px 12px rgba(8,18,36,.7)}.milestone-spectacle.rocket .spectacle-icon{animation:rocket-launch 3.1s cubic-bezier(.2,.72,.25,1) both}.milestone-spectacle.rocket strong,.milestone-spectacle.rocket em{animation:spectacle-copy 3.1s ease both}.milestone-spectacle.crown{background:radial-gradient(circle at center,rgba(240,180,41,.38),rgba(16,29,52,0) 55%)}.milestone-spectacle.crown .spectacle-icon{animation:crown-arrival 3.1s cubic-bezier(.2,.8,.25,1) both}.milestone-spectacle.champion{background:radial-gradient(circle at center,rgba(240,180,41,.55),rgba(21,35,60,.2) 43%,rgba(16,29,52,0) 68%)}.milestone-spectacle.champion .spectacle-icon{animation:trophy-rise 3.7s cubic-bezier(.18,.8,.22,1) both}.spectacle-burst{position:absolute;left:18%;top:22%;font-size:clamp(3rem,10vw,6rem);color:#ffe485;animation:starburst 1.5s ease-out .45s both}.spectacle-burst.second{left:auto;right:17%;top:29%;animation-delay:.8s}.rocket .spectacle-burst,.crown .spectacle-burst{display:none}@keyframes rocket-launch{0%{transform:translate(-28vw,65vh) rotate(-35deg) scale(.45);opacity:0}18%{opacity:1}62%{transform:translate(0,0) rotate(-8deg) scale(1)}78%{transform:translate(0,-3vh) rotate(0) scale(1.08)}100%{transform:translate(30vw,-70vh) rotate(20deg) scale(.5);opacity:0}}@keyframes crown-arrival{0%{transform:translateY(-60vh) rotate(-14deg) scale(.4);opacity:0}38%{transform:translateY(0) rotate(5deg) scale(1.18);opacity:1}52%{transform:translateY(-12px) rotate(-2deg) scale(.98)}68%,88%{transform:none;opacity:1}100%{transform:scale(1.2);opacity:0}}@keyframes trophy-rise{0%{transform:translateY(55vh) scale(.45);opacity:0}38%{transform:translateY(-12px) scale(1.18);opacity:1}52%{transform:translateY(0) scale(1)}82%{transform:scale(1.06);opacity:1}100%{transform:scale(1.25);opacity:0}}@keyframes spectacle-copy{0%,25%{transform:translateY(18px);opacity:0}43%,82%{transform:none;opacity:1}100%{opacity:0}}@keyframes starburst{0%{transform:scale(.1) rotate(0);opacity:0}35%{opacity:1}100%{transform:scale(1.8) rotate(90deg);opacity:0}}
.milestone-spectacle.crown strong,.milestone-spectacle.crown em{animation:spectacle-copy 3.1s ease both}.milestone-spectacle.champion strong,.milestone-spectacle.champion em{animation:spectacle-copy 3.7s ease both}
.wake-lock-toggle{align-self:flex-end;min-height:36px;margin-top:5px;padding:5px 9px;border:1px solid #d7deea;border-radius:999px;background:#fff;color:var(--muted);display:flex;align-items:center;gap:6px;font:inherit;font-size:.68rem;cursor:pointer;white-space:nowrap}.wake-lock-toggle span{width:7px;height:7px;border-radius:50%;background:#a5afbd}.wake-lock-toggle b{font-weight:750}.wake-lock-toggle.on{color:#28794a;border-color:#b9ddc7;background:#f5fbf7}.wake-lock-toggle.on span{background:#2e9c65;box-shadow:0 0 0 3px rgba(46,156,101,.12)}.wake-lock-toggle.starting{color:var(--blue)}.wake-lock-toggle.starting span{background:var(--blue)}.wake-lock-toggle.unavailable{color:#7e8794;background:#f5f7fa}.wake-lock-toggle:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.game-head>div:last-child{display:flex;flex-direction:column;align-items:flex-end}.timer-area+.wake-lock-toggle{max-width:150px}@media(max-width:700px){.wake-lock-toggle{min-height:40px;font-size:.7rem;padding:7px 10px}}@media(max-width:370px){.wake-lock-toggle{font-size:.64rem;padding:6px 8px;max-width:132px}}
.timer-stack{display:flex;flex-direction:column;align-items:flex-end}
.sound-preference{margin-top:12px;padding:14px 16px;border:1px solid #dce2eb;border-radius:16px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:16px}.sound-preference>div{min-width:0}.sound-preference strong{display:block;font-size:.9rem}.sound-preference>div span{display:block;margin-top:3px;color:var(--muted);font-size:.78rem}.sound-preference button{min-width:62px;min-height:40px;padding:5px;border:0;border-radius:999px;background:var(--ink);color:#fff;font:inherit;font-size:.78rem;font-weight:800;cursor:pointer}.sound-preference button[aria-checked="false"]{background:#e5e9ef;color:#5f6876}.sound-preference button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}@media(max-width:480px){.sound-preference{padding:13px 14px}.sound-preference>div span{max-width:210px}}
@media(prefers-reduced-motion:reduce){.confetti-canvas,.milestone-spectacle{display:none!important}.achievement-progress i{transition:none}}

/* Theme control and one automatic grace day per active streak. */
.topbar-actions{display:flex;align-items:center;gap:2px}.theme-btn{font-size:1.35rem;color:var(--ink)}.theme-btn span{display:block;line-height:1}.theme-options{display:grid;gap:8px;margin:0 0 12px}.theme-options button{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;text-align:left;padding:10px 13px;border:1px solid #d8dfeb;background:var(--paper);color:var(--ink)}.theme-options button>span{font-size:1.25rem;text-align:center}.theme-options button strong{font-size:.95rem}.theme-options button em{color:var(--blue);font-size:.74rem;font-style:normal;font-weight:800}.theme-options button.selected{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}.streak-grace{margin:9px 0 0;text-align:center;color:var(--muted);font-size:.78rem;font-weight:650}

/* Settings keeps account and app controls out of the gameplay-focused home and Stats views. */
.settings-page{max-width:720px;margin:2vh auto}.settings-page>h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.35rem,6vw,3.25rem);line-height:1;margin:8px 0 26px}.settings-group{margin-top:24px}.settings-group>h2{margin:0 0 9px;color:var(--muted);font-size:.76rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.settings-group .sound-preference{margin-top:0}.settings-group .sound-preference,.setting-row,.membership-card,.account-card{border:1px solid #dce2eb;background:var(--paper);border-radius:16px;padding:16px 18px}.settings-group .sound-preference+.setting-row{margin-top:9px}.setting-row,.membership-card{display:flex;align-items:center;justify-content:space-between;gap:18px}.setting-row>div,.membership-card>div{min-width:0}.setting-row strong,.membership-card strong{display:block;font-size:.94rem}.setting-row>div span,.membership-card>div span{display:block;margin-top:4px;color:var(--muted);font-size:.8rem;line-height:1.4}.setting-switch{min-width:62px;min-height:40px;padding:5px;border:0;border-radius:999px;background:var(--ink);color:var(--bg);font:inherit;font-size:.78rem;font-weight:800;cursor:pointer}.setting-switch[aria-checked="false"]{background:#e5e9ef;color:#5f6876}.setting-action,.settings-actions button{min-height:42px;border-radius:11px;padding:8px 14px;font:inherit;font-size:.82rem;font-weight:750;cursor:pointer;white-space:nowrap}.setting-action{border:0;background:var(--blue);color:#fff}.setting-status,.membership-status{flex-shrink:0;border-radius:999px;padding:7px 11px;background:#e8f7ee;color:#177342;font-size:.75rem;font-weight:800}.settings-note{margin:8px 4px 0;color:var(--muted);font-size:.75rem;line-height:1.45}.account-card>div:first-child>span{display:block;color:var(--muted);font-size:.75rem}.account-card>div:first-child>strong{display:block;margin-top:3px;overflow:hidden;text-overflow:ellipsis}.settings-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.settings-actions .signout-setting{margin-left:auto}.install-help{line-height:1.6}
@media(max-width:600px){.settings-page{margin-top:1vh}.settings-page>h1{margin-bottom:22px}.setting-row,.membership-card{align-items:flex-start;padding:15px}.setting-row>div span{max-width:230px}.setting-action{align-self:center}.account-card{padding:15px}.settings-actions{display:grid;grid-template-columns:1fr}.settings-actions .signout-setting{margin-left:0}.settings-actions button{width:100%}}

/* PWA safe areas and comfortable portrait controls. */
body{padding-bottom:env(safe-area-inset-bottom)}.topbar{padding-top:env(safe-area-inset-top);height:calc(64px + env(safe-area-inset-top))}main{padding-bottom:max(28px,env(safe-area-inset-bottom))}@media(max-width:700px){.topbar{height:calc(54px + env(safe-area-inset-top));padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.number-btn{touch-action:manipulation}.tools{gap:7px}.tool-btn{padding:5px 4px}.reset-tool{margin-left:5px;border-left-width:2px}}

/* Dark mode preserves the light design's hierarchy and blue identity. */
html[data-theme="dark"]{--ink:#edf3ff;--muted:#a9b5c8;--line:#56657a;--heavy:#8fa2bb;--blue:#79a2ff;--blue-soft:#22365d;--same:#27487d;--wrong:#ff8585;--wrong-bg:#4a2328;--paper:#182235;--bg:#0f1725;--shadow:0 18px 50px rgba(0,0,0,.32)}
html[data-theme="dark"] body{background:var(--bg)}
html[data-theme="dark"] .icon-btn:hover,html[data-theme="dark"] .member-line button:hover,html[data-theme="dark"] .member-line button:focus-visible{background:#202c40}
html[data-theme="dark"] .difficulty-card,html[data-theme="dark"] .stats-card,html[data-theme="dark"] .table-card,html[data-theme="dark"] .library-invite,html[data-theme="dark"] .landing-board,html[data-theme="dark"] .access-page,html[data-theme="dark"] .modal,html[data-theme="dark"] .member-search,html[data-theme="dark"] .member-row,html[data-theme="dark"] .archive-card,html[data-theme="dark"] .library-empty,html[data-theme="dark"] .status-card,html[data-theme="dark"] .next-achievement,html[data-theme="dark"] .achievement-groups>div,html[data-theme="dark"] .home-milestone,html[data-theme="dark"] .sound-preference{background:var(--paper);border-color:#344158}
html[data-theme="dark"] .member-line{background:rgba(24,34,53,.88);border-color:#344158}
html[data-theme="dark"] .cell,html[data-theme="dark"] .mini-grid span{background:#192438;color:#8fb2ff}
html[data-theme="dark"] .cell.given{color:#f5f8ff}
html[data-theme="dark"] .cell.peer{background:#222f46}
html[data-theme="dark"] .cell.same{background:var(--same)}
html[data-theme="dark"] .cell.selected{background:#315894;box-shadow:inset 0 0 0 2px #8eb0ff}
html[data-theme="dark"] .cell.wrong{background:var(--wrong-bg);color:var(--wrong)}
html[data-theme="dark"] .pause-btn,html[data-theme="dark"] .tool-btn,html[data-theme="dark"] .number-btn,html[data-theme="dark"] .secondary,html[data-theme="dark"] .filter-chip,html[data-theme="dark"] .month-navigation>button,html[data-theme="dark"] .month-navigation select,html[data-theme="dark"] .signin-form input,html[data-theme="dark"] .member-search input,html[data-theme="dark"] .wake-lock-toggle,html[data-theme="dark"] .theme-options button{background:#182235;border-color:#3a4860;color:var(--ink)}
html[data-theme="dark"] .number-btn{color:#9cb9ff}
html[data-theme="dark"] .number-btn:hover{background:#22304a;border-color:#668ad0}
html[data-theme="dark"] .tool-btn.active,html[data-theme="dark"] .filter-chip.active{background:#edf3ff;color:#172033;border-color:#edf3ff}
html[data-theme="dark"] .pause-cover{background:rgba(15,23,37,.97)}
html[data-theme="dark"] .result-grid div,html[data-theme="dark"] .community-grid>div{background:#111b2b}
html[data-theme="dark"] .community-results{background:#142139;border-color:#344d74}
html[data-theme="dark"] .difficulty-card.completed{background:#172d29;border-color:#356855}
html[data-theme="dark"] .difficulty-card.completed b,html[data-theme="dark"] .archive-status .complete-label,html[data-theme="dark"] .achievement-row.earned .achievement-state{color:#76d6a4}
html[data-theme="dark"] .next-achievement.complete{background:#302c1d;border-color:#625936}
html[data-theme="dark"] .achievement-celebration{background:linear-gradient(145deg,#302c1d,#172641);border-color:#625936}
html[data-theme="dark"] #toast{background:#eef3ff;color:#172033}
html[data-theme="dark"] .modal-backdrop{background:rgba(3,7,13,.76)}
html[data-theme="dark"] .daily-participation-summary{color:#b5c1d3}
html[data-theme="dark"] .activity-state{background:#283449;color:#c2cee0}
html[data-theme="dark"] .activity-state.recent{background:#17352b;color:#76d6a4}
html[data-theme="dark"] .activity-state.inactive{background:#3c2c1e;color:#efbd7a}
html[data-theme="dark"] .activity-state.started{background:#1b315c;color:#9db9ff}
html[data-theme="dark"] .settings-group .sound-preference,html[data-theme="dark"] .setting-row,html[data-theme="dark"] .membership-card,html[data-theme="dark"] .account-card{background:var(--paper);border-color:#344158}
html[data-theme="dark"] .setting-switch{background:#edf3ff;color:#172033}
html[data-theme="dark"] .setting-switch[aria-checked="false"]{background:#344158;color:#c2cee0}
html[data-theme="dark"] .setting-status,html[data-theme="dark"] .membership-status{background:#17352b;color:#76d6a4}
