:root{
  --bg:#0d0b1a; --card:#17142c; --txt:#e7e3ff; --muted:#b6b0d9;
  --a1:#7a3cff; --a2:#ff3cdd; --succ:#2ecc71; --danger:#ff4d5f; --ghost:#2b2747;
}
*{box-sizing:border-box}
html,body{height:100%; overscroll-behavior: none; touch-action: manipulation;}
body{
  margin:0; color:var(--txt);
  font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial;
  /* ЕДИНЫЙ ФОН БЕЗ ПОВТОРОВ */
  background: linear-gradient(180deg,#201a3f 0%, #0a0817 100%);
  min-height:100%;
  padding-top:calc(var(--safe-area-top, 0px) + var(--extra-top, 0px));
  padding-bottom:calc(var(--safe-area-bottom, env(safe-area-inset-bottom)));
  overflow:hidden; /* глобальную прокрутку отключаем — только внутри #app */
}
/* Телеграм верхняя панель (Close) — подкраска в цвет темы, где возможно */
.tgme_action_bar, .tgme_header, .header, .topbar{ background: linear-gradient(180deg,#201a3f 0%, #0a0817 100%) !important; }
#app{min-height:calc(var(--vh, 100vh)); height:calc(var(--vh, 100vh)); overflow:auto; -webkit-overflow-scrolling:touch; padding-bottom:calc(var(--safe-area-bottom, env(safe-area-inset-bottom)))}

/* Header */
.app-header{padding:16px 16px 8px;background:transparent}
.brand{display:flex;align-items:center;gap:16px;margin-bottom:10px}
.logo{font-weight:900;letter-spacing:.5px;background:linear-gradient(135deg,var(--a1),var(--a2));-webkit-background-clip:text;background-clip:text;color:transparent;font-size:28px}
.tagline{color:var(--muted);font-size:16px}

/* Tabs */
.tabs{display:flex;gap:5px;overflow:auto;padding-bottom:4px}
.tab-btn{border:0;padding:12px 16px;border-radius:4px;background:#2a2552;color:#fff;white-space:nowrap;cursor:pointer}
.tab-btn.active{background:linear-gradient(135deg,var(--a1),var(--a2))}
/* Small variant for compact tab buttons (e.g., days) */
.tab-btn.small{padding:6px 8px;border-radius:4px;font-size:14px;min-width:36px;text-align:center}
.day-btn.small{padding:6px 8px;border-radius:8px;font-size:14px;min-width:36px;text-align:center;background:#2a2552;color:#fff;border:0;cursor:pointer}
/* Active state for day buttons */
.day-btn.small.active{background:linear-gradient(135deg,var(--a1),var(--a2));color:#fff;box-shadow:0 6px 18px rgba(0,0,0,.25)}
main{padding:0 16px 24px}.tab{display:none}.tab.active{display:block}

/* Toolbar (категории + поиск) */
.toolbar{display:grid;grid-template-columns:160px 1fr;gap:10px;margin:12px 0}
.input{background:#1f1a3d;color:#fff;border:0;padding:12px 10px;border-radius:12px;width:100%}
.category-filter select,#progressCategory,#matchCategory,#filterCategory,#categorySelect{background:#1f1a3d;color:#fff;border:0;padding:10px;border-radius:12px;width:100%;height:42px;line-height:42px}
.search-box input{background:#1f1a3d;color:#fff;border:0;padding:10px;border-radius:12px;width:100%;height:42px;line-height:42px}

/* Cards */
.cards-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.cards-grid::after{content:"";display:block;height:calc(var(--safe-area-bottom, env(safe-area-inset-bottom)) + 120px)}
.card{background:linear-gradient(180deg,#1b1736 0%,#15122c 100%);border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:14px;box-shadow:0 10px 30px rgba(0,0,0,.25)}

/* Buttons: одинаковая высота (включая крестик и «карандаш») */
.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:4px;cursor:pointer;height:40px;padding:0 14px;font-weight:600}
.btn.primary{background:linear-gradient(135deg,var(--a1),var(--a2));color:#fff}
.btn.secondary{background:#2a2552;color:#fff;border:1px solid rgba(255,255,255,.15)}
.btn.ghost{background:#2b2747;color:#fff}
.btn.danger{background:var(--danger);color:#fff}
.btn.icon{width:40px;min-width:40px;padding:0}
.btn.icon-lg{width:48px;min-width:48px;height:48px;border-radius:4px;padding:0;font-size:20px}

/* Active icon state (e.g., envelope subscribed) */
.actions-inline .btn.icon.active{background:linear-gradient(135deg,var(--a1),var(--a2));color:#fff}

/* Word card */
.word-card .title{display:flex;justify-content:space-between;align-items:center;gap:10px}
.word-card{position:relative}
.word-card .progressbar{display:none}
.word-card .actions-row{position:absolute; top:14px; right:16px; margin-top:0}
.actions-inline{display:flex;gap:8px;align-items:center}
.word-card .left{display:flex;align-items:center;gap:10px}
.word-card .en{font-weight:800;font-size:18px;text-transform:capitalize}
.word-card .ru{color:var(--muted);margin-top:4px}
.badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.badge{background:#251e46;color:#cfc7ff;border:1px solid rgba(255,255,255,.12);padding:3px 7px;border-radius:4px;font-size:11px}
.actions-row{display:flex;gap:8px;margin-top:12px;flex-wrap:nowrap;align-items:center}

/* Tiny progress */
.progressbar{width:140px;max-width:40vw;height:8px;background:#231e44;border-radius:999px;overflow:hidden;border:1px solid rgba(255,255,255,.08)}
.progressbar .bar{height:100%;width:0%;background:linear-gradient(90deg,var(--a1),var(--a2))}

/* YouGlish */
.youglish-panel{margin-top:16px;background:linear-gradient(180deg,#1b1736 0%,#15122c 100%);border:1px solid rgba(255,255,255,.06);border-radius:16px;padding:12px}
.yg-header{display:flex;align-items:center;justify-content:space-between}
.yg-embed iframe{width:100%;height:360px;border-radius:12px;background:#000}

/* Modal-style YouGlish (backdrop + modal) */
.modal-backdrop#youglishBackdrop{position:fixed;inset:0;background:rgba(0,0,0,0.6);display:none;align-items:center;justify-content:center;z-index:10000}
.modal-backdrop#youglishBackdrop:not([hidden]){display:flex}
.modal-backdrop#youglishBackdrop .modal{width:min(92vw,900px);max-height:86vh;overflow:auto;padding:12px;border-radius:12px;background:linear-gradient(180deg,#1b1736 0%,#15122c 100%);border:1px solid rgba(255,255,255,.06)}
.modal-backdrop#youglishBackdrop .yg-embed iframe{width:100%;height:60vh;border-radius:8px;background:#000}
.modal-backdrop#youglishBackdrop .yg-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}

/* Visual mask to hide YouGlish promotional block inside embed */
#youglishAdMask{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:120px; /* adjust if needed */
  background:linear-gradient(180deg, rgba(27,23,54,0) 0%, #0f0c24 40%, #0f0c24 100%);
  z-index:1001;
  border-bottom-left-radius:8px;
  border-bottom-right-radius:8px;
}
#youglishModal{position:relative}

/* Specific masks for embedded ad fragments that cannot be removed cross-origin */
#youglishMaskAdNetwork{
  position:absolute;
  right:8px;
  bottom:70px;
  width:160px;
  height:96px;
  background:#0f0c24;
  z-index:1002;
  border-radius:8px;
  opacity:1;
  pointer-events:none;
}
#youglishMaskPwdBy{
  position:absolute;
  right:8px;
  bottom:8px;
  width:140px;
  height:28px;
  background:#0f0c24;
  z-index:1002;
  border-radius:6px;
  opacity:1;
  pointer-events:none;
}

/* Match */
.match-board{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.column{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:16px;padding:12px}
.chips{display:flex;flex-wrap:wrap;gap:8px;min-height:80px}
.chip{user-select:none;padding:10px 12px;border-radius:12px;background:#2a2552;cursor:pointer;border:1px solid rgba(255,255,255,.12)}
.chip.selected{outline:2px solid var(--a2)} .chip.matched{background:#1f7a50;border-color:#44d399}

/* WOD */
.wod{margin:10px 0 18px}
.wod .wod-title{font-weight:800}
.wod .ex{font-size:14px;line-height:1.5;margin:6px 0 0 0;padding-left:18px}
.wod .ex li{margin:8px 0}

/* Forms & Modal */
.form-card h3{margin:0 0 12px}
.form-row{margin:12px 0}
.cat-inline{display:flex;gap:8px;align-items:center}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:9999}
.modal{width:min(92vw,420px);background:linear-gradient(180deg,#1b1736 0%,#15122c 100%);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:16px}
.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}

/* Progress spacing */
#progress .card{margin-top:12px}
#progressSummary{margin-top:12px; margin-bottom:12px}
#progressList{margin-top:12px}

/* Version info */
.version-info{font-size:16px;line-height:1.4;color:var(--txt)}
/*.version-info span{font-weight:400} */

/* App Version: 2025-01-27-1 */

/* Preloader */
.preloader{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#0f0c24 0%,#0a0817 100%)}
.spinner{width:52px;height:52px;border-radius:50%;border:4px solid rgba(255,255,255,.18);border-top-color:#9a6bff;animation:spin .9s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
