/* Discovery, onboarding, daily play, and mobile map-first polish. */
.daily-btn{border-color:#725f37;background:linear-gradient(135deg,rgba(91,68,29,.84),rgba(35,47,70,.9));color:#fff2c3}
.capacity-actions{display:flex;gap:7px;flex:none}
.capacity-action{min-height:34px;border:1px solid #557d78;border-radius:10px;padding:0 11px;background:#132b40;color:#c7dded;font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap}
.capacity-action:hover{border-color:#7ae6d0;color:#fff}
.reveal-action{border-color:#80e9d4;background:#78e8d1;color:#07141f;box-shadow:0 0 24px rgba(120,232,209,.16)}
.reveal-action:hover{color:#07141f;background:#9af3e1}
.selection-tray{display:flex;align-items:center;gap:7px;min-height:42px;overflow-x:auto;scrollbar-width:none;padding:5px 11px;border-bottom:1px solid var(--line);background:rgba(7,17,29,.72);flex:none}
.selection-tray::-webkit-scrollbar{display:none}
.tray-place,.tray-add{height:32px;border:1px solid var(--tray-border);border-radius:999px;background:var(--tray-bg);color:#d6e4f3;display:flex;align-items:center;gap:7px;padding:0 10px;white-space:nowrap;font-size:11px;font-weight:750;cursor:pointer;flex:none}
.tray-place:hover,.tray-place.active{border-color:var(--place-color);background:#14263b}
.tray-place i{width:8px;height:8px;border-radius:50%;background:var(--place-color);box-shadow:0 0 8px var(--place-color)}
.tray-place b{font-size:15px;color:#839ab3;font-weight:500;margin-left:1px}
.tray-add{border-style:dashed;color:#88dccb;background:#0b1a28}
.tray-slot{width:25px;height:25px;border:1px dashed #344a64;border-radius:50%;flex:none;opacity:.55}

.reveal-callout{position:absolute;z-index:8;left:50%;top:18px;transform:translate(-50%,-10px);max-width:min(560px,calc(100% - 28px));border:1px solid #568079;border-radius:15px;padding:10px 15px;background:rgba(8,26,37,.94);box-shadow:0 18px 50px rgba(0,0,0,.4);font-size:13px;font-weight:750;text-align:center;opacity:0;pointer-events:none;transition:.32s}
.reveal-callout.show{opacity:1;transform:translate(-50%,0)}
.reveal-callout strong{color:#91eedb}
.map-card.revealing{box-shadow:0 0 0 1px #70d9c5,0 28px 80px rgba(46,188,167,.17)}

.sheet-handle{display:none}

.onboarding-backdrop{z-index:95;background:rgba(2,7,13,.9);backdrop-filter:blur(12px)}
.onboarding-card{position:relative;width:min(760px,100%);min-height:510px;border:1px solid #38546f;border-radius:28px;background:radial-gradient(circle at 50% 20%,#173b52,#0c1d31 48%,#07121f);box-shadow:0 40px 120px rgba(0,0,0,.58);padding:36px;display:grid;grid-template-rows:210px 1fr auto;overflow:hidden;outline:0}
.onboarding-skip{position:absolute;z-index:2;right:20px;top:18px;border:0;background:transparent;color:#9eb1c7;font-size:12px;cursor:pointer;padding:8px}
.onboarding-visual{position:relative;display:grid;place-items:center}
.onboarding-visual img{width:172px;height:172px;object-fit:contain;z-index:1;filter:drop-shadow(0 0 28px rgba(55,211,203,.18))}
.onboarding-orbits{--orbit-radius:115px;position:absolute;width:230px;height:230px;border:1px solid rgba(93,170,188,.18);border-radius:50%;animation:orbit-spin 18s linear infinite}
.onboarding-orbits i{position:absolute;left:50%;top:50%;width:9px;height:9px;border-radius:50%;background:#78e8d1;box-shadow:0 0 12px #78e8d1;transform:translate(-50%,-50%) rotate(var(--orbit-angle)) translateX(var(--orbit-radius))}
.onboarding-orbits i:nth-child(1){--orbit-angle:210deg}.onboarding-orbits i:nth-child(2){--orbit-angle:0deg;background:#59a6ff}.onboarding-orbits i:nth-child(3){--orbit-angle:90deg;background:#ffd166}
@keyframes orbit-spin{to{transform:rotate(360deg)}}
.onboarding-pages{position:relative;text-align:center;min-height:150px}
.onboarding-page{position:absolute;inset:0;opacity:0;transform:translateX(20px);pointer-events:none;transition:.32s}
.onboarding-page.active{opacity:1;transform:none;pointer-events:auto}
.onboarding-page h2{font-size:clamp(27px,5vw,44px);letter-spacing:-.045em;line-height:1.06;margin:7px auto 11px;max-width:650px}
.onboarding-page p:last-child{max-width:570px;margin:0 auto;color:#acbfd3;font-size:14px;line-height:1.6}
.onboarding-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:20px}
.onboarding-dots{display:flex;gap:6px}.onboarding-dots i{width:7px;height:7px;border-radius:99px;background:#435972;transition:.25s}.onboarding-dots i.active{width:24px;background:#78e8d1}

.daily-backdrop{z-index:90;background:rgba(2,7,13,.84);backdrop-filter:blur(9px)}
.daily-card{width:min(610px,100%);max-height:94dvh;overflow:auto;border:1px solid var(--daily-border);border-radius:25px;background:linear-gradient(150deg,#10233a,#07131f 74%);box-shadow:0 34px 100px rgba(0,0,0,.55);padding:22px;outline:0}
.daily-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.daily-head h2{font-size:26px;letter-spacing:-.035em;margin:3px 0 0}
.daily-meta{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}.daily-meta span,.daily-meta button{border:1px solid #314a62;border-radius:999px;padding:5px 8px;color:#91a7bd;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.daily-meta button{background:#10263a;color:#8ee8d6;cursor:pointer}.daily-meta button:hover{border-color:#78e8d1;color:#fff}
.daily-reminder{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:-3px 0 12px;padding:10px 11px;border:1px solid #315468;border-radius:13px;background:rgba(18,48,61,.66)}
.daily-reminder[hidden]{display:none}.daily-reminder div{display:grid;gap:2px;text-align:left}.daily-reminder strong{font-size:11px;color:#d9fff7}.daily-reminder span{font-size:10px;color:#8ea9bf}.daily-reminder .small-btn{min-width:82px}
.daily-silhouette{position:relative;height:210px;border:1px solid #2e4963;border-radius:19px;background:radial-gradient(circle,#193a50,#091522 69%);display:grid;place-items:center;overflow:hidden}
.daily-silhouette svg{width:78%;height:78%;filter:drop-shadow(0 8px 16px rgba(0,0,0,.3))}.daily-silhouette path{fill:#76dfcb;stroke:#d5fff7;stroke-width:2;vector-effect:non-scaling-stroke}.daily-silhouette>span{position:absolute;right:15px;bottom:10px;color:#658096;font-size:20px;font-weight:900}
.daily-prompt{text-align:center;color:#9eb2c8;font-size:12px;margin:14px 0 10px}
.daily-guess-row{display:flex;gap:8px}.daily-guess-row input,.daily-guess-select{flex:1;min-width:0;height:44px;border:1px solid var(--daily-border);border-radius:12px;background:var(--daily-bg);color:#fff;padding:0 12px;outline:0}.daily-guess-row input:focus,.daily-guess-select:focus{border-color:#78e8d1}.daily-guess-select{display:none;color-scheme:dark}
.daily-guesses{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:12px 0}.daily-guess{height:42px;border:1px solid #334a61;border-radius:10px;display:grid;place-items:center;background:#0b1827;color:#7790a8;font-size:10px;font-weight:850;text-align:center;padding:3px}.daily-guess.same{background:#66552c;border-color:#d5ac50;color:#fff1bd}.daily-guess.win{background:#256758;border-color:#78e8d1;color:#fff}.daily-guess.miss{background:#172538;color:#435a72}
.daily-clues{min-height:44px;border-radius:12px;padding:9px 11px;background:#0b1929;color:#a9bed2;font-size:11px;line-height:1.5}.daily-clues strong{color:#8ee8d6}
.daily-result{text-align:center;padding-top:14px}.daily-result p{color:#c1d2e2;line-height:1.55}.daily-result-actions{display:flex;justify-content:center;gap:8px}
.share-link-actions,.share-formats{display:flex;gap:8px;flex-wrap:wrap}.share-formats .small-btn{flex:1;min-width:135px;min-height:42px}
.email-backdrop{z-index:96;background:rgba(2,7,13,.88);backdrop-filter:blur(10px)}
.email-modal{max-width:560px}.email-modal .modal-head{align-items:flex-start}.email-modal .lesson-brand{margin:0 0 4px}.email-modal form{display:grid;gap:13px;margin-top:18px}.email-field{display:grid;gap:6px}.email-field label{font-size:11px;font-weight:800;color:#bdd0e1}.email-field label span{color:#718aa2;font-weight:600}.email-field input,.email-field textarea{width:100%;border:1px solid #34506b;border-radius:11px;background:#081725;color:#f5f9fd;padding:11px 12px;outline:0;font:inherit}.email-field input{height:44px}.email-field textarea{resize:vertical;min-height:118px}.email-field input:focus,.email-field textarea:focus{border-color:#78e8d1;box-shadow:0 0 0 3px rgba(120,232,209,.1)}
.email-consent{display:flex;align-items:flex-start;gap:9px;color:#a9bed2;font-size:11px;line-height:1.5}.email-consent input{margin-top:3px;accent-color:#54d6bf}.email-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.email-status{min-height:20px;margin:0!important;color:#9fb7cb!important}.email-status.error{color:#ff9eae!important}.email-status.success{color:#82ead4!important}.email-fallback{margin:0!important;font-size:11px!important}.email-actions{display:flex;align-items:center;gap:12px}.email-actions span{color:#728ba2;font-size:10px}.email-actions button[disabled]{opacity:.58;cursor:wait}.email-privacy{padding-top:13px;border-top:1px solid #223850;font-size:10px!important}

@media(max-width:1100px){.capacity-hint{display:none}}
@media(max-width:900px){
  .app{grid-template-rows:auto auto minmax(0,1fr)}
  .capacity-bar{padding-right:7px}.capacity-actions{margin-left:auto}.capacity-copy,.capacity-slots{display:none}.capacity-count{display:block;margin-right:auto}.capacity-count::before{content:'Compare '}.capacity-action{padding:0 9px}
  .selection-tray{min-height:32px}
  .workspace{position:relative;display:block;min-height:0;overflow:hidden}
  .map-card{height:100%}
  .side-panel{position:absolute;z-index:24;left:0;right:0;bottom:0;height:min(58dvh,520px);border-radius:20px 20px 0 0!important;transform:translateY(calc(100% - 61px));transition:transform .28s ease;box-shadow:0 -18px 55px rgba(0,0,0,.42)}
  .side-panel.sheet-expanded{transform:translateY(0)}
  .sheet-handle{height:34px;width:100%;border:0;border-bottom:1px solid #1f3046;background:#0b1726;display:flex;align-items:center;justify-content:center;gap:8px;color:#9bb0c6;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;flex:none}
  .sheet-handle i{width:32px;height:4px;border-radius:99px;background:#496078}
  .panel-tabs{padding-top:4px}
  .zoom-stack{bottom:68px}
  .preset-strip{padding-right:80px}
  .onboarding-card{height:100dvh;min-height:0;width:100%;border:0;border-radius:0;padding:max(28px,env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom));grid-template-rows:minmax(190px,34vh) 1fr auto}
  .onboarding-backdrop,.daily-backdrop{padding:0}
  .daily-card{width:100%;height:100dvh;max-height:none;border:0;border-radius:0;padding:max(18px,env(safe-area-inset-top)) 15px max(18px,env(safe-area-inset-bottom))}
  .daily-guess-row input{display:none}.daily-guess-select{display:block}
  .email-backdrop{padding:0}.email-modal{width:100%;height:100dvh;max-height:none;border:0;border-radius:0;padding:max(24px,env(safe-area-inset-top)) 18px max(20px,env(safe-area-inset-bottom))}
}
@media(max-width:520px){
  .header-actions #infoBtn,.header-actions #exportBtn{display:none}
  .capacity-icon{display:none}.capacity-bar{gap:5px}.capacity-action{font-size:10px}.reveal-action{flex:1}
  .tray-place,.tray-add{height:30px;padding:0 9px}
  .onboarding-visual img{width:145px;height:145px}.onboarding-orbits{--orbit-radius:95px;width:190px;height:190px}
  .onboarding-page h2{font-size:30px}.onboarding-page p:last-child{font-size:13px}
  .daily-silhouette{height:min(28dvh,215px)}
}
@media(prefers-reduced-motion:reduce){.onboarding-orbits{animation:none}}
.native-app .daily-guess-row input{display:none}.native-app .daily-guess-select{display:block}

/* ---- light theme ---- */
html[data-theme="light"] :root{color-scheme:light}
html[data-theme="light"] .reveal-callout{border-color:#8fa899;background:rgba(245,248,255,.95);color:var(--text)}
html[data-theme="light"] .reveal-callout strong{color:#1a8070}
html[data-theme="light"] .map-card.revealing{box-shadow:0 0 0 1px #1a8070,0 28px 80px rgba(26,128,112,.1)}
html[data-theme="light"] .onboarding-visual img{filter:drop-shadow(0 0 28px rgba(26,128,112,.12))}
html[data-theme="light"] .onboarding-orbits{border-color:rgba(120,150,160,.3)}
html[data-theme="light"] .onboarding-orbits i{background:#1a8070;box-shadow:0 0 12px rgba(26,128,112,.4)}
html[data-theme="light"] .onboarding-orbits i:nth-child(2){background:#5a8fb5}
html[data-theme="light"] .onboarding-orbits i:nth-child(3){background:#b89040}
html[data-theme="light"] .onboarding-page h2{color:var(--text)}
html[data-theme="light"] .onboarding-page p:last-child{color:var(--muted)}
html[data-theme="light"] .onboarding-dots i{background:#b8c8d8}
html[data-theme="light"] .onboarding-dots i.active{background:#1a8070}
html[data-theme="light"] .daily-head h2{color:var(--text)}
html[data-theme="light"] .daily-reminder{border-color:var(--line);background:rgba(237,241,248,.6)}
html[data-theme="light"] .daily-reminder strong{color:var(--text)}
html[data-theme="light"] .daily-reminder span{color:var(--muted)}
html[data-theme="light"] .daily-silhouette path{fill:#12806f;stroke:#0d6a5b}
html[data-theme="light"] .daily-prompt{color:var(--muted)}
html[data-theme="light"] .daily-guess-row input:focus,.daily-guess-select:focus{border-color:#1a8070}
html[data-theme="light"] .daily-guess-select{color-scheme:light}
html[data-theme="light"] .onboarding-skip{color:var(--muted)}
html[data-theme="light"] .daily-guess-row input,html[data-theme="light"] .daily-guess-select{color:var(--text)}
html[data-theme="light"] .daily-guess.same{background:#fbf1dc;border-color:#c9922f;color:#6f4b0e}
html[data-theme="light"] .daily-guess.win{background:#d2f0e8;border-color:#12806f;color:#09443a}
html[data-theme="light"] .daily-guess.miss{background:#f1f4f8;border-color:#cbd5e1;color:#5d7186}
html[data-theme="light"] .daily-clues strong{color:#1a8070}
html[data-theme="light"] .daily-result p{color:var(--muted)}
html[data-theme="light"] .lesson-backdrop{background:rgba(240,244,251,.85);backdrop-filter:blur(8px)}
html[data-theme="light"] .lesson-head h2{color:var(--text)}
html[data-theme="light"] .lesson-brand,.lesson-kicker{color:#1a8070}
html[data-theme="light"] .lesson-intro p{color:var(--muted)}
html[data-theme="light"] .lesson-course-copy strong{color:var(--text)}
html[data-theme="light"] .lesson-course-copy small{color:var(--muted)}
html[data-theme="light"] .lesson-course-progress b{color:var(--text)}
html[data-theme="light"] .lesson-course-progress small{color:var(--muted)}
html[data-theme="light"] .lesson-progress-copy span{color:#1a8070}
html[data-theme="light"] .lesson-progress-copy strong{color:var(--muted)}
html[data-theme="light"] .lesson-progress-track{background:#e8eef7;border-color:var(--line)}
html[data-theme="light"] .lesson-progress-track i{background:linear-gradient(90deg,#5a8fb5,#1a8070)}
html[data-theme="light"] .lesson-question h3{color:var(--text)}
html[data-theme="light"] .lesson-map-wrap{background:radial-gradient(circle at 50% 45%,var(--geo-water-1),var(--geo-water-2) 67%)}
html[data-theme="light"] .lesson-state{fill:#cee8f5;stroke:#7a9aba}
html[data-theme="light"] .lesson-state:hover,.lesson-state:focus{fill:#b8dff1;stroke:#5a8fb5}
html[data-theme="light"] .lesson-state.mastered,.lesson-inset.mastered path{fill:#9fbfb8;stroke:#4a9584;opacity:.88}
html[data-theme="light"] .lesson-state.correct,.lesson-inset.correct path{fill:#1a8070!important;stroke:#7ab5a5!important;filter:drop-shadow(0 0 7px rgba(26,128,112,.3))}
html[data-theme="light"] .lesson-state.wrong,.lesson-inset.wrong path{fill:#b03a5c!important;stroke:#e0a0b5!important}
html[data-theme="light"] .lesson-state.answer,.lesson-inset.answer path{fill:#4a9584;stroke:#7ab5a5;filter:drop-shadow(0 0 6px rgba(26,128,112,.25))}
html[data-theme="light"] .lesson-state.dimmed,.lesson-inset.dimmed{opacity:.38}
html[data-theme="light"] .lesson-inset{border-color:var(--line);background:#e8eef7;color:var(--muted)}
html[data-theme="light"] .lesson-inset path{fill:#cee8f5;stroke:#7a9aba}
html[data-theme="light"] .lesson-feedback{color:var(--muted)}
html[data-theme="light"] .lesson-feedback.success{color:#1a8070}
html[data-theme="light"] .lesson-feedback.try-again{color:#9a5a2c}
html[data-theme="light"] .lesson-result h3{color:var(--text)}
html[data-theme="light"] .lesson-score{background:radial-gradient(circle,#c5dfe0,#dfeef4 70%);border-color:#7ab5a5;box-shadow:0 0 60px rgba(26,128,112,.12)}
html[data-theme="light"] .lesson-score strong{color:var(--text)}
html[data-theme="light"] .lesson-score span{color:#1a8070}
html[data-theme="light"] .lesson-result>p:not(.lesson-brand){color:var(--muted)}
html[data-theme="light"] .email-modal{background:var(--panel)}
html[data-theme="light"] .email-modal .modal-head{align-items:flex-start}
html[data-theme="light"] .email-modal .lesson-brand{color:#1a8070}
html[data-theme="light"] .email-field label{color:var(--text)}
html[data-theme="light"] .email-field label span{color:var(--muted)}
html[data-theme="light"] .email-field input,.email-field textarea{border-color:var(--line);background:#edf1f8;color:var(--text)}
html[data-theme="light"] .email-field input:focus,.email-field textarea:focus{border-color:#1a8070;box-shadow:0 0 0 3px rgba(26,128,112,.1)}
html[data-theme="light"] .email-consent{color:var(--muted)}
html[data-theme="light"] .email-consent input{accent-color:#1a8070}
html[data-theme="light"] .email-status{color:var(--text)!important}
html[data-theme="light"] .email-status.error{color:#b03a5c!important}
html[data-theme="light"] .email-status.success{color:#1a8070!important}
html[data-theme="light"] .email-fallback{color:var(--muted)!important}
html[data-theme="light"] .email-privacy{border-top-color:var(--line);color:var(--muted)!important}
html[data-theme="light"] .email-actions span{color:var(--muted)}
