/* /Layout/MainLayout.razor.rz.scp.css */
/*
  Coquille de l'application.
  Points de rupture : compact < 600, medium 600–1023, expanded ≥ 1024 (ST-BO-11).
  Aucun autre point de rupture sans mise à jour des specs.

  Les deux orientations sont servies par la même grille (ST-BO-12) : c'est la largeur
  disponible qui décide, jamais l'orientation déclarée par l'appareil.
*/

.shell[b-5km1pgq3g6] {
    display: grid;
    grid-template-areas:
        "bar"
        "nav"
        "main";
    grid-template-rows: auto auto 1fr;
    min-height: 100dvh;
}

.shell__bar[b-5km1pgq3g6] {
    grid-area: bar;
    display: flex;
    align-items: baseline;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    /* Encoches et barres système : rien d'utile ne se glisse dessous (ST-BO-20). */
    padding-top: calc(var(--space-3) + env(safe-area-inset-top));
    padding-right: calc(var(--space-4) + env(safe-area-inset-right));
    padding-left: calc(var(--space-4) + env(safe-area-inset-left));
    background: var(--accent);
    color: var(--accent-text);
}

.shell__brand[b-5km1pgq3g6] {
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.shell__subtitle[b-5km1pgq3g6] {
    font-size: var(--text-small);
    opacity: 1;
}

.shell__user[b-5km1pgq3g6] {
    margin-left: auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}

.shell__user-name[b-5km1pgq3g6] {
    font-weight: 600;
}

.shell__logout[b-5km1pgq3g6] {
    border-color: var(--accent-text);
    color: var(--accent-text);
    background: transparent;
}

.shell__nav[b-5km1pgq3g6] {
    grid-area: nav;
    border-bottom: 1px solid var(--border);
    background: var(--surface-sunken);
}

.shell__main[b-5km1pgq3g6] {
    grid-area: main;
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    padding: var(--space-6) var(--space-4);
    /* Marge basse suffisante pour qu'aucune action ne finisse sous la barre de
       navigation d'un téléphone (ST-BO-20). */
    padding-bottom: calc(var(--space-8) + env(safe-area-inset-bottom));
    padding-right: calc(var(--space-4) + env(safe-area-inset-right));
    padding-left: calc(var(--space-4) + env(safe-area-inset-left));
}

@media (min-width: 1024px) {
    .shell[b-5km1pgq3g6] {
        grid-template-areas:
            "bar bar"
            "nav main";
        grid-template-columns: 16rem 1fr;
        grid-template-rows: auto 1fr;
    }

    .shell__nav[b-5km1pgq3g6] {
        border-right: 1px solid var(--border);
        border-bottom: none;
    }

    .shell__main[b-5km1pgq3g6] {
        padding: var(--space-8);
        max-width: 80rem;
    }
}
/* /Layout/NavMenu.razor.rz.scp.css */
/*
  Navigation principale.
  Sous 1024 px elle se pose sous la barre de titre, au-dessus en colonne.
  Aucune interaction au survol : il n'y a pas de souris sur un chantier (ST-BO-16).
*/

.nav__list[b-6g849f8sds] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--touch-gap);
    padding: var(--space-2) var(--space-3);
}

/* ::deep est obligatoire ici : NavLink est un composant, et l'isolation CSS
   n'appose son attribut de portée que sur le balisage écrit dans ce fichier.
   Sans lui, la règle ne s'applique pas et la cible tactile retombe à la hauteur
   du texte — 21 px au lieu des 48 exigés. */
.nav__list[b-6g849f8sds]  .nav__link {
    display: flex;
    align-items: center;
    /* Cible tactile pleine hauteur : le lien entier est cliquable, pas seulement
       le texte (ST-BO-13). */
    min-height: var(--touch);
    padding: 0 var(--space-4);
    border: 2px solid transparent;
    border-radius: var(--radius);
    color: var(--text);
    font-weight: 600;
    text-decoration: none;
}

/* L'état courant se lit à la bordure et au fond, pas à la seule teinte : une
   information portée par la couleur seule disparaît au soleil (ST-BO-14). */
.nav__list[b-6g849f8sds]  .nav__link.active {
    border-color: var(--accent);
    background: var(--surface);
    color: var(--accent);
    text-decoration: underline;
    text-underline-offset: 4px;
}

@media (min-width: 1024px) {
    .nav__list[b-6g849f8sds] {
        flex-direction: column;
        flex-wrap: nowrap;
        padding: var(--space-4) var(--space-3);
    }
}
/* /LengthInput.razor.rz.scp.css */
.length-input[b-8j0wpjz4ot] {
    display: inline-grid;
    grid-template-columns: minmax(6rem, 1fr) 4.5rem;
    gap: .5rem;
    width: 100%;
    align-items: center;
}

select[b-8j0wpjz4ot] {
    min-height: 48px;
    font: inherit;
}
/* /Pages/SiteColumns.razor.rz.scp.css */
.column-card[b-j9m3zlhq85] { border: 1px solid currentColor; border-radius: .5rem; padding: 1rem; margin-block: 1rem; }
.column-actions[b-j9m3zlhq85] { display: flex; flex-wrap: wrap; gap: .5rem; }
.column-card .btn[b-j9m3zlhq85], .column-card .field__control[b-j9m3zlhq85] { min-height: 48px; }
