/* ============================================================
   Shell-ul aplicatiei (layout global, folosit de _AppLayout pe toate paginile).
   Contine: side menu (sidebar), zona de continut, header mobil (topbar) si footer.
   Design preluat 1:1 din Figma (frame "Frame general").

   NOTA: acest fisier defineste structura comuna a intregului site, nu o pagina anume.
   (Numele vechi era assistant.css, mostenit de cand layout-ul era gandit doar pentru
   zona de asistent AI; intre timp a devenit shell-ul global.)
   ============================================================ */

.app-shell {
    min-height: 100vh;
    background-color: var(--color-bg);
    display: flex;
}

/* ─────────────────────────────────────────────────────────────
   SIDE MENU
   ───────────────────────────────────────────────────────────── */
.side-menu {
    display: flex;
    flex-direction: column;
    width: 300px;
    flex-shrink: 0;
    border-right: 1px solid var(--color-border);
    background-color: var(--color-bg);
    height: 100vh;
    transition: width var(--transition-base);
}

/* Desktop: sidebar fixat pe lateral (pinned). Doar pagina deruleaza,
   meniul ramane nemiscat. Mobilul (drawer) e tratat separat in media query. */
@media (min-width: 901px) {
    .side-menu {
        position: fixed;
        top: 0;
        left: 0;
        z-index: 50;
    }

    /* Continutul lasa loc cat latimea sidebar-ului, ca sa nu intre pe sub el. */
    .app-content {
        margin-left: 300px;
    }
}

/* Zona scrollabila (tot meniul, mai putin "Contul meu") */
.side-menu__scroll {
    display: flex;
    flex-direction: column;
    gap: 20px;
    align-items: flex-start;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 10px 30px;
}

/* "Contul meu" - fix jos, cu separator sus */
.side-menu__account {
    flex-shrink: 0;
    padding: 20px 30px;
    border-top: 1px solid var(--color-border);
    display: flex;
    justify-content: center;
}

.account-link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 15px;
    border-radius: 8px;
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
    letter-spacing: -0.5px;
}

.account-link .material-symbols-rounded {
    font-size: 24px;
    color: var(--color-icon);
}

.account-link:hover {
    background-color: var(--color-bg-subtle);
}

/* Antet: logo + buton collapse */
.side-menu__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 0;
    width: 100%;
}

.side-menu__brand {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.side-menu__logo {
    height: 40px;
    width: auto;
}

.side-menu__collapse {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: 1px solid var(--color-border);
    border-radius: 50%;
    background-color: var(--color-bg);
    color: var(--color-icon);
}

.side-menu__collapse:hover {
    border-color: var(--color-cta);
    color: var(--color-cta);
}

.side-menu__collapse .material-symbols-rounded {
    transition: transform var(--transition-base);
}

/* Pe desktop se vede chevron (restrange); X-ul (close) e doar pentru mobil. */
.side-menu__collapse-icon--mobile {
    display: none;
}

/* Container pentru grupurile de navigatie */
.side-menu__groups {
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: 100%;
}

/* ─── Grup de navigatie (PREZENTARE / UTILE / ACTIUNI) ───────── */
.nav-group {
    display: flex;
    flex-direction: column;
    gap: 4px;
    width: 100%;
}

.nav-group__title {
    display: flex;
    align-items: center;
    height: 26px;
    padding: 5px 0;
    font-size: 12px;
    font-weight: var(--font-weight-semibold);
    line-height: 16px;
    letter-spacing: 0.1px;
    text-transform: uppercase;
    color: var(--color-icon);
}

.nav-group__items {
    display: flex;
    flex-direction: column;
    width: 100%;
}

/* spatiere mai mare intre item-urile din grupul de actiuni */
.nav-group__items--actions {
    gap: 10px;
}

/* ─── Item de navigatie ──────────────────────────────────────── */
.nav-item {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 10px 15px;
    border-radius: 8px;
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
    line-height: 20px;
    letter-spacing: -0.5px;
}

.nav-item__icon {
    font-size: 24px;
    line-height: 1;
    flex-shrink: 0;
    color: var(--color-icon);
}

.nav-item__label {
    font-size: 16px;
}

/* eticheta mica (14px) folosita la unele item-uri din design */
.nav-item--sm .nav-item__label {
    font-size: 14px;
}

/* Hover #F3F3F3 pe item-urile normale (Prezentare + Utile).
   Item-urile de actiune (Primary, Secondary, Outline) au propriul hover si sunt excluse. */
.nav-item:not(.nav-item--action):not(.nav-item--active):not(.is-current):hover {
    background-color: var(--color-bg-subtle);
}

/* Stare activa (ex. Prezentare): fundal verde transparent, text+icon verde */
.nav-item--active,
.nav-item.is-current {
    background-color: rgba(34, 173, 1, 0.1);
}

.nav-item--active .nav-item__label,
.nav-item--active .nav-item__icon,
.nav-item.is-current .nav-item__label,
.nav-item.is-current .nav-item__icon {
    color: var(--color-cta);
}

/* ─── Item-uri de actiune ────────────────────────────────────── */
.nav-item--action {
    justify-content: space-between;
}

.nav-item__lead {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Comanda online: buton plin verde */
.nav-item--primary {
    background-color: var(--color-cta);
}

.nav-item--primary .nav-item__label,
.nav-item--primary .nav-item__icon,
.nav-item--primary .nav-item__chevron {
    color: #fff;
}

/* Programeaza demo: fundal verde transparent mai intens */
.nav-item--secondary {
    background-color: rgba(34, 173, 1, 0.2);
}

.nav-item--secondary .nav-item__label,
.nav-item--secondary .nav-item__icon {
    color: #1d9601;
}

/* Contact: contur verde, fara fundal; hover verde 5% */
.nav-item--outline {
    border: 1px solid var(--color-cta);
    background-color: transparent;
}

.nav-item--outline:hover {
    background-color: rgba(34, 173, 1, 0.1);
}

.nav-item--outline .nav-item__label,
.nav-item--outline .nav-item__icon {
    color: var(--color-cta);
}

.nav-item__chevron {
    font-size: 20px;
    line-height: 1;
    flex-shrink: 0;
}

/* ─── Buton chat (in josul zonei de meniu) ───────────────────── */
.side-menu__chat {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    flex: 1 0 auto;
    min-height: 0;
    width: 100%;
    padding-top: 10px;
}

.chat-pill {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    padding: 13px 20px;
    border: 1px solid #e9ebee;
    border-radius: 12px;
    background-color: var(--color-bg);
    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.05);
}

.chat-pill__label {
    font-size: 15px;
    font-weight: var(--font-weight-medium);
    line-height: 24px;
    letter-spacing: -0.5px;
    color: var(--color-text-primary);
}

.chat-pill__icon {
    font-size: 24px;
    line-height: 1;
    color: var(--color-cta);
}

/* ─────────────────────────────────────────────────────────────
   ZONA DE CONTINUT (dreapta side menu)
   ───────────────────────────────────────────────────────────── */
.app-content {
    flex: 1 1 auto;
    min-width: 0;
    background-color: var(--color-bg);
    /* Coloana flex de inaltime minima cat ecranul: continutul (.page) creste si
       impinge footer-ul jos chiar si pe paginile scurte (sticky footer). */
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

/* Continutul ocupa tot spatiul disponibil dintre header si footer. */
.app-content > .page {
    flex: 1 0 auto;
}

.app-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    color: var(--color-text-secondary);
}

/* ─────────────────────────────────────────────────────────────
   STARE COLLAPSED (desktop): sidebar ingustat, doar iconuri
   Comutata din JS prin clasa .is-collapsed pe .app-shell.
   ───────────────────────────────────────────────────────────── */
.app-shell.is-collapsed .side-menu {
    width: 88px;
}

/* Desktop: cand sidebar-ul fixat se restrange la 88px, contul lasa exact atata loc. */
@media (min-width: 901px) {
    .app-shell.is-collapsed .app-content {
        margin-left: 88px;
    }
}

/* Ascundem tot ce e text cand meniul e restrans */
.app-shell.is-collapsed .side-menu__logo--text,
.app-shell.is-collapsed .nav-item__label,
.app-shell.is-collapsed .nav-group__title,
.app-shell.is-collapsed .chat-pill__label,
.app-shell.is-collapsed .account-link span:not(.material-symbols-rounded) {
    display: none;
}

/* Centram continutul randurilor pe iconuri */
.app-shell.is-collapsed .side-menu__scroll {
    padding-left: 16px;
    padding-right: 16px;
}

.app-shell.is-collapsed .side-menu__header {
    flex-direction: column;
    gap: 10px;
}

.app-shell.is-collapsed .nav-item,
.app-shell.is-collapsed .account-link {
    justify-content: center;
    padding-left: 0;
    padding-right: 0;
}

/* La item-urile de actiune, ascundem si sageata laterala */
.app-shell.is-collapsed .nav-item__chevron {
    display: none;
}

/* Chat-pill devine un buton patrat doar cu iconul */
.app-shell.is-collapsed .chat-pill {
    justify-content: center;
    padding: 13px;
}

/* Sageata butonului de collapse se intoarce (devine "extinde") */
.app-shell.is-collapsed .side-menu__collapse .material-symbols-rounded {
    transform: rotate(180deg);
}

/* ─────────────────────────────────────────────────────────────
   HEADER MOBIL (app-topbar) - ascuns pe desktop, vizibil sub 900px.
   Transparent fumuriu (blur), poza hero intra DEDESUBT. Logo stanga
   (mar + scris), persoana + hamburger dreapta.
   ───────────────────────────────────────────────────────────── */
.app-topbar {
    display: none; /* pe desktop nu apare; activat in media query */
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    height: 64px;
    padding: 0 18px;
    /* fumuriu translucid inchis: se vede poza prin el, dar dominanta e intunecata */
    background: rgba(12, 18, 28, 0.82);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

/* Grupul din dreapta: persoana + hamburger, unul langa altul */
.app-topbar__actions {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
}

.app-topbar__burger,
.app-topbar__account {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: none;
    background: none;
    color: #fff;
    cursor: pointer;
    flex-shrink: 0;
}

.app-topbar__burger .material-symbols-rounded {
    font-size: 28px;
}

.app-topbar__account .material-symbols-rounded {
    font-size: 25px;
}

/* Logo identic cu desktop: mar + scris, ambele 40px inaltime. */
.app-topbar__brand {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.app-topbar__mar,
.app-topbar__text {
    height: 40px;
    width: auto;
}

/* ─────────────────────────────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────────────────────────────── */

/* Sub 900px: sidebar devine drawer ascuns, deschis prin butonul hamburger din header */
@media (max-width: 900px) {
    /* Header-ul devine vizibil, fix sus, DEASUPRA continutului (transparent).
       Nu mai impinge continutul - poza hero intra dedesubt. */
    .app-topbar {
        display: flex;
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 100;
    }

    /* Continutul NU mai primeste padding-top: hero-ul urca sub header. */
    .app-content {
        padding-top: 0;
    }

    /* Pe HOME: primul section (hero + trust badges) iese din padding-ul .page
       cu margini negative, ca hero-ul sa fie edge-to-edge si lipit de sus.
       Folosim #prezentare (primul section) ca sa nu afectam restul paginii. */
    .app-content .page > #prezentare {
        margin-top: -20px;   /* anuleaza padding-top-ul .page (20px pe mobil) */
        margin-left: -16px;  /* anuleaza padding stanga/dreapta .page (16px) */
        margin-right: -16px;
    }

    /* Hero edge-to-edge: fara colturi rotunjite, si urca sub headerul transparent
       (padding-top intern ca textul sa nu intre sub header). */
    .app-content .hero {
        border-radius: 0;
        padding-top: 96px; /* 64px header + aer */
    }

    .app-content .hero__bg,
    .app-content .hero__overlay {
        border-radius: 0;
    }

    /* Paginile care NU incep cu hero (Blog, Legal, Comanda etc.) au nevoie de spatiu
       sub headerul fix, altfel primul continut intra sub el. */
    .app-content > .page:not(:has(#prezentare)) {
        padding-top: 84px;
    }

    .side-menu {
        position: fixed;
        top: 0;
        left: 0;
        z-index: 200;
        transform: translateX(-100%);
        transition: transform var(--transition-base);
        box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
    }

    /* In drawer afisam logo intreg (mar + scris). */
    .side-menu__logo--text {
        display: inline;
    }

    /* Pe mobil, butonul de collapse devine buton de INCHIDERE (X) al drawer-ului. */
    .side-menu__collapse-icon--desktop {
        display: none;
    }

    .side-menu__collapse-icon--mobile {
        display: inline;
    }

    .app-shell.is-menu-open .side-menu {
        transform: translateX(0);
    }

    /* overlay intunecat cand drawer-ul e deschis */
    .app-shell.is-menu-open::before {
        content: "";
        position: fixed;
        inset: 0;
        z-index: 150;
        background-color: rgba(17, 24, 39, 0.4);
    }
}

@media (max-width: 380px) {
    .side-menu {
        width: 100%;
    }
}

/* ─────────────────────────────────────────────────────────────
   FOOTER SIMPLU (pe toate paginile): copyright + linkuri legale.
   ───────────────────────────────────────────────────────────── */
.site-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px 24px;
    padding: 24px 70px;
    background-color: var(--color-dark-from);
}

.site-footer__copyright {
    font-size: 15px;
    letter-spacing: -0.5px;
    color: var(--color-on-dark-subtle);
    margin: 0;
}

.site-footer__legal {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px 24px;
}

.site-footer__legal a {
    font-size: 15px;
    letter-spacing: -0.5px;
    color: var(--color-on-dark-subtle);
    transition: color var(--transition-base);
}

.site-footer__legal a:hover {
    color: var(--color-on-dark);
}

@media (max-width: 900px) {
    .site-footer {
        padding: 24px 24px;
        flex-direction: column;
        align-items: flex-start;
    }
}
