:root{
  --orange:#FF9F43; --green:#2ED573; --blue:#54A0FF;
  --pink:#FF6B9D; --purple:#A55EEA; --cream:#FFF8E7;
  --bg1:#FFEAA7; --bg2:#FAB1A0; --text:#333;
  --font-main:'Comic Sans MS','Trebuchet MS',sans-serif;
}

/* ==== 13 ТЕМ: каждая группа из 4 недель = своя гамма ==== */
[data-theme="0"]{ /* 1-4 · тёплый персик */
  --bg1:#FFEAA7; --bg2:#FAB1A0; --text:#8B4513;
  --orange:#FF9F43; --green:#2ED573; --blue:#54A0FF; --pink:#FF6B9D; --purple:#A55EEA; --cream:#FFF8E7;
  --font-main:'Comic Sans MS','Trebuchet MS',sans-serif;
}
[data-theme="1"]{ /* 5-8 · мята */
  --bg1:#E7FBE9; --bg2:#B7EBC8; --text:#145A32;
  --orange:#FFB347; --green:#00B894; --blue:#4BC0C0; --pink:#FF8BA7; --purple:#6C5CE7; --cream:#F2FFF5;
  --font-main:'Trebuchet MS',Verdana,sans-serif;
}
[data-theme="2"]{ /* 9-12 · небесная лазурь */
  --bg1:#DFF0FF; --bg2:#B8D6FF; --text:#1A3A5C;
  --orange:#FF9F43; --green:#2ECC71; --blue:#2E86DE; --pink:#FF6B9D; --purple:#7B5BF2; --cream:#EEF6FF;
  --font-main:'Comic Sans MS','Trebuchet MS',sans-serif;
}
[data-theme="3"]{ /* 13-16 · лаванда */
  --bg1:#EFE7FF; --bg2:#D4C4FF; --text:#3A2E6E;
  --orange:#FFA94D; --green:#51CF66; --blue:#5C7CFA; --pink:#F783AC; --purple:#845EF7; --cream:#F8F4FF;
  --font-main:Verdana,'Trebuchet MS',sans-serif;
}
[data-theme="4"]{ /* 17-20 · розовый коктейль */
  --bg1:#FFE5EF; --bg2:#FFB9D0; --text:#7A1F4D;
  --orange:#FF9F43; --green:#2ED573; --blue:#74B9FF; --pink:#FF4D8D; --purple:#A55EEA; --cream:#FFF0F6;
  --font-main:'Segoe Print','Comic Sans MS',sans-serif;
}
[data-theme="5"]{ /* 21-24 · лимон */
  --bg1:#FFFBDB; --bg2:#FFE36B; --text:#6E5600;
  --orange:#F59F00; --green:#37B24D; --blue:#4DABF7; --pink:#F06595; --purple:#9775FA; --cream:#FFFEEB;
  --font-main:'Comic Sans MS','Trebuchet MS',sans-serif;
}
[data-theme="6"]{ /* 25-28 · аквамарин */
  --bg1:#DFFBF4; --bg2:#9FF0DE; --text:#0E4A44;
  --orange:#FFA502; --green:#1DD1A1; --blue:#00A8FF; --pink:#FF9FF3; --purple:#9B59B6; --cream:#EFFFF9;
  --font-main:'Trebuchet MS',Verdana,sans-serif;
}
[data-theme="7"]{ /* 29-32 · ягодный сорбет */
  --bg1:#FFE3F1; --bg2:#FFC0DB; --text:#6E1F4A;
  --orange:#FF7F50; --green:#38B000; --blue:#4CC9F0; --pink:#F43D8B; --purple:#8338EC; --cream:#FFF0F8;
  --font-main:Bahnschrift,'Segoe Print',sans-serif;
}
[data-theme="8"]{ /* 33-36 · зелёный сад */
  --bg1:#EAF6E8; --bg2:#BFE3B4; --text:#1D4D1D;
  --orange:#FFB347; --green:#2F9E44; --blue:#3FA7D0; --pink:#FF6B9D; --purple:#7048E8; --cream:#F3FBF1;
  --font-main:Verdana,'Trebuchet MS',sans-serif;
}
[data-theme="9"]{ /* 37-40 · океан */
  --bg1:#E0F2FE; --bg2:#A5D8FF; --text:#123F6E;
  --orange:#FF9F43; --green:#12B886; --blue:#1C7ED6; --pink:#FF8787; --purple:#5F3DC4; --cream:#EDF7FF;
  --font-main:'Comic Sans MS','Trebuchet MS',sans-serif;
}
[data-theme="10"]{ /* 41-44 · закат */
  --bg1:#FFF1E0; --bg2:#FFC9A3; --text:#7A3E0A;
  --orange:#F76707; --green:#51CF66; --blue:#4C9AFF; --pink:#FF6B9D; --purple:#9C36B5; --cream:#FFF7EF;
  --font-main:'Trebuchet MS',Verdana,sans-serif;
}
[data-theme="11"]{ /* 45-48 · космос */
  --bg1:#EAE9FF; --bg2:#C7C2FF; --text:#2A2A6E;
  --orange:#FFA94D; --green:#2ED573; --blue:#748FFC; --pink:#F783AC; --purple:#7048E8; --cream:#F4F3FF;
  --font-main:'Segoe Print','Comic Sans MS',sans-serif;
}
[data-theme="12"]{ /* 49-52 · финальная радуга */
  --bg1:#F3E9F7; --bg2:#E2C8EE; --text:#4A2A6E;
  --orange:#FF9F43; --green:#2ED573; --blue:#54A0FF; --pink:#FF6B9D; --purple:#A55EEA; --cream:#FAF5FC;
  --font-main:'Comic Sans MS','Trebuchet MS',sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0;font-family:var(--font-main)}
body{background:linear-gradient(135deg,var(--bg1) 0%,var(--bg2) 100%);min-height:100vh;min-height:100dvh;padding:20px;color:var(--text);overflow-x:hidden}
.container{max-width:900px;margin:0 auto;background:#fff;border-radius:25px;padding:25px;box-shadow:0 10px 30px rgba(0,0,0,.15)}

/* ==== ТАЧ-ОПТИМИЗАЦИИ ==== */
.btn,.week-card,.day-card,.match-item,.option,.speaker-btn,.flashcard,input[type="text"]{
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
#screen-game{-webkit-user-select:none;user-select:none}
#screen-game input,.save-indicator{-webkit-user-select:text;user-select:text}
.flashcard-word,.match-item,.option,.trace-word-display,.dictation-input,.day-title{overflow-wrap:break-word;word-break:break-word}
h1{text-align:center;color:var(--purple);font-size:2em;margin-bottom:10px}
.home-title{display:flex;align-items:center;justify-content:center;gap:8px}
.home-logo{width:1.1em;height:1.1em;border-radius:18%}
.site-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 14px}
.site-title{display:flex;align-items:center;justify-content:center;gap:8px;font-size:1.6em;margin:0;text-align:left}
h2{color:var(--purple)}
.subtitle{text-align:center;color:#666;margin-bottom:20px}
.home-stats{text-align:center;font-size:1em;color:#555;background:var(--cream);border-radius:12px;padding:10px;margin:10px auto;max-width:480px}
.search-row{display:flex;gap:10px;justify-content:center;margin:12px 0;flex-wrap:wrap}
#weekSearch{font-family:inherit;font-size:1.1em;padding:10px 15px;border:3px solid var(--blue);border-radius:30px;width:220px;text-align:center;outline:none}
#weekSearch:focus{border-color:var(--purple)}
#weekSearch.bad{border-color:#ff4757;background:#FFD4D4;animation:shake .3s}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.search-hint{text-align:center;color:#ff4757;font-size:.9em;min-height:1.2em}
.reveal-hint{text-align:center;font-size:.95em;color:#555;background:var(--cream);border-radius:12px;padding:8px 12px;margin:10px auto;max-width:600px}
.progress-bar{background:#eee;border-radius:20px;height:25px;overflow:hidden;margin:15px 0;position:relative}
.progress-fill{background:linear-gradient(90deg,var(--green),var(--blue));height:100%;width:0%;transition:width .5s;border-radius:20px}
.progress-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-weight:bold;color:#333;font-size:.9em}
.stars{text-align:center;font-size:1.5em;margin:10px 0}
.screen{display:none;animation:fadeIn .4s}
.screen.active{display:block}
.gscreen{display:none;animation:fadeIn .4s}
.gscreen.active{display:block}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.btn{background:var(--orange);color:#fff;border:none;padding:12px 25px;border-radius:30px;font-size:1.1em;cursor:pointer;margin:5px;transition:transform .2s;font-family:inherit}
.btn:hover{transform:scale(1.05)}
.btn-green{background:var(--green)}
.btn-blue{background:var(--blue)}
.btn-pink{background:var(--pink)}
.btn-purple{background:var(--purple)}
.btn-skip{background:#E2E8F0;color:#64748B;border:2px dashed #CBD5E1}

/* ==== ГЛАВНАЯ: сетка 52 недель ==== */
.week-grid{display:grid;grid-template-columns:repeat(4,minmax(130px,150px));justify-content:center;gap:12px;margin-top:20px}
.week-card{border:none;border-radius:16px;padding:12px;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.12);display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--text);font-family:inherit;background:linear-gradient(135deg,var(--bg1),var(--bg2));transition:transform .2s}
.week-card:hover{transform:translateY(-4px) scale(1.03)}
.week-num{font-weight:bold;font-size:1.05em}
.week-dots{display:flex;gap:4px}
.dot{width:11px;height:11px;border-radius:50%;background:rgba(255,255,255,.65);border:1px solid rgba(0,0,0,.08)}
.dot.done{background:var(--green)}
.week-badge{font-size:1.15em;min-height:1.2em}
.week-topics{width:100%;min-width:0;display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:1px;margin:2px 0 0;font-size:.72em;line-height:1.35;color:var(--purple)}
.week-topics span{display:block}
.week-topics span::before{content:"•";margin-right:4px}
.week-trophy{text-align:center;font-size:1.4em;margin:5px 0}

/* ==== ЭКРАН НЕДЕЛИ ==== */
.day-list{display:flex;flex-direction:column;gap:12px;max-width:600px;margin:20px auto}
.day-card{background:linear-gradient(135deg,var(--bg1),var(--bg2));border:none;border-radius:18px;padding:16px 20px;text-align:left;color:var(--text);cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.1);display:flex;justify-content:space-between;align-items:center;font-family:inherit;transition:transform .2s}
.day-card:hover{transform:translateY(-3px)}
.day-card.done{border:3px solid var(--green)}
.day-num{font-weight:bold;font-size:1.15em}
.day-title{opacity:.85;font-size:.95em}
.day-theme{font-size:.9em;font-weight:bold;color:var(--purple);margin-top:5px}
.day-status{font-size:.95em;font-weight:bold}

/* ==== ПРИВЕТСТВИЕ/ФИНАЛ: списки слов ==== */
.welcome-list{max-height:50vh;overflow:auto;text-align:left;background:var(--cream);border-radius:15px;padding:10px 16px;margin:15px 0}
.welcome-row{padding:7px 4px;border-bottom:1px dashed rgba(0,0,0,.12);font-size:1.05em}
.welcome-row:last-child{border-bottom:none}
.task-counter{font-size:.9em;color:#666;text-align:center;margin:5px 0}

/* ==== КАРТОЧКИ (Quizlet) ==== */
.flashcard-container{perspective:1000px;margin:20px auto;max-width:500px;height:300px}
.flashcard{width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .6s;cursor:pointer}
.flashcard.flipped{transform:rotateY(180deg)}
.flashcard-face{position:absolute;width:100%;height:100%;backface-visibility:hidden;border-radius:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;box-shadow:0 8px 25px rgba(0,0,0,.15)}
.flashcard-front{background:linear-gradient(135deg,var(--blue),#7EC8FF);color:#fff}
.flashcard-back{background:linear-gradient(135deg,var(--green),#7FFFD4);color:#fff;transform:rotateY(180deg)}
.flashcard-word{font-size:2.5em;font-weight:bold;margin-bottom:15px;text-align:center}
.flashcard-emoji{font-size:4em;margin:10px 0}
.flashcard-hint{font-size:.9em;opacity:.9;margin-top:15px}
.speaker-btn{background:rgba(255,255,255,.3);color:#fff;border:none;border-radius:50%;width:50px;height:50px;font-size:1.5em;cursor:pointer;margin:10px;transition:transform .2s}
.speaker-btn:hover{transform:scale(1.1)}

/* ==== ПРОПИСИ ==== */
.trace-wrapper{background:var(--cream);border:3px dashed var(--orange);border-radius:20px;padding:20px;margin:15px 0}
.trace-word-display{font-size:2em;color:var(--purple);font-weight:bold;text-align:center;margin-bottom:10px;word-break:break-word}
.trace-word-display.long-phrase{font-size:1.5em;display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
canvas{border:3px solid var(--purple);border-radius:15px;background:#fff;cursor:crosshair;display:block;margin:15px auto;touch-action:none;max-width:100%}
.canvas-controls{text-align:center;margin:10px 0}

/* ==== ДИКТАНТ ==== */
.dictation-input{font-size:1.5em;padding:15px;border:3px solid var(--blue);border-radius:15px;width:100%;max-width:400px;text-align:center;margin:15px 0;font-family:inherit}
.dictation-input.correct{border-color:var(--green);background:#D4F5D4}
.dictation-input.wrong{border-color:#ff4757;background:#FFD4D4}

/* ==== СОПОСТАВЛЕНИЕ ==== */
.match-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:500px;margin:0 auto}
.match-item{background:#fff;border:3px solid #ddd;border-radius:12px;padding:12px;text-align:center;cursor:pointer;font-size:1.05em;transition:all .2s;font-family:inherit}
.match-item:hover{transform:translateY(-2px)}
.match-item.selected{border-color:var(--blue);background:#E8F4FF}
.match-item.matched{background:#D4F5D4;border-color:var(--green);opacity:.6;pointer-events:none}

.options{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:20px 0}
.option{background:#fff;border:3px solid #ddd;border-radius:15px;padding:15px;cursor:pointer;text-align:center;transition:all .2s;font-size:1.1em}
.option:hover{border-color:var(--blue);transform:translateY(-3px)}
.option.correct{background:#D4F5D4;border-color:var(--green);animation:bounce .5s}
.option.wrong{background:#FFD4D4;border-color:#ff4757}
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

.feedback{text-align:center;font-size:1.3em;margin:15px 0;min-height:40px}
.feedback.good{color:var(--green)}
.feedback.bad{color:#ff4757}
.badge{font-size:5em;text-align:center;animation:spin 1s}
@keyframes spin{from{transform:rotate(0) scale(0)}to{transform:rotate(360deg) scale(1)}}
.nav{text-align:center;margin-top:20px}
.hint{background:#FFF3CD;border-left:4px solid var(--orange);padding:10px 15px;border-radius:8px;margin:10px 0;font-size:.95em}

/* SVG-анимации */
.svg-icon{width:80px;height:80px;margin:10px auto;display:block}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.float-anim{animation:float 2s ease-in-out infinite}
@keyframes bounce-svg{0%,100%{transform:scale(1)}50%{transform:scale(1.1)}}
.bounce-anim{animation:bounce-svg 1s ease-in-out infinite}

/* Сохранение */
.save-indicator{position:fixed;top:10px;right:10px;background:var(--green);color:#fff;padding:8px 15px;border-radius:20px;font-size:.9em;opacity:0;transition:opacity .3s;z-index:99}
.save-indicator.show{opacity:1}

/* ==== АВТОРИЗАЦИЯ ==== */
.auth-bar{display:flex;justify-content:flex-end;align-items:center;gap:10px;flex-wrap:wrap;min-height:42px}
.auth-email{font-weight:bold;font-size:.95em}
.auth-access{font-size:.85em;padding:3px 10px;border-radius:20px;font-weight:bold}
.auth-access-full{background:#D4F5D4;color:#186A3B}
.auth-access-denied{background:#FFD4D4;color:#922B21}
.btn-small{padding:8px 16px;font-size:.95em}
.auth-form{max-width:420px;margin:10px auto;background:var(--cream);border-radius:18px;padding:22px}
.auth-label{display:block;font-size:.9em;color:#555;margin:10px 0 4px}
.auth-input{font-family:inherit;font-size:1.1em;padding:12px 14px;border:3px solid #d5dbe3;border-radius:14px;width:100%;outline:none;background:#fff}
.auth-input:focus{border-color:var(--blue)}
.auth-msg{text-align:center;font-size:.95em;color:#ff4757;min-height:1.4em;margin:8px 0}
.auth-note{font-size:.85em;color:#777;text-align:center;margin-top:12px;line-height:1.5}
.week-card.locked{opacity:.65;filter:grayscale(.35);cursor:not-allowed}
.week-card.locked:hover{transform:none}
.reveal-ok{background:#D4F5D4}
.reveal-denied{background:#FFD4D4;border:1px solid #F5A8A8}
.admin-link{color:inherit;opacity:.85}
.admin-link:hover{opacity:1;text-decoration:underline}

/* Подвал */
.site-footer{margin-top:16px;text-align:center;color:#9AA5B1;font-size:.8em;line-height:1.5;padding:10px 8px}
.site-footer p{margin:2px 0}

/* ==== МОБИЛЬНАЯ АДАПТАЦИЯ ==== */
@media (max-width:640px){
  body{padding:8px 8px calc(8px + env(safe-area-inset-bottom))}
  .container{padding:14px;border-radius:18px}
  h1{font-size:1.35em;margin-bottom:8px}
  .subtitle{font-size:.9em;margin-bottom:14px}
  .home-stats{font-size:.85em;padding:8px;max-width:100%}

  /* сетка недель */
  .week-grid{grid-template-columns:repeat(2,minmax(94px,110px));justify-content:center;gap:8px;margin-top:14px}
  .week-card{padding:9px 6px;border-radius:13px}
  .week-num{font-size:.9em}
  .dot{width:8px;height:8px}

  /* дни недели */
  .day-list{gap:9px}
  .day-card{padding:13px 12px;border-radius:15px}
  .day-num{font-size:1.05em}

  /* кнопки: крупные, на всю ширину в рядах навигации */
  .btn{padding:14px 12px;font-size:1.05em;margin:4px 0}
  .nav{display:flex;flex-direction:column;gap:2px}
  .nav .btn,.canvas-controls .btn{width:100%}
  .nav .btn-skip{background:#F1F5F9}
  .btn[onclick="prevCard()"],.btn[onclick="nextCard()"]{width:auto;padding:12px 18px}

  /* карточки */
  .flashcard-container{height:270px;max-width:100%}
  .flashcard-word{font-size:2em}
  .flashcard-emoji{font-size:3.2em}

  /* прописи */
  .trace-wrapper{padding:14px;margin:12px 0}
  .trace-word-display{font-size:1.5em}
  canvas{border-radius:12px;margin:10px auto}

  /* диктант */
  .dictation-input{font-size:1.2em;padding:12px;max-width:100%}

  /* сопоставление */
  .match-grid{gap:8px;max-width:100%}
  .match-item{padding:10px 6px;font-size:.95em;border-radius:10px}

  .badge{font-size:4em}
  .save-indicator{top:6px;right:6px;padding:6px 12px;font-size:.8em}
  .site-header{flex-direction:column;align-items:center;margin-bottom:10px}
  .auth-bar{justify-content:center}
}
