/* Labbayk v2: the original 3D simulation, with one clear task at a time. */
:root{--deep:#0c4939;--teal:#16755c;--gold:#f6c84b;--ink:#163b31;--ink2:#50665e;--sand:#eef3ef;--soft:0 3px 12px #102b2010;--soft2:0 20px 80px #001f2352;--pb:env(safe-area-inset-bottom,0px)}
html,body{font-size:18px;background:#103c35}
body{touch-action:auto}
canvas,#stick{touch-action:none}
button,a,input,summary{touch-action:manipulation}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid #0b8567;outline-offset:4px}
[hidden]{display:none!important}
.sheet{padding:24px;background:#032f2859;backdrop-filter:blur(4px)}
.card{border-radius:24px;box-shadow:var(--soft2);padding:28px;width:min(570px,100%);overscroll-behavior:contain;touch-action:pan-y}
.card h2{font-size:1.4rem;font-weight:800;line-height:1.5}
.card p{font-size:1rem;line-height:1.7}
.card .note{font-size:.875rem;line-height:1.8;padding:14px}
.big,.chip,.segB,.xBtn{min-height:48px}
.big{border-radius:13px;font-size:1rem;font-weight:800;box-shadow:none;padding:15px}
.big.alt{border:1px solid #dbe6df;background:#f4f7f4}
.xBtn{width:48px;height:48px;border-radius:14px;font-size:1rem}
.chip{font-size:.85rem;display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;border:1px solid #dbe6df;color:var(--ink)}
.withX{padding-top:76px}
.sex{border:2px solid #dce6df;box-shadow:none;min-height:125px;color:var(--ink);font:inherit}
.sex:hover,.sex:focus-visible{border-color:var(--teal);background:#e8f4ed}
.sex i{font-size:.85rem;line-height:1.6}
.sex .fig{display:none}
.sex b{font-size:1.4rem;margin:6px 0}
.segB{font-size:1rem;border:2px solid #dce6df;box-shadow:none;min-height:77px}
.segB.on{background:#e8f4ed;border-color:var(--teal);color:var(--deep)}
.segB small{font-size:.8rem;opacity:1}
.segLbl{font-size:.9rem;text-align:start;color:var(--ink)}
.v2-label{display:inline-flex;gap:8px;align-items:center;font-size:.8rem;font-weight:800;letter-spacing:.02em;color:var(--teal)}
.v2-tag{font-family:system-ui,sans-serif;font-size:.72rem;padding:4px 8px;background:var(--gold);color:#253622;border-radius:6px;direction:ltr}
#s_start{background:linear-gradient(90deg,#092f2740,#092f279c);backdrop-filter:blur(2px)}
#s_start>.card{max-width:940px;width:100%;padding:0;display:grid;grid-template-columns:1.15fr .85fr;overflow:auto;text-align:start}
.v2-welcome{padding:35px 36px 28px}
.v2-brand{display:flex;align-items:center;gap:13px;margin-bottom:26px}
.v2-brand img{width:86px;height:56px;object-fit:contain}
.v2-brand div{border-inline-start:1px solid #dde7df;padding-inline-start:14px}
.v2-brand small{display:block;font-size:.8rem;color:var(--ink2);line-height:1.6}
#s_start h1{font-size:3.5rem;line-height:1.2;letter-spacing:-2px;color:var(--deep);margin-bottom:10px}
#s_start .lead{font-size:1.05rem;line-height:1.8;max-width:28ch;margin-bottom:24px}
.menuBtn{box-shadow:none;min-height:74px;border-radius:14px;border:1px solid #dce6df;padding:16px;margin:10px 0;gap:15px}
.menuBtn.go,.menuBtn.gr{border-color:transparent;background:var(--deep);color:white}
.menuBtn.go .tx b,.menuBtn.gr .tx b,.menuBtn.go .tx i,.menuBtn.gr .tx i{color:white}
.menuBtn.go i,.menuBtn.gr i{opacity:.8}
.menuBtn .ico{display:none}
.menuBtn .tx b{font-size:1.1rem;line-height:1.5}
.menuBtn .tx i{font-size:.85rem;line-height:1.6}
.menuBtn::after{content:'←';font-size:1.4rem;margin-inline-start:auto}
#s_start .chips{justify-content:flex-start;gap:8px}
.card h1:focus,.card h2:focus,#qText:focus{outline:none}
.v2-source{font-size:.76rem;color:var(--ink2);line-height:1.8;margin-top:20px}
.v2-journey{background:var(--deep);color:#fff;padding:38px 34px;position:relative}
.v2-journey h2{color:white;font-size:1.1rem;margin-bottom:6px}
.v2-journey>p{color:#c5e1d5;font-size:.85rem;margin-bottom:25px}
.v2-journey ol{list-style:none;counter-reset:journey;display:grid;gap:0}
.v2-journey li{display:flex;gap:14px;position:relative;min-height:62px;align-items:flex-start;counter-increment:journey}
.v2-journey li::before{content:counter(journey);width:31px;height:31px;border:1px solid #a6c9b666;border-radius:50%;display:grid;place-items:center;flex:none;font-size:.8rem;position:relative;background:var(--deep);z-index:1}
.v2-journey li:not(:last-child)::after{content:'';position:absolute;inset-inline-start:15px;top:31px;height:31px;border-inline-start:1px solid #a6c9b64d}
.v2-journey b{font-size:.95rem;line-height:1.8;display:block}
.v2-journey small{font-size:.77rem;color:#c5e1d5;line-height:1.6}
.v2-journey .v2-route-note{border-top:1px solid #c5e1d535;padding-top:18px;margin-top:10px;font-size:.8rem;line-height:1.8;color:#e2ece7}
#hud{padding:14px;max-width:1040px;margin:auto}
#top{align-items:center;gap:8px}
#actPill{font-size:1rem;max-width:none;padding:12px 14px;gap:10px;border-radius:13px;min-height:48px}
#actPill i{font-size:.85rem}
#topRight .btn{width:48px;height:48px;border-radius:13px}
#scorePill{font-size:.9rem;padding:12px;min-height:48px;border-radius:13px}
#scorePill em{font-size:.75rem}
#gp{display:none!important}
#prog{margin-top:10px;height:4px}
.v2-stages{display:flex;justify-content:space-between;gap:4px;margin-top:8px}
.v2-stages span{font-size:.72rem;font-weight:800;background:#ffffffeb;color:var(--ink);border-radius:7px;padding:5px 9px;white-space:nowrap}
.v2-stages span.current{background:var(--deep);color:#fff}
.v2-stages span.done{background:#e0f4e7;color:#155735}
#hint{font-size:.9rem;line-height:1.7;bottom:calc(180px + var(--pb));border:1px solid #e0e9e2;border-radius:14px;max-width:min(480px,90vw)}
#act{bottom:calc(28px + var(--pb));max-width:calc(100vw - 230px);width:320px;min-height:52px;padding:14px 18px;font-size:1rem;border-radius:14px;right:auto;left:calc(50% - 57px);margin:0;transform:translateX(-50%);white-space:normal;box-shadow:none}
#act:active{transform:translateX(-50%) translateY(1px)}
#act.on{animation:none}
#skip{bottom:calc(151px + var(--pb));font-size:.875rem;min-height:46px;border-radius:12px;padding:10px 16px;animation:none}
#skip small{font-size:.75rem}
#skip.on{animation:none;opacity:1}
.v2-mission{position:fixed;z-index:11;bottom:calc(14px + var(--pb));left:50%;transform:translateX(-50%);width:min(540px,calc(100vw - 24px));background:#fffffff5;border:1px solid #dce7de;border-radius:21px;box-shadow:0 8px 40px #052b2e30;padding:14px 16px 77px;pointer-events:none}
.v2-mission-header{display:flex;gap:10px;align-items:center;justify-content:space-between}
#v2Goal{font-size:1rem;font-weight:800;line-height:1.5;color:var(--deep)}
#v2GoalKind{font-size:.72rem;font-weight:700;white-space:nowrap;border:1px solid #abcaba;border-radius:6px;padding:3px 6px;color:#0c4939}
#v2GoalDetail{font-size:.8rem;color:var(--ink2);line-height:1.7;min-height:23px}
#v2Assist{position:absolute;bottom:13px;inset-inline-start:14px;height:52px;width:110px;background:#edf4f0;border:1px solid #c9dfd1;border-radius:14px;font-size:.8rem;font-weight:800;pointer-events:auto;color:var(--deep)}
#v2Assist[aria-pressed=true]{background:var(--deep);color:#fff}
#v2IdleAction{position:absolute;bottom:13px;inset-inline-end:14px;width:calc(100% - 141px);min-height:52px;display:grid;place-items:center;background:#f0f3ef;border:1px dashed #bbcebf;border-radius:14px;font-size:.82rem;color:var(--ink2);padding:8px;text-align:center}
#warn{top:150px;font-size:.9rem;line-height:1.65}
#chant{font-size:1rem;white-space:normal;max-width:min(520px,88vw)}
#wp,#wpArrow{opacity:.85}
#wp b{font-size:.85rem}#wp i{font-size:.8rem}
#dua{top:50%;transform:translate(-50%,-50%);max-height:calc(100dvh - 40px);overflow:auto;touch-action:pan-y;background:#113e35fa;padding:24px;width:min(500px,92vw)}
#dua.on{transform:translate(-50%,-50%)}
#duaTx{font-size:1.25rem;line-height:1.9}
#duaNote{font-size:.9rem;color:#d3e8df}
#duaX{min-height:48px;font-size:1rem}
#tut{display:none!important}
#routeCard:not(.on),#dua:not(.on){visibility:hidden}
#routeMeta span b{font-size:.75rem}#routeMeta span{font-size:.9rem}
#qTag{font-size:.85rem;line-height:1.5;margin-bottom:14px}
#qText{font-size:1.2rem;line-height:1.8}
.opt{box-shadow:none;border:1px solid #dce5de;font-size:1rem;line-height:1.7;min-height:56px;border-radius:13px}
.opt:disabled{cursor:default}
.opt.dim{opacity:.65}
#qVerdict{font-size:1.05rem}
#qLine,#qRule{font-size:.95rem;line-height:1.8}
#qMore{min-height:44px;font-size:.85rem}
.v2-training-label{display:block;color:var(--ink2);font-size:.8rem;margin-bottom:12px;line-height:1.6}
.v2-summary{display:flex;align-items:center;gap:22px;background:#edf6f0;border-radius:16px;padding:22px;margin:20px 0;text-align:start}
.v2-summary #scoreBig{font-size:2.6rem;white-space:nowrap}
.v2-summary p{font-size:.9rem;margin:0!important}
#s_end .card{text-align:start}
#s_end .card>h1{font-size:2rem;margin-top:4px}
#revList .rev{padding:14px;border:1px solid #dde7df;background:white}
.rev summary{cursor:pointer;font-size:.95rem;font-weight:700;line-height:1.7}
.rev span{font-size:.9rem;line-height:1.8}
#endLead{font-size:.95rem}
.v2-review-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.v2-review-actions button{min-height:44px;border:1px solid #ccdbd2;background:#f1f6f2;border-radius:10px;padding:10px 14px;font-size:.85rem;font-weight:700}
.v2-collapsed-actions{margin-top:14px;border-top:1px solid #dce5de;padding-top:15px}
.v2-collapsed-actions summary{font-size:.9rem;cursor:pointer;min-height:44px}
.v2-bank-search{width:100%;min-height:50px;border:1px solid #c5d8cb;border-radius:12px;padding:12px 14px;font-size:1rem;margin-bottom:15px;user-select:text}
.v2-bank-empty{font-size:1rem;padding:25px;color:var(--ink2);text-align:center}
#s_bank .card{max-width:680px;width:100%;text-align:start}
.v2-access{position:fixed;inset:0;z-index:100;background:#0c4939;display:grid;place-items:center;padding:24px;color:white;text-align:center}
.v2-access>div{max-width:430px}.v2-access h1{font-size:2rem;margin-bottom:14px}.v2-access p{font-size:1rem;line-height:1.8}.v2-access a{color:#fff;display:inline-block;margin-top:18px;min-height:48px}
@media(min-width:800px){#s_start>.card{margin-right:min(3vw,40px)}#act{max-width:320px}.v2-mission{bottom:18px}#act{bottom:32px}}
@media(max-width:700px){
  .sheet{padding:14px 12px}.card{padding:23px 18px;border-radius:22px}.card.withX{padding-top:74px}
  #s_start>.card{display:block;width:min(470px,100%)}.v2-welcome{padding:25px 23px 22px}.v2-brand{margin-bottom:18px}.v2-brand img{width:78px;height:43px}
  #s_start h1{font-size:2.75rem}#s_start .lead{font-size:.95rem;max-width:none;margin-bottom:17px}
  .v2-journey{padding:18px 23px}.v2-journey h2{font-size:.9rem;margin:0}.v2-journey>p,.v2-journey .v2-route-note{display:none}
  .v2-journey ol{grid-template-columns:repeat(3,1fr);gap:10px 5px;margin-top:15px}.v2-journey li{min-height:0;gap:6px;align-items:center}.v2-journey li::before{width:22px;height:22px;font-size:.67rem}.v2-journey li::after{display:none}.v2-journey b{font-size:.74rem}.v2-journey small{display:none}
  .v2-source{margin-top:12px;font-size:.72rem}.menuBtn{min-height:69px;padding:13px}.menuBtn .tx i{font-size:.82rem}
  #hud{padding:10px}#actPill{font-size:.9rem;padding:10px;gap:5px}#actPill i{font-size:.8rem}#scorePill{padding:10px 8px;gap:4px;font-size:.9rem}#scorePill em{font-size:.65rem}#topRight{gap:5px}#topRight .btn{width:44px;height:48px}
  .v2-stages{gap:3px}.v2-stages span{padding:5px 4px;font-size:.65rem}
  #act{left:calc(50% - 59px);width:calc(100vw - 184px);max-width:354px;font-size:.95rem;bottom:calc(28px + var(--pb))}
  #v2Goal{font-size:.95rem}#v2GoalDetail{font-size:.77rem}.v2-mission{padding:12px 14px 77px}
  #hint{bottom:calc(177px + var(--pb));font-size:.83rem;padding:10px 14px}#warn{top:128px;font-size:.85rem;max-width:92vw}
  #qText{font-size:1.1rem}.opt{font-size:.95rem;padding:13px}#duaTx{font-size:1.1rem}.sex i{font-size:.8rem}
}
@media(max-width:360px){#scorePill em{display:none}.v2-welcome{padding:22px 18px}.v2-stages span{font-size:.6rem}.v2-brand div small{font-size:.7rem}}
@media(max-height:520px) and (orientation:landscape){#s_start>.card{display:grid;grid-template-columns:1fr .7fr;max-width:860px}.v2-welcome{padding:20px 24px}.v2-brand,.v2-source{display:none}#s_start h1{font-size:2rem}#s_start .lead{font-size:.85rem;margin-bottom:10px}.menuBtn{min-height:57px;margin:7px 0;padding:9px 13px}.v2-journey ol{grid-template-columns:1fr}.v2-journey{padding:22px}.v2-mission{left:36%;width:440px;padding-bottom:64px}#act{left:calc(36% - 57px);bottom:28px;width:270px;min-height:45px}#v2Assist,#v2IdleAction{height:45px;min-height:45px}#hint{bottom:155px}#hud{max-width:100%}.v2-stages{display:none}#warn{top:83px}#dua{max-height:calc(100dvh - 24px)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}#flash{display:none!important}}
/* Keep both action buttons in the same reserved row, at every viewport size. */
#v2Mission #act{position:absolute;left:14px;right:auto;bottom:13px;transform:none;margin:0;width:calc(100% - 141px);max-width:none;height:52px;min-height:52px;padding:7px 10px;font-size:.82rem;line-height:1.3;pointer-events:auto}
#v2Mission #act:active{transform:translateY(1px)}
#actNo,#scoreBig{direction:ltr;unicode-bidi:isolate}
#hint{width:min(480px,calc(100vw - 40px))}
#miqatLocation{font-size:.68rem;line-height:1.5;color:#b8cfca;margin-bottom:3px}
.miqat-speaking #v2GoalDetail{color:#d9ebe2;border-inline-start:3px solid #b7cbbb;padding-inline-start:9px;margin-top:7px}
#miqatSpeaker{font-size:.78rem;color:#d8c394;margin-bottom:12px;border-bottom:1px solid #d8c39444;padding-bottom:10px}
#dua.miqat-guide{border-radius:24px 24px 8px 24px;border:1px solid #dfc98d88}
#dua.miqat-guide #duaTx{background:#ffffff0a;border-radius:14px;padding:12px 8px}
@media(max-height:520px) and (orientation:landscape){#miqatLocation{display:none}.miqat-speaking #v2GoalDetail{margin-top:3px}}
.v2-appearance{font-size:.8rem;color:var(--ink2);margin-top:12px}.v2-appearance summary{cursor:pointer;min-height:44px;display:flex;align-items:center}.v2-appearance .big{font-size:.8rem}
@media(max-height:520px) and (orientation:landscape){#v2Mission #act{height:45px;min-height:45px;font-size:.78rem}}
