

:root{
  --bg:#f4f6fb;
  --surface:#ffffff;
  --surface-2:#f8faff;
  --text:#172033;
  --muted:#7a8498;
  --line:rgba(22,34,55,.08);
  --primary:#5b5ce2;
  --primary-2:#7c6cf2;
  --primary-soft:#eeefff;
  --green:#22a06b;
  --green-soft:#e9f8f0;
  --orange:#f59e0b;
  --orange-soft:#fff6df;
  --red:#e05a5a;
  --red-soft:#fff0f0;
  --shadow:0 14px 38px rgba(39,52,89,.08);
  --shadow-soft:0 8px 24px rgba(39,52,89,.06);
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  background:
    radial-gradient(circle at 10% 0%, rgba(111,92,242,.10), transparent 28%),
    radial-gradient(circle at 90% 5%, rgba(67,191,170,.08), transparent 24%),
    var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.app{
  min-height:100vh;
  display:grid;
  grid-template-columns:224px minmax(0,1fr);
}
.sidebar{
  height:calc(100vh - 28px);
  position:sticky;
  top:14px;
  margin:14px 0 14px 14px;
  background:linear-gradient(180deg,#20243a 0%,#171b2d 100%);
  border:1px solid rgba(255,255,255,.05);
  border-radius:24px;
  padding:22px 14px;
  box-shadow:0 20px 50px rgba(17,24,39,.16);
}
.brand{
  font-size:18px;
  font-weight:800;
  color:#fff;
  padding:8px 12px 24px;
  letter-spacing:-.3px;
  line-height:1.35;
}
.brand small{
  display:block;
  color:#9aa4bd;
  font-size:11px;
  font-weight:500;
  margin-top:7px;
  letter-spacing:0;
}
.nav{display:flex;flex-direction:column;gap:6px}
.nav-item{display:flex;align-items:center;gap:10px}
.nav-icon{
  width:18px;
  height:18px;
  flex:0 0 auto;
  display:inline-block;
}
.nav-icon svg{
  width:18px;
  height:18px;
  display:block;
  stroke:currentColor;
}
.mobile-nav .nav-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
}
.mobile-nav .nav-icon{
  width:18px;
  height:18px;
}
.mobile-nav .nav-icon svg{
  width:18px;
  height:18px;
}

.nav button{
  border:0;
  background:transparent;
  color:#aeb7cb;
  padding:12px 13px;
  border-radius:13px;
  text-align:left;
  font-weight:600;
  transition:.18s ease;
}
.nav button:hover{
  background:rgba(255,255,255,.06);
  color:#fff;
  transform:translateX(2px);
}
.nav button.active{
  background:linear-gradient(135deg,#6667e8,#7b6cf3);
  color:#fff;
  box-shadow:0 8px 20px rgba(91,92,226,.30);
}
.main{
  width:100%;
  max-width:1160px;
  margin:0 auto;
  padding:36px 34px 54px;
}
.top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:24px;
}
h1{
  font-size:30px;
  line-height:1.18;
  margin:0;
  font-weight:820;
  letter-spacing:-.7px;
}
h2{
  font-size:18px;
  margin:0 0 15px;
  font-weight:760;
  letter-spacing:-.2px;
}
.sub{
  color:var(--muted);
  margin-top:7px;
  font-size:14px;
  line-height:1.65;
}
.grid4{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
}
.grid2{
  display:grid;
  grid-template-columns:1.3fr .7fr;
  gap:18px;
}
.card{
  background:rgba(255,255,255,.92);
  border:1px solid rgba(255,255,255,.75);
  border-radius:22px;
  padding:22px;
  box-shadow:var(--shadow-soft);
  backdrop-filter:blur(12px);
}
.metric{
  padding:18px 19px;
  position:relative;
  overflow:hidden;
}
.metric:after{
  content:"";
  position:absolute;
  right:-18px;
  bottom:-20px;
  width:74px;
  height:74px;
  border-radius:50%;
  background:linear-gradient(135deg,rgba(91,92,226,.10),rgba(124,108,242,.02));
}
.metric .k{
  color:#8c95a8;
  font-size:12px;
  font-weight:600;
}
.metric .v{
  font-size:30px;
  line-height:1;
  font-weight:820;
  margin-top:11px;
  color:#151c2f;
}
.hero{
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(135deg,rgba(91,92,226,.98),rgba(124,108,242,.96));
  color:#fff;
  padding:28px;
  min-height:244px;
}
.hero:before,
.hero:after{
  content:"";
  position:absolute;
  border-radius:50%;
  background:rgba(255,255,255,.08);
}
.hero:before{width:190px;height:190px;right:-40px;top:-70px}
.hero:after{width:130px;height:130px;right:90px;bottom:-75px}
.hero .sub{color:rgba(255,255,255,.78)}
.hero .progress{background:rgba(255,255,255,.18)}
.hero .progress span{background:#fff}
.btn{
  border:0;
  border-radius:12px;
  padding:10px 16px;
  font-weight:720;
  transition:.16s ease;
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{
  background:#fff;
  color:#4f46d7;
  box-shadow:0 8px 18px rgba(34,31,96,.16);
}
.btn-solid{
  background:linear-gradient(135deg,#5b5ce2,#7568ef);
  color:#fff;
  box-shadow:0 8px 18px rgba(91,92,226,.22);
}
.btn-soft{
  background:#f0f2fb;
  color:#4b556f;
}
.btn-danger{
  background:var(--red-soft);
  color:#b43f3f;
}
.btn-green{
  background:var(--green-soft);
  color:#17724c;
}
.progress{
  height:8px;
  background:#edf0f6;
  border-radius:999px;
  overflow:hidden;
}
.progress span{
  display:block;
  height:100%;
  background:linear-gradient(90deg,#5b5ce2,#8b7cf7);
  border-radius:999px;
}
.row{display:flex;align-items:center;gap:12px}
.grow{flex:1}
.pill{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  color:#667085;
  font-size:12px;
  box-shadow:inset 0 0 0 1px rgba(22,34,55,.05);
}
.section{margin-top:18px}
.task{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:12px 0;
  border-bottom:1px solid rgba(22,34,55,.06);
  font-size:14px;
}
.task:last-child{border:0}
.study-wrap{
  max-width:720px;
  margin:0 auto;
}
.study-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin:0 0 12px;
  color:#8c95a8;
  font-size:13px;
}
.study-card{
  min-height:430px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
  padding:42px 36px;
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 85% 10%,rgba(124,108,242,.08),transparent 25%),
    radial-gradient(circle at 15% 90%,rgba(67,191,170,.06),transparent 24%),
    rgba(255,255,255,.95);
}
.study-card:before{
  content:"";
  position:absolute;
  inset:14px;
  border-radius:18px;
  border:1px solid rgba(91,92,226,.05);
  pointer-events:none;
}
.word{
  font-size:54px;
  font-weight:840;
  letter-spacing:-1.2px;
  word-break:break-word;
  color:#141b2e;
}
.phonetic{
  font-size:18px;
  color:#9aa3b5;
  margin-top:10px;
}
.meaning{
  font-size:23px;
  font-weight:700;
  margin-top:26px;
  white-space:pre-line;
  line-height:1.7;
  max-width:620px;
  color:#3f475b;
}
.example{
  font-size:16px;
  color:#6f7890;
  margin-top:12px;
}
.speaker{
  width:48px;
  height:48px;
  border:0;
  border-radius:50%;
  background:linear-gradient(135deg,#eff0ff,#f7f5ff);
  color:#5b5ce2;
  font-size:19px;
  margin-top:18px;
  box-shadow:inset 0 0 0 1px rgba(91,92,226,.08);
}
.answerbox{
  width:min(430px,100%);
  font-size:21px;
  text-align:center;
  margin-top:26px;
  padding:14px 16px;
  border:1px solid #dfe4ef;
  border-radius:13px;
  outline:none;
  background:#fff;
  transition:.15s ease;
}
.answerbox:focus{
  border-color:#8b7cf7;
  box-shadow:0 0 0 4px rgba(124,108,242,.10);
}
.feedback{
  margin-top:20px;
  padding:15px 18px;
  border-radius:14px;
  width:min(560px,100%);
  white-space:pre-line;
  line-height:1.6;
  font-size:14px;
}
.feedback.ok{background:#eefaf4;color:#166a47}
.feedback.bad{background:#fff2f2;color:#a33d3d}
.answer-actions{
  display:flex;
  gap:10px;
  margin-top:16px;
  flex-wrap:wrap;
  justify-content:center;
}
.rates{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-top:12px;
}
.rate{
  border:1px solid rgba(22,34,55,.07);
  background:rgba(255,255,255,.94);
  border-radius:13px;
  padding:12px 9px;
  color:#3f475b;
  box-shadow:var(--shadow-soft);
}
.rate:hover{
  border-color:rgba(91,92,226,.18);
  transform:translateY(-1px);
}
.rate small{
  display:block;
  color:#98a1b3;
  font-size:10px;
  margin-top:4px;
}
.mode-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-bottom:18px;
}
.mode-tabs button{
  border:0;
  background:rgba(255,255,255,.74);
  border-radius:999px;
  padding:8px 12px;
  color:#7a8498;
  font-size:12px;
  box-shadow:inset 0 0 0 1px rgba(22,34,55,.06);
}
.mode-tabs button.active{
  background:#20243a;
  color:#fff;
  font-weight:700;
  box-shadow:none;
}
.skill-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-top:12px;
}
.skill{
  background:rgba(255,255,255,.86);
  border:1px solid rgba(255,255,255,.85);
  border-radius:14px;
  padding:12px 13px;
  box-shadow:var(--shadow-soft);
}
.skill .label{font-size:11px;color:#98a1b3}
.skill b{display:block;margin-top:5px;font-size:13px}
.table-wrap{
  overflow:auto;
  max-height:680px;
  border:1px solid rgba(22,34,55,.06);
  border-radius:14px;
  background:#fff;
}
.table{
  width:100%;
  border-collapse:collapse;
  background:#fff;
}
.table th,.table td{
  padding:12px 14px;
  border-bottom:1px solid #f0f2f7;
  text-align:left;
  font-size:13px;
  vertical-align:top;
}
.table th{
  color:#8d96a8;
  font-weight:650;
  background:#fafbfe;
  position:sticky;
  top:0;
  z-index:2;
}
.table tr:hover td{background:#fcfcff}
.table .meaning-cell{
  white-space:pre-line;
  min-width:340px;
  color:#4c556b;
}
.searchbar{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.searchbar input{flex:1;min-width:220px}
.heatmap{
  display:grid;
  grid-template-columns:repeat(14,1fr);
  gap:6px;
}
.heat{
  aspect-ratio:1;
  border-radius:5px;
  background:#eceff5;
}
.h1{background:#dddfff}.h2{background:#c6c8fb}.h3{background:#9898ef}.h4{background:#5b5ce2}
.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
label{
  display:block;
  font-size:12px;
  color:#687289;
  margin-bottom:7px;
}
input,select,textarea{
  width:100%;
  padding:11px 13px;
  border:1px solid #dfe4ee;
  border-radius:11px;
  background:#fff;
  color:#344054;
  outline:none;
}
input:focus,select:focus,textarea:focus{
  border-color:#9387f4;
  box-shadow:0 0 0 4px rgba(124,108,242,.08);
}
textarea{min-height:130px}
.note{
  font-size:12px;
  color:#98a1b3;
  margin-top:10px;
  line-height:1.6;
}
.empty{
  text-align:center;
  padding:52px;
  color:#98a1b3;
}
.badge-red{background:var(--red-soft);color:#b04747}
.badge-green{background:var(--green-soft);color:#17724c}
.kbd{
  font-size:10px;
  color:#667085;
  border:1px solid #d0d5dd;
  border-bottom-width:2px;
  border-radius:5px;
  padding:1px 5px;
  background:#fff;
}

.memory-strip{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:9px;
  margin-top:12px;
}
.memory-chip{
  background:rgba(255,255,255,.88);
  border:1px solid rgba(22,34,55,.07);
  border-radius:13px;
  padding:11px 12px;
  box-shadow:var(--shadow-soft);
}
.memory-chip .m-label{
  font-size:10px;
  color:#98a1b3;
  margin-bottom:5px;
}
.memory-chip .m-value{
  font-size:14px;
  font-weight:760;
  color:#384056;
}
.retention-good{color:#17724c!important}
.retention-warn{color:#a66a0a!important}
.retention-low{color:#b04747!important}
.srs-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:linear-gradient(135deg,#eef0ff,#f6f4ff);
  color:#5958cb;
  padding:6px 10px;
  border-radius:999px;
  font-size:11px;
  font-weight:700;
}
.setting-help{
  margin-top:7px;
  font-size:11px;
  line-height:1.55;
  color:#98a1b3;
}

.mobile-nav{display:none}

/* dashboard special blocks */
.dashboard-focus{
  display:grid;
  grid-template-columns:1.4fr .6fr;
  gap:18px;
  margin-top:18px;
}
.today-list{
  display:grid;
  gap:10px;
  margin-top:14px;
}
.today-item{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 13px;
  background:#fafbfe;
  border-radius:14px;
}
.today-dot{
  width:10px;height:10px;border-radius:50%;flex:0 0 auto;
}
.dot-purple{background:#6b68e8}
.dot-green{background:#42b883}
.dot-orange{background:#f5a623}
.progress-ring{
  --p:0;
  width:118px;height:118px;border-radius:50%;
  background:conic-gradient(#5b5ce2 calc(var(--p)*1%), #eceef5 0);
  display:grid;place-items:center;
  position:relative;
}
.progress-ring:before{
  content:"";width:88px;height:88px;border-radius:50%;background:#fff;position:absolute;
}
.progress-ring strong{
  position:relative;font-size:24px;font-weight:820;color:#20243a;
}
.progress-ring span{
  position:absolute;bottom:25px;font-size:10px;color:#98a1b3;font-weight:600;
}

@media(max-width:900px){
  .app{display:block}
  .sidebar{display:none}
  .main{padding:22px 14px 88px}
  .grid4{grid-template-columns:repeat(2,1fr)}
  .grid2,.dashboard-focus{grid-template-columns:1fr}
  .rates,.skill-grid{grid-template-columns:repeat(2,1fr)}
  .word{font-size:42px}
  .form-grid{grid-template-columns:1fr}
  .top{margin-bottom:22px}
  .card{border-radius:18px}
  .mobile-nav{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    position:fixed;
    bottom:10px;
    left:10px;
    right:10px;
    background:rgba(255,255,255,.92);
    backdrop-filter:blur(14px);
    border:1px solid rgba(22,34,55,.07);
    border-radius:18px;
    box-shadow:0 14px 35px rgba(39,52,89,.12);
    z-index:50;
    overflow:hidden;
  }
  .mobile-nav button{
    border:0;
    background:transparent;
    padding:10px 2px;
    font-size:10px;
    color:#8d96a8;
  }
}


/* ===== V8.2 visual refinement layer ===== */
:root{
  --radius-lg:24px;
  --radius-md:16px;
  --radius-sm:12px;
}

body{
  letter-spacing:.005em;
}

.main{
  max-width:1180px;
  padding-top:40px;
}

.top{
  margin-bottom:26px;
}

h1{
  font-size:31px;
  font-weight:830;
  letter-spacing:-.8px;
}

h2{
  font-size:18px;
  font-weight:760;
  letter-spacing:-.25px;
}

.sub{
  color:#818ba0;
}

.card{
  border-radius:var(--radius-lg);
  border:1px solid rgba(29,41,73,.065);
  box-shadow:0 10px 28px rgba(38,50,82,.065);
}

.grid4{
  gap:15px;
}

.metric{
  min-height:112px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.metric:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 32px rgba(38,50,82,.085);
  border-color:rgba(91,92,226,.10);
}

.metric .k{
  font-size:11.5px;
  letter-spacing:.02em;
}

.metric .v{
  font-size:31px;
  margin-top:12px;
}

.sidebar{
  padding-top:20px;
}

.brand{
  padding-top:10px;
  padding-bottom:26px;
}

.nav button{
  min-height:46px;
}

.nav button.active{
  box-shadow:0 9px 24px rgba(91,92,226,.28);
}

.nav-icon{
  opacity:.95;
}

.hero{
  min-height:255px;
  border-radius:26px;
}

.hero:before{
  opacity:.9;
}

.hero .btn-primary{
  padding:12px 22px!important;
}

.progress-ring{
  width:124px;
  height:124px;
}

.progress-ring:before{
  width:92px;
  height:92px;
}

.progress-ring strong{
  font-size:25px;
}

.today-item{
  padding:13px 14px;
  border:1px solid rgba(29,41,73,.045);
  transition:background .16s ease, transform .16s ease;
}

.today-item:hover{
  background:#f8f9fe;
  transform:translateX(2px);
}

.today-dot{
  width:9px;
  height:9px;
}

.study-wrap{
  max-width:740px;
}

.mode-tabs{
  gap:8px;
  margin-bottom:16px;
}

.mode-tabs button{
  padding:8px 13px;
  font-weight:620;
  transition:all .16s ease;
}

.mode-tabs button:hover{
  color:#4f46d7;
  box-shadow:inset 0 0 0 1px rgba(91,92,226,.14);
}

.mode-tabs button.active:hover{
  color:#fff;
}

.study-card{
  min-height:445px;
  padding:46px 40px;
  border-radius:28px;
  box-shadow:0 16px 40px rgba(45,55,90,.075);
}

.study-card:before{
  inset:15px;
  border-radius:21px;
}

.word{
  font-size:56px;
  line-height:1.05;
}

.phonetic{
  margin-top:12px;
  font-size:17px;
}

.meaning{
  max-width:590px;
  margin-top:28px;
}

.speaker{
  width:50px;
  height:50px;
  margin-top:20px;
  transition:transform .16s ease, box-shadow .16s ease;
}

.speaker:hover{
  transform:scale(1.05);
  box-shadow:0 7px 18px rgba(91,92,226,.12);
}

.answerbox{
  min-height:54px;
  border-radius:14px;
}

.rates{
  margin-top:14px;
}

.rate{
  min-height:68px;
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.rate:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(38,50,82,.075);
}

.memory-strip{
  gap:10px;
  margin-top:14px;
}

.memory-chip{
  padding:12px 13px;
  border-radius:14px;
  background:rgba(255,255,255,.92);
}

.memory-chip .m-label{
  letter-spacing:.02em;
}

.memory-chip .m-value{
  font-size:14.5px;
}

.skill-grid{
  margin-top:10px;
}

.skill{
  border-radius:14px;
  background:rgba(255,255,255,.92);
}

.srs-badge{
  padding:6px 11px;
  font-size:10.5px;
  letter-spacing:.02em;
}

.table-wrap{
  border-radius:16px;
}

.table th{
  font-size:12px;
  letter-spacing:.015em;
}

.table td{
  line-height:1.55;
}

.searchbar input{
  min-height:42px;
}

input,select,textarea{
  border-radius:12px;
  transition:border-color .16s ease, box-shadow .16s ease;
}

.btn{
  border-radius:12px;
  min-height:40px;
  transition:transform .16s ease, box-shadow .16s ease, opacity .16s ease;
}

.btn:active{
  transform:translateY(0) scale(.985);
}

.btn-solid:hover{
  box-shadow:0 10px 24px rgba(91,92,226,.26);
}

.btn-soft:hover{
  background:#e9ecf7;
}

.note{
  color:#929bae;
}

.setting-help{
  color:#929bae;
}

.heat{
  transition:transform .16s ease;
}

.heat:hover{
  transform:scale(1.08);
}

@media(max-width:900px){
  .main{
    padding-top:20px;
  }

  h1{
    font-size:27px;
  }

  .card{
    border-radius:20px;
  }

  .study-card{
    min-height:400px;
    padding:36px 22px;
    border-radius:22px;
  }

  .word{
    font-size:43px;
  }

  .memory-strip{
    grid-template-columns:1fr;
  }

  .skill-grid{
    gap:8px;
  }

  .mobile-nav{
    bottom:8px;
    left:8px;
    right:8px;
    border-radius:20px;
  }
}


.book-switch{
  display:flex;
  align-items:center;
  gap:9px;
  flex-wrap:wrap;
}
.book-switch select{
  min-width:220px;
  width:auto;
  background:rgba(255,255,255,.94);
  font-weight:650;
}
.book-summary{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-top:14px;
}
.book-stat{
  border:1px solid rgba(29,41,73,.055);
  background:#fafbff;
  border-radius:15px;
  padding:14px;
}
.book-stat span{
  display:block;
  color:#98a1b3;
  font-size:11px;
}
.book-stat b{
  display:block;
  margin-top:7px;
  font-size:21px;
  letter-spacing:-.4px;
}
.book-list{
  display:grid;
  gap:10px;
  margin-top:14px;
}
.book-row{
  display:flex;
  align-items:center;
  gap:12px;
  padding:13px 14px;
  border:1px solid rgba(29,41,73,.06);
  border-radius:14px;
  background:#fbfcff;
}
.book-row.active{
  border-color:rgba(91,92,226,.22);
  background:#f7f7ff;
}
.book-mark{
  width:38px;
  height:38px;
  border-radius:11px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,#eeefff,#f7f4ff);
  color:#5b5ce2;
  font-size:18px;
  flex:0 0 auto;
}
.import-drop{
  border:1px dashed rgba(91,92,226,.28);
  background:#fafaff;
  border-radius:16px;
  padding:18px;
}
.import-rule{
  display:grid;
  grid-template-columns:40px 1fr;
  gap:10px;
  align-items:center;
  margin-top:12px;
}
.import-col{
  width:34px;
  height:34px;
  border-radius:9px;
  display:grid;
  place-items:center;
  background:#eef0ff;
  color:#5b5ce2;
  font-weight:800;
  font-size:12px;
}
@media(max-width:900px){
  .book-summary{grid-template-columns:1fr}
  .book-switch select{width:100%;min-width:0}
  .book-switch{width:100%}
}



/* V10 local app additions */
.status-dot{
  display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;background:#22a06b;
}
.status-dot.offline{background:#f59e0b}
.toast{
  position:fixed;right:24px;bottom:24px;z-index:1000;
  background:#20243a;color:#fff;padding:11px 15px;border-radius:12px;
  box-shadow:0 14px 35px rgba(20,25,45,.22);font-size:13px;
  opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s ease;
}
.toast.show{opacity:1;transform:translateY(0)}
.modal-backdrop{
  position:fixed;inset:0;background:rgba(15,20,35,.34);backdrop-filter:blur(4px);
  z-index:900;display:grid;place-items:center;padding:18px;
}
.modal{
  width:min(560px,100%);background:#fff;border-radius:22px;padding:24px;
  box-shadow:0 25px 70px rgba(15,20,35,.25);
}
.modal h2{margin-bottom:8px}
.import-preview{
  display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0;
}
.preview-stat{
  padding:13px;border-radius:14px;background:#f8f9fd;border:1px solid rgba(29,41,73,.06);
}
.preview-stat span{display:block;color:#98a1b3;font-size:11px}
.preview-stat b{display:block;margin-top:6px;font-size:22px}
.install-card{
  background:linear-gradient(135deg,#f5f5ff,#fbfbff);
  border:1px solid rgba(91,92,226,.10)
}
.db-badge{
  display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;
  background:#eefaf4;color:#17724c;font-size:11px;font-weight:700
}
@media(max-width:900px){
  .import-preview{grid-template-columns:1fr}
  .toast{left:12px;right:12px;bottom:86px;text-align:center}
}


/* ===== V11 local multi-user ===== */
.sidebar{
  display:flex;
  flex-direction:column;
}
.nav{flex:1}
.sidebar-user{
  margin-top:auto;
  padding:12px 10px 2px;
}
.user-mini{
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.055);
  border-radius:15px;
  padding:11px 12px;
}
.user-mini-main{
  display:flex;
  align-items:center;
  gap:9px;
}
.user-avatar{
  width:32px;height:32px;border-radius:10px;
  display:grid;place-items:center;
  background:rgba(255,255,255,.12);
  color:#fff;font-weight:800;font-size:13px;
  flex:0 0 auto;
}
.user-mini b{display:block;color:#fff;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-mini small{display:block;color:rgba(255,255,255,.48);font-size:9.5px;margin-top:2px}
.user-mini button{
  width:100%;border:0;background:transparent;color:rgba(255,255,255,.58);
  text-align:left;padding:8px 0 0;font-size:10px;cursor:pointer;
}
.user-mini button:hover{color:#fff}

.auth-shell{
  min-height:100vh;
  background:
    radial-gradient(circle at 18% 18%,rgba(111,92,255,.17),transparent 30%),
    radial-gradient(circle at 85% 80%,rgba(69,186,147,.12),transparent 27%),
    #f4f6fb;
  display:grid;
  place-items:center;
  padding:28px 18px;
}
.auth-card{
  width:min(440px,100%);
  background:#fff;
  border:1px solid rgba(29,41,73,.07);
  box-shadow:0 24px 70px rgba(39,49,81,.13);
  border-radius:28px;
  padding:30px;
}
.auth-logo{
  width:54px;height:54px;border-radius:17px;
  display:grid;place-items:center;
  color:#fff;font-size:24px;font-weight:850;
  background:linear-gradient(135deg,#5b5ce2,#7c66ef);
  box-shadow:0 14px 30px rgba(91,92,226,.26);
}
.auth-title{font-size:27px;font-weight:850;letter-spacing:-.6px;margin-top:18px}
.auth-sub{color:#8a94a8;font-size:13px;line-height:1.7;margin-top:7px}
.auth-tabs{
  display:grid;grid-template-columns:1fr 1fr;
  gap:5px;padding:5px;background:#f2f4f9;border-radius:13px;margin:22px 0 18px;
}
.auth-tabs button{
  border:0;background:transparent;border-radius:9px;padding:10px;
  color:#8992a5;font-weight:700;cursor:pointer;
}
.auth-tabs button.active{background:#fff;color:#34354b;box-shadow:0 3px 12px rgba(38,50,82,.08)}
.auth-form{display:grid;gap:13px}
.auth-form label{margin-bottom:5px}
.auth-form input{min-height:46px}
.auth-submit{min-height:46px;margin-top:3px}
.auth-note{
  margin-top:17px;padding:11px 12px;border-radius:12px;
  background:#f8f9fd;color:#929bae;font-size:11px;line-height:1.65
}
.migration-box{
  margin-top:15px;
  padding:14px;border-radius:15px;
  border:1px solid rgba(91,92,226,.12);
  background:#f8f8ff;
}
.migration-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px
}
.migration-stat{
  background:#fff;border:1px solid rgba(29,41,73,.05);
  border-radius:11px;padding:10px
}
.migration-stat span{font-size:10px;color:#9aa3b4;display:block}
.migration-stat b{font-size:18px;display:block;margin-top:4px}
.account-row{
  display:flex;align-items:center;gap:13px;padding:14px;
  border:1px solid rgba(29,41,73,.06);border-radius:15px;background:#fafbfe
}
.account-avatar{
  width:44px;height:44px;border-radius:13px;display:grid;place-items:center;
  font-weight:850;background:#eeefff;color:#5b5ce2
}
@media(max-width:900px){
  .sidebar-user{display:none}
  .auth-card{padding:24px;border-radius:22px}
  .migration-grid{grid-template-columns:1fr}
}


/* ===== V11.2 study interaction refinement ===== */
.reveal-btn{
  margin-top:28px;
  min-width:132px;
}
.auto-reveal-cue{
  margin-top:13px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  color:#9aa3b4;
  font-size:11px;
  font-weight:650;
}
.timer-dot{
  width:6px;height:6px;border-radius:50%;
  background:#7a72ea;
  box-shadow:0 0 0 4px rgba(91,92,226,.08);
}
.auto-reveal-track{
  width:min(220px,72%);
  height:3px;
  margin:9px auto 0;
  background:#eef0f6;
  border-radius:99px;
  overflow:hidden;
}
.auto-reveal-track i{
  display:block;width:100%;height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#7778eb,#a27cf3);
  transform-origin:left center;
  animation:autoRevealCountdown var(--seconds) linear forwards;
}
@keyframes autoRevealCountdown{
  from{transform:scaleX(1)}
  to{transform:scaleX(0)}
}

.spell-stage{
  width:min(610px,100%);
  margin:0 auto;
  text-align:left;
}
.spell-prompt{
  text-align:center;
  margin-bottom:28px;
}
.spell-kicker{
  display:inline-flex;
  align-items:center;
  min-height:25px;
  padding:0 10px;
  border-radius:999px;
  background:#f0f1ff;
  color:#6667d8;
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
}
.spell-question{
  margin-top:17px;
}
.spell-meaning{
  font-size:27px;
  line-height:1.45;
  font-weight:760;
  letter-spacing:-.35px;
  color:#30364a;
}
.spell-listen-btn{
  width:min(310px,100%);
  min-height:112px;
  border:1px solid rgba(91,92,226,.10);
  border-radius:20px;
  background:linear-gradient(145deg,#fafaff,#f4f5ff);
  cursor:pointer;
  transition:.18s ease;
  color:#4e5267;
}
.spell-listen-btn:hover{
  transform:translateY(-2px);
  border-color:rgba(91,92,226,.20);
  box-shadow:0 12px 30px rgba(53,60,100,.08);
}
.spell-listen-btn span{display:block;font-size:28px;margin-bottom:6px}
.spell-listen-btn b{display:block;font-size:14px}
.spell-listen-btn small{display:block;color:#9aa3b4;margin-top:4px;font-size:10px}

.spell-entry{
  padding:18px;
  border-radius:20px;
  background:#f8f9fc;
  border:1px solid rgba(29,41,73,.055);
}
.spell-input-shell{
  position:relative;
  display:flex;
  align-items:center;
  background:#fff;
  border:1.5px solid #dfe3ee;
  border-radius:16px;
  box-shadow:0 7px 18px rgba(38,50,82,.045);
  transition:border-color .16s ease,box-shadow .16s ease;
}
.spell-input-shell:focus-within{
  border-color:#7576e8;
  box-shadow:0 0 0 4px rgba(91,92,226,.08),0 10px 24px rgba(38,50,82,.06);
}
.spell-input-icon{
  width:48px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  color:#6d70d9;
  font-size:12px;
  font-weight:850;
  border-right:1px solid #edf0f5;
}
.answerbox.spell-answer{
  min-height:58px;
  flex:1;
  border:0!important;
  box-shadow:none!important;
  border-radius:0!important;
  background:transparent;
  padding:0 14px;
  font-size:21px;
  font-weight:700;
  letter-spacing:.02em;
  color:#292e40;
}
.answerbox.spell-answer::placeholder{
  color:#b4bbc9;
  font-weight:550;
  font-size:15px;
}
.answerbox.spell-answer:disabled{
  opacity:1;
  -webkit-text-fill-color:#4a5065;
}
.spell-enter-key{
  margin-right:10px;
  padding:5px 8px;
  border:1px solid #e2e5ed;
  border-bottom-width:2px;
  border-radius:7px;
  color:#9aa2b1;
  background:#fafbfc;
  font-size:9.5px;
  font-weight:750;
  white-space:nowrap;
}
.spell-submit-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:12px;
}
.spell-tip{
  color:#9aa3b4;
  font-size:11px;
}
kbd{
  display:inline-block;
  padding:2px 6px;
  border:1px solid #dfe3eb;
  border-bottom-width:2px;
  border-radius:5px;
  background:#fff;
  color:#6e7586;
  font:700 10px/1.4 inherit;
}
.spell-result{
  margin-top:16px;
  padding:17px;
  border-radius:16px;
  border:1px solid transparent;
  background:#fff;
}
.spell-result.result-ok{
  background:#f4fbf7;
  border-color:#d5eee0;
}
.spell-result.result-near{
  background:#fffbf1;
  border-color:#f0e3bd;
}
.spell-result.result-wrong{
  background:#fff6f6;
  border-color:#f1d7d9;
}
.spell-result-head{
  display:flex;
  align-items:center;
  gap:10px;
  padding-bottom:13px;
  border-bottom:1px solid rgba(29,41,73,.055);
}
.result-icon{
  width:34px;height:34px;border-radius:11px;
  display:grid;place-items:center;
  background:rgba(255,255,255,.78);
  font-size:19px;font-weight:900;
  box-shadow:0 4px 12px rgba(38,50,82,.05);
}
.result-ok .result-icon{color:#258258}
.result-near .result-icon{color:#b78219}
.result-wrong .result-icon{color:#c55058}
.spell-result-head b{display:block;font-size:15px;color:#313648}
.spell-result-head small{display:block;color:#979fad;font-size:10px;margin-top:2px}
.spell-answer-compare{
  display:grid;
  gap:10px;
  margin-top:13px;
}
.spell-answer-compare div{
  display:grid;
  grid-template-columns:78px 1fr;
  align-items:baseline;
  gap:10px;
}
.spell-answer-compare span{
  color:#99a2b2;
  font-size:10.5px;
}
.spell-answer-compare b{
  color:#42485b;
  font-size:13px;
  line-height:1.55;
}
.spell-answer-compare .correct-word{
  color:#3536a8;
  font-size:18px;
  letter-spacing:.02em;
}
.spell-near-note{
  margin-top:12px;
  padding:9px 11px;
  border-radius:10px;
  background:rgba(255,255,255,.62);
  color:#9b7a2f;
  font-size:10.5px;
  line-height:1.6;
}
.spell-result-actions{
  margin-top:13px;
}
.btn-key{
  opacity:.62;
  font-size:9px;
  margin-left:5px;
}
.enter-continue-hint{
  margin-top:10px;
  text-align:center;
  color:#9ba3b2;
  font-size:10.5px;
}

@media(max-width:700px){
  .spell-stage{width:100%}
  .spell-meaning{font-size:23px}
  .spell-entry{padding:13px}
  .answerbox.spell-answer{font-size:18px;min-height:54px}
  .spell-enter-key{display:none}
  .spell-submit-row{align-items:stretch;flex-direction:column}
  .spell-submit-row .btn{width:100%}
  .spell-tip{text-align:center;order:2}
  .spell-answer-compare div{grid-template-columns:68px 1fr}
}


/* ===== V11.3 built-in book catalog ===== */
.catalog-toolbar{
  display:grid;
  grid-template-columns:minmax(240px,1fr) 180px;
  gap:10px;
  margin-top:16px;
}
.catalog-result-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:13px;
  color:#8e98aa;
  font-size:11px;
}
.catalog-result-head small{color:#a2aaba}
.catalog-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
  margin-top:10px;
}
.catalog-book{
  display:flex;
  align-items:center;
  gap:11px;
  min-height:68px;
  padding:11px 12px;
  background:#fafbfe;
  border:1px solid rgba(29,41,73,.055);
  border-radius:14px;
  transition:.16s ease;
}
.catalog-book:hover{
  background:#fff;
  border-color:rgba(91,92,226,.14);
  box-shadow:0 8px 22px rgba(38,50,82,.055);
}
.catalog-book.added{
  background:#f7faf8;
}
.catalog-book-icon{
  width:38px;height:38px;
  border-radius:11px;
  display:grid;place-items:center;
  flex:0 0 auto;
  background:linear-gradient(145deg,#efefff,#f8f6ff);
  color:#5c5dd2;
  font-weight:850;
  font-size:11px;
}
.catalog-book-body{
  min-width:0;
  flex:1;
}
.catalog-book-body b{
  display:block;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  color:#363b50;
  font-size:12.5px;
}
.catalog-meta{
  display:flex;
  gap:8px;
  margin-top:5px;
  color:#99a2b2;
  font-size:9.5px;
}
.catalog-action{
  flex:0 0 auto;
  min-height:32px;
  padding:6px 10px;
  font-size:10.5px;
}
@media(max-width:900px){
  .catalog-toolbar{grid-template-columns:1fr}
  .catalog-grid{grid-template-columns:1fr}
}

/* V11.3.1 catalog guidance */
.catalog-warning{
  margin-top:12px;
  padding:12px 14px;
  border:1px solid #f0d9a8;
  background:#fff9ea;
  border-radius:13px;
  color:#8a641f;
  font-size:11px;
  line-height:1.65;
}
.catalog-warning b{display:block;margin-bottom:3px;color:#7d5916}
.catalog-warning span{display:block}
.catalog-empty{
  margin-top:14px;
  padding:22px;
  border:1px dashed #e2c98c;
  background:#fffbf1;
  border-radius:16px;
  text-align:center;
}
.catalog-empty b{display:block;color:#7d5916;font-size:14px}
.catalog-empty span{display:block;color:#9a7b3d;font-size:11px;line-height:1.7;margin-top:6px}

/* ===== V11.4 Library Center ===== */
.library-top{align-items:flex-start}
.library-top-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.study-book-switch{
  display:flex;align-items:center;gap:8px;
  padding:6px 8px 6px 12px;border:1px solid rgba(29,41,73,.07);
  background:#fff;border-radius:13px;
}
.study-book-switch span{font-size:10px;color:#939cad;font-weight:750;white-space:nowrap}
.study-book-switch select{min-width:210px;border:0;box-shadow:none;background:#f7f8fc;font-weight:700}

.library-shelf{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.library-book-card{
  background:#fff;border:1px solid rgba(29,41,73,.065);border-radius:22px;padding:18px;
  box-shadow:0 9px 26px rgba(38,50,82,.055);cursor:pointer;
  transition:transform .17s ease,box-shadow .17s ease,border-color .17s ease;
}
.library-book-card:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(38,50,82,.085)}
.library-book-card.is-current{border-color:rgba(91,92,226,.25);box-shadow:0 10px 28px rgba(91,92,226,.09)}
.library-book-head{display:flex;align-items:center;gap:12px}
.library-cover{
  width:48px;height:58px;flex:0 0 auto;border-radius:9px 14px 14px 9px;
  display:grid;place-items:center;color:#fff;font-weight:850;font-size:15px;
  background:linear-gradient(145deg,#5b5ce2,#8173ee);
  box-shadow:5px 6px 16px rgba(91,92,226,.18);
}
.library-book-title{min-width:0}
.library-book-title b{display:block;font-size:15px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#303548}
.library-book-title small{display:block;color:#9aa3b3;font-size:10.5px;margin-top:5px}
.library-book-tags{display:flex;gap:5px;align-items:center;margin-bottom:5px}
.library-book-tags span{
  padding:3px 6px;border-radius:6px;background:#f2f3f8;color:#9199aa;font-size:8.5px;font-weight:750
}
.library-book-tags .current-study-tag{background:#efefff;color:#5b5ce2}
.library-progress-row{display:flex;justify-content:space-between;margin-top:18px;font-size:10px;color:#929bad}
.library-progress-row b{color:#5056c9;font-size:11px}
.library-progress{height:6px;background:#eef0f5;border-radius:99px;overflow:hidden;margin-top:7px}
.library-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#6364e4,#8a78ef)}
.library-book-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:14px}
.library-book-stats span{padding:8px 4px;text-align:center;background:#fafbfe;border-radius:10px}
.library-book-stats b{display:block;color:#3e4356;font-size:14px}
.library-book-stats small{display:block;color:#9aa2b1;font-size:8.5px;margin-top:2px}
.library-book-actions{display:flex;align-items:center;gap:7px;margin-top:14px}
.library-book-actions .btn{min-height:34px;padding:7px 10px;font-size:10px}
.library-text-action{border:0;background:transparent;color:#9aa2b1;font-size:9.5px;cursor:pointer;padding:7px 3px}
.library-text-action:hover{color:#555d70}
.library-text-action.danger:hover{color:#c14d56}

/* Catalog book removal confirmation */
.library-remove-backdrop{z-index:1100;background:rgba(28,45,70,.42);padding:22px}
.library-remove-dialog{
  width:min(430px,100%);padding:28px;position:relative;border:1px solid rgba(212,94,99,.13);
  box-shadow:0 26px 78px rgba(28,45,70,.26);outline:none;
}
.library-dialog-close{
  position:absolute;right:15px;top:14px;width:30px;height:30px;border:0;border-radius:9px;background:#f5f7fa;
  color:#728199;font-size:22px;line-height:1;cursor:pointer;
}
.library-dialog-close:hover{background:#edf1f7;color:#43536c}
.library-dialog-close:disabled{cursor:wait;opacity:.55}
.library-remove-icon{
  width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:#fff0f1;color:#d45961;
  font-size:30px;font-weight:500;line-height:1;
}
.library-remove-copy{margin-top:16px}.library-remove-copy .eyebrow{color:#c85e66;font-size:9px}.library-remove-copy h2{margin:6px 0 7px;color:#2e3b50;font-size:21px}.library-remove-copy p{margin:0;color:#77879d;font-size:12px;line-height:1.65}
.library-remove-preserve{display:flex;gap:10px;margin-top:19px;padding:13px;border:1px solid #dcebe2;border-radius:13px;background:#f5fbf7}
.library-remove-preserve>span{width:21px;height:21px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;background:#38a86a;color:#fff;font-size:12px;font-weight:850}
.library-remove-preserve b{display:block;color:#3f6852;font-size:12px}.library-remove-preserve small{display:block;margin-top:3px;color:#719080;font-size:10.5px;line-height:1.6}
.library-remove-meta{display:flex;gap:7px;margin-top:13px}.library-remove-meta span{padding:4px 8px;border-radius:7px;background:#f4f6f9;color:#8592a4;font-size:10px;font-weight:700}
.library-dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:23px}.library-dialog-actions .btn{min-width:90px;min-height:38px}
.library-remove-confirm{color:#fff;background:linear-gradient(135deg,#d96168,#bd4652);box-shadow:0 8px 17px rgba(195,72,82,.2)}
.library-remove-confirm:hover{background:linear-gradient(135deg,#cb555e,#ad3d49);transform:translateY(-1px)}
.library-remove-confirm:disabled{opacity:.65;cursor:wait;transform:none}
@media(max-width:620px){.library-remove-backdrop{padding:14px}.library-remove-dialog{padding:24px 20px}.library-dialog-actions .btn{flex:1}}

/* ===== V11.6 public product homepage ===== */
.landing-page{--landing-blue:#1557b7;--landing-blue-2:#2f82ed;--landing-orange:#ff8718;--landing-navy:#173654;min-height:100vh;color:var(--landing-navy);background:#fff;overflow:hidden}
.landing-header{height:82px;max-width:1240px;margin:0 auto;padding:0 28px;display:flex;align-items:center;justify-content:space-between;gap:28px;position:relative;z-index:20}
.landing-brand{display:block;text-decoration:none}.landing-brand .product-logo-mark{width:45px;height:45px}.landing-brand .product-logo-name{font-size:21px;letter-spacing:-1.3px}.landing-brand .product-logo-copy small{font-size:7.5px;letter-spacing:3.3px;margin-top:4px}
.landing-nav{display:flex;align-items:center;gap:34px;margin-left:auto}.landing-nav a{color:#64778c;text-decoration:none;font-size:13px;font-weight:700;transition:.18s ease}.landing-nav a:hover{color:var(--landing-blue)}
.landing-auth-actions{display:flex;align-items:center;gap:9px}.landing-text-btn,.landing-primary-btn,.landing-secondary-btn{border:0;font:inherit;cursor:pointer;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.landing-text-btn{padding:10px 16px;background:transparent;color:#466079;font-weight:750}.landing-primary-btn{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:52px;padding:0 25px;border-radius:14px;color:#fff;background:linear-gradient(135deg,#1769d3,#3b91f5);box-shadow:0 12px 26px rgba(31,113,216,.23);font-size:14px;font-weight:800}.landing-primary-btn:hover{transform:translateY(-2px);box-shadow:0 16px 32px rgba(31,113,216,.28)}.landing-primary-btn.compact{min-height:42px;padding:0 18px;border-radius:11px;font-size:12px;box-shadow:0 8px 18px rgba(31,113,216,.18)}
.landing-hero{min-height:650px;max-width:1240px;margin:0 auto;padding:76px 28px 90px;display:grid;grid-template-columns:minmax(0,.9fr) minmax(480px,1.1fr);align-items:center;gap:76px;position:relative}.landing-hero:before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;right:-150px;top:-160px;background:radial-gradient(circle,rgba(75,155,255,.13),transparent 69%);pointer-events:none}.landing-hero-copy{position:relative;z-index:2}.landing-kicker{display:flex;align-items:center;gap:9px;color:#3377c5;font-size:12px;font-weight:800;letter-spacing:.08em}.landing-kicker span{width:28px;height:3px;border-radius:99px;background:var(--landing-orange)}.landing-hero h1{margin:23px 0 20px;color:#193c61;font-size:54px;line-height:1.18;letter-spacing:-2.8px}.landing-hero h1 em{font-style:normal;color:var(--landing-blue-2);position:relative}.landing-hero h1 em:after{content:"";position:absolute;height:9px;left:2px;right:0;bottom:2px;border-radius:50%;background:rgba(255,161,50,.26);z-index:-1;transform:rotate(-1deg)}.landing-hero-copy>p{max-width:560px;color:#70849a;font-size:15px;line-height:1.9}.landing-hero-actions{display:flex;align-items:center;gap:12px;margin-top:32px}.landing-secondary-btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 22px;border:1px solid #dbe7f3;border-radius:14px;color:#54718e;background:#fff;font-size:13px;font-weight:750}.landing-secondary-btn:hover{background:#f6faff;border-color:#cbdced}.landing-trust-row{display:flex;gap:20px;flex-wrap:wrap;margin-top:26px;color:#8193a5;font-size:11px;font-weight:650}.landing-trust-row span::first-letter{color:#31a56a}
.landing-hero-visual{position:relative;min-height:475px;display:grid;place-items:center}.hero-orbit{position:absolute;border:1px solid rgba(68,142,230,.15);border-radius:50%}.orbit-one{width:470px;height:470px}.orbit-two{width:365px;height:365px;border-style:dashed;transform:rotate(20deg)}.landing-app-preview{position:relative;z-index:3;width:min(460px,88%);min-height:410px;padding:19px 23px 22px;border:1px solid rgba(67,116,170,.12);border-radius:28px;background:rgba(255,255,255,.94);box-shadow:0 30px 75px rgba(44,92,146,.16);backdrop-filter:blur(12px);transform:rotate(-1.5deg)}.preview-top{display:flex;justify-content:space-between;align-items:center;color:#71859b;font-size:10px;font-weight:700}.preview-top>div{display:flex;gap:5px}.preview-top i{width:7px;height:7px;border-radius:50%;background:#d8e1ea}.preview-top i:first-child{background:#ffac50}.preview-progress{height:5px;margin-top:14px;border-radius:99px;background:#eaf0f5;overflow:hidden}.preview-progress i{display:block;width:60%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#3a91f1,#57b3f8)}.preview-phase{margin-top:34px;color:#4592df;font-size:9px;font-weight:850;letter-spacing:.18em;text-align:center}.preview-word{margin-top:12px;color:#24496e;font-family:Georgia,serif;font-size:43px;font-weight:700;text-align:center}.preview-phonetic{text-align:center;color:#9aabba;font-size:11px}.preview-meaning{margin-top:20px;color:#405b76;font-size:15px;font-weight:750;text-align:center}.preview-example{margin:15px auto 0;padding:11px 13px;max-width:330px;border-radius:11px;background:#f6f9fc;color:#7b8da0;font-family:Georgia,serif;font-size:11px;text-align:center}.preview-ratings{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:28px}.preview-ratings span{padding:9px 3px;border:1px solid #e5ebf1;border-radius:10px;color:#73859a;background:#fff;font-size:10px;font-weight:750;text-align:center}.preview-ratings small{display:block;margin-top:3px;color:#a1adba;font-size:8px}.preview-ratings .recommended{border-color:#65a6ef;color:#2676d2;background:#edf6ff;box-shadow:0 5px 13px rgba(48,132,224,.12)}.preview-float{position:absolute;z-index:5;padding:13px 16px;border:1px solid rgba(55,105,159,.1);border-radius:15px;background:#fff;box-shadow:0 15px 34px rgba(44,92,146,.14)}.preview-float b{display:block;color:#256fc4;font-size:19px}.preview-float span{display:block;margin-top:3px;color:#91a0ae;font-size:9px}.float-retention{right:-2px;top:75px}.float-streak{left:-7px;bottom:80px}.float-streak b{color:#f1872e}
.landing-section{max-width:1184px;margin:0 auto;padding:105px 28px}.landing-section-heading{max-width:540px}.landing-section-heading>span{color:#3d8de5;font-size:10px;font-weight:850;letter-spacing:.19em}.landing-section-heading h2{margin:14px 0 17px;color:#1b3e62;font-size:38px;line-height:1.3;letter-spacing:-1.5px}.landing-section-heading p{color:#75899d;font-size:13px;line-height:1.9}.landing-section-heading.centered{margin:0 auto;text-align:center}
.landing-product{padding-top:95px}.product-flow{display:grid;grid-template-columns:1fr 42px 1fr 42px 1fr;align-items:center;gap:12px;margin-top:56px}.product-flow article{min-height:220px;padding:26px;border:1px solid #e5edf5;border-radius:22px;background:#fff;box-shadow:0 14px 40px rgba(42,83,129,.06)}.flow-icon{width:45px;height:45px;display:grid;place-items:center;border-radius:14px;color:#fff;background:linear-gradient(145deg,#398ee9,#2469c5);font-size:11px;font-weight:850;box-shadow:0 8px 18px rgba(43,121,210,.2)}.product-flow article:nth-of-type(2) .flow-icon{background:linear-gradient(145deg,#ffad4f,#f27c21)}.product-flow article:nth-of-type(3) .flow-icon{background:linear-gradient(145deg,#4bc186,#279961)}.product-flow h3{margin:22px 0 9px;color:#2a4868;font-size:17px}.product-flow p{margin:0;color:#8292a4;font-size:12px;line-height:1.8}.flow-arrow{color:#b8c8d8;font-size:24px;text-align:center}
.landing-advantages{max-width:none;padding-left:max(28px,calc((100vw - 1128px)/2));padding-right:max(28px,calc((100vw - 1128px)/2));background:linear-gradient(180deg,#f7fbff,#fbfdff)}.advantage-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-top:52px}.advantage-card{padding:25px 22px 27px;border:1px solid #e5edf5;border-radius:20px;background:#fff;transition:.18s ease}.advantage-card:hover{transform:translateY(-4px);box-shadow:0 17px 38px rgba(40,88,140,.09)}.advantage-icon{width:48px;height:48px;position:relative;border-radius:15px;background:#edf6ff;color:#327ed5}.advantage-icon:before,.advantage-icon:after,.advantage-icon span{content:"";position:absolute}.advantage-icon.curve:before{width:28px;height:16px;left:10px;top:16px;border-left:3px solid;border-bottom:3px solid;border-radius:0 0 0 8px;transform:skewY(-24deg)}.advantage-icon.curve:after{width:7px;height:7px;right:8px;top:10px;border-radius:50%;background:#ff9c38}.advantage-icon.queue:before{width:25px;height:27px;left:11px;top:10px;border:2px solid;border-radius:7px}.advantage-icon.queue:after{width:12px;height:2px;left:18px;top:18px;background:currentColor;box-shadow:0 7px 0 currentColor,0 14px 0 currentColor}.advantage-icon.modes:before{width:9px;height:9px;left:10px;top:10px;border:2px solid;border-radius:4px;box-shadow:17px 0 0 -2px #edf6ff,17px 0 0 0 currentColor,0 17px 0 -2px #edf6ff,0 17px 0 0 currentColor,17px 17px 0 -2px #edf6ff,17px 17px 0 0 currentColor}.advantage-icon.cloud:before{width:27px;height:15px;left:10px;top:20px;border:2px solid;border-radius:12px}.advantage-icon.cloud:after{width:13px;height:13px;left:17px;top:12px;border:2px solid;border-bottom-color:transparent;border-radius:50%;background:#edf6ff}.advantage-card h3{margin:20px 0 9px;color:#2b4b6d;font-size:16px}.advantage-card p{margin:0;color:#8193a5;font-size:11.5px;line-height:1.8}
.landing-method{padding-bottom:115px}.method-intro{display:grid;grid-template-columns:.82fr 1.18fr;gap:75px;align-items:center}.memory-curve-card{padding:25px 26px 18px;border:1px solid #e2ebf4;border-radius:24px;background:#fbfdff;box-shadow:0 18px 48px rgba(42,83,129,.07)}.curve-label{display:flex;justify-content:space-between;align-items:center}.curve-label b{color:#365879;font-size:13px}.curve-label span{color:#93a4b5;font-size:9px}.memory-curve-card svg{width:100%;height:auto;margin-top:12px;overflow:visible}.curve-grid{fill:none;stroke:#eaf0f5;stroke-width:1}.curve-main{fill:none;stroke:#2f83dc;stroke-width:4;stroke-linecap:round}.curve-fade{fill:none;stroke:#a5d5ff;stroke-width:13;opacity:.2}.memory-curve-card circle{fill:#fff;stroke:#ff9532;stroke-width:4}.memory-curve-card text{fill:#7690a8;font-size:10px;font-weight:700}.curve-axis{display:flex;justify-content:space-between;color:#99a8b6;font-size:9px}.method-list{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:66px}.method-list article{display:grid;grid-template-columns:54px 1fr;gap:16px;padding:22px;border:1px solid #e6edf4;border-radius:18px;background:#fff}.method-number{width:45px;height:45px;display:grid;place-items:center;border-radius:14px;background:#eff6fd;color:#2e7dd5;font-size:11px;font-weight:850}.method-list small{color:#ee862c;font-size:9px;font-weight:850;letter-spacing:.12em}.method-list h3{margin:5px 0 7px;color:#304e6e;font-size:15px}.method-list p{margin:0;color:#8292a3;font-size:11.5px;line-height:1.75}
.landing-cta{max-width:1128px;margin:0 auto 94px;padding:50px 58px;display:flex;align-items:center;justify-content:space-between;gap:40px;border-radius:28px;color:#fff;background:linear-gradient(125deg,#1557b7,#338bef);box-shadow:0 25px 58px rgba(25,103,197,.23);position:relative;overflow:hidden}.landing-cta:after{content:"";position:absolute;width:260px;height:260px;right:-70px;top:-130px;border:45px solid rgba(255,255,255,.08);border-radius:50%}.landing-cta>div,.landing-cta button{position:relative;z-index:2}.landing-cta>div>span{font-size:9px;font-weight:850;letter-spacing:.19em;opacity:.72}.landing-cta h2{margin:10px 0 8px;font-size:31px}.landing-cta p{margin:0;font-size:12px;opacity:.78}.landing-primary-btn.light{color:#1761bd;background:#fff;box-shadow:none;white-space:nowrap}.landing-footer{max-width:1184px;margin:0 auto;padding:30px 28px 42px;display:flex;align-items:center;gap:24px;border-top:1px solid #edf1f5;color:#8b9aaa}.landing-footer .product-logo-mark{width:37px;height:37px}.landing-footer .product-logo-name{font-size:17px;letter-spacing:-1px}.landing-footer .product-logo-copy small{font-size:6px;letter-spacing:2.8px}.landing-footer>span{font-size:11px}.landing-footer>small{margin-left:auto;font-size:10px}
.auth-back-home{position:fixed;left:24px;top:22px;z-index:5;border:1px solid #dce7f1;border-radius:11px;padding:9px 13px;color:#5e7690;background:rgba(255,255,255,.88);font-size:11px;font-weight:750;cursor:pointer;backdrop-filter:blur(8px)}.auth-back-home:hover{color:#2879d4;background:#fff}
@media(max-width:980px){.landing-header{height:72px;padding:0 20px}.landing-nav{display:none}.landing-hero{min-height:auto;padding:58px 24px 82px;grid-template-columns:1fr;gap:42px}.landing-hero-copy{text-align:center}.landing-kicker,.landing-hero-actions,.landing-trust-row{justify-content:center}.landing-hero-copy>p{margin-left:auto;margin-right:auto}.landing-hero h1{font-size:46px}.landing-hero-visual{min-height:450px}.product-flow{grid-template-columns:1fr}.flow-arrow{transform:rotate(90deg)}.advantage-grid{grid-template-columns:1fr 1fr}.method-intro{grid-template-columns:1fr;gap:42px}.landing-section-heading{margin-left:auto;margin-right:auto;text-align:center}.landing-cta{margin-left:24px;margin-right:24px}.landing-footer{margin:0 20px}}
@media(max-width:620px){.landing-header{height:66px;padding:0 14px}.landing-brand .product-logo-mark{width:37px;height:37px}.landing-brand .product-logo-name{font-size:17px}.landing-brand .product-logo-copy small{display:none}.landing-auth-actions{gap:2px}.landing-text-btn{padding:8px 9px;font-size:11px}.landing-primary-btn.compact{min-height:37px;padding:0 12px;font-size:10px}.landing-hero{padding:48px 17px 70px}.landing-hero h1{font-size:36px;letter-spacing:-1.8px}.landing-hero-copy>p{font-size:13px}.landing-hero-actions{flex-direction:column}.landing-hero-actions>*{width:100%}.landing-trust-row{gap:10px;font-size:9px}.landing-hero-visual{min-height:390px}.orbit-one{width:360px;height:360px}.orbit-two{width:290px;height:290px}.landing-app-preview{width:94%;min-height:355px;padding:16px 15px}.preview-word{font-size:35px}.preview-ratings{gap:4px}.preview-ratings span{font-size:8px}.preview-float{padding:9px 11px}.preview-float b{font-size:15px}.float-retention{right:-5px;top:55px}.float-streak{left:-4px;bottom:48px}.landing-section{padding:76px 17px}.landing-section-heading h2{font-size:30px}.advantage-grid,.method-list{grid-template-columns:1fr}.product-flow article{min-height:0}.memory-curve-card{padding:19px 14px}.curve-label{align-items:flex-start;gap:8px}.curve-label span{text-align:right}.method-list article{grid-template-columns:45px 1fr;padding:17px}.landing-cta{margin:0 14px 65px;padding:37px 24px;flex-direction:column;text-align:center}.landing-cta h2{font-size:25px}.landing-footer{margin:0 14px;padding:25px 0 34px;flex-wrap:wrap}.landing-footer>span{display:none}.landing-footer>small{margin-left:auto}.auth-back-home{left:13px;top:12px}}

.library-add-panel{padding:22px}
.library-add-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap}
.library-add-tabs{display:flex;padding:4px;background:#f2f3f8;border-radius:11px;gap:3px}
.library-add-tabs button{border:0;background:transparent;border-radius:8px;padding:8px 12px;color:#8e97a8;font-size:10.5px;font-weight:750;cursor:pointer}
.library-add-tabs button.active{background:#fff;color:#5557c8;box-shadow:0 3px 10px rgba(38,50,82,.07)}
.custom-book-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
.custom-book-box{padding:17px;border:1px solid rgba(29,41,73,.06);border-radius:16px;background:#fafbfe}
.custom-book-box h3{margin:0 0 14px;font-size:14px;color:#363b4d}
.custom-book-box label{display:block;font-size:10px;color:#929aaa;font-weight:700;margin-bottom:5px}
.custom-book-box input,.custom-book-box select{width:100%}

.library-detail-title{display:flex;align-items:center;gap:12px}
.library-detail-title h1{margin:0}
.library-detail-metrics{margin-bottom:16px}

@media(max-width:1100px){.library-shelf{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){
  .library-top-actions{width:100%;justify-content:stretch}
  .study-book-switch{width:100%;flex-wrap:wrap}
  .study-book-switch select{width:100%;min-width:0}
  .library-shelf{grid-template-columns:1fr}
  .custom-book-grid{grid-template-columns:1fr}
  .library-detail-title{align-items:flex-start;flex-direction:column}
}

/* ===== V11.4.1 Safe Update ===== */
.update-card{
  background:linear-gradient(145deg,#fbfbff,#f7f8fe);
  border-color:rgba(91,92,226,.10);
}
.update-card-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap
}
.version-badge{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:28px;padding:0 10px;border-radius:999px;
  background:#eceeff;color:#5658c9;font-size:10px;font-weight:800
}
.update-safety{
  margin-top:13px;padding:11px 12px;border-radius:12px;
  background:#f4faf7;border:1px solid #dcefe5;
  font-size:10.5px;line-height:1.65;color:#5f7168
}
.update-safety b{color:#277352;margin-right:5px}

/* V11.4.2 server deployment */
.server-security-warning{
  margin-top:16px;
  padding:11px 12px;
  border-radius:12px;
  border:1px solid #f0d5a3;
  background:#fff9ea;
  color:#8a651f;
  font-size:11px;
  line-height:1.65;
}
.server-security-warning b{display:block;color:#795714;margin-bottom:3px}
/* ===== English Gogo branding V11.4.2.1 ===== */
.english-gogo-brand{display:flex;align-items:center;gap:10px;padding:4px 9px 22px}
.english-gogo-brand img{width:42px;height:42px;object-fit:contain;filter:drop-shadow(0 5px 12px rgba(0,0,0,.16));flex:0 0 auto}
.english-gogo-brand .brand-copy{min-width:0}
.english-gogo-brand strong{display:block;color:#fff;font-size:17px;line-height:1.05;letter-spacing:-.35px;white-space:nowrap}
.english-gogo-brand strong em{font-style:normal;color:#ff8a22}
.english-gogo-brand small{margin-top:5px;font-size:9.5px;color:#98a4bc;white-space:nowrap}
.auth-brand-image{display:block;width:190px;max-width:72%;height:auto;margin:0 auto 10px}
.auth-title{text-align:center;margin-top:8px}
.auth-version{text-align:center;color:#a0a8b7;font-size:10px;font-weight:700;margin-top:3px}
.auth-sub{text-align:center}
@media(max-width:900px){.english-gogo-brand{display:none}}

/* ==========================================================================
   English Gogo UI Redesign — approved light / blue / orange visual language
   Data model and application logic intentionally unchanged.
   ========================================================================== */
:root{
  --eg-blue:#2f83f7;
  --eg-blue-2:#438ff8;
  --eg-blue-soft:#eef6ff;
  --eg-orange:#ff8a25;
  --eg-orange-soft:#fff4e9;
  --eg-green:#35c57a;
  --eg-green-soft:#eafaf2;
  --eg-purple:#7767ee;
  --eg-purple-soft:#f1efff;
  --eg-ink:#172540;
  --eg-muted:#8390a6;
  --eg-line:#e9eef5;
  --eg-bg:#f5f9fd;
  --eg-shadow:0 14px 36px rgba(40,73,116,.07);
  --eg-shadow-hover:0 18px 46px rgba(40,73,116,.11);
}
html,body{background:#f7fbff}
body{
  color:var(--eg-ink);
  background:
    radial-gradient(circle at 64% -15%,rgba(64,148,255,.08),transparent 28%),
    linear-gradient(180deg,#f8fcff 0%,#f5f9fd 100%);
}
.app{grid-template-columns:252px minmax(0,1fr);min-height:100vh}

/* Sidebar */
.sidebar{
  top:0;margin:0;height:100vh;border-radius:0;
  padding:22px 16px 16px;
  background:rgba(255,255,255,.97);
  border:0;border-right:1px solid #e9f0f6;
  box-shadow:8px 0 30px rgba(41,80,125,.035);
}
.english-gogo-brand{
  display:flex;align-items:center;gap:10px;
  padding:4px 10px 22px!important;
  color:var(--eg-ink)!important;
}
.english-gogo-brand img{width:42px!important;height:42px!important;object-fit:contain}
.english-gogo-brand .brand-copy strong{font-size:18px!important;color:#1f57a4!important}
.english-gogo-brand .brand-copy em{font-style:normal;color:var(--eg-orange)}
.english-gogo-brand .brand-copy small{color:#9aabc0!important;font-size:9.5px!important;margin-top:3px!important}
.nav{gap:5px}
.nav button{
  color:#50637d;padding:12px 14px;border-radius:12px;font-weight:680;
  min-height:47px;
}
.nav button:hover{
  background:#f2f7fd;color:#2e79dc;transform:none;
}
.nav button.active{
  color:#fff;
  background:linear-gradient(135deg,#2e7df4,#3d94fb);
  box-shadow:0 9px 22px rgba(47,131,247,.22);
}
.nav-icon,.nav-icon svg{width:20px;height:20px}
.sidebar-motto{
  margin-top:auto;padding:20px 12px 12px;color:#8193aa;
  font-family:"Comic Sans MS","Bradley Hand","KaiTi",cursive;
  transform:rotate(-2deg);
}
.sidebar-motto b{font-size:15px;line-height:1.55;font-weight:500}
.sidebar-motto span{display:block;width:48px;border-top:3px solid var(--eg-orange);border-radius:99px;margin:9px 0 12px 34px;transform:rotate(-10deg)}
.sidebar-motto small{font-family:inherit;color:#a6b4c5;font-size:9px}
.sidebar-user{padding:8px 6px 0}
.user-mini{
  border:1px solid #edf2f7;background:#f9fbfd;border-radius:13px;padding:10px 11px;
}
.user-avatar{
  background:linear-gradient(145deg,#e8eef6,#dce5f1);color:#7c8ba0;
}
.user-mini b{color:#3d4e66}
.user-mini small{color:#99a7b9}
.user-mini button{color:#95a4b7}
.user-mini button:hover{color:#d05059}

/* Main / topbar */
.main{max-width:1320px;padding:0 34px 56px}
.app-topbar{
  height:84px;display:flex;align-items:center;justify-content:space-between;
  margin-bottom:14px;
}
.topbar-motto{
  color:#2e5482;font-size:19px;font-weight:650;letter-spacing:.03em;
  font-family:"KaiTi","STKaiti","PingFang SC",sans-serif;position:relative;
}
.topbar-motto i{
  display:block;width:94px;border-top:3px solid var(--eg-orange);
  border-radius:99px;transform:rotate(-8deg);position:absolute;right:0;bottom:-9px;
}
.topbar-profile{display:flex;align-items:center;gap:9px;color:#34455e;font-size:12px}
.theme-sun{font-size:20px;color:#ffad28}
.top-avatar{
  width:36px;height:36px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(145deg,#eef2f7,#dce5ef);color:#7e8da1;font-weight:800;
  border:3px solid #f4f7fa;
}
.profile-caret{color:#8e9caf}

/* General cards / type */
.card{
  background:#fff;border:1px solid #edf2f6;border-radius:17px;
  box-shadow:var(--eg-shadow);backdrop-filter:none;
}
h1{font-size:26px;color:#24334a;letter-spacing:-.45px}
h2{font-size:16px;color:#27364c}
.sub{color:var(--eg-muted);font-size:12px}
.eyebrow{
  display:block;margin-bottom:4px;color:#78a8e2;font-size:9px;font-weight:850;
  letter-spacing:.15em;
}
.top{margin-bottom:18px}
.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.section{margin-top:16px}
.btn{border-radius:9px}
.btn-solid{
  background:linear-gradient(135deg,#2f83f7,#3e94fb);
  box-shadow:0 7px 18px rgba(47,131,247,.19);
}
.btn-soft{background:#f2f6fb;color:#52657f}
.btn-danger{background:#fff1f1;color:#c8545c}
input,select,textarea{
  border-color:#e2e9f1!important;border-radius:10px!important;
  background:#fff!important;
}
input:focus,select:focus,textarea:focus{
  border-color:#8ebef8!important;box-shadow:0 0 0 3px rgba(47,131,247,.09)!important;
}

/* Dashboard banner */
.home-hero{
  height:222px;border-radius:18px;overflow:hidden;position:relative;
  background:linear-gradient(180deg,#d9efff 0%,#eef9ff 58%,#f7fbff 100%);
  box-shadow:var(--eg-shadow);border:1px solid #e4f0f8;
  margin-bottom:16px;padding:36px 44px;
}
.home-hero-copy{position:relative;z-index:4}
.home-hero-copy img{width:290px;height:auto;display:block}
.home-hero-copy b{
  display:block;margin:6px 0 2px 61px;color:#245291;font-size:17px;letter-spacing:.28em
}
.home-hero-copy span{display:block;margin-left:61px;color:#637e9d;font-size:11px;letter-spacing:.12em}
.hero-quote{
  position:absolute;z-index:4;right:54px;top:46px;
  color:#294a73;font-size:18px;line-height:1.65;font-weight:700;
  transform:rotate(-3deg);font-family:"KaiTi","STKaiti","PingFang SC",sans-serif;
}
.hero-quote i{
  display:block;width:86px;border-top:3px solid var(--eg-orange);border-radius:99px;
  margin:9px 0 0 25px;transform:rotate(-8deg)
}
.hero-scenery span{position:absolute;display:block}
.hero-sun{
  width:53px;height:53px;border-radius:50%;right:310px;bottom:31px;
  background:radial-gradient(circle,#fff7bf 0 30%,rgba(255,222,110,.7) 48%,rgba(255,232,142,0) 72%);
}
.hero-mountain{
  bottom:-50px;width:430px;height:170px;clip-path:polygon(0 100%,25% 40%,43% 70%,63% 24%,100% 100%);
  opacity:.82
}
.hero-mountain.one{left:0;background:#b5d9f5}
.hero-mountain.two{right:-40px;background:#a7cdea;transform:scaleX(1.25)}
.hero-hill{bottom:-31px;width:440px;height:95px;border-radius:50% 50% 0 0}
.hero-hill.one{left:260px;background:#b9ddc0;transform:rotate(2deg)}
.hero-hill.two{right:-50px;background:#8ecb9d;transform:rotate(-2deg)}
.hero-road{
  width:52px;height:132px;right:343px;bottom:-20px;
  background:linear-gradient(90deg,transparent 0 28%,#ffe3a4 29% 71%,transparent 72%);
  clip-path:polygon(45% 0,55% 0,100% 100%,0 100%);
}

/* Dashboard metrics */
.home-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}
.home-metric{
  display:flex;align-items:center;gap:14px;background:#fff;border:1px solid #eef2f6;
  border-radius:15px;padding:17px 18px;box-shadow:var(--eg-shadow)
}
.metric-icon{
  width:45px;height:45px;border-radius:12px;display:grid;place-items:center;
  color:#fff;flex:0 0 auto;position:relative;overflow:hidden;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 8px 18px rgba(45,89,130,.14);
}
.metric-icon::before{
  content:"";position:absolute;width:30px;height:30px;border-radius:50%;
  left:-8px;top:-9px;background:rgba(255,255,255,.14);
}
.metric-icon svg{
  width:25px;height:25px;position:relative;z-index:1;
  filter:drop-shadow(0 1px 1px rgba(21,57,91,.12));
}
.home-metric.green .metric-icon{background:linear-gradient(145deg,#39d080,#2fbb70)}
.home-metric.blue .metric-icon{background:linear-gradient(145deg,#3b95ff,#267cec)}
.home-metric.orange .metric-icon{background:linear-gradient(145deg,#ffa53b,#ff8322)}
.home-metric.purple .metric-icon{background:linear-gradient(145deg,#8274f6,#6b5ce9)}
.home-metric b{display:block;font-size:25px;color:#1c2c43;line-height:1}
.home-metric strong{display:block;margin-top:6px;font-size:12px;color:#3d4e63}
.home-metric small{display:block;margin-top:3px;color:#a1aebb;font-size:9px}
.home-metric{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.home-metric:hover{transform:translateY(-2px);box-shadow:var(--eg-shadow-hover);border-color:#e3ebf4}
.metric-action{border:1px solid #eef2f6;text-align:left;cursor:pointer;font:inherit;position:relative}
.metric-action .metric-arrow{margin-left:auto;color:#b2bfce;font-size:24px;line-height:1}
.dashboard-book-actions{display:flex;gap:10px;margin-top:15px}
.dashboard-book-actions .continue-study{margin-top:0;flex:1}
.test-book-button{min-width:82px}

/* Learned-word tests */
.test-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.test-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);gap:16px}
.test-config-card,.test-history-card,.test-result-card{border-radius:20px}
.test-config-hero{display:flex;align-items:center;gap:14px;padding-bottom:20px;border-bottom:1px solid #edf2f6}
.test-hero-icon{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(145deg,#4c9bff,#2c78e8);color:#fff;font-size:25px;font-weight:800;box-shadow:0 10px 22px rgba(45,123,232,.2)}
.test-config-hero h2{margin:0 0 4px;font-size:18px;color:#263951}
.test-config-hero p{margin:0;color:#8b99aa;font-size:11px}.test-config-hero p b{color:#347fdc}
.test-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}
.test-form-grid label{display:grid;gap:7px;color:#50627a;font-size:11px;font-weight:700}
.test-form-grid select{width:100%;height:42px;border:1px solid #e5edf5;border-radius:11px;background:#fbfdff;color:#263950;padding:0 11px}
.test-rules{display:grid;gap:8px;margin:18px 0;color:#7f90a4;font-size:10px}
.test-start-button{width:100%;height:44px;display:flex;justify-content:center;gap:12px}.test-start-button span,.test-question-footer button span{font-size:16px}
.test-history-list{display:grid;gap:2px}.test-history-list>div{display:grid;grid-template-columns:1fr auto 38px;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid #edf2f6;font-size:11px}.test-history-list>div:last-child{border-bottom:0}.test-history-list b{color:#2c7bdc}.test-history-list small{color:#93a1b2;text-align:right}
.test-empty{padding:36px 18px!important;text-align:center}.test-empty b{display:block;color:#263950;margin-bottom:7px}.test-empty span{display:block;color:#8d9aaa;margin-bottom:16px;font-size:11px}
.test-play-wrap{max-width:760px;margin:0 auto;padding-top:4px}.test-play-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px;color:#8191a4;font-size:11px}.test-progress{height:7px;border-radius:99px;background:#eaf0f6;overflow:hidden;margin-bottom:16px}.test-progress i{height:100%;display:block;border-radius:inherit;background:linear-gradient(90deg,#3488ee,#58b1ff);transition:width .2s ease}
.test-question-card{border-radius:20px;min-height:420px;padding:30px!important;display:flex;flex-direction:column}.test-type-pill{align-self:flex-start;padding:6px 10px;border-radius:999px;background:#eef6ff;color:#3989e8;font-size:10px;font-weight:800}.test-word-prompt,.test-meaning-prompt{text-align:center;color:#1f3550;font-size:32px;font-weight:850;margin:52px 0 35px}.test-word-prompt small,.test-meaning-prompt small{display:block;margin-top:9px;color:#98a6b6;font-size:11px;font-weight:500}.test-meaning-prompt{font-size:24px}.test-meaning-prompt small{font-size:12px}.test-options{display:grid;grid-template-columns:1fr 1fr;gap:11px}.test-option{border:1px solid #e6edf5;background:#fbfdff;border-radius:13px;padding:14px;text-align:left;color:#43566e;font-size:12px;cursor:pointer;min-height:58px}.test-option:hover{border-color:#a6cef8;background:#f5faff}.test-option.selected{border-color:#3389ee;background:#edf6ff;color:#246fc4;box-shadow:0 0 0 2px rgba(51,137,238,.1)}.test-option span{display:inline-grid;place-items:center;width:23px;height:23px;border-radius:7px;margin-right:8px;background:#eef2f7;color:#7e8fa4;font-weight:800}.test-option.selected span{background:#3d91ed;color:#fff}.test-answer-input{display:block;width:100%;max-width:470px;margin:0 auto 36px;height:54px;border:1px solid #dfeaf4;border-radius:13px;text-align:center;font-size:19px;color:#233950;outline:0}.test-answer-input:focus{border-color:#66aaf3;box-shadow:0 0 0 3px rgba(75,156,242,.12)}.test-question-footer{margin-top:auto;padding-top:22px;border-top:1px solid #edf2f6;display:flex;justify-content:space-between;align-items:center;color:#96a3b2;font-size:10px}
.test-result-card{max-width:760px;margin:0 auto;text-align:center}.test-score-ring{width:136px;height:136px;border-radius:50%;margin:4px auto 20px;display:grid;place-content:center;background:radial-gradient(circle at center,#fff 0 57%,transparent 58%),conic-gradient(#3d91ed var(--score,75%),#eaf1f7 0);position:relative}.test-score-ring::after{content:"";position:absolute;inset:7px;border-radius:50%;border:1px solid #edf2f6}.test-score-ring b,.test-score-ring small{position:relative;z-index:1}.test-score-ring b{font-size:30px;color:#2d78d7}.test-score-ring small{color:#8d9aaa;font-size:10px;margin-top:2px}.test-result-stats{display:flex;justify-content:center;gap:42px;margin-bottom:26px}.test-result-stats b,.test-result-stats span{display:block}.test-result-stats b{font-size:21px;color:#263950}.test-result-stats span{font-size:10px;color:#91a0b1;margin-top:3px}.test-wrong-section{text-align:left;border-top:1px solid #edf2f6;padding-top:18px}.test-wrong-list{display:grid;gap:0}.test-wrong-list>div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #f0f3f7;font-size:11px}.test-wrong-list b{color:#293e58}.test-wrong-list span{color:#8b9aaa;text-align:right}.test-perfect{padding:22px;border-radius:12px;background:#f0fbf5;color:#36a269;font-size:13px}.test-result-actions{display:flex;justify-content:center;gap:10px;margin-top:22px}

/* Home panels */
.home-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;margin-bottom:16px}
.panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.panel-title h2{margin:0}
.text-link{border:0;background:transparent;color:#3588ee;font-size:10.5px;cursor:pointer}
.current-book-main{display:flex;gap:18px;align-items:stretch}
.book-cover-visual{
  width:112px;min-height:142px;border-radius:10px 15px 15px 10px;
  background:
    radial-gradient(circle at 32% 34%,#ffd84c 0 10%,transparent 11%),
    radial-gradient(circle at 70% 67%,#ff9739 0 13%,transparent 14%),
    linear-gradient(145deg,#ffd739,#f5a51e);
  box-shadow:7px 9px 20px rgba(220,157,35,.18);
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  color:#264f86;text-align:center;
}
.book-cover-visual span{font-size:30px;font-weight:900}
.book-cover-visual small{font-size:9px;line-height:1.5;font-weight:800}
.current-book-info{flex:1;min-width:0}
.current-book-info h3{margin:4px 0 12px;font-size:17px;color:#25354b}
.book-facts{display:grid;gap:6px;color:#75849a;font-size:10.5px}
.book-facts b{color:#45556b}
.book-progress-label{display:flex;justify-content:space-between;margin-top:15px;color:#8190a4;font-size:10px}
.book-progress-label b{color:#3a9a61}
.book-progress{height:7px;background:#edf1f5;border-radius:99px;overflow:hidden;margin-top:6px}
.book-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#37c876,#47d58b)}
.continue-study{width:100%;margin-top:15px;min-height:43px}
.today-date,.panel-note{font-size:9.5px;color:#9aa7b7}
.today-list{display:grid;gap:13px}
.today-list>div{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:10px}
.today-list b{font-size:11px;color:#45566d}
.today-list strong{font-size:11px;color:#31445d}
.today-ico{
  width:32px;height:32px;border-radius:9px;display:grid;place-items:center;color:#fff;
  position:relative;overflow:hidden;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 6px 14px rgba(45,89,130,.12);
}
.today-ico::before{content:"";position:absolute;width:21px;height:21px;border-radius:50%;left:-7px;top:-8px;background:rgba(255,255,255,.14)}
.today-ico svg{width:18px;height:18px;position:relative;z-index:1;filter:drop-shadow(0 1px 1px rgba(21,57,91,.12))}
.today-ico.orange{background:linear-gradient(145deg,#ffab49,#ff8628)}
.today-ico.blue{background:linear-gradient(145deg,#48adf3,#318fdc)}
.today-ico.purple{background:linear-gradient(145deg,#7d87f6,#6370e8)}
.today-ico.green{background:linear-gradient(145deg,#48d58a,#31bb70)}

.recent-word-list{display:grid}
.recent-word-list>div{
  display:grid;grid-template-columns:minmax(110px,.8fr) 32px minmax(95px,.65fr) 1fr;
  gap:8px;align-items:center;padding:12px 4px;border-bottom:1px solid #eef2f6
}
.recent-word-list>div:last-child{border-bottom:0}
.recent-word-list b{font-size:14px;color:#283a52}
.recent-word-list span{font-size:10px;color:#8796aa}
.recent-word-list small{font-size:10px;color:#8390a3}
.recent-speak{border:0;background:#eef6ff;color:#348cf4;border-radius:8px;width:28px;height:28px;cursor:pointer}
.soft-empty{padding:24px!important;background:#fbfdff!important;border:1px dashed #e2ebf4!important}
.online-chip{display:flex;align-items:center;gap:5px;color:#7f90a5;font-size:9.5px}
.online-chip i{width:7px;height:7px;border-radius:50%;background:#35c57a}
.online-chip i.offline{background:#e36b72}
.quick-book-select{display:grid;gap:5px;margin-bottom:11px}
.quick-book-select label{font-size:9px;color:#96a3b4}
.quick-book-select select{width:100%}
.quick-action{
  width:100%;border:1px solid #edf1f6;background:#fbfdff;border-radius:12px;padding:12px;
  display:flex;align-items:center;gap:10px;text-align:left;margin-top:9px;color:#44576e;
  cursor:pointer;transition:.15s ease
}
.quick-action:hover{border-color:#d8e8fa;background:#f7fbff;transform:translateY(-1px)}
.quick-action.primary{background:#eef6ff;border-color:#d9eaff}
.quick-action>span{width:34px;height:34px;border-radius:9px;background:#fff;color:#3188f2;display:grid;place-items:center}
.quick-action b{display:block;font-size:11px}
.quick-action small{display:block;color:#92a0b2;font-size:9px;margin-top:2px}

/* Classic metric cards on detail pages */
.grid4 .metric{border:1px solid #edf2f6;background:#fff;border-radius:15px;box-shadow:var(--eg-shadow)}
.metric .k{color:#8b99ac}
.metric .v{color:#21334b;font-size:27px}

/* Study */
.study-wrap{max-width:840px;margin:0 auto;padding-top:8px}
.mode-tabs{
  background:#eef4fb;border:1px solid #e2ebf5;padding:5px;border-radius:13px;
  box-shadow:none;
}
.mode-tabs button{border-radius:9px;color:#74869d}
.mode-tabs button.active{background:#fff;color:#277fe9;box-shadow:0 5px 14px rgba(50,104,167,.08)}
.study-head{color:#7d8da1}
.study-card{
  min-height:390px;border-radius:20px;border:1px solid #eaf0f6;
  box-shadow:0 18px 46px rgba(47,83,125,.08);
}
.word{color:#203752}
.phonetic{color:#8698ad}
.speaker{background:#eef6ff!important;color:#2e87ee!important}
.rates{gap:10px}
.rate{
  border:1px solid #e8edf3!important;border-radius:12px!important;background:#fff!important;
  color:#42556d!important;box-shadow:0 7px 18px rgba(48,78,112,.05)
}
.rate:hover{border-color:#b9d9fa!important;background:#f8fbff!important}
.memory-chip{background:#fff;border-color:#edf1f5;box-shadow:var(--eg-shadow)}
.m-label{color:#929fb0}.m-value{color:#33475f}

/* Library */
.library-book-card{
  border:1px solid #edf2f6;border-radius:17px;box-shadow:var(--eg-shadow);
}
.library-book-card:hover{box-shadow:var(--eg-shadow-hover);border-color:#d9e8f8}
.library-book-card.is-current{border-color:#9dcbfb;box-shadow:0 12px 30px rgba(47,131,247,.10)}
.library-cover{background:linear-gradient(145deg,#3d96fb,#267ce8);box-shadow:5px 7px 16px rgba(47,131,247,.18)}
.library-book-tags .current-study-tag{background:#eaf4ff;color:#2b82ec}
.library-progress i{background:linear-gradient(90deg,#36c679,#55d995)}
.study-book-switch{border-color:#e6edf4;background:#fff}
.catalog-book{border-color:#edf2f6!important;background:#fff!important}
.catalog-book:hover{border-color:#d8e8fa!important;box-shadow:var(--eg-shadow)}
.catalog-book-icon{background:linear-gradient(145deg,#4199fb,#2c80eb)!important}

/* Tables / stats / wrong words */
.table{border-collapse:separate;border-spacing:0}
.table th{background:#f7fafe;color:#7c8da3;border-color:#edf1f5}
.table td{border-color:#eef2f6;color:#45566d}
.table tbody tr:hover td{background:#fafcff}
.heatmap{gap:7px}
.heat{border-radius:5px;background:#edf3f9}
.heat.h1{background:#cfe7ff}.heat.h2{background:#8dc3fa}.heat.h3{background:#559ef2}.heat.h4{background:#2f82e8}

/* Settings */
.account-row{border-color:#eaf0f5;background:#fafcff}
.account-avatar{background:#eaf3fc;color:#377fcf}
.form-grid>div{padding:12px;border-radius:12px;background:#fafcff;border:1px solid #edf2f6}
.update-card{background:#f8fbff;border-color:#dfebf7}
.version-badge{background:#eaf4ff;color:#2f82e8}
.update-safety{background:#effaf4;border-color:#ddf0e6}

/* Auth */
.auth-shell{
  background:
    radial-gradient(circle at 13% 20%,rgba(74,161,255,.14),transparent 27%),
    radial-gradient(circle at 80% 80%,rgba(255,157,62,.09),transparent 25%),
    #f5faff;
  padding:26px;
}
.auth-layout{
  width:min(980px,100%);display:grid;grid-template-columns:1.05fr .72fr;
  border:1px solid #e5eef7;background:#fff;border-radius:26px;overflow:hidden;
  box-shadow:0 28px 80px rgba(41,82,130,.13)
}
.auth-brand-panel{
  min-height:610px;padding:42px;position:relative;overflow:hidden;
  background:linear-gradient(180deg,#e9f6ff 0%,#f7fbff 66%,#fff 100%);
}
.auth-hero-logo{width:245px;position:relative;z-index:3}
.auth-brand-copy{position:relative;z-index:3;margin-top:58px;max-width:410px}
.auth-brand-copy>span{color:#2f78c7;font-family:"KaiTi","STKaiti",sans-serif;font-size:18px}
.auth-brand-copy h1{font-size:31px;line-height:1.45;color:#24466f;margin:18px 0 10px}
.auth-brand-copy p{font-size:12px;line-height:1.8;color:#6d86a4}
.auth-landscape i{position:absolute;display:block}
.auth-landscape .sun{width:78px;height:78px;border-radius:50%;right:110px;bottom:156px;background:radial-gradient(circle,#fff3a5 0 25%,rgba(255,218,90,.5) 48%,transparent 70%)}
.auth-landscape .mountain{bottom:62px;width:390px;height:190px;clip-path:polygon(0 100%,26% 38%,45% 68%,68% 23%,100% 100%)}
.auth-landscape .m1{left:-60px;background:#badcf6}.auth-landscape .m2{right:-80px;background:#a5d0ed}
.auth-landscape .hill{bottom:0;width:430px;height:115px;border-radius:50% 50% 0 0}
.auth-landscape .h1{left:90px;background:#b8dfbd}.auth-landscape .h2{right:-80px;background:#8fcd9e}
.auth-landscape .road{width:52px;height:160px;right:210px;bottom:-35px;background:#ffe3aa;clip-path:polygon(45% 0,55% 0,100% 100%,0 100%)}
.auth-card{
  align-self:center;width:auto;margin:34px;border:0;box-shadow:none;border-radius:0;padding:22px;
}
.auth-brand-image{width:190px!important}
.auth-title{color:#263c5a}
.auth-tabs{background:#f1f6fb}
.auth-tabs button.active{color:#2d81ec}
.auth-submit{min-height:47px}
.auth-error{padding:10px 12px;border-radius:10px;background:#fff1f1;color:#c8545c;font-size:12px;line-height:1.5}
.native-nav-icon{display:grid!important;place-items:center;font-size:18px;font-weight:500}
.pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:18px;color:#8492a6;font-size:12px}
.catalog-toolbar{grid-template-columns:minmax(220px,1fr) minmax(150px,.45fr) auto}

/* Mobile */
@media(max-width:980px){
  .app{grid-template-columns:1fr}
  .sidebar{display:none}
  .main{padding:0 18px 92px;max-width:none}
  .app-topbar{height:70px}
  .topbar-motto{font-size:15px}
  .home-hero{height:190px;padding:28px 25px}
  .home-hero-copy img{width:220px}
  .hero-quote{font-size:14px;right:25px;top:48px}
  .home-metrics{grid-template-columns:repeat(2,1fr)}
  .home-grid{grid-template-columns:1fr}
  .mobile-nav{background:rgba(255,255,255,.96)!important;border-top:1px solid #e7eef5!important;box-shadow:0 -8px 25px rgba(44,77,116,.05)!important}
  .mobile-nav button{color:#71849c!important}
  .mobile-nav button[data-nav="dashboard"]{}
  .auth-layout{grid-template-columns:1fr}
  .auth-brand-panel{display:none}
  .auth-card{margin:0;padding:30px}
}
@media(max-width:620px){
  .main{padding-left:13px;padding-right:13px}
  .app-topbar{margin-bottom:5px}
  .topbar-motto{font-size:13px}
  .theme-sun{display:none}
  .home-hero{height:168px;padding:24px 18px}
  .home-hero-copy img{width:185px}
  .home-hero-copy b,.home-hero-copy span{margin-left:38px}
  .home-hero-copy b{font-size:12px}
  .hero-quote{display:none}
  .hero-sun{right:120px}
  .home-metrics{gap:9px}
  .home-metric{padding:13px 11px;gap:9px}
  .metric-icon{width:36px;height:36px;border-radius:10px}
  .home-metric b{font-size:20px}
  .home-metric strong{font-size:10px}
  .current-book-main{flex-direction:column}
  .book-cover-visual{width:84px;min-height:104px}
  .recent-word-list>div{grid-template-columns:1fr 30px}
  .recent-word-list span,.recent-word-list small{grid-column:1/-1}
  .topbar-profile b,.profile-caret{display:none}
  .grid4{grid-template-columns:repeat(2,1fr)}
}


/* ===== V11.4.2.3 asset refinement ===== */
.app-topbar{margin-bottom:10px}
.topbar-motto{
  display:flex;align-items:center;min-height:62px;
  position:relative;
}
.topbar-motto img{
  width:min(420px,48vw);
  height:auto;
  display:block;
  object-fit:contain;
  filter:drop-shadow(0 2px 4px rgba(36,73,116,.06));
}
.topbar-profile{
  display:flex;align-items:center;gap:10px;
  padding:8px 12px;border-radius:999px;
  background:rgba(255,255,255,.78);
  border:1px solid #edf2f6;
  box-shadow:0 10px 26px rgba(41,82,130,.05);
}
.top-sun-icon{width:24px;height:24px;display:block}
.top-avatar-image{
  width:42px;height:42px;border-radius:50%;
  overflow:hidden;background:#f0f4f8;border:0;
}
.top-avatar-image img,.user-avatar-image img{
  width:100%;height:100%;display:block;object-fit:cover;
}
.profile-caret-img{width:16px;height:16px;opacity:.8}
.theme-sun,.profile-caret{display:none}
.user-avatar-image{
  width:42px;height:42px;display:grid;place-items:center;
  border-radius:50%;overflow:hidden;background:#eef3f8;color:transparent;
}
.logout-mini-icon{
  width:16px;height:16px;display:block;object-fit:contain;
}
.user-mini button{
  display:flex;align-items:center;gap:6px;
}
.home-hero-image-wrap{
  padding:0!important;
  overflow:hidden;
  border-radius:22px;
  border:1px solid #e6eef7;
  box-shadow:0 16px 40px rgba(39,79,124,.08);
  background:#fff;
}
.hero-banner-image{
  width:100%;
  display:block;
  aspect-ratio:3 / 1;
  object-fit:cover;
}
.english-gogo-brand img{
  width:48px!important;height:48px!important;
}
.brand-copy strong{display:block}
.brand-copy small{letter-spacing:.08em}
.nav button{
  min-height:50px;
}
.nav button .nav-icon,
.mobile-nav button .nav-icon{
  width:24px;height:24px;display:grid;place-items:center;
}
.nav button .nav-icon svg,
.mobile-nav button .nav-icon svg{
  width:22px;height:22px;
}
.nav button.active .nav-icon svg,
.mobile-nav button.active .nav-icon svg{
  stroke:#fff;
}
.chart-card .metric-icon,.home-metric .metric-icon{
  font-family:system-ui,-apple-system,sans-serif;
}
#sidebarLogout{
  padding:0;background:transparent;border:0;cursor:pointer;
}
@media(max-width:980px){
  .topbar-motto img{width:min(300px,68vw)}
  .topbar-profile{padding:8px 10px}
  .top-avatar-image{width:38px;height:38px}
}
@media(max-width:620px){
  .topbar-motto img{width:min(210px,56vw)}
  .topbar-profile{
    background:transparent;border:0;box-shadow:none;padding:0;gap:8px;
  }
  .top-sun-icon{width:20px;height:20px}
  .top-avatar-image{width:34px;height:34px}
  .topbar-profile b,.profile-caret-img{display:none}
}


/* ===== V11.4.2.4 final design refinements ===== */
.home-hero-image-wrap{
  padding:12px!important;
  background:linear-gradient(180deg,#fafdff 0%,#f7fbff 100%);
}
.hero-banner-image{
  width:100%;
  height:auto;
  display:block;
  aspect-ratio:auto;
  object-fit:contain;
  border-radius:16px;
  background:#f7fbff;
}
.topbar-motto{
  min-height:68px;
}
.topbar-motto img{
  width:min(460px,50vw);
  height:auto;
  object-fit:contain;
}
.english-gogo-brand img{
  width:52px!important;
  height:52px!important;
}
.nav button{
  padding:12px 15px;
}
.nav button .nav-icon svg,
.mobile-nav button .nav-icon svg{
  width:23px;height:23px;
}
.topbar-profile{
  border-radius:18px;
}
.user-mini{
  border-radius:15px;
}
.user-mini button{
  font-weight:650;
}
#sidebarLogout{
  color:#7f8fa5;
}
#sidebarLogout:hover{
  color:#2e7df4;
}
@media(max-width:980px){
  .home-hero-image-wrap{padding:8px!important}
  .topbar-motto img{width:min(320px,70vw)}
}
@media(max-width:620px){
  .home-hero-image-wrap{padding:6px!important}
  .hero-banner-image{border-radius:14px}
  .topbar-motto{min-height:48px}
  .topbar-motto img{width:min(230px,60vw)}
}


/* ===== V11.5.2 cloud study UI ===== */
.topbar-profile{
  gap:12px;
}
.top-logout-btn{
  display:flex;align-items:center;gap:6px;
  border:0;background:#eef6ff;color:#2f83f7;
  border-radius:999px;padding:8px 11px;
  cursor:pointer;font-weight:700;font-size:11px;
  box-shadow:inset 0 0 0 1px #dcebff;
}
.top-logout-btn img{width:15px;height:15px;display:block}
.top-logout-btn:hover{background:#e4f0ff;transform:translateY(-1px)}
.profile-caret-img{display:none}

.home-intro-strip{
  display:grid;grid-template-columns:minmax(0,1.2fr) .8fr;gap:16px;
  min-height:240px;padding:24px 26px;margin-bottom:16px;
  border-radius:20px;
  position:relative;isolation:isolate;overflow:hidden;
  background:#dff1ff;
  border-color:rgba(255,255,255,.78);
  box-shadow:0 18px 45px rgba(39,86,132,.16);
}
.home-intro-strip::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(247,252,255,.95) 0%,rgba(247,252,255,.78) 43%,rgba(235,247,255,.22) 66%,rgba(225,242,255,.48) 100%);
}
.home-intro-background{
  position:absolute;inset:0;z-index:-2;width:100%;height:100%;
  object-fit:cover;object-position:center 58%;
}
.home-intro-copy{display:flex;align-items:center;gap:18px;min-width:0;position:relative}
.home-intro-copy>img{width:205px;max-width:38%;height:auto;object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 5px 16px rgba(31,87,164,.12))}
.home-intro-message{padding:18px;border-radius:18px;background:rgba(255,255,255,.66);backdrop-filter:blur(8px);box-shadow:0 12px 32px rgba(38,79,119,.08)}
.home-intro-copy h1{font-size:24px;margin:2px 0 6px;color:#23344b;text-shadow:0 1px 0 rgba(255,255,255,.7)}
.home-intro-mini{display:grid;grid-template-columns:1fr;gap:12px;align-content:center;position:relative}
.home-intro-mini>div{
  padding:15px 17px;border-radius:16px;background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.9);
  backdrop-filter:blur(10px);box-shadow:0 12px 28px rgba(40,80,120,.09);
}
.home-intro-mini b{display:block;color:#20354d;font-size:14px;margin-bottom:4px}
.home-intro-mini small{color:#8b9aad;font-size:10px}

.page-top-card{
  padding:18px 20px;border:1px solid #edf2f6;border-radius:18px;
  background:linear-gradient(135deg,#fff 0%,#f8fbff 100%);
  box-shadow:var(--eg-shadow);
  margin-bottom:16px;
}
.page-top-card .sub{margin-top:4px}
.page-top-card .library-top-actions{align-self:center}
.page-top-card .row{gap:10px}

.library-shelf{gap:16px}
.library-book-card{border-radius:18px;padding:18px}
.library-book-head{gap:14px}
.library-book-title b{font-size:15px;line-height:1.5;color:#24364d}
.library-book-title small{color:#9aa7b6}
.library-book-stats span{padding:9px 10px;border-radius:12px;background:#f8fbff;border:1px solid #edf2f6}
.library-book-actions{margin-top:14px;gap:8px}
.library-text-action{font-weight:700}
.library-add-panel{border-radius:18px}
.library-add-tabs button{border-radius:999px}
.catalog-toolbar input,.catalog-toolbar select{height:42px}
.catalog-book{border-radius:16px!important}

.library-detail-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.library-detail-metrics .metric{min-height:110px}
.searchbar{gap:10px;align-items:center;flex-wrap:wrap}
.searchbar input{min-width:240px;flex:1}
.table-wrap{border:1px solid #edf2f6;border-radius:16px;overflow:auto;background:#fff}
.table td,.table th{padding:14px 12px}

.study-empty{padding:42px 24px!important;border-radius:20px;text-align:center}
.empty-study-icon{width:64px;height:64px;border-radius:18px;background:#eef6ff;color:#2f83f7;display:grid;place-items:center;margin:0 auto 14px;font-weight:900;font-size:26px}
.study-empty b{display:block;font-size:18px;color:#24364c;margin-bottom:8px}
.study-empty span{display:block;color:#8796aa;margin-bottom:18px}

.study-wrap .study-card{padding:30px 28px}
.study-head{margin:12px 0 14px}
.spell-card,.study-card{border-radius:20px}
.auto-reveal-cue{color:#8b9aad}
.memory-strip{margin-top:14px}
.memory-chip{border-radius:16px}

.section-card,.stats-heat-section,.update-card{border-radius:18px}
.heatmap{padding:4px 2px}
.heat{width:28px;height:28px}

.account-row{border-radius:16px;padding:14px 16px}
.account-avatar-image{overflow:hidden;display:grid;place-items:center;background:#eef3f8}
.account-avatar-image img{width:100%;height:100%;object-fit:cover}
.form-grid{gap:14px}
.form-grid>div{padding:14px;border-radius:14px}
.form-grid label{display:block;font-weight:700;font-size:11px;color:#4a5d76;margin-bottom:8px}
.setting-help{margin-top:6px;color:#98a6b6;font-size:10px;line-height:1.6}
.update-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.version-badge{padding:7px 12px;border-radius:999px;font-weight:800}

#view>.card.section, #view>.card{margin-bottom:16px}

@media(max-width:980px){
  .home-intro-strip{grid-template-columns:1fr;padding:18px;min-height:300px}
  .home-intro-copy>img{width:180px;max-width:42%}
  .home-intro-mini{grid-template-columns:1fr 1fr;align-self:end}
  .page-top-card{padding:16px}
}
@media(max-width:620px){
  .topbar-profile b{display:none}
  .top-logout-btn span{display:none}
  .top-logout-btn{padding:8px;border-radius:12px}
  .home-intro-copy{flex-direction:column;align-items:flex-start;gap:12px}
  .home-intro-copy>img{width:170px;max-width:100%}
  .home-intro-message{padding:14px;width:100%}
  .home-intro-copy h1{font-size:20px}
  .home-intro-mini{grid-template-columns:1fr}
  .library-top-actions{width:100%;display:grid;gap:10px}
  .library-top-actions>*{width:100%}
  .searchbar{display:grid;grid-template-columns:1fr 1fr}
  .searchbar input{grid-column:1/-1;min-width:0}
  .heat{width:22px;height:22px}
}

/* ===== V11.5.2 joooin english brand and navigation icons ===== */
.english-gogo-brand>img{
  width:100%!important;
  height:auto!important;
  max-height:60px;
  object-fit:contain;
  object-position:left center;
}
.auth-hero-logo{width:280px;max-width:78%;height:auto}
.auth-brand-image{width:220px!important;max-width:82%;height:auto}
.home-intro-copy>img{width:260px;max-width:72%;height:auto}
.nav button .nav-item{gap:12px}
.nav button .nav-icon{
  width:34px;
  height:34px;
  border-radius:10px;
  display:grid;
  place-items:center;
  color:#347bd4;
  background:linear-gradient(145deg,#f1f7ff,#e9f3ff);
  box-shadow:inset 0 0 0 1px rgba(70,137,218,.08);
  transition:color .18s ease,background .18s ease,transform .18s ease,box-shadow .18s ease;
}
.nav button .nav-icon svg{
  width:21px;
  height:21px;
  stroke:currentColor;
  stroke-width:1.65;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.nav button:hover .nav-icon{
  color:#246fd0;
  background:#e3f0ff;
  transform:translateY(-1px);
}
.nav button.active .nav-icon{
  color:#fff;
  background:rgba(255,255,255,.17);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);
}
.mobile-nav button .nav-icon{
  width:27px;
  height:27px;
  border-radius:8px;
  display:grid;
  place-items:center;
  color:currentColor;
  background:transparent;
}
.mobile-nav button .nav-icon svg{
  width:20px;
  height:20px;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.mobile-nav button.active .nav-icon{
  color:#fff;
  background:linear-gradient(135deg,#347ff1,#4298fa);
  box-shadow:0 5px 12px rgba(47,127,235,.24);
}

/* Original fruit mark with the renamed Joooin English wordmark. */
.product-logo{display:inline-flex;align-items:center;gap:10px;min-width:0;color:#123ebc}
.product-logo-mark{width:64px;height:64px;flex:0 0 auto;object-fit:contain}
.product-logo-copy{min-width:0;padding-top:2px}.product-logo-name{display:flex;align-items:baseline;white-space:nowrap;font-family:"Arial Rounded MT Bold","Nunito","Avenir Next",Arial,sans-serif;font-size:30px;font-weight:800;letter-spacing:-1.9px;line-height:1}.product-logo-name span{color:#123ebc}.product-logo-name strong{margin-left:5px;color:#ff790b;font:inherit}.product-logo-copy small{display:block;margin-top:7px;color:#435f8a;font-family:"PingFang SC","Microsoft YaHei",Arial,sans-serif;font-size:10px;font-weight:750;letter-spacing:5px;line-height:1;white-space:nowrap}
.english-gogo-brand .product-logo{width:100%;gap:8px}.english-gogo-brand .product-logo-mark{width:52px;height:52px}.english-gogo-brand .product-logo-name{font-size:22px;letter-spacing:-1.5px}.english-gogo-brand .product-logo-copy small{margin-top:5px;font-size:8px;letter-spacing:3.8px}
.auth-hero-logo.product-logo{width:280px;max-width:78%;margin:0;gap:12px}.auth-hero-logo .product-logo-mark{width:75px;height:75px}.auth-hero-logo .product-logo-name{font-size:35px;letter-spacing:-2.4px}.auth-hero-logo .product-logo-copy small{font-size:11px;letter-spacing:5.4px}
.auth-brand-image.product-logo{width:220px!important;max-width:82%;margin:0 auto 10px;gap:9px}.auth-brand-image .product-logo-mark{width:57px;height:57px}.auth-brand-image .product-logo-name{font-size:26px;letter-spacing:-1.8px}.auth-brand-image .product-logo-copy small{font-size:8.5px;letter-spacing:4px}
.home-brand-logo.product-logo{width:260px;max-width:72%;gap:10px}.home-brand-logo .product-logo-mark{width:68px;height:68px}.home-brand-logo .product-logo-name{font-size:31px}.home-brand-logo .product-logo-copy small{font-size:10px;letter-spacing:4.8px}
@media(max-width:620px){.auth-brand-image.product-logo{width:205px!important}.home-brand-logo.product-logo{width:210px;max-width:100%}.home-brand-logo .product-logo-mark{width:54px;height:54px}.home-brand-logo .product-logo-name{font-size:25px}.home-brand-logo .product-logo-copy small{font-size:8px;letter-spacing:3.8px}}

/* Full horizontal product mark in the signed-in sidebar. */
.english-gogo-brand{padding:4px 8px 22px!important}
.english-gogo-brand>img{
  width:100%!important;height:auto!important;max-height:72px;
  object-fit:contain;object-position:left center;filter:none;
}

@media(max-width:980px){
  .test-layout{grid-template-columns:1fr}
  .test-history-card{order:2}
}
@media(max-width:620px){
  .test-heading{align-items:flex-start;flex-direction:column}
  .test-heading>.btn{align-self:stretch}
  .test-form-grid{grid-template-columns:1fr}
  .test-question-card{padding:22px!important;min-height:390px}
  .test-word-prompt{font-size:28px;margin:42px 0 28px}
  .test-meaning-prompt{font-size:21px;margin:42px 0 28px}
  .test-options{grid-template-columns:1fr}
  .test-question-footer{align-items:flex-end;gap:12px}
  .test-question-footer>span{max-width:130px;line-height:1.5}
  .test-result-stats{gap:26px}
  .test-wrong-list>div{display:grid;gap:4px}
  .test-wrong-list span{text-align:left}
  .dashboard-book-actions{display:grid;grid-template-columns:1fr 1fr}
}

/* ===== V11.6.1 premium landing refinement (base) ===== */
html{scroll-behavior:smooth}
.landing-page{background:linear-gradient(180deg,#fbfdff 0,#fff 26%,#fff 100%)}
.landing-header{position:sticky;top:0;max-width:none;height:78px;padding-left:max(28px,calc((100vw - 1240px)/2));padding-right:max(28px,calc((100vw - 1240px)/2));background:rgba(255,255,255,.84);border-bottom:1px solid rgba(28,75,123,.07);box-shadow:0 8px 32px rgba(31,74,119,.045);backdrop-filter:blur(18px) saturate(145%)}
.landing-nav a{position:relative}.landing-nav a:after{content:"";position:absolute;left:50%;right:50%;bottom:-9px;height:2px;border-radius:99px;background:linear-gradient(90deg,#2c7fe5,#ff9438);transition:.2s ease}.landing-nav a:hover:after{left:10%;right:10%}
.landing-hero{max-width:none;min-height:680px;padding:64px max(28px,calc((100vw - 1240px)/2)) 112px;grid-template-columns:minmax(0,.9fr) minmax(480px,1.1fr);background:radial-gradient(circle at 82% 20%,rgba(67,145,240,.12),transparent 29%),radial-gradient(circle at 15% 88%,rgba(255,158,61,.07),transparent 22%),linear-gradient(180deg,#fcfeff,#f8fbff);border-bottom:1px solid #edf3f8}
.landing-hero:before{right:4%;top:6%;width:490px;height:490px;background:repeating-radial-gradient(circle,rgba(64,131,212,.075) 0 1px,transparent 1px 25px)}
.landing-hero:after{content:"";position:absolute;inset:0;opacity:.42;pointer-events:none;background-image:linear-gradient(rgba(45,107,174,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(45,107,174,.025) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to right,#000,transparent 44%,#000)}
.landing-hero-copy,.landing-hero-visual{z-index:2}.landing-kicker{width:max-content;padding:8px 13px 8px 10px;border:1px solid #dceafb;border-radius:99px;background:rgba(255,255,255,.72);box-shadow:0 7px 20px rgba(45,108,179,.06)}.landing-kicker span{width:19px}.landing-hero h1{font-size:56px;line-height:1.14}.landing-hero-copy>p{font-size:15.5px}.landing-primary-btn{background:linear-gradient(135deg,#0e5fc4,#3b91f5 68%,#56a6f7);box-shadow:0 13px 30px rgba(20,104,206,.26)}
.landing-app-preview{border-color:rgba(54,112,174,.16);box-shadow:0 38px 95px rgba(31,81,137,.2),inset 0 1px 0 #fff}.landing-app-preview:before{content:"";position:absolute;left:8%;right:8%;top:-1px;height:1px;background:linear-gradient(90deg,transparent,#7bb8f7,transparent)}.preview-float{border-color:rgba(61,119,179,.13);box-shadow:0 18px 42px rgba(41,87,137,.17)}
.landing-proof{position:relative;z-index:5;max-width:1128px;margin:-47px auto 0;padding:25px 34px;display:grid;grid-template-columns:repeat(7,auto);align-items:center;justify-content:space-between;border:1px solid rgba(44,103,164,.1);border-radius:22px;background:rgba(255,255,255,.94);box-shadow:0 22px 60px rgba(42,83,129,.11);backdrop-filter:blur(16px)}.landing-proof>div{display:flex;align-items:center;gap:11px}.landing-proof b{color:#1f65b7;font-size:25px;letter-spacing:-1px}.landing-proof sup{font-size:12px}.landing-proof span{max-width:86px;color:#74889c;font-size:10px;line-height:1.45}.landing-proof i{width:1px;height:31px;background:#e3ebf3}
.landing-product{padding-top:118px}.product-flow{gap:16px}.product-flow article{position:relative;overflow:hidden;min-height:238px;padding:29px;border-color:#e1eaf3;box-shadow:0 18px 50px rgba(36,77,124,.075)}.product-flow article:after{content:"";position:absolute;width:120px;height:120px;right:-48px;bottom:-54px;border:23px solid rgba(42,124,217,.05);border-radius:50%}.flow-icon{width:58px;height:58px;position:relative;border-radius:18px;color:#2774ca;background:#eaf4ff;box-shadow:inset 0 0 0 1px rgba(58,133,218,.08)}.flow-icon svg{width:29px;height:29px;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.flow-icon .icon-soft{fill:rgba(61,142,230,.09)}.flow-icon .icon-accent,.flow-icon .icon-accent-fill{stroke:#f1943e}.flow-icon small{position:absolute;right:-5px;bottom:-5px;width:22px;height:22px;display:grid;place-items:center;border:3px solid #fff;border-radius:50%;color:#fff;background:#2774ca;font-size:7px}.product-flow article:nth-of-type(2) .flow-icon{color:#d97925;background:#fff3e7}.product-flow article:nth-of-type(2) .flow-icon .icon-soft{fill:rgba(242,139,47,.08)}.product-flow article:nth-of-type(2) .flow-icon small{background:#e18431}.product-flow article:nth-of-type(3) .flow-icon{color:#299364;background:#eaf9f1}.product-flow article:nth-of-type(3) .flow-icon .icon-soft{fill:rgba(48,164,111,.08)}.product-flow article:nth-of-type(3) .flow-icon small{background:#2e9b6c}.product-flow h3{font-size:18px}
.landing-advantages{position:relative;background:linear-gradient(155deg,#0d3158,#124a82 62%,#1965a8);overflow:hidden}.landing-advantages:before{content:"";position:absolute;width:520px;height:520px;right:-160px;top:-230px;border:70px solid rgba(255,255,255,.035);border-radius:50%}.landing-advantages .landing-section-heading>span{color:#78b9ff}.landing-advantages .landing-section-heading h2{color:#fff}.advantage-grid{position:relative}.advantage-card{border-color:rgba(255,255,255,.1);background:rgba(255,255,255,.07);box-shadow:inset 0 1px 0 rgba(255,255,255,.07);backdrop-filter:blur(7px)}.advantage-card:hover{border-color:rgba(120,188,255,.28);background:rgba(255,255,255,.1);box-shadow:0 18px 42px rgba(1,24,49,.22)}.advantage-card h3{color:#fff}.advantage-card p{color:#aec6dd}.advantage-icon{display:grid;place-items:center;color:#72b9ff;background:rgba(105,181,255,.12);box-shadow:inset 0 0 0 1px rgba(116,188,255,.13)}.advantage-icon:before,.advantage-icon:after{display:none}.advantage-icon svg{width:27px;height:27px;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.advantage-icon .icon-soft{fill:rgba(116,190,255,.1)}.advantage-icon .icon-accent{stroke:#ffac55}.advantage-icon .icon-accent-fill{fill:#ffac55;stroke:none}
.landing-method{padding-top:120px}.memory-curve-card{background:linear-gradient(145deg,#fbfdff,#f5faff);box-shadow:0 22px 58px rgba(37,78,124,.09)}.method-list article{transition:.2s ease}.method-list article:hover{transform:translateY(-3px);border-color:#d4e4f3;box-shadow:0 14px 34px rgba(42,83,129,.075)}
.landing-cta{background:radial-gradient(circle at 86% 20%,rgba(255,255,255,.2),transparent 23%),linear-gradient(125deg,#0d4fa5,#2278d8 60%,#358fe8)}
@media(max-width:980px){.landing-hero{padding-left:24px;padding-right:24px}.landing-kicker{margin-left:auto;margin-right:auto}.landing-proof{margin:-40px 24px 0;grid-template-columns:1fr 1fr;gap:22px}.landing-proof>div{justify-content:center}.landing-proof i{display:none}.landing-advantages{padding-left:28px;padding-right:28px}}
@media(max-width:620px){.landing-header{padding-left:14px;padding-right:14px}.landing-hero{padding:45px 17px 90px}.landing-hero h1{font-size:37px}.landing-proof{margin:-47px 14px 0;padding:20px 17px;gap:17px 10px}.landing-proof>div{display:grid;gap:2px;text-align:center}.landing-proof b{font-size:21px}.landing-proof span{font-size:8px}.landing-product{padding-top:88px}.landing-advantages{padding-left:17px;padding-right:17px}.product-flow article{min-height:0}.landing-advantages .landing-section-heading h2{font-size:29px}}

/* ===== V11.7.0 signature brand landing ===== */
.landing-header{
  background:rgba(5,24,46,.9);
  border-bottom-color:rgba(255,255,255,.08);
  box-shadow:0 12px 42px rgba(1,13,28,.18);
}
.landing-header .product-logo-name span{color:#fff}
.landing-header .product-logo-copy small{color:#9bb5d0}
.landing-nav a{color:#abc1d8}
.landing-nav a:hover,.landing-text-btn{color:#fff}
.landing-nav a:after{background:linear-gradient(90deg,#69b8ff,#ff9b37)}
.landing-primary-btn.compact,
.landing-hero .landing-primary-btn{
  background:linear-gradient(135deg,#ffab43 0%,#ff7919 72%,#f2640d 100%);
  box-shadow:0 13px 30px rgba(255,121,25,.27);
}
.landing-primary-btn.compact:hover,
.landing-hero .landing-primary-btn:hover{box-shadow:0 18px 38px rgba(255,121,25,.36)}

.landing-hero{
  min-height:720px;
  overflow:hidden;
  background:
    radial-gradient(circle at 83% 19%,rgba(45,143,239,.36),transparent 30%),
    radial-gradient(circle at 11% 88%,rgba(255,134,30,.16),transparent 25%),
    linear-gradient(132deg,#041426 0%,#082b50 49%,#0b477a 100%);
  border-bottom:0;
}
.landing-hero:before{
  right:1%;top:2%;width:560px;height:560px;
  background:repeating-radial-gradient(circle,rgba(161,210,255,.12) 0 1px,transparent 1px 27px);
}
.landing-hero:after{
  opacity:.75;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:52px 52px;
  mask-image:linear-gradient(to right,#000,transparent 48%,#000);
}
.hero-brand-loop{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.hero-brand-loop i{position:absolute;display:block;border-radius:50%;border:1px solid rgba(141,202,255,.12)}
.hero-brand-loop i:nth-child(1){width:520px;height:520px;left:-310px;bottom:-342px;border-width:58px;border-color:rgba(255,139,40,.07)}
.hero-brand-loop i:nth-child(2){width:220px;height:220px;left:43%;top:16%;border:36px solid rgba(68,160,249,.055)}
.hero-brand-loop i:nth-child(3){width:92px;height:92px;right:7%;bottom:15%;border:17px solid rgba(255,158,64,.09)}
.landing-kicker{color:#b9dcff;border-color:rgba(159,207,255,.19);background:rgba(255,255,255,.055);box-shadow:inset 0 1px 0 rgba(255,255,255,.07)}
.landing-kicker span{background:linear-gradient(90deg,#5cb3ff,#ff9b3f)}
.landing-hero h1{color:#fff;text-shadow:0 5px 30px rgba(0,10,25,.2)}
.landing-hero h1 em{
  color:transparent;
  background:linear-gradient(92deg,#72bdff 0%,#b9ddff 56%,#ffb564 100%);
  -webkit-background-clip:text;background-clip:text;
}
.landing-hero h1 em:after{background:rgba(255,151,48,.17);z-index:-1}
.landing-hero-copy>p{color:#b7cbe0}
.landing-secondary-btn{color:#e3effa;border-color:rgba(255,255,255,.17);background:rgba(255,255,255,.07);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.landing-secondary-btn:hover{color:#fff;border-color:rgba(126,192,255,.38);background:rgba(255,255,255,.12)}
.landing-trust-row{color:#aac0d6}
.landing-trust-row span::first-letter{color:#ff9e3c}
.hero-orbit{border-color:rgba(151,207,255,.19)}
.orbit-two{border-color:rgba(255,172,83,.17)}
.landing-app-preview{border-color:rgba(255,255,255,.62);box-shadow:0 45px 105px rgba(0,13,31,.38),inset 0 1px 0 #fff}
.preview-float{border-color:rgba(255,255,255,.7);box-shadow:0 22px 50px rgba(0,18,42,.27)}

.landing-proof{border-color:rgba(40,91,146,.12);box-shadow:0 24px 70px rgba(21,61,105,.16)}
.landing-proof b{color:#155fae}
.landing-product .landing-section-heading>span,.landing-method .landing-section-heading>span{color:#e97f25}
.product-flow article{transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease}
.product-flow article:hover{transform:translateY(-6px);border-color:#d2e3f4;box-shadow:0 25px 62px rgba(28,70,118,.12)}

.method-list{grid-template-columns:repeat(4,1fr);gap:16px;position:relative}
.method-list:before{content:"";position:absolute;left:8%;right:8%;top:30px;height:1px;background:linear-gradient(90deg,transparent,#d4e5f5 8%,#d4e5f5 92%,transparent)}
.method-list article{position:relative;z-index:1;display:block;min-height:250px;padding:24px 22px;border-radius:20px;background:linear-gradient(150deg,#fff,#fbfdff)}
.method-number{position:relative;width:60px;height:60px;margin-bottom:22px;border-radius:18px;color:#2d7fd7;background:linear-gradient(145deg,#eef7ff,#e1effd);box-shadow:0 12px 25px rgba(45,126,213,.12),inset 0 0 0 1px rgba(55,131,216,.06)}
.method-number svg{width:29px;height:29px;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.method-number .icon-soft{fill:rgba(49,132,222,.09)}
.method-number .icon-accent{stroke:#ee8a31}
.method-number b{position:absolute;right:-7px;bottom:-6px;min-width:25px;height:25px;padding:0 4px;display:grid;place-items:center;border:3px solid #fff;border-radius:50%;color:#fff;background:#1e6fc8;font-size:8px;box-shadow:0 5px 12px rgba(27,105,191,.2)}
.method-list article:nth-child(even) .method-number{color:#d97826;background:linear-gradient(145deg,#fff5eb,#ffead5)}
.method-list article:nth-child(even) .method-number b{background:#e17c28}
.method-list article:nth-child(even) .method-number .icon-accent{stroke:#2d80d8}
.method-list h3{font-size:16px;line-height:1.45}
.method-list p{font-size:11px}

@keyframes landingRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes previewFloat{0%,100%{transform:rotate(-1.5deg) translateY(0)}50%{transform:rotate(-.7deg) translateY(-8px)}}
@keyframes badgeFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes orbitDrift{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes curveDraw{from{stroke-dashoffset:1200}to{stroke-dashoffset:0}}
.landing-hero-copy{animation:landingRise .7s ease both}
.landing-app-preview{animation:previewFloat 6s ease-in-out infinite}
.float-retention{animation:badgeFloat 4.5s ease-in-out infinite}
.float-streak{animation:badgeFloat 4.5s 1.1s ease-in-out infinite}
.orbit-two{animation:orbitDrift 34s linear infinite}
.curve-main{stroke-dasharray:1200;stroke-dashoffset:1200;animation:curveDraw 2.2s .35s ease forwards}

@media(max-width:980px){
  .landing-hero{min-height:auto}
  .method-list{grid-template-columns:1fr 1fr}
  .method-list:before{display:none}
  .method-list article{min-height:220px}
}
@media(max-width:620px){
  .landing-header .product-logo-mark{filter:drop-shadow(0 4px 9px rgba(0,0,0,.18))}
  .landing-hero{padding-top:54px}
  .landing-hero:before{right:-52%;top:19%}
  .landing-hero h1 em{display:inline-block}
  .method-list{grid-template-columns:1fr}
  .method-list article{min-height:0;padding:20px}
  .method-number{width:55px;height:55px;margin-bottom:17px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .landing-hero-copy,.landing-app-preview,.preview-float,.orbit-two,.curve-main{animation:none!important}
  .curve-main{stroke-dashoffset:0}
}

/* ===== V11.7.1 vocabulary library showcase ===== */
.landing-books{
  max-width:none;
  padding-left:max(28px,calc((100vw - 1184px)/2));
  padding-right:max(28px,calc((100vw - 1184px)/2));
  display:grid;
  grid-template-columns:minmax(330px,.78fr) minmax(570px,1.22fr);
  align-items:center;
  gap:76px;
  position:relative;
  background:
    radial-gradient(circle at 88% 15%,rgba(55,144,237,.1),transparent 25%),
    linear-gradient(180deg,#f7fbff 0%,#fff 100%);
  border-top:1px solid #edf3f8;
  overflow:hidden;
}
.landing-books:before{content:"";position:absolute;width:360px;height:360px;left:-190px;bottom:-220px;border:55px solid rgba(255,141,41,.055);border-radius:50%}
.landing-books .landing-section-heading{position:relative;z-index:1}
.landing-books .landing-section-heading>span{color:#e97f25}
.book-library-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:31px 0 25px}
.book-library-stats>div{padding:16px 12px;border:1px solid #e1eaf3;border-radius:15px;background:rgba(255,255,255,.82);box-shadow:0 10px 28px rgba(31,74,120,.055)}
.book-library-stats b{display:block;color:#185da8;font-size:25px;line-height:1;letter-spacing:-1px}
.book-library-stats b small{font-size:12px}
.book-library-stats span{display:block;margin-top:8px;color:#8495a7;font-size:9px}
.book-category-tags{display:flex;flex-wrap:wrap;gap:8px}
.book-category-tags span{padding:7px 10px;border:1px solid #e2ebf4;border-radius:99px;color:#5d7690;background:#fff;font-size:9px;font-weight:750}
.book-category-tags .more{color:#e37c26;border-color:#f5dbc4;background:#fff8f1}
.book-library-action{display:inline-flex;align-items:center;gap:23px;margin-top:28px;padding:0;border:0;color:#1f6fc5;background:transparent;font:inherit;font-size:12px;font-weight:850;cursor:pointer}
.book-library-action span{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;color:#fff;background:#2278d1;box-shadow:0 7px 16px rgba(34,120,209,.22);transition:.2s ease}
.book-library-action:hover span{transform:translateX(4px)}
.featured-book-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;position:relative;z-index:1}
.featured-book{min-width:0;padding:13px 13px 15px;position:relative;border:1px solid #e1e9f2;border-radius:19px;background:rgba(255,255,255,.92);box-shadow:0 16px 42px rgba(31,71,117,.09);transition:transform .24s ease,box-shadow .24s ease}
.featured-book:hover{transform:translateY(-7px);box-shadow:0 25px 58px rgba(26,65,110,.15)}
.book-cover{height:205px;padding:17px 15px;display:flex;flex-direction:column;position:relative;overflow:hidden;border-radius:13px;color:#fff;background:linear-gradient(145deg,#1674d1,#0c478a);box-shadow:0 10px 24px rgba(18,76,136,.19)}
.book-cover:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,rgba(255,255,255,.17),transparent 33%,transparent 70%,rgba(0,0,0,.09))}
.book-cover:after{content:"";position:absolute;width:125px;height:125px;right:-60px;bottom:-55px;border:20px solid rgba(255,255,255,.1);border-radius:50%}
.book-cover i{width:24px;height:4px;margin-bottom:19px;border-radius:99px;background:#ffac54;position:relative;z-index:1}
.book-cover small{position:relative;z-index:1;font-size:6px;font-weight:850;letter-spacing:.17em;opacity:.76}
.book-cover strong{max-width:120px;margin-top:12px;position:relative;z-index:1;font-size:15px;line-height:1.45;letter-spacing:.02em}
.book-cover em{margin-top:auto;position:relative;z-index:1;font-style:normal;font-size:6px;font-weight:800;line-height:1.45;letter-spacing:.13em;opacity:.62}
.featured-book.orange .book-cover{background:linear-gradient(145deg,#f6a13e,#e86618)}
.featured-book.navy .book-cover{background:linear-gradient(145deg,#152e59,#07172f)}
.featured-book.cyan .book-cover{background:linear-gradient(145deg,#1e9ec5,#116384)}
.featured-book.green .book-cover{background:linear-gradient(145deg,#36a575,#176146)}
.featured-book.violet .book-cover{background:linear-gradient(145deg,#7668cf,#3e318d)}
.book-card-copy{padding:13px 3px 0}
.book-card-copy b{display:block;overflow:hidden;color:#2b4969;font-size:10.5px;line-height:1.45;white-space:nowrap;text-overflow:ellipsis}
.book-card-copy span{display:block;margin-top:5px;color:#95a3b2;font-size:8px}
.book-rank{position:absolute;right:15px;bottom:14px;color:#d5dee8;font-size:8px;font-weight:850}

@media(max-width:980px){
  .landing-books{grid-template-columns:1fr;gap:48px;padding-left:28px;padding-right:28px}
  .book-library-copy{text-align:center}
  .book-library-stats{max-width:560px;margin-left:auto;margin-right:auto}
  .book-category-tags{justify-content:center}
}
@media(max-width:620px){
  .landing-books{padding-left:17px;padding-right:17px;gap:38px}
  .book-library-stats{gap:7px}
  .book-library-stats>div{padding:14px 7px}
  .book-library-stats b{font-size:20px}
  .featured-book-grid{grid-template-columns:1fr 1fr;gap:10px}
  .featured-book{padding:9px;border-radius:15px}
  .book-cover{height:180px;padding:15px 12px}
  .book-cover strong{font-size:13px}
  .book-rank{display:none}
}

/* ===== V11.7.2 simpler landing and stable mobile banner ===== */
.hero-brand-loop{display:none}
.orbit-two,.float-streak{display:none}
.landing-hero{gap:58px}
.landing-app-preview{animation:none;transform:rotate(-.7deg)}
.landing-section{padding-top:90px;padding-bottom:90px}
.landing-product{padding-top:105px}

@media(max-width:980px){
  .landing-hero{gap:34px;padding-top:50px;padding-bottom:72px}
  .landing-hero-visual{width:min(620px,100%);margin:0 auto}
  .landing-app-preview{transform:none}
}

@media(max-width:620px){
  .landing-header{height:62px;padding:0 12px;gap:8px}
  .landing-brand .product-logo{gap:6px}
  .landing-brand .product-logo-mark{width:34px;height:34px}
  .landing-brand .product-logo-name{font-size:15px;letter-spacing:-1px}
  .landing-text-btn{padding:8px 7px}
  .landing-primary-btn.compact{min-height:35px;padding:0 10px;border-radius:9px}

  .landing-hero{
    display:block;
    min-height:0;
    padding:36px 16px 38px;
    background:linear-gradient(145deg,#06182c 0%,#0a3158 62%,#0b4778 100%);
  }
  .landing-hero:before,.landing-hero:after,.hero-orbit,.preview-float{display:none}
  .landing-hero-copy{text-align:left}
  .landing-kicker{margin:0;padding:0;border:0;background:transparent;box-shadow:none;font-size:10px}
  .landing-hero h1{margin:17px 0 14px;font-size:33px;line-height:1.2;letter-spacing:-1.5px}
  .landing-hero-copy>p{margin:0;color:#b8cade;font-size:12.5px;line-height:1.75}
  .landing-hero-actions{display:block;margin-top:22px}
  .landing-hero-actions .landing-primary-btn{width:100%;min-height:48px;border-radius:12px}
  .landing-secondary-btn,.landing-trust-row{display:none}

  .landing-hero-visual{width:100%;min-height:0;margin-top:28px;display:block}
  .landing-app-preview{
    width:100%;min-height:0;padding:14px 14px 16px;
    border-radius:19px;transform:none;
    box-shadow:0 22px 48px rgba(0,12,28,.28);
  }
  .preview-progress{margin-top:10px}
  .preview-phase{margin-top:22px;font-size:8px}
  .preview-word{margin-top:7px;font-size:34px}
  .preview-meaning{margin-top:13px;font-size:13px}
  .preview-example{display:none}
  .preview-ratings{gap:5px;margin-top:18px}
  .preview-ratings span{padding:8px 2px;border-radius:8px;font-size:8px}
  .preview-ratings small{font-size:7px}

  .landing-proof{
    margin:0;padding:19px 16px;
    grid-template-columns:1fr 1fr;gap:17px 10px;
    border-width:0 0 1px;border-radius:0;
    background:#fff;box-shadow:none;backdrop-filter:none;
  }
  .landing-proof>div{display:flex;justify-content:center;gap:8px;text-align:left}
  .landing-proof b{font-size:20px}
  .landing-proof span{font-size:8px}

  .landing-section{padding-top:68px;padding-bottom:68px}
  .landing-product{padding-top:68px}
  .landing-section-heading h2{font-size:28px}
  .product-flow{gap:10px;margin-top:36px}
  .flow-arrow{display:none}
  .product-flow article{padding:21px;box-shadow:0 10px 28px rgba(36,77,124,.06)}
}

@media(max-width:380px){
  .landing-brand .product-logo-copy{display:none}
  .landing-header{padding-left:14px;padding-right:10px}
  .landing-hero h1{font-size:30px}
}
