:root{--card:rgba(14,24,40,.9);--line:rgba(255,255,255,.18);--txt:#f2efe6;--mut:#aab4c3;--acc:#4aa3ff;--bad:#ff6b6b;
  --c-operation:#e0524d;--c-entrainement:#4a8fe8;--c-invitation:#e8a93a;--c-autre:#8d99a8}
*{box-sizing:border-box}
[hidden]{display:none!important}
main{max-width:1180px;margin:0 auto;padding:6px 14px 18px}
button,input,select,textarea{font:inherit;color:inherit}
button{background:rgba(255,255,255,.08);border:1px solid var(--line);border-radius:6px;padding:7px 12px;cursor:pointer}
button:hover{border-color:rgba(255,255,255,.4)}
button.primary{background:#1b6fcf;border-color:#2a82e8;color:#fff}
button.danger{color:var(--bad)}
button.small{padding:3px 9px;font-size:.85rem}
input:not([type=checkbox]),select,textarea{width:100%;background:rgba(5,10,20,.7);border:1px solid var(--line);border-radius:6px;padding:7px 9px;color:var(--txt)}
textarea{resize:vertical;min-height:70px}
input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--acc);outline-offset:1px}
label{display:block;margin:0 0 10px;color:var(--mut);font-size:.85rem}
label>input,label>select,label>textarea{display:block;margin-top:3px}
h1{margin:0;font-family:var(--bo-head-font);font-weight:400;letter-spacing:.06em;text-transform:uppercase;font-size:1.35rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px 20px;color:var(--txt)}
.login{max-width:440px;margin:30px auto}
.login p{color:var(--mut)}
.msg{min-height:1.3em;margin:4px 0 10px;color:var(--bad)}
/* barre d'outils */
.toolbar{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;justify-content:space-between;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 14px}
.nav{display:flex;align-items:center;gap:8px}
.nav h1{min-width:11ch;text-align:center;text-transform:capitalize}
.views button[aria-pressed=true]{background:#1b6fcf;border-color:#2a82e8;color:#fff}
.views button:first-child{border-radius:6px 0 0 6px}.views button:last-child{border-radius:0 6px 6px 0;margin-left:-1px}
.who{display:flex;align-items:center;gap:10px;color:var(--mut);font-size:.85rem}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;margin:10px 2px;font-size:.78rem;color:var(--mut)}
.legend .sep{width:1px;height:14px;background:var(--line)}
.lg{display:inline-block;width:14px;height:14px;border-radius:3px;margin-right:6px;vertical-align:-2px;border:1px solid var(--line)}
.lg-busy{background:rgba(224,82,77,.45);border-color:#e0524d}.lg-maybe{background:rgba(232,169,58,.22);border:1px dashed #e8a93a}.lg-free{background:rgba(255,255,255,.05)}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}
.t-operation{--c:var(--c-operation)}.t-entrainement{--c:var(--c-entrainement)}.t-invitation{--c:var(--c-invitation)}.t-autre{--c:var(--c-autre)}
.dot{background:var(--c)}
/* mois */
.dow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:6px;text-align:center;font-size:.78rem;color:var(--mut);text-transform:uppercase;letter-spacing:.08em}
.grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.day{display:flex;flex-direction:column;align-items:stretch;gap:3px;min-height:104px;padding:6px;text-align:left;border-radius:8px;background:rgba(14,24,40,.78);border:1px solid var(--line);color:var(--txt);overflow:hidden}
.day .num{font-size:.85rem;font-weight:600;opacity:.95}
.day.out{opacity:.45}
.day.today .num{display:inline-block;align-self:flex-start;background:var(--acc);color:#04101f;border-radius:10px;padding:0 7px}
.day.busy{background:rgba(224,82,77,.22);border-color:#e0524d}
.day.maybe{background:rgba(232,169,58,.14);border:1px dashed #e8a93a}
.day.sel{outline:2px solid #fff;outline-offset:1px}
.chip{display:block;border-left:3px solid var(--c);background:rgba(255,255,255,.09);border-radius:3px;padding:1px 5px;font-size:.74rem;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chip.s-a_confirmer{border-left-style:dashed;font-style:italic;background:transparent;border:1px dashed var(--c);border-left-width:3px}
.more{font-size:.72rem;color:var(--mut)}
@media (max-width:700px){
  main{padding:4px 6px 14px}.grid,.dow{gap:3px}
  .day{min-height:62px;padding:4px 3px;gap:2px}
  .chip{height:6px;padding:0;border:0;border-radius:3px;background:var(--c)}.chip.s-a_confirmer{background:transparent;border:1px dashed var(--c)}
  .chip .ct{display:none}
  .more{font-size:.65rem}
  .toolbar{padding:8px}.nav h1{font-size:1.1rem;min-width:9ch}
}
/* agenda */
.agenda-day{margin:0 0 14px}
.agenda-day h2{font-family:var(--bo-head-font);font-weight:400;letter-spacing:.05em;text-transform:uppercase;font-size:1.05rem;margin:0 0 6px;display:flex;gap:10px;align-items:baseline}
.agenda-day h2 small{font-family:var(--bo-body-font);text-transform:none;letter-spacing:0;color:var(--mut);font-size:.78rem}
.agenda-empty{padding:24px;text-align:center;color:var(--mut)}
/* évènements (agenda et panneau) */
.ev{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--c);border-radius:8px;padding:9px 12px;margin-bottom:8px;display:block;width:100%;text-align:left;color:var(--txt)}
.ev.s-a_confirmer{border-left-style:dashed;border-style:dashed;border-left-width:4px}
.ev .t{font-weight:600;overflow-wrap:anywhere}
.ev .badges{display:flex;flex-wrap:wrap;gap:6px;margin:3px 0;font-size:.74rem;color:var(--mut)}
.ev .badges span{border:1px solid var(--line);border-radius:10px;padding:0 8px}
.ev .note{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.85rem;margin:4px 0;color:#dfe3ea}
.ev .meta{font-size:.72rem;color:var(--mut);margin-top:4px}
.ev a{color:#9ccbff;overflow-wrap:anywhere}
.ev .acts{display:flex;gap:8px;margin-top:8px}
button.ev{cursor:pointer}
/* panneau d'un jour */
.backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:20}
.panel{position:fixed;z-index:21;top:0;right:0;bottom:0;width:min(420px,100%);overflow:auto;background:#0b1626;border-left:1px solid var(--line);padding:16px 16px 28px;color:var(--txt)}
.panel header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:6px}
.panel h2{margin:0;font-family:var(--bo-head-font);font-weight:400;letter-spacing:.05em;text-transform:uppercase;font-size:1.2rem}
.panel .state{color:var(--mut);font-size:.82rem;margin-bottom:12px}
.panel .none{color:var(--mut);padding:10px 0}
.panel form .row{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}
.panel .errs{color:var(--bad);margin:0 0 10px;padding-left:18px}
.panel .warn{background:#3b2f00;border:1px solid #c9a227;color:#ffe9a8;padding:8px 10px;border-radius:6px;margin:0 0 10px;font-size:.85rem}
.panel .btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
@media (max-width:700px){.panel{top:auto;left:0;width:100%;max-height:88vh;border-left:0;border-top:1px solid var(--line);border-radius:14px 14px 0 0}}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:#0b1626;border:1px solid var(--line);color:var(--txt);padding:9px 14px;border-radius:8px;z-index:40;max-width:92vw}
