.cv-gapp{
  --blue:#0B4A6F;
  --green:#0F766E;
  --green-dark:#095f59;
  --green-soft:#E8F7F3;
  --yellow:#F9C74F;
  --red:#D7263D;
  --red-soft:#FFF0F2;
  --orange-soft:#FFF7E8;
  --bg:#F4FBFF;
  --text:#123047;
  --muted:#5D7280;
  --border:#DDECEF;
  --white:#fff;
  --shadow:0 12px 34px rgba(11,74,111,.10);

  font-family:Arial,Helvetica,sans-serif;
  background:var(--bg);
  color:var(--text);
  min-height:100vh;
  padding:18px 0 40px;
}

.cv-gapp *{box-sizing:border-box}

.cv-gwrap{
  width:min(920px,94%);
  margin:auto;
}

/* TOP */
.cv-topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 14px;
}

.cv-brand{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:var(--green) !important;
  text-decoration:none !important;
  font-size:13px;
  font-weight:900;
  letter-spacing:.25px;
  padding:5px 0;
}

.cv-brand:hover{
  color:var(--green-dark) !important;
  text-decoration:none !important;
}

.cv-brand-arrow{
  font-size:14px;
  opacity:.75;
}

.cv-daypill{
  font-size:12px;
  background:#dff4ef;
  color:var(--green);
  font-weight:900;
  padding:7px 11px;
  border-radius:999px;
  white-space:nowrap;
}

/* PROGRESS */
.cv-progressbox{
  background:#fff;
  border:1px solid var(--border);
  border-radius:16px;
  padding:13px 15px;
  margin-bottom:16px;
  box-shadow:0 6px 20px rgba(11,74,111,.05);
}

.cv-progress-meta{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  font-size:12px;
  color:var(--muted);
  margin-bottom:8px;
}

.cv-progress-track{
  height:8px;
  background:#e8f0f3;
  border-radius:999px;
  overflow:hidden;
}

.cv-progress-bar{
  height:100%;
  width:0;
  background:var(--green);
  transition:width .28s ease;
}

/* MAIN CARD */
.cv-card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:22px;
  box-shadow:var(--shadow);
  padding:24px;
  overflow:hidden;
}

.cv-hero{
  text-align:center;
  margin-bottom:18px;
  transition:.2s ease;
}

.cv-kicker{
  display:inline-block;
  background:#fff5c9;
  color:#755d00;
  font-weight:900;
  font-size:12px;
  padding:7px 11px;
  border-radius:999px;
  margin-bottom:10px;
}

.cv-hero h1{
  margin:0;
  color:var(--blue);
  font-size:clamp(25px,4.7vw,38px);
  line-height:1.12;
  font-weight:900;
}

.cv-target{
  margin:10px auto 0;
  color:var(--muted);
  font-size:16px;
  line-height:1.5;
  max-width:760px;
}

/* Compact mode during exercises */
.cv-gapp.cv-practice-mode .cv-kicker{display:none}

.cv-gapp.cv-practice-mode .cv-hero{
  margin-bottom:14px;
  padding-bottom:14px;
  border-bottom:1px solid #eef3f5;
}

.cv-gapp.cv-practice-mode .cv-hero h1{
  font-size:20px;
  line-height:1.25;
}

.cv-gapp.cv-practice-mode .cv-target{
  font-size:13px;
  margin-top:5px;
}

.cv-stage-title{
  font-size:13px;
  color:var(--green);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.5px;
  margin-bottom:8px;
}

.cv-question{
  font-size:24px;
  line-height:1.35;
  font-weight:900;
  color:var(--blue);
  margin:0 0 18px;
}

.cv-instruction{
  font-size:14px;
  color:var(--muted);
  line-height:1.5;
  margin-bottom:16px;
}

/* FOCUS: one rule per screen */
.cv-focus-single{
  border:1px solid var(--border);
  background:#fbfdfe;
  border-radius:18px;
  padding:18px;
}

.cv-focus-label{
  display:inline-block;
  background:var(--green-soft);
  color:var(--green-dark);
  border-radius:999px;
  padding:6px 10px;
  font-size:12px;
  font-weight:900;
  margin-bottom:11px;
}

.cv-focus-rule{
  margin:0 0 15px;
  font-size:17px;
  line-height:1.5;
  font-weight:700;
}

.cv-example{
  border-radius:14px;
  padding:12px 13px;
  margin-top:9px;
  line-height:1.45;
  font-size:14px;
}

.cv-example-good{
  background:#eef9f1;
  border:1px solid #c5e5ce;
  color:#28653c;
}

.cv-example-bad{
  background:var(--red-soft);
  border:1px solid #f0c6cb;
  color:#8f3540;
}

.cv-example-fix{
  background:#eef4fb;
  border:1px solid #c7d9ea;
  color:#214f73;
  font-weight:800;
}

/* OPTIONS */
.cv-options{
  display:grid;
  gap:10px;
}

.cv-gapp button.cv-option,
.cv-gapp button.cv-chip{
  appearance:none;
  -webkit-appearance:none;
  border:1px solid var(--border);
  background:#fff !important;
  color:var(--text) !important;
  border-radius:14px;
  padding:13px 15px;
  font-size:16px;
  font-weight:800;
  cursor:pointer;
  transition:.18s ease;
  text-align:left;
  box-shadow:none !important;
  text-shadow:none !important;
  opacity:1;
}

.cv-gapp button.cv-option:hover,
.cv-gapp button.cv-option:focus,
.cv-gapp button.cv-option:active,
.cv-gapp button.cv-chip:hover,
.cv-gapp button.cv-chip:focus,
.cv-gapp button.cv-chip:active{
  color:var(--text) !important;
  border-color:#9ecfc8;
  transform:translateY(-1px);
  outline:none;
}

.cv-gapp button.cv-option.selected{
  border:2px solid var(--green) !important;
  background:#EAF7F5 !important;
  color:#123047 !important;
}

.cv-gapp button.cv-option.correct{
  border:2px solid #4E9A63 !important;
  background:#E8F7EC !important;
  color:#1F6035 !important;
}

.cv-gapp button.cv-option.wrong{
  border:2px solid #D96A75 !important;
  background:#FFF0F2 !important;
  color:#8D2F3A !important;
}

.cv-gapp button.cv-option[disabled],
.cv-gapp button.cv-chip[disabled]{
  opacity:1 !important;
  cursor:default;
}

/* INPUT / REBUILD */
.cv-input{
  width:100%;
  border:1px solid var(--border);
  border-radius:14px;
  padding:14px 15px;
  font-size:17px;
  color:var(--text);
  background:#fff;
  outline:none;
}

.cv-input:focus{
  border-color:var(--green);
  box-shadow:0 0 0 3px rgba(15,118,110,.10);
}

.cv-chip-area{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:14px;
}

.cv-build{
  min-height:58px;
  border:2px dashed #bcd4dc;
  border-radius:14px;
  padding:10px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:14px;
  background:#fbfdfe;
}

.cv-build .cv-chip{
  background:#eefaf7 !important;
  border-color:#badfd8 !important;
}

/* BUTTONS */
.cv-actions{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
  margin-top:18px;
}

.cv-btn{
  appearance:none;
  border:1px solid var(--border);
  border-radius:14px;
  padding:13px 16px;
  font-size:16px;
  font-weight:900;
  cursor:pointer;
  transition:.18s ease;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  text-decoration:none !important;
}

.cv-btn-primary{
  background:var(--green) !important;
  color:#fff !important;
  border-color:var(--green) !important;
}

.cv-btn-primary:hover{
  background:var(--green-dark) !important;
  color:#fff !important;
}

.cv-btn-secondary{
  background:#fff !important;
  color:var(--blue) !important;
}

.cv-btn-secondary:hover{
  border-color:#a9cbd6;
  color:var(--blue) !important;
}

.cv-btn[disabled]{
  opacity:.45;
  cursor:not-allowed;
  transform:none;
}

/* FEEDBACK */
.cv-feedback{
  margin-top:14px;
  border-radius:14px;
  padding:13px 14px;
  font-size:14px;
  font-weight:800;
  line-height:1.45;
  display:none;
  animation:cvPop .2s ease;
}

.cv-feedback.good{
  display:block;
  background:#EBF8EF;
  color:#23683A;
  border:1px solid #BEE1C8;
}

.cv-feedback.bad{
  display:block;
  background:var(--orange-soft);
  color:#7A4C00;
  border:1px solid #F0D29A;
}

.cv-feedback.solution{
  display:block;
  background:#EEF4FB;
  color:#214F73;
  border:1px solid #C7D9EA;
}

/* STAGE COMPLETION */
.cv-stage-complete{
  text-align:center;
  padding:18px 8px 6px;
  animation:cvPop .24s ease;
}

.cv-celebrate{
  font-size:48px;
  line-height:1;
  margin-bottom:10px;
  animation:cvBounce .65s ease;
}

.cv-stage-complete h2{
  margin:0 0 9px;
  color:var(--blue);
  font-size:28px;
}

.cv-stage-complete p{
  margin:0 auto;
  max-width:620px;
  color:var(--muted);
  line-height:1.55;
}

/* FINAL */
.cv-complete{
  text-align:center;
  padding:12px 0 2px;
}

.cv-final-icon{
  font-size:60px;
  margin-bottom:6px;
  animation:cvBounce .7s ease;
}

.cv-complete h2{
  margin:0;
  color:var(--blue);
  font-size:31px;
}

.cv-final-sub{
  color:var(--muted);
  margin:9px auto 15px;
  max-width:620px;
  line-height:1.55;
}

.cv-score{
  font-size:50px;
  font-weight:900;
  color:var(--green);
  margin:8px 0 2px;
}

.cv-statusrow{
  display:flex;
  justify-content:center;
  gap:8px;
  flex-wrap:wrap;
  margin:14px 0;
}

.cv-stat{
  background:#f6fafb;
  border:1px solid var(--border);
  border-radius:12px;
  padding:9px 11px;
  font-size:12px;
  font-weight:800;
}

.cv-final-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:18px;
}

.cv-small{
  font-size:13px;
  color:var(--muted);
}

/* Animations */
@keyframes cvPop{
  from{opacity:0;transform:translateY(5px)}
  to{opacity:1;transform:translateY(0)}
}

@keyframes cvBounce{
  0%{transform:scale(.8)}
  55%{transform:scale(1.08)}
  100%{transform:scale(1)}
}

@media(max-width:700px){
  .cv-gapp{padding-top:14px}
  .cv-gwrap{width:min(94%,700px)}
  .cv-card{padding:18px}
  .cv-question{font-size:20px}
  .cv-topbar{align-items:center}
  .cv-brand{font-size:12px}
  .cv-daypill{font-size:11px;padding:6px 9px}
  .cv-hero h1{font-size:27px}
  .cv-target{font-size:15px}
  .cv-gapp.cv-practice-mode .cv-hero h1{font-size:18px}
  .cv-gapp.cv-practice-mode .cv-target{font-size:12px}
  .cv-actions{flex-direction:column-reverse}
  .cv-btn{width:100%}
  .cv-final-actions{grid-template-columns:1fr}
  .cv-stage-complete h2{font-size:25px}
}

/* Course hub V0.2.0 — redesigned mobile-first home */
.cv-grammar-hub{
  --blue:#0B4A6F;--blue-dark:#073a58;--green:#0F766E;--green-dark:#095f59;--green-soft:#E8F7F3;
  --yellow:#F9C74F;--bg:#F4FBFF;--text:#123047;--muted:#5D7280;--border:#DDECEF;--white:#fff;
  font-family:Arial,Helvetica,sans-serif;background:linear-gradient(180deg,#F4FBFF 0%,#F8FCFD 100%);color:var(--text);padding:22px;border-radius:26px;
}
.cv-hub-hero{max-width:1060px;margin:0 auto 18px;text-align:center;background:linear-gradient(135deg,#083F61 0%,#0B4A6F 56%,#0F766E 100%);color:#fff;border-radius:26px;padding:34px 28px;box-shadow:0 18px 48px rgba(11,74,111,.16);position:relative;overflow:hidden}
.cv-hub-hero:after{content:"";position:absolute;width:230px;height:230px;border-radius:50%;background:rgba(255,255,255,.06);right:-70px;top:-90px;pointer-events:none}
.cv-hub-brandline{display:flex;justify-content:center;align-items:center;gap:9px;font-size:12px;font-weight:900;letter-spacing:.35px;margin-bottom:15px;opacity:.95}
.cv-hub-brandmark{width:28px;height:28px;border-radius:9px;background:#fff;color:var(--green);display:inline-flex;align-items:center;justify-content:center;font-size:16px}
.cv-hub-kicker{display:inline-block;background:rgba(249,199,79,.18);border:1px solid rgba(249,199,79,.42);color:#FFE8A1;font-weight:900;font-size:12px;padding:7px 11px;border-radius:999px;margin-bottom:11px}
.cv-hub-hero h1{margin:0;color:#fff;font-size:clamp(31px,5vw,48px);line-height:1.05;font-weight:900;letter-spacing:-.6px}
.cv-hub-hero p{font-size:15px;line-height:1.65;max-width:720px;margin:13px auto 0;color:rgba(255,255,255,.87)}
.cv-hub-stats{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:22px auto 18px}
.cv-hub-stat{min-width:118px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);border-radius:15px;padding:10px 14px;display:flex;flex-direction:column;gap:2px}
.cv-hub-stat strong{font-size:19px;color:#fff}.cv-hub-stat span{font-size:11px;color:rgba(255,255,255,.76);font-weight:800}
.cv-hub-stat-live{background:rgba(232,247,243,.16);border-color:rgba(193,235,226,.35)}
.cv-hub-continue{min-width:220px;background:#fff!important;color:var(--blue)!important;border-color:#fff!important;box-shadow:0 8px 22px rgba(0,0,0,.12)}
.cv-hub-continue:hover{background:#F5FBFA!important;color:var(--green-dark)!important}
.cv-hub-summary{max-width:1060px;margin:0 auto 22px;background:#fff;border:1px solid var(--border);border-radius:18px;padding:16px 18px;box-shadow:0 8px 26px rgba(11,74,111,.06)}
.cv-hub-summary-top{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:9px}.cv-hub-summary-top>div{display:flex;flex-direction:column;gap:3px;text-align:left}
.cv-hub-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.55px;color:var(--green);font-weight:900}.cv-hub-progress-text{font-size:15px;color:var(--blue)}.cv-hub-progress-pct{font-size:18px;font-weight:900;color:var(--green)}
.cv-hub-summary-note{margin:8px 0 0;font-size:11px;color:var(--muted);text-align:left}
.cv-hub-section{max-width:1060px;margin:0 auto 24px}.cv-hub-section-head{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:0 2px 11px}.cv-hub-section-head>div{text-align:left}
.cv-hub-section-kicker{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.55px;color:var(--green);font-weight:900;margin-bottom:4px}.cv-hub-section-head h2{margin:0;color:var(--blue);font-size:20px;line-height:1.25}
.cv-hub-section-badge{background:#E8F7F3;color:var(--green-dark);border:1px solid #C9E9E2;font-size:11px;font-weight:900;padding:7px 10px;border-radius:999px;white-space:nowrap}.cv-hub-section-badge-new{background:#FFF5C9;color:#775D00;border-color:#F3DF8B}.cv-hub-section-badge-lock{background:#F1F4F6;color:#63727B;border-color:#E1E8EC}
.cv-hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.cv-day-card{background:#fff;border:1px solid var(--border);border-radius:17px;padding:14px;display:flex;align-items:center;gap:13px;text-decoration:none!important;color:var(--text)!important;transition:.18s ease;min-height:92px;box-shadow:0 3px 12px rgba(11,74,111,.025)}
.cv-day-card.cv-active:hover{border-color:#9ECFC8;transform:translateY(-2px);box-shadow:0 10px 26px rgba(11,74,111,.08)}
.cv-day-card.cv-active.is-complete{border-color:#B8DDD6;background:linear-gradient(180deg,#fff,#F4FBF9)}
.cv-day-card.cv-new{border-left:4px solid #F9C74F}
.cv-day-num{width:48px;height:48px;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--green-soft);color:var(--green-dark);font-size:17px;font-weight:900;line-height:1;flex:0 0 auto}.cv-day-num span{font-size:8px;letter-spacing:.6px;margin-bottom:3px;opacity:.72}
.cv-day-main{min-width:0;flex:1}.cv-day-title{font-size:14px;font-weight:900;color:var(--blue);line-height:1.3;margin-bottom:5px}.cv-day-meta{font-size:11.5px;color:var(--muted);line-height:1.38}
.cv-day-state{font-size:11px;font-weight:900;color:var(--green);white-space:nowrap;background:#F2FAF8;border-radius:999px;padding:7px 9px}.cv-day-card.is-complete .cv-day-state{background:#E8F7F3;color:var(--green-dark)}
.cv-day-card.cv-locked{opacity:.64;cursor:not-allowed;background:#FBFCFD;box-shadow:none}.cv-day-card.cv-locked .cv-day-num{background:#EFF3F5;color:#6E7E87}.cv-day-card.cv-locked .cv-day-state{background:#F1F4F6;color:#7B8991}
.cv-hub-grid-locked .cv-day-card{min-height:80px}.cv-hub-grid-locked .cv-day-meta{display:none}.cv-hub-upcoming{padding-top:2px}
@media(max-width:760px){
  .cv-grammar-hub{padding:12px;border-radius:20px}.cv-hub-hero{padding:26px 17px;border-radius:21px}.cv-hub-hero h1{font-size:32px}.cv-hub-hero p{font-size:14px}.cv-hub-stats{gap:7px;margin-top:18px}.cv-hub-stat{min-width:92px;padding:9px 10px}.cv-hub-stat strong{font-size:16px}.cv-hub-continue{width:100%;min-width:0}
  .cv-hub-summary{padding:14px}.cv-hub-grid{grid-template-columns:1fr}.cv-day-card{min-height:84px;padding:12px}.cv-day-title{font-size:13px}.cv-day-meta{font-size:11px}.cv-day-state{font-size:10px;padding:6px 8px}.cv-hub-section-head{align-items:center}.cv-hub-section-head h2{font-size:17px}.cv-hub-section-badge{font-size:10px}
  .cv-hub-grid-locked{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.cv-hub-grid-locked .cv-day-card{min-height:72px;padding:9px;gap:8px}.cv-hub-grid-locked .cv-day-num{width:38px;height:38px;font-size:14px;border-radius:11px}.cv-hub-grid-locked .cv-day-title{font-size:11px}.cv-hub-grid-locked .cv-day-state{padding:5px 6px}
}
@media(max-width:420px){.cv-hub-grid-locked{grid-template-columns:1fr}.cv-hub-section-badge{display:none}}

/* V0.4.1 — Standalone application shell / landing architecture */
html:has(body.cveg-fullscreen-page){margin-top:0!important}
body.cveg-fullscreen-page{
  margin:0!important;
  padding:0!important;
  min-height:100vh;
  background:#F4FBFF;
  overflow-x:hidden;
}
body.cveg-fullscreen-page.admin-bar{padding-top:32px!important}
body.cveg-fullscreen-page .cveg-app-page{min-height:100vh;width:100%;margin:0;padding:0}
body.cveg-fullscreen-page .cveg-app-page>p:empty{display:none}
body.cveg-fullscreen-page #wpadminbar{position:fixed}

.cv-grammar-hub{
  min-height:100vh;
  padding:18px 22px 42px;
  border-radius:0;
}
.cv-hub-appbar{
  width:min(1060px,100%);
  margin:0 auto 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.cv-hub-homebrand{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:#0B4A6F!important;
  text-decoration:none!important;
  min-width:0;
}
.cv-hub-homebrand>span:last-child{display:flex;flex-direction:column;line-height:1.05;text-align:left}
.cv-hub-homebrand strong{font-size:12px;letter-spacing:.7px;font-weight:900;color:#0B4A6F}
.cv-hub-homebrand small{font-size:11px;color:#5D7280;font-weight:700;margin-top:4px}
.cv-hub-portal{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:9px 12px;
  border-radius:999px;
  border:1px solid #DDECEF;
  background:#fff;
  color:#0B4A6F!important;
  text-decoration:none!important;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
  transition:.18s ease;
}
.cv-hub-portal:hover{border-color:#A7D7CF;transform:translateY(-1px);color:#095F59!important}
.cv-hub-hero{padding:42px 28px 36px}
.cv-hub-hero h1 span{color:#DDF7F0}
.cv-hub-brandline{margin-bottom:12px;letter-spacing:1.15px}
.cv-hub-bottom-nav{
  width:min(1060px,100%);
  margin:2px auto 0;
  background:#fff;
  border:1px solid #DDECEF;
  border-radius:20px;
  padding:17px 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  box-shadow:0 8px 26px rgba(11,74,111,.05);
}
.cv-hub-bottom-nav>div{display:flex;flex-direction:column;gap:3px;text-align:left}
.cv-hub-bottom-nav strong{font-size:14px;color:#0B4A6F}
.cv-hub-bottom-nav span{font-size:12px;color:#5D7280}
.cv-hub-bottom-btn{width:auto!important;white-space:nowrap}
.cv-app-topbar{padding-top:2px}

@media(max-width:782px){
  body.cveg-fullscreen-page.admin-bar{padding-top:46px!important}
}
@media(max-width:760px){
  .cv-grammar-hub{padding:12px 12px 30px}
  .cv-hub-appbar{margin-bottom:10px;padding:0 2px}
  .cv-hub-homebrand small{display:none}
  .cv-hub-portal{font-size:11px;padding:8px 10px}
  .cv-hub-hero{padding:34px 17px 29px}
  .cv-hub-bottom-nav{flex-direction:column;align-items:stretch;padding:15px}
  .cv-hub-bottom-btn{width:100%!important}
}
@media(max-width:420px){
  .cv-hub-homebrand strong{font-size:11px}
  .cv-hub-brandmark{width:26px;height:26px}
  .cv-hub-portal span:first-child{display:none}
}
.cv-final-home{margin-top:11px;text-align:center}
.cv-final-home-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:9px 14px;
  border-radius:999px;
  border:1px solid #DDECEF;
  background:#F8FCFD;
  color:#0B4A6F!important;
  font-size:12px;
  font-weight:900;
  text-decoration:none!important;
}
.cv-final-home-link:hover{border-color:#A7D7CF;color:#095F59!important}
