/* Standalone application screen: independent of the active WordPress theme. */
html:has(body.luwandia-standalone),body.luwandia-standalone{margin:0;min-height:100%;width:100%}
body.luwandia-standalone{padding:0!important;background:#b8e7f4;overflow-x:hidden}
body.luwandia-standalone .luwandia-standalone-main{width:100%;min-height:100vh;min-height:100dvh;margin:0;padding:0}
body.luwandia-standalone .lw-app{width:100%;max-width:none;min-height:100vh;min-height:100dvh;margin:0;border:0;border-radius:0;box-shadow:none}
body.luwandia-standalone .lw-footer{margin-top:0}
@media(max-width:560px){body.luwandia-standalone .lw-app{border-radius:0}}

/* v0.2.2: isolated UI layout; defend card buttons against theme button rules. */
html, body.luwandia-standalone { max-width:100%; overflow-x:clip; }
body.luwandia-standalone .lw-app { display:block; box-sizing:border-box; max-width:100%; }
body.luwandia-standalone .lw-app .lw-shell,
body.luwandia-standalone .lw-app .lw-content,
body.luwandia-standalone .lw-app .lw-subject-grid,
body.luwandia-standalone .lw-app .lw-topic-grid,
body.luwandia-standalone .lw-app .lw-level-grid,
body.luwandia-standalone .lw-app .lw-results-grid { min-width:0; max-width:100%; }
body.luwandia-standalone .lw-app .lw-subject-grid { display:grid!important; grid-template-columns:repeat(var(--lw-subject-columns, 3),minmax(0,1fr))!important; }
body.luwandia-standalone .lw-app .lw-topic-grid,
body.luwandia-standalone .lw-app .lw-level-grid,
body.luwandia-standalone .lw-app .lw-results-grid { display:grid!important; grid-template-columns:repeat(3,minmax(0,1fr))!important; }
body.luwandia-standalone .lw-app button.lw-subject,
body.luwandia-standalone .lw-app button.lw-topic,
body.luwandia-standalone .lw-app button.lw-level {
  display:flex!important; flex-direction:column!important; align-items:center!important;
  justify-content:center; white-space:normal!important; text-align:center!important;
  width:100%; max-width:100%; min-width:0; height:auto; line-height:1.4;
}
body.luwandia-standalone .lw-app .lw-subject > *,
body.luwandia-standalone .lw-app .lw-topic > *,
body.luwandia-standalone .lw-app .lw-level > * { display:block; max-width:100%; min-width:0; overflow-wrap:anywhere; }
body.luwandia-standalone .lw-app .lw-subject > em { margin-top:auto; }
body.luwandia-standalone .lw-app .lw-topbar { min-width:0; flex-wrap:wrap; }
body.luwandia-standalone .lw-app .lw-breadcrumb { max-width:calc(100% - 24px); white-space:normal; }
@media(max-width:800px){
 body.luwandia-standalone .lw-app .lw-subject-grid { grid-template-columns:repeat(min(var(--lw-subject-columns, 3), 2),minmax(0,1fr))!important; }
 body.luwandia-standalone .lw-app .lw-topic-grid,
 body.luwandia-standalone .lw-app .lw-level-grid { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
}
@media(max-width:560px){
 body.luwandia-standalone .lw-app .lw-subject-grid,
 body.luwandia-standalone .lw-app .lw-topic-grid,
 body.luwandia-standalone .lw-app .lw-level-grid,
 body.luwandia-standalone .lw-app .lw-results-grid { grid-template-columns:minmax(0,1fr)!important; }
 body.luwandia-standalone .lw-app button.lw-subject { min-height:195px; }
 body.luwandia-standalone .lw-app button.lw-topic { min-height:120px; }
 body.luwandia-standalone .lw-app button.lw-level { min-height:170px; }
}

/* v0.2.3: breathing room on desktops, without adding horizontal mobile overflow. */
@media (min-width:801px) {
  body.luwandia-standalone .lw-app .lw-shell {
    padding-inline:clamp(24px,3.5vw,64px);
  }
  body.luwandia-standalone .lw-app .lw-topbar {
    border-radius:0 0 20px 20px;
  }
  body.luwandia-standalone .lw-app .lw-footer {
    border-radius:18px 18px 0 0;
  }
}
/* On small screens the start action remains visible even if the selected level is above the fold. */
@media (max-width:560px) {
  body.luwandia-standalone .lw-app[data-screen="levels"] .lw-content {
    padding-bottom:calc(108px + env(safe-area-inset-bottom, 0px));
  }
  body.luwandia-standalone .lw-app[data-screen="levels"] .lw-level-start-bar {
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    z-index:100;
    margin:0;
    padding:12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
    background:linear-gradient(to top,#fffef5 70%,#fffef5ef);
    border-top:2px solid #f4e6bb;
    box-shadow:0 -5px 20px #294b6630;
  }
  body.luwandia-standalone .lw-app[data-screen="levels"] .lw-level-start-bar .lw-btn {
    display:block;
    width:min(100%,440px);
    margin:0 auto;
  }
}
/* LuWandia parents: standalone, theme-independent account forms. */
.lw-account-link{font-size:14px;color:#49237e;font-weight:800;text-decoration:none;padding:10px 14px;border-radius:16px;background:#fff8;border:1px solid #8d66b4}
.lw-auth-wrap{min-height:100dvh;background:linear-gradient(160deg,#bdeafb,#eddefe 55%,#fff5c6);display:flex;align-items:center;justify-content:center;padding:36px 18px;font:16px/1.5 system-ui,-apple-system,sans-serif;color:#32244d;box-sizing:border-box}
.lw-auth-wrap *{box-sizing:border-box}
.lw-auth-card{width:min(100%,500px);background:#fff;border:3px solid #d9b8f6;border-radius:28px;padding:clamp(22px,4vw,42px);box-shadow:0 18px 55px #4f24802e}
.lw-auth-brand{font-size:28px;font-weight:900;text-decoration:none;color:#673ca1}
.lw-auth-card h1{font-size:clamp(24px,5vw,32px);color:#472477;margin:18px 0}
.lw-auth-card a{color:#6031a1}
.lw-auth-card p{margin:14px 0}
.lw-auth-alert{border-radius:12px;background:#e2f7e8;border:1px solid #9fdbb0;padding:12px}
.lw-auth-form{display:grid;gap:16px;margin-top:14px}
.lw-auth-form label{display:grid;gap:6px;font-weight:700}
.lw-auth-form input[type=email],.lw-auth-form input[type=password]{width:100%;min-width:0;border:2px solid #cab8df;background:white;color:#302642;border-radius:12px;padding:13px;font:inherit}
.lw-auth-form input:focus-visible{outline:3px solid #ffc955;outline-offset:2px}
.lw-auth-form .lw-auth-check{display:block;font-weight:500}
.lw-auth-form .lw-auth-check input{margin-right:8px}
.lw-auth-primary,.lw-auth-secondary{display:block;width:100%;padding:14px 18px;text-align:center;font:800 16px system-ui;border:0;border-radius:14px;cursor:pointer;text-decoration:none!important}
.lw-auth-primary{color:white!important;background:#643baf}
.lw-auth-secondary{background:#eee7f9;color:#4b2c7d}
.lw-auth-back{padding-top:12px;border-top:1px solid #eee}
@media(max-width:640px){.lw-auth-wrap{padding:16px}.lw-auth-card{border-radius:20px}.lw-account-link{font-size:12px;padding:8px}}

/* v0.4.1: high-specificity form actions, visible without hover on all themes/devices. */
body.luwandia-standalone .lw-auth-wrap .lw-auth-card button.lw-auth-primary,
body.luwandia-standalone .lw-auth-wrap .lw-auth-card a.lw-auth-primary {
  display:block;width:100%;min-height:52px;padding:14px 20px;
  border:2px solid #542d93;border-radius:14px;
  background:#643baf;color:#fff!important;-webkit-text-fill-color:#fff!important;
  font:800 17px/1.35 system-ui,-apple-system,sans-serif;
  text-align:center;opacity:1;visibility:visible;box-shadow:0 4px 0 #43236f;
  cursor:pointer;text-decoration:none;
}
body.luwandia-standalone .lw-auth-wrap .lw-auth-card button.lw-auth-primary:hover,
body.luwandia-standalone .lw-auth-wrap .lw-auth-card button.lw-auth-primary:focus-visible {
  background:#4f2c8e;color:white!important;-webkit-text-fill-color:#fff!important;
}
body.luwandia-standalone .lw-auth-wrap .lw-auth-card .lw-auth-register-cta {
  display:block;width:100%;min-height:54px;padding:14px 18px;margin:18px 0;
  border-radius:14px;border:2px solid #c17b0d;background:#ffce59;
  color:#38254b!important;-webkit-text-fill-color:#38254b!important;
  font:800 17px/1.35 system-ui,-apple-system,sans-serif;
  text-align:center;text-decoration:none!important;
  box-shadow:0 4px 0 #d39b2c;
}
body.luwandia-standalone .lw-auth-wrap .lw-auth-card .lw-auth-register-cta:hover,
body.luwandia-standalone .lw-auth-wrap .lw-auth-card .lw-auth-register-cta:focus-visible {
  background:#f9bb30;color:#30213e!important;-webkit-text-fill-color:#30213e!important;
}
