/* Plus Jakarta Sans, găzduit în aplicație (fără Google Fonts, pentru GDPR). Licență: fonts/OFL.txt */
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-display: swap; font-weight: 400; src: url(../fonts/pjs-latin-ext-400.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-display: swap; font-weight: 400; src: url(../fonts/pjs-latin-400.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-display: swap; font-weight: 500; src: url(../fonts/pjs-latin-ext-500.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-display: swap; font-weight: 500; src: url(../fonts/pjs-latin-500.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-display: swap; font-weight: 600; src: url(../fonts/pjs-latin-ext-600.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-display: swap; font-weight: 600; src: url(../fonts/pjs-latin-600.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-display: swap; font-weight: 700; src: url(../fonts/pjs-latin-ext-700.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-display: swap; font-weight: 700; src: url(../fonts/pjs-latin-700.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-display: swap; font-weight: 800; src: url(../fonts/pjs-latin-ext-800.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-display: swap; font-weight: 800; src: url(../fonts/pjs-latin-800.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* Stilul aprobat: Plus Jakarta Sans și paleta din CLAUDE.md. Culorile logo-ului rămân doar în logo. */
:root {
  --inchis: #102A3A;
  --albastru: #0B5A7A;
  --cer: #12B8EC;
  --verde: #178A6B;
  --piersica: #FFC59A;
  --rosu: #C24A37;
  --fundal: #F3F6F8;
  --text-slab: #55697A;
  --linie: #DCE5EA;
  --umbra: 0 3px 14px rgba(16, 42, 58, .06);
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  min-height: 100vh;
  background: var(--fundal);
  color: var(--inchis);
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-size: 15px;
}
a { color: var(--albastru); }
a:hover { color: #084760; }
h1 { margin: 0; font-size: 22px; font-weight: 800; letter-spacing: -0.4px; }
.sub { margin: 4px 0 0; font-size: 13px; color: var(--text-slab); font-weight: 500; }

/* Antetul paginilor de intrare (ca în mockup/Main.dc.html) */
.antet-intrare {
  position: relative;
  overflow: hidden;
  background: var(--cer);
  padding: calc(34px + env(safe-area-inset-top)) 24px 24px;
  border-radius: 0 0 30px 30px;
}
.antet-umbra { position: absolute; right: -10px; top: 14px; width: 96px; height: 144px; opacity: .2; }
.antet-marca { position: relative; display: flex; align-items: flex-end; gap: 14px; color: #fff; max-width: 440px; margin: 0 auto; }
.logo-mare { width: 38px; height: 57px; flex: none; }
.marca-mica { font-weight: 700; font-size: 11px; letter-spacing: 6px; }
.marca-mare { font-weight: 800; font-size: 28px; line-height: 1; letter-spacing: -0.5px; }

/* Formulare publice */
.formular { max-width: 440px; margin: 0 auto; padding: 20px 20px 40px; display: flex; flex-direction: column; gap: 10px; }
.formular form { display: flex; flex-direction: column; gap: 8px; margin-top: 6px; }
label { font-size: 13px; font-weight: 700; margin-top: 4px; }
input[type=email], input[type=password], input[type=text], input[type=tel] {
  width: 100%;
  height: 48px;
  padding: 0 14px;
  font: 600 16px 'Plus Jakarta Sans', system-ui, sans-serif;
  color: var(--inchis);
  background: #fff;
  border: 1.5px solid transparent;
  border-radius: 14px;
  box-shadow: var(--umbra);
}
input:focus { outline: none; border-color: var(--cer); }
.buton {
  display: flex; align-items: center; justify-content: center;
  min-height: 48px; margin-top: 8px; padding: 0 18px;
  border: none; border-radius: 14px;
  background: var(--albastru); color: #fff;
  font: 700 15px 'Plus Jakarta Sans', system-ui, sans-serif;
  text-decoration: none; cursor: pointer;
}
.buton:hover { background: #084760; color: #fff; }
.link-mic { align-self: center; margin-top: 6px; font-size: 14px; font-weight: 700; }
.eroare { margin: 4px 0 0; padding: 10px 12px; border-radius: 12px; background: #FDE8E3; color: #8E3324; font-size: 14px; font-weight: 600; }
.mesaj { margin: 0 0 8px; padding: 10px 12px; border-radius: 12px; background: #DDF3EC; color: #0F6B52; font-size: 14px; font-weight: 600; }

/* Aplicația, după intrare */
.continut { padding: 18px 16px 110px; max-width: 1100px; }
.antet-pagina { margin-bottom: 16px; }
.titlu-sectiune { margin: 0 0 10px; font-size: 13px; font-weight: 800; color: var(--text-slab); letter-spacing: .5px; text-transform: uppercase; }
.card { background: #fff; border-radius: 20px; box-shadow: var(--umbra); }
.grila { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.sectiune { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 16px; font-weight: 700; }
.eticheta { flex: none; padding: 3px 10px; border-radius: 999px; background: var(--fundal); color: var(--text-slab); font-size: 12px; font-weight: 700; }

/* Telefon: meniul jos */
.jos {
  position: fixed; left: 14px; right: 14px; bottom: calc(14px + env(safe-area-inset-bottom));
  height: 62px; padding: 0 8px;
  display: flex; justify-content: space-around; align-items: center;
  background: var(--inchis); border-radius: 22px;
  box-shadow: 0 10px 26px rgba(16, 42, 58, .28);
}
.jos a, .jos button {
  display: flex; align-items: center; justify-content: center;
  height: 44px; min-width: 44px; padding: 0 16px;
  border: none; background: none; border-radius: 14px;
  color: #A9C0CC; font: 700 13px 'Plus Jakarta Sans', system-ui, sans-serif;
  text-decoration: none; cursor: pointer;
}
.jos a:hover, .jos button:hover { color: #fff; }
.jos .on { background: #fff; color: var(--inchis); }

/* Calculator: meniul lateral */
.calc { display: flex; }
.lateral {
  position: sticky; top: 0; height: 100vh; width: 250px; flex: none;
  display: flex; flex-direction: column; gap: 4px; padding: 18px 12px;
  background: var(--inchis);
}
.lateral-marca { display: flex; align-items: center; gap: 10px; padding: 4px 10px 18px; color: #fff; font-weight: 800; text-decoration: none; }
.lateral-marca:hover { color: #fff; }
.lateral-marca .logo { width: 22px; height: 33px; }
.sn {
  display: flex; align-items: center; width: 100%; min-height: 46px; padding: 8px 14px;
  border: none; background: none; border-radius: 14px;
  color: #C5D6DE; font: 600 14px 'Plus Jakarta Sans', system-ui, sans-serif;
  text-align: left; text-decoration: none; cursor: pointer;
}
.sn:hover { background: rgba(255, 255, 255, .08); color: #fff; }
.sn.on { background: var(--cer); color: var(--inchis); font-weight: 800; }
.lateral-jos { margin-top: auto; }
.cine { padding: 8px 14px; color: #fff; font-weight: 700; font-size: 14px; }
.cine span { display: block; color: #A9C0CC; font-size: 12px; font-weight: 600; }
.calc .continut { flex: 1; padding: 28px 32px 40px; }

@media (max-width: 760px) {
  .calc { display: block; }
  .lateral { position: static; height: auto; width: auto; flex-direction: row; flex-wrap: wrap; align-items: center; }
  .lateral-marca { padding-bottom: 4px; }
  .lateral-jos { margin-top: 0; margin-left: auto; display: flex; align-items: center; }
  .calc .continut { padding: 18px 16px 40px; }
}

@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } }

/* ---------- Componente comune pentru toate modulele ---------- */
/* Folosește doar aceste clase; nu scrie stiluri direct în pagini (politica de securitate le blochează). */

.rand { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.rand-intre { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.stiva { display: flex; flex-direction: column; gap: 10px; }
.grila-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px; }
.grila-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.inline { display: inline; margin: 0; }
.spatiu { margin-top: 16px; }
.dreapta { text-align: right; }
.ascuns { position: absolute; left: -9999px; }

.card { padding: 0; }
.card-continut { padding: 16px; }
.card h2, .h2 { margin: 0 0 10px; font-size: 18px; font-weight: 800; }
.cifra { font-size: 28px; font-weight: 800; line-height: 1; }
.cifra-eticheta { font-size: 12px; font-weight: 700; color: var(--text-slab); }
.cifra-card { padding: 16px; text-decoration: none; color: var(--inchis); display: block; }
a.cifra-card:hover { color: var(--inchis); box-shadow: 0 10px 22px rgba(16, 42, 58, .12); }

.lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.element { padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; }
.element-titlu { font-weight: 700; }
.element-rand { display: flex; align-items: center; gap: 10px; padding: 10px 14px; }
.element-rand .creste { flex: 1; min-width: 0; }
.necitit { border-left: 4px solid var(--cer); }
.taiat { text-decoration: line-through; color: var(--text-slab); }
.gol { padding: 24px; text-align: center; color: var(--text-slab); background: #fff; border-radius: 20px; }

.avatar { width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex: none; font-weight: 800; font-size: 12px; background: #E0F4FC; color: #0A5677; }

.pill { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; white-space: nowrap; background: var(--fundal); color: var(--text-slab); }
.pill-verde { background: #DDF3EC; color: #0F6B52; }
.pill-rosu { background: #FDE8E3; color: #8E3324; }
.pill-piersica { background: #FFEBDD; color: #8A4419; }
.pill-cer { background: #E0F4FC; color: #0A5677; }
.pill-inchis { background: var(--inchis); color: #fff; }
.punct { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--piersica); }
.alergie { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 800; background: #FDE8E3; color: #8E3324; }

.buton-alb { background: #fff; color: var(--inchis); box-shadow: inset 0 0 0 1.5px #D3DEE4; }
.buton-alb:hover { background: #fff; color: var(--inchis); box-shadow: inset 0 0 0 1.5px var(--albastru); }
.buton-verde { background: var(--verde); }
.buton-verde:hover { background: #127055; }
.buton-pericol { background: var(--rosu); }
.buton-pericol:hover { background: #A33C2C; }
.buton-piersica { background: var(--piersica); color: var(--inchis); }
.buton-piersica:hover { background: #F5B585; color: var(--inchis); }
.buton-mic { min-height: 36px; margin-top: 0; padding: 0 12px; font-size: 13px; border-radius: 12px; }
.buton-mare { min-height: 64px; font-size: 18px; border-radius: 18px; }
.buton-plin { width: 100%; }
.apel { display: inline-flex; align-items: center; justify-content: center; height: 36px; padding: 0 12px; border-radius: 11px; background: var(--verde); color: #fff; font-weight: 700; font-size: 13px; text-decoration: none; }
.apel:hover { color: #fff; background: #127055; }

/* Formulare în aplicație */
.formular-app { display: flex; flex-direction: column; gap: 8px; max-width: 640px; }
.formular-app .camp { display: flex; flex-direction: column; gap: 4px; }
.camp-ajutor { font-size: 12px; color: var(--text-slab); }
select, textarea, input[type=date], input[type=time], input[type=number], input[type=search], input[type=file], input[type=month] {
  width: 100%; min-height: 48px; padding: 10px 14px;
  font: 600 15px 'Plus Jakarta Sans', system-ui, sans-serif; color: var(--inchis);
  background: #fff; border: 1.5px solid #D3DEE4; border-radius: 14px;
}
textarea { min-height: 96px; resize: vertical; }
select:focus, textarea:focus { outline: none; border-color: var(--cer); }
.formular-app input[type=email], .formular-app input[type=password], .formular-app input[type=text], .formular-app input[type=tel] { border-color: #D3DEE4; box-shadow: none; }
.bifa { display: flex; align-items: flex-start; gap: 10px; padding: 10px 12px; background: #fff; border-radius: 14px; font-weight: 600; cursor: pointer; }
.bifa input { width: 20px; height: 20px; margin: 2px 0 0; flex: none; accent-color: var(--albastru); }
.optiuni { display: flex; flex-wrap: wrap; gap: 8px; }
.optiune { position: relative; }
.optiune input { position: absolute; opacity: 0; }
.optiune span { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: 12px; background: #fff; box-shadow: inset 0 0 0 1.5px #D3DEE4; font-weight: 700; cursor: pointer; }
.optiune input:checked + span { background: var(--albastru); color: #fff; box-shadow: none; }
.optiune input:focus-visible + span { outline: 2px solid var(--cer); }
.alegere-mare { display: block; padding: 18px; border-radius: 20px; background: #fff; box-shadow: var(--umbra); cursor: pointer; }
.alegere-mare input { margin-right: 8px; accent-color: var(--albastru); }
.alegere-mare strong { font-size: 17px; }

/* Tabele (calculator) */
.tabel-container { overflow-x: auto; background: #fff; border-radius: 20px; box-shadow: var(--umbra); }
table.tabel { border-collapse: collapse; width: 100%; font-size: 14px; }
.tabel th { text-align: left; font-size: 12px; color: var(--text-slab); font-weight: 700; padding: 12px 10px; border-bottom: 1px solid #E1E8EC; white-space: nowrap; }
.tabel td { padding: 11px 10px; border-bottom: 1px solid #EDF2F5; vertical-align: middle; }
.tabel tr:last-child td { border-bottom: none; }
.tabel a { font-weight: 700; }

/* File (tab-uri) și filtre */
.file { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.file a { padding: 8px 14px; border-radius: 12px; background: #fff; color: var(--inchis); font-weight: 700; font-size: 14px; text-decoration: none; box-shadow: var(--umbra); }
.file a.on { background: var(--inchis); color: #fff; }
.filtre { display: flex; gap: 8px; flex-wrap: wrap; align-items: flex-end; margin-bottom: 12px; }
.filtre .camp { min-width: 160px; }

/* Blocuri informative */
.info { padding: 12px 14px; border-radius: 14px; background: #E0F4FC; color: #0A5677; font-size: 14px; font-weight: 600; }
.atentie { padding: 12px 14px; border-radius: 14px; background: #FFEBDD; color: #8A4419; font-size: 14px; font-weight: 600; }
.banda-inchisa { padding: 12px 14px; border-radius: 18px; background: var(--inchis); color: #fff; }

.inactiv { opacity: .6; }
.iesire-meniu { margin-top: 20px; }
.lateral-lista { display: flex; flex-direction: column; gap: 2px; overflow-y: auto; }

@media print {
  .lateral, .jos, .nu-tipari { display: none !important; }
  body { background: #fff; }
  .card, .tabel-container { box-shadow: none; }
}

/* ---------- Înscrieri ---------- */
.pasi { display: flex; gap: 6px; margin-bottom: 4px; }
.pasi .pas { flex: 1; height: 6px; border-radius: 3px; background: #D3DEE4; }
.pasi .pas.on { background: var(--albastru); }
.inscriere { max-width: 640px; display: flex; flex-direction: column; gap: 10px; }
.bloc { display: block; }
.spatiu-jos { margin-bottom: 12px; }
.alegere-academia { background: var(--cer); }
.alegere-mare .sub { margin-top: 6px; }
.alegere-academia .sub { color: var(--inchis); }
.activitate-alegere { display: flex; flex-direction: column; gap: 8px; }
.activitate-alegere .bifa { padding: 0; }
.activitate-alegere .atentie, .activitate-oferta .atentie { margin: 6px 0 0; }
.inactiva { opacity: .75; }
.activitate-oferta p { margin: 6px 0 0; }
.tarife { margin: 8px 0 0; padding-left: 18px; font-weight: 600; font-size: 14px; }
/* ---------- Copii (fișa, grupa, retrași) și Echipa ---------- */
.avatar-mare { width: 52px; height: 52px; font-size: 16px; }
.alergie-mare { margin: 0; padding: 10px 12px; border-radius: 14px; background: #FDE8E3; color: #8E3324; font-weight: 800; }
.program-zi { display: grid; grid-template-columns: 90px 1fr 1fr; gap: 8px; align-items: center; }
.program-zi input[type=time] { min-height: 40px; padding: 6px 10px; }
.select-mic, .input-mic, input.input-mic[type=text], input.input-mic[type=tel], input.input-mic[type=date] {
  width: auto; min-height: 36px; height: 36px; padding: 4px 10px; font-size: 14px;
  border: 1.5px solid #D3DEE4; border-radius: 12px; box-shadow: none;
}
.creste { flex: 1; min-width: 0; }
.spatiu-mic { margin-top: 8px; }
.apel-mic { height: 28px; padding: 0 10px; font-size: 12px; border-radius: 9px; }
.contact-rand { gap: 6px; padding: 2px 0; }
.stare-in_sala { background: #DDF3EC; color: #0F6B52; }
.stare-la_optional { background: #E0F4FC; color: #0A5677; }
.stare-plecat { background: var(--fundal); color: var(--text-slab); }
.stare-absent { background: #FDE8E3; color: #8E3324; }
.stare-asteptat { background: #FFEBDD; color: #8A4419; }
.matrice th, .matrice td { text-align: center; }
.matrice th:first-child, .matrice td:first-child { text-align: left; white-space: nowrap; }
/* ---------- Transport, vacanțe, meniu ---------- */
.tr-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.tr-copil { display: flex; align-items: center; gap: 10px; padding: 10px 2px; border-bottom: 1px solid #EDF2F5; }
.tr-copil:last-child { border-bottom: none; }
.tr-copil .creste { flex: 1; min-width: 0; }
.tr-taiat .element-titlu, .tr-taiat .sub { opacity: .55; }
.tr-numar { flex: none; width: 26px; color: var(--text-slab); font-weight: 800; font-size: 13px; }
.tr-scoala { margin: 14px 0 4px; font-size: 14px; font-weight: 800; color: var(--albastru); }
.tr-bifa {
  flex: none; width: 44px; height: 44px; border-radius: 14px; cursor: pointer;
  border: 2px solid #B9C7CF; background: #fff; color: #fff; font: 800 20px 'Plus Jakarta Sans', system-ui, sans-serif;
}
.tr-bifa.on { background: var(--verde); border-color: var(--verde); }
.tr-bifa:focus-visible { outline: 2px solid var(--cer); outline-offset: 2px; }
.tr-ora { flex: none; min-width: 64px; font-size: 20px; font-weight: 800; color: var(--albastru); }
.tr-zile { border: none; margin: 0; padding: 0; }
.tr-zile legend { font-size: 13px; font-weight: 700; margin-bottom: 6px; }

.va-aleasa { background: #EAF6FB; border-radius: 14px; }
.va-numar { display: inline-flex; align-items: center; justify-content: center; min-width: 48px; height: 32px; padding: 0 10px; border-radius: 10px; background: var(--fundal); color: var(--inchis); font-weight: 800; text-decoration: none; }
.va-numar.va-vin { background: #DDF3EC; color: #0F6B52; }
.va-numar.va-nu_vin { background: #FDE8E3; color: #8E3324; }
.va-numar.va-fara { background: var(--piersica); color: var(--inchis); }
.va-numar.on, .va-numar:hover { background: var(--inchis); color: #fff; }
.va-bloc { padding: 12px; border-radius: 14px; background: var(--fundal); }
.va-copii { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; font-size: 14px; }
.va-copii li { display: flex; justify-content: space-between; gap: 8px; }
.va-copii .sub { margin: 0; }
.va-zi { border: none; display: flex; flex-direction: column; gap: 8px; }
.va-zi legend { float: left; width: 100%; margin-bottom: 8px; font-size: 16px; }
.va-ore { margin-top: 4px; }
.va-pagina { margin-bottom: 24px; }
.va-tiparit { margin-bottom: 12px; break-inside: avoid; }

.ms-zi { border: none; margin: 0; padding: 0 0 8px; border-bottom: 1px solid #EDF2F5; }
.ms-fisier { text-decoration: none; color: var(--inchis); }
.ms-feluri { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ms-feluri div { font-weight: 700; }
.ms-azi { box-shadow: inset 0 0 0 2px var(--cer), var(--umbra); }
.ms-bloc { display: block; }
.ms-portie { margin-top: 8px; padding: 8px 12px; border-left: 4px solid var(--piersica); background: var(--fundal); border-radius: 8px; }
.ms-portie div { font-weight: 700; }

@media print {
  .va-pagina { break-after: page; }
  .va-pagina:last-child { break-after: auto; }
  .continut { padding: 0; }
}
/* ---------- Ziua (prezență, plecări, poartă, bucătărie, pontaj) ---------- */
.zi-avatar { background: #E0F4FC; color: var(--albastru); font-size: 13px; }
.zi-detalii { gap: 6px; margin-top: 4px; }
.zi-marcare { gap: 6px; flex-wrap: nowrap; }
.zi-rand { align-items: center; }
.zi-cifre { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
.zi-pe-inchis { color: #C5D6DE; }
.zi-banda { gap: 12px; }
.zi-anunt { margin-bottom: 8px; }
.zi-link { text-decoration: none; color: var(--inchis); }
.zi-link:hover { color: var(--inchis); box-shadow: 0 10px 22px rgba(16, 42, 58, .12); }
.zi-verde { border-left: 4px solid var(--verde); background: #fff; border-radius: 12px; }
.zi-rosu { border-left: 4px solid var(--rosu); background: #fff; border-radius: 12px; }
.zi-contact { gap: 6px; margin-bottom: 4px; white-space: nowrap; }
.zi-pontaj .buton-mare { min-height: 110px; font-size: 22px; }
.zi-pontaj .buton[disabled] { opacity: .45; cursor: default; }
.zi-cod { font-size: 64px; font-weight: 800; letter-spacing: 10px; text-align: center; padding: 18px 0; color: var(--inchis); }
.card details summary { cursor: pointer; }
.card details[open] summary { margin-bottom: 10px; }
/* Butoanele de pe teren: mari, ușor de nimerit cu o mână (minimum 44px). */
.zi-marcare { gap: 10px; }
.zi-buton-marcare { min-height: 44px; min-width: 48px; margin-top: 0; padding: 0 12px; font-size: 15px; border-radius: 12px; }
.zi-buton-cer { background: var(--cer); color: var(--inchis); }
.zi-buton-cer:hover { background: var(--cer); color: var(--inchis); box-shadow: inset 0 0 0 2px var(--albastru); }
.zi-buton-cauta { min-height: 44px; margin-top: 0; }
.zi-persoana { gap: 8px; padding: 4px 8px; align-items: center; }
.zi-persoana .apel, .zi-anunt .apel { height: 44px; }
.zi-butoane-predare { gap: 10px; }
.zi-butoane-predare .buton { margin-top: 0; }
.zi-in-cladire summary { list-style: none; }
.zi-in-cladire summary::-webkit-details-marker { display: none; }
.zi-sosita { opacity: .6; }
.zi-pastila-data { display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; text-decoration: none; }
/* Bucătăria: cifra mare de acum; modul tabletă are totul mare, lizibil de la distanță. */
.bc-acum { font-size: 22px; font-weight: 800; }
.bc-acum strong { font-size: 40px; }
.bc-titlu { font-size: 24px; font-weight: 800; }
.bc-sediu strong { font-size: 24px; }
.bc-grupa strong { font-size: 18px; }
.bc-alergen { margin-top: 8px; }
.bc-butoane { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; margin: 0 0 12px; }
.bc-butoane .buton { margin-top: 0; min-height: 48px; display: flex; align-items: center; justify-content: center; text-align: center; }
.bc-tableta .bc-butoane .buton { min-height: 64px; font-size: 20px; }
.bc-tableta .continut { font-size: 20px; }
.bc-tableta .bc-acum { font-size: 34px; }
.bc-tableta .bc-acum strong { font-size: 72px; }
.bc-tableta .bc-titlu { font-size: 40px; }
.bc-tableta .bc-sediu strong { font-size: 44px; }
.bc-tableta .bc-grupa { font-size: 22px; padding: 4px 0; }
.bc-tableta .bc-grupa strong { font-size: 28px; }
.bc-tableta .h2 { font-size: 28px; }
.bc-tableta .titlu-sectiune { font-size: 18px; }
.bc-tableta .alergie, .bc-tableta .pill { font-size: 18px; }
.bc-tableta .cifra { font-size: 48px; }
.bc-tableta .bc-vacanta { font-size: 24px; font-weight: 800; }
.bc-tableta .file a { padding: 14px 20px; font-size: 18px; }
/* ---------- Opționale și plăți ---------- */
.op-creste { flex: 1; min-width: 0; }
.op-pe-inchis { color: #A9C0CC; }
.op-zi { display: inline-flex; flex-direction: column; align-items: center; gap: 2px; }
.op-marcaj { display: inline-flex; align-items: center; justify-content: center; min-width: 30px; height: 30px; padding: 0 6px; border-radius: 9px; background: var(--fundal); color: var(--text-slab); font-size: 12px; font-weight: 800; }
.op-prezent { background: #DDF3EC; color: #0F6B52; }
.op-absent { background: #FDE8E3; color: #8E3324; }
.op-absent_anuntat { background: #FFEBDD; color: #8A4419; }
.op-iban { font-weight: 800; letter-spacing: .5px; word-break: break-all; }
.op-iban-rand { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 10px 12px; border-radius: 14px; background: var(--fundal); }
.op-cont { margin-bottom: 12px; }
.op-cont .lista li { padding: 8px 0; border-bottom: 1px solid #EDF2F5; }
/* Opțional, Opționale și orar: locțiitorii, orarul pe zile, datele de contact din tabel */
.op-loctiitori { border: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.op-loctiitori legend { font-size: 13px; font-weight: 700; margin-bottom: 6px; padding: 0; }
.op-orar td { vertical-align: top; min-width: 120px; }
.op-orar-element { display: block; margin-bottom: 6px; font-size: 13px; line-height: 1.35; }
.op-orar-element:last-child { margin-bottom: 0; }
.op-contact { display: block; font-size: 13px; line-height: 1.4; margin-bottom: 4px; }
.op-contact:last-child { margin-bottom: 0; }
/* ---------- Condică, teme, anunțuri ---------- */
.cifra-pe-inchis { color: #A9C0CC; }
.creste-camp { flex: 1; min-width: 200px; }
.col-numar input { max-width: 110px; }
.bloc { display: block; }
.alegere-radio { width: 20px; height: 20px; flex: none; accent-color: var(--albastru); }
.tema-copil { border: none; display: flex; flex-direction: column; gap: 10px; }
.tema-copil legend { float: left; width: 100%; padding: 0; margin-bottom: 4px; }
.anunt-mesaj { margin: 4px 0; white-space: pre-line; line-height: 1.5; }
.anunt-poza { display: block; max-width: 100%; max-height: 420px; border-radius: 14px; object-fit: contain; background: var(--fundal); }

/* Pagini de tipărit (cererea de concediu, certificatul de voluntariat) */
.foaie { max-width: 760px; margin: 16px 0; padding: 48px 56px; background: #fff; border-radius: 8px; box-shadow: var(--umbra); line-height: 1.6; }
.foaie-antet { margin: 0 0 32px; font-size: 13px; color: var(--text-slab); }
.foaie-titlu { text-align: center; font-size: 20px; letter-spacing: 1px; }
.foaie-centru { text-align: center; margin: 4px 0 28px; }
.foaie-text { text-align: justify; }
.foaie-date { display: grid; grid-template-columns: 200px 1fr; gap: 8px 16px; margin: 20px 0; }
.foaie-date dt { font-weight: 700; }
.foaie-date dd { margin: 0; }
.foaie-semnaturi { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; margin-top: 48px; }
.foaie-semnaturi p { margin: 2px 0; }
.foaie-linie { margin-top: 28px !important; color: var(--text-slab); }
@media (max-width: 760px) {
  .foaie { padding: 24px 20px; }
  .foaie-date { grid-template-columns: 1fr; }
}
@media print {
  .foaie { box-shadow: none; margin: 0; padding: 0; max-width: none; }
  body:has(.foaie) .continut { padding: 0; }
}

/* ---------- Integrare (legături între module) ---------- */
.integrare-evidentiat { border-left: 4px solid var(--piersica); }
.integrare-in-desfasurare { border-left: 4px solid var(--verde); }

/* ---------- Mod demo ---------- */
.banda-demo { padding: 8px 16px; background: var(--piersica); color: var(--inchis); font-size: 13px; font-weight: 800; text-align: center; }
.calc .banda-demo { position: fixed; left: 0; right: 0; bottom: 0; z-index: 10; }

/* ---------- Notificări pe telefon (Web Push) și codul QR de pontaj ---------- */
[hidden] { display: none !important; }
.zi-qr { display: block; width: 260px; max-width: 100%; height: auto; margin: 12px auto 0; padding: 8px; background: #fff; border-radius: 12px; }

/* ---------- Confirmare în doi pași ---------- */
.confirmare { display: inline-block; position: relative; }
.confirmare > summary { list-style: none; cursor: pointer; }
.confirmare > summary::-webkit-details-marker { display: none; }
.confirmare[open] > summary { opacity: .6; }
.confirmare-panou { margin-top: 8px; padding: 12px; border-radius: 14px; background: #FDE8E3; color: #8E3324; font-weight: 600; font-size: 14px; }
.confirmare-panou p { margin: 0 0 8px; }
button[disabled], .buton[disabled] { opacity: .6; cursor: wait; }

/* ---------- Telefon: ținte de atingere de cel puțin 44px și meniul de jos pe un rând ---------- */
.jos { gap: 4px; }
.jos a, .jos button {
  flex: 0 1 auto; min-width: 44px; padding: 0 12px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 12px;
}
.jos a.on { flex-shrink: 0; max-width: 55%; }
@media (max-width: 760px), (pointer: coarse) {
  .buton-mic { min-height: 44px; }
  .apel { height: auto; min-height: 44px; }
  .apel-mic { height: auto; min-height: 44px; }
  .optiune span { min-height: 44px; }
  .optiuni { gap: 10px; }
  .select-mic, .input-mic, input.input-mic[type=text], input.input-mic[type=tel], input.input-mic[type=date] { min-height: 44px; height: 44px; }
  .file { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; -webkit-overflow-scrolling: touch; }
  .file a { display: inline-flex; align-items: center; flex: none; min-height: 44px; white-space: nowrap; }
}

/* ---------- Copii: profilul comun, documentele și dosarul ---------- */
.date-profil { display: grid; grid-template-columns: minmax(120px, max-content) 1fr; gap: 6px 12px; margin: 0; }
.date-profil dt { color: var(--text-slab); font-size: 13px; }
.date-profil dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.bife-documente { border: 0; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 8px; }
.bife-documente legend { font-weight: 700; margin-bottom: 6px; }
.lista-lipsa { margin: 0; padding-left: 20px; }
.lista-lipsa li { margin: 2px 0; }
.cnp-mic { display: block; font-size: 12px; color: var(--text-slab); font-variant-numeric: tabular-nums; }
@media (max-width: 480px) { .date-profil { grid-template-columns: 1fr; } .date-profil dd { margin-bottom: 6px; } }
/* ---------- Prezența și situația în sediu (D1) ---------- */
.zi-situatie { display: flex; flex-direction: column; gap: 6px; }
.zi-inactiv, .zi-inactiv[disabled] { opacity: .4; cursor: not-allowed; }
.zi-marcare { flex-wrap: wrap; }
.zi-stari { gap: 6px; flex-wrap: wrap; align-items: center; }
.zi-teme > summary { cursor: pointer; font-weight: 700; min-height: 44px; padding: 10px 0; }
.zi-teme > * + * { margin-top: 8px; }
.zi-teme > .cifra-eticheta { display: block; }
.zi-teme-butoane .buton { white-space: normal; }
/* ---------- Bucătăria și asistenta (meniuri speciale, desert, rețetar) ---------- */
.bc-special { margin-top: 10px; box-shadow: inset 0 0 0 1.5px #FDE8E3; }
.bc-special strong { font-size: 20px; color: var(--rosu); }
/* ---------- Autentificare: „Arată parola / Ascunde parola” și parola generată ---------- */
.camp-parola { display: flex; gap: 8px; align-items: stretch; }
.camp-parola input { flex: 1 1 auto; min-width: 0; }
.camp-parola .buton-parola { flex: none; min-height: 44px; padding: 0 12px; border: 1px solid var(--linie); border-radius: 12px; background: #fff; color: var(--inchis); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.parola-generata { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 22px; font-weight: 700; letter-spacing: 1px; padding: 12px 14px; border-radius: 12px; background: var(--fundal); user-select: all; word-break: break-all; }

/* ---------- Mesaje ---------- */
.text-mesaj { white-space: pre-wrap; overflow-wrap: anywhere; margin: 6px 0 0; }

/* ---------- Înscrieri: Opționale extra (lista cu denumiri și pagina opționalului) ---------- */
.oe-nume { font-weight: 700; color: var(--inchis); text-decoration: none; min-height: 52px; }
.oe-nume:hover { color: var(--albastru); }
.oe-butoane a { min-height: 44px; display: inline-flex; align-items: center; }
.oe-afis { display: block; max-width: 100%; height: auto; border-radius: 14px; }
/* ---------- Evenimente ---------- */
.ev-cui { border: 0; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ev-cui legend { margin-bottom: 6px; }
.ev-sublista { margin-left: 22px; display: flex; flex-direction: column; gap: 6px; }
.ev-sublista[hidden] { display: none; }
.ev-grupe { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 6px; }
.ev-date { display: grid; grid-template-columns: max-content 1fr; gap: 4px 14px; margin: 0; }
.ev-date dt { font-weight: 700; color: var(--text-slab); font-size: 13px; }
.ev-date dd { margin: 0; }
.ev-cui-lista { margin: 4px 0 0; padding-left: 18px; }
.ev-cui-lista li { padding: 2px 0; }
.ev-trimiteri { margin: 0; padding-left: 18px; }
.ev-lista > summary { cursor: pointer; }
.ev-lista ol { margin: 8px 0 0; padding-left: 22px; }
.ev-lista li { padding: 3px 0; }
/* ---------- Jurnal modificări ---------- */
.jurnal-rand > summary { cursor: pointer; display: flex; flex-direction: column; gap: 2px; min-height: 44px; }
.jurnal-propozitie { font-weight: 600; overflow-wrap: anywhere; }
.jurnal-campuri { margin: 0; padding-left: 18px; font-size: 14px; overflow-wrap: anywhere; }
