/* ===========================================================================
   PŘIHLÁŠENÍ PRO HOSTY — hlavička + dialog (2026-08-18)
   ---------------------------------------------------------------------------
   Host přišlý ze sdíleného odkazu viděl nahoře dvě pole a dvě tlačítka a teprve
   pod tím bod, kvůli kterému přišel. Formulář je nově v dialogu; v hlavičce
   zůstalo logo a jedno tlačítko.

   Struktura dialogu kopíruje sdílený vzor .gc-dialog__* (hlavička s titulkem
   a křížkem, tělo, patička), takže se to čte stejně jako ostatní dialogy
   v projektu. Barvy a rádiusy jdou z tokenů --gc-*.
   =========================================================================== */

/* --- Hlavička hosta ------------------------------------------------------ */
.publicPageHeaderLoginBtn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    padding: 0 16px;
    border: 0;
    border-radius: var(--gc-radius, 12px);
    background: var(--gc-primary-strong, #0069d9);
    color: #fff !important;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
}

.publicPageHeaderLoginBtn:hover {
    background: var(--gc-primary-darker, #0056b3);
}

/* --- Dialog -------------------------------------------------------------- */
.gcPublicLogin[hidden] { display: none; }

/* z-index musí přebít hlavičku: veřejná (.publicPageHeader) i přihlášená
   (.page-head) jedou na 9999. Při 1300 zůstal horní pruh stránky nad tmavým
   pozadím dialogu — nebyl ztmavený a klik do „pozadí" u horního okraje trefil
   logo v hlavičce a odnesl hosta z bodu pryč na /login. Zůstáváme pod cookie
   lištou (2147483646), ta musí být úplně nahoře. */
.gcPublicLogin {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}

.gcPublicLogin__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, .45);
}

.gcPublicLogin__panel {
    position: relative;
    width: min(400px, 100%);
    max-height: calc(100vh - 32px);
    overflow-y: auto;
    background: var(--gc-surface, #fff);
    border-radius: var(--gc-radius-lg, 16px);
    box-shadow: 0 18px 48px -12px rgba(15, 23, 42, .45);
}

.gcPublicLogin__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--gc-border, #e2e8f0);
}

.gcPublicLogin__title {
    font-size: 15px;
    font-weight: 700;
    color: var(--gc-text, #0f172a);
}

/* Křížek je jediná cesta ven klávesnicí — fokus na něm musí být vidět. */
.gcPublicLogin__close {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--gc-text-muted, #5c6b7f);
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
}

.gcPublicLogin__close:hover {
    background: var(--gc-danger-soft, #fef2f2);
    color: var(--gc-danger-strong, #dc2626);
}

.gcPublicLogin__close:focus-visible {
    outline: 3px solid var(--gc-primary-strong, #0069d9);
    outline-offset: 2px;
}

.gcPublicLogin__body {
    padding: 14px;
}

/* Formulář uvnitř dialogu: pole pod sebou, plná šířka. Původní rozvržení
   z hlavičky (řádek vedle sebe) sem nepatří — v 400px panelu by se pole
   zmáčkla na třetinu. */
.gcPublicLogin__body .pointPageHeaderLoginForm,
.gcPublicLogin__body form {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
    float: none;
}

.gcPublicLogin__body .pointPageHeaderLoginFormEmail,
.gcPublicLogin__body .pointPageHeaderLoginFormPass,
.gcPublicLogin__body .pointPageHeaderLoginFormButton {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    float: none !important;
}

.gcPublicLogin__body input[type="text"],
.gcPublicLogin__body input[type="password"] {
    width: 100%;
    box-sizing: border-box;
    min-height: 42px;
    padding: 9px 12px;
    border: 1px solid var(--gc-border, #e2e8f0);
    border-radius: var(--gc-radius, 12px);
    background: var(--gc-bg-soft, #f8fafc);
    font-size: 15px;
}

.gcPublicLogin__body input:focus {
    outline: none;
    background: var(--gc-surface, #fff);
    border-color: var(--gc-primary-strong, #0069d9);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--gc-primary, #007bff) 18%, transparent);
}

.gcPublicLogin__body button.btnSet {
    width: 100%;
    min-height: 44px;
    margin: 0 !important;
    border-radius: var(--gc-radius, 12px);
    font-size: 15px;
    font-weight: 700;
}

.gcPublicLogin__actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 12px 14px;
    border-top: 1px solid var(--gc-border, #e2e8f0);
    background: var(--gc-bg-soft, #f8fafc);
}

.gcPublicLogin__register {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    border: 1px solid var(--gc-border, #cbd5e1);
    border-radius: var(--gc-radius, 12px);
    background: var(--gc-surface, #fff);
    /* public.css má `a { color: … !important }` */
    color: var(--gc-primary-strong, #0069d9) !important;
    font-size: 14.5px;
    font-weight: 600;
    text-decoration: none;
}

.gcPublicLogin__register:hover {
    border-color: var(--gc-primary, #007bff);
}

/* Host, který dialog zavřel, se má dostat k obsahu — ne k zamčené stránce.
   Zamykání rolování platí jen po dobu, co je dialog otevřený. */
body.gcPublicLoginOpen {
    overflow: hidden;
}

/* Hlavička hosta: logo vlevo, dvě akce vpravo na jednom řádku. Bez tohohle
   dědí `.pointPageHeaderLogin` rozvržení z public.css, které počítalo
   s formulářem — registrace pak zabírala celý řádek pod tlačítkem. */
.publicPageHeader .pointPageHeaderLogin {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    width: auto !important;
    float: none !important;
}

.publicPageHeader .publicPageHeaderRegister {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 0 14px;
    border: 1px solid var(--gc-border, #cbd5e1);
    border-radius: var(--gc-radius, 12px);
    background: var(--gc-surface, #fff);
    color: var(--gc-primary-strong, #0069d9) !important;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}

/* Zbytky po formuláři v hlavičce. Když tam bydlela dvě pole a dvě tlačítka,
   dávalo smysl dát bloku na mobilu celý řádek — teď je uvnitř jediné tlačítko
   a hlavička hosta se kvůli tomu roztáhla na tři řádky (logo / Přihlásit se /
   Vytvořit účet přes celou šířku, naměřeno 152 px na 375px displeji).
   Přebíjená pravidla: `.pointPageHeaderLogin { width: 100%; justify-content:
   stretch }` (public.css, ≤640 px) a `.publicPageHeaderRegister { width: 100%
   !important }` (publicredesign.css, ≤768 px). */
@media (max-width: 768px) {
    .publicPageHeader .pointPageHeaderLogin {
        width: auto !important;
        /* `flex: 1 1 100%` z publicredesign.css nutí blok na vlastní řádek —
           i když je v něm jediné tlačítko široké 109 px. */
        flex: 0 1 auto !important;
        justify-content: flex-end !important;
    }

    .publicPageHeader .publicPageHeaderRegister {
        width: auto !important;
        margin: 0 !important;
    }
}

/* Na úzkém displeji se vejde jen hlavní akce; registrace je i v dialogu.
   `!important` kvůli `display: inline-flex !important` z publicredesign.css. */
@media (max-width: 420px) {
    .publicPageHeader .publicPageHeaderRegister {
        display: none !important;
    }
}
