/* Taxi Portail — layout.css (structure générale & responsive) */

/* ---- Coquille invité (connexion / mentions légales) -------------------- */
.guest-shell {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background:
        radial-gradient(900px 600px at 80% -10%, rgba(201,169,97,.18), transparent 60%),
        linear-gradient(160deg, var(--c-primary) 0%, var(--c-primary-dark) 100%);
}
.guest-header {
    padding: var(--sp-5) var(--sp-4);
    display: flex;
    justify-content: center;
}
.guest-main {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--sp-4);
}
.guest-footer {
    padding: var(--sp-4);
    text-align: center;
    color: rgba(245,241,232,.7);
    font-size: .85rem;
    display: flex;
    flex-direction: column;
    gap: var(--sp-1);
}
.guest-footer a { color: var(--c-accent); }

/* ---- Coquille application (portail connecté) --------------------------- */
.portal {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}
.portal-body {
    flex: 1;
    display: flex;
    width: 100%;
}
.portal-main {
    flex: 1;
    min-width: 0;
    padding: var(--sp-4) var(--sp-4) var(--sp-8);
}
.page-wrap {
    max-width: var(--content-max);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: var(--sp-4);
}

/* ---- Navigation : drawer en mobile ------------------------------------- */
.portal-nav {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: var(--nav-w);
    background: var(--c-primary);
    color: var(--c-surface);
    transform: translateX(-100%);
    transition: transform .25s ease;
    z-index: 60;
    display: flex;
    flex-direction: column;
    padding: var(--sp-4);
}
.portal-nav.is-open { transform: translateX(0); }
.portal-nav__scrim {
    position: fixed;
    inset: 0;
    background: rgba(18,40,68,.5);
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease;
    z-index: 55;
}
.portal-nav__scrim.is-open { opacity: 1; pointer-events: auto; }

/* ---- Desktop : nav fixe, plus de drawer -------------------------------- */
@media (min-width: 960px) {
    .portal-nav {
        position: sticky;
        top: 0;
        height: 100vh;
        transform: none;
    }
    .portal-nav__scrim,
    .portal-burger,
    .portal-nav__close { display: none; }
    .portal-main { padding: var(--sp-6) var(--sp-6) var(--sp-8); }
}

/* ---- Grilles ----------------------------------------------------------- */
.stat-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--sp-3);
}
.quick-access {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--sp-3);
}
.readonly-grid {
    display: grid;
    gap: var(--sp-3);
}
.directory {
    display: grid;
    gap: var(--sp-3);
}
@media (min-width: 620px) {
    .quick-access  { grid-template-columns: repeat(4, 1fr); }
    .readonly-grid { grid-template-columns: repeat(2, 1fr); }
    .directory     { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 900px) {
    .directory { grid-template-columns: repeat(3, 1fr); }
}
