/* Wirkes moodul 1 – telefon enne arvutit. Suured puutealad, vähe teksti. */

:root {
  --taust: #f1f5f9;
  --kaart: #ffffff;
  --tekst: #0f172a;
  --hall: #64748b;
  --joon: #e2e8f0;
  --roheline: #15803d;
  --roheline-taust: #dcfce7;
  --punane: #b91c1c;
  --sinine: #1d4ed8;
  --tume: #0f172a;
  /* J9: bränd (wirkes.ee) – kuld, tumeroheline, tumesinine */
  --brand-kuld: #c9b200;
  --brand-roheline: #063019;
  --brand-sinine: #2b344e;
}

* { box-sizing: border-box; }

/* Klassiselektorid (.leht, .valja, .riba) võidaksid brauseri oma [hidden]
   reegli üle. Ilma selleta on kõik peidetud plokid ekraanil lahti. */
[hidden] { display: none !important; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  padding: 0 0 6.5rem;
  background: var(--taust);
  color: var(--tekst);
  font: 17px/1.45 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  -webkit-tap-highlight-color: transparent;
}

/* --- ühenduse riba ------------------------------------------------------ */
.riba {
  position: sticky;
  top: 0;
  z-index: 40;
  padding: .6rem 1rem;
  font-size: .95rem;
  font-weight: 600;
  text-align: center;
  color: #fff;
  background: var(--punane);
}
.riba.ok { background: var(--roheline); }
/* Kollane = olukord, mitte viga: vana seis või ootel linnukesed. */
.riba.ootel { background: #f59e0b; color: #0f172a; }

/* --- päis --------------------------------------------------------------- */
.pais {
  background: var(--brand-roheline);
  color: #fff;
  padding: 1.1rem 1rem 1.2rem;
  padding-top: max(1.1rem, env(safe-area-inset-top));
}
.pais-rida {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  justify-content: space-between;
  max-width: 40rem;
  margin: 0 auto;
}
.paev-nupp {
  flex: 1;
  min-width: 0;
  display: block;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.paev-tekst {
  display: block;
  font-size: 1.3rem;
  font-weight: 700;
  letter-spacing: -.01em;
}
.paev-tekst::after {
  content: ' ▾';
  font-size: .8rem;
  color: #94a3b8;
}
.paev-nupp[aria-expanded="true"] .paev-tekst::after { content: ' ▴'; }
.kokkuvote {
  display: block;
  margin: .25rem 0 0;
  font-size: .95rem;
  color: #94a3b8;
  overflow-wrap: anywhere;
}

/* --- kalendririba -------------------------------------------------------- */
.kalender {
  max-width: 40rem;
  margin: .9rem auto 0;
}
.kalendri-riba {
  display: flex;
  gap: .35rem;
  justify-content: space-between;
}
.kalendri-riba button {
  flex: 1;
  min-width: 0;
  min-height: 56px;
  padding: .35rem .1rem;
  border: 1px solid #334155;
  border-radius: 10px;
  background: #1e293b;
  color: #cbd5e1;
  font: inherit;
  font-size: .75rem;
  line-height: 1.25;
  cursor: pointer;
}
.kalendri-riba button .nr {
  display: block;
  font-size: 1.05rem;
  font-weight: 700;
  color: #fff;
}
.kalendri-riba button[aria-pressed="true"] {
  background: var(--sinine);
  border-color: var(--sinine);
  color: #dbeafe;
}
.kalendri-riba button.tehtud-koik { border-color: var(--roheline); }
.kalendri-abi {
  margin: .6rem 0 0;
  font-size: .85rem;
  color: #94a3b8;
}
.nimi-nupp {
  flex: none;
  min-height: 44px;
  max-width: 9.5rem;
  padding: .5rem .8rem;
  border: 1px solid #334155;
  border-radius: 999px;
  background: #1e293b;
  color: #e2e8f0;
  font: inherit;
  font-size: .9rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
}

/* --- loend -------------------------------------------------------------- */
main {
  max-width: 40rem;
  margin: 0 auto;
  padding: .75rem .75rem 0;
}
/* --- teated: ajutine info, mitte töö ------------------------------------- */
.teated {
  list-style: none;
  margin: 0 0 .75rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .5rem;
}
.teade {
  display: flex;
  align-items: stretch;
  border: 1px solid #fcd34d;
  border-left: 5px solid #f59e0b;
  border-radius: 14px;
  background: #fffbeb;
  overflow: hidden;
}
.teade-sisu {
  flex: 1;
  min-width: 0;
  padding: .8rem .85rem;
}
.teade-title {
  display: block;
  font-weight: 700;
  color: #78350f;
  overflow-wrap: anywhere;
}
.teade-tekst {
  display: block;
  margin-top: .2rem;
  font-size: .92rem;
  color: #92400e;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}
.teade-alla {
  display: block;
  margin-top: .35rem;
  font-size: .8rem;
  color: #a16207;
}
.teade .muuda-nupp {
  border-left-color: #fcd34d;
  color: #a16207;
}

/* --- grupifilter --------------------------------------------------------- */
.filter {
  display: flex;
  gap: .4rem;
  overflow-x: auto;
  margin: 0 -.75rem .75rem;
  padding: 0 .75rem .25rem;
  scrollbar-width: none;
}
.filter::-webkit-scrollbar { display: none; }
.filter button {
  flex: none;
  min-height: 42px;
  padding: .4rem .85rem;
  border: 1px solid var(--joon);
  border-radius: 999px;
  background: #fff;
  color: #334155;
  font: inherit;
  font-size: .92rem;
  white-space: nowrap;
  cursor: pointer;
}
.filter button[aria-pressed="true"] {
  background: var(--tume);
  border-color: var(--tume);
  color: #fff;
}

.loend {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .5rem;
}
.punkt {
  display: flex;
  align-items: stretch;
  background: var(--kaart);
  border: 1px solid var(--joon);
  border-radius: 14px;
  overflow: hidden;
}
.punkt.tehtud { background: var(--roheline-taust); border-color: #bbf7d0; }
.punkt.ootel  { opacity: .55; }

.punkt-lyliti {
  flex: 1;
  display: flex;
  align-items: center;
  gap: .8rem;
  min-height: 68px;
  padding: .8rem .5rem .8rem .85rem;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.kast {
  flex: none;
  width: 30px;
  height: 30px;
  border: 2px solid #94a3b8;
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 19px;
  font-weight: 700;
  color: transparent;
  background: #fff;
}
.punkt.tehtud .kast {
  background: var(--roheline);
  border-color: var(--roheline);
  color: #fff;
}
.punkt-tekst { display: block; min-width: 0; }
.punkt-title {
  display: block;
  font-weight: 600;
  overflow-wrap: anywhere;
}
.punkt.tehtud .punkt-title { color: #14532d; }
.punkt-alla {
  display: block;
  margin-top: .15rem;
  font-size: .85rem;
  color: var(--hall);
  overflow-wrap: anywhere;
}
.punkt.tehtud .punkt-alla { color: var(--roheline); font-weight: 600; }
.silt {
  display: inline-block;
  margin-right: .4rem;
}
.silt.hilinenud { color: var(--punane); font-weight: 700; }

.muuda-nupp {
  flex: none;
  width: 52px;
  border: 0;
  border-left: 1px solid var(--joon);
  background: none;
  color: var(--hall);
  font-size: 1.15rem;
  cursor: pointer;
}
.punkt.tehtud .muuda-nupp { border-left-color: #bbf7d0; }

/* --- järjekorra nooled, ainult juhile ----------------------------------- */
.jarjekord {
  flex: none;
  display: flex;
  flex-direction: column;
  border-left: 1px solid var(--joon);
}
.punkt.tehtud .jarjekord { border-left-color: #bbf7d0; }
.jarjekord button {
  flex: 1;
  width: 40px;
  border: 0;
  background: none;
  color: var(--hall);
  font-size: .8rem;
  line-height: 1;
  cursor: pointer;
}
.jarjekord button[disabled] { opacity: .25; cursor: default; }
.jarjekord button + button { border-top: 1px solid var(--joon); }
.punkt.tehtud .jarjekord button + button { border-top-color: #bbf7d0; }

/* --- tähtsus ------------------------------------------------------------ */
.punkt.kriitiline { border-left: 5px solid #f59e0b; }
.punkt.sos        { border-left: 5px solid var(--punane); }

.plokk-pais {
  margin: .25rem .25rem .5rem;
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--hall);
}
.plokk-pais.sos {
  padding: .45rem .7rem;
  border-radius: 9px;
  color: #fff;
  background: var(--punane);
  letter-spacing: .08em;
}
#tulevik-plokk { margin-top: 1.75rem; }
#tulevik-plokk .punkt { background: #f8fafc; }
#tulevik-plokk .punkt-title { font-weight: 500; color: #475569; }

.tuhi {
  margin: 2.5rem 1rem;
  text-align: center;
  color: var(--hall);
}

/* --- lisamisnupp -------------------------------------------------------- */
.lisa-nupp {
  position: fixed;
  right: 1rem;
  bottom: calc(1rem + env(safe-area-inset-bottom));
  z-index: 30;
  width: 60px;
  height: 60px;
  border: 0;
  border-radius: 50%;
  background: var(--sinine);
  color: #fff;
  font-size: 2rem;
  line-height: 1;
  box-shadow: 0 6px 20px rgba(15, 23, 42, .3);
  cursor: pointer;
}

/* --- lehed (modaalid) --------------------------------------------------- */
.leht {
  position: fixed;
  /* Klaviatuuri avanedes seab app.js --vv-h/--vv-top nähtava ala järgi,
     et leht (ja väli, mida trükitakse) jääks klaviatuuri kohale. */
  top: var(--vv-top, 0);
  left: 0;
  right: 0;
  height: var(--vv-h, 100%);
  z-index: 50;
  background: rgba(15, 23, 42, .5);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.leht-sisu {
  width: 100%;
  max-width: 40rem;
  background: var(--kaart);
  border-radius: 18px 18px 0 0;
  padding: 1.25rem 1rem calc(1.5rem + env(safe-area-inset-bottom));
  margin-top: auto;
}
.leht h2 { margin: 0 0 .35rem; font-size: 1.2rem; }
.abi { margin: 0 0 .9rem; color: var(--hall); font-size: .9rem; font-style: normal; }

.valja {
  display: block;
  border: 0;
  margin: 0 0 1rem;
  padding: 0;
}
.valja > span, .valja > legend {
  display: block;
  margin-bottom: .35rem;
  font-size: .9rem;
  font-weight: 600;
  color: #334155;
  padding: 0;
}
.valja em { color: var(--hall); font-weight: 400; font-style: normal; }
.valja > .abi { margin: .35rem 0 0; display: block; }

input[type="text"], input[type="number"], input[type="date"],
input[type="email"], input[type="tel"], input[type="password"], textarea {
  width: 100%;
  min-height: 50px;
  padding: .7rem .75rem;
  border: 1px solid #cbd5e1;
  border-radius: 11px;
  background: #fff;
  color: var(--tekst);
  font: inherit;
  font-size: 17px; /* alla 16px zoomib iOS */
}
textarea { min-height: 66px; resize: vertical; }

.aja-paar {
  display: flex;
  gap: .6rem;
  margin-top: .5rem;
}
.aja-paar label { flex: 1; min-width: 0; }
.aja-paar span {
  display: block;
  margin-bottom: .25rem;
  font-size: .85rem;
  font-weight: 600;
  color: #334155;
}
/* Oma kellaväli natiivse asemel: 24 h sõltumata operatsioonisüsteemi keelest. */
input.kellavali {
  width: 100%;
  min-height: 50px;
  padding: .7rem .75rem;
  border: 1px solid #cbd5e1;
  border-radius: 11px;
  background: #fff;
  color: var(--tekst);
  font: inherit;
  font-size: 1.25rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: .06em;
  text-align: center;
}

/* Punkt, mille aeg ei ole veel käes – näha, aga mitte ees. */
.punkt.veel-vara { opacity: .6; }
.silt.aeg { color: var(--sinine); font-weight: 600; }

.valikud { display: flex; flex-wrap: wrap; gap: .4rem; }
.valik {
  min-height: 46px;
  padding: .5rem .85rem;
  border: 1px solid #cbd5e1;
  border-radius: 11px;
  background: #fff;
  color: #334155;
  font: inherit;
  font-size: .95rem;
  cursor: pointer;
}
.valik.ring {
  width: 46px;
  padding: 0;
  border-radius: 50%;
  font-weight: 600;
}
.valik[aria-pressed="true"] {
  background: var(--sinine);
  border-color: var(--sinine);
  color: #fff;
}

.viga {
  margin: 0 0 .9rem;
  color: var(--punane);
  font-size: .92rem;
  font-weight: 600;
}

.nupud { display: flex; gap: .6rem; }
.nupp {
  flex: 1;
  min-height: 54px;
  border: 1px solid transparent;
  border-radius: 12px;
  font: inherit;
  font-size: 1.02rem;
  font-weight: 600;
  cursor: pointer;
}
.nupp.esimene { background: var(--sinine); color: #fff; }
.nupp.teine   { background: #fff; color: #334155; border-color: #cbd5e1; }
.nupp[disabled] { opacity: .55; }
.nupp.kustuta {
  width: 100%;
  margin-top: .75rem;
  background: #fff;
  color: var(--punane);
  border-color: #fecaca;
}
/* Seaded (moodul 2, B1) */
.seaded-vahe { margin-top: 1.5rem; }
.seaded-ruhm h3 {
  margin: 1rem 0 .4rem;
  font-size: .95rem;
  color: #334155;
}
.seade {
  padding: .6rem 0;
  border-top: 1px solid #e2e8f0;
}
.seade-pais {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: wrap;
  margin-bottom: .25rem;
}
.seade-silt { font-weight: 600; }
.silt.kinnitamata {
  background: #fef3c7;
  color: #b45309;
  padding: .1rem .45rem;
  border-radius: 6px;
  font-size: .8rem;
  font-weight: 600;
}
.seade-abi { margin: 0 0 .45rem; color: var(--hall); font-size: .85rem; }
.seade-rida {
  display: flex;
  gap: .5rem;
  align-items: center;
}
.seade-rida input { flex: 1; min-width: 0; }
.seade-rida .valikud { flex: 1; }
.seade.muudetud { background: #eff6ff; margin: 0 -.5rem; padding-left: .5rem; padding-right: .5rem; }
.puha {
  width: 100%;
  min-height: 50px;
  display: flex;
  gap: .6rem;
  align-items: center;
  padding: .5rem .25rem;
  border: 0;
  border-top: 1px solid #e2e8f0;
  background: none;
  font: inherit;
  color: var(--tekst);
  text-align: left;
  cursor: pointer;
}
.puha-paev { font-variant-numeric: tabular-nums; color: #334155; min-width: 4.6rem; }
.puha-nimi { flex: 1; min-width: 0; }
.puha-liik { color: var(--hall); font-size: .8rem; }

/* Kutse, agent, logi (moodul 2, B2) */
.parool-kast { margin: 0 0 1rem; padding: .75rem; background: #f1f5f9; border-radius: 11px; }
.parool {
  display: block;
  padding: .6rem;
  background: #fff;
  border: 1px dashed #94a3b8;
  border-radius: 8px;
  font-size: 1.05rem;
  letter-spacing: .05em;
  word-break: break-all;
  user-select: all;
}
.logi { list-style: none; margin: .75rem 0 1rem; padding: 0; }
.logi-rida {
  display: flex;
  gap: .6rem;
  padding: .5rem 0;
  border-top: 1px solid #e2e8f0;
  font-size: .92rem;
}
.logi-aeg { min-width: 5.2rem; color: var(--hall); font-variant-numeric: tabular-nums; }
.logi-tekst { flex: 1; min-width: 0; }
.logi-detail { display: block; color: var(--hall); font-size: .85rem; word-break: break-word; }
.logi-rida.agent .logi-kes { color: var(--sinine); }

/* Graafik (moodul 2, B3) */
.graafik-sisu { max-width: 40rem; }
.g-pais { display: flex; align-items: center; gap: .5rem; margin-bottom: .6rem; }
.g-pais h2 { flex: 1; text-align: center; margin: 0; }
.g-paevad { display: flex; gap: .25rem; margin-bottom: .75rem; }
.g-paev {
  flex: 1;
  min-height: 56px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .05rem;
  border: 1px solid #cbd5e1;
  border-radius: 11px;
  background: #fff;
  color: #334155;
  font: inherit;
  cursor: pointer;
  padding: .25rem 0;
}
.g-paev-nimi { font-size: .75rem; color: var(--hall); }
.g-paev-nr { font-weight: 600; font-size: 1.05rem; }
.g-paev-arv { font-size: .7rem; color: var(--sinine); min-height: .9rem; }
.g-paev.tana .g-paev-nr { color: var(--sinine); }
.g-paev[aria-pressed="true"] { background: var(--sinine); border-color: var(--sinine); color: #fff; }
.g-paev[aria-pressed="true"] .g-paev-nimi, .g-paev[aria-pressed="true"] .g-paev-arv,
.g-paev[aria-pressed="true"] .g-paev-nr { color: #fff; }
.g-paeva-pealkiri { margin: .25rem 0 .5rem; font-size: .95rem; color: #334155; }
.g-loend { margin-bottom: 1rem; }
.g-loend.lai { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .4rem; }
.g-veerg-pais {
  font-size: .85rem;
  font-weight: 600;
  color: #334155;
  padding: .3rem .2rem;
  border-bottom: 2px solid var(--joon);
  margin-bottom: .3rem;
  cursor: pointer;
}
.g-veerg.tana .g-veerg-pais { border-bottom-color: var(--sinine); color: var(--sinine); }
.vahetus {
  display: block;
  width: 100%;
  min-height: 60px;
  margin-bottom: .4rem;
  padding: .55rem .7rem;
  border: 1px solid #cbd5e1;
  border-left: 4px solid var(--sinine);
  border-radius: 11px;
  background: #fff;
  color: var(--tekst);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.vahetus.mustand { border-left-color: #94a3b8; background: #f8fafc; }
.vahetus.vaba { border-left-color: var(--punane); }
.vahetus-pais { display: flex; justify-content: space-between; gap: .5rem; }
.vahetus-title { font-weight: 600; min-width: 0; }
.vahetus-kohad { color: var(--hall); font-variant-numeric: tabular-nums; }
.vahetus.vaba .vahetus-kohad { color: var(--punane); font-weight: 600; }
.vahetus-aeg { font-size: .9rem; margin-top: .1rem; }
.vahetus-alla { font-size: .8rem; color: var(--hall); margin-top: .1rem; }
.g-loend.lai .vahetus { padding: .4rem .45rem; min-height: 0; }
.g-loend.lai .vahetus-title { font-size: .85rem; }
.g-loend.lai .vahetus-pais { flex-wrap: wrap; row-gap: 0; }
.vahetus-title { overflow-wrap: anywhere; }
.g-loend.lai .vahetus-aeg, .g-loend.lai .vahetus-alla { font-size: .75rem; }
.vd-inimesed { list-style: none; margin: 0 0 .75rem; padding: 0; }
.vd-inimene {
  display: flex;
  align-items: center;
  gap: .5rem;
  min-height: 50px;
  padding: .4rem 0;
  border-top: 1px solid var(--joon);
}
.vd-inimene .vd-tekst { flex: 1; min-width: 0; }
.vd-inimene.soovib b { color: var(--sinine); }
.vd-inimene.tagasi_lukatud, .vd-inimene.loobus { color: var(--hall); }
.vd-otsus {
  min-width: 52px;
  min-height: 46px;
  border: 1px solid #cbd5e1;
  border-radius: 11px;
  background: #fff;
  font: inherit;
  font-size: 1.1rem;
  cursor: pointer;
}
.vd-otsus.jah { background: var(--roheline); border-color: var(--roheline); color: #fff; }
.vd-otsus.ei { color: var(--punane); }
#vd-maara { width: 100%; margin-bottom: .75rem; }
.vd-valik { margin: .6rem 0 .75rem; }
.vd-kandidaat {
  display: flex;
  align-items: center;
  gap: .5rem;
  width: 100%;
  min-height: 50px;
  padding: .45rem .25rem;
  border: 0;
  border-top: 1px solid var(--joon);
  background: none;
  font: inherit;
  color: var(--tekst);
  text-align: left;
  cursor: pointer;
}
.vd-kandidaat .vd-tekst { flex: 1; }
.saadavus { font-size: .8rem; font-weight: 600; padding: .1rem .45rem; border-radius: 6px; }
.saadavus.ei_saa, .saadavus.puhkus { background: #fee2e2; color: var(--punane); }
.saadavus.eelistab { background: var(--roheline-taust); color: var(--roheline); }
.vd-kandidaat.ei_saa, .vd-kandidaat.puhkus { color: var(--hall); }

/* Minu vahetused (moodul 2, C1) */
.vahetus.minu { cursor: default; }
.vahetus.minu.maaratud { border-left-color: #f59e0b; background: #fffbeb; }
.vahetus.minu.soovib { border-left-color: #94a3b8; }
.minu-nupud { margin-top: .6rem; }
.minu-loobu { width: 100%; margin-top: .5rem; min-height: 44px; color: var(--hall); }
.minu-loobu.kinnita { color: var(--punane); font-weight: 600; }
.vahetus.avatud { border-left-color: var(--roheline); }
.vahetus.avatud.kinnitusega { border-left-color: var(--sinine); }
.amps-loendur { font-weight: 600; color: #b45309; }

/* Tööaeg (moodul 2, D1) – suur nupp avalehel */
.tooaeg {
  margin: 0 0 .9rem;
  padding: .8rem .85rem;
  background: var(--kaart);
  border: 1px solid var(--joon);
  border-radius: 14px;
}
.tooaeg.kaib { border-color: #86efac; background: #f0fdf4; }
.tooaeg-seis { margin: 0 0 .6rem; font-size: .95rem; color: #334155; font-weight: 600; }
.tooaeg.kaib .tooaeg-seis { color: var(--roheline); }
.tooaeg-nupp {
  width: 100%;
  min-height: 64px;
  border: 0;
  border-radius: 14px;
  font: inherit;
  font-size: 1.15rem;
  font-weight: 700;
  color: #fff;
  cursor: pointer;
}
.tooaeg-nupp.alusta { background: var(--roheline); }
.tooaeg-nupp.lopeta { background: var(--punane); }
.tooaeg-nupp[disabled] { opacity: .55; }
.tooaeg-kokku { margin: .6rem 0 0; font-size: .88rem; color: var(--hall); }

/* Juhendid (moodul 2, E1) */
.juhend-tekst { white-space: pre-wrap; overflow-wrap: anywhere; margin: 0 0 1rem; line-height: 1.5; }
.juhend-video { display: flex; align-items: center; justify-content: center; text-decoration: none; margin-bottom: .75rem; }
.puha.arhiiv { color: var(--hall); }
.minu-juhend { width: 100%; margin-top: .5rem; min-height: 44px; }

/* Tunnid (moodul 2, D3) */
.tu-rida {
  display: block;
  width: 100%;
  margin-bottom: .4rem;
  padding: .55rem .7rem;
  border: 1px solid #cbd5e1;
  border-left: 4px solid var(--roheline);
  border-radius: 11px;
  background: #fff;
  color: var(--tekst);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.tu-rida.kontrolli { border-left-color: #f59e0b; }
.tu-rida.kaib { border-left-color: var(--sinine); }
.tu-tunnid { font-weight: 700; font-variant-numeric: tabular-nums; }
.tu-margid { color: #b45309; }
.tu-kokku { margin: .75rem 0 0; font-size: .9rem; color: #334155; font-weight: 600; }
.kirjed { list-style: none; margin: 0 0 1rem; padding: 0; }
.kirje {
  display: flex;
  gap: .5rem;
  align-items: center;
  padding: .5rem 0;
  border-top: 1px solid var(--joon);
}
.kirje-tekst { flex: 1; min-width: 0; }
.kirje-nupud { display: flex; gap: .3rem; }
.kirje.kontrolli b { color: #b45309; }
.kirje.kinnitatud { opacity: .75; }
.kirje.kaib b { color: var(--sinine); }

/* Saadavuse kalender (moodul 2, C3) */
.sk-kuu { font-size: .85rem; color: var(--hall); margin: 0 0 .35rem; }
.sk-kalender {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: .3rem;
  margin-bottom: 1rem;
}
.sk-nimi { text-align: center; font-size: .75rem; color: var(--hall); }
.sk-paev {
  min-height: 52px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .05rem;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  background: #fff;
  color: var(--tekst);
  font: inherit;
  padding: .2rem 0;
  cursor: pointer;
}
.sk-paev:disabled { opacity: .45; cursor: default; }
.sk-paev-nr { font-weight: 600; }
.sk-paev-silt { font-size: .6rem; line-height: 1; min-height: .6rem; }
.sk-paev.tana .sk-paev-nr { color: var(--sinine); }
.sk-paev.uus-kuu { border-top-width: 3px; }
.sk-paev.ei_saa { background: #fee2e2; border-color: #fca5a5; color: var(--punane); }
.sk-paev.eelistab { background: var(--roheline-taust); border-color: #86efac; color: var(--roheline); }
.sk-paev.puhkus { background: #fef3c7; border-color: #fcd34d; color: #b45309; }
.sk-paev.vahetus::after { content: ''; width: 5px; height: 5px; border-radius: 50%; background: var(--sinine); margin-top: .1rem; }
.sk-paev.salvestan { opacity: .6; }

/* Palgaandmed: mask ja "Näita" nupp */
.palga-peidus { margin-bottom: 1rem; }
.palga-peidus .nupp { width: 100%; }
.palga-abi { margin-top: 1rem; }
#t-palk-naita { width: 100%; }
#t-palk-plokk { margin-top: .9rem; }

.nupp.lisa {
  width: 100%;
  margin-top: .75rem;
  background: none;
  color: var(--sinine);
  border-color: transparent;
}

/* --- menüü -------------------------------------------------------------- */
.menyy {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  margin-bottom: 1rem;
}
.menyy-nupp {
  min-height: 56px;
  padding: .75rem 1rem;
  border: 1px solid var(--joon);
  border-radius: 12px;
  background: #fff;
  color: var(--tekst);
  font: inherit;
  font-size: 1.02rem;
  text-align: left;
  cursor: pointer;
}

/* --- sisselogimine ------------------------------------------------------ */
.teade {
  margin: 0 0 .9rem;
  color: var(--roheline);
  font-size: .92rem;
  font-weight: 600;
}
input.kood {
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: .35em;
  text-align: center;
}

/* --- töötajate nimekiri ------------------------------------------------- */
.loend.tihe { margin-bottom: 1rem; }
.loend.tihe .punkt-lyliti { min-height: 60px; }

/* Täna tööl (G1) */
.tanatool { margin: 0 0 .9rem; padding: .6rem .85rem .5rem; background: var(--kaart); border: 1px solid var(--joon); border-radius: 14px; }
.tanatool-pais { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; }
.tanatool-pais .plokk-pais { margin: 0; }
.tanatool .link { background: none; border: 0; color: var(--sinine); font: inherit; font-weight: 600; padding: .3rem 0; cursor: pointer; }
.tt-loend { list-style: none; margin: .3rem 0 0; padding: 0; }
.tt-rida { display: flex; align-items: center; gap: .55rem; padding: .5rem 0; border-top: 1px solid var(--joon); font-size: .95rem; min-height: 44px; }
.tt-rida:first-child { border-top: 0; }
.tt-tapp { width: .65rem; height: .65rem; border-radius: 50%; background: #cbd5e1; flex: none; }
.tt-tapp.kaib { background: var(--roheline); box-shadow: 0 0 0 3px var(--roheline-taust); }
.tt-nimi { font-weight: 600; min-width: 0; overflow-wrap: anywhere; }
.tt-rida.mina .tt-nimi { color: var(--sinine); }
.tt-aeg { color: var(--hall); margin-left: auto; white-space: nowrap; font-size: .85rem; text-align: right; }
.vahetus.minu { border-left-color: var(--sinine); background: #eff6ff; }

/* Teavitused (G2) */
.kell-nupp { flex: none; position: relative; min-width: 44px; min-height: 44px; padding: .4rem .5rem; border: 1px solid #334155; border-radius: 999px; background: #1e293b; color: #e2e8f0; font-size: 1.15rem; line-height: 1; cursor: pointer; }
.kell-arv { position: absolute; top: -.3rem; right: -.3rem; min-width: 1.3rem; height: 1.3rem; padding: 0 .3rem; border-radius: 999px; background: var(--punane); color: #fff; font-size: .72rem; font-weight: 700; line-height: 1.3rem; text-align: center; }
.tv-loend { list-style: none; margin: .75rem 0 1rem; padding: 0; }
.tv-rida { border-top: 1px solid var(--joon); }
.tv-rida:first-child { border-top: 0; }
.tv-nupp { display: flex; flex-direction: column; gap: .15rem; width: 100%; padding: .6rem 0; border: 0; background: none; color: var(--tekst); font: inherit; text-align: left; cursor: pointer; min-height: 44px; }
.tv-aeg { font-size: .8rem; color: var(--hall); }
.tv-tekst { font-size: .95rem; overflow-wrap: anywhere; }
.tv-rida.uus .tv-tekst { font-weight: 600; }
.tv-rida.uus .tv-aeg::before { content: ''; display: inline-block; width: .5rem; height: .5rem; margin-right: .35rem; border-radius: 50%; background: var(--sinine); vertical-align: middle; }

/* Parandussoov (G4) */
.tooaeg .link { background: none; border: 0; color: var(--sinine); font: inherit; font-weight: 600; padding: .4rem 0 0; cursor: pointer; min-height: 32px; }
.soovid { list-style: none; margin: .5rem 0 0; padding: 0; }
.soov { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .35rem 0; font-size: .88rem; border-top: 1px solid var(--joon); }
.soov.ootel .soov-tekst { color: #92400e; }
.soov.kinnitatud .soov-tekst { color: var(--roheline); }
.soov.tagasi_lukatud .soov-tekst { color: var(--punane); }
.soov .link { background: none; border: 0; color: var(--sinine); font: inherit; font-size: .88rem; padding: .3rem 0; cursor: pointer; white-space: nowrap; }
.tu-soovid { margin: 0 0 .75rem; padding: .5rem .75rem; background: #fffbeb; border: 1px solid #fde68a; border-radius: 12px; }
.tu-soovid .plokk-pais { margin: 0 0 .25rem; }
.tu-soovid .kirjed { margin: 0; }
.vd-otsus.ei { color: var(--punane); }

/* Probleemid (G6) */
.probleemid { margin: 0 0 .9rem; padding: .6rem .85rem .5rem; background: var(--kaart); border: 1px solid var(--joon); border-radius: 14px; }
.probleemid .plokk-pais { margin: 0; }
.probleemid .link { background: none; border: 0; color: var(--sinine); font: inherit; font-weight: 600; padding: .4rem 0 0; cursor: pointer; min-height: 32px; }
.pb-loend { list-style: none; margin: .3rem 0 0; padding: 0; }
.pb-rida { border-top: 1px solid var(--joon); }
.pb-rida:first-child { border-top: 0; }
.pb-nupp { display: flex; gap: .55rem; align-items: baseline; width: 100%; padding: .5rem 0; border: 0; background: none; color: var(--tekst); font: inherit; text-align: left; cursor: pointer; min-height: 44px; }
.pb-paev { flex: none; min-width: 3.6rem; font-size: .8rem; color: var(--hall); }
.pb-tekst { font-size: .92rem; overflow-wrap: anywhere; }
.pb-rida.oluline .pb-tekst { color: var(--punane); font-weight: 600; }
.g-paev { position: relative; }
.g-paev-probleem { position: absolute; top: .15rem; right: .15rem; min-width: 1.1rem; height: 1.1rem; padding: 0 .25rem; border-radius: 999px; background: #94a3b8; color: #fff; font-size: .65rem; font-weight: 700; line-height: 1.1rem; text-align: center; }
.g-paev-probleem.oluline { background: var(--punane); }

/* Puudumised (G7) */
#minu-puudumised .soovid { margin-bottom: .5rem; }
.kirje.puhkus .kirje-tekst b { color: #7c3aed; }
.kirje.haigus .kirje-tekst b { color: var(--punane); }

/* Mallid (G8) */
#v-mall-plokk .link, .vahetus-vorm .link { background: none; border: 0; color: var(--punane); font: inherit; font-size: .85rem; padding: .3rem 0 0; cursor: pointer; }

/* Kuu lukk (G9) */
.abi.lukus { color: var(--roheline); font-weight: 600; }

/* Kohalolek (G10) */
.vd-kohalolek { flex: none; min-height: 32px; padding: .2rem .55rem; border: 1px solid var(--joon); border-radius: 999px; background: #fff; color: var(--hall); font: inherit; font-size: .8rem; cursor: pointer; }
.vd-kohalolek.hilines { color: #92400e; border-color: #fde68a; background: #fffbeb; }
.vd-kohalolek.haige { color: #7c3aed; border-color: #ddd6fe; background: #f5f3ff; }
.vd-kohalolek.ei_tulnud { color: var(--punane); border-color: #fecaca; background: #fef2f2; font-weight: 600; }
.punkt-alla.kohalolek { display: block; font-size: .8rem; color: var(--hall); }
.punkt-alla.kohalolek.hoiatus { color: #92400e; }

/* Dokumendid (G11) */
.dokumendid-plokk { margin: .75rem 0; padding: .6rem .75rem; background: #f8fafc; border: 1px solid var(--joon); border-radius: 12px; }
.dokumendid-plokk .plokk-pais { margin: 0 0 .25rem; }
.dokumendid { list-style: none; margin: 0; padding: 0; }
.dokument { display: flex; align-items: center; gap: .5rem; padding: .45rem 0; border-top: 1px solid var(--joon); }
.dokument:first-child { border-top: 0; }
.dokument-tekst { display: flex; flex-direction: column; min-width: 0; flex: 1; font-size: .92rem; }
.dokument.aegub .logi-detail { color: #92400e; font-weight: 600; }
.dokument.aegunud .logi-detail, .dokument.aegunud b { color: var(--punane); }
.dokumendid-plokk .link { background: none; border: 0; color: var(--sinine); font: inherit; font-weight: 600; padding: .4rem 0 0; cursor: pointer; }
.dokument-vorm { margin-top: .5rem; padding-top: .5rem; border-top: 1px dashed var(--joon); }

/* Lepingutunnid (G12) */
.tu-leping { color: var(--sinine); }

/* Prindi nädal (G13) */
.print-graafik { display: none; }
@media print {
  @page { size: A4 landscape; margin: 10mm; }
  body.prindin > *:not(.print-graafik) { display: none !important; }
  body.prindin .print-graafik { display: block; color: #000; background: #fff; font: 10pt/1.25 system-ui, sans-serif; }
  .print-graafik h1 { font-size: 14pt; margin: 0 0 6pt; }
  .print-tabel { width: 100%; border-collapse: collapse; table-layout: fixed; }
  .print-tabel th, .print-tabel td { border: 1px solid #000; padding: 3pt 4pt; vertical-align: top; text-align: left; }
  .print-tabel thead th { background: #eee; font-size: 10pt; }
  .print-tabel tbody th { width: 9%; background: #f5f5f5; }
  .print-vahetus { margin-bottom: 4pt; font-size: 9pt; page-break-inside: avoid; }
  .print-vahetus b { display: block; }
  .print-jalus { margin-top: 6pt; font-size: 8pt; color: #333; }
}

/* Kalendrifeed (G14) */
.kalendri-link { display: flex; gap: .4rem; margin: .4rem 0; }
.kalendri-link input { flex: 1; min-width: 0; font-size: .8rem; padding: .5rem; border: 1px solid var(--joon); border-radius: 10px; }
.kalendri-link .nupp { flex: none; padding: .5rem .8rem; }

/* Teate lugemiskinnitus (G15) */
.teade-ack { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: .4rem; }
.teade-ack .nupp.vaike { min-height: 36px; padding: .35rem .8rem; font-size: .9rem; }
.teade-loetud { color: var(--roheline); font-weight: 600; font-size: .9rem; }
.teade-ack .link { background: none; border: 0; color: var(--sinine); font: inherit; font-size: .85rem; padding: .3rem 0; cursor: pointer; }
.teade-lugejad { flex-basis: 100%; font-size: .85rem; color: var(--hall); }

/* Päeva märkus (G16) */
.g-markused { margin: 0 0 .4rem; }
.g-markus { display: flex; align-items: baseline; gap: .4rem; padding: .35rem .55rem; margin-bottom: .25rem; background: #fffbeb; border: 1px solid #fde68a; border-radius: 8px; font-size: .88rem; }
.g-markus.juht { background: #f1f5f9; border-color: var(--joon); color: var(--hall); }
.g-markus-tekst { flex: 1; overflow-wrap: anywhere; }
.g-markus .link, .g-markused > .link { background: none; border: 0; color: var(--sinine); font: inherit; font-size: .82rem; padding: .2rem 0; cursor: pointer; }
.g-markus .link.punane { color: var(--punane); }
.g-markus-vorm { padding: .4rem .55rem; margin-bottom: .3rem; background: #fff; border: 1px dashed var(--joon); border-radius: 8px; }
.g-markus-vorm textarea { width: 100%; font: inherit; font-size: .9rem; padding: .4rem; border: 1px solid var(--joon); border-radius: 8px; }
.g-markus-vorm .nupud { margin-top: .4rem; }

/* Normtunnid (G17a) */
.tu-norm { color: var(--hall); }
.tu-norm.ule48 { color: var(--punane); font-weight: 600; }

/* H1: kokkupandavad kaardid */
.plokk-lyliti { display: flex; align-items: center; gap: .35rem; background: none; border: 0; padding: .2rem 0; font: inherit; cursor: pointer; min-height: 32px; color: inherit; }
.plokk-lyliti .plokk-pais { margin: 0; }
.plokk-nool { display: inline-block; color: var(--hall); transition: transform .15s; transform: rotate(90deg); font-size: 1rem; }
.kokku .plokk-nool { transform: none; }
.kokku .pb-loend, .kokku #pb-veel, .kokku .tt-loend, .kokku #tt-tuhi, .kokku #tt-markus { display: none; }
.probleemid.kokku, .tanatool.kokku { padding-bottom: .3rem; }
.plokk-pais.sos { color: var(--punane); }

/* H3: minu jootraha */
.jr-kokku { margin: .5rem 0 1rem; }
.jr-suur { display: flex; align-items: baseline; gap: .5rem; margin: .25rem 0 .5rem; }
.jr-neto { font-size: 2rem; font-weight: 700; }
.jr-neto-silt { color: var(--hall); font-size: .9rem; }
.jr-tabel { display: grid; grid-template-columns: 1fr auto; gap: .25rem .75rem; margin: 0; font-size: .95rem; }
.jr-tabel dt { color: #334155; }
.jr-tabel dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.jr-tabel dt:last-of-type, .jr-tabel dd:last-of-type { font-weight: 700; border-top: 1px solid #e2e8f0; padding-top: .25rem; }
.tu-sidumata { color: #b45309; }

/* H4: müük */
.my-liigid { margin-bottom: .6rem; }
.my-kaardid { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin: .5rem 0 1rem; }
.my-kaart { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 10px; padding: .55rem .65rem; display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
.my-kaart-silt { font-size: .78rem; color: #64748b; }
.my-kaart-arv { font-size: 1.25rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.my-kaart-all { font-size: .78rem; color: #334155; }
.my-joonis { margin: .25rem 0 1rem; overflow: hidden; }
.my-tulbad rect { fill: var(--sinine); }
.my-tulbad rect.miinus { fill: none; stroke: var(--punane); }
.my-tulbad text { font-size: 10px; fill: #64748b; }
.my-tulbad text.arv { fill: #0f172a; font-weight: 600; }
.my-riba { margin: .35rem 0; }
.my-riba-pais { display: flex; justify-content: space-between; gap: .5rem; font-size: .9rem; }
.my-riba-nimi { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.my-riba-arv { color: #334155; white-space: nowrap; font-variant-numeric: tabular-nums; }
.my-riba-taust { height: 6px; background: #e2e8f0; border-radius: 3px; overflow: hidden; }
.my-riba-tais { height: 100%; background: var(--sinine); border-radius: 3px; }
.my-riba-tais.miinus { background: var(--punane); }

/* H11a: palgahinnang */
.tu-palk { margin: .75rem 0; padding: .6rem .75rem; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 10px; }
.tu-palk .plokk-pais { margin: 0 0 .4rem; }
.abi.hoiatus { color: #b45309; }

/* H12: maksud ja pension */
.maksud-vorm { margin: .5rem 0; }
.kinnitus { display: flex; gap: .5rem; align-items: flex-start; font-size: .9rem; margin: .5rem 0; }
.kinnitus input { margin-top: .2rem; width: 20px; height: 20px; flex: none; }
.maksud-ajalugu li.asendatud { opacity: .65; }
.avaldus-tekst { white-space: pre-wrap; font: inherit; font-size: .85rem; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; padding: .5rem; margin: .4rem 0 0; }

/* H9: linnukesed */
.lk-moot { font-weight: 600; margin: .25rem 0 .75rem; }
.lk-moot.ok { color: #15803d; }
.lk-moot.ei { color: #b45309; }
.lk-keri { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.lk-maatriks { border-collapse: collapse; font-size: .8rem; }
.lk-maatriks th, .lk-maatriks td { padding: .2rem .15rem; text-align: center; border-bottom: 1px solid #e2e8f0; min-width: 20px; }
.lk-maatriks th.lk-paev.tana { color: var(--sinine); }
.lk-maatriks .lk-nimi { text-align: left; position: sticky; left: 0; background: #fff; white-space: nowrap; padding-right: .4rem; max-width: 110px; overflow: hidden; text-overflow: ellipsis; }
.lk-maatriks td.lk-paev.on { background: #dcfce7; font-weight: 600; }
.lk-maatriks tr.taitja .lk-nimi { color: #15803d; font-weight: 600; }
.lk-maatriks .lk-kokku { white-space: nowrap; }

/* H10: väärtusega punkt */
.punkt.valjas { border-left: 5px solid var(--punane); }
.punkt.tehtud.valjas .punkt-alla { color: var(--punane); }
.silt.vaartus { color: var(--sinine); font-weight: 600; }
.vaartuse-sisestus { display: flex; gap: .4rem; align-items: center; padding: .4rem .6rem .5rem; flex-wrap: wrap; }
.vaartuse-sisestus input { width: 6.5rem; font-size: 1.1rem; padding: .45rem .5rem; }
.vaartuse-sisestus .nupp { min-height: 40px; padding: 0 .8rem; }
.vaartuse-uhik { color: #334155; }

/* Lõpetamise kinnitus */
.lv-tabel { margin: .5rem 0 1rem; font-size: 1.05rem; }
.lv-tabel dd { font-weight: 600; }
.nupp.esimene.lopeta { background: var(--punane); border-color: var(--punane); }

/* I1: sektsioonid ja grupid */
.g-sektsioon { margin: .6rem 0 .25rem; font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; color: #64748b; }
.g-veerg .g-sektsioon:first-of-type { margin-top: .25rem; }
.grupp-rida { display: flex; flex-wrap: wrap; gap: .4rem .6rem; align-items: center; padding: .45rem 0; border-bottom: 1px solid #e2e8f0; }
.grupp-rida input[type="text"] { flex: 1 1 8rem; min-width: 7rem; }
.grupp-rida.passiivne input[type="text"] { color: #94a3b8; }
.grupp-lipud { display: flex; gap: .6rem; flex-wrap: wrap; }
.grupp-lipp { display: inline-flex; align-items: center; gap: .2rem; font-size: .85rem; }
.grupp-lipp input { width: 18px; height: 18px; }
.grupp-rida .nupp { min-height: 36px; padding: 0 .8rem; }

/* I2: korduse nädalapäevad */
.v-paevad .valik { min-width: 40px; padding: .35rem .4rem; }

/* I3: kolme punkti menüü */
.vahetus-kolm { display: inline-block; min-width: 32px; text-align: center; font-size: 1.2rem; line-height: 1; color: #64748b; padding: 0 .2rem; margin-left: .2rem; }
.vahetus-kolm:hover { color: var(--sinine); }
.vd-menyy { margin: .5rem 0; padding: .6rem .75rem; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 10px; }
.vd-menyy .nupud { margin: .3rem 0; }

/* I4: lohistamine */
.vahetus.lohistatav { cursor: grab; }
.vahetus.lohistan { opacity: .5; }
.g-veerg.sihtmark { outline: 2px dashed var(--sinine); outline-offset: -2px; background: #eff6ff; }
.riba-nupp { margin-left: .75rem; background: rgba(255,255,255,.25); border: 1px solid rgba(255,255,255,.7); color: inherit; border-radius: 6px; padding: .2rem .6rem; font: inherit; font-weight: 700; cursor: pointer; }

/* I5: pausid */
.tooaeg-paus { margin: .5rem 0 0; font-size: .9rem; color: #334155; }
.tooaeg-paus-nupp { margin-top: .5rem; width: 100%; min-height: 44px; }
.tooaeg.paus-tegemata { border-color: #f59e0b; background: #fffbeb; }
.tooaeg.paus-tegemata .tooaeg-paus { color: #b45309; font-weight: 700; }
.tooaeg.paus-kaib { border-color: #93c5fd; background: #eff6ff; }
.tooaeg.paus-kaib .tooaeg-paus { color: var(--sinine); font-weight: 600; }

/* H6a: foto */
.silt.foto { color: #7c3aed; font-weight: 600; }
.foto-link { background: none; border: 0; color: var(--sinine); font: inherit; font-weight: 600; padding: 0 .2rem; cursor: pointer; }

/* H6b: pildid */
.juhend-pilt { display: block; max-width: 100%; border-radius: 10px; margin: .5rem 0; }

/* K1: prep */
.pp-kapp { margin: .75rem 0 1rem; }
.pp-kapp-pais { margin: 0 0 .3rem; }
.pp-tooted { list-style: none; margin: 0; padding: 0; }
.pp-toode { border: 1px solid #e2e8f0; border-left: 5px solid #cbd5e1; border-radius: 10px; padding: .5rem .6rem; margin: .35rem 0; background: #fff; }
.pp-toode.olemas { border-left-color: var(--roheline); }
.pp-toode.vaja { border-left-color: #f59e0b; background: #fffbeb; }
.pp-toode.sos { border-left-color: var(--punane); background: #fef2f2; }
.pp-toode-pais { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .6rem; }
.pp-nimi { flex: 1 1 8rem; text-align: left; background: none; border: 0; font: inherit; font-weight: 600; padding: .2rem 0; cursor: pointer; min-height: 32px; }
.pp-nupud { display: flex; gap: .3rem; }
.pp-seis { border: 1px solid #cbd5e1; background: #f8fafc; border-radius: 999px; padding: .35rem .6rem; font: inherit; font-size: .85rem; min-height: 36px; cursor: pointer; }
.pp-seis.olemas.valitud { background: var(--roheline); color: #fff; border-color: var(--roheline); }
.pp-seis.vaja.valitud { background: #f59e0b; color: #fff; border-color: #f59e0b; }
.pp-seis.sos.valitud { background: var(--punane); color: #fff; border-color: var(--punane); }
.pp-alla { font-size: .8rem; color: #64748b; margin-top: .25rem; }
.pp-kogus { display: flex; flex-wrap: wrap; gap: .5rem; align-items: end; margin-top: .5rem; }
.pp-kogus-valja { display: flex; flex-direction: column; font-size: .8rem; color: #334155; }
.pp-kogus-valja input { width: 5.5rem; }
.pp-vorm { display: grid; gap: .4rem; margin: .5rem 0; padding: .5rem; background: #f8fafc; border-radius: 10px; }
.punkt.prep .punkt-lyliti { cursor: pointer; }

/* K2 */
.silt.prep { color: #b45309; font-weight: 600; }

/* J5: alumine navigatsioon telefonis */
.alumine { position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; display: flex; background: #fff; border-top: 1px solid #e2e8f0;
  padding-bottom: env(safe-area-inset-bottom, 0); box-shadow: 0 -2px 8px rgba(15, 23, 42, .06); }
.alumine button { flex: 1; min-height: 56px; background: none; border: 0; font: inherit; font-size: .72rem; color: #64748b; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .1rem; cursor: pointer; padding: .3rem 0; }
.alumine button[aria-current="page"] { color: var(--sinine); font-weight: 700; }
.alumine .an-ikoon { font-size: 1.25rem; line-height: 1; }
body.alumine-nav { padding-bottom: 8rem; }
body.alumine-nav .leht { padding-bottom: 5rem; }
body.alumine-nav .riba { top: 0; }
@media (min-width: 700px) { .alumine { display: none; } body.alumine-nav { padding-bottom: 6.5rem; } body.alumine-nav .leht { padding-bottom: 0; } }
@media print { .alumine { display: none; } }

/* L1: "+" päeva ja sektsiooni peal */
.g-paeva-pealkiri, .g-sektsioon, .g-veerg-pais { display: flex; align-items: center; justify-content: space-between; gap: .4rem; }
.g-pluss { flex: none; width: 1.7rem; height: 1.7rem; border-radius: 50%; border: 1px solid var(--joon); background: #fff; color: var(--sinine); font: inherit; font-size: 1.1rem; line-height: 1; cursor: pointer; padding: 0; text-transform: none; letter-spacing: 0; }
.g-pluss:active { background: #eff6ff; }
.g-loend.lai .g-pluss { width: 1.35rem; height: 1.35rem; font-size: .95rem; }
.g-tuhi-lisa { font: inherit; color: var(--sinine); background: none; border: 0; padding: 0; cursor: pointer; text-decoration: underline; }

/* L2: tühi sektsioon graafikus, grupi järjekord Seadetes */
.g-sekt-tuhi { margin: 0 0 .4rem; font-size: .8rem; color: #94a3b8; }
.g-loend.lai .g-sekt-tuhi { text-align: center; margin: 0 0 .2rem; }
.g-sektsioon.tyhi { color: #94a3b8; }
.grupp-jarjekord { display: flex; gap: .25rem; }
.grupp-jarjekord .g-pluss { font-size: .9rem; }

/* L3: vahetuse osad */
.v-osa { display: flex; gap: .3rem; align-items: center; margin-bottom: .35rem; }
.v-osa select { flex: 1 1 6rem; min-width: 0; min-height: 40px; font: inherit; }
.v-osa input.kellavali { width: 4.6rem; flex: none; }
.vahetus-osad { position: relative; height: 6px; border-radius: 3px; overflow: hidden; background: #e2e8f0; margin: .25rem 0 .3rem; }
.vahetus-osad span { position: absolute; top: 0; height: 100%; }
.osa-0 { background: #0f766e; } .osa-1 { background: #b45309; } .osa-2 { background: #4338ca; } .osa-3 { background: #be185d; } .osa-4 { background: #15803d; } .osa-5 { background: #0369a1; }
#vd-info { white-space: pre-line; }

/* L3b: osad prindil */
.print-osad { font-size: .8em; color: #475569; }

/* J6a: avalehe punktid grupi kaupa */
.grupi-pais { list-style: none; margin: .9rem 0 .3rem; }
.grupi-pais:first-child { margin-top: .2rem; }
.grupi-pais .plokk-lyliti { width: 100%; }
.grupi-pais .plokk-pais { font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; color: #64748b; }
.grupi-arv { font-size: .8rem; color: #94a3b8; margin-left: .2rem; }
.grupi-pais .plokk-nool { margin-left: auto; transform: rotate(90deg); transition: transform .15s; }
.grupi-pais.kokku .plokk-nool { transform: none; }
.punkt.tehtud-all { opacity: .8; }



/* J7: esimese päeva juhis */
.juhis { margin: 0 0 .9rem; padding: .8rem .85rem; background: var(--kaart); border: 1px solid var(--joon); border-left: 4px solid var(--sinine); border-radius: 12px; }
.juhis .plokk-pais { margin: 0 0 .5rem; }
.juhis-sammud { list-style: none; margin: 0 0 .6rem; padding: 0; }
.juhis-samm { display: flex; gap: .6rem; padding: .45rem 0; border-top: 1px solid var(--joon); }
.juhis-samm:first-child { border-top: 0; }
.juhis-nr { flex: none; width: 1.8rem; height: 1.8rem; border-radius: 50%; background: var(--sinine); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; }
.juhis-sisu { display: flex; flex-direction: column; gap: .15rem; }
.juhis-sisu .link { align-self: flex-start; background: none; border: 0; padding: .2rem 0; color: var(--sinine); font: inherit; font-weight: 600; cursor: pointer; }
#nimi-juhis { display: block; margin: .5rem 0; background: none; border: 0; padding: 0; color: var(--sinine); font: inherit; font-weight: 600; cursor: pointer; }
@keyframes juhis-vilkumine { 0%, 100% { box-shadow: 0 0 0 0 rgba(29, 78, 216, 0); } 30% { box-shadow: 0 0 0 5px rgba(29, 78, 216, .55); } 60% { box-shadow: 0 0 0 0 rgba(29, 78, 216, 0); } 80% { box-shadow: 0 0 0 5px rgba(29, 78, 216, .55); } }
.juhis-vilgub { animation: juhis-vilkumine 2.4s ease-out; border-radius: 12px; }


/* J8: kiirtoimingud */
.lv-punktid { margin: .4rem 0; }
.lv-punktid.tegemata { color: var(--punane); font-weight: 600; }
.punkt-lyliti { -webkit-touch-callout: none; user-select: none; -webkit-user-select: none; }
.punkt-lyliti.pikk { background: #eff6ff; }


/* J9: bränd päises ja login-lehel */
.pais-logo { flex: none; width: 40px; height: 40px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 2px var(--brand-kuld); margin-top: .15rem; }
.pais .kokkuvote { color: #e6dc8f; }
.login-logo { display: block; width: 96px; height: 96px; margin: 0 auto .6rem; border-radius: 50%; box-shadow: 0 0 0 3px var(--brand-kuld); }
#login-leht h2 { text-align: center; }
.alumine button[aria-current="page"] { color: var(--brand-roheline); }
html[data-teema="tume"] .alumine button[aria-current="page"] { color: var(--brand-kuld); }


/* J6b: tume režiim (genereeritud j6b.js-iga hard-coded värvidest; muutujad ees) */
html[data-teema="tume"] { --taust: #0b1220; --kaart: #151d2e; --tekst: #e2e8f0; --hall: #94a3b8; --joon: #2a3548; --roheline: #4ade80;
  --roheline-taust: #0f2e1c; --punane: #f87171; --sinine: #60a5fa; --tume: #0b1220; }
html[data-teema="tume"] body { background: var(--taust); color: var(--tekst); }
html[data-teema="tume"] input, html[data-teema="tume"] textarea, html[data-teema="tume"] select { background: #0f172a; color: #e2e8f0; border-color: #3b4863; }
html[data-teema="tume"] img.foto, html[data-teema="tume"] .foto-pilt { opacity: .9; }
html[data-teema="tume"] .riba.ootel { background: #b45309; color: #e2e8f0; }
html[data-teema="tume"] .paev-tekst::after { color: #8593a8; }
html[data-teema="tume"] .kokkuvote { color: #8593a8; }
html[data-teema="tume"] .kalendri-riba button { border: 1px solid #3b4863; background: #111a2b; color: #8593a8; }
html[data-teema="tume"] .kalendri-abi { color: #8593a8; }
html[data-teema="tume"] .nimi-nupp { border: 1px solid #3b4863; background: #111a2b; }
html[data-teema="tume"] .teade { border-left: 5px solid #b45309; background: #2b2410; }
html[data-teema="tume"] .teade-tekst { color: #fbbf24; }
html[data-teema="tume"] .teade-alla { color: #fbbf24; }
html[data-teema="tume"] .teade .muuda-nupp { color: #fbbf24; }
html[data-teema="tume"] .filter button { background: #151d2e; color: #cbd5e1; }
html[data-teema="tume"] .punkt.tehtud { border-color: #14532d; }
html[data-teema="tume"] .kast { background: #151d2e; }
html[data-teema="tume"] .punkt.tehtud .punkt-title { color: #bbf7d0; }
html[data-teema="tume"] .punkt.tehtud .muuda-nupp { border-left-color: #14532d; }
html[data-teema="tume"] .punkt.tehtud .jarjekord { border-left-color: #14532d; }
html[data-teema="tume"] .punkt.tehtud .jarjekord button + button { border-top-color: #14532d; }
html[data-teema="tume"] .punkt.kriitiline { border-left: 5px solid #b45309; }
html[data-teema="tume"] #tulevik-plokk .punkt { background: #1a2333; }
html[data-teema="tume"] #tulevik-plokk .punkt-title { color: #b6c2d4; }
html[data-teema="tume"] .valja > span, html[data-teema="tume"] .valja > legend { color: #cbd5e1; }
html[data-teema="tume"] input[type="email"], html[data-teema="tume"] input[type="tel"], html[data-teema="tume"] input[type="password"], html[data-teema="tume"] textarea { border: 1px solid #3b4863; background: #151d2e; }
html[data-teema="tume"] .aja-paar span { color: #cbd5e1; }
html[data-teema="tume"] input.kellavali { border: 1px solid #3b4863; background: #151d2e; }
html[data-teema="tume"] .valik { border: 1px solid #3b4863; background: #151d2e; color: #cbd5e1; }
html[data-teema="tume"] .nupp.teine { background: #151d2e; color: #cbd5e1; border-color: #3b4863; }
html[data-teema="tume"] .nupp.kustuta { background: #151d2e; border-color: #7f1d1d; }
html[data-teema="tume"] .seaded-ruhm h3 { color: #cbd5e1; }
html[data-teema="tume"] .seade { border-top: 1px solid #2a3548; }
html[data-teema="tume"] .silt.kinnitamata { background: #2b2410; color: #f59e0b; }
html[data-teema="tume"] .seade.muudetud { background: #172033; }
html[data-teema="tume"] .puha { border-top: 1px solid #2a3548; }
html[data-teema="tume"] .puha-paev { color: #cbd5e1; }
html[data-teema="tume"] .parool-kast { background: #0b1220; }
html[data-teema="tume"] .parool { background: #151d2e; }
html[data-teema="tume"] .logi-rida { border-top: 1px solid #2a3548; }
html[data-teema="tume"] .g-paev { border: 1px solid #3b4863; background: #151d2e; color: #cbd5e1; }
html[data-teema="tume"] .g-paeva-pealkiri { color: #cbd5e1; }
html[data-teema="tume"] .g-veerg-pais { color: #cbd5e1; }
html[data-teema="tume"] .vahetus { border: 1px solid #3b4863; background: #151d2e; }
html[data-teema="tume"] .vahetus.mustand { background: #1a2333; }
html[data-teema="tume"] .vd-otsus { border: 1px solid #3b4863; background: #151d2e; }
html[data-teema="tume"] .saadavus.ei_saa, html[data-teema="tume"] .saadavus.puhkus { background: #3b1a1a; }
html[data-teema="tume"] .vahetus.minu.maaratud { border-left-color: #b45309; background: #2b2410; }
html[data-teema="tume"] .amps-loendur { color: #f59e0b; }
html[data-teema="tume"] .tooaeg-seis { color: #cbd5e1; }
html[data-teema="tume"] .tu-rida { border: 1px solid #3b4863; background: #151d2e; }
html[data-teema="tume"] .tu-rida.kontrolli { border-left-color: #b45309; }
html[data-teema="tume"] .tu-margid { color: #f59e0b; }
html[data-teema="tume"] .tu-kokku { color: #cbd5e1; }
html[data-teema="tume"] .kirje.kontrolli b { color: #f59e0b; }
html[data-teema="tume"] .sk-paev { border: 1px solid #3b4863; background: #151d2e; }
html[data-teema="tume"] .sk-paev.ei_saa { background: #3b1a1a; }
html[data-teema="tume"] .sk-paev.puhkus { background: #2b2410; color: #f59e0b; }
html[data-teema="tume"] .menyy-nupp { background: #151d2e; }
html[data-teema="tume"] .tt-tapp { background: #3b4863; }
html[data-teema="tume"] .vahetus.minu { background: #172033; }
html[data-teema="tume"] .kell-nupp { border: 1px solid #3b4863; background: #111a2b; }
html[data-teema="tume"] .soov.ootel .soov-tekst { color: #fbbf24; }
html[data-teema="tume"] .tu-soovid { background: #2b2410; border: 1px solid #78350f; }
html[data-teema="tume"] .kirje.puhkus .kirje-tekst b { color: #c4b5fd; }
html[data-teema="tume"] .vd-kohalolek { background: #151d2e; }
html[data-teema="tume"] .vd-kohalolek.hilines { color: #fbbf24; border-color: #78350f; background: #2b2410; }
html[data-teema="tume"] .vd-kohalolek.haige { color: #c4b5fd; }
html[data-teema="tume"] .vd-kohalolek.ei_tulnud { border-color: #7f1d1d; background: #2d1515; }
html[data-teema="tume"] .punkt-alla.kohalolek.hoiatus { color: #fbbf24; }
html[data-teema="tume"] .dokumendid-plokk { background: #1a2333; }
html[data-teema="tume"] .dokument.aegub .logi-detail { color: #fbbf24; }
html[data-teema="tume"] .g-markus { background: #2b2410; border: 1px solid #78350f; }
html[data-teema="tume"] .g-markus.juht { background: #0b1220; }
html[data-teema="tume"] .g-markus-vorm { background: #151d2e; }
html[data-teema="tume"] .jr-tabel dt { color: #cbd5e1; }
html[data-teema="tume"] .jr-tabel dt:last-of-type, html[data-teema="tume"] .jr-tabel dd:last-of-type { border-top: 1px solid #2a3548; }
html[data-teema="tume"] .tu-sidumata { color: #f59e0b; }
html[data-teema="tume"] .my-kaart { background: #1a2333; border: 1px solid #2a3548; }
html[data-teema="tume"] .my-kaart-silt { color: #94a3b8; }
html[data-teema="tume"] .my-kaart-all { color: #cbd5e1; }
html[data-teema="tume"] .my-tulbad text.arv { fill: #0b1220; }
html[data-teema="tume"] .my-riba-arv { color: #cbd5e1; }
html[data-teema="tume"] .my-riba-taust { background: #2a3548; }
html[data-teema="tume"] .tu-palk { background: #1a2333; border: 1px solid #2a3548; }
html[data-teema="tume"] .abi.hoiatus { color: #f59e0b; }
html[data-teema="tume"] .avaldus-tekst { background: #1a2333; border: 1px solid #2a3548; }
html[data-teema="tume"] .lk-moot.ok { color: #4ade80; }
html[data-teema="tume"] .lk-moot.ei { color: #f59e0b; }
html[data-teema="tume"] .lk-maatriks th, html[data-teema="tume"] .lk-maatriks td { border-bottom: 1px solid #2a3548; }
html[data-teema="tume"] .lk-maatriks .lk-nimi { background: #151d2e; }
html[data-teema="tume"] .lk-maatriks td.lk-paev.on { background: #0f2e1c; }
html[data-teema="tume"] .lk-maatriks tr.taitja .lk-nimi { color: #4ade80; }
html[data-teema="tume"] .vaartuse-uhik { color: #cbd5e1; }
html[data-teema="tume"] .g-sektsioon { color: #94a3b8; }
html[data-teema="tume"] .grupp-rida { border-bottom: 1px solid #2a3548; }
html[data-teema="tume"] .grupp-rida.passiivne input[type="text"] { color: #8593a8; }
html[data-teema="tume"] .vahetus-kolm { color: #94a3b8; }
html[data-teema="tume"] .vd-menyy { background: #1a2333; border: 1px solid #2a3548; }
html[data-teema="tume"] .g-veerg.sihtmark { background: #172033; }
html[data-teema="tume"] .tooaeg-paus { color: #cbd5e1; }
html[data-teema="tume"] .tooaeg.paus-tegemata { border-color: #b45309; background: #2b2410; }
html[data-teema="tume"] .tooaeg.paus-tegemata .tooaeg-paus { color: #f59e0b; }
html[data-teema="tume"] .tooaeg.paus-kaib { background: #172033; }
html[data-teema="tume"] .silt.foto { color: #c4b5fd; }
html[data-teema="tume"] .pp-toode { border: 1px solid #2a3548; border-left: 5px solid #3b4863; background: #151d2e; }
html[data-teema="tume"] .pp-toode.vaja { border-left-color: #b45309; background: #2b2410; }
html[data-teema="tume"] .pp-toode.sos { background: #2d1515; }
html[data-teema="tume"] .pp-seis { border: 1px solid #3b4863; background: #1a2333; }
html[data-teema="tume"] .pp-seis.vaja.valitud { background: #b45309; border-color: #b45309; }
html[data-teema="tume"] .pp-alla { color: #94a3b8; }
html[data-teema="tume"] .pp-kogus-valja { color: #cbd5e1; }
html[data-teema="tume"] .pp-vorm { background: #1a2333; }
html[data-teema="tume"] .silt.prep { color: #f59e0b; }
html[data-teema="tume"] .alumine { background: #151d2e; border-top: 1px solid #2a3548; }
html[data-teema="tume"] .alumine button { color: #94a3b8; }
html[data-teema="tume"] .g-pluss { background: #151d2e; }
html[data-teema="tume"] .g-pluss:active { background: #172033; }
html[data-teema="tume"] .g-sekt-tuhi { color: #8593a8; }
html[data-teema="tume"] .g-sektsioon.tyhi { color: #8593a8; }
html[data-teema="tume"] .vahetus-osad { background: #2a3548; }
html[data-teema="tume"] .print-osad { color: #b6c2d4; }
html[data-teema="tume"] .grupi-pais .plokk-pais { color: #94a3b8; }
html[data-teema="tume"] .grupi-arv { color: #8593a8; }
html[data-teema="tume"] .punkt-lyliti.pikk { background: #172033; }
html[data-teema="tume"] .pais-logo { background: #151d2e; }

/* J6b: fondi suurus – koristaja kell 22 */
html[data-font="suur"] { font-size: 18px; }
html[data-font="suur"] .alumine button { font-size: .8rem; }
