/* ============================================================
   Urnik — slog zaslona in slog tiskanja

   Slog tiskanja stoji v isti datoteki kot slog zaslona in ne v
   svoji: mreža je ista reč na obeh, razlikujeta se le mere in to,
   kaj odpade. Ločeni datoteki bi pomenili dva opisa istega in
   popravek na dveh mestih.
   ============================================================ */

.urnik-orodna {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  justify-content: center;
  margin-bottom: clamp(10px, 2vh, 18px);
}

/* Manjša mera gumba. .btn.small stoji v assets/music.css in ga
   glavno spletišče ne naloži, zato je tu in ne tam — dokler ne
   bo razloga, da se ta mera preseli v skupni slog. */
.btn.urnik-gumb {
  font-size: clamp(.9rem, 2.6vw, 1.05rem);
  padding: 10px 20px;
}
.chip.urnik-chip {
  font-size: clamp(.85rem, 2.4vw, 1rem);
  padding: 8px 16px;
  min-width: 0;
  min-height: 44px;          /* tarča za prst ostane, tudi ko se pisava stisne */
  border-color: var(--rob);
}
/* Presledek med tem, kar naredi list, in tem, kar ureja seznam.
   Pri prelomu v dve vrsti izgine, ker vrstici ločita že sami. */
.orodna-vrzel { width: clamp(6px, 2vw, 18px); }

/* List, na katerem mreža stoji. Podeduje .panel, doda pa svoje:
   .panel je zamišljen za stolpec besedila in ima za tabelo preveč
   odmika, na ozkem zaslonu pa mora list segati skoraj do roba. */
.urnik-koren.panel {
  padding: clamp(8px, 2.2vw, 18px);
  margin-bottom: 0;
  overflow: hidden;
}

/* Mreža se pri ozkem zaslonu ne prelomi, ampak stisne: urnik je
   teden in teden ima pet dni drug ob drugem. Kdor ga zloži v pet
   seznamov pod seboj, dobi nekaj drugega — pregled tedna izgine
   prav takrat, ko je zaradi majhnega zaslona najbolj potreben. */
.urnik {
  width: 100%;
  border-collapse: separate;
  border-spacing: clamp(3px, 0.7vw, 6px);
  table-layout: fixed;
}

.urnik th {
  font-size: clamp(.72rem, 2.4vw, .95rem);
  font-weight: 700;
  color: var(--ink-soft);
  padding-bottom: 2px;
  text-align: center;
}

/* Prvi stolpec je ožji od dnevnih: nosi številko in dva časa,
   ne imena predmeta. */
.urnik th.ura-glava,
.urnik .ura-celica {
  width: clamp(46px, 12vw, 82px);
}

.urnik .ura-celica {
  text-align: left;
  vertical-align: middle;
  color: var(--ink-soft);
  font-size: clamp(.62rem, 2vw, .8rem);
  line-height: 1.25;
  padding: 0 4px 0 0;
}
.urnik .ura-celica b {
  display: block;
  color: var(--ink);
  font-size: clamp(.85rem, 2.8vw, 1.1rem);
}
.urnik .ura-celica .cas { display: block; white-space: nowrap; }

/* ---------- polje s predmetom ----------

   ROB NOSI --rob IN NE TEMNEJŠA PASTELA. Pastelna ploskev na
   skoraj beli podlagi (ozek zaslon ima od nedavnega --papir-ozko)
   sama po sebi ne doseže razmerja 1,30, ki ga terja
   preveri_kontrast.js. Rešitev je ista kot pri gumbih pri
   "Predznakih": rob v lasnici, ki jo slog že ima, ne temnejša
   različica vsake od desetih barv — teh bi bilo deset novih
   vrednosti in vsaka svoja priložnost za napako. */
.polje {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  min-height: clamp(38px, 8.5vw, 62px);
  padding: clamp(3px, 1vw, 8px);
  border: 2px solid var(--rob);
  border-radius: var(--radius-s, 14px);
  background: #fff;
  color: var(--ink);
  font: inherit;
  text-align: left;
  cursor: pointer;
  overflow: hidden;
  transition: transform .1s ease, border-color .18s ease;
}
.polje:active { transform: translateY(2px); }

.polje .kratica {
  font-weight: 700;
  font-size: clamp(.72rem, 2.6vw, 1rem);
  line-height: 1.1;
}
/* Polno ime je pomoč in ne naloga: kadar ga ni kam dati, odpade,
   kratica pa ostane. Zato ne krajšamo s tremi pikami sredi besede,
   ampak ime skrijemo v celoti. */
.polje .polno {
  font-size: clamp(.56rem, 1.9vw, .74rem);
  line-height: 1.15;
  opacity: .8;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
@media (max-width: 520px) {
  .polje .polno { display: none; }
}

/* Prazno polje je vabilo in ne luknja: črtkan rob pove, da je tja
   mogoče vpisati, poln bi bil videti kot bela ploščica brez imena. */
.polje.prazno {
  border-style: dashed;
  border-color: rgba(35, 48, 74, .22);
  background: transparent;
}

/* ---------- odmor ---------- */
.urnik tr.odmor .ura-celica b { font-size: clamp(.66rem, 2.2vw, .85rem); }
.odmor-celica { padding: 0; }
.odmor-celica .pas {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: clamp(20px, 4vw, 30px);
  border-radius: 999px;
  background: repeating-linear-gradient(
    -45deg, rgba(35,48,74,.05) 0 6px, transparent 6px 12px);
  border: 1px solid var(--rob);
  color: var(--ink-soft);
  font-size: clamp(.6rem, 2vw, .78rem);
  font-weight: 600;
}

/* ---------- dejavnosti ----------

   DEJAVNOST NI DROBIŽ. Prva različica jih je izrisala kot drobne
   pilule pod velikimi barvnimi polji ur — na listu so bile videti
   kot opomba, čeprav so prav one tisto, za kar je treba spakirati
   torbo. Zdaj imajo isto obliko kot polje predmeta (isti rob, ista
   zaobljenost) in svojo vrstico, ki ni bistveno nižja od šolske. */
.dej-locnica td { height: 8px; padding: 0; }
.dej-glava { font-weight: 700; }
.dej-celica { vertical-align: top; }
.dej-kup { display: flex; flex-direction: column; gap: 4px; }

/* Ista past kot pri oknu: display premaga hidden. */
.vikend[hidden] { display: none; }

/* Sobota in nedelja si delita eno celico čez vse dneve, na pol.
   Nista dva od petih šolskih dni in ne smeta se poravnati z njimi. */
.vikend-par { display: flex; gap: clamp(4px, 1.2vw, 10px); }
.vikend-dan {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.vikend-ime {
  font-weight: 700;
  color: var(--ink-soft);
  font-size: clamp(.6rem, 2vw, .76rem);
}
.vikend .dej-kup { flex-direction: column; }

/* ŠKATLA ZA VIKEND JE ŠIROKA KOT DAN IN NE KOT POL LISTA.

   Polovica pasu je dva stolpca in pol; dokler jo je dejavnost
   zapolnila, je bilo plavanje v soboto trikrat širše od nogometa
   v ponedeljek, čeprav sta ista reč. Štirideset odstotkov
   polovice je natanko en stolpec. Na ozkem zaslonu odpade: tam je
   stolpec preozek za ime in uro, list pa je itak ležeč A4.

   PDF riše isto mero (glej narisiV v urnik.js) — kar se vidi na
   zaslonu, mora priti tudi na papir. */
@media (min-width: 700px) {
  .vikend-dan .dej-kup { max-width: 40%; }
}

/* ---------- poved o shranjevanju ----------

   Ne opozorilo. Pove, kje urnik je, in zakaj je natisnjeni list
   tisti, ki ostane. Barvo dobi šele, kadar zapis res ne gre skozi. */
.urnik-opomba {
  margin: clamp(12px, 2.4vh, 20px) auto 0;
  max-width: 56ch;
  text-align: center;
  color: var(--ink-soft);
  font-size: clamp(.76rem, 2.2vw, .9rem);
  line-height: 1.45;
}
.urnik-opomba.opozorilo { color: var(--coral-d, #C0392B); font-weight: 600; }

.tisk-ime { display: none; }

.nalagam td {
  text-align: center;
  color: var(--ink-soft);
  padding: clamp(18px, 5vh, 40px) 0;
}

/* ---------- okno ----------

   Pokrov in okence. Na telefonu se okno prilepi na dno (palec je
   tam), na širšem zaslonu stoji na sredini. */
.okno-ovoj { position: fixed; inset: 0; z-index: 60; display: flex; }
/* BREZ TE VRSTICE JE STRAN MRTVA. `display: flex` premaga privzeti
   `display: none`, ki ga nosi lastnost hidden — pokrov je torej
   ostal čez cel zaslon, neviden in zaprt, in požrl vsak klik na
   mrežo. Na sliki se ne vidi nič, ker je pokrov pod svojo barvo
   šele takrat, ko je okno odprto; prvi klik v preverbi pa je
   obstal takoj. (Spletišče sicer skriva z razredom .hidden, ki ima
   !important; lastnost hidden je tu boljša, ker jo berejo tudi
   bralniki zaslona — a jo je treba podpreti.) */
.okno-ovoj[hidden] { display: none; }
.okno-pokrov { position: absolute; inset: 0; background: rgba(35,48,74,.42); }
.okno {
  position: relative;
  margin: auto auto 0;
  width: 100%;
  max-width: 560px;
  max-height: 88vh;
  overflow-y: auto;
  background: var(--card);
  border-radius: 26px 26px 0 0;
  box-shadow: 0 -8px 30px rgba(35,48,74,.18);
  padding: 16px 16px calc(16px + env(safe-area-inset-bottom, 0px));
}
@media (min-width: 700px) {
  .okno { margin: auto; border-radius: 26px; }
}
.okno-glava { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.okno-glava h2 { margin: 0; font-size: 1.15rem; flex: 1 1 auto; }
.okno-zapri {
  flex: 0 0 auto;
  width: 44px; height: 44px;
  border: 3px solid var(--rob); border-radius: 999px;
  background: #fff; color: var(--ink);
  font: inherit; font-size: 1.1rem; cursor: pointer;
}

/* ---------- izbirnik predmeta ---------- */
.izbirnik {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(104px, 1fr));
  gap: 8px;
  margin-bottom: 14px;
}
.izbira {
  display: flex; flex-direction: column; justify-content: center;
  min-height: 62px; padding: 8px;
  border: 2px solid var(--rob); border-radius: var(--radius-s, 14px);
  background: #fff; color: var(--ink);
  font: inherit; text-align: left; cursor: pointer;
}
.izbira .kratica { font-weight: 700; }
.izbira .polno { font-size: .72rem; opacity: .8; line-height: 1.15; }
.izbira.brez { border-style: dashed; background: transparent; }

/* ---------- obrazci ---------- */
.polje-vrstica { display: block; margin-bottom: 10px; }
.polje-napis {
  display: block; font-weight: 600; font-size: .85rem;
  color: var(--ink-soft); margin-bottom: 4px;
}
.vnos {
  width: 100%; font: inherit; color: var(--ink);
  padding: 10px 12px; min-height: 44px;
  border: 3px solid var(--rob); border-radius: 14px; background: #fff;
}
.barve { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 14px; }
.barva {
  width: 44px; height: 44px; border-radius: 999px;
  border: 3px solid var(--rob); cursor: pointer;
}
.barva.on { border-color: var(--ink); }
.stikalo { display: flex; align-items: center; gap: 10px; margin: 6px 0 12px; min-height: 44px; }
.stikalo input { width: 22px; height: 22px; }
.obrazec-napaka { color: var(--coral-d, #C0392B); font-weight: 600; margin: 0 0 10px; }
.obrazec-gumbi { display: flex; flex-wrap: wrap; gap: 8px; }
.btn.urnik-gumb.sirok { width: 100%; }

/* ---------- seznama ---------- */
.seznam { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.seznam-vrstica {
  display: flex; align-items: center; gap: 10px;
  min-height: 48px; padding: 8px 12px;
  border: 2px solid var(--rob); border-radius: 14px;
  background: #fff; color: var(--ink); font: inherit;
  text-align: left; cursor: pointer;
}
.pika { width: 20px; height: 20px; border-radius: 999px; border: 2px solid var(--rob); flex: 0 0 auto; }
.seznam-kratica { font-weight: 700; min-width: 3.5em; }
.seznam-ime { color: var(--ink-soft); font-size: .88rem; }

/* ---------- ploščice dejavnosti ----------

   Ista oblika kot polje predmeta: enak rob, enaka zaobljenost,
   enak notranji odmik. Različna sta samo vsebina (ura namesto
   kratice) in to, da dejavnost nima številke šolske ure.

   Prej so bile ozke pilule z eno vrstico, ki so ob polju predmeta
   izgledale kot pripis. Ime in ura sta zdaj vsak v svoji vrstici,
   ime krepko — pove se, KAJ je, in šele nato KDAJ. */
.dej {
  display: flex; flex-direction: column; justify-content: center;
  width: 100%;
  min-height: clamp(30px, 6vw, 44px);
  padding: clamp(3px, 1vw, 7px);
  border: 2px solid var(--rob);
  border-radius: var(--radius-s, 14px);
  background: #fff; color: var(--ink);
  font: inherit; line-height: 1.15; text-align: left; cursor: pointer;
  overflow: hidden;
}
.dej-ime {
  font-weight: 700;
  font-size: clamp(.62rem, 2.2vw, .86rem);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.dej-cas {
  font-size: clamp(.54rem, 1.8vw, .72rem);
  opacity: .8;
}

.dej-dodaj {
  min-height: clamp(26px, 5vw, 34px);
  border: 2px dashed rgba(35,48,74,.22);
  border-radius: var(--radius-s, 14px);
  background: transparent; color: var(--ink-soft);
  font: inherit; font-size: 1rem; line-height: 1; cursor: pointer;
}
.dej-dodaj:hover { border-color: var(--rob); }

/* ============================================================
   TISKANJE — VARNOSTNA MREŽA IN NE OGLAŠENA POT

   Gumba "Natisni" ni več: dal je na telefonu drug izid kot na
   namizju, ker Safari @page { size: landscape } ne podpira, in dva
   gumba z različno zanesljivostjo sta slabša od enega, ki drži
   besedo. List obljublja PDF (glej oknoPdf v urnik.js).

   Ta slog kljub temu ostane. Ctrl+P in "Natisni" v meniju
   brskalnika ne izgineta s tem, ko odstranimo gumb — in kdor ju
   pritisne, ne sme dobiti menija, gumbov in preliva na papirju.
   Odslej torej ne obljublja lepe strani, ampak spodobno.

   Iste mere kot PDF: postavitev() jih izračuna v milimetrih in
   pripraviTisk() jih pripne na koren kot --t-*. Dva izrisovalca,
   ene številke — glej urnik.js.

   Robovi 10 mm so tisto, kar vsak domači tiskalnik še natisne;
   ista mera kot pri delovnih listih (tools/list_slog.css).
   ============================================================ */
@media print {
  @page { size: A4 landscape; margin: 10mm; }

  /* Vse, kar ni urnik, odpade: meni, naslov strani, gumbi, poved o
     shranjevanju, vznožje. Na papirju ni česa tapniti. */
  .meni, .header-block, .urnik-orodna, .urnik-opomba,
  .okno-ovoj, .dej-dodaj, footer, .noga, .o-igri {
    display: none !important;
  }

  body { background: #fff !important; }
  .wrap { padding: 0 !important; min-height: 0 !important; display: block !important; }

  /* List ni več list: na papirju je papir sam. Senca in zaobljen
     rob bi bila tiskalniku samo črnilo. */
  .urnik-koren.panel {
    padding: 0 !important;
    box-shadow: none !important;
    background: none !important;
    border-radius: 0 !important;
    overflow: visible !important;
  }

  /* TISK NE SME PREDPOSTAVLJATI LEŽEČE STRANI.

     Prva različica je pribila višino na 190 mm — A4 ležeče minus
     robova — in v Chromu je bilo videti prav. Na telefonu ne:
     Safari (torej vsi brskalniki na iPhonu in iPadu) @page { size:
     landscape } NE podpira. Telefon natisne pokončno, karkoli slog
     prosi, in višina 190 mm je tam napačna mera — mreža se ni
     prilagodila in dejavnosti so padle na drugo stran.

     Tega ni mogoče popraviti s CSS, ker ni naša odločitev. Zato
     tisk ne predpisuje višine: vrstice imajo najmanjšo mero, mreža
     zraste, kolikor je treba, in ne prelije. Na ležeči strani ostane
     nekaj praznega spodaj — ceneje kot list, ki se raztrga na dvoje.

     Ležeči list z izbiro kopij obljublja PDF, ki je naš od začetka
     do konca (glej oknoPdf v urnik.js). @page spodaj ostane kot
     PROŠNJA: namizni brskalniki jo upoštevajo. */
  .urnik-koren.panel { display: block; }
  .urnik { border-spacing: 1mm; }

  /* Dejavnosti in vikend naj se ne pretrgata čez rob strani. */
  #dejavnosti, .vikend, .dej, #vrstice tr {
    page-break-inside: avoid;
    break-inside: avoid;
  }

  /* Ime otroka: na zaslonu ga nosi naslov strani, ta pa je na
     papirju skrit. */
  .tisk-ime {
    display: block !important;
    font-weight: 700; font-size: 13pt;
    margin: 0 0 2mm;
  }
  .tisk-ime[hidden] { display: none !important; }

  .urnik th.ura-glava, .urnik .ura-celica { width: 18mm; }
  .urnik th { font-size: 8pt; }
  .urnik .ura-celica { font-size: 6.5pt; }
  .urnik .ura-celica b { font-size: 9pt; }

  /* Odmor je tanek, ura pa dovolj visoka, da se v njej vidita
     kratica in ime — a ne toliko, da bi sedem vrstic preseglo
     ležečo stran. */
  #vrstice tr.odmor { height: 5mm; }
  .polje {
    min-height: 17mm;
    height: auto;
    border-width: .4mm;
    /* Barve predmetov so pomen in ne okras: brez tega jih brskalnik
       pri tiskanju izpusti in vse celice so bele. */
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .polje .kratica { font-size: 9pt; }
  .polje .polno { font-size: 6pt; display: -webkit-box; }
  .polje.prazno { border-style: solid; border-color: #CED4E0; }

  .odmor-celica .pas { min-height: 5mm; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .dej {
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
    min-height: 9mm;
  }
  .dej-ime { font-size: 8pt; }
  .dej-cas { font-size: 6.5pt; }
  /* Prazen vikend na papir ne sodi. */
  .vikend.prazen { display: none; }
  .dej-glava { font-size: 7.5pt; }
  .vikend-ime { font-size: 7.5pt; }
}

/* Vrstica seznama ur: napis in ob njem puščici za vrstni red. */
.seznam-para { display: flex; align-items: stretch; gap: 6px; }
.seznam-para .seznam-vrstica { flex: 1 1 auto; }
.premik {
  flex: 0 0 auto;
  width: 44px; min-height: 48px;
  border: 2px solid var(--rob); border-radius: 14px;
  background: #fff; color: var(--ink);
  font: inherit; font-size: 1.05rem; cursor: pointer;
}
.premik:disabled { opacity: .32; cursor: default; }

/* Okno za PDF: uvodna poved in vrsta gumbkov s kopijami. */
.okno-uvod { margin: 0 0 12px; color: var(--ink-soft); font-size: .92rem; line-height: 1.45; }
.chips.kopije { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.chips.kopije .chip.on { border-color: var(--sky); color: var(--sky-d, #2F6FD0); }
