/* Les Cocottes Manager v3.0.1 — responsive de l’application. */
@media (max-width: 1280px) {
  :root { --lcm-sidebar: 232px; }
  .lcm-app-topbar { grid-template-columns: 210px minmax(240px,390px) minmax(300px,1fr); gap: 14px; padding-inline: 18px; }
  .lcm-app-brand-link small, .lcm-app-version, .lcm-app-farm-name { display: none; }
  .lcm-app-profile-copy > strong { max-width: 95px; }
  .lcm-app-main { padding-inline: 28px; }
  .lcm-app-stat-grid { gap: 12px; }
  .lcm-app-stat-card { grid-template-columns: 42px 1fr; gap: 11px; padding: 15px; }
  .lcm-stat-icon { width: 42px; height: 42px; }
  .lcm-dashboard-quick-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 1020px) {
  .lcm-app-topbar { grid-template-columns: auto minmax(230px,1fr) auto; }
  .lcm-app-profile-copy, .lcm-logout-link { display: none; }
  .lcm-app-stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .lcm-dashboard-columns { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  :root { --lcm-topbar: 66px; }
  .lcm-app-topbar { grid-template-columns: minmax(0,1fr) auto; gap: 10px; padding: 0 14px; }
  .lcm-app-menu-toggle { display: grid; color: var(--lcm-text-soft) !important; background: white; }
  .lcm-app-global-search, .lcm-app-farm-name, .lcm-farm-switcher, .lcm-app-version { display: none; }
  .lcm-app-brand-link small { display: block; }
  .lcm-app-user { gap: 8px; }
  .lcm-app-sidebar {
    top: var(--lcm-topbar); width: min(88vw,330px);
    padding-bottom: calc(var(--lcm-mobile-nav) + 24px);
    transform: translateX(-104%); transition: transform .2s ease;
    box-shadow: var(--lcm-shadow-lg);
  }
  .lcm-app-shell.is-menu-open .lcm-app-sidebar { transform: translateX(0); }
  .lcm-app-overlay { position: fixed; z-index: 90; inset: var(--lcm-topbar) 0 0; border: 0; background: rgba(16,26,20,.44); backdrop-filter: blur(2px); }
  .lcm-app-shell.is-menu-open .lcm-app-overlay { display: block; }
  .lcm-app-main { width: 100%; margin-left: 0; padding: 25px 18px calc(var(--lcm-mobile-nav) + 34px); }
  .lcm-app-page-heading { align-items: flex-start; flex-direction: column; }
  .lcm-app-page-heading > .lcm-app-button, .lcm-app-page-heading > .lcm-app-add-menu, .lcm-app-page-heading > .lcm-health-add-menu { width: 100%; }
  .lcm-app-page-heading > .lcm-app-add-menu > summary, .lcm-app-page-heading > .lcm-health-add-menu > summary { width: 100%; justify-content: center; }
  .lcm-app-add-menu-panel, .lcm-health-add-menu-panel { left: 0; right: 0; width: 100%; }
  .lcm-mobile-nav {
    position: fixed; z-index: 500; right: 0; bottom: 0; left: 0;
    display: grid; grid-template-columns: 1fr 1fr 72px 1fr 1fr; align-items: end;
    min-height: calc(var(--lcm-mobile-nav) + env(safe-area-inset-bottom));
    padding: 7px 8px calc(7px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--lcm-border); background: rgba(255,255,255,.97);
    box-shadow: 0 -10px 30px rgba(24,31,26,.08); backdrop-filter: blur(15px);
  }
  .lcm-mobile-nav a, .lcm-mobile-nav button {
    position: relative;
    display: grid; justify-items: center; align-content: center; gap: 3px; min-width: 0; min-height: 54px;
    padding: 4px; border: 0; color: #747b74; background: transparent; text-decoration: none;
  }
  .lcm-notification-dot {
    position: absolute; top: 6px; right: calc(50% - 16px);
    width: 9px; height: 9px; border-radius: 50%;
    background: var(--lcm-danger, #b3362c); border: 2px solid rgba(255,255,255,.97);
  }
  .lcm-mobile-nav a.is-active { color: var(--lcm-primary); }
  .lcm-mobile-nav small { overflow: hidden; font-size: .65rem; font-weight: 750; text-overflow: ellipsis; }
  .lcm-mobile-nav .lcm-mobile-add {
    align-self: start; width: 58px; height: 58px; min-height: 58px; margin: -23px auto 0;
    border: 5px solid var(--lcm-bg); border-radius: 50%; color: white; background: var(--lcm-primary);
    box-shadow: 0 10px 24px rgba(49,92,73,.25);
  }
}

@media (max-width: 768px) {
  .lcm-app-main { padding-inline: 16px; }
  .lcm-dashboard-heading h1 { font-size: 1.9rem; }
  .lcm-dashboard-quick-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .lcm-app-card { padding: 18px; border-radius: 18px; }
  .lcm-app-dashboard-grid, .lcm-app-columns-2 { grid-template-columns: 1fr; }
  .lcm-app-card-wide { grid-column: auto; }
  .lcm-form-grid, .lcm-animal-filters form { grid-template-columns: 1fr; }
  .lcm-cheptel-grid, .lcm-app-animal-grid, .lcm-installation-grid { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .lcm-app-brand-link strong { max-width: 165px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .lcm-app-brand-link small { display: none; }
  .lcm-app-icon-link { width: 40px; height: 40px; flex-basis: 40px; }
  .lcm-app-stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .lcm-app-stat-card { display: block; min-height: 142px; padding: 14px; }
  .lcm-stat-icon { width: 38px; height: 38px; margin-bottom: 13px; border-radius: 12px; }
  .lcm-stat-icon .lcm-icon { width: 18px; height: 18px; }
  .lcm-app-stat-card strong { font-size: 1.45rem; }
  .lcm-app-stat-card div > span { white-space: normal; line-height: 1.25; }
  .lcm-dashboard-quick-grid { grid-template-columns: 1fr; }
  .lcm-dashboard-quick-grid > a { min-height: 74px; }
  .lcm-dashboard-chart { gap: 5px; overflow: hidden; }
  .lcm-dashboard-chart > div { grid-template-rows: 120px auto auto; }
  .lcm-dashboard-chart > div > span { width: min(100%,25px); height: 120px; }
  .lcm-quick-sheet > section {
    top: auto; bottom: 0; left: 0; width: 100%; max-height: 88dvh;
    padding: 12px 18px calc(24px + env(safe-area-inset-bottom));
    border-radius: 26px 26px 0 0; transform: none;
  }
  .lcm-quick-sheet-handle { display: block; width: 42px; height: 5px; margin: 0 auto 16px; border-radius: 99px; background: #d6d9d4; }
  .lcm-plan-comparison { grid-template-columns: repeat(4,84vw); }
}

@media (max-width: 390px) {
  .lcm-app-main { padding-inline: 12px; }
  .lcm-app-brand-mark { width: 39px; height: 39px; flex-basis: 39px; }
  .lcm-app-brand-link strong { max-width: 140px; font-size: .86rem; }
  .lcm-app-stat-card { min-height: 136px; }
  .lcm-app-card { padding: 16px; }
  .lcm-app-card-heading { align-items: flex-start; }
  .lcm-dashboard-chart { margin-inline: -4px; }
}

@media (max-width: 360px) {
  .lcm-app-brand-link strong { max-width: 120px; }
  .lcm-logout-link { display: none; }
  .lcm-app-stat-grid { grid-template-columns: 1fr; }
  .lcm-app-stat-card { display: grid; grid-template-columns: 42px 1fr; min-height: 102px; }
  .lcm-stat-icon { margin-bottom: 0; }
}

@media (min-width: 1440px) {
  .lcm-app-main { padding-inline: 54px; }
  .lcm-dashboard-columns { grid-template-columns: minmax(0,1.65fr) minmax(320px,.72fr); }
}
