/* ---- Písmo Inter (od 1.3.0) ----
   Přibalené v pluginu, ne tažené z Google Fonts: portál tak nezávisí na cizí
   službě (a neposílá tam IP adresy uživatelů, což se u GDPR řeší). Latin-ext
   je kvůli české diakritice; bez něj by háčky a čárky spadly na náhradní font.
   Cesta k souborům je relativní k assets/css/, proto "../fonts/". */
@font-face{
  font-family:'Inter portal';font-style:normal;font-weight:400;font-display:swap;
  src:url(../fonts/inter-latin-400-normal.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:'Inter portal';font-style:normal;font-weight:400;font-display:swap;
  src:url(../fonts/inter-latin-ext-400-normal.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:'Inter portal';font-style:normal;font-weight:500;font-display:swap;
  src:url(../fonts/inter-latin-500-normal.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:'Inter portal';font-style:normal;font-weight:500;font-display:swap;
  src:url(../fonts/inter-latin-ext-500-normal.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:'Inter portal';font-style:normal;font-weight:600;font-display:swap;
  src:url(../fonts/inter-latin-600-normal.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:'Inter portal';font-style:normal;font-weight:600;font-display:swap;
  src:url(../fonts/inter-latin-ext-600-normal.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:'Inter portal';font-style:normal;font-weight:700;font-display:swap;
  src:url(../fonts/inter-latin-700-normal.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:'Inter portal';font-style:normal;font-weight:700;font-display:swap;
  src:url(../fonts/inter-latin-ext-700-normal.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;
}


/* ---- Rozcestník portálu ----
   Stejné tokeny i písmo jako docházka (1.3.0), aby portál a moduly působily
   jako jedna věc, ne jako dva weby pod sebou. Prefix je ap- ("aiccon portál"),
   ať se to nikdy nepotká s třídami docházky ani šablony webu. */
.ap-wrap{
  --ap-white:#ffffff;
  --ap-blue:#0b5fa5;
  --ap-blue-dark:#084c85;
  --ap-blue-soft:#eaf2f9;
  --ap-ink:#0f172a;
  --ap-ink-2:#475569;
  --ap-ink-soft:#94a3b8;
  --ap-line:#e6ebf1;
  --ap-line-2:#f1f5f9;
  --ap-surface-2:#f8fafc;
  --ap-radius:12px;
  /* Širší než do 1.1.6 (820 px): karty vedle sebe potřebují místo, aby dvě
     nevypadaly natěsnaná a tři se vešly do řady. */
  width:100%;max-width:1120px;margin:0 auto;padding:28px 4px 60px;
  color:var(--ap-ink);
  font-family:'Inter portal', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-size:14px;line-height:1.5;
  box-sizing:border-box;
}
.ap-wrap *,.ap-wrap *::before,.ap-wrap *::after{box-sizing:border-box;}

.ap-head{margin:0 0 24px;}
.ap-wrap p.ap-pozdrav{
  margin:0 0 2px;font-size:13px;color:var(--ap-ink-soft);font-weight:500;
}
.ap-wrap p.ap-pozdrav strong{color:var(--ap-ink-2);font-weight:600;}
.ap-wrap h2.ap-nadpis{
  margin:0;padding:0;border:0;
  font-size:27px;font-weight:700;letter-spacing:-0.015em;color:var(--ap-ink);
}
.ap-wrap p.ap-podnadpis{margin:4px 0 0;font-size:13.5px;color:var(--ap-ink-2);}

/* Dlaždice: velké karty vedle sebe (1.2.0, přání uživatele). Úzké řádky pod
   sebou vypadaly na širokém monitoru jako seznam odkazů. auto-fit s minimem
   280 px drží dvě i tři karty v řadě a na mobilu se složí pod sebe samo. */
.ap-dlazdice{
  display:grid;gap:16px;
  grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
}
.ap-wrap a.ap-dlazdice-item{
  display:flex;flex-direction:column;align-items:flex-start;gap:0;
  min-height:190px;padding:22px 22px 18px;text-decoration:none;
  background:var(--ap-white);border:1px solid var(--ap-line);border-radius:14px;
  color:var(--ap-ink);
  transition:border-color .12s, box-shadow .12s, transform .12s;
}
.ap-wrap a.ap-dlazdice-item:hover,
.ap-wrap a.ap-dlazdice-item:focus-visible{
  border-color:var(--ap-blue);box-shadow:0 6px 20px rgba(11,95,165,0.10);
  transform:translateY(-2px);outline:none;
}
.ap-dlazdice-ikona{
  flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  width:52px;height:52px;border-radius:13px;margin-bottom:16px;
  background:var(--ap-blue-soft);color:var(--ap-blue);
}
.ap-dlazdice-ikona svg.ap-ikona{width:26px;height:26px;display:block;}
.ap-wrap strong.ap-dlazdice-nazev{
  font-size:18px;font-weight:650;letter-spacing:-0.01em;color:var(--ap-ink);
}
.ap-dlazdice-popis{margin-top:5px;font-size:13px;line-height:1.5;color:var(--ap-ink-2);}
/* Patka karty: stav vlevo dole, "Otevřít" pod ním. margin-top:auto drží patku
   u spodní hrany, i když má jedna karta delší popisek než druhá. */
.ap-dlazdice-pata{
  /* min-height: karta bez stavu má patku stejně vysokou jako karta se
     štítkem, takže "Otevřít" sedí na všech kartách na stejné lince. */
  margin-top:auto;padding-top:16px;width:100%;min-height:46px;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.ap-dlazdice-stav{
  font-size:12px;font-weight:600;color:var(--ap-ink-2);
  background:var(--ap-surface-2);border:1px solid var(--ap-line);
  border-radius:999px;padding:4px 11px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.ap-dlazdice-vstup{
  margin-left:auto;display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;
  font-size:13px;font-weight:600;color:var(--ap-blue);
}
.ap-dlazdice-vstup svg{width:17px;height:17px;display:block;transition:transform .12s;}
.ap-wrap a.ap-dlazdice-item:hover .ap-dlazdice-vstup svg{transform:translateX(3px);}

.ap-paticka{margin-top:26px;padding-top:16px;border-top:1px solid var(--ap-line-2);}
.ap-wrap a.ap-odhlasit{
  font-size:12.5px;font-weight:600;color:var(--ap-ink-soft);text-decoration:none;
}
.ap-wrap a.ap-odhlasit:hover{color:var(--ap-blue);text-decoration:underline;}

/* Obrazovka "přihlaste se" / "nemáte přístup" - stejná karta, ať přechod mezi
   nepřihlášeným a přihlášeným stavem nevypadá jako jiná aplikace. */
.ap-gate{
  background:var(--ap-white);border:1px solid var(--ap-line);border-radius:var(--ap-radius);
  padding:28px;max-width:520px;
}
.ap-wrap .ap-gate h2{margin:0 0 8px;padding:0;border:0;font-size:20px;font-weight:700;}
.ap-wrap .ap-gate p{margin:0 0 18px;font-size:13.5px;color:var(--ap-ink-2);}
.ap-wrap a.ap-btn{
  display:inline-block;padding:10px 20px;border-radius:9px;
  background:var(--ap-blue);border:1px solid var(--ap-blue);color:var(--ap-white);
  font-size:13px;font-weight:600;text-decoration:none;
}
.ap-wrap a.ap-btn:hover{background:var(--ap-blue-dark);border-color:var(--ap-blue-dark);}

/* ---- Rám portálu: levé menu + obsah (1.1.0) ----
   Menu je tmavé schválně. Moduly jsou světlé aplikace a potřebují, aby bylo
   na první pohled vidět, co je navigace portálu a co už je obsah modulu -
   jinak docházka a menu splynou v jednu šedou plochu. */
.ap-shell{
  --ap-white:#ffffff;
  --ap-blue:#0b5fa5;
  --ap-blue-soft:#eaf2f9;
  --ap-ink:#0f172a;
  --ap-line:#e6ebf1;
  /* Podbarvení menu podle webu AICCON (zadal uživatel). --ap-tma-2 je o stupeň
     světlejší odstín téhož a používá se na najetí myší a na oddělovací linky. */
  --ap-tma:#0a2a47;
  --ap-tma-2:#123c62;
  --ap-tma-text:#cbd8e6;
  --ap-tma-soft:#7e94ac;
  --ap-sirka:236px;
  --ap-sirka-uzka:64px;
  display:flex;align-items:stretch;
  font-family:'Inter portal', system-ui, -apple-system, 'Segoe UI', sans-serif;
}
.ap-shell *,.ap-shell *::before,.ap-shell *::after{box-sizing:border-box;}

/* Roztažení přes celé okno (vypínatelné v nastavení). Docházka je široká
   tabulka a většina šablon drží obsah do ~1200 px - bez tohohle by se musela
   mačkat do zbytku po menu. */
/* !important tu je schválně. Blokové šablony WordPressu dávají přímým potomkům
   obsahu pravidlo ".is-layout-constrained > :where(...)" se stejnou specifitou
   jako naše třídy, a protože se jejich styly tisknou do hlavičky až za styly
   pluginu, vyhrály by. Nemáme navíc v ruce šablonu webu, takže se na pořadí
   nedá spolehnout. Omezeno jen na tyhle tři vlastnosti a jen na rám portálu. */
/* --ap-okno je šířka okna BEZ svislého posuvníku; dopočítá ji skript. Kdyby se
   tu počítalo s 100vw, posuvník se do výpočtu připočte a rám pak o těch pár
   pixelů přečuhuje vlevo i vpravo mimo zbytek stránky - a je to vidět. */
.ap-shell.ap-plna-sirka{
  margin-left:calc((100% - var(--ap-okno, 100vw)) / 2) !important;
  margin-right:calc((100% - var(--ap-okno, 100vw)) / 2) !important;
  max-width:none !important;
  width:auto !important;
}

/* Rám dotáhne ke spodnímu okraji okna, ať pod menu nezůstane prázdné místo.
   --ap-vyska = kolik okna zbývá pod tím, co je nad portálem (hlavička, pruh
   s nadpisem); počítá to skript, protože výšku toho nad sebou portál nezná. */
.ap-shell{min-height:var(--ap-vyska, 0px);}
/* clip, ne hidden: "overflow-x:hidden" na předkovi udělá ze svislé osy
   scrollovací kontejner a přišpendlené menu (position:sticky) se pak přestane
   držet okna - sjede nahoru pryč. "clip" ořízne stejně, ale sticky nechá být. */
body.ap-portal-sirka{overflow-x:clip;}

/* Patička webu na stránkách portálu (vypínatelné v nastavení). Portál je
   pracovní obrazovka, ne stránka webu - marketingová patička pod ní jen
   uřízne menu a nechá za ním prázdné bílé plochy. Selektory pokrývají Divi
   (#main-footer, #et-footer-nav), klasické šablony (#colophon, .site-footer)
   i blokové (footer.wp-block-template-part). */
body.ap-portal-bez-paticky #main-footer,
body.ap-portal-bez-paticky #et-footer-nav,
body.ap-portal-bez-paticky #colophon,
body.ap-portal-bez-paticky .site-footer,
body.ap-portal-bez-paticky footer.wp-block-template-part{
  display:none !important;
}

/* ---- levý sloupec ---- */
.ap-bocni{
  flex:0 0 var(--ap-sirka);width:var(--ap-sirka);
  display:flex;flex-direction:column;
  background:var(--ap-tma);color:var(--ap-tma-text);
  /* --ap-horni je výška pevné hlavičky webu a lišty wp-adminu dohromady;
     dopočítá ji skript v class-shell.php. Bez toho by se přišpendlené menu
     při odrolování schovalo pod hlavičku šablony. */
  /* stretch + max-height: na krátké stránce je menu přesně tak vysoké jako rám
     (žádný tmavý pruh přečuhující do patičky), na dlouhé se zastaví na výšce
     okna a od té chvíle se drží nahoře. */
  position:sticky;top:var(--ap-horni,0px);align-self:stretch;
  max-height:calc(100vh - var(--ap-horni,0px));
  transition:flex-basis .14s ease, width .14s ease;
}
.ap-shell.ap-sbaleno .ap-bocni{flex-basis:var(--ap-sirka-uzka);width:var(--ap-sirka-uzka);}
.ap-shell.ap-sbaleno .ap-nav-text{display:none;}

.ap-bocni-hlava{
  /* Zleva 21 px, ať nápis začínal přesně nad ikonami v menu pod ním
     (.ap-nav má 10 px a položka dalších 11). */
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  height:58px;padding:0 12px 0 21px;flex:0 0 auto;
  border-bottom:1px solid rgba(255,255,255,0.07);
}
.ap-znacka{
  font-size:13px;font-weight:700;letter-spacing:.14em;color:var(--ap-white);
  white-space:nowrap;overflow:hidden;
}
.ap-shell.ap-sbaleno .ap-znacka{display:none;}
.ap-shell button.ap-prepinac{
  flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  width:34px;height:34px;padding:0;margin:0;cursor:pointer;
  background:transparent;border:0;border-radius:8px;color:var(--ap-tma-soft);
  box-shadow:none;
}
.ap-shell button.ap-prepinac:hover{background:var(--ap-tma-2);color:var(--ap-white);}
.ap-shell button.ap-prepinac svg{width:19px;height:19px;display:block;}
.ap-shell.ap-sbaleno .ap-bocni-hlava{justify-content:center;padding:0;}

.ap-nav{flex:1 1 auto;overflow-y:auto;padding:12px 10px;display:flex;flex-direction:column;gap:2px;}
.ap-shell a.ap-nav-item{
  display:flex;align-items:center;gap:11px;
  padding:10px 11px;border-radius:9px;
  font-size:13.5px;font-weight:500;line-height:1.2;
  color:var(--ap-tma-text);text-decoration:none;white-space:nowrap;
  transition:background .12s, color .12s;
}
.ap-shell a.ap-nav-item:hover{background:var(--ap-tma-2);color:var(--ap-white);}
.ap-shell a.ap-nav-item.ap-aktivni{
  background:var(--ap-blue);color:var(--ap-white);font-weight:600;
}
.ap-nav-ikona{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:20px;height:20px;}
.ap-nav-ikona svg.ap-ikona{width:19px;height:19px;display:block;}
.ap-nav-text{overflow:hidden;text-overflow:ellipsis;}
.ap-shell.ap-sbaleno a.ap-nav-item{justify-content:center;padding:10px 0;}

.ap-bocni-pata{
  flex:0 0 auto;padding:10px;border-top:1px solid rgba(255,255,255,0.07);
  display:flex;flex-direction:column;gap:2px;
}
.ap-uzivatel{
  display:flex;align-items:center;gap:11px;padding:8px 11px;
  font-size:13px;font-weight:500;color:var(--ap-white);white-space:nowrap;
}
.ap-avatar{
  flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  width:26px;height:26px;border-radius:50%;
  background:var(--ap-tma-2);color:var(--ap-white);
  font-size:11.5px;font-weight:700;
}
.ap-shell a.ap-odhlasit{
  display:flex;align-items:center;gap:11px;
  padding:9px 11px;border-radius:9px;
  font-size:12.5px;font-weight:500;color:var(--ap-tma-soft);text-decoration:none;
  white-space:nowrap;
}
.ap-shell a.ap-odhlasit:hover{background:var(--ap-tma-2);color:var(--ap-white);text-decoration:none;}
.ap-shell a.ap-odhlasit svg{flex:0 0 auto;width:18px;height:18px;display:block;margin-left:1px;}
.ap-shell.ap-sbaleno .ap-uzivatel,
.ap-shell.ap-sbaleno a.ap-odhlasit{justify-content:center;padding-left:0;padding-right:0;}

/* ---- pravý sloupec ---- */
.ap-obsah{flex:1 1 auto;min-width:0;padding:0 26px;}
/* Uvnitř rámu už rozcestník nemusí být úzký sloupeček uprostřed stránky -
   zarovná se k menu stejně jako obsah modulu. */
.ap-obsah > .ap-wrap{margin:0;padding-top:30px;}

@media (max-width:860px){
  /* Na úzké obrazovce menu samo zúžíme na ikony - 236 px je tam moc. */
  .ap-bocni{flex-basis:var(--ap-sirka-uzka);width:var(--ap-sirka-uzka);}
  .ap-nav-text,.ap-znacka{display:none;}
  .ap-bocni-hlava{justify-content:center;padding:0;}
  .ap-shell a.ap-nav-item,.ap-uzivatel,.ap-shell a.ap-odhlasit{
    justify-content:center;padding-left:0;padding-right:0;
  }
  .ap-obsah{padding:0 14px;}
}

@media (max-width:600px){
  .ap-wrap{padding:20px 16px 48px;}
  .ap-wrap h2.ap-nadpis{font-size:22px;}
  .ap-wrap a.ap-dlazdice-item{min-height:0;padding:18px;}
  .ap-dlazdice-ikona{width:44px;height:44px;margin-bottom:12px;}
  .ap-dlazdice-ikona svg.ap-ikona{width:22px;height:22px;}
  .ap-wrap strong.ap-dlazdice-nazev{font-size:16.5px;}
}
