/* Planning La GG — thème sombre doré, ambiance "parenthèse sur l'eau" (inspirée de Jolly) */
:root{
  --bg:#0a0a0a; --bg2:#121413; --card:#161a19; --line:#262c2b;
  --gold:#c9a84c; --gold-d:#a88a36; --text:#f0ede8; --muted:#9aa19e;
  --water:#3f8f8b; --water-d:#0e2a2a;
  --ok:#5fb37c; --err:#e2675c; --warn:#e0b04a;
  --radius:14px; --tap:44px;
  --f-title:'Playfair Display',Georgia,serif; --f-body:'Inter',system-ui,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 var(--f-body);min-height:100vh}
h1,h2,h3{font-family:var(--f-title);font-weight:600;line-height:1.2;margin:0 0 .6em}
h1{font-size:1.7rem} h2{font-size:1.3rem} h3{font-size:1.1rem}
a{color:var(--gold)} a:hover{color:#e3c46a}
.ico{width:22px;height:22px;flex:none}
.muted{color:var(--muted)} .small{font-size:.875rem}

/* ---- boutons & formulaires (cibles tactiles >= 44px) ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:var(--tap);padding:.6rem 1.2rem;border-radius:999px;
  border:1px solid var(--gold);background:var(--gold);color:#111;font:600 1rem var(--f-body);text-decoration:none;cursor:pointer}
.btn:hover{background:#dbbb5e;color:#111}
.btn.ghost{background:transparent;color:var(--gold)} .btn.ghost:hover{background:rgba(201,168,76,.12);color:var(--gold)}
.btn.danger{background:transparent;border-color:var(--err);color:var(--err)}
.btn.block{width:100%} .btn.sm{min-height:var(--tap);padding:.4rem .9rem;font-size:.9rem}
label{display:block;font-size:.875rem;color:var(--muted);margin:0 0 .3rem}
input,select,textarea{width:100%;min-height:var(--tap);padding:.6rem .9rem;border-radius:10px;border:1px solid var(--line);background:#0f1211;color:var(--text);font:1rem var(--f-body)}
input:focus,select:focus,textarea:focus,.btn:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
.field{margin-bottom:1rem}
.alert{padding:.8rem 1rem;border-radius:10px;margin-bottom:1rem;border:1px solid;font-size:.95rem}
.alert.ok{border-color:var(--ok);background:rgba(95,179,124,.1)} .alert.error{border-color:var(--err);background:rgba(226,103,92,.1)}
.alert.info{border-color:var(--water);background:rgba(63,143,139,.12)}

/* ---- écran d'authentification : hero eau ---- */
.auth-body{background:radial-gradient(1200px 500px at 50% -10%,#123a3a 0%,var(--bg) 70%);display:flex;align-items:center;justify-content:center;padding:1rem}
.auth-wrap{width:100%;max-width:420px}
.brand{text-align:center;margin-bottom:1.5rem}
.brand .logo{width:54px;height:54px;color:var(--gold)}
.brand h1{font-size:1.9rem;margin:.4rem 0 .2rem}
.brand p{margin:0;color:var(--water);font-family:var(--f-title);font-style:italic;font-size:1.05rem}
.auth-card{background:rgba(22,26,25,.92);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;box-shadow:0 20px 50px rgba(0,0,0,.45)}
.waves{display:block;width:100%;height:46px;margin-top:1.5rem;color:var(--water)}
.linkline{text-align:center;margin-top:1rem}

/* ---- coque de l'application ---- */
.topbar{position:sticky;top:0;z-index:20;background:rgba(10,10,10,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.topbar-in{max-width:1100px;margin:0 auto;display:flex;align-items:center;gap:1rem;padding:.6rem 1rem;min-height:56px}
.logo-link{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--text);font:600 1.15rem var(--f-title)}
.logo-link .ico{color:var(--gold);width:26px;height:26px}
.nav-desktop{display:none;margin-left:auto;gap:.3rem;align-items:center}
.nav-desktop a,.nav-desktop button{color:var(--text);text-decoration:none;padding:.5rem .9rem;border-radius:999px;background:none;border:0;font:500 .95rem var(--f-body);cursor:pointer;min-height:var(--tap);display:inline-flex;align-items:center}
.nav-desktop a.on,.nav-desktop a:hover,.nav-desktop button:hover{background:rgba(201,168,76,.14);color:var(--gold)}
.who{margin-left:auto;font-size:.85rem;color:var(--muted)}
main.container{max-width:1100px;margin:0 auto;padding:1.2rem 1rem 6rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem;margin-bottom:1rem}
.badge{display:inline-block;padding:.1rem .6rem;border-radius:999px;font-size:.75rem;border:1px solid var(--line);color:var(--muted)}
.badge.admin{border-color:var(--gold);color:var(--gold)} .badge.owner{border-color:var(--water);color:var(--water)} .badge.off{border-color:var(--err);color:var(--err)}
.badge.regisseur{border-color:var(--ok);color:var(--ok)} .badge.intendance{border-color:#b48ce6;color:#b48ce6}

/* barre de navigation basse (mobile) */
.nav-bottom{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;background:rgba(14,16,15,.97);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
.nav-bottom a,.nav-bottom button{flex:1;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--muted);text-decoration:none;font:500 .7rem var(--f-body);background:none;border:0;cursor:pointer}
.nav-bottom a.on{color:var(--gold)}

/* liste utilisateurs : cartes sur mobile, tableau sur desktop */
.ulist{display:grid;gap:.8rem}
.urow{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;display:grid;gap:.5rem}
.urow.inactive{opacity:.55}
.urow .actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.3rem}
.grid2{display:grid;gap:0 1rem}

@media (min-width:820px){
  main.container{padding-bottom:3rem}
  .grid2{grid-template-columns:1fr 1fr}
  h1{font-size:2rem}
}

/* ---- module 2 : réglages & options ---- */
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.inline-add{display:flex;gap:.6rem;align-items:flex-end;flex-wrap:wrap;margin-bottom:.8rem}
.inline-add .grow{flex:1 1 200px;margin-bottom:0}
.inline-add .btn{margin-bottom:0}
label.check{display:flex;align-items:center;gap:.6rem;min-height:var(--tap);color:var(--text);font-size:.95rem;margin:0}
label.check input{width:22px;min-height:22px;height:22px;accent-color:var(--gold)}
h2 .ico{vertical-align:-4px;margin-right:.3rem;color:var(--gold)}
.card .ulist{margin-top:.5rem}
.nav-bottom a,.nav-bottom button{font-size:.65rem}

/* ---- module 3 : événements ---- */
.alert.warn{border-color:var(--warn);background:rgba(224,176,74,.1)}
.tight{margin:.3rem 0 .4rem 1.1rem;padding:0}
.warn-txt{color:var(--warn)}
.back{margin:0 0 .6rem;font-size:.95rem}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.page-head h1{margin-bottom:.2rem}
.grid3{display:grid;gap:0 1rem}
.card.accent{border-color:var(--gold)}
.badge.ok{border-color:var(--ok);color:var(--ok)}
.badge.st-option{border-color:var(--warn);color:var(--warn)} .badge.st-confirmed{border-color:var(--ok);color:var(--ok)}
.badge.st-cancelled{border-color:var(--err);color:var(--err)} .badge.st-done{color:var(--muted)}

.filters{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-bottom:1rem}
.filters .sep{width:1px;height:24px;background:var(--line);margin:0 .3rem}
.chip{display:inline-flex;align-items:center;min-height:var(--tap);padding:0 .9rem;border:1px solid var(--line);border-radius:999px;color:var(--text);text-decoration:none;font-size:.9rem}
.chip.on{border-color:var(--gold);color:var(--gold);background:rgba(201,168,76,.1)}

.evlist{display:grid;gap:.7rem}
.evcard{display:flex;gap:.9rem;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--warn);border-radius:var(--radius);padding:.9rem;text-decoration:none;color:var(--text)}
.evcard:hover{border-color:var(--gold)}
.evcard.st-confirmed{border-left-color:var(--ok)} .evcard.st-cancelled{border-left-color:var(--err);opacity:.6} .evcard.st-done{border-left-color:var(--muted)}
.evdate{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:54px;text-align:center}
.evdate .d{font:600 1.7rem/1 var(--f-title);color:var(--gold)} .evdate .m{font-size:.75rem;color:var(--muted);text-transform:capitalize}
.evtitle{font-weight:600;margin-bottom:.15rem}

.keytimes{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}
.kt{display:flex;flex-direction:column} .kt .lbl{font-size:.75rem;color:var(--muted)}
.kt .val{font:600 1.35rem var(--f-title)} .kt .val small{font:500 .7rem var(--f-body);color:var(--muted);margin-left:.25rem}
.kt.hl .val{color:var(--gold);font-size:1.7rem}
.cards .card{margin-bottom:1rem}
.line{margin-bottom:.5rem}
.tel{font-weight:600}
.prep{list-style:none;margin:0;padding:0}
.prep li{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--line)} .prep li:last-child{border:0}
.pre{white-space:pre-wrap;margin:.2rem 0 1rem}
.hist{list-style:none;margin:0;padding:0} .hist li{padding:.5rem 0;border-bottom:1px solid var(--line);font-size:.9rem}
.chg{display:inline-block;margin-right:.6rem} .chg s{color:var(--muted)}

.client-row{margin-bottom:.2rem}
.opt-block{padding:.4rem 0;border-bottom:1px solid var(--line)} .opt-block:last-child{border:0}
.opt-title{font-weight:500;margin-bottom:.3rem}
.opt-row{display:grid;grid-template-columns:1fr;gap:.5rem;margin-bottom:.5rem}
.opt-row.has-detail{grid-template-columns:1fr 90px}
.opt-row:not(.has-detail) input{max-width:140px}
.sticky-actions{position:sticky;bottom:64px;display:flex;gap:.6rem;flex-wrap:wrap;padding:.8rem 0;background:linear-gradient(transparent,var(--bg) 35%)}
@media (min-width:820px){
  .keytimes{grid-template-columns:repeat(6,1fr)} .grid3{grid-template-columns:repeat(3,1fr)} .sticky-actions{bottom:0}
}

/* ---- module 4 : calendrier ---- */
.more-sheet{position:fixed;inset:0;z-index:25;background:rgba(0,0,0,.55);display:flex;align-items:flex-end}
.more-sheet[hidden]{display:none}
.more-in{width:100%;background:var(--card);border-top:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0;padding:.8rem 1rem calc(72px + env(safe-area-inset-bottom));display:grid;gap:.2rem}
.more-in a,.more-in button{display:flex;align-items:center;gap:.8rem;min-height:var(--tap);padding:0 .6rem;color:var(--text);text-decoration:none;background:none;border:0;font:500 1rem var(--f-body);border-radius:10px;width:100%;text-align:left;cursor:pointer}
.more-in a.on{color:var(--gold)} .more-in a:hover,.more-in button:hover{background:rgba(201,168,76,.1)}
.more-who{padding:.2rem .6rem .5rem}
.nav-bottom button.on{color:var(--gold)}

.cal-filters{display:grid;grid-template-columns:1fr 1fr;gap:0 .8rem;margin-bottom:.4rem}
.cal-toggles{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:0 1.2rem}
.legend{display:flex;flex-wrap:wrap;gap:.3rem 1rem;margin:.2rem 0 .8rem}
.legend .dot{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:.35rem;vertical-align:-1px;background:var(--warn)}
.dot.st-confirmed{background:var(--ok)} .dot.st-option{background:var(--warn)} .dot.st-done{background:#6f7774} .dot.st-cancelled{background:var(--err)}
.dot.jolly{background:var(--water)} .dot.unavail{background:repeating-linear-gradient(45deg,#3a3f3e,#3a3f3e 3px,#26292a 3px,#26292a 6px)}

#calendar{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:.6rem;margin-bottom:1rem;
  --fc-page-bg-color:transparent;--fc-border-color:var(--line);--fc-neutral-bg-color:#1b2120;--fc-today-bg-color:rgba(201,168,76,.09);
  --fc-list-event-hover-bg-color:#1e2524;--fc-now-indicator-color:var(--err);--fc-event-text-color:#f0ede8;--fc-more-link-bg-color:transparent}
#calendar .fc-toolbar-title{font:600 1.15rem var(--f-title);text-transform:capitalize}
#calendar .fc-button{background:transparent;border:1px solid var(--gold);color:var(--gold);border-radius:999px;min-height:40px;padding:0 .9rem;text-transform:none;font-family:var(--f-body)}
#calendar .fc-button:hover,#calendar .fc-button-active{background:rgba(201,168,76,.18)!important;color:var(--gold)!important;border-color:var(--gold)!important}
#calendar .fc-button:focus{box-shadow:0 0 0 2px var(--gold)!important}
#calendar .fc-button-primary:not(:disabled).fc-button-active{background:var(--gold)!important;color:#111!important}
#calendar .fc-button-group>.fc-button{border-radius:0} #calendar .fc-button-group>.fc-button:first-child{border-radius:999px 0 0 999px} #calendar .fc-button-group>.fc-button:last-child{border-radius:0 999px 999px 0}
#calendar a{color:inherit;text-decoration:none}
#calendar .fc-col-header-cell-cushion,#calendar .fc-daygrid-day-number{color:var(--muted);font-size:.85rem}
#calendar .fc-day-today .fc-daygrid-day-number{color:var(--gold);font-weight:700}
#calendar .fc-event{border:0;border-left:3px solid var(--warn);background:#2a2415;border-radius:6px;padding:1px 3px;cursor:pointer}
#calendar .fc-event.st-confirmed{border-left-color:var(--ok);background:#15281c}
#calendar .fc-event.st-done{border-left-color:#6f7774;background:#1d2120}
#calendar .fc-event.st-cancelled{border-left-color:var(--err);background:#2a1715;opacity:.65;text-decoration:line-through}
#calendar .fc-event.jolly{border-left-color:var(--water);background:#10292b}
#calendar .fc-event.jolly.jst-pending{background:repeating-linear-gradient(45deg,#10292b,#10292b 6px,#0c1f21 6px,#0c1f21 12px)}
#calendar .fc-event.unavail{border-left-color:#6f7774;background:repeating-linear-gradient(45deg,#26292a,#26292a 6px,#1e2122 6px,#1e2122 12px);color:var(--muted)}
.evc{overflow:hidden;font-size:.78rem;line-height:1.25;white-space:normal} .evc-t{font-weight:600} .evc-s{color:#b9bfbc;font-size:.72rem}
#calendar .fc-list-event-title .evc{font-size:.95rem} #calendar .fc-list-event-title .evc-s{font-size:.82rem}
#calendar .fc-list-day-cushion{background:#1b2120!important} #calendar .fc-list-empty{background:transparent}
#calendar .fc-timegrid-event .evc{font-size:.72rem}
#calendar[data-error]::after{content:"Impossible de charger le calendrier.";display:block;color:var(--err);padding:1rem}

.modal{width:100%;max-width:720px;height:100%;max-height:100%;margin:0;padding:0;border:0;background:var(--bg);color:var(--text);border-radius:0}
.modal::backdrop{background:rgba(0,0,0,.7)}
.modal-bar{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:.6rem 1rem;background:var(--bg);border-bottom:1px solid var(--line)}
.modal-body{padding:1rem 1rem 3rem} .modal-body .back{display:none}
details.ical summary{cursor:pointer;font-weight:600;min-height:var(--tap);display:flex;align-items:center}
.actions{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
@media (min-width:820px){
  .cal-filters{grid-template-columns:repeat(3,1fr) auto;align-items:end} .cal-toggles{grid-column:auto;padding-bottom:1rem}
  .modal{margin:auto;height:auto;max-height:90vh;border:1px solid var(--line);border-radius:var(--radius)}
  #calendar{padding:1rem} #calendar .evc{font-size:.75rem}
}
.logo-link span,.who{white-space:nowrap}

/* ---- module : heures ---- */
.monthnav{display:flex;align-items:center;justify-content:center;gap:1rem;margin:.2rem 0 1rem;font-family:var(--f-title);font-size:1.15rem}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:.9rem}
.stat{display:flex;flex-direction:column} .stat .lbl,.hgrid .lbl{font-size:.75rem;color:var(--muted);display:block}
.stat .val{font:600 1.5rem var(--f-title)} .stat.hl .val,.gold{color:var(--gold)}
.hrow{display:block;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--line);border-radius:var(--radius);padding:.9rem;color:var(--text);text-decoration:none}
.hrow.ok{border-left-color:var(--ok)} .hrow.todo{border-left-color:var(--warn)} a.hrow:hover{border-color:var(--gold)}
.hrow-top{display:flex;justify-content:space-between;gap:.8rem;align-items:flex-start;margin-bottom:.5rem}
.hname{font-weight:600;color:var(--text)} a.hname:hover{color:var(--gold)}
.hgrid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-bottom:.6rem} .hgrid strong{display:block} .hgrid small{color:var(--muted)}
.hrow.team .hgrid{grid-template-columns:repeat(3,1fr);margin:0}
.usedrow{display:grid;gap:.3rem;padding:.5rem 0;border-bottom:1px solid var(--line)} .usedrow:last-child{border:0}
.usedrow label{color:var(--text);font-size:.95rem;margin:0} .usedrow input{max-width:140px}
@media (min-width:820px){.stats{grid-template-columns:repeat(4,1fr)} .evlist.two{grid-template-columns:1fr 1fr}}

/* ---- module : bateau Jolly ---- */
.badge.jb-pending{border-color:var(--warn);color:var(--warn)} .badge.jb-confirmed{border-color:var(--ok);color:var(--ok)} .badge.jb-refused{border-color:var(--err);color:var(--err)}
.jolly-card{border-color:rgba(63,143,139,.5)} .jolly-card h3 svg{width:1.1em;height:1.1em;vertical-align:-.15em;margin-right:.3rem;color:var(--water)}
.jolly-card.jst-pending{border-color:var(--warn)}
h1 svg{width:1em;height:1em;vertical-align:-.12em;color:var(--water)}
.rots{width:100%;border-collapse:collapse;margin:.5rem 0;font-size:.92rem} .rots th{text-align:left;color:var(--muted);font-weight:500;font-size:.75rem;padding:.3rem .4rem}
.rots td{padding:.4rem;border-top:1px solid var(--line)}
.jolly-decide{display:grid;gap:.6rem;margin:.8rem 0}
.jolly-decide .inline-add{margin:0}
.seg{display:grid;gap:.6rem;margin-bottom:1rem}
.segopt{display:block;border:1px solid var(--line);border-radius:var(--radius);padding:.8rem 1rem;cursor:pointer;color:var(--text);margin:0;position:relative}
.segopt input{position:absolute;opacity:0} .segopt span{display:block;font-weight:600} .segopt small{color:var(--muted)}
.segopt:has(input:checked){border-color:var(--gold);background:rgba(201,168,76,.08)} .segopt:has(input:focus-visible){outline:2px solid var(--gold);outline-offset:2px}
.field.chk label{display:flex;gap:.6rem;align-items:center;color:var(--text);min-height:var(--tap)} .field.chk input{width:22px;height:22px}
.jpreview{background:rgba(63,143,139,.12);border-radius:10px;padding:.7rem 1rem;font-weight:600;margin-top:.6rem} .jpreview:empty{display:none}
.tabs{display:flex;gap:.5rem;margin-bottom:1rem} .tabs a{padding:.4rem 1rem;border-radius:999px;border:1px solid var(--line);color:var(--muted)} .tabs a.on{border-color:var(--gold);color:var(--gold)}
@media (min-width:820px){.seg{grid-template-columns:1fr 1fr}}

/* ---- module : notifications ---- */
.bell{position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--tap);height:var(--tap);border-radius:999px;color:var(--text)}
.bell .ico{width:22px;height:22px} .bell:hover,.bell.on{color:var(--gold);background:rgba(201,168,76,.14)}
.bell b{position:absolute;top:4px;right:2px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--err);color:#fff;font:600 .7rem/18px var(--f-body);text-align:center}
.bell-m{margin-left:auto}
.nav-desktop .bell{padding:0}

.notifs{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.notifs li a{display:block;padding:.8rem 1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--text);text-decoration:none}
.notifs li.unread a{border-left:4px solid var(--gold)} .notifs li.unread .nmsg{font-weight:600} .notifs li a:hover{border-color:var(--gold)}
.notifs .nmsg{display:block}
/* barre de navigation desktop : rester sur une ligne, même pour l'admin (nombreuses entrées) */
.topbar-in{max-width:1240px} .nav-desktop{flex:1;justify-content:flex-end;gap:.1rem} .nav-desktop a,.nav-desktop button{padding:.5rem .65rem;font-size:.9rem}
@media (max-width:1260px){.nav-desktop .who{display:none}}
.nav-desktop form button{gap:.4rem} @media (max-width:1260px){.lbl-out{display:none}}
/* navigation : barre du haut à partir de 1100 px (l'admin a beaucoup d'entrées), sinon barre du bas + menu Plus */
@media (min-width:1100px){.nav-desktop{display:flex} .nav-bottom,.more-sheet{display:none!important} .bell-m{display:none} .who{margin-left:.5rem} main.container{padding-bottom:3rem}}

/* ---- module : journal d'audit ---- */
.audit li{padding:.7rem 0;border-bottom:1px solid var(--line)} .audit .chg{display:inline-block;margin:.15rem .5rem .15rem 0;font-size:.88rem}
.filters .btn{margin-right:.4rem} .pager{display:flex;align-items:center;justify-content:center;gap:1rem;margin:1rem 0}
.filters select,.filters input{width:100%}
.field .label{display:block;font-size:.875rem;color:var(--muted);margin:0 0 .3rem}
[data-toggle-box][hidden]{display:none}
.hisseo-card .usedrow strong{text-align:right}

/* Prestataires : à réserver (orange) / réservé (vert) */
.bk{display:inline-block;font-size:.75rem;line-height:1.2;padding:.2rem .55rem;border-radius:999px;border:1px solid var(--line);white-space:nowrap}
.bk.todo{border-color:var(--warn);color:var(--warn);background:rgba(224,160,60,.08)}
.bk.ok{border-color:var(--ok);color:var(--ok);background:rgba(80,180,120,.08)}
.bk-pills{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.4rem}
.bklist{list-style:none;margin:0;padding:0}
.bklist li{display:flex;align-items:center;gap:.6rem;padding:.55rem 0;border-bottom:1px solid var(--line)}
.bklist li:last-child{border-bottom:0}
.bklist .grow{flex:1;min-width:0}
.filterbox summary{cursor:pointer;min-height:var(--tap);display:flex;align-items:center;gap:.5rem}
.filterbox .filterform{margin-top:.8rem}

/* Croisières Let's Book */
.lb-head{margin-top:1.6rem}
.badge.lb{border-color:var(--water);color:var(--water)}
.hrow.trip{border-left:3px solid var(--water)}
#calendar .fc-event.trip{background:#0d2230}

/* Facturation Tiime */
.tiime-cfg{margin-top:1.2rem} .tiime-cfg summary{cursor:pointer;color:var(--muted)} .tiime-cfg[open] summary{margin-bottom:.6rem}

/* Compte à rebours (page Bateau) */
.countdown{display:block;text-decoration:none;color:var(--text);border-color:rgba(63,143,139,.6);background:linear-gradient(135deg,rgba(63,143,139,.18),rgba(201,168,76,.08))}
.countdown .cd-lbl{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--water)}
.countdown .cd-name{font-weight:700;font-size:1.1rem;margin:.2rem 0}
.countdown .cd-time{font-family:var(--f-body);font-size:clamp(1.05rem,5.4vw,1.5rem);font-weight:700;color:var(--gold);margin-top:.4rem;font-variant-numeric:tabular-nums}

/* Stock */
.ok-txt{color:var(--ok)}
a.hrow.stock{display:block;text-decoration:none;color:var(--text)}
.hrow.stock.st-low{border-left:3px solid var(--warn)} .hrow.stock.st-short{border-left:3px solid var(--err)} .hrow.stock.st-ok{border-left:3px solid var(--ok)}
.badge.sk-ok{border-color:var(--ok);color:var(--ok)} .badge.sk-low{border-color:var(--warn);color:var(--warn)} .badge.sk-short{border-color:var(--err);color:var(--err)}
.skgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:.6rem 0}
.skgrid .lbl{display:block;font-size:.75rem;color:var(--muted)} .skgrid strong{font-size:1.15rem}
.st-low .sk-av{color:var(--warn)} .st-short .sk-av{color:var(--err)}
.sk-move{text-align:right;white-space:nowrap}
.skcons td,.skcons th{padding:.35rem .4rem;text-align:left;border-bottom:1px solid rgba(255,255,255,.06)} .skcons{width:100%;border-collapse:collapse;font-size:.92rem}
.skcons .num{text-align:right;white-space:nowrap}
.sk-alert{margin-top:1.2rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.08)}

/* Pannes */
a.hrow.issue{display:block;text-decoration:none;color:var(--text)}
.hrow.issue.ur-urgent.is-open,.hrow.issue.ur-urgent.is-in_progress{border-left:3px solid var(--err)}
.hrow.issue.is-open{border-left:3px solid var(--warn)} .hrow.issue.is-in_progress{border-left:3px solid var(--water)} .hrow.issue.is-fixed{border-left:3px solid var(--ok);opacity:.85}
.issue-row{display:flex;gap:.8rem;align-items:flex-start} .issue-row .grow{flex:1;min-width:0}
.issue-thumb{width:64px;height:64px;object-fit:cover;border-radius:8px;flex:none}
.badge.is-open{border-color:var(--warn);color:var(--warn)} .badge.is-in_progress{border-color:var(--water);color:var(--water)} .badge.is-fixed{border-color:var(--ok);color:var(--ok)}
.ur-txt-urgent{color:var(--err);font-weight:600} .ur-txt-low{color:var(--muted)}
.issue-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.5rem;margin-top:.8rem}
.issue-photos img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;display:block}
/* Prestataires */
a.hrow.sup{display:block;text-decoration:none;color:var(--text)} a.hrow.sup.inactive{opacity:.55}
.sup-row{align-items:flex-start} .sup-row .grow{flex:1;min-width:0}

/* Statistiques */
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.8rem;margin-bottom:1rem}
.kpis.two{grid-template-columns:1fr 1fr} .kpis.three{grid-template-columns:repeat(3,1fr)}
.kpi{display:flex;flex-direction:column;gap:.15rem;margin:0}
.kpi-lbl{font-size:.8rem;color:var(--muted)}
.kpi-val{font-size:1.9rem;font-weight:600;line-height:1.1} .kpi-val small{font-size:.9rem;color:var(--muted);font-weight:400}
.kpi-sub{font-size:.8rem;color:var(--muted)}
.kpi-delta{font-size:.78rem;color:var(--muted)} .kpi-delta.up{color:#0ca30c} .kpi-delta.down{color:#e66767}
svg.chart{width:100%;height:auto;display:block;font-family:var(--f-body)}
svg.chart .ch-slot:hover path,svg.chart .ch-slot:focus path{filter:brightness(1.25)}
svg.chart .ch-slot:focus{outline:none}
.ch-legend{display:flex;gap:1rem;font-size:.8rem;color:var(--muted);margin-bottom:.3rem}
.ch-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:.35rem;vertical-align:-1px}
.ch-table{margin-top:.4rem;font-size:.85rem} .ch-table summary{cursor:pointer;color:var(--muted)}
.ch-table table{width:100%;border-collapse:collapse;margin-top:.4rem} .ch-table td,.ch-table th{padding:.2rem .4rem;border-bottom:1px solid var(--line);text-align:left}
.ch-table .num{text-align:right;font-variant-numeric:tabular-nums}
.hbars{display:flex;flex-direction:column;gap:.55rem}
.hb-row{display:grid;grid-template-columns:minmax(90px,40%) 1fr;gap:.6rem;align-items:center;font-size:.88rem}
.hb-label{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hb-track{display:flex;align-items:center;gap:.45rem;min-width:0}
.hb-bar{height:14px;background:#3987e5;border-radius:0 4px 4px 0;flex:none;max-width:calc(100% - 3.5rem)}
.hb-row:hover .hb-bar{filter:brightness(1.2)}
.hb-val{color:var(--muted);font-size:.82rem;white-space:nowrap;font-variant-numeric:tabular-nums}
svg.chart.ch-m{display:none}
@media (max-width:640px){svg.chart.ch-d{display:none} svg.chart.ch-m{display:block}}

/* Menu « Plus » (ordinateur) */
.nav-more-d{position:relative}
.nav-more-d summary{list-style:none;cursor:pointer;color:var(--text);padding:.5rem .65rem;border-radius:999px;font:500 .9rem var(--f-body);min-height:var(--tap);display:inline-flex;align-items:center}
.nav-more-d summary::-webkit-details-marker{display:none}
.nav-more-d summary.on,.nav-more-d summary:hover,.nav-more-d[open] summary{background:rgba(201,168,76,.14);color:var(--gold)}
.nav-more-list{position:absolute;right:0;top:calc(100% + .4rem);min-width:220px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.4rem;box-shadow:0 14px 40px rgba(0,0,0,.5);display:flex;flex-direction:column;z-index:40}
.nav-desktop .nav-more-list a{justify-content:flex-start;gap:.6rem;border-radius:8px}
.nav-more-list .ico{width:18px;height:18px}
.sk-edit summary{cursor:pointer} .sk-edit[open] summary{margin-bottom:.8rem} .sk-danger{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}
