/* =====================================================================
   Meditații în stilul de sticlă YeY ("Sticlă mată", paleta "Chihlimbar pe titan").
   Se încarcă după css/yey-glass-tokens.css și css/yey-glass.css.
   app.css stă în stratul "app", deci clasele yg- câștigă mereu; aici sunt doar
   legăturile dintre piesele aplicației și valorile din yey-glass-tokens.css.
   Nicio culoare, umbră sau rotunjire nouă: toate vin din variabilele --yg-.
   ===================================================================== */

/* ---------- 1. Variabilele vechi ale aplicației iau valorile stilului ---------- */
:root,
.yg-glass-dark {
  --paper: var(--yg-inset);
  --surface: var(--yg-card);
  --ink: var(--yg-ink);
  --ink-2: var(--yg-ink-muted);
  --ink-3: var(--yg-ink-faint);
  --line: var(--yg-line);
  --grid: var(--yg-line);
  --grid-soft: var(--yg-inset);
  /* accentul obișnuit e cerneala; aurul rămâne pentru bani */
  --violet: var(--yg-ink);
  --violet-ink: var(--yg-ink);
  --violet-soft: var(--yg-inset);
  --red: var(--yg-danger);
  --red-soft: var(--yg-danger-surface);
  --green: var(--yg-success);
  --green-soft: var(--yg-inset);
  --amber: var(--yg-gold);
  --amber-soft: var(--yg-chip-trust-fill);
  --shadow: var(--yg-shadow-card);
  --r-sm: var(--yg-r-sm);
  --r: var(--yg-r-lg);
  --r-lg: var(--yg-r-xl);
  --font: var(--yg-font);
  --pen: var(--yg-font);
}
/* Pe sticla neagră a ferestrelor: valorile de noapte, oricare ar fi tema (din yey-glass-tokens.css). */
.yg-glass-dark {
  --yg-success: #4CAF7D;
  --yg-danger-surface: #2A1413;
  --yg-on-gold: #0A0A0A;
  --red-soft: var(--yg-danger-surface);
}
/* Pe tema de zi, liniile din interiorul calendarului sunt cele încastrate (cele albe nu se văd pe placă). */
:root[data-theme="light"] .cal { --line: var(--yg-chip-fill); --grid-soft: var(--yg-chip-fill); }

body { background: transparent; font-family: var(--yg-font); color: var(--yg-ink); }
:focus-visible { outline-color: var(--yg-field-focus); }
a { color: var(--yg-ink); }
.muted { color: var(--yg-ink-muted); }

/* ---------- 2. Carcasa: bara de jos și selectorul de sus ---------- */
.main { padding-bottom: calc(var(--yg-tabbar-h) + 2 * var(--yg-tabbar-gap) + env(safe-area-inset-bottom) + var(--yg-s-xl)); }
.tabs.yg-tabbar { padding: 0; border-top: 0; display: flex; }
.topnav { display: none; }
.yg-tab__pill { position: relative; }
.yg-tab .yg-ion { font-size: 24px; }
.yg-tab .yg-count { right: -6px; bottom: auto; top: -4px; }
@media (min-width: 700px) {
  .tabs.yg-tabbar { display: none; }
  .main { padding-bottom: var(--yg-s-xxxl); }
  .topnav.yg-segment { display: inline-flex; border: 0; }
  .topnav.yg-segment > button { flex: none; display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 var(--yg-s-lg); }
  .topnav .yg-ion { font-size: 16px; }
  .topnav .yg-count { position: static; margin-left: 2px; }
}
@media (min-width: 700px) and (max-width: 980px) {
  .topnav .yg-ion { display: none; }
  .topnav.yg-segment > button { padding: 0 var(--yg-s-md); }
}
.theme-seg { display: inline-flex; }
.theme-seg > button { flex: none; display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 var(--yg-s-md); }
.theme-seg .yg-ion { font-size: 15px; }

.save-state:not([data-s='saved']) { background: var(--yg-raised); box-shadow: var(--yg-shadow-card); color: var(--yg-ink); }
.save-state[data-s='saving']::before, .save-state[data-s='dirty']::before { background: var(--yg-ink-faint); }

/* ---------- 3. Titluri ---------- */
.cal-head h1, .month-head h1, .page-title { font-size: var(--yg-display-size); font-weight: var(--yg-display-weight); letter-spacing: var(--yg-display-track); line-height: var(--yg-display-lh); }
.cal-head h1 span, .month-head h1 span { color: var(--yg-ink-faint); font-weight: 500; }
.block h2 { font-size: var(--yg-heading-size); }
.block > p, .group > p.group-sub { color: var(--yg-ink-muted); }
.sec-h, .att-h { color: var(--yg-ink-faint); font-size: var(--yg-micro-size); font-weight: var(--yg-micro-weight); letter-spacing: 1.4px; }

/* ---------- 4. Butoane ---------- */
.btn.yg-btn { height: auto; min-height: var(--yg-button-h); padding: 0 var(--yg-s-lg); white-space: nowrap; }
.btn.yg-btn.sm { min-height: var(--yg-touch); padding: 0 var(--yg-s-md); }
.btn.yg-btn.lg { min-height: var(--yg-field-h); }
.btn.yg-btn.danger { color: var(--yg-danger); }
.btn.yg-btn--ghost { color: var(--yg-ink-control); }
.icon-btn { border: 0; width: var(--yg-touch); height: var(--yg-touch); border-radius: var(--yg-r-md); color: var(--yg-ink); }
.icon-btn.yg-pane:active, .btn.yg-btn:active { transform: scale(var(--yg-press-scale)); opacity: var(--yg-press-opacity); }
.icon-btn.sm { width: var(--yg-touch); height: var(--yg-touch); }
.sheet-head .icon-btn.yg-icon-btn { width: auto; height: auto; margin-left: auto; background: transparent; color: var(--yg-ink); }
.cal-head .nav .btn.sm { height: auto; }
@media (max-width: 440px) {
  .cal-head .icon-btn { width: var(--yg-touch); height: var(--yg-touch); }
  .cal-head .nav .btn.sm { height: auto; padding: 0 var(--yg-s-md); }
}

/* ---------- 5. Cartonașe, liste, rânduri ---------- */
.yg-card { border: 0; }
.cal.yg-card, .ledger.yg-card { padding: 0; }
.empty.yg-card { padding: var(--yg-s-xxl) var(--yg-s-xl); color: var(--yg-ink-muted); }
.list.yg-list { background: none; border: 0; border-radius: 0; overflow: visible; }
.item.yg-row { padding: var(--yg-s-md) var(--yg-s-lg); border-radius: var(--yg-r-row); }
.item + .item { border-top: 0; }
.item .chev { color: var(--yg-ink-faint); }
.item span.sub { color: var(--yg-ink-muted); }
.yg-pane { border: 0; }
.att.yg-pane, .pick.yg-pane, .fri.yg-pane, .inv-row.yg-pane, .cls-pick button.yg-pane, .drop.yg-pane, .msg-preview.yg-pane, .mrow.yg-pane, .banner.yg-pane { border-radius: var(--yg-r-md); color: var(--yg-ink); }
.att.absent { outline: 1px solid var(--yg-danger); outline-offset: -1px; }
.pick:has(input:checked), .fri.on { outline: 1px solid var(--yg-titan); outline-offset: -1px; background-color: transparent; }
.fri.on { color: var(--yg-ink); }
.pick input, .check input, .tx input[type=checkbox], .dm-pick { accent-color: var(--yg-ink); }
.pick small, .fri small { color: var(--yg-ink-faint); }
.banner.yg-pane, .banner.info.yg-pane { color: var(--yg-ink); }
.card-pay.yg-card, .q-card.yg-card { padding: var(--yg-s-md) var(--yg-s-lg); }
.acct-chip.yg-card { padding: var(--yg-s-md); }
.acct-chip[aria-pressed='true'] { outline: 1px solid var(--yg-gold-dim); outline-offset: -1px; box-shadow: inset 0 var(--yg-rim-top-w) 0 var(--yg-plate-rim-top), var(--yg-shadow-card); }
.ledger div + div { border-left: 1px solid var(--yg-line); }
.ledger dt { color: var(--yg-ink-muted); }
.ledger .rest dd { color: var(--yg-danger); }
.ledger dd.yg-money { color: var(--yg-gold); }
.pay .who span, .pay .amt span { color: var(--yg-ink-muted); }
.avatar, .avatar[class*=' k'] { background: var(--yg-inset); box-shadow: inset 0 1px 0 var(--yg-inset-rim); color: var(--yg-ink); }
.meter { background: var(--yg-inset); }
.meter i { background: var(--yg-success); }
.meter.warn i { background: var(--yg-gold); }
.meter.over i { background: var(--yg-danger); }
.kv dt { color: var(--yg-ink-muted); }
details.more { border-top-color: var(--yg-line); }
.menu button:hover, .menu a:hover { background: var(--yg-inset); }
.menu svg { color: var(--yg-ink-muted); }
.menu .danger, .menu .danger svg { color: var(--yg-danger); }
.menu hr { border-top-color: var(--yg-line); }
.tx { border-top-color: var(--yg-line); }
.codes code, .reckey code { background: var(--yg-inset); box-shadow: inset 0 1px 0 var(--yg-inset-rim); color: var(--yg-ink); }
.progress { background: var(--yg-inset); }
.progress i { background: var(--yg-ink); }
.cls-pick button.sim small { color: var(--yg-ink-muted); }

/* ---------- 6. Chipuri ---------- */
.chip.yg-chip, .pill.yg-chip { height: auto; min-height: 26px; border-radius: var(--yg-r-chip); font-size: var(--yg-caption-size); font-weight: 600; letter-spacing: 0; }
.chip.green, .pill.ok { color: var(--yg-success); }
.chip.red, .pill.no { color: var(--yg-danger); }
.chip.amber, .pill.half { color: var(--yg-gold); }
.chip.violet { color: var(--yg-ink); }
.filter.yg-chip { min-height: var(--yg-chip-h); font-size: var(--yg-caption-size); letter-spacing: 0; color: var(--yg-ink-muted); }
.filter.yg-chip--selected { color: var(--yg-ink); }
.vars button.yg-chip { min-height: 26px; color: var(--yg-ink); }
.att .pill { background: var(--yg-inset); }

/* ---------- 7. Formulare ---------- */
.field { gap: var(--yg-s-sm); }
.field > .yg-field__label { color: var(--yg-ink); }
.yg-input, .field .yg-input { height: var(--yg-field-h); font-size: 16px; } /* 16px: pe iPhone, sub atât, Safari mărește pagina la atingere */
.field input[type=date].yg-input { line-height: var(--yg-field-h); }
.field textarea.yg-input { height: auto; }
.mrow .yg-input, .tx select.yg-input { height: var(--yg-touch); }
.field input:focus, .field select:focus, .field textarea:focus, .mrow input:focus { box-shadow: none; border-color: var(--yg-field-focus); }
.field small.err, .phone-hint.err { color: var(--yg-danger); }
/* alegerile dintr-un rând adâncit (Transfer / Numerar, grupa, clasa) */
.seg.yg-segment { border: 0; flex-wrap: nowrap; }
.seg.yg-segment > label { flex: 1; min-width: 0; }
.seg.wrap.yg-segment { flex-wrap: wrap; }
.seg.wrap.yg-segment > label { flex: 1 1 auto; min-width: 54px; }
.seg span { border-radius: 8px; color: var(--yg-ink-muted); font-weight: 600; }
.seg input:checked + span {
  color: var(--yg-ink);
  background: linear-gradient(180deg, var(--yg-plate-top), var(--yg-plate-bottom));
  box-shadow: inset 0 var(--yg-rim-top-w) 0 var(--yg-plate-rim-top), inset 0 -1px 0 var(--yg-plate-rim-bottom);
}
.seg input:disabled + span { opacity: .45; }
.days span { border: 0; background: var(--yg-inset); box-shadow: inset 0 1px 0 var(--yg-inset-rim); color: var(--yg-ink-muted); }
.days input:checked + span { color: var(--yg-ink); background: linear-gradient(180deg, var(--yg-plate-top), var(--yg-plate-bottom)); box-shadow: inset 0 var(--yg-rim-top-w) 0 var(--yg-plate-rim-top), inset 0 -1px 0 var(--yg-plate-rim-bottom); }
.bad, .mrow .bad, .seg.bad, .days.bad { outline-color: var(--yg-field-error) !important; }

/* ---------- 8. Foile: sticlă neagră pe ambele teme, urcă de jos ---------- */
dialog.sheet.yg-sheet {
  top: auto; bottom: 0; left: 0; right: 0; margin: 0; width: 100%; max-width: 100%;
  max-height: 92dvh; padding: 0; overflow: hidden; touch-action: auto; border: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
}
dialog.sheet.yg-sheet::backdrop { background: var(--yg-sheet-scrim); backdrop-filter: none; }
@media (min-width: 720px) {
  dialog.sheet.yg-sheet { left: 50%; right: auto; width: 520px; margin-left: -260px; }
  dialog.sheet.yg-sheet.wide { width: min(860px, calc(100vw - 48px)); margin-left: calc(min(860px, calc(100vw - 48px)) / -2); }
}
@media (prefers-reduced-motion: no-preference) {
  dialog.sheet.yg-sheet[open] { animation: yg-sheet-in var(--yg-t-sheet) var(--yg-ease-enter); }
  @keyframes yg-sheet-in { from { transform: translateY(100%); } }
}
.sheet-inner { max-height: 92dvh; }
.sheet-inner::before { content: ''; flex: none; width: 40px; height: 4px; margin: var(--yg-s-md) auto 0; border-radius: var(--yg-r-pill); background: var(--yg-sheet-handle); }
.sheet-head { padding: var(--yg-s-sm) var(--yg-s-xl) var(--yg-s-sm); }
.sheet-head h2 { font-size: var(--yg-title-size); font-weight: var(--yg-title-weight); letter-spacing: var(--yg-title-track); line-height: var(--yg-title-lh); color: var(--yg-ink); }
.sheet-body { padding: var(--yg-s-sm) var(--yg-s-xl) var(--yg-s-lg); color: var(--yg-ink); }
.sheet-foot { padding: var(--yg-s-md) var(--yg-s-xl) calc(var(--yg-s-lg) + env(safe-area-inset-bottom)); border-top: 1px solid var(--yg-line); }
.sheet-msg { color: var(--yg-danger); background: var(--yg-inset); box-shadow: inset 0 1px 0 var(--yg-inset-rim); border-radius: var(--yg-r-md); }
.sheet-msg.info { color: var(--yg-success); background: var(--yg-inset); }
.sheet-inner > .sheet-msg { margin: 0 var(--yg-s-xl) var(--yg-s-md); }

/* Fereastra de confirmare (în locul celei gri a browserului) */
dialog.yg-dialog:not([open]) { display: none; }
dialog.yg-dialog { inset: auto; left: 50%; top: 50%; margin: 0; max-width: none; max-height: none; }
dialog.yg-dialog::backdrop { background: var(--yg-dialog-scrim); }

/* ---------- 9. Notificarea scurtă: aceeași sticlă neagră ---------- */
.toasts { bottom: calc(var(--yg-tabbar-h) + 2 * var(--yg-tabbar-gap) + 8px + env(safe-area-inset-bottom)); width: min(420px, calc(100vw - 2 * var(--yg-tabbar-gap))); }
@media (min-width: 700px) { .toasts { bottom: calc(var(--yg-s-xl) + env(safe-area-inset-bottom)); } }
.toast {
  background-color: rgba(18, 18, 18, 0.80); border: 1px solid rgba(255, 255, 255, 0.16); border-radius: var(--yg-r-lg);
  box-shadow: var(--yg-shadow-raised); color: var(--yg-glass-ink); padding: var(--yg-s-md) var(--yg-s-lg);
  font: 500 var(--yg-body-size) / var(--yg-body-lh) var(--yg-font);
  animation: yg-toast-in var(--yg-t-appear) var(--yg-ease-enter);
}
@keyframes yg-toast-in { from { opacity: 0; transform: translateY(12px); } }
.toast .yg-toast__icon { color: var(--yg-chip-trust-text); font-size: 20px; }
.toast.err .yg-toast__icon { color: var(--yg-glass-error); }
.toast button { color: var(--yg-glass-ink); text-decoration: underline; text-underline-offset: 3px; min-height: var(--yg-touch); }
/* mesajul nu acoperă pagina: atingerea pe el ajunge la elevii de dedesubt (pe iPad stă peste calendar); se apasă doar Anulează */
.toasts, .toast { pointer-events: none; }
.toast button { pointer-events: auto; }

/* ---------- 10. Calendarul ---------- */
/* clip, nu hidden: rândul cu zilele rămâne lipit sus cât derulezi ziua (hidden ar opri lipirea) */
.cal.yg-card { overflow: clip; }
.cal-strip { top: env(safe-area-inset-top, 0px); }
/* ce se aduce în fața ochilor (scrollIntoView) se oprește sub rândul lipit, nu sub el */
html:has(.cal-strip) { scroll-padding-top: calc(env(safe-area-inset-top, 0px) + 110px); }
/* pe telefonul ținut drept, bara cu taburi stă jos: ce se aduce în fața ochilor se oprește deasupra ei */
@media (max-width: 699px) { html { scroll-padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 100px); } }
.k0, .k7, .k8, .k9, .k10, .k11, .k12 { --c: var(--yg-ink-faint); }
.cal-strip { background: var(--yg-card); -webkit-backdrop-filter: blur(var(--yg-blur-plate)); backdrop-filter: blur(var(--yg-blur-plate)); border-bottom-color: var(--line); }
.cal-strip .wd { color: var(--yg-ink-faint); }
.cal-strip .day { color: var(--yg-ink); }
.cal-strip .today .num { color: var(--yg-danger); }
.cal-strip .sel .num { background: var(--yg-ink); color: var(--yg-page); }
.cal-strip .today.sel .num { background: var(--yg-danger); color: var(--yg-on-gold); }
.cal-strip .dots b { background: var(--yg-ink-faint); }
.cal-strip .day.drop-hover .num { outline-color: var(--yg-ink); }
.cal-allday .axis, .cal-body .axis span { color: var(--yg-ink-faint); }
.cal-allday .col, .cal-body .col { border-left-color: var(--line); }
.cal-allday { border-bottom-color: var(--line); }
.cal-lines i { background: var(--line); }
.cal-body .col.hol { background-color: var(--yg-inset); }
.cal-body .col.drop-hover { background-color: var(--yg-inset); }
.chip-day.yg-chip { display: block; min-height: 0; padding: 5px 8px; font-size: var(--yg-caption-size); letter-spacing: 0; color: var(--yg-ink-muted); }
.chip-day.sim.yg-chip { color: var(--yg-ink); box-shadow: inset 0 1px 0 var(--yg-inset-rim), inset 3px 0 0 var(--yg-titan); }
.chip-day.move.yg-pane { color: var(--yg-ink-muted); border-radius: var(--yg-r-sm); }
.chip-day em { color: var(--yg-danger); }
/* blocurile: plăci de sticlă, cu muchia din stânga */
.ev.yg-pane { border-radius: var(--yg-r-md); color: var(--yg-ink);
  box-shadow: inset 0 var(--yg-rim-top-w) 0 var(--_rim-top), inset 0 -1px 0 var(--_rim-bottom), inset 3px 0 0 var(--c), var(--yg-shadow-button); }
.ev { border-left: 0; padding-left: 10px; }
.ev:hover { box-shadow: inset 0 var(--yg-rim-top-w) 0 var(--_rim-top), inset 0 -1px 0 var(--_rim-bottom), inset 3px 0 0 var(--c), var(--yg-shadow-card); }
.ev.drop-hover { outline: 2px solid var(--yg-ink); outline-offset: -2px; }
.ev-h b { color: var(--yg-ink); }
.ev-m { color: var(--yg-ink-muted); opacity: 1; }
.ev-cls.yg-chip { min-height: 0; padding: 1px 6px; font-size: 10.5px; letter-spacing: 0; background: var(--yg-inset); color: var(--yg-ink-muted); }
.ev-plus { color: var(--yg-ink); }
.ev-plus:hover { background: var(--yg-inset); }
.ev.off.yg-pane { --c: var(--yg-ink-faint); color: var(--yg-ink-faint);
  background: repeating-linear-gradient(135deg, var(--yg-inset) 0 6px, transparent 6px 12px); }
.ev.sim.yg-pane { --c: var(--yg-titan); background-image: repeating-linear-gradient(135deg, transparent 0 10px, var(--yg-inset) 10px 20px), linear-gradient(180deg, var(--_top), var(--_bottom)); }
/* elevii: verde = a plătit, roșu = nu a plătit, aur = o parte, sticlă = nu avea de plătit */
.ev-st { border: 0; border-radius: var(--yg-r-chip); background: var(--yg-inset); box-shadow: inset 0 1px 0 var(--yg-inset-rim); color: var(--yg-ink); font-family: var(--yg-font); font-weight: 600; }
.ev-st.platit { background: var(--yg-success); color: var(--yg-on-gold); box-shadow: none; }
.ev-st.neplatit { background: var(--yg-danger); color: var(--yg-on-gold); box-shadow: none; }
.ev-st.partial { background: var(--yg-gold); color: var(--yg-on-gold); box-shadow: none; }
.abs-b { background: var(--yg-success); color: var(--yg-on-gold); box-shadow: 0 0 0 2px var(--yg-page); font-family: var(--yg-font); }
.abs-b.on { background: var(--yg-danger); }
/* ora de acum: pastila în coloana orelor și o săgeată pe marginea zilei; nimic peste ședințe */
.now { left: -6px; right: auto; width: 0; height: 0; background: none; z-index: 3;
  border-left: 6px solid #E11D48; border-top: 6px solid transparent; border-bottom: 6px solid transparent; transform: translateY(-6px); }
.now::before { display: none; }
.cal-body .axis span.now-pill { right: 3px; top: calc(var(--y) - 11px); z-index: 3; padding: 0 7px; border-radius: 11px;
  font: 800 12px/22px var(--yg-font); color: #FFFFFF; background: #E11D48; font-variant-numeric: tabular-nums;
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.9), 0 6px 14px -4px rgba(225, 29, 72, 0.9); }
.sim-cnt { background: var(--yg-ink); color: var(--yg-page); font-family: var(--yg-font); border-radius: var(--yg-r-sm); }
.sim-cnt.near { background: var(--yg-ink); }
.sim-cnt.full { background: var(--yg-danger); color: var(--yg-on-gold); }
.sim-counter.yg-pane { color: var(--yg-ink); border-radius: var(--yg-r-lg); }
.sim-counter .meter { background: var(--yg-inset); }
.sim-counter .meter i { background: var(--yg-titan); }
.sim-counter.near, .sim-counter.near .meter i { color: var(--yg-ink); }
.sim-counter.full, .sim-counter.over { color: var(--yg-danger); background: linear-gradient(180deg, var(--_top), var(--_bottom)); }
.sim-counter.full .meter i, .sim-counter.over .meter i { background: var(--yg-danger); }
.cal-legend { color: var(--yg-ink-faint); }
.cal-legend .lg.platit { background: var(--yg-success); }
.cal-legend .lg.neplatit { background: var(--yg-danger); }
.cal-legend .lg.nimic { background: var(--yg-inset); border: 0; box-shadow: inset 0 1px 0 var(--yg-inset-rim); }
.drag-ghost { box-shadow: var(--yg-shadow-raised); }

/* ---------- 11. Intrarea ---------- */
.login > form, .login > div { padding: var(--yg-s-xl); border-radius: var(--yg-r-xl); }
.login .err { color: var(--yg-danger); }
.login .mark.face { background: var(--yg-inset); color: var(--yg-ink); }
/* elevul tras: chiar el, ridicat; locul lui rămâne gol printre colegi, care se dau la o parte */
.lift { position: fixed; z-index: 1000; pointer-events: none; box-shadow: 0 18px 38px -8px rgba(10, 14, 30, 0.45); }
.drag-slot { visibility: hidden; }
.ev-list:has(> .drag-slot) > .ev-none { display: none; }

/* ---------- 12. Capul blocului: titlul și numărul de elevi, fiecare pe bula lui de sticlă ---------- */
.ev-h { align-items: center; gap: 6px; padding-right: 0; }
.ev-t.yg-pane { flex: 0 1 auto; min-width: 0; padding: 3px 9px; border-radius: var(--yg-r-chip); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ev-m { flex: 0 1 auto; min-width: 0; }
.ev-add.yg-pane { flex: none; margin-left: auto; display: inline-flex; align-items: center; gap: 4px; min-height: 28px; padding: 0 9px; border: 0; border-radius: var(--yg-r-chip);
  font: 600 var(--yg-caption-size) / 1 var(--yg-font); color: var(--yg-ink); cursor: pointer; white-space: nowrap; font-variant-numeric: tabular-nums;
  transition: transform var(--yg-t-press) var(--yg-ease-enter), opacity var(--yg-t-press) linear; }
.ev-add.yg-pane:active { transform: scale(var(--yg-press-scale)); opacity: var(--yg-press-opacity); }
.ev-add b { font-weight: 700; }
.ev-add i { font-style: normal; font-weight: 700; font-size: 16px; margin-left: 2px; }
.ev-add::after { content: ''; position: absolute; inset: -8px; }
.ev-add { position: relative; }
.cal.narrow .ev-add-w { display: none; }
/* sala de simulare: bula cu numărul se face roșie când sala e plină */
.ev-add.sim-cnt.yg-pane { background: linear-gradient(180deg, var(--_top), var(--_bottom)); color: var(--yg-ink); }
.ev-add.sim-cnt.full.yg-pane { background: var(--yg-danger); color: var(--yg-on-gold); box-shadow: none; }
@media (max-width: 699px) {
  .ev-t.yg-pane { padding: 4px 10px; }
  .ev-add.yg-pane { min-height: 32px; padding: 0 11px; font-size: 14px; }
}
/* bula verde cu număr: prezent, dar a mai lipsit în luna asta */
.abs-b.cnt { min-width: 20px; height: 20px; line-height: 20px; border-radius: 10px; top: -9px; right: -9px; font-size: 12px; padding: 0 5px; }
@media (max-width: 699px) { .abs-b.cnt { min-width: 23px; height: 23px; line-height: 23px; border-radius: 12px; font-size: 13px; top: -10px; right: -10px; } }
/* numele automat, scurt, în bula titlului: "Ma, Mi 16.00" */
.ev-h .nm-full { display: none; }
.ev-h .nm-short { display: inline; }
@media (max-width: 440px) {
  .cal-head .nav:has([data-d="0"]) .lbl { display: none; }
  .cal-head .nav:has([data-d="0"]) .btn.primary { padding: 0 var(--yg-s-md); }
}
@media (min-width: 700px) {
  .ev { padding-right: 6px; }
  .ev-h { gap: 4px; }
  .ev-t.yg-pane { padding: 3px 7px; font-size: 12.5px; }
  .ev-cls.yg-chip { padding: 1px 5px; }
  .ev-add.yg-pane { padding: 0 7px; min-height: 26px; font-size: 11.5px; gap: 3px; }
}
/* coloane înguste (iPhone culcat, iPad drept): ziua se vede deasupra, în bulă rămâne ora */
.ev-h .nm-time { display: none; }
.cal.narrow .ev-h .nm-short { display: none; }
.cal.narrow .ev-h .nm-time { display: inline; }

/* ---------- 13. Sticla grupelor de meditații: nuanță albastră (cerută de Daniel, nu din paleta YeY) ---------- */
:root, :root[data-theme="dark"] {
  --med-blue-top: rgba(110, 160, 255, 0.34);
  --med-blue-bottom: rgba(110, 160, 255, 0.13);
  --med-blue-rim-top: rgba(190, 215, 255, 0.55);
  --med-blue-rim-bottom: rgba(150, 190, 255, 0.20);
  --med-blue-edge: #6EA0FF;
}
:root[data-theme="light"] {
  --med-blue-top: rgba(120, 170, 255, 0.42);
  --med-blue-bottom: rgba(90, 140, 240, 0.20);
  --med-blue-rim-top: rgba(255, 255, 255, 0.95);
  --med-blue-rim-bottom: rgba(120, 165, 245, 0.45);
  --med-blue-edge: #2F6FED;
}
.ev.yg-pane:not(.sim):not(.off) {
  --_top: var(--med-blue-top);
  --_bottom: var(--med-blue-bottom);
  --_rim-top: var(--med-blue-rim-top);
  --_rim-bottom: var(--med-blue-rim-bottom);
  --c: var(--med-blue-edge);
}

/* =====================================================================
   14. Mai viu (cerut de Daniel: fără griuri). Fundal cu lumini albastre,
   violet și chihlimbar, sticlă cu tentă de albastru, foi bleumarin,
   culori pe stări și pe elementele alese.
   ===================================================================== */
:root, :root[data-theme="dark"] {
  --viu-blue: #4F8CFF;
  --viu-violet: #8B6CFF;
  --viu-teal: #2CC9A8;
  --viu-blue-soft: rgba(79, 140, 255, 0.22);
  --viu-violet-soft: rgba(139, 108, 255, 0.22);
  --viu-green-soft: rgba(76, 175, 125, 0.22);
  --viu-red-soft: rgba(255, 120, 110, 0.20);
  --viu-amber-soft: rgba(255, 181, 71, 0.20);
  --yg-ground-top: #13204A;
  --yg-ground-mid: #0B1230;
  --yg-ground-bottom: #060918;
  --yg-page: #0B1230;
  --yg-light-honey: rgba(79, 140, 255, 0.30);
  --yg-light-titan: rgba(139, 108, 255, 0.26);
  --yg-light-amber: rgba(255, 181, 71, 0.16);
  --yg-plate-top: rgba(150, 185, 255, 0.16);
  --yg-plate-bottom: rgba(150, 185, 255, 0.05);
  --yg-plate-rim-top: rgba(200, 220, 255, 0.45);
  --yg-plate-rim-bottom: rgba(170, 200, 255, 0.16);
  --yg-inset: rgba(5, 10, 30, 0.35);
  --yg-chip-fill: rgba(5, 10, 30, 0.35);
  --yg-line: rgba(170, 200, 255, 0.16);
  --yg-tab-active-fill: rgba(79, 140, 255, 0.25);
  --yg-bar-base: rgba(10, 16, 40, 0.75);
}
:root[data-theme="light"] {
  --viu-blue: #2F6FED;
  --viu-violet: #6A4BE6;
  --viu-teal: #11977D;
  --viu-blue-soft: rgba(47, 111, 237, 0.14);
  --viu-violet-soft: rgba(106, 75, 230, 0.14);
  --viu-green-soft: rgba(46, 125, 82, 0.14);
  --viu-red-soft: rgba(179, 38, 30, 0.12);
  --viu-amber-soft: rgba(255, 181, 71, 0.30);
  --yg-ground-top: #F2F6FF;
  --yg-ground-mid: #DCE6FA;
  --yg-ground-bottom: #C6D5F3;
  --yg-page: #DCE6FA;
  --yg-light-honey: rgba(120, 170, 255, 0.55);
  --yg-light-titan: rgba(160, 135, 255, 0.40);
  --yg-light-amber: rgba(255, 190, 90, 0.38);
  --yg-plate-top: rgba(255, 255, 255, 0.74);
  --yg-plate-bottom: rgba(236, 243, 255, 0.40);
  --yg-plate-rim-bottom: rgba(170, 195, 245, 0.55);
  --yg-line: rgba(120, 150, 220, 0.22);
  --yg-tab-active-fill: rgba(47, 111, 237, 0.14);
}
:root[data-theme="light"] .cal { --line: rgba(120, 150, 220, 0.20); --grid-soft: rgba(120, 150, 220, 0.10); }

/* foile, ferestrele și notificările: sticlă bleumarin, nu neagră */
dialog.sheet.yg-sheet, dialog.yg-dialog, .toast { background-color: rgba(14, 22, 52, 0.88); border-color: rgba(150, 185, 255, 0.22); }
:root[data-theme="light"] .yg-glass-dark { background-color: rgba(16, 26, 62, 0.88); }
.yg-glass-dark {
  --yg-plate-top: rgba(150, 185, 255, 0.16);
  --yg-plate-bottom: rgba(150, 185, 255, 0.05);
  --yg-plate-rim-top: rgba(200, 220, 255, 0.45);
  --yg-plate-rim-bottom: rgba(170, 200, 255, 0.16);
  --yg-inset: rgba(5, 10, 30, 0.40);
  --yg-chip-fill: rgba(5, 10, 30, 0.40);
  --yg-line: rgba(170, 200, 255, 0.18);
  --viu-blue: #7AA7FF;
  --viu-violet: #A48CFF;
  --viu-blue-soft: rgba(79, 140, 255, 0.26);
  --viu-violet-soft: rgba(139, 108, 255, 0.26);
  --viu-green-soft: rgba(76, 175, 125, 0.24);
  --viu-red-soft: rgba(255, 120, 110, 0.22);
  --viu-amber-soft: rgba(255, 181, 71, 0.22);
}

/* alegerile: albastru */
.seg input:checked + span, .days input:checked + span, .yg-segment > button[aria-selected="true"], .filter.yg-chip--selected {
  background: linear-gradient(180deg, var(--viu-blue), color-mix(in srgb, var(--viu-blue) 78%, #000));
  color: #fff; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35), 0 4px 14px -6px var(--viu-blue);
}
.yg-tab[aria-current="page"] { color: var(--viu-blue); }
.yg-tab[aria-current="page"] .yg-tab__pill { background: var(--viu-blue-soft); }
.cal-strip .sel .num { background: var(--viu-blue); color: #fff; box-shadow: 0 4px 14px -4px var(--viu-blue); }
.cal-strip .wd { color: var(--yg-ink-muted); }
.pick:has(input:checked), .fri.on { outline-color: var(--viu-violet); background-color: var(--viu-violet-soft); }
.acct-chip[aria-pressed='true'] { outline: 2px solid var(--viu-blue); background-color: var(--viu-blue-soft); }
.pick input, .check input, .tx input[type=checkbox], .dm-pick { accent-color: var(--viu-blue); }
:focus-visible { outline-color: var(--viu-blue); }
.yg-input:focus, .field input:focus, .field select:focus, .field textarea:focus { border-color: var(--viu-blue); box-shadow: 0 0 0 3px var(--viu-blue-soft); }

/* stările, pe fond colorat */
.chip.green, .pill.ok, .att .pill { background: var(--viu-green-soft); color: var(--yg-success); }
.chip.red, .pill.no { background: var(--viu-red-soft); color: var(--yg-danger); }
.chip.amber, .pill.half { background: var(--viu-amber-soft); color: var(--yg-gold); }
.chip.violet { background: var(--viu-violet-soft); color: var(--viu-violet); }
.att.absent .pill { background: var(--viu-red-soft); color: var(--yg-danger); }
.ledger div:first-child dd { color: var(--yg-gold); }
.ledger .ok dd, .ledger div:nth-child(2) dd { color: var(--yg-success); }
.ledger .rest dd { color: var(--yg-danger); }
.meter i { background: linear-gradient(90deg, var(--viu-teal), var(--viu-blue)); }

/* inițialele elevilor și clasele: albastru și violet */
.avatar, .avatar[class*=' k'] { background: var(--viu-blue-soft); color: var(--viu-blue); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); }
.item:nth-child(even) .avatar { background: var(--viu-violet-soft); color: var(--viu-violet); }
.ev-cls.yg-chip { background: var(--viu-blue-soft); color: var(--viu-blue); }
.cls-pick button b { color: var(--viu-blue); }
.cls-pick button.sim b { color: var(--viu-violet); }
.cls-pick button.sim small { color: var(--viu-violet); }

/* titlurile secțiunilor, cu o linie colorată */
.block h2::before { content: ''; width: 4px; height: 18px; border-radius: 2px; background: linear-gradient(180deg, var(--viu-blue), var(--viu-violet)); flex: none; }
.sec-h, .att-h { color: var(--viu-blue); }

/* simularea de vineri: sticlă violet */
.ev.sim.yg-pane { --c: var(--viu-violet); --_top: var(--viu-violet-soft); --_bottom: rgba(139, 108, 255, 0.07);
  background-image: repeating-linear-gradient(135deg, transparent 0 10px, rgba(139, 108, 255, 0.08) 10px 20px), linear-gradient(180deg, var(--_top), var(--_bottom)); }
.chip-day.sim.yg-chip { background: var(--viu-violet-soft); color: var(--viu-violet); box-shadow: none; }
.sim-counter.yg-pane { background: linear-gradient(180deg, var(--viu-violet-soft), transparent); }
.sim-counter .meter i { background: linear-gradient(90deg, var(--viu-blue), var(--viu-violet)); }
.ev-add.sim-cnt.yg-pane:not(.full) { color: var(--viu-violet); }

/* bula "5 elevi +": albastră */
.ev-add.yg-pane:not(.sim-cnt) { color: var(--viu-blue); }
.chip-day.move.yg-pane { color: var(--viu-blue); }
.chip-day.hol.yg-chip { background: var(--viu-amber-soft); color: var(--yg-gold); }

/* rândurile din liste: o margine colorată discretă la stânga */
.item.yg-row { box-shadow: inset 0 var(--yg-rim-top-w) 0 var(--yg-plate-rim-top), inset 0 -1px 0 var(--yg-plate-rim-bottom), inset 3px 0 0 var(--viu-blue-soft); }
.pay.yg-card { box-shadow: inset 0 var(--yg-rim-top-w) 0 var(--yg-plate-rim-top), inset 0 -1px 0 var(--yg-plate-rim-bottom), inset 4px 0 0 var(--viu-blue-soft), var(--yg-shadow-card); }
.pay.st-platit.yg-card { box-shadow: inset 0 var(--yg-rim-top-w) 0 var(--yg-plate-rim-top), inset 0 -1px 0 var(--yg-plate-rim-bottom), inset 4px 0 0 var(--yg-success), var(--yg-shadow-card); }
.ev-h .ev-add b { color: inherit; }

/* ---------- 15. Grupele de meditații: sticlă caldă, chihlimbar-cupru, ca să iasă din albastrul din jur ---------- */
:root, :root[data-theme="dark"] {
  --med-top: rgba(255, 150, 50, 0.78);
  --med-bottom: rgba(235, 95, 25, 0.55);
  --med-rim-top: rgba(255, 255, 255, 0.55);
  --med-rim-bottom: rgba(255, 255, 255, 0.18);
  --med-edge: #FFB060;
  --med-pill: rgba(255, 255, 255, 0.18);
  --med-pill-ink: #FFFFFF;
  --viu-paid: #3DBE84;
  --viu-unpaid: #EF4E58;
  --viu-paid-ink: #06140D;
  --viu-unpaid-ink: #FFFFFF;
}
:root[data-theme="light"] {
  --med-top: rgba(255, 170, 80, 0.80);
  --med-bottom: rgba(245, 120, 40, 0.58);
  --med-rim-top: rgba(255, 255, 255, 0.90);
  --med-rim-bottom: rgba(255, 255, 255, 0.35);
  --med-edge: #E06A10;
  --med-pill: rgba(255, 255, 255, 0.62);
  --med-pill-ink: #2A1503;
  --viu-paid: #23935F;
  --viu-unpaid: #D32F2F;
  --viu-paid-ink: #FFFFFF;
  --viu-unpaid-ink: #FFFFFF;
}
.ev.yg-pane:not(.sim):not(.off) {
  --_top: var(--med-top);
  --_bottom: var(--med-bottom);
  --_rim-top: var(--med-rim-top);
  --_rim-bottom: var(--med-rim-bottom);
  --c: var(--med-edge);
}
.ev-st.platit { background: var(--viu-paid); color: var(--viu-paid-ink); }
.ev-st.neplatit { background: var(--viu-unpaid); color: var(--viu-unpaid-ink); }
.cal-legend .lg.platit { background: var(--viu-paid); }
.cal-legend .lg.neplatit { background: var(--viu-unpaid); }
.abs-b { background: var(--viu-paid); color: var(--viu-paid-ink); }
.abs-b.on { background: var(--viu-unpaid); color: var(--viu-unpaid-ink); }

/* bulele din blocul colorat: sticlă albă, text alb (noapte) sau închis (zi) */
.ev:not(.sim):not(.off) .ev-t.yg-pane, .ev:not(.sim):not(.off) .ev-add.yg-pane { background: var(--med-pill); color: var(--med-pill-ink); }
.ev:not(.sim):not(.off) .ev-h b, .ev:not(.sim):not(.off) .ev-m { color: var(--med-pill-ink); }
.ev:not(.sim):not(.off) .ev-cls.yg-chip { background: var(--med-pill); color: var(--med-pill-ink); }
/* simularea: violet viu */
:root[data-theme] { --sim-top: rgba(150, 100, 255, 0.62); --sim-bottom: rgba(110, 60, 230, 0.38); }
:root[data-theme="light"] { --sim-top: rgba(160, 120, 255, 0.62); --sim-bottom: rgba(120, 80, 240, 0.38); }
.ev.sim.yg-pane { --_top: var(--sim-top); --_bottom: var(--sim-bottom); --_rim-top: rgba(255, 255, 255, 0.55); --_rim-bottom: rgba(255, 255, 255, 0.18); --c: #B898FF; }
.ev.sim .ev-t.yg-pane, .ev.sim .ev-add.yg-pane:not(.full) { background: rgba(255, 255, 255, 0.20); color: #FFFFFF; }
.ev.sim .ev-h b, .ev.sim .ev-m { color: #FFFFFF; }

/* =====================================================================
   16. Direcțiile alese în Claude Design: A (noapte: bleumarin și chihlimbar)
       și C (zi). Valorile sunt cele din planșă; secțiunea asta are ultimul cuvânt.
   ===================================================================== */
:root, :root[data-theme="dark"] {
  --d-ink: #F4F6FF;
  --d-muted: rgba(230, 236, 255, 0.70);
  --d-faint: rgba(230, 236, 255, 0.50);
  --d-line: rgba(170, 200, 255, 0.16);
  --d-card: linear-gradient(180deg, rgba(150, 185, 255, 0.16), rgba(150, 185, 255, 0.05));
  --d-rim: inset 0 1.2px 0 rgba(200, 220, 255, 0.45), inset 0 -1px 0 rgba(170, 200, 255, 0.16);
  --d-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
  --d-bar: linear-gradient(180deg, rgba(20, 32, 80, 0.82), rgba(12, 20, 52, 0.82));
  --d-accent: #7AA7FF;
  --d-accent-soft: rgba(79, 140, 255, 0.20);
  --d-sel: #4F8CFF;
  --d-group: linear-gradient(180deg, rgba(255, 165, 65, 0.94), rgba(238, 100, 30, 0.86));
  --d-group-rim: inset 0 1.2px 0 rgba(255, 230, 190, 0.70), inset 0 -1px 0 rgba(255, 255, 255, 0.18), 0 14px 34px -12px rgba(255, 120, 30, 0.65);
  --d-group-ink: #FFFFFF;
  --d-group-pill: rgba(255, 255, 255, 0.22);
  --d-school: linear-gradient(180deg, rgba(80, 145, 255, 0.95), rgba(45, 100, 235, 0.90));
  --d-school-rim: inset 0 1.2px 0 rgba(200, 225, 255, 0.70), inset 0 -1px 0 rgba(255, 255, 255, 0.16), 0 12px 28px -12px rgba(40, 100, 255, 0.65);
  --d-paid: #3DBE84; --d-paid-ink: #05170F;
  --d-unpaid: #EF4E58; --d-unpaid-ink: #FFFFFF;
  --d-none: rgba(255, 255, 255, 0.22); --d-none-ink: #FFFFFF;
  --d-ring: #5A2A10;
  --d-inset: rgba(5, 10, 30, 0.40);
  --d-field: rgba(150, 185, 255, 0.08);
  --d-field-line: rgba(170, 200, 255, 0.20);
  --d-field-top: rgba(200, 220, 255, 0.45);
  --d-due: #FFC56F; --d-got: #4FD99A; --d-left: #FF7A82;
  --yg-ink: var(--d-ink); --yg-ink-muted: var(--d-muted); --yg-ink-faint: var(--d-faint); --yg-line: var(--d-line);
}
:root[data-theme="light"] {
  --d-ink: #101528;
  --d-muted: rgba(16, 21, 40, 0.66);
  --d-faint: rgba(16, 21, 40, 0.50);
  --d-line: rgba(110, 140, 210, 0.22);
  --d-card: linear-gradient(180deg, rgba(255, 255, 255, 0.80), rgba(240, 245, 255, 0.52));
  --d-rim: inset 0 1.2px 0 rgba(255, 255, 255, 1), inset 0 -1px 0 rgba(160, 185, 240, 0.5);
  --d-shadow: 0 12px 40px rgba(40, 60, 120, 0.14);
  --d-bar: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(244, 247, 255, 0.86));
  --d-accent: #2F6FED;
  --d-accent-soft: rgba(47, 111, 237, 0.12);
  --d-sel: #2F6FED;
  --d-group: linear-gradient(180deg, rgba(255, 180, 95, 0.95), rgba(255, 135, 50, 0.88));
  --d-group-rim: inset 0 1.2px 0 rgba(255, 255, 255, 0.95), inset 0 -1px 0 rgba(220, 120, 40, 0.45), 0 14px 30px -14px rgba(230, 110, 20, 0.7);
  --d-group-ink: #2A1503;
  --d-group-pill: rgba(255, 255, 255, 0.55);
  --d-school: linear-gradient(180deg, rgba(85, 145, 250, 0.97), rgba(40, 95, 225, 0.93));
  --d-school-rim: inset 0 1.2px 0 rgba(255, 255, 255, 0.85), inset 0 -1px 0 rgba(30, 80, 200, 0.40), 0 12px 26px -14px rgba(40, 95, 225, 0.7);
  --d-paid: #1F8A58; --d-paid-ink: #FFFFFF;
  --d-unpaid: #D32F2F; --d-unpaid-ink: #FFFFFF;
  --d-none: rgba(255, 255, 255, 0.75); --d-none-ink: #2A1503;
  --d-ring: #FFE2C2;
  --d-inset: rgba(60, 90, 160, 0.10);
  --d-field: rgba(255, 255, 255, 0.70);
  --d-field-line: rgba(110, 140, 210, 0.30);
  --d-field-top: rgba(255, 255, 255, 1);
  --d-due: #B86A00; --d-got: #1F8A58; --d-left: #D32F2F;
  --yg-ink: var(--d-ink); --yg-ink-muted: var(--d-muted); --yg-ink-faint: var(--d-faint); --yg-line: var(--d-line);
}
/* foile rămân bleumarin pe ambele teme (ca în planșa A) */
.yg-glass-dark {
  --d-ink: #F4F6FF; --d-muted: rgba(230, 236, 255, 0.70); --d-faint: rgba(230, 236, 255, 0.50); --d-line: rgba(170, 200, 255, 0.16);
  --d-card: linear-gradient(180deg, rgba(150, 185, 255, 0.16), rgba(150, 185, 255, 0.05));
  --d-rim: inset 0 1.2px 0 rgba(200, 220, 255, 0.45), inset 0 -1px 0 rgba(170, 200, 255, 0.16);
  --d-accent: #7AA7FF; --d-accent-soft: rgba(79, 140, 255, 0.20); --d-sel: #4F8CFF;
  --d-inset: rgba(5, 10, 30, 0.45); --d-field: rgba(150, 185, 255, 0.08); --d-field-line: rgba(170, 200, 255, 0.20); --d-field-top: rgba(200, 220, 255, 0.45);
  --d-paid: #3DBE84; --d-paid-ink: #05170F; --d-unpaid: #EF4E58; --d-unpaid-ink: #FFFFFF;
  --d-due: #FFC56F; --d-got: #4FD99A; --d-left: #FF7A82;
  --yg-ink: var(--d-ink); --yg-ink-muted: var(--d-muted); --yg-ink-faint: var(--d-faint); --yg-line: var(--d-line);
}

/* fundalul */
:root[data-theme] .yg-ground {
  background: radial-gradient(70% 45% at 18% 8%, rgba(79, 140, 255, 0.42), transparent 70%), radial-gradient(60% 40% at 95% 58%, rgba(139, 108, 255, 0.32), transparent 70%), radial-gradient(60% 35% at 8% 96%, rgba(255, 170, 70, 0.20), transparent 70%), linear-gradient(165deg, #16255A, #0B1230 55%, #060918);
}
:root[data-theme="light"] .yg-ground {
  background: radial-gradient(70% 45% at 20% 10%, rgba(120, 170, 255, 0.55), transparent 70%), radial-gradient(60% 40% at 90% 60%, rgba(160, 135, 255, 0.38), transparent 70%), radial-gradient(60% 35% at 10% 95%, rgba(255, 190, 90, 0.38), transparent 70%), linear-gradient(165deg, #F4F7FF, #DCE6FA 55%, #C6D5F3);
}
:root[data-theme="dark"] { --yg-page: #0B1230; }
:root[data-theme="light"] { --yg-page: #DCE6FA; }

/* titluri */
.cal-head h1, .month-head h1, .page-title { font-size: 34px; line-height: 40px; font-weight: 800; letter-spacing: -0.8px; color: var(--d-ink); }
.eyebrow-h small { display: block; font-size: 13px; line-height: 16px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: var(--d-muted); margin-bottom: 2px; }
.eyebrow-h { text-transform: none; }

/* plăcile: cartonașe, rânduri, butoane secundare */
.yg-card, .item.yg-row, .icon-btn.yg-pane, .yg-btn--secondary, .acct-chip.yg-card, .att.yg-pane, .pick.yg-pane, .fri.yg-pane, .inv-row.yg-pane, .cls-pick button.yg-pane, .banner.yg-pane, .drop.yg-pane, .msg-preview.yg-pane, .mrow.yg-pane {
  background: var(--d-card); box-shadow: var(--d-rim); color: var(--d-ink);
}
.yg-card { box-shadow: var(--d-rim), var(--d-shadow); }
.cal.yg-card { border-radius: 22px; }
.icon-btn.yg-pane { border-radius: 14px; width: 44px; height: 44px; }
.item.yg-row { border-radius: 18px; }

/* butoanele principale */
.yg-btn--primary, .btn.yg-btn--primary {
  background: linear-gradient(180deg, #FFC56F, #FF9F3A); color: #2A1503;
  box-shadow: 0 8px 22px -8px rgba(255, 150, 50, 0.85), inset 0 1px 0 rgba(255, 255, 255, 0.6);
  border-radius: 14px; font-weight: 700;
}
.yg-btn--money, .btn.yg-btn--money {
  background: linear-gradient(180deg, #FFD27F, #FFA23F); color: #2A1503; font-weight: 800;
  box-shadow: 0 10px 24px -10px rgba(255, 150, 50, 0.9), inset 0 1px 0 rgba(255, 255, 255, 0.6); border-radius: 14px;
}
.sheet-foot .yg-btn--primary, dialog.yg-dialog .yg-btn--primary {
  background: linear-gradient(180deg, #5B95FF, #3B73E8); color: #FFFFFF;
  box-shadow: 0 10px 24px -10px #4F8CFF, inset 0 1px 0 rgba(255, 255, 255, 0.4);
}
.yg-btn--secondary { border-radius: 14px; }
.btn.yg-btn { min-height: 44px; }
.cal-head .nav .btn.primary { height: 44px; padding: 0 14px; font-size: 15px; }
.btn[data-act="paid"].yg-btn { background: linear-gradient(180deg, #5BE3A6, #34B97C); color: #05170F; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45); border-radius: 10px; }

/* calendarul */
.cal-strip .wd { color: var(--d-muted); font-size: 12px; letter-spacing: 0.8px; }
.cal-strip .num { width: 40px; height: 40px; font-size: 20px; font-weight: 700; }
.cal-strip .sel .num { background: var(--d-sel); color: #FFFFFF; box-shadow: 0 6px 16px -6px var(--d-sel); }
.cal-strip .dots b { background: var(--d-faint); }
.cal-allday .axis, .cal-body .axis span { color: var(--d-faint); }
.cal { --line: var(--d-line); }
:root[data-theme="light"] .cal { --line: var(--d-line); }
.chip-day.move.yg-pane { min-height: 34px; display: flex; align-items: center; border-radius: 10px; padding: 0 12px; font-size: 14px; font-weight: 600; color: var(--d-accent); background: var(--d-accent-soft); box-shadow: none; }
/* blocul grupei: chihlimbar plin, fără margine colorată */
.ev.yg-pane:not(.sim):not(.off) { background: var(--d-group); box-shadow: var(--d-group-rim); color: var(--d-group-ink); border-radius: 18px; }
.ev.yg-pane:not(.sim):not(.off):hover { box-shadow: var(--d-group-rim); filter: brightness(1.04); }
.ev:not(.sim):not(.off) .ev-t.yg-pane, .ev:not(.sim):not(.off) .ev-add.yg-pane, .ev:not(.sim):not(.off) .ev-cls.yg-chip {
  background: var(--d-group-pill); color: var(--d-group-ink); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35); border-radius: 10px;
}
.ev:not(.sim):not(.off) .ev-cls.yg-chip { border-radius: 8px; box-shadow: none; }
.ev:not(.sim):not(.off) .ev-h b, .ev:not(.sim):not(.off) .ev-m { color: var(--d-group-ink); }
.ev-st { height: auto; min-height: 36px; border-radius: 12px; font-weight: 700; }
.ev-st.platit { background: var(--d-paid); color: var(--d-paid-ink); box-shadow: none; }
.ev-st.neplatit { background: var(--d-unpaid); color: var(--d-unpaid-ink); box-shadow: none; }
.ev-st.nimic, .ev-st:not(.platit):not(.neplatit):not(.partial) { background: var(--d-none); color: var(--d-none-ink); box-shadow: none; }
.ev .abs-b { box-shadow: 0 0 0 2.5px var(--d-ring); background: var(--d-paid); color: var(--d-paid-ink); }
.ev .abs-b.on { background: var(--d-unpaid); color: var(--d-unpaid-ink); }
.cal-legend .lg.platit { background: var(--d-paid); }
.cal-legend .lg.neplatit { background: var(--d-unpaid); }
@media (max-width: 699px) {
  .ev-t.yg-pane { padding: 5px 10px; font-size: 16px; }
  .ev-add.yg-pane { min-height: 34px; padding: 0 12px; font-size: 15px; }
  .ev-st { min-height: 40px; font-size: 16px; }
  .ev .abs-b.on, .ev .abs-b.cnt { min-width: 22px; height: 22px; line-height: 22px; border-radius: 11px; top: -9px; right: -9px; font-size: 12.5px; }
}

/* bara de jos */
.tabs.yg-tabbar { height: 68px; border-radius: 22px; left: 12px; right: 12px; bottom: max(14px, env(safe-area-inset-bottom)); background: var(--d-bar); box-shadow: var(--d-rim), var(--d-shadow); }
.yg-tab { color: var(--d-muted); font-size: 11.5px; font-weight: 700; letter-spacing: 0; }
.yg-tab[aria-current="page"] { color: var(--d-accent); }
.yg-tab__pill { width: 58px; height: 32px; border-radius: 11px; }
.yg-tab[aria-current="page"] .yg-tab__pill { background: var(--d-accent-soft); box-shadow: none; }

/* alegerile în rânduri adâncite */
.yg-segment, .seg.yg-segment { background: var(--d-inset); box-shadow: inset 0 1px 0 rgba(170, 200, 255, 0.12); border-radius: 14px; }
.seg input:checked + span, .days input:checked + span, .yg-segment > button[aria-selected="true"], .filter.yg-chip--selected {
  background: linear-gradient(180deg, #5B95FF, #3B73E8); color: #FFFFFF; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35), 0 6px 14px -6px #4F8CFF; border-radius: 10px;
}
.seg span { border-radius: 10px; color: var(--d-muted); font-weight: 700; }
/* prezența: verde / roșu */
.seg input[data-pres][value="1"]:checked + span { background: linear-gradient(180deg, #5BE3A6, #34B97C); color: #05170F; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45); }
.seg input[data-pres][value="0"]:checked + span { background: linear-gradient(180deg, #FF7A82, #E5434D); color: #FFFFFF; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35); }
/* simularea aleasă: violet */
#simf .seg input:checked + span { background: linear-gradient(180deg, #A68BFF, #7C5CF0); color: #FFFFFF; }

/* filtrele din Plăți: un rând adâncit, ca în planșă */
.filters { gap: 6px; padding: 4px; border-radius: 14px; background: var(--d-inset); box-shadow: inset 0 1px 0 rgba(170, 200, 255, 0.12); }
.filter.yg-chip { flex: 1; justify-content: center; min-height: 36px; border-radius: 10px; background: transparent; box-shadow: none; font-size: 13px; font-weight: 700; color: var(--d-muted); }

/* câmpurile */
.yg-input, .field .yg-input {
  height: 48px; border-radius: 12px; background: var(--d-field); color: var(--d-ink);
  border: 1px solid var(--d-field-line); border-top-color: var(--d-field-top);
}
.field > .yg-field__label { font-size: 14px; font-weight: 700; }

/* foile: bleumarin, colț de 28 */
dialog.sheet.yg-sheet { background: linear-gradient(180deg, rgba(26, 40, 92, 0.97), rgba(12, 20, 52, 0.98)); border-radius: 28px 28px 0 0; box-shadow: inset 0 1.2px 0 rgba(200, 220, 255, 0.40), 0 -14px 50px rgba(0, 0, 0, 0.45); border-top: 0; }
dialog.yg-dialog { background: linear-gradient(180deg, rgba(26, 40, 92, 0.97), rgba(12, 20, 52, 0.98)); border-color: rgba(170, 200, 255, 0.22); }
.toast { background: linear-gradient(180deg, rgba(26, 40, 92, 0.96), rgba(12, 20, 52, 0.97)); border-color: rgba(170, 200, 255, 0.22); }
.sheet-inner::before { background: rgba(200, 220, 255, 0.35); }
.sheet-head .icon-btn.yg-icon-btn { width: 44px; height: 44px; border-radius: 14px; background: rgba(150, 185, 255, 0.12); }
.sheet-head h2 { display: flex; align-items: center; gap: 10px; font-size: 22px; font-weight: 800; letter-spacing: -0.3px; }
.sh-av { flex: none; width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; font-size: 15px; font-weight: 800; color: #FFFFFF; background: linear-gradient(180deg, #FFB35C, #F0782A); letter-spacing: 0; }
.sh-t { display: flex; flex-direction: column; min-width: 0; }
.sh-t small { font-size: 13px; font-weight: 500; letter-spacing: 0; color: var(--d-muted); }
.sec-h, .att-h { color: var(--d-accent); font-size: 11.5px; letter-spacing: 1.4px; }
.sheet-foot { border-top-color: var(--d-line); }
/* cartonașul plății din foaia elevului: sticlă caldă */
.card-pay.yg-card { border-radius: 18px; padding: 14px; background: linear-gradient(180deg, rgba(255, 190, 100, 0.20), rgba(255, 150, 60, 0.07)); box-shadow: inset 0 1.2px 0 rgba(255, 220, 170, 0.40), inset 0 -1px 0 rgba(255, 180, 100, 0.16); }
.card-pay #pay-now { width: 100%; min-height: 48px; font-size: 16px; }
.card-pay .pill { border-radius: 8px; }
.pill.no { color: #FF9AA0; background: rgba(239, 78, 88, 0.22); }
.pill.ok { color: #4FD99A; background: rgba(61, 190, 132, 0.20); }

/* Plăți */
.ledger.yg-card { padding: 16px; gap: 10px; border-radius: 22px; }
.ledger > div { padding: 0; border: 0 !important; }
.ledger dt { font-size: 12.5px; color: var(--d-muted); }
.ledger dd { font-size: 25px; font-weight: 800; letter-spacing: -0.6px; }
.ledger div:first-child dd, .ledger dd.yg-money { color: var(--d-due); }
.ledger .ok dd { color: var(--d-got); }
.ledger .rest dd { color: var(--d-left); }
.ledger dd small { color: var(--d-muted); }
.ledger-bar { grid-column: 1 / -1; height: 8px; border-radius: 4px; background: var(--d-inset); overflow: hidden; }
.ledger-bar i { display: block; height: 100%; border-radius: 4px; background: linear-gradient(90deg, #2CC9A8, #4FD99A); }
.actions-bar .btn.yg-btn { min-height: 48px; font-size: 15px; }
.pay.yg-card { border-radius: 18px; padding: 14px 14px 12px 16px; box-shadow: inset 0 1.2px 0 rgba(200, 220, 255, 0.40), inset 0 -1px 0 rgba(170, 200, 255, 0.14), inset 4px 0 0 #FF7A82, var(--d-shadow); }
.pay.st-de_trimis.yg-card { box-shadow: inset 0 1.2px 0 rgba(200, 220, 255, 0.40), inset 0 -1px 0 rgba(170, 200, 255, 0.14), inset 4px 0 0 #FFB25A, var(--d-shadow); }
.pay.st-platit.yg-card { box-shadow: inset 0 1.2px 0 rgba(200, 220, 255, 0.40), inset 0 -1px 0 rgba(170, 200, 255, 0.14), inset 4px 0 0 #3DBE84, var(--d-shadow); }
.pay.st-nimic.yg-card { box-shadow: var(--d-rim), var(--d-shadow); }
.pay .who b { font-size: 17px; }
.pay .amt b { font-size: 19px; font-weight: 800; }
.chip.yg-chip { border-radius: 8px; min-height: 28px; }
.chip.violet { color: var(--d-accent); background: var(--d-accent-soft); }
.filter.yg-chip { padding: 0 6px; font-size: 12.5px; gap: 3px; min-width: 0; }
.filter.yg-chip span { margin-left: 2px; }
/* elevii aerisiți (cerut de Daniel pe 16 oct.): un deget gros nu atinge vecinul sau bula greșită */
.ev-list { gap: 24px 16px; padding-top: 10px; }
@media (min-width: 700px) { .ev-list { gap: 26px 16px; } .ev-st { min-height: 34px; } }
.filter.yg-chip.yg-chip--selected { background: linear-gradient(180deg, #5B95FF, #3B73E8); color: #FFFFFF; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35), 0 6px 14px -6px #4F8CFF; }
/* swipe între zile */
@media (prefers-reduced-motion: no-preference) {
  .cal-body.sw-next { animation: sw-next var(--yg-t-within, 200ms) var(--yg-ease-enter, ease-out); }
  .cal-body.sw-prev { animation: sw-prev var(--yg-t-within, 200ms) var(--yg-ease-enter, ease-out); }
  @keyframes sw-next { from { transform: translateX(40px); opacity: 0.2; } }
  @keyframes sw-prev { from { transform: translateX(-40px); opacity: 0.2; } }
}
.cal-body { touch-action: pan-y pinch-zoom; }

/* ---------- 17. Numărul de elevi din grupă: mare și la vedere ---------- */
.ev:not(.sim):not(.off) .ev-add.yg-pane {
  background: #FFFFFF; color: #0B1230;
  box-shadow: 0 6px 16px -6px rgba(11, 18, 48, 0.55), inset 0 -1px 0 rgba(11, 18, 48, 0.08);
}
.ev .ev-add b { font-size: 21px; font-weight: 800; letter-spacing: -0.4px; line-height: 1; }
.ev:not(.sim):not(.off) .ev-h .ev-add b { color: #2F6FED; }
.ev:not(.sim):not(.off) .ev-add i { color: #2F6FED; font-size: 18px; }
.ev.sim .ev-add.yg-pane:not(.full) { background: #FFFFFF; color: #3B1E8C; }
.ev.sim .ev-h .ev-add:not(.full) b { color: #7C5CF0; }
.ev-add.yg-pane { min-height: 36px; }
@media (min-width: 700px) {
  .ev .ev-add b { font-size: 17px; }
  .ev-add.yg-pane { min-height: 30px; }
}
/* contactul cu părintele, pe WhatsApp */
.btn.wa-contact.yg-btn { display: flex; width: 100%; min-height: 48px; margin: 0 0 14px; border-radius: 14px; font-size: 15px; font-weight: 700; color: #FFFFFF;
  background: linear-gradient(180deg, #2EDB72, #1DA851); box-shadow: 0 10px 24px -10px rgba(37, 211, 102, 0.8), inset 0 1px 0 rgba(255, 255, 255, 0.4); text-decoration: none; white-space: normal; text-align: center; }
.btn.wa-contact svg { width: 20px; height: 20px; flex: none; }
/* fișa elevului: părintele și elevul, pe același rând */
.wa-pair { display: flex; gap: 10px; margin: 0 0 14px; }
.wa-pair .btn.wa-contact.yg-btn, .wa-pair .btn.wa-contact { flex: 1 1 0; width: auto; min-width: 0; margin: 0; gap: 8px; font-size: 16px; }

/* ---------- 18. Cei care plătesc numerar: contur albastru pe dreptunghi, numele rămâne alb ---------- */
:root[data-theme] { --cash-blue: #1F5FFF; }
/* în liste (Plăți, Elevi): numele are același contur albastru */
.name-cash { display: inline-block; padding: 2px 10px; margin: 0 0 2px -2px; border-radius: 8px; font-weight: 800; color: inherit !important;
  box-shadow: inset 0 0 0 2px var(--cash-blue), inset 0 0 0 3px rgba(255, 255, 255, 0.55); }

/* fără bara de derulare la vedere (se derulează la fel, doar nu se mai vede) */
html, body, * { scrollbar-width: none; }
html::-webkit-scrollbar, body::-webkit-scrollbar, *::-webkit-scrollbar { display: none; width: 0; height: 0; }
.cal-allday, .cal-body { overflow: hidden; }

/* ---------- 19. Elevii din blocuri: dreptunghiuri de STICLĂ, scris alb ----------
   transparentă = nu avea nimic de plată luna trecută; verde = a plătit; roșie = nu a plătit; aurie = o parte.
   Numerar: contur albastru, scrisul rămâne alb. */
.ev .ev-st, .ev .ev-st.cash, .ev .ev-st.platit, .ev .ev-st.neplatit, .ev .ev-st.partial {
  border: 0; color: #FFFFFF !important; font-weight: 800; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.26), rgba(255, 255, 255, 0.08)), linear-gradient(rgba(70, 25, 0, 0.30), rgba(70, 25, 0, 0.30)) !important;
  box-shadow: inset 0 1.2px 0 rgba(255, 255, 255, 0.6), inset 0 -1px 0 rgba(255, 255, 255, 0.14), 0 6px 14px -8px rgba(0, 0, 0, 0.5) !important;
  -webkit-backdrop-filter: blur(12px) saturate(160%); backdrop-filter: blur(12px) saturate(160%);
}
.ev .ev-st.platit { background: linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0) 60%), linear-gradient(rgba(18, 196, 128, 0.80), rgba(6, 142, 92, 0.78)) !important; }
.ev .ev-st.neplatit { background: linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0) 60%), linear-gradient(rgba(245, 70, 95, 0.80), rgba(190, 25, 55, 0.78)) !important; }
.ev .ev-st.partial { background: linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0) 60%), linear-gradient(rgba(240, 180, 40, 0.80), rgba(190, 120, 0, 0.78)) !important; }
.ev .ev-st.cash, .ev .ev-st.cash.platit, .ev .ev-st.cash.neplatit, .ev .ev-st.cash.partial {
  box-shadow: inset 0 0 0 3px var(--cash-blue), inset 0 0 0 4px rgba(255, 255, 255, 0.7), 0 6px 14px -8px rgba(0, 0, 0, 0.5) !important;
}
/* simularea (bloc violet): aceeași sticlă */
.ev.sim .ev-st:not(.cash) { box-shadow: inset 0 1.2px 0 rgba(255, 255, 255, 0.95), inset 0 -1px 0 rgba(255, 255, 255, 0.35), 0 6px 14px -8px rgba(40, 10, 90, 0.45) !important; }
/* legenda, cu aceleași sticle */
.cal-legend .lg { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9), inset 0 0 0 1px rgba(255, 255, 255, 0.25); }
.cal-legend .lg.platit { background: linear-gradient(180deg, rgba(18, 196, 128, 0.95), rgba(6, 142, 92, 0.92)); }
.cal-legend .lg.neplatit { background: linear-gradient(180deg, rgba(245, 70, 95, 0.95), rgba(190, 25, 55, 0.92)); }
.cal-legend .lg.nimic { background: linear-gradient(180deg, rgba(255, 175, 90, 0.95), rgba(220, 120, 40, 0.9)); }
.cal-legend .lg.cash { display: inline-block; background: rgba(255, 255, 255, 0.18) !important; box-shadow: inset 0 0 0 2.5px var(--cash-blue), inset 0 0 0 3.5px rgba(255, 255, 255, 0.7) !important; }

/* ---------- 20. Setări: câți elevi plătesc numerar, câți în cont, total ---------- */
.stu-count { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.stu-count .sc { display: flex; flex-direction: column; gap: 2px; padding: 14px 14px 12px; border-radius: 18px; min-width: 0;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.04));
  box-shadow: inset 0 1.2px 0 rgba(255, 255, 255, 0.35), inset 0 0 0 1px rgba(170, 200, 255, 0.14); }
.stu-count .sc span { font-size: 13px; font-weight: 700; color: var(--yg-ink-muted); }
.stu-count .sc b { font-size: 34px; line-height: 1.1; font-weight: 800; letter-spacing: -0.5px; font-variant-numeric: tabular-nums; }
.stu-count .sc small { font-size: 13px; color: var(--yg-ink-faint); }
.stu-count .sc.cash { box-shadow: inset 0 0 0 2.5px var(--cash-blue), inset 0 0 0 3.5px rgba(255, 255, 255, 0.45); }
.stu-count .sc.cash b { color: #6FA0FF; }
.stu-count .sc.cont b { color: var(--yg-success); }
:root[data-theme="light"] .stu-count .sc { background: rgba(255, 255, 255, 0.7); }
:root[data-theme="light"] .stu-count .sc.cash b { color: var(--cash-blue); }
@media (max-width: 380px) { .stu-count .sc b { font-size: 28px; } }

/* ---------- 21. Câmpurile pe două coloane nu intră unul peste altul (iPhone) ----------
   Pe iOS, câmpurile de oră și dată au o lățime minimă proprie și ies din jumătatea lor de rând. */
.grid2 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.grid2 > *, .field { min-width: 0; }
.field input:not([type=checkbox]):not([type=radio]), .field select, .field textarea { min-width: 0; max-width: 100%; width: 100%; box-sizing: border-box; }
.field input[type=time], .field input[type=date] { -webkit-appearance: none; appearance: none; display: block; text-align: left; line-height: var(--yg-field-h); }
.field input[type=time]::-webkit-date-and-time-value, .field input[type=date]::-webkit-date-and-time-value { text-align: left; margin: 0; }
/* telefoane înguste (iPhone mic sau cu Zoom ecran): antetul calendarului încape pe lățime */
@media (max-width: 389px) {
  .cal-head { gap: 6px; }
  .cal-head h1 { font-size: 27px; line-height: 34px; letter-spacing: -0.6px; min-width: 0; }
  .cal-head .nav { gap: 6px; flex-shrink: 0; }
  .cal-head .icon-btn { width: 40px; height: 40px; }
  .cal-head .nav .btn.primary { height: 40px; padding: 0 10px; }
}
/* rândul cu simularea, sub cele trei casete */
.sim-row { display: flex; padding: 12px 16px; border-radius: 18px; margin-top: 10px; flex-direction: row !important; align-items: baseline; flex-wrap: wrap; gap: 4px 10px !important;
  box-shadow: inset 0 1.2px 0 rgba(255, 255, 255, 0.35), inset 0 0 0 1px rgba(166, 139, 255, 0.35) !important;
  background: linear-gradient(180deg, rgba(166, 139, 255, 0.22), rgba(124, 92, 240, 0.08)) !important; }
.sim-row > span:first-child { font-size: 16px; font-weight: 700; color: var(--yg-ink); }
.sim-row > span:first-child b { font-size: 34px; line-height: 1.1; font-weight: 800; letter-spacing: -0.5px; color: #B7A3FF; margin-right: 2px; }
.sim-row .sub { font-size: 14px; color: var(--yg-ink-muted); }
:root[data-theme="light"] .sim-row > span:first-child b { color: #6A48E8; }
:root[data-theme="light"] .sim-row { background: linear-gradient(180deg, rgba(166, 139, 255, 0.22), rgba(255, 255, 255, 0.6)) !important; }
/* Plăți: frații primesc un mesaj comun */
.chip.sib { color: #CFC2FF; background: rgba(166, 139, 255, 0.18); box-shadow: inset 0 0 0 1px rgba(166, 139, 255, 0.35); }
:root[data-theme="light"] .chip.sib { color: #5A3FD6; background: rgba(124, 92, 240, 0.12); }

/* ---------- 22. WhatsApp: bula elevului (stânga jos pe dreptunghi) și butonul grupului (dreapta jos pe panou) ---------- */
.wa-b, .wa-g { position: absolute; z-index: 3; display: block; border-radius: 50%; line-height: 0; -webkit-touch-callout: none; touch-action: manipulation;
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.9), 0 3px 8px -2px rgba(0, 0, 0, 0.45); transition: transform .15s; }
.wa-b svg, .wa-g svg { width: 100%; height: 100%; display: block; }
.wa-b:active, .wa-g:active { transform: scale(1.15); }
.wa-b { left: -8px; bottom: -8px; width: 22px; height: 22px; }
.wa-b::after { content: ''; position: absolute; inset: -9px; }
.wa-g { right: 8px; bottom: 8px; width: 34px; height: 34px; }
.wa-g::after { content: ''; position: absolute; inset: -6px; }
@media (max-width: 699px) { .wa-b { width: 24px; height: 24px; left: -9px; bottom: -9px; } .wa-g { width: 38px; height: 38px; } }
.btn.wa-contact.kid.yg-btn, .btn.wa-contact.kid { background: linear-gradient(180deg, #2FB4D8, #1E8FB0); box-shadow: 0 10px 24px -10px rgba(40, 170, 210, 0.8), inset 0 1px 0 rgba(255, 255, 255, 0.4); }
/* loc pentru bula din stânga jos (lista taie ce iese în afară) */
.ev-list:has(.wa-b) { padding-left: 9px; padding-bottom: 11px; }
@media (max-width: 699px) { .ev-list:has(.wa-b) { padding-left: 10px; padding-bottom: 12px; } }
/* bula de absențe din dreapta sus a elevilor din coloana din dreapta: să nu fie tăiată */
.ev-list { padding-right: 11px; }
@media (max-width: 699px) { .ev-list { padding-right: 12px; } }
button.wa-b, button.wa-g { border: 0; padding: 0; margin: 0; background: none; cursor: pointer; font: inherit; color: inherit; min-height: 0; }
/* bula WhatsApp (stânga jos) și bula de absențe a vecinului (dreapta sus) nu se ating: mai mult loc între coloane */
.ev-list:has(.wa-b) { column-gap: 32px; }

/* ---------- 23. Anul școlar nou ---------- */
.yn-quick { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 10px; }
#yn-sum { margin: 0 2px 12px; font-weight: 600; color: var(--yg-ink); }
.yn-group { margin: 0 0 16px; padding: 12px; border-radius: 18px; background: rgba(255, 255, 255, 0.05); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12), inset 0 0 0 1px rgba(170, 200, 255, 0.12); }
.yn-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.yn-head b { font-size: 16px; color: var(--yg-ink); }
.yn-all { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--yg-ink-muted); }
.yn-all select { min-height: 36px; max-width: 220px; }
.yn-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); align-items: center; gap: 10px; padding: 6px 4px; border-radius: 12px; }
.yn-row + .yn-row { border-top: 1px solid var(--yg-line); }
.yn-name { font-weight: 600; color: var(--yg-ink); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.yn-row select { width: 100%; min-width: 0; min-height: 40px; }
.yn-row.leave { background: rgba(239, 78, 88, 0.16); }
.yn-row.leave .yn-name { text-decoration: line-through; opacity: 0.8; }
.yn-row.move { background: rgba(79, 140, 255, 0.16); }
details.gone-block > summary { list-style: none; cursor: pointer; }
details.gone-block > summary::-webkit-details-marker { display: none; }
details.gone-block > summary h2::after { content: ' (atinge ca să-i vezi)'; font-size: 13px; font-weight: 500; color: var(--yg-ink-faint); }
details.gone-block[open] > summary h2::after { content: ''; }
.yn-row select.yg-input, .yn-all select.yg-input { -webkit-appearance: none; appearance: none; padding: 0 34px 0 12px; border-radius: 12px; font-size: 16px; font-weight: 600; text-overflow: ellipsis;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239FB4E8' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 10px center; background-size: 18px; }
.yn-row select.yg-input { min-height: 42px; }
.yn-all select.yg-input { min-height: 38px; font-weight: 500; }
.yn-row.leave select.yg-input { color: #FF9AA0; border-color: rgba(239, 78, 88, 0.5); }
.yn-row.move select.yg-input { color: #8FB6FF; border-color: rgba(79, 140, 255, 0.55); }
:root[data-theme="light"] .yn-row.leave select.yg-input { color: #C4202F; }
:root[data-theme="light"] .yn-row.move select.yg-input { color: #1E4FD8; }
.yn-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); }
.yn-row select.yg-input { font-size: 15px; padding-right: 30px; }

/* ---------- 24. Legenda: butonul "?" și fereastra "Cum citești calendarul" ---------- */
.cal-help-row { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 14px 0 6px; }
.help-q { width: 44px; height: 44px; border: 0; border-radius: 50%; cursor: pointer; display: grid; place-items: center; font: 800 21px/1 var(--yg-font); color: var(--yg-ink);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.05)); box-shadow: inset 0 1.2px 0 rgba(255, 255, 255, 0.45), inset 0 0 0 1px rgba(170, 200, 255, 0.22), 0 8px 20px -10px rgba(0, 0, 0, 0.6); }
.help-cap { border: 0; background: none; cursor: pointer; padding: 8px 4px; font: 600 14px var(--yg-font); color: var(--yg-ink-muted); }
:root[data-theme="light"] .help-q { background: rgba(255, 255, 255, 0.85); box-shadow: inset 0 0 0 1px rgba(30, 60, 140, 0.15), 0 8px 20px -12px rgba(20, 40, 100, 0.5); }
.help { display: flex; flex-direction: column; }
.help-h { margin: 18px 0 10px; font-size: 13px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: var(--yg-ink-muted); }
.help-h:first-child { margin-top: 2px; }
.help-row { display: grid; grid-template-columns: 136px minmax(0, 1fr); align-items: center; gap: 16px; padding: 10px 0; border-top: 1px solid var(--yg-line); }
.help-h + .help-row { border-top: 0; }
.help-text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.help-text b { font-size: 17px; font-weight: 700; color: var(--yg-ink); line-height: 1.25; }
.help-text span { font-size: 15px; color: var(--yg-ink-muted); line-height: 1.35; }
.help-sample { display: flex; align-items: center; justify-content: center; min-height: 64px; }
/* dreptunghiul de exemplu stă pe portocaliul blocului, ca în calendar */
.ev.help-ev { position: relative !important; left: auto !important; top: auto !important; width: 136px !important; height: auto !important; padding: 14px 16px !important; border-radius: 16px; cursor: default; box-sizing: border-box; }
.ev.help-ev .stw { position: relative; }
.ev.help-ev .ev-st { display: block; width: 100%; text-align: center; padding: 8px 6px; border-radius: 12px; font-size: 15px; pointer-events: none; }
.help-sample .abs-b, .help-sample .wa-b { pointer-events: none; }
.help-sample .wa-b { left: -9px; bottom: -9px; width: 24px; height: 24px; }
.help-wa-g { width: 44px; height: 44px; display: block; border-radius: 50%; box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.9), 0 3px 8px -2px rgba(0, 0, 0, 0.45); }
.help-wa-g svg { width: 100%; height: 100%; display: block; }
.help-add { display: inline-flex; align-items: baseline; gap: 5px; padding: 8px 14px; border-radius: 14px; background: #FFFFFF; color: #10203A; font-weight: 700; font-size: 16px; box-shadow: 0 6px 16px -8px rgba(0, 0, 0, 0.5); }
.help-add b { font-size: 24px; color: #1E5BFF; font-weight: 800; }
.help-add i { font-style: normal; color: #1E5BFF; font-weight: 800; }
.help-gestures { display: grid; gap: 10px; }
.help-ges { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border-radius: 14px; background: rgba(255, 255, 255, 0.05); box-shadow: inset 0 0 0 1px rgba(170, 200, 255, 0.12); }
.help-ges b { font-size: 16px; color: var(--yg-ink); }
.help-ges span { font-size: 15px; color: var(--yg-ink-muted); }
@media (max-width: 380px) { .help-row { grid-template-columns: 118px minmax(0, 1fr); gap: 12px; } .ev.help-ev { width: 118px !important; padding: 12px !important; } }

/* ---------- 25. Simulări: sala, ca dreptunghi sub clase; elevii, în pătrate de sticlă ---------- */
.cls-pick button.sim-tile { grid-column: 1 / -1; display: grid; justify-items: center; align-content: center; gap: 6px; min-height: 96px;
  background: linear-gradient(180deg, rgba(166, 139, 255, 0.30), rgba(124, 92, 240, 0.12)) !important;
  box-shadow: inset 0 1.2px 0 rgba(255, 255, 255, 0.45), inset 0 0 0 1px rgba(180, 160, 255, 0.35), 0 10px 24px -14px rgba(60, 30, 160, 0.9) !important; }
.cls-pick button.sim-tile b { font-size: 24px; color: #D9CCFF; letter-spacing: -0.3px; }
.cls-pick button.sim-tile small { font-size: 13px; color: #B7A6F0 !important; }
.sp-durs { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; min-height: 48px; }
.sp-cls { display: inline-block; padding: 3px 9px; border-radius: 9px; font-size: 13px; font-weight: 700; }
.sp-cls.c8 { color: #A9B8FF; background: rgba(110, 130, 255, 0.20); }
.sp-cls.c12 { color: #FFC68A; background: rgba(255, 170, 80, 0.20); }
.sp-sec { margin: 0 0 16px; }
.sp-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 8px; }
.sp-head b { flex: 1; font-size: 15px; color: var(--yg-ink); display: flex; align-items: center; gap: 8px; }
.sp-near { font-size: 12px; font-weight: 700; color: #7CF0B5; background: rgba(60, 220, 150, 0.16); padding: 3px 8px; border-radius: 8px; }
.sp-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.sp-tile { position: relative; display: grid; justify-items: center; align-content: center; gap: 4px; min-height: 84px; padding: 10px 6px; border-radius: 16px; cursor: pointer; text-align: center;
  -webkit-tap-highlight-color: transparent; user-select: none; transition: transform .12s, background .15s;
  box-shadow: inset 0 1.2px 0 rgba(255, 255, 255, 0.40), inset 0 0 0 1px rgba(200, 215, 255, 0.16), 0 8px 18px -12px rgba(0, 0, 0, 0.7); }
.sp-tile input { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; }
.sp-tile b { font-size: 16px; font-weight: 800; color: #F2F5FF; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sp-tile small { font-size: 12.5px; font-weight: 700; line-height: 1.25; }
.sp-tile.c8 { background: linear-gradient(180deg, rgba(120, 140, 255, 0.30), rgba(90, 100, 230, 0.12)); }
.sp-tile.c8 small { color: #AFC0FF; }
.sp-tile.c12 { background: linear-gradient(180deg, rgba(255, 185, 100, 0.30), rgba(235, 135, 45, 0.12)); }
.sp-tile.c12 small { color: #FFC98F; }
.sp-tile:active { transform: scale(0.97); }
.sp-tile.on { background: linear-gradient(180deg, rgba(70, 225, 150, 0.50), rgba(18, 160, 95, 0.34)) !important;
  box-shadow: inset 0 1.2px 0 rgba(220, 255, 235, 0.65), inset 0 0 0 2px rgba(110, 240, 170, 0.75), 0 10px 22px -12px rgba(20, 160, 90, 0.9); }
.sp-tile.on small { color: #D6FFE8 !important; }
.sp-tile.on::after { content: ''; position: absolute; top: 7px; right: 8px; width: 16px; height: 16px; border-radius: 50%;
  background: #FFFFFF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2312A05F' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 12px no-repeat; }
.sp-tile.off { opacity: 0.38; cursor: not-allowed; }
/* contorul fixat sus: opac, ca să nu se vadă textul prin el */
#sgc.sim-counter { background: #1E2A55 !important; box-shadow: 0 10px 22px -12px rgba(0, 0, 0, 0.8), inset 0 1px 0 rgba(255, 255, 255, 0.18) !important; }
#sgc.sim-counter.over, #sgc.sim-counter.full { background: #4A1D2E !important; }
.sp-head { flex-wrap: wrap; }
.sp-head b { flex: 1 1 100%; font-size: 16px; }
.sp-head .btn { margin-left: auto; }
/* a XII-a: sticlă roz-violet (diferită de albastrul de a VIII-a și de verdele elevului bifat) */
.sp-cls.c12 { color: #FFB3E8; background: rgba(240, 110, 200, 0.20); }
.sp-tile.c12 { background: linear-gradient(180deg, rgba(240, 110, 205, 0.32), rgba(170, 55, 150, 0.14)); }
.sp-tile.c12 small { color: #FFB8EA; }
.cls-pick button.sim-tile { min-height: 0; padding: 16px 6px 12px; gap: 4px; }
.cls-pick button.sim-tile b { font-size: 26px; line-height: 30px; }
.cls-pick button.sim-tile small { font-size: 12px; }

/* ---------- 26. Notele elevului: pătrate de sticlă, culoarea după notă ---------- */
.gr-block { margin: 4px 0 16px; }
.gr-avg { margin-left: 8px; font-size: 12px; letter-spacing: 0.4px; text-transform: none; color: var(--yg-ink-muted); }
.gr-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.gr-tile { display: grid; justify-items: center; align-content: center; gap: 2px; min-height: 92px; padding: 10px 6px; border: 0; border-radius: 16px; cursor: pointer; font: inherit; text-align: center;
  -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; -webkit-tap-highlight-color: transparent; transition: transform .12s;
  box-shadow: inset 0 1.2px 0 rgba(255, 255, 255, 0.42), inset 0 0 0 1px rgba(200, 215, 255, 0.16), 0 8px 18px -12px rgba(0, 0, 0, 0.7); }
.gr-tile:active { transform: scale(0.97); }
.gr-tile b { font-size: 30px; font-weight: 800; letter-spacing: -0.6px; line-height: 1.05; font-variant-numeric: tabular-nums; }
.gr-tile small { font-size: 12.5px; font-weight: 700; color: rgba(235, 240, 255, 0.85); max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gr-tile small.d { font-weight: 500; color: rgba(225, 232, 255, 0.65); }
.gr-tile.g-hi { background: linear-gradient(180deg, rgba(70, 225, 150, 0.36), rgba(18, 160, 95, 0.16)); } .gr-tile.g-hi b { color: #8BF5C3; }
.gr-tile.g-mid { background: linear-gradient(180deg, rgba(110, 150, 255, 0.34), rgba(70, 95, 220, 0.14)); } .gr-tile.g-mid b { color: #A9C2FF; }
.gr-tile.g-low { background: linear-gradient(180deg, rgba(255, 190, 90, 0.34), rgba(225, 130, 30, 0.14)); } .gr-tile.g-low b { color: #FFD08A; }
.gr-tile.g-bad { background: linear-gradient(180deg, rgba(255, 100, 120, 0.36), rgba(200, 35, 65, 0.16)); } .gr-tile.g-bad b { color: #FFA5B2; }
.gr-tile.add { background: rgba(255, 255, 255, 0.05); box-shadow: inset 0 0 0 1.5px rgba(200, 215, 255, 0.35); }
.gr-tile.add b { color: var(--yg-ink); font-weight: 600; }
.gr-quick { display: flex; flex-wrap: wrap; gap: 8px; margin: -4px 0 6px; }
.gr-quick .chip { border: 0; cursor: pointer; min-height: 36px; padding: 0 14px; font-size: 14px; }

/* ---------- 27. Elevi: căutarea și grupele în sticlă portocalie, ca blocul grupei din calendar ---------- */
.elevi-q { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 14px; margin: 0 0 16px; border-radius: 14px; color: var(--yg-ink-muted); }
.elevi-q svg { width: 20px; height: 20px; flex: none; }
.elevi-q input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--yg-ink); font: inherit; font-size: 17px; padding: 12px 0; }
.elevi-q input::placeholder { color: var(--yg-ink-faint); }
.elevi-q:focus-within { box-shadow: inset 0 0 0 2px var(--d-accent, #4F8CFF); }
.block.elevi-g { background: var(--d-group); box-shadow: var(--d-group-rim); color: var(--d-group-ink); border-radius: 22px; padding: 14px 12px 12px; }
.block.elevi-g h2, .block.elevi-g .h-sub { color: var(--d-group-ink); }
.block.elevi-g h2::before { background: var(--d-group-ink); opacity: 0.85; }
.block.elevi-g h2 .chip, .block.elevi-g h2 .btn { background: var(--d-group-pill); color: var(--d-group-ink); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35); }
.block.elevi-g .item { background: var(--d-group-pill); color: var(--d-group-ink); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35); }
.block.elevi-g .item span.sub, .block.elevi-g .item .chev { color: var(--d-group-ink); opacity: 0.82; }
.block.elevi-g .item .avatar { background: rgba(255, 255, 255, 0.28); color: var(--d-group-ink); }
.block.elevi-g .item .chip { background: rgba(255, 255, 255, 0.28); color: var(--d-group-ink); }
.block.elevi-g .empty { color: var(--d-group-ink); opacity: 0.85; }
/* pe telefon, zilele și ora trec pe rândul doi în loc să strângă titlul pe trei rânduri */
.block.elevi-g h2 { flex-wrap: wrap; row-gap: 4px; }
.block.elevi-g h2 .h-sub { white-space: nowrap; }
/* „clasa 8” din antetul ședinței nu se rupe pe două rânduri */
.sheet-head h2 .h-cls { white-space: nowrap; flex: none; }

/* ---------- ora de la școală: albastru plin, ca să se deosebească de meditațiile portocalii ---------- */
.ev.yg-pane.school:not(.sim):not(.off) { background: var(--d-school); box-shadow: var(--d-school-rim); color: #FFFFFF; border-radius: 14px; padding: 5px 44px 5px 8px; justify-content: center; }
.ev.yg-pane.school:not(.sim):not(.off):hover { box-shadow: var(--d-school-rim); filter: brightness(1.05); }
.ev.school .ev-h { padding-right: 0; align-items: center; flex-wrap: wrap; row-gap: 3px; }
.ev.school:not(.sim):not(.off) .ev-t.yg-pane { background: rgba(255, 255, 255, 0.22); color: #FFFFFF; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35); border-radius: 9px; font-size: 15px; }
.ev.school:not(.sim):not(.off) .ev-m { color: #FFFFFF; opacity: 0.92; font-size: 13px; }
.ev.school .wa-g { width: 30px; height: 30px; right: 7px; bottom: auto; top: calc(50% - 15px); }
.ev-test { display: inline-block; max-width: 100%; padding: 2px 8px; border-radius: 8px; background: #FFD24D; color: #3A2A00; font-size: 12px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.chip-day.test.yg-pane, .chip-day.test { min-height: 30px; display: flex; align-items: center; border: 0; border-radius: 10px; padding: 0 10px; font-size: 13px; font-weight: 700; background: #FFD24D; color: #3A2A00; box-shadow: none; cursor: pointer; }
.sh-av.school, .avatar.school { background: var(--d-school); color: #FFFFFF; }
.block.school-g .item .avatar.school { font-size: 13px; }
.cls-pick button.school-tile { grid-column: 1 / -1; display: grid; justify-items: center; align-content: center; gap: 4px; padding: 16px 6px 12px;
  background: var(--d-school) !important; box-shadow: var(--d-school-rim) !important; }
.cls-pick button.school-tile b { font-size: 26px; line-height: 30px; color: #FFFFFF; letter-spacing: -0.3px; }
.cls-pick button.school-tile small { font-size: 12px; color: rgba(255, 255, 255, 0.86) !important; }
/* fișa clasei */
.cl-add { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) auto; gap: 8px; margin: 0 0 16px; }
.cl-add input, .cl-slot select, .cl-slot input, .cl-slot { min-width: 0; }
.cl-row { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 2px 0 2px 2px; border-bottom: 1px solid var(--yg-line); }
.cl-row b { flex: none; font-variant-numeric: tabular-nums; }
.cl-row .grow { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.cl-row .icon-btn { width: 36px; height: 36px; flex: none; }
.cl-past summary, .cl-all summary { cursor: pointer; padding: 10px 2px; font-weight: 600; color: var(--yg-ink-muted); }
.cl-slot { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1fr) auto; gap: 6px; align-items: center; margin: 0 0 8px; }
.cl-slot .icon-btn { width: 36px; height: 36px; }
#clf .elevi-q { margin: 0 0 8px; }
@media (max-width: 440px) {
  .cl-add { grid-template-columns: minmax(0, 1fr) auto; } .cl-add input[name=ttopic] { grid-column: 1 / -1; grid-row: 2; }
  /* pe telefon: ziua pe un rând, orele dedesubt (altfel nu se văd minutele) */
  .cl-slot { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; margin-bottom: 14px; }
  .cl-slot select { grid-column: 1 / 3; } .cl-slot .icon-btn { grid-column: 3; grid-row: 1; }
  .cl-slot input[data-k=start] { grid-row: 2; grid-column: 1; } .cl-slot input[data-k=end] { grid-row: 2; grid-column: 2; }
}
/* ---------- evenimentele de profesor: verde-albastru (consiliu, ședință, excursie); termenul, roșu ---------- */
:root { --d-evt: linear-gradient(180deg, rgba(30, 190, 170, 0.95), rgba(12, 145, 135, 0.90)); --d-evt-rim: inset 0 1.2px 0 rgba(200, 255, 245, 0.6), 0 12px 26px -14px rgba(10, 140, 130, 0.7); }
.ev.yg-pane.evt:not(.sim):not(.off) { background: var(--d-evt); box-shadow: var(--d-evt-rim); color: #FFFFFF; border-radius: 14px; padding: 5px 8px; justify-content: center; }
.ev.evt .ev-h { padding-right: 0; align-items: center; flex-wrap: wrap; row-gap: 2px; }
.ev.evt:not(.sim):not(.off) .ev-t.yg-pane { background: rgba(255, 255, 255, 0.22); color: #FFFFFF; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35); border-radius: 9px; }
.ev.evt:not(.sim):not(.off) .ev-m, .ev.evt .ev-place { color: #FFFFFF; opacity: 0.92; font-size: 13px; }
.chip-day.evt.yg-pane, .chip-day.evt { min-height: 30px; display: flex; align-items: center; border: 0; border-radius: 10px; padding: 0 10px; font-size: 13px; font-weight: 700; background: var(--d-evt); color: #FFFFFF; box-shadow: none; cursor: pointer; }
.chip-day.evt.k-termen { background: #E5484D; }
.cls-pick button.event-tile { grid-column: 1 / -1; display: grid; justify-items: center; align-content: center; gap: 4px; padding: 16px 6px 12px;
  background: var(--d-evt) !important; box-shadow: var(--d-evt-rim) !important; }
.cls-pick button.event-tile b { font-size: 26px; line-height: 30px; color: #FFFFFF; letter-spacing: -0.3px; }
.cls-pick button.event-tile small { font-size: 12px; color: rgba(255, 255, 255, 0.88) !important; }
/* cât tragi un elev sau o ședință, mesajele de jos nu acoperă grupa de sub deget */
body.is-dragging #toasts, body.is-dragging #toasts * { pointer-events: none !important; }
/* săptămâna școlară, deasupra lui "toată ziua" */
.cal-allday .axis .sw { display: block; width: max-content; margin: 0 0 4px auto; font-size: 12px; line-height: 1; font-weight: 800; color: var(--d-accent); background: var(--d-accent-soft); border-radius: 7px; padding: 4px 6px; }

/* Teme: elevii temei (bife), linkurile elevilor */
.chk-list { display: grid; gap: 2px; margin-top: 4px; }
.chk-row { display: flex; align-items: center; gap: 10px; padding: 8px 4px; font-size: 15px; color: var(--yg-ink); cursor: pointer; }
.chk-row input { width: 20px; height: 20px; accent-color: var(--yg-gold); }
.chk-item { cursor: pointer; }
.chk-item input { width: 22px; height: 22px; margin: 0; flex: none; accent-color: #3B73E8; }
.kid-link { gap: 6px; flex-wrap: wrap; }
.kid-link .btn svg { width: 15px; height: 15px; }

/* termenul temei, vizibil sub titlu */
.tema-due { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; margin: -2px 2px 10px; font-size: 15px; }
.tema-due span { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: #3B73E8; }
.tema-due b { font-weight: 800; color: var(--yg-ink); }
.tema-due b::first-letter { text-transform: uppercase; }
.tema-due small { color: var(--yg-ink-muted); font-size: 13px; }
.tema-due.late span, .tema-due.late b { color: #E11D48; }

/* ---------- 20. Temele pe grupe (ecranul Teme): blocul portocaliu al grupei din Calendar, așezat în pagină ----------
   pastilele: verde = corectată, roșie = nefăcută după termen, violet = de corectat, sticlă = în lucru */
.ev.tm-board { position: static; width: auto; height: auto; margin: 0 0 12px; padding: 12px 12px 12px 14px; gap: 8px; cursor: default; overflow: visible; }
.ev.tm-board:active { transform: none; }
.tm-board .ev-h { padding-right: 0; flex-wrap: wrap; row-gap: 4px; align-items: center; }
.tm-board .ev-h b { white-space: normal; }
.tm-board .ev-m { white-space: normal; opacity: .9; }
.tm-acts { display: flex; gap: 8px; flex-wrap: wrap; }
.tm-acts .ev-add.yg-pane { margin-left: 0; min-height: 32px; padding: 0 12px; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
.tm-acts .tm-n.yg-pane { cursor: default; }
.ev-list.tm-list { grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); overflow: visible; margin-top: 0; padding: 4px 0 0; }
.tm-board .ev-st small { font-size: .85em; font-weight: 800; margin-left: 2px; }
/* bifa: elevul a răspuns Am înțeles la corectură (etapa B a paginii elevului) */
.tm-board .ev-st .tm-ack { display: inline-grid; place-items: center; width: 1.25em; height: 1.25em; margin-left: 4px; border-radius: 50%; background: rgba(255, 255, 255, .95); vertical-align: -.25em; }
.tm-board .ev-st .tm-ack svg { width: .85em; height: .85em; color: #0f8a55; stroke-width: 3.4; }
.ev-st.decor { background: var(--violet); color: #fff; }
.ev .ev-st.decor { background: linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0) 60%), linear-gradient(rgba(140, 95, 255, 0.85), rgba(95, 55, 220, 0.82)) !important; }
.tm-past { margin: 4px 0 0; }
.tm-past > summary { cursor: pointer; list-style: none; display: inline-flex; align-items: center; gap: 8px; margin: 2px 2px 10px; font-weight: 700; opacity: .8; }
.tm-past > summary::-webkit-details-marker { display: none; }
.tm-av { font-weight: 800; }
.tm-row .tm-day { flex: none; min-width: 88px; font-size: 13px; font-weight: 700; opacity: .75; }
.tm-row.tm-nefacuta { box-shadow: inset 4px 0 0 var(--yg-danger, #e5484d); }
.tm-row.tm-corectata { box-shadow: inset 4px 0 0 var(--yg-success, #12c480); }
.list.tm-st { margin-bottom: 18px; }

/* ---------- 21. Bulina temelor pe elevii din Calendar (jos, spre dreapta: colțul e al bulei de prezență a elevului de dedesubt)
   și pagina temelor elevului ---------- */
.tm-b { position: absolute; right: 18px; bottom: -11px; z-index: 2; height: 21px; padding: 0 7px 0 5px; box-sizing: border-box; border-radius: 6px;
  display: inline-flex; align-items: center; gap: 2px; font: 800 12px/1 var(--yg-font, system-ui); color: #fff; cursor: pointer; font-variant-numeric: tabular-nums;
  background: linear-gradient(rgba(245, 70, 95, 1), rgba(195, 25, 55, 1)); box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.9), 0 1px 3px rgba(0, 0, 0, 0.3);
  -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; touch-action: manipulation; }
.tm-b::after { content: ''; position: absolute; inset: -5px; }
.tm-b svg { width: 12px; height: 12px; flex: none; }
.tm-b:active { transform: scale(1.12); }
@media (max-width: 699px) { .tm-b { height: 23px; right: 20px; bottom: -12px; font-size: 13px; } .tm-b svg { width: 13px; height: 13px; } }
.help-sample .tm-b { pointer-events: none; }
.tm-sum { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 12px; }
.tm-card { border-radius: 16px; padding: 12px 14px; margin: 0 0 10px; display: flex; flex-direction: column; gap: 8px; }
.tm-card.tm-nefacuta { box-shadow: inset 4px 0 0 var(--yg-danger, #e5484d); }
.tm-card.tm-corectata { box-shadow: inset 4px 0 0 var(--yg-success, #12c480); }
.tm-card.tm-decorectat { box-shadow: inset 4px 0 0 #8c5fff; }
.tm-card .tm-top { display: flex; align-items: center; gap: 8px; }
.tm-card .tm-top .grow { font-size: 13px; font-weight: 700; opacity: .75; }
.tm-card .tm-title { font-size: 17px; font-weight: 800; }
.tm-card .tm-task { font-size: 14.5px; opacity: .9; white-space: pre-wrap; }
.tm-card .tm-due { font-size: 13px; opacity: .75; }
.tm-card .tm-fb { font-size: 14px; font-style: italic; opacity: .9; }
.tm-card .row { display: flex; gap: 8px; flex-wrap: wrap; }

/* ---------- 22. Pagina elevului (de citit): banda de stare și secțiunile ---------- */
.sv-band { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 14px 0 6px; }
.sv-st { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-height: 58px; padding: 9px 11px; border: 0; border-radius: 14px; text-align: left; cursor: pointer;
  font: inherit; color: inherit; background: rgba(127, 127, 127, 0.14); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12); }
.sv-st small { font-size: 12px; font-weight: 700; opacity: .75; }
.sv-st b { font-size: 15px; font-weight: 800; }
.sv-st.green { box-shadow: inset 0 0 0 2px var(--yg-success, #12c480); }
.sv-st.red { box-shadow: inset 0 0 0 2px var(--yg-danger, #e5484d); }
.sv-st.amber { box-shadow: inset 0 0 0 2px var(--yg-gold, #f0b428); }
#sv section { scroll-margin-top: 12px; margin: 0 0 6px; }
.sv-abs { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.sv-kv { display: flex; justify-content: space-between; gap: 12px; padding: 8px 2px; border-bottom: 1px solid rgba(127, 127, 127, 0.18); font-size: 14.5px; }
.sv-kv span { opacity: .75; }
.sv-date { margin-top: 10px; }

/* ---------- 23. Temele din calendar: T în cerc pe elev (dreapta jos) și pe grupă (stânga jos, simetric cu WhatsApp) ---------- */
.tm-t, .tm-g { position: absolute; z-index: 3; display: grid; place-items: center; border: 0; border-radius: 50%; padding: 0; cursor: pointer;
  color: #fff; font: 900 12px/1 var(--yg-font, system-ui); background: linear-gradient(rgba(95, 110, 255, 1), rgba(55, 65, 215, 1));
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.9), 0 1px 3px rgba(0, 0, 0, 0.3); -webkit-touch-callout: none; touch-action: manipulation; }
.tm-t { right: -8px; bottom: -8px; width: 22px; height: 22px; }
.tm-t::after { content: ''; position: absolute; inset: -5px; border-radius: 50%; }
.tm-g { left: 8px; bottom: 8px; width: 34px; height: 34px; font-size: 17px; }
.tm-g::after { content: ''; position: absolute; inset: -6px; border-radius: 50%; }
.tm-t:active, .tm-g:active { transform: scale(1.15); }
@media (max-width: 699px) { .tm-t { width: 24px; height: 24px; right: -9px; bottom: -9px; font-size: 13px; } .tm-g { width: 38px; height: 38px; font-size: 19px; } }
.help-sample .tm-t { pointer-events: none; }
.help-tm-g { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; color: #fff; font-weight: 900; font-size: 17px; background: linear-gradient(rgba(95, 110, 255, 1), rgba(55, 65, 215, 1)); }

/* ---------- 24. Opțiunile pe categorii (cerut de Daniel pe 17 oct.: "nu șiruri aruncate, VIAȚĂ"): plăci de sticlă
   colorate pentru ce adaugi, cutii pe zile pentru ședințele în plus; fiecare categorie și fiecare zi cu nuanța ei (--h) ---------- */
.opt-h { margin: 18px 2px 10px; font-size: 12px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; opacity: .62; }
.opt-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.opt-tile { position: relative; display: flex; align-items: center; gap: 11px; min-height: 68px; padding: 12px 13px; border-radius: 18px; text-align: left; color: inherit; cursor: pointer; overflow: hidden;
  font: inherit; border: 1px solid color-mix(in srgb, var(--h) 48%, transparent);
  background: radial-gradient(120% 140% at 0% 0%, color-mix(in srgb, var(--h) 42%, transparent), transparent 62%), color-mix(in srgb, var(--h) 14%, rgba(255,255,255,.04));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.14), 0 8px 22px color-mix(in srgb, var(--h) 22%, transparent);
  transition: transform .12s ease, box-shadow .2s ease; -webkit-tap-highlight-color: transparent; }
.opt-tile:active { transform: scale(.97); }
.opt-ic { flex: none; width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; color: #fff;
  background: linear-gradient(160deg, color-mix(in srgb, var(--h) 80%, #fff), var(--h)); box-shadow: 0 6px 14px color-mix(in srgb, var(--h) 45%, transparent); }
.opt-ic svg { width: 20px; height: 20px; color: #fff; }
.opt-tx { display: grid; gap: 2px; min-width: 0; }
.opt-tx b { font-size: 15.5px; font-weight: 650; line-height: 1.15; }
.opt-tx small { font-size: 12.5px; opacity: .72; line-height: 1.25; }
.opt-days { display: grid; gap: 10px; }
.opt-day { border-radius: 18px; padding: 11px 12px 12px; border: 1px solid color-mix(in srgb, var(--h) 38%, transparent);
  background: linear-gradient(135deg, color-mix(in srgb, var(--h) 22%, transparent), color-mix(in srgb, var(--h) 6%, transparent));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1); }
.opt-day header { display: flex; align-items: center; gap: 8px; margin-bottom: 9px; font-size: 14px; }
.opt-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--h); box-shadow: 0 0 0 4px color-mix(in srgb, var(--h) 25%, transparent); }
.opt-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.opt-pill { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; min-width: 74px; min-height: 44px; padding: 6px 14px; border-radius: 14px;
  font: inherit; font-size: 16px; font-weight: 650; color: inherit; cursor: pointer; font-variant-numeric: tabular-nums;
  border: 1px solid color-mix(in srgb, var(--h) 55%, transparent); background: color-mix(in srgb, var(--h) 26%, rgba(255,255,255,.06));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.16); transition: transform .12s ease; -webkit-tap-highlight-color: transparent; }
.opt-pill:active { transform: scale(.95); }
.opt-pill small { font-size: 10.5px; font-weight: 600; opacity: .8; letter-spacing: .02em; }
.opt-pill:disabled { cursor: default; opacity: .42; background: transparent; border-style: dashed; }
.opt-grid > .opt-tile:last-child:nth-child(odd) { grid-column: 1 / -1; }

/* ---------- 25. VIAȚĂ peste tot (Daniel, 17 oct.): meniurile din foi = rânduri de sticlă cu pătratul iconiței colorat după
   felul acțiunii; secțiunile din Setări cu nuanța lor (--h pe .block); grupele pe nuanța zilei ---------- */
.menu { gap: 8px; }
.menu > :where(button, a) { --h: #6366f1; } /* culoarea de bază, cea mai slabă regulă: felul acțiunii o schimbă mai jos */
.menu > :is(button, a):not(.btn) { min-height: 54px; padding: 9px 12px; border-radius: 16px; font-weight: 600;
  border: 1px solid color-mix(in srgb, var(--h) 28%, transparent);
  background: linear-gradient(100deg, color-mix(in srgb, var(--h) 18%, transparent), color-mix(in srgb, var(--h) 5%, transparent) 70%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08); transition: transform .12s ease, background .2s ease; -webkit-tap-highlight-color: transparent; }
.menu > :is(button, a):not(.btn):hover { background: linear-gradient(100deg, color-mix(in srgb, var(--h) 26%, transparent), color-mix(in srgb, var(--h) 8%, transparent) 70%); }
.menu > :is(button, a):not(.btn):active { transform: scale(.98); }
.menu > :is(button, a):not(.btn) > svg:first-child { flex: none; width: 34px; height: 34px; padding: 8px; box-sizing: border-box; border-radius: 11px;
  color: #fff !important; background: linear-gradient(160deg, color-mix(in srgb, var(--h) 70%, #fff), var(--h)); box-shadow: 0 4px 12px color-mix(in srgb, var(--h) 38%, transparent); }
.menu > :is(button, a):not(.btn):disabled { opacity: .45; }
/* felul acțiunii: prezență/ține (verde), adaugă (violet), editează (albastru), mută (portocaliu), WhatsApp și linkuri (verde WhatsApp),
   simulări (chihlimbar), înapoi/anulează (gri), șterge (roz) */
.menu [data-act="session-do"], .menu [data-act="sim-do"], .menu [data-act="mark-sent"] { --h: #10b981; }
.menu :is([data-act="student-edit"], [data-act="simg-edit"], [data-act="class-slot"], [data-act="group-new"], [data-act="class-pick"]) { --h: #7c5cff; }
.menu :is([data-act="group-edit"], [data-act="class-open"], [data-act="tema-edit"]) { --h: #4f8cff; }
.menu :is([data-act="session-move"], [data-act="move-all"], [data-act="move-one"], [data-act="sim-date"]) { --h: #ff8a3d; }
.menu :is([data-act="tema-anunt"], [data-act="tema-anunt-copy"], [data-act="wa-group-set"], [data-act="copy-msg"], [data-act="copy-link"], [data-act="copy-text"], [data-act="kid-link"]) { --h: #22c55e; }
.menu :is([data-act="sim-abs"], [data-act="sim-menu"]) { --h: #f59e0b; }
.menu :is([data-op="unmove"], [data-op="uncancel"], [data-act="unsend"], [data-act="new-token"]) { --h: #94a3b8; }
.menu > .danger, .menu :is([data-act$="-del"], [data-act="student-leave"]) { --h: #f43f5e; }

.block[style*="--h"] h2::before { background: linear-gradient(180deg, color-mix(in srgb, var(--h) 70%, #fff), var(--h)); box-shadow: 0 0 12px color-mix(in srgb, var(--h) 55%, transparent); }
.block[style*="--h"] .item .avatar, .item .avatar[style*="--h"] { background: color-mix(in srgb, var(--h) 22%, transparent) !important; color: var(--h) !important;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--h) 35%, transparent); }
.block[style*="--h"] .item .avatar svg { color: var(--h); }
.block[style*="--h"] > .list > .item { border-color: color-mix(in srgb, var(--h) 18%, var(--yg-line, rgba(255,255,255,.1))); }

/* ---------- 26. Modul de plată (Daniel, 17 oct.: "nu toți încasează la final de lună"): variantele ca plăci de sticlă
   pe culoarea lor (final albastru, avans verde, după ședință portocaliu, pachet violet), cea aleasă cu inel ---------- */
.pm-grid { grid-template-columns: 1fr; gap: 9px; margin: 6px 0 14px; }
.pm-opt { min-height: 62px; }
.pm-opt input { position: absolute; opacity: 0; pointer-events: none; }
.pm-opt .opt-tx { padding-right: 34px; }
.pm-opt::after { content: ''; position: absolute; right: 14px; top: 50%; width: 20px; height: 20px; margin-top: -10px; border-radius: 50%;
  box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--h) 55%, transparent); }
.pm-opt:has(input:checked) { border-color: var(--h); box-shadow: 0 0 0 2px var(--h), 0 10px 26px color-mix(in srgb, var(--h) 32%, transparent); }
.pm-opt:has(input:checked)::after { background: #fff; box-shadow: inset 0 0 0 6px var(--h); }
.pm-opt:has(input:focus-visible) { outline: 2px solid var(--h); outline-offset: 3px; }
.pm-row { margin: 10px 0 4px; }
.pm-row b { font-weight: 700; }
.chip[class*="mode-"] { --h: #94a3b8; color: inherit; background: color-mix(in srgb, var(--h) 20%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--h) 45%, transparent); }
.chip.mode-avans { --h: #10b981; }
.chip.mode-sedinta { --h: #ff8a3d; }
.chip.mode-pachet { --h: #7c5cff; }
/* Am făcut transferul, anunțat de părinte pe pagina lui (etapa C): albastru, încă neverificat */
.chip.told { color: inherit; background: color-mix(in srgb, #3b82f6 18%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, #3b82f6 45%, transparent); }
.btn.amber { background: color-mix(in srgb, #f59e0b 22%, transparent); border-color: color-mix(in srgb, #f59e0b 55%, transparent); }

/* ---------- 27. Listele simple din foi (Daniel, 17 oct.: "VIAȚĂ oriunde"): elevii temei și linkurile elevilor = rânduri de sticlă
   pe nuanța zilei grupei (--h), cu pătratul inițialelor; bifa e un cerc în dreapta, elevul nebifat se estompează ---------- */
.chk-list, .list:has(> .kid-link) { gap: 7px; background: none; box-shadow: none; border: 0; padding: 0; }
.chk-list > .chk-item, .list > .kid-link { min-height: 54px; padding: 8px 12px; gap: 11px; border-radius: 16px; align-items: center;
  border: 1px solid color-mix(in srgb, var(--h, #6366f1) 34%, transparent) !important;
  background: linear-gradient(100deg, color-mix(in srgb, var(--h, #6366f1) 20%, transparent), color-mix(in srgb, var(--h, #6366f1) 5%, transparent) 72%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1); transition: opacity .18s ease, transform .12s ease, background .2s ease; -webkit-tap-highlight-color: transparent; }
.chk-item .avatar, .kid-link .avatar { flex: none; width: 36px; height: 36px; border-radius: 12px; font-size: 13px; font-weight: 750; color: #fff !important;
  background: linear-gradient(160deg, color-mix(in srgb, var(--h, #6366f1) 72%, #fff), var(--h, #6366f1)) !important;
  box-shadow: 0 4px 12px color-mix(in srgb, var(--h, #6366f1) 38%, transparent) !important; }
.chk-item:active { transform: scale(.98); }
.chk-item input { appearance: none; -webkit-appearance: none; width: 24px; height: 24px; border-radius: 50%; cursor: pointer; background: transparent;
  box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--h, #6366f1) 60%, transparent); transition: box-shadow .15s ease, background .15s ease; }
.chk-item input:checked { background: #fff; box-shadow: inset 0 0 0 7px var(--h, #6366f1); }
.chk-item input:focus-visible { outline: 2px solid var(--h, #6366f1); outline-offset: 3px; }
.chk-item:not(:has(input:checked)) { opacity: .58; background: transparent; border-style: dashed !important; }
.chk-item:not(:has(input:checked)) .avatar { filter: saturate(.25); box-shadow: none !important; }
.kid-link .grow { min-width: 0; }
.kid-acts { display: flex; flex-wrap: wrap; gap: 6px; margin-left: auto; }
@media (max-width: 560px) { .kid-acts { flex-basis: 100%; padding-left: 47px; margin-top: -2px; } }
.kid-link .btn { border: 1px solid color-mix(in srgb, var(--b, #4f8cff) 40%, transparent); background: color-mix(in srgb, var(--b, #4f8cff) 16%, transparent); }
.kid-link .btn[href] { --b: #22c55e; }

/* ---------- 28. Cardul grupei din calendar, varianta 6A (aleasă de Daniel pe 18 oct.): capul, titlurile coloanelor,
   un rând pe elev = pastila numelui (stânga) și capsula cu cele patru bule (Prezent, Plata, WhatsApp, Temă), jos Temă grupei,
   Grupul și + Elev cu numărul elevilor. Culoarea cardului rămâne portocaliul de dinainte. Simularea, școala, evenimentele: neschimbate.
   În coloanele înguste ale săptămânii (.cal.cmp, sub 300px) bulele stau sub nume, mai mici. ---------- */
.cal { --axis: 44px; }
@media (max-width: 699px) { .cal { --axis: 36px; } }
.cal-body .axis span[data-t] { left: 0; right: 0; top: calc(var(--y) - 12px); display: flex; flex-direction: column; align-items: center; line-height: 1; }
.cal-body .axis span[data-t]:first-child { top: 2px; }
.cal-body .axis span[data-t] b { font-size: 13px; font-weight: 700; color: var(--yg-ink); opacity: .82; }
.cal-body .axis span[data-t] small { font-size: 9px; font-weight: 600; color: var(--yg-ink); opacity: .5; margin-top: 2px; }
.cal-body .axis span.now-pill { right: 1px; padding: 0 4px; font-size: 10.5px; line-height: 20px; top: calc(var(--y) - 10px); border-radius: 10px; }

.ev.g6 { --g6-ring: #F7873A; --g6-glass: rgba(255, 255, 255, 0.16); --g6-rim: inset 0 1px 0 rgba(255, 255, 255, 0.28); --g6-white: rgba(255, 255, 255, 0.92); }
:root[data-theme="light"] .ev.g6 { --g6-ring: #FFA65A; --g6-glass: rgba(255, 255, 255, 0.34); --g6-rim: inset 0 1px 0 rgba(255, 255, 255, 0.7); --g6-white: #FFFFFF; }
.ev.g6 { padding: 8px; gap: 5px; border-radius: 22px; }
.ev.g6.off { padding: 8px; }
.ev.g6 .ev-h { flex: none; min-height: 30px; gap: 6px; align-items: center; padding-right: 0; }
.ev.g6 .ev-t.yg-pane { padding: 5px 10px; border-radius: 11px; font-size: 15px; line-height: 18px; }
.ev.g6 .ev-cls { padding: 3px 7px; border-radius: 9px; font-size: 11px; font-weight: 600; line-height: 14px; min-height: 0; }
.ev.g6 .ev-m { margin-left: auto; font-size: 12px; font-weight: 600; opacity: .92; }
.ev-caps { flex: none; display: flex; align-items: center; padding-left: 12px; font: 700 8px/12px var(--yg-font, system-ui); letter-spacing: .03em; text-transform: uppercase; opacity: .8; pointer-events: none; }
.ev-caps > span:first-child { flex: 1; padding-left: 16px; }
.ev-caps .c4 { flex: none; width: 168px; display: flex; padding: 0 4px; box-sizing: border-box; }
.ev-caps .c4 span { width: 40px; text-align: center; white-space: nowrap; }
.ev.g6 .ev-list { display: flex; flex-direction: column; gap: 4px !important; padding: 6px 0 2px !important; margin-top: -6px; overflow: visible; min-height: 0; }
.ev.g6 .stw { display: flex; align-items: center; gap: 6px; height: 40px; flex: none; }
.ev.g6 .ev-st, .ev.g6 .ev-st.cash {
  flex: 1; min-width: 0; height: 40px; min-height: 0; display: flex; align-items: center; padding: 0 10px 0 12px; box-sizing: border-box; border-radius: 12px;
  background: var(--g6-glass) !important; box-shadow: var(--g6-rim) !important; color: var(--d-group-ink, #FFFFFF) !important; text-shadow: none;
  -webkit-backdrop-filter: none; backdrop-filter: none; font: 700 15px/18px var(--yg-font, system-ui); text-align: left; }
.ev.g6 .ev-st .grip { flex: none; width: 8px; height: 14px; margin-right: 8px; opacity: .6;
  background-image: radial-gradient(circle, currentColor 1.2px, transparent 1.5px); background-size: 4px 5px; }
.ev.g6 .ev-st .nm { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ev.g6 .cap4 { flex: none; display: flex; align-items: center; height: 40px; padding: 0 4px; box-sizing: border-box; border-radius: 20px; background: var(--g6-glass); box-shadow: var(--g6-rim); cursor: default; }
.ev.g6 .cap4 .c { position: relative; width: 40px; height: 34px; flex: none; display: flex; justify-content: center; align-items: center; }
/* absent la ședința asta: rândul se nuanțează spre cărămiziu */
.ev.g6 .stw:has(.abs-b.on) .ev-st, .ev.g6 .stw:has(.abs-b.on) .cap4 { background: rgba(120, 30, 20, 0.3) !important; }
/* cele patru bule */
.ev.g6 .cap4 .abs-b, .ev.g6 .cap4 .pay-b, .ev.g6 .cap4 .wa-b, .ev.g6 .cap4 .tm-t {
  position: relative; inset: auto; z-index: 1; width: 34px; height: 34px; min-width: 0; margin: 0; padding: 0; border: 0; border-radius: 17px; box-sizing: border-box;
  display: grid; place-items: center; box-shadow: none; font: 700 12px/1 var(--yg-font, system-ui); text-decoration: none; cursor: pointer; transition: transform .15s; }
.ev.g6 .cap4 .abs-b::after, .ev.g6 .cap4 .pay-b::after, .ev.g6 .cap4 .wa-b::after, .ev.g6 .cap4 .tm-t::after { content: ''; position: absolute; inset: -4px; border-radius: 50%; }
.ev.g6 .cap4 .abs-b:active, .ev.g6 .cap4 .pay-b:active, .ev.g6 .cap4 .wa-b:active, .ev.g6 .cap4 .tm-t:active { transform: scale(1.12); }
.ev.g6 .cap4 svg { width: 18px; height: 18px; display: block; }
.ev.g6 .cap4 .abs-b { background: #2DBE78; color: #04281A; }
.ev.g6 .cap4 .abs-b svg { stroke-width: 3; }
.ev.g6 .cap4 .abs-b.on { background: #E8414B; color: #FFFFFF; }
.ev.g6 .cap4 .pay-b.platit { background: #2DBE78; color: #04281A; }
.ev.g6 .cap4 .pay-b.neplatit { background: #E8414B; color: #FFFFFF; }
.ev.g6 .cap4 .pay-b.partial { background: #F0B428; color: #3A2600; font-size: 15px; }
.ev.g6 .cap4 .pay-b.nimic { background: rgba(255, 255, 255, 0.2); color: inherit; }
.ev.g6 .cap4 .pay-b.nimic::before { content: ''; width: 12px; height: 3px; border-radius: 2px; background: currentColor; opacity: .75; }
.ev.g6 .cap4 .pay-b.cash { box-shadow: 0 0 0 2px #2F6FED; }
:root[data-theme="light"] .ev.g6 .cap4 .pay-b.platit, :root[data-theme="light"] .ev.g6 .cap4 .abs-b:not(.on) { background: var(--viu-paid, #2DBE78); }
:root[data-theme="light"] .ev.g6 .cap4 .pay-b.neplatit, :root[data-theme="light"] .ev.g6 .cap4 .abs-b.on { background: var(--viu-unpaid, #E8414B); }
.ev.g6 .cap4 .wa-b { background: var(--g6-white); color: #128C3E; }
.ev.g6 .cap4 .wa-b svg { width: 19px; height: 19px; }
.ev.g6 .cap4 .tm-t { background: var(--g6-white); color: #2F4BD9; }
/* bulinele cu cifre: absențele lunii (vișiniu, pe Prezent), temele nepredate (roșu, pe Temă; atinsă = temele elevului) */
.ev.g6 .abs-n, .ev.g6 .cap4 .tm-b, .ev.g6 .ev-foot .ev-add b {
  position: absolute; top: -6px; right: -7px; bottom: auto; left: auto; z-index: 2; min-width: 17px; height: 17px; padding: 0 4px; box-sizing: border-box; border-radius: 9px;
  display: flex; align-items: center; justify-content: center; font: 700 10.5px/1 var(--yg-font, system-ui); font-style: normal; color: #FFFFFF; letter-spacing: 0;
  box-shadow: 0 0 0 2px var(--g6-ring); font-variant-numeric: tabular-nums; }
.ev.g6 .abs-n { background: #8E1B3C; pointer-events: none; }
.ev.g6 .cap4 .tm-b { top: -6px; right: -3px; background: #FF3B30; gap: 0; }
.ev.g6 .cap4 .tm-b::after { inset: -8px; border-radius: 50%; }
/* jos: Temă grupei, Grupul, + Elev */
.ev.g6 .ev-foot { flex: none; display: flex; gap: 6px; margin-top: auto; }
.ev.g6 .ev-foot .tm-g, .ev.g6 .ev-foot .wa-g, .ev.g6 .ev-foot .ev-add.yg-pane {
  position: relative; inset: auto; flex: 1 1 0; min-width: 0; width: auto; height: 36px; min-height: 0; margin: 0; padding: 0 4px; border: 0; border-radius: 12px;
  display: inline-flex; align-items: center; justify-content: center; gap: 5px; white-space: nowrap; text-decoration: none; cursor: pointer;
  background: var(--g6-white) !important; box-shadow: none !important; font: 700 12px/1 var(--yg-font, system-ui); transition: transform .15s; }
.ev.g6 .ev-foot .tm-g::after, .ev.g6 .ev-foot .wa-g::after, .ev.g6 .ev-foot .ev-add::after { content: ''; position: absolute; inset: -3px; border-radius: 14px; }
.ev.g6 .ev-foot > :active { transform: scale(.96); }
.ev.g6 .ev-foot .tm-g { color: #2F4BD9; }
.ev.g6 .ev-foot .wa-g { color: #128C3E; }
.ev.g6 .ev-foot .ev-add.yg-pane { flex: 0 0 76px; color: #1F2F6B !important; }
.ev.g6 .ev-foot svg { width: 16px; height: 16px; flex: none; display: block; }
.ev.g6 .ev-foot .ev-add svg { color: #2F6FED; stroke-width: 3; }
.ev.g6 .ev-foot .ev-add b { background: #2F6FED; }
.ev.g6 .ev-foot span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.ev.g6 .ev-none { font-size: 12.5px; padding: 4px 2px; }
/* coloanele înguste ale săptămânii: numele sus, bulele dedesubt, câte --per elevi pe rând */
.cal.cmp .ev.g6 .ev-caps { display: none; }
.cal.cmp .ev.g6 .ev-list { display: grid; grid-template-columns: repeat(var(--per, 1), minmax(0, 1fr)); gap: 6px !important; }
.cal.cmp .ev.g6 .stw { flex-direction: column; align-items: stretch; height: auto; gap: 3px; min-width: 0; }
.cal.cmp .ev.g6 .ev-st { flex: none; height: 28px; padding: 0 8px; font-size: 13px; border-radius: 10px; }
.cal.cmp .ev.g6 .ev-st .grip { margin-right: 6px; }
.cal.cmp .ev.g6 .cap4 { height: 28px; padding: 0 2px; border-radius: 15px; justify-content: space-around; }
.cal.cmp .ev.g6 .cap4 .c { width: auto; flex: 1 1 0; height: 24px; }
.cal.cmp .ev.g6 .cap4 .abs-b, .cal.cmp .ev.g6 .cap4 .pay-b, .cal.cmp .ev.g6 .cap4 .wa-b, .cal.cmp .ev.g6 .cap4 .tm-t { width: 24px; height: 24px; border-radius: 12px; font-size: 9.5px; }
.cal.cmp .ev.g6 .cap4 .pay-b.partial { font-size: 12px; }
.cal.cmp .ev.g6 .cap4 svg { width: 13px; height: 13px; }
.cal.cmp .ev.g6 .abs-n, .cal.cmp .ev.g6 .cap4 .tm-b { min-width: 14px; height: 14px; padding: 0 3px; font-size: 9px; top: -6px; right: -5px; }
.cal.cmp .ev.g6 .cap4 .tm-b { right: -3px; }
.cal.cmp .ev.g6 .ev-foot { gap: 5px; }
.cal.cmp .ev.g6 .ev-foot .tm-g, .cal.cmp .ev.g6 .ev-foot .wa-g, .cal.cmp .ev.g6 .ev-foot .ev-add.yg-pane { height: 30px; padding: 0 6px; flex: 1 1 0; }
.cal.cmp .ev.g6 .ev-foot .tm-g span, .cal.cmp .ev.g6 .ev-foot .wa-g span { display: none; }
/* în coloanele înguste: intervalul orar doar când numele grupei nu conține deja ora (ca înainte de 6A) */
.cal.cmp .ev.g6 .ev-m .iv.dup { display: none; }
/* legenda calendarului: aceleași bule, pe o bucată de card */
.ev.g6.help-ev { width: auto !important; max-width: 100%; padding: 8px !important; display: inline-flex; flex-direction: row; gap: 6px; cursor: default; }
.ev.g6.help-ev .stw { width: 150px; }
.ev.g6.help-ev .ev-foot { margin: 0; }
.ev.g6.help-ev .ev-foot > * { flex: none !important; padding: 0 10px !important; }
.help-sample .ev.g6 * { pointer-events: none; }

/* 29. Simularea pe tema luminoasă: hârtie caldă (crem spre bej, chenar chihlimbar, text maro), nu violet.
   Cerut de Daniel pe 18 oct. ("pe light mode vreau nuanțe de hârtie caldă"); tema întunecată rămâne violetă. */
:root[data-theme="light"] .ev.sim.yg-pane {
  --_top: #FCF5E8; --_bottom: #F2E3C8; --_rim-top: rgba(255, 255, 255, 0.9); --_rim-bottom: rgba(176, 128, 60, 0.28); --c: #C9974E;
  --yg-inset: rgba(150, 105, 40, 0.045); --d-group-ink: #4A3320; color: #4A3320;
  --g6-glass: rgba(255, 255, 255, 0.62); --g6-rim: inset 0 1px 0 #FFFFFF, 0 1px 2px rgba(120, 80, 30, 0.12);
  border-color: rgba(176, 128, 60, 0.35); }
:root[data-theme="light"] .ev.sim .ev-t.yg-pane { background: rgba(255, 255, 255, 0.75); color: #4A3320; }
:root[data-theme="light"] .ev.sim .ev-h b, :root[data-theme="light"] .ev.sim .ev-m { color: #4A3320; }
:root[data-theme="light"] .ev.sim .ev-m { opacity: .7; }
:root[data-theme="light"] .ev.sim .ev-add.yg-pane:not(.full) { background: #FFFFFF; color: #4A3320; box-shadow: 0 1px 3px rgba(120, 80, 30, 0.18); }
:root[data-theme="light"] .ev.sim .ev-h .ev-add:not(.full) b { color: #B5651D; }
:root[data-theme="light"] .ev.sim .ev-caps { color: #7A5A38; }
:root[data-theme="light"] .ev.sim .ev-st:not(.cash) { box-shadow: var(--g6-rim) !important; }
:root[data-theme="light"] .ev.sim .cap4 .pay-b.nimic { background: rgba(150, 105, 40, 0.12); }
:root[data-theme="light"] .ev.sim .ev-add.sim-cnt.full, :root[data-theme="light"] .ev.sim .ev-add.sim-cnt.full b { color: #FFFFFF; }
:root[data-theme="light"] .chip-day.sim.yg-chip { background: #F6EBD6; color: #6B4A26; box-shadow: inset 3px 0 0 #C9974E; }

/* 30. Tema luminoasă pe hârtie caldă, cu accent cărămiziu (aleasă de Daniel pe 18 oct., varianta B din
   docs/capturi-v82/variante-fundal-luminos.png): fundal crem spre nisip, plăci fildeș, linii și umbre maronii,
   text maro închis. Tema întunecată rămâne bleumarin. Rămân albastre doar semnele de pe carduri (numerar, + Elev). */
:root[data-theme="light"] {
  --paper-1: #F5EDDE; --paper-2: #EADFCB; --paper-3: #DDCDB1;
  --paper-card-top: rgba(254, 250, 242, 0.88); --paper-card-bottom: rgba(245, 236, 220, 0.62);
  --paper-rim: rgba(170, 130, 80, 0.35); --paper-line: rgba(110, 80, 45, 0.16);
  --brick: #B4532A; --brick-soft: rgba(180, 83, 42, 0.13); --paper-ink: #2E2016;
  --yg-page: var(--paper-2);
  --yg-ground-top: var(--paper-1); --yg-ground-mid: var(--paper-2); --yg-ground-bottom: var(--paper-3);
  --d-ink: var(--paper-ink); --d-muted: rgba(46, 32, 22, 0.68); --d-faint: rgba(46, 32, 22, 0.50);
  --d-line: var(--paper-line);
  --d-card: linear-gradient(180deg, var(--paper-card-top), var(--paper-card-bottom));
  --d-rim: inset 0 1.2px 0 rgba(255, 255, 255, 0.95), inset 0 -1px 0 var(--paper-rim);
  --d-shadow: 0 12px 36px rgba(110, 70, 30, 0.13);
  --d-bar: linear-gradient(180deg, rgba(254, 250, 242, 0.94), rgba(245, 236, 220, 0.88));
  --d-accent: var(--brick); --d-accent-soft: var(--brick-soft); --d-sel: var(--brick);
  --d-inset: rgba(120, 80, 30, 0.08); --d-field: rgba(255, 252, 245, 0.75); --d-field-line: var(--paper-rim);
  --viu-blue: var(--brick); --viu-blue-soft: var(--brick-soft); --yg-tab-active-fill: var(--brick-soft);
  --yg-plate-top: var(--paper-card-top); --yg-plate-bottom: var(--paper-card-bottom); --yg-plate-rim-bottom: var(--paper-rim);
  --yg-line: var(--paper-line);
  --yg-light-honey: rgba(255, 220, 170, 0.45); --yg-light-titan: rgba(225, 160, 120, 0.28); --yg-light-amber: rgba(255, 200, 140, 0.35);
}
:root[data-theme="light"] .yg-ground {
  background: radial-gradient(70% 45% at 20% 8%, rgba(255, 220, 170, 0.45), transparent 70%), radial-gradient(60% 40% at 92% 60%, rgba(225, 160, 120, 0.28), transparent 70%), linear-gradient(165deg, var(--paper-1), var(--paper-2) 55%, var(--paper-3));
}
:root[data-theme="light"] .cal { --line: var(--paper-line); --grid-soft: rgba(110, 80, 45, 0.08); }
:root[data-theme="light"] .cal-strip { background: rgba(255, 250, 240, 0.5); }
/* selecțiile din pagină pe cărămiziu (foile bleumarin își păstrează albastrul) */
:root[data-theme="light"] #app .seg input:checked + span, :root[data-theme="light"] #app .days input:checked + span,
:root[data-theme="light"] #app .yg-segment > button[aria-selected="true"], :root[data-theme="light"] #app .filter.yg-chip.yg-chip--selected {
  background: linear-gradient(180deg, #C8673A, #A9481F); color: #FFFFFF; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35), 0 6px 14px -6px rgba(169, 72, 31, 0.8); }
:root[data-theme="light"] #app .yg-segment, :root[data-theme="light"] #app .seg.yg-segment { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5); }
/* rândul simulării din Setări: hârtie, ca sala din calendar */
:root[data-theme="light"] .sim-row { background: linear-gradient(180deg, #FCF5E8, #F2E3C8) !important; box-shadow: inset 0 1.2px 0 #FFFFFF, inset 0 0 0 1px rgba(176, 128, 60, 0.35) !important; }
:root[data-theme="light"] .sim-row > span:first-child b { color: #B5651D; }

/* 31. De ales cu o atingere (pasul 1 din "Plăți verificate automat", decis de Daniel pe 17 oct.): la importul extrasului,
   încasările nesigure arată primii elevi posibili ca plăci; o atingere alege elevul și bifează încasarea. */
.tx-pick { grid-column: 2; display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 8px; margin: 4px 0 2px; --h: #8b5cf6; }
.tx-opt { display: grid; gap: 2px; min-height: 52px; padding: 8px 12px; border-radius: 14px; text-align: left; font: inherit; color: inherit; cursor: pointer;
  border: 1px solid color-mix(in srgb, var(--h) 50%, transparent); background: color-mix(in srgb, var(--h) 16%, rgba(255,255,255,.04));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.14); transition: transform .12s ease; -webkit-tap-highlight-color: transparent; }
.tx-opt:active { transform: scale(.97); }
.tx-opt b { font-size: 15px; font-weight: 650; line-height: 1.15; }
.tx-opt small { font-size: 12px; opacity: .74; line-height: 1.25; }
.tx-opt.on { --h: #22c55e; background: color-mix(in srgb, var(--h) 34%, rgba(255,255,255,.06)); box-shadow: inset 0 0 0 1.5px var(--h), 0 6px 16px color-mix(in srgb, var(--h) 30%, transparent); }
.tx-opt.on b::before { content: '\2713\00a0'; color: var(--h); }
