/*
 * Fiz-Ikon shared shell — FIZIKON-UX-1
 * Header, navigation, footer, cookie consent and page-frame styling.
 */

.fizikon-shell {
    display: flex;
    min-height: 100dvh;
    flex-direction: column;
    background: var(--fz-surface);
}

.fizikon-main {
    flex: 1 0 auto;
    width: 100%;
}

.fizikon-skip-link {
    position: fixed;
    top: 10px;
    left: 10px;
    z-index: 3000;
    transform: translateY(-160%);
    padding: .75rem 1rem;
    border-radius: var(--fz-radius-sm);
    background: var(--fz-ink);
    color: #fff !important;
    font-weight: 700;
    text-decoration: none;
    transition: transform var(--fz-transition);
}

.fizikon-skip-link:focus {
    transform: translateY(0);
}

/* Header */
.fizikon-header {
    position: relative;
    z-index: 100;
    flex: 0 0 auto;
    background: rgba(255, 255, 255, .98);
    border-bottom: 1px solid var(--fz-border);
    box-shadow: 0 6px 24px rgba(37, 38, 41, .045);
}

.fizikon-utility-bar {
    background: var(--fz-surface-alt);
    border-bottom: 1px solid var(--fz-border);
}

.fizikon-utility-inner {
    min-height: 40px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
}

.fizikon-utility-group {
    display: flex;
    align-items: center;
    gap: 1.25rem;
}

.fizikon-utility-link {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    gap: .5rem;
    color: var(--fz-text) !important;
    font-size: .875rem;
    line-height: 1.35;
    text-decoration: none !important;
}

.fizikon-utility-link .pi {
    color: var(--fz-primary-strong);
    font-size: .9rem;
}

.fizikon-utility-link:hover {
    color: var(--fz-primary-strong) !important;
}

.fizikon-header-main {
    background: var(--fz-surface);
}

.fizikon-header-row {
    min-height: 82px;
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

.fizikon-brand {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    text-decoration: none !important;
}

.fizikon-brand-logo {
    display: block;
    width: 172px;
    max-height: 60px;
    object-fit: contain;
}

.fizikon-desktop-nav {
    min-width: 0;
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .15rem;
}

.fizikon-nav-link {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .65rem .8rem;
    border-radius: 999px;
    color: var(--fz-ink) !important;
    font-family: var(--fz-font-body);
    font-size: .9375rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none !important;
    white-space: nowrap;
    transition: background var(--fz-transition), color var(--fz-transition);
}

.fizikon-nav-link:hover,
.fizikon-nav-link:focus-visible {
    background: var(--fz-primary-soft);
    color: var(--fz-primary-strong) !important;
}

.fizikon-nav-logout.ui-commandlink {
    border: 0;
    background: transparent;
}

.fizikon-header-actions {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .65rem;
}

.fizikon-header-cta {
    min-height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .75rem 1.15rem;
    border: 1px solid var(--fz-primary-strong);
    border-radius: 999px;
    background: var(--fz-primary-strong);
    color: #fff !important;
    font-size: .9375rem;
    font-weight: 800;
    line-height: 1.2;
    text-decoration: none !important;
    box-shadow: 0 7px 18px rgba(201, 121, 83, .18);
    transition: transform var(--fz-transition), background var(--fz-transition), box-shadow var(--fz-transition);
}

.fizikon-header-cta:hover {
    transform: translateY(-1px);
    background: var(--fz-primary);
    color: #fff !important;
    box-shadow: 0 10px 22px rgba(201, 121, 83, .24);
}

.fizikon-mobile-call,
.fizikon-mobile-menu {
    display: none !important;
}

/* PrimeFaces MenuButton used only for the compact navigation. */
body .fizikon-mobile-menu.ui-menubutton > .ui-button {
    min-width: 48px;
    min-height: 48px;
    border-radius: 999px;
    border: 1px solid var(--fz-border-strong);
    background: var(--fz-surface);
    color: var(--fz-ink);
    box-shadow: none;
}

body .fizikon-mobile-menu-panel.ui-menu {
    width: min(300px, calc(100vw - 24px));
    padding: .5rem;
    border: 1px solid var(--fz-border);
    border-radius: var(--fz-radius-md);
    background: var(--fz-surface);
    box-shadow: var(--fz-shadow-md);
}

body .fizikon-mobile-menu-panel .ui-menuitem-link {
    min-height: 46px;
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .75rem .8rem;
    border-radius: 10px;
}

body .fizikon-mobile-menu-panel .ui-menuitem-link:hover {
    background: var(--fz-primary-soft);
}

body .fizikon-mobile-menu-panel .ui-menuitem-icon {
    color: var(--fz-primary-strong);
}

/* Footer */
.fizikon-footer {
    flex: 0 0 auto;
    margin-top: var(--fz-section-space);
    padding: 56px 0 24px;
    border-top: 1px solid var(--fz-border);
    background: var(--fz-surface-alt);
}

.fizikon-footer-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) minmax(0, .8fr);
    gap: clamp(32px, 5vw, 72px);
    align-items: start;
}

.fizikon-footer-brand {
    display: inline-flex;
    text-decoration: none !important;
}

.fizikon-footer-logo {
    width: 176px;
    max-height: 62px;
    object-fit: contain;
}

.fizikon-footer-intro {
    max-width: 360px;
    margin: 1.1rem 0 0 !important;
    color: var(--fz-text-muted) !important;
}

.fizikon-footer-title {
    margin: 0 0 1rem !important;
    font-size: 1rem !important;
    font-weight: 800 !important;
    letter-spacing: .02em !important;
}

.fizikon-footer-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.fizikon-footer-list li + li {
    margin-top: .6rem;
}

.fizikon-footer-list a {
    display: inline-flex;
    align-items: flex-start;
    gap: .7rem;
    color: var(--fz-text) !important;
    line-height: 1.55;
    text-decoration: none !important;
}

.fizikon-footer-list a:hover {
    color: var(--fz-primary-strong) !important;
}

.fizikon-footer-list .pi {
    width: 1.1rem;
    margin-top: .25rem;
    color: var(--fz-primary-strong);
    text-align: center;
}

.fizikon-footer-nav {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .55rem;
}

.fizikon-footer-nav a,
.fizikon-footer-legal a {
    color: var(--fz-text) !important;
    font-weight: 700;
    text-decoration: none !important;
}

.fizikon-footer-nav a:hover,
.fizikon-footer-legal a:hover {
    color: var(--fz-primary-strong) !important;
}

.fizikon-footer-bottom {
    margin-top: 42px;
    padding-top: 22px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .75rem 1.5rem;
    align-items: center;
    border-top: 1px solid var(--fz-border);
}

.fizikon-footer-copyright,
.fizikon-footer-note {
    margin: 0 !important;
    color: var(--fz-text-muted) !important;
    font-size: .875rem !important;
}

.fizikon-footer-legal {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .55rem 1rem;
    font-size: .875rem;
}

.fizikon-footer-note {
    grid-column: 1 / -1;
}

/* Cookie consent */
.fizikon-cookie-host {
    position: relative;
    z-index: 1800;
}

.fizikon-cookie-card {
    position: fixed;
    right: max(18px, env(safe-area-inset-right));
    bottom: max(18px, env(safe-area-inset-bottom));
    z-index: 1800;
    width: min(430px, calc(100vw - 36px));
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .9rem 1rem;
    padding: 20px;
    border: 1px solid var(--fz-border);
    border-radius: var(--fz-radius-lg);
    background: rgba(255, 255, 255, .985);
    box-shadow: 0 18px 52px rgba(37, 38, 41, .18);
}

.fizikon-cookie-icon {
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--fz-primary-soft);
    color: var(--fz-primary-strong);
    font-size: 1.2rem;
}

.fizikon-cookie-title {
    margin: 0 0 .45rem !important;
    font-size: 1.075rem !important;
}

.fizikon-cookie-text {
    margin: 0 0 .45rem !important;
    color: var(--fz-text-muted) !important;
    font-size: .925rem !important;
    line-height: 1.55 !important;
}

.fizikon-cookie-policy {
    font-size: .9rem;
    font-weight: 700;
}

.fizikon-cookie-actions {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    padding-top: .2rem;
}

body .fizikon-cookie-actions .ui-button {
    flex: 1 1 calc(50% - .325rem);
    min-width: 160px;
    min-height: 46px;
    padding-inline: 1rem;
    border-radius: 999px;
    font-weight: 800;
}

body .fizikon-cookie-actions .ui-button .ui-button-text,
body .fizikon-cookie-actions .ui-button .ui-button-label {
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

body .fizikon-cookie-primary.ui-button {
    border-color: var(--fz-primary-strong);
    background: var(--fz-primary-strong);
    color: #fff;
}

body .fizikon-cookie-primary.ui-button:hover {
    border-color: var(--fz-primary);
    background: var(--fz-primary);
}

body .fizikon-cookie-secondary.ui-button {
    border-color: var(--fz-border-strong);
    background: var(--fz-surface);
    color: var(--fz-ink);
}

/* Keep global status unobtrusive and away from the cookie card. */
.fizikon-page .global-ajax-status {
    top: 1rem;
    right: 1rem;
    bottom: auto;
}

/* Tablet and mobile shell */
@media (max-width: 991.98px) {
    .fizikon-desktop-nav,
    .fizikon-header-cta {
        display: none;
    }

    .fizikon-header-row {
        min-height: 72px;
        gap: .75rem;
    }

    .fizikon-brand-logo {
        width: 156px;
        max-height: 54px;
    }

    .fizikon-header-actions {
        margin-left: auto;
    }

    .fizikon-mobile-call {
        width: 48px;
        height: 48px;
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        border: 1px solid var(--fz-border-strong);
        border-radius: 999px;
        background: var(--fz-surface);
        color: var(--fz-primary-strong) !important;
        font-size: 1.1rem;
        text-decoration: none !important;
    }

    .fizikon-mobile-menu {
        display: inline-flex !important;
    }

    .fizikon-footer-grid {
        grid-template-columns: 1fr 1fr;
    }

    .fizikon-footer-brand-block {
        grid-column: 1 / -1;
    }
}

@media (max-width: 767.98px) {
    .fizikon-utility-bar {
        display: none;
    }

    .fizikon-footer {
        padding-top: 44px;
    }

    .fizikon-footer-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .fizikon-footer-brand-block {
        grid-column: auto;
    }

    .fizikon-footer-bottom {
        grid-template-columns: 1fr;
        margin-top: 34px;
    }

    .fizikon-footer-legal {
        justify-content: flex-start;
    }

    .fizikon-footer-note {
        grid-column: auto;
    }
}

@media (max-width: 575.98px) {
    .fizikon-header-row {
        min-height: 68px;
        gap: .5rem;
    }

    .fizikon-brand-logo {
        width: 136px;
        max-height: 50px;
    }

    .fizikon-mobile-call {
        width: 46px;
        height: 46px;
    }

    body .fizikon-mobile-menu.ui-menubutton > .ui-button {
        min-width: 46px;
        min-height: 46px;
        padding-inline: .8rem;
    }

    .fizikon-cookie-card {
        left: max(12px, env(safe-area-inset-left));
        right: max(12px, env(safe-area-inset-right));
        bottom: max(12px, env(safe-area-inset-bottom));
        width: auto;
        grid-template-columns: auto minmax(0, 1fr);
        padding: 16px;
        border-radius: var(--fz-radius-md);
    }

    .fizikon-cookie-actions {
        flex-direction: column;
    }

    body .fizikon-cookie-actions .ui-button {
        flex-basis: 100%;
        width: 100%;
        min-width: 0;
        min-height: 48px;
    }

}

@media (max-width: 359.98px) {
    .fizikon-brand-logo {
        width: 118px;
    }

    .fizikon-mobile-call {
        width: 44px;
        height: 44px;
    }

    body .fizikon-mobile-menu.ui-menubutton > .ui-button {
        min-width: 44px;
        min-height: 44px;
        padding-inline: .65rem;
    }
}

/* FIZIKON-DOCS-AUTH-1 — category based cookie consent */
.fizikon-cookie-form { grid-column: 1 / -1; min-width: 0; }
.fizikon-cookie-settings.ui-button { flex: 1 1 100% !important; width: 100%; color: var(--fz-primary-dark); }
.fizikon-cookie-preferences {
    display: grid;
    gap: .7rem;
    margin-top: .85rem;
    padding-top: .85rem;
    border-top: 1px solid var(--fz-border);
}
.fizikon-cookie-pref-row {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: .8rem;
    align-items: center;
    min-width: 0;
    padding: .7rem .75rem;
    border-radius: var(--fz-radius-md);
    background: var(--fz-surface-alt);
}
.fizikon-cookie-pref-row strong,
.fizikon-cookie-pref-row label { display:block; color:var(--fz-ink); font-weight:800; }
.fizikon-cookie-pref-row small { display:block; margin-top:.15rem; color:var(--fz-text-muted); line-height:1.45; }
.fizikon-cookie-always { color:var(--fz-success); font-size:.78rem; font-weight:850; white-space:nowrap; }
body .fizikon-cookie-save.ui-button { width:100%; min-height:46px; border-radius:999px; font-weight:800; }
@media (max-width:575.98px) {
    .fizikon-cookie-pref-row { grid-template-columns:minmax(0,1fr) auto; padding:.65rem; }
    .fizikon-cookie-settings.ui-button { width:100%; }
}
