body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #e8f5e9; }

/* ── Garden blocks ── */
.garden-block { position:relative; cursor:pointer; transition:transform .15s,box-shadow .15s; border-width:2px; border-style:solid; border-radius:10px; }
.garden-block:hover { transform:scale(1.05); box-shadow:0 6px 20px rgba(0,0,0,.18); z-index:5; }
.block-urgent      { background:#fee2e2; border-color:#ef4444; }
.block-prioritaire { background:#fff7ed; border-color:#f97316; }
.block-standard    { background:#eff6ff; border-color:#3b82f6; }
.block-culture     { background:#f0fdf4; border-color:#4ade80; }
.block-report      { background:#eff6ff; border-color:#93c5fd; }
.block-empty       { background:#f9fafb; border-color:#d1d5db; border-style:dashed; }
.problem-badge { position:absolute; top:-8px; right:-8px; font-size:16px; animation:pulse-anim 1.8s infinite; z-index:3; }
@keyframes pulse-anim { 0%,100%{transform:scale(1);opacity:1;} 50%{transform:scale(1.25);opacity:.75;} }

/* ── Greenhouse layout ── */
.greenhouse-wrapper { display:flex; align-items:stretch; overflow-x:auto; min-height:600px; }
.zone-wrapper { flex:1; display:flex; gap:6px; padding:12px; min-width:0; }
.garden-col { flex:1; display:flex; flex-direction:column; gap:6px; }
.aisle { width:52px; flex-shrink:0; background:white; border-left:2px solid #b2dfdb; border-right:2px solid #b2dfdb; display:flex; align-items:center; justify-content:center; }
.aisle-label { writing-mode:vertical-rl; font-size:10px; font-weight:700; letter-spacing:3px; color:#555; text-transform:uppercase; opacity:.6; }

/* ── Navigation ── */
.nav-btn { padding:7px 13px; border-radius:8px; font-size:13px; font-weight:600; border:none; cursor:pointer; transition:all .15s; color:rgba(255,255,255,.7); background:transparent; white-space:nowrap; }
.nav-btn.active { background:rgba(255,255,255,.2); color:white; }
.nav-btn:hover:not(.active) { background:rgba(255,255,255,.1); color:white; }
.badge { display:inline-flex; align-items:center; justify-content:center; min-width:18px; height:18px; border-radius:999px; font-size:11px; font-weight:700; padding:0 4px; }

/* ── Views ── */
.view { display:none; }
.view.active { display:block; }
.sub-view { display:none; }
.sub-view.active { display:block; }

/* ── Back button ── */
.back-btn { display:inline-flex; align-items:center; gap:6px; padding:8px 14px; border-radius:8px; background:#f3f4f6; color:#374151; font-size:13px; font-weight:600; border:none; cursor:pointer; transition:background .15s; }
.back-btn:hover { background:#e5e7eb; }

/* ── Detail view card ── */
.detail-card { background:white; border-radius:16px; padding:20px; margin-bottom:12px; box-shadow:0 2px 12px rgba(0,0,0,.06); border:1px solid #f0f0f0; }
.detail-label { font-size:11px; font-weight:700; color:#9ca3af; text-transform:uppercase; letter-spacing:.5px; margin-bottom:4px; }
.detail-value { font-size:15px; font-weight:600; color:#1f2937; }

/* ── Modal ── */
.modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:50; align-items:center; justify-content:center; padding:16px; }
.modal-overlay.active { display:flex; }
.modal-content { background:white; border-radius:16px; max-width:560px; width:100%; max-height:90vh; overflow-y:auto; box-shadow:0 24px 48px rgba(0,0,0,.25); }
.modal-header { padding:20px 24px 0; }
.modal-tabs { display:flex; border-bottom:2px solid #f3f4f6; padding:0 24px; overflow-x:auto; }
.modal-tab { padding:10px 14px; font-size:13px; font-weight:600; cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-2px; color:#9ca3af; transition:all .15s; white-space:nowrap; flex-shrink:0; }
.modal-tab.active { border-bottom-color:#16a34a; color:#16a34a; }
.modal-body { padding:20px 24px 24px; }
.tab-panel { display:none; }
.tab-panel.active { display:block; }

/* ── Quick-add task menu ── */
.quick-type-btn { display:flex; align-items:center; gap:5px; padding:9px 10px; border-radius:8px; background:#f9fafb; border:1.5px solid #e5e7eb; font-size:12px; font-weight:600; color:#374151; cursor:pointer; transition:all .12s; width:100%; text-align:left; }
.quick-type-btn:hover { background:#f0fdf4; border-color:#4ade80; color:#15803d; }

/* ── Inputs ── */
.field { width:100%; padding:9px 12px; border:1.5px solid #d1d5db; border-radius:8px; font-size:16px; font-family:inherit; transition:border-color .2s,box-shadow .2s; background:#fafafa; }
.field:focus { outline:none; border-color:#16a34a; box-shadow:0 0 0 3px rgba(22,163,74,.12); background:white; }
label.form-label { display:block; font-size:13px; font-weight:600; color:#374151; margin-bottom:6px; }

/* ── Priority radio cards ── */
.priority-card { flex:1; text-align:center; padding:9px 4px; border-radius:8px; border:2px solid transparent; cursor:pointer; transition:all .15s; font-size:12px; font-weight:600; user-select:none; }
.pcard-urgent      { background:#fee2e2; color:#b91c1c; }
.pcard-prioritaire { background:#fff7ed; color:#c2410c; }
.pcard-standard    { background:#eff6ff; color:#1d4ed8; }
input[name="priority"]:checked + .pcard-urgent      { border-color:#ef4444; box-shadow:0 0 0 3px rgba(239,68,68,.2); }
input[name="priority"]:checked + .pcard-prioritaire { border-color:#f97316; box-shadow:0 0 0 3px rgba(249,115,22,.2); }
input[name="priority"]:checked + .pcard-standard    { border-color:#3b82f6; box-shadow:0 0 0 3px rgba(59,130,246,.2); }

/* ── Culture radio cards ── */
.culture-card { flex:1; text-align:center; padding:9px 4px; border-radius:8px; border:2px solid transparent; cursor:pointer; font-size:11px; font-weight:700; user-select:none; transition:all .15s; }
.ccard-vide       { background:#f9fafb; color:#6b7280; }
.ccard-en-place   { background:#f0fdf4; color:#065f46; }
.ccard-a-planter  { background:#fef9c3; color:#854d0e; }
.ccard-a-recolter { background:#fed7aa; color:#9a3412; }
input[name="cultureStatut"]:checked + .ccard-vide       { border-color:#9ca3af; box-shadow:0 0 0 3px rgba(156,163,175,.3); }
input[name="cultureStatut"]:checked + .ccard-en-place   { border-color:#4ade80; box-shadow:0 0 0 3px rgba(74,222,128,.3); }
input[name="cultureStatut"]:checked + .ccard-a-planter  { border-color:#facc15; box-shadow:0 0 0 3px rgba(250,204,21,.3); }
input[name="cultureStatut"]:checked + .ccard-a-recolter { border-color:#fb923c; box-shadow:0 0 0 3px rgba(251,146,60,.3); }

/* ── Statut buttons ── */
.statut-btn { padding:8px 10px; border-radius:6px; font-size:12px; font-weight:600; border:1.5px solid transparent; cursor:pointer; transition:all .12s; background:#f3f4f6; color:#6b7280; flex:1; text-align:center; min-height:40px; }
.statut-btn.active-a_faire  { background:#eff6ff; color:#1d4ed8; border-color:#3b82f6; }
.statut-btn.active-en_cours { background:#fff7ed; color:#c2410c; border-color:#f97316; }
.statut-btn.active-terminee { background:#f0fdf4; color:#15803d; border-color:#4ade80; }

/* ── Buttons ── */
.btn { padding:10px 16px; border-radius:8px; font-size:14px; font-weight:600; border:none; cursor:pointer; transition:all .15s; font-family:inherit; }
.btn-green { background:#16a34a; color:white; } .btn-green:hover { background:#15803d; }
.btn-red   { background:#dc2626; color:white; } .btn-red:hover   { background:#b91c1c; }
.btn-gray  { background:#e5e7eb; color:#374151; } .btn-gray:hover { background:#d1d5db; }
.btn-sm    { padding:7px 11px; font-size:12px; border-radius:6px; min-height:36px; }
.btn-outline-green { background:transparent; border:1.5px solid #16a34a; color:#16a34a; padding:10px 16px; }
.btn-outline-green:hover { background:#f0fdf4; }

/* ── Task/Problem items ── */
.task-item    { border-radius:10px; padding:12px; margin-bottom:8px; border:1.5px solid; }
.problem-item { border-radius:8px; padding:10px 12px; margin-bottom:8px; border:1px solid; }
.problem-item.resolved { opacity:.5; }

/* ── List cards ── */
.list-card { background:white; border-radius:10px; border:1.5px solid #e5e7eb; padding:14px 16px; cursor:pointer; transition:box-shadow .15s; margin-bottom:8px; }
.list-card:hover { box-shadow:0 4px 12px rgba(0,0,0,.1); }
.list-card:active { background:#f9fafb; }

/* ── Pills ── */
.pill { display:inline-flex; align-items:center; gap:3px; padding:2px 8px; border-radius:999px; font-size:11px; font-weight:700; }
.pill-urgent      { background:#fee2e2; color:#b91c1c; }
.pill-prioritaire { background:#fff7ed; color:#c2410c; }
.pill-standard    { background:#eff6ff; color:#1d4ed8; }
.pill-en-cours    { background:#fff7ed; color:#c2410c; }
.pill-terminee    { background:#f0fdf4; color:#15803d; }

/* ── Deadline pills ── */
.dl-overdue { background:#fee2e2; color:#b91c1c; }
.dl-today   { background:#fef3c7; color:#92400e; }
.dl-soon    { background:#fff7ed; color:#9a3412; }
.dl-ok      { background:#f0fdf4; color:#166534; }

/* ── Status filter ── */
.status-filter-btn { padding:6px 12px; border-radius:20px; font-size:12px; font-weight:600; border:2px solid #e5e7eb; background:white; cursor:pointer; color:#6b7280; transition:all .15s; flex-shrink:0; white-space:nowrap; }
.status-filter-btn.active { border-color:#16a34a; background:#f0fdf4; color:#15803d; }

/* ── Filter rows ── */
.filter-section { background:white; border-bottom:1px solid #e5e7eb; }
.filter-toggle-bar { display:flex; align-items:center; justify-content:space-between; padding:10px 16px; cursor:pointer; }
.filter-rows-wrap { display:flex; flex-direction:column; gap:8px; }
.filter-rows-wrap.collapsed { display:none; }
.filter-row { display:flex; align-items:center; gap:8px; }
.filter-row-label { font-size:10px; font-weight:700; color:#9ca3af; text-transform:uppercase; letter-spacing:.6px; white-space:nowrap; width:50px; flex-shrink:0; }
.filter-row-btns { display:flex; gap:5px; overflow-x:auto; scrollbar-width:none; flex-wrap:nowrap; }
.filter-row-btns::-webkit-scrollbar { display:none; }

/* ── Bottom nav (mobile) ── */
#bottomNav { display:none; position:fixed; bottom:0; left:0; right:0; z-index:30; background:white; border-top:1px solid #e5e7eb; box-shadow:0 -2px 12px rgba(0,0,0,.07); padding-bottom:env(safe-area-inset-bottom,0); }
#bottomNav .nav-btn { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; padding:8px 4px 10px; border-radius:0; color:#9ca3af; background:transparent; white-space:normal; min-height:56px; font-size:10px; font-weight:600; }
#bottomNav .nav-btn .bn-icon { font-size:20px; line-height:1.2; display:block; }
#bottomNav .nav-btn .bn-label { display:block; line-height:1; position:relative; }
#bottomNav .nav-btn.active { color:#16a34a; background:transparent; }
#bottomNav .nav-btn:hover:not(.active) { background:#f9fafb; color:#374151; }

/* ── Stats ── */
.stat-card { border-radius:12px; padding:12px; text-align:center; color:white; }
.legend-pill { display:inline-flex; align-items:center; gap:5px; padding:3px 10px; border-radius:999px; font-size:12px; font-weight:600; }

/* ═══════════════════════════════
   MOBILE
═══════════════════════════════ */
/* ── Hamburger ── */
#hamburgerBtn { display:none; flex-direction:column; justify-content:center; gap:5px; width:36px; height:36px; padding:6px; border:none; background:rgba(255,255,255,.15); border-radius:8px; cursor:pointer; flex-shrink:0; }
#hamburgerBtn span { display:block; width:100%; height:2px; background:white; border-radius:2px; transition:all .2s; }
#hamburgerBtn.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
#hamburgerBtn.open span:nth-child(2) { opacity:0; }
#hamburgerBtn.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
#mobileMenu { display:none; flex-direction:column; gap:2px; padding:10px 16px 14px; background:linear-gradient(135deg,#1b5e20 0%,#2e7d32 60%,#388e3c 100%); border-top:1px solid rgba(255,255,255,.1); }
#mobileMenu.open { display:flex; }
#mobileMenu .nav-btn { text-align:left; padding:11px 14px; border-radius:8px; font-size:14px; }
.mobile-menu-divider { height:1px; background:rgba(255,255,255,.15); margin:6px 0; }
.mobile-action-btn { padding:11px 14px; border-radius:8px; font-size:14px; font-weight:600; border:none; cursor:pointer; background:rgba(255,255,255,.12); color:rgba(255,255,255,.85); text-align:left; font-family:inherit; transition:background .15s; }
.mobile-action-btn:hover { background:rgba(255,255,255,.2); }

@media (max-width:640px) {
    header .max-w-screen-2xl { flex-wrap:nowrap; gap:8px; padding:10px 12px; }
    header h1 { font-size:15px; }
    #desktopNav { display:none; }
    #importBtn, #exportBtn, #notifBtn { display:none; }
    #hamburgerBtn { display:flex; }
    body { padding-bottom:calc(60px + env(safe-area-inset-bottom,0)); }
    #bottomNav { display:flex; }
    .filter-toggle-bar { display:flex; }
    .stats-grid { grid-template-columns:repeat(3,1fr) !important; }
    .stat-card  { padding:10px 6px; }
    .aisle { width:28px; }
    .zone-wrapper { padding:5px; gap:4px; }
    .garden-col { gap:4px; }
    .garden-block:hover { transform:none; box-shadow:none; }
    .garden-block:active { transform:scale(.97); }
    .modal-overlay { padding:0; align-items:flex-end; }
    .modal-content { border-radius:20px 20px 0 0; max-height:92vh; width:100%; }
    .modal-header { padding:16px 16px 0; position:sticky; top:0; background:white; z-index:1; }
    .modal-header button[id$="Close"],
    #closeBtn { min-width:44px; min-height:44px; display:flex; align-items:center; justify-content:center; margin:-8px -8px -8px auto; }
    .modal-body { padding:16px; }
    .priority-card, .culture-card { padding:12px 4px; font-size:12px; }
    .btn { padding:12px 14px; font-size:14px; }
    .legend-row { overflow-x:auto; flex-wrap:nowrap !important; scrollbar-width:none; }
    .legend-row::-webkit-scrollbar { display:none; }
    .status-filter-row { overflow-x:auto; flex-wrap:nowrap; scrollbar-width:none; }
    .status-filter-row::-webkit-scrollbar { display:none; }
    /* Zone tabs mobile */
    #mobileZoneTabs { display:flex !important; border-bottom:2px solid #e5e7eb; }
    .zone-tab { flex:1; padding:11px 8px; font-size:13px; font-weight:700; border:none; cursor:pointer; background:#f9fafb; color:#9ca3af; border-bottom:3px solid transparent; margin-bottom:-2px; transition:all .15s; font-family:inherit; }
    #tabSouth.active { background:#eff6ff; color:#1d4ed8; border-bottom-color:#3b82f6; }
    #tabNorth.active { background:#f0fdf4; color:#065f46; border-bottom-color:#4ade80; }
    #desktopZoneHeaders { display:none; }
    .aisle { display:none; }
    .greenhouse-wrapper { overflow-x:visible; min-height:auto; }
    #zoneSouthWrapper, #zoneNorthWrapper { display:none; flex:1; min-width:0; }
    #zoneSouthWrapper.mobile-active, #zoneNorthWrapper.mobile-active { display:flex; }
}
@media (min-width:641px) {
    .filter-toggle-bar { display:none; }
    .filter-rows-wrap.collapsed { display:flex; }
}
@media (max-width:380px) {
    #bottomNav .nav-btn .bn-icon { font-size:17px; }
    #bottomNav .nav-btn { font-size:9px; }
}

/* ══════════════════════════════════════
   ANIMATION BOTTOM SHEET
══════════════════════════════════════ */
@media (max-width: 640px) {
    .modal-overlay.active .modal-content {
        animation: slideUp 0.28s cubic-bezier(.32,.72,0,1);
    }
    @keyframes slideUp {
        from { transform: translateY(100%); opacity: .8; }
        to   { transform: translateY(0);   opacity: 1;   }
    }
}

/* ══════════════════════════════════════
   BADGES JARDIN (vue Plan)
══════════════════════════════════════ */
.garden-badge {
    display: inline-flex; align-items: center; gap: 2px;
    padding: 2px 5px; border-radius: 4px;
    font-size: 10px; font-weight: 700; line-height: 1.3;
}
.badge-problem { background: #fee2e2; color: #b91c1c; }
.badge-report  { background: #dbeafe; color: #1d4ed8; }
.badge-harvest { background: #fff7ed; color: #c2410c; }
.badge-recolte { background: #dcfce7; color: #15803d; }

/* ══════════════════════════════════════
   FIL DE RAPPORTS
══════════════════════════════════════ */

/* Feed container */
.fil-empty { text-align:center; color:#9ca3af; padding:64px 16px; }

/* Day label */
.fil-day-label {
    font-size:11px; font-weight:700; color:#9ca3af; text-transform:uppercase;
    letter-spacing:.8px; padding:8px 0 6px; margin-top:4px;
}

/* Report card */
.report-card {
    background:white; border-radius:12px; border:1.5px solid #e5e7eb;
    border-left-width:4px; padding:14px 16px; margin-bottom:10px;
    box-shadow:0 1px 4px rgba(0,0,0,.05);
}
.report-card-header { display:flex; align-items:center; gap:10px; margin-bottom:8px; flex-wrap:wrap; }
.report-avatar {
    width:32px; height:32px; border-radius:50%; color:white;
    font-size:11px; font-weight:800; display:flex; align-items:center;
    justify-content:center; flex-shrink:0; letter-spacing:.5px;
}
.report-meta { flex:1; min-width:0; }
.report-author { display:block; font-size:13px; font-weight:700; color:#111827; }
.report-time   { display:block; font-size:11px; color:#9ca3af; }
.report-type-badge {
    display:inline-flex; align-items:center; gap:4px;
    padding:3px 9px; border-radius:999px; font-size:11px; font-weight:700;
    white-space:nowrap; flex-shrink:0;
}
.report-jardin {
    display:inline-block; font-size:12px; font-weight:600; color:#374151;
    background:#f3f4f6; border-radius:6px; padding:2px 8px; margin-bottom:8px;
}
.report-message { font-size:14px; color:#374151; line-height:1.5; }

/* Fil filters */
.fil-filters-wrap {
    display:flex; flex-direction:column; gap:0;
    background:white; border-bottom:1px solid #e5e7eb;
    padding:6px 0;
    position:sticky; top:0; z-index:10;
}
.fil-chips-row { display:flex; align-items:center; gap:6px; overflow-x:auto; scrollbar-width:none; padding:4px 16px; }
.fil-chips-row::-webkit-scrollbar { display:none; }
.fil-chip-label { font-size:10px; font-weight:700; color:#9ca3af; text-transform:uppercase; letter-spacing:.6px; white-space:nowrap; flex-shrink:0; }
.fil-chip {
    display:inline-flex; align-items:center;
    padding:5px 12px; border-radius:999px;
    border:1.5px solid #e5e7eb; background:white;
    font-size:12px; font-weight:600; color:#6b7280;
    cursor:pointer; white-space:nowrap; flex-shrink:0;
    transition:all .15s; min-height:32px; font-family:inherit;
}
.fil-chip:hover { border-color:#d1d5db; background:#f9fafb; }
.fil-chip.active { background:#16a34a; color:white; border-color:#16a34a; }
.fil-chip-probleme.active { background:#dc2626; border-color:#dc2626; }
.fil-chip-interrompu.active { background:#7c3aed; border-color:#7c3aed; }
.fil-chip-encours.active { background:#2563eb; border-color:#2563eb; }
.fil-date-chip {
    padding:4px 10px; border-radius:999px;
    border:1.5px solid #e5e7eb; font-size:12px;
    color:#6b7280; background:white; cursor:pointer;
    min-height:32px; flex-shrink:0; font-family:inherit;
}
.fil-date-chip:focus { outline:none; border-color:#16a34a; }
.fil-date-chip:not(:placeholder-shown) { border-color:#16a34a; color:#15803d; background:#f0fdf4; }
.fil-date-clear {
    padding:4px 9px; border-radius:999px;
    border:1.5px solid #fecaca; background:#fee2e2;
    color:#dc2626; font-size:12px; font-weight:700;
    cursor:pointer; min-height:32px; flex-shrink:0; font-family:inherit;
}

/* Pilote selector (modal + fil) */
.pilote-grid { display:flex; flex-wrap:wrap; gap:8px; }
.pilote-btn {
    padding:8px 14px; border-radius:20px; font-size:13px; font-weight:600;
    border:2px solid #e5e7eb; background:white; cursor:pointer; color:#374151;
    transition:all .15s; font-family:inherit;
}
.pilote-btn.selected, .pilote-btn:hover { border-color:#16a34a; background:#f0fdf4; color:#15803d; }

/* Type selector (modal) */
.type-grid { display:flex; flex-direction:column; gap:6px; }
.type-btn {
    display:flex; align-items:center; gap:10px; padding:10px 14px;
    border-radius:10px; border:2px solid #e5e7eb; background:white;
    cursor:pointer; font-size:13px; font-weight:600; color:#374151;
    transition:all .15s; font-family:inherit; text-align:left;
}
.type-btn:hover  { border-color:#d1d5db; background:#f9fafb; }
.type-btn.selected { border-color:#16a34a; background:#f0fdf4; }
.type-btn-emoji { font-size:18px; width:24px; text-align:center; flex-shrink:0; }

/* FAB Speed dial */
#fabContainer {
    display:none; position:fixed;
    bottom:calc(70px + env(safe-area-inset-bottom,0)); right:16px;
    z-index:25; flex-direction:column; align-items:flex-end; gap:10px;
}
#fabMain {
    width:56px; height:56px; border-radius:50%;
    background:#16a34a; color:white; border:none; font-size:26px;
    box-shadow:0 4px 16px rgba(22,163,74,.45); cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition:transform .2s,background .15s; font-family:inherit;
    flex-shrink:0;
}
#fabMain.open { transform:rotate(45deg); background:#374151; }
#fabMain:active { transform:scale(.92); }
.fab-options { display:flex; flex-direction:column; align-items:flex-end; gap:8px; }
.fab-options.hidden { display:none; }
.fab-option {
    display:flex; align-items:center; gap:8px; padding:10px 14px;
    border-radius:24px; border:none; color:white; cursor:pointer;
    font-size:14px; font-weight:700; font-family:inherit;
    box-shadow:0 3px 12px rgba(0,0,0,.2);
    animation:fabPop .2s cubic-bezier(.32,.72,0,1);
    min-height:44px;
}
.fab-option-icon { font-size:18px; }
.fab-option-label { white-space:nowrap; }
@keyframes fabPop { from { opacity:0; transform:scale(.7) translateX(20px); } to { opacity:1; transform:scale(1) translateX(0); } }

/* Panneau jardin */
.garden-section-title {
    font-size:11px; font-weight:700; color:#9ca3af; text-transform:uppercase;
    letter-spacing:.7px; margin-bottom:8px;
}
.garden-activity-card {
    background:#f9fafb; border-radius:8px; padding:10px 12px;
    margin-bottom:6px; border-left:3px solid #e5e7eb;
}
.garden-empty-msg { font-size:13px; color:#9ca3af; font-style:italic; padding:4px 0 8px; }

/* Rapport modal */
#rapportModal .modal-content { max-width:480px; }
.rapport-modal-body { padding:0 24px 24px; display:flex; flex-direction:column; gap:18px; }
.rapport-section-label {
    font-size:12px; font-weight:700; color:#6b7280; text-transform:uppercase;
    letter-spacing:.6px; margin-bottom:6px;
}

@media (max-width:640px) {
    #fabContainer { display:flex; }
    #newRapportBtn { display:none; }
    #rapportModal .modal-content { border-radius:20px 20px 0 0; max-height:92vh; }
    .rapport-modal-body { padding:0 16px 24px; }
}

/* ── Pilote select (fil de rapports) ── */
.fil-pilote-select {
    padding: 5px 14px; border-radius: 999px;
    border: 1.5px solid #e5e7eb; background: white;
    font-size: 12px; font-weight: 600; color: #6b7280;
    cursor: pointer; min-height: 32px; font-family: inherit;
    flex-shrink: 0; transition: border-color .15s;
}
.fil-pilote-select:focus { outline: none; border-color: #16a34a; }
.fil-pilote-select option { font-weight: 600; }

/* ── Palette notification line ── */
.palette-notif-line {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    background: linear-gradient(135deg, #fff7ed 0%, #fef3c7 100%);
    border: 2px solid #f97316; border-radius: 10px;
    padding: 10px 14px; flex-wrap: wrap;
    animation: palette-glow 2.5s ease-in-out infinite;
}
.palette-notif-line .rv-palette-recovered-btn {
    padding: 8px 14px; border-radius: 8px;
    background: #16a34a; color: white;
    font-size: 12px; font-weight: 700;
    cursor: pointer; border: none; font-family: inherit;
    white-space: nowrap; flex-shrink: 0; transition: background .15s;
}
.palette-notif-line .rv-palette-recovered-btn:hover { background: #15803d; }
@keyframes palette-glow {
    0%, 100% { border-color: #f97316; box-shadow: 0 0 0 0 rgba(249,115,22,0); }
    50% { border-color: #ea580c; box-shadow: 0 0 0 3px rgba(249,115,22,.15); }
}

/* ── Pilote buttons (formulaire récolte inline) ── */
.rv-pilote-btn {
    padding: 5px 11px; border-radius: 16px;
    border: 1.5px solid #e5e7eb; background: white;
    font-size: 12px; font-weight: 600; color: #374151;
    cursor: pointer; font-family: inherit;
    transition: all .12s; white-space: nowrap;
}
.rv-pilote-btn:hover { border-color: #d1d5db; background: #f9fafb; }
.rv-pilote-btn.selected { border-color: #16a34a; background: #f0fdf4; color: #15803d; }

/* ── Serre tabs ── */
.serre-tabs-bar { display:flex; background:white; border-bottom:2px solid #e5e7eb; overflow-x:auto; scrollbar-width:none; }
.serre-tabs-bar::-webkit-scrollbar { display:none; }
.serre-tab { flex:1; padding:11px 16px; font-size:13px; font-weight:700; border:none; cursor:pointer; background:transparent; color:#9ca3af; border-bottom:3px solid transparent; margin-bottom:-2px; transition:all .15s; font-family:inherit; white-space:nowrap; text-align:center; }
.serre-tab.active { color:#16a34a; border-bottom-color:#16a34a; }
.serre-tab:hover:not(.active) { color:#374151; background:#f9fafb; }

/* ── FAB ne masque plus le contenu accordéon récoltes ── */
.rv-detail { padding-bottom: 80px; }
