:root{color-scheme:light;--ink:#172c2a;--muted:#5b6c69;--green:#173c39;--lime:#e9f08c;--line:#dbe3df;--paper:#f4f6f5;--white:#fff;--red:#a52d3b;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.5;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a{color:var(--green);text-underline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #627d00;outline-offset:4px}header{height:96px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1220px)/2));background:white;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-weight:800;font-size:23px;letter-spacing:-1px}.brand small{display:block;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600}.brand-icon{display:grid;place-items:center;border-radius:14px;background:var(--green);color:var(--lime);height:48px;width:48px;font-family:Georgia,serif;font-size:36px}#identity{display:flex;align-items:center;gap:16px;font-size:14px}.layout{max-width:1268px;margin:auto;padding:30px 24px 70px}nav{display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line);margin-bottom:32px;overflow:auto;white-space:nowrap}nav a{padding:15px 18px;text-decoration:none;color:var(--muted);font-size:15px;border-bottom:3px solid transparent}nav a[aria-current=page]{border-color:var(--green);color:var(--green);font-weight:700}.badge{display:inline-block;font-size:13px;border-radius:30px;padding:3px 9px;background:#edf1ef;color:var(--green)}.badge.pending{background:#fff0ce;color:#785200}.badge.received{background:#e4f0e8;color:#246342}.badge.cancelled{background:#fae7e9;color:var(--red)}.eyebrow{text-transform:uppercase;letter-spacing:.15em;color:var(--muted);font-size:12px;font-weight:750;margin:0 0 10px}h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(32px,4vw,44px);font-weight:400;letter-spacing:-1.5px;line-height:1.15;margin:0 0 10px}h2{font-size:22px;font-weight:650;letter-spacing:-.5px;margin:0 0 16px}h3{font-size:18px;line-height:1.35;margin:0 0 8px}p{margin:0 0 16px}.muted,small{color:var(--muted)}small{font-size:13px}.page-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:8px 0 30px}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.btn{display:inline-flex;justify-content:center;align-items:center;border:1px solid var(--line);padding:10px 16px;border-radius:8px;background:white;color:var(--green);text-decoration:none;font-size:14px;font-weight:650;min-height:44px}.btn.primary{background:var(--green);border-color:var(--green);color:white}.btn.danger{color:var(--red)}.btn:hover{filter:brightness(.96)}.btn.text{border:0;background:transparent;padding:8px}.grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:24px}.card{background:white;border:1px solid var(--line);border-radius:14px;padding:26px;margin-bottom:20px}.next{background:var(--green);color:white;border-color:var(--green)}.next .eyebrow,.next .muted,.next small{color:#c5d9d2}.next h2{font-family:Georgia,serif;font-size:30px;font-weight:400}.next .btn.primary{background:var(--lime);color:var(--green);border-color:var(--lime)}.next .btn{border-color:#63827e;background:transparent;color:white}.next-meta{display:flex;flex-wrap:wrap;gap:18px;margin-bottom:24px;color:#e0ece7}.section-label{display:flex;justify-content:space-between;align-items:center;margin:26px 0 14px}.section-label h2{font-size:17px;margin:0}.event-row{display:flex;align-items:center;gap:18px;padding:20px 0;border-bottom:1px solid var(--line)}.event-row:last-child{border:0}.event-row .event-info{flex:1;min-width:0}.event-info p{margin:0;color:var(--muted);font-size:14px}.date-tile{width:60px;flex-shrink:0;text-align:center;color:var(--green)}.date-tile strong{display:block;font-size:29px;line-height:1.1;font-weight:500}.date-tile span{text-transform:uppercase;font-size:12px;letter-spacing:.1em}.event-row h3{font-size:16px;margin:0 0 5px}.announcement{padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--line)}.announcement:last-child{padding:0;margin:0;border:0}.announcement p,.prose{white-space:pre-wrap;overflow-wrap:anywhere}.announcement p{font-size:15px}.empty{padding:36px 20px;text-align:center;color:var(--muted);background:white;border:1px dashed #bdcdc5;border-radius:12px}.notice{padding:14px 18px;border-radius:8px;background:#e7eeeb;margin-bottom:20px;font-size:14px}.error{color:#872532;background:#faeaeb}.login{max-width:440px;margin:70px auto;padding:30px}.login h1{font-size:38px}.login .btn.primary{width:100%}label{display:block;font-size:14px;font-weight:650;margin:18px 0 7px}input,textarea,select{display:block;width:100%;border:1px solid #bacac2;border-radius:7px;padding:12px;background:white;color:var(--ink)}textarea{resize:vertical;min-height:110px}.form-foot{margin-top:22px;display:flex;justify-content:flex-end;gap:10px}.field-help{font-size:13px;color:var(--muted);margin-top:6px}dialog{border:1px solid var(--line);border-radius:16px;padding:28px;width:560px;max-width:calc(100vw - 28px);max-height:90vh;color:var(--ink);box-shadow:0 24px 100px #12272233}dialog::backdrop{background:#0c292b80;backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.icon-button{font-size:28px;border:0;background:transparent;color:var(--muted);width:44px;height:44px}.list-item{padding:22px 0;border-bottom:1px solid var(--line)}.list-item:last-child{border:0}.list-item.unread{border-left:3px solid var(--green);padding-left:18px}.list-item .actions{margin-top:15px}.list-item p{margin-bottom:8px}.song-list{padding-left:24px}.song-list li{padding:10px 0;border-bottom:1px solid var(--line)}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);padding:14px 22px;background:var(--green);color:white;border-radius:10px;box-shadow:0 8px 30px #0002;z-index:10;display:none}#toast.visible{display:block}.skip{position:absolute;top:-100px;left:10px;background:white;padding:10px;z-index:20}.skip:focus{top:10px}.footer-note{font-size:13px;color:var(--muted);margin-top:20px}.month-controls{display:flex;align-items:center;gap:12px}.month-controls span{min-width:155px;text-align:center;font-weight:650}.check-label{display:flex;align-items:center;gap:10px}.check-label input{width:20px;height:20px}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:760px){header{height:80px;padding:0 20px}.layout{padding:15px 16px 50px}.grid{grid-template-columns:1fr}.page-head{align-items:flex-start;flex-direction:column;margin-top:20px}.card{padding:20px}nav{margin-bottom:24px}nav a{padding:13px 10px;font-size:14px}.event-row{gap:10px;flex-wrap:wrap}.event-row>.btn{margin-left:70px}.login{margin:35px auto}.month-controls{width:100%;justify-content:space-between}.identity-name{display:none}.two-fields{grid-template-columns:1fr}h1{font-size:36px}}
/* Charte PCB : couleurs extraites des trois bulles fournies. */
:root{--ink:#232a58;--muted:#62677c;--green:#232a58;--lime:#0ea99f;--line:#e3e5ed;--paper:#f7f8fc;--red:#a82f44;--brand-rose:#d85767;--brand-teal:#0ea99f;--brand-navy:#232a58}
header{height:100px;padding:0 max(24px,calc((100vw - 1360px)/2))}.brand{letter-spacing:-.6px}.brand-logo{width:40px;height:72px;object-fit:contain;display:block}.brand small{font-size:12px;letter-spacing:.13em}.layout{max-width:1408px}nav{gap:15px}nav a[aria-current=page]{border-color:var(--brand-teal)}h1{letter-spacing:-1.2px}.card{border-radius:16px;box-shadow:0 3px 12px #232a5803}.btn{border-radius:9px;transition:background .15s,transform .15s}.btn.primary:hover{background:#323c74}.next{background:var(--brand-navy)}.next .eyebrow,.next .muted,.next small{color:#d5d9ed}.next .btn.primary{background:#0ea99f;color:#11142e;border-color:#0ea99f}.next .btn.primary:hover{background:#30bbb2}.next .btn{border-color:#707799}.next-meta{color:#e0e4f4}.badge{background:#edeff7;color:var(--brand-navy)}.badge.pending{background:#fbe9ec;color:#a12e43}.badge.received{background:#def4f1;color:#13665f}.notice{background:#ecedf6}.notice.error{background:#fbe9ec;color:#a12e43}.date-tile strong{font-family:Georgia,serif}.empty{border-color:#cbd0e2}.login{border-top:4px solid var(--brand-teal)}input,textarea,select{border-color:#c9cddc}.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:var(--brand-teal)}
.admin-tabs{display:flex;gap:8px;margin:0 0 26px}.admin-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;align-items:start}.event-picker{padding:6px 0}.event-picker h2{font-size:17px}.event-picker label{font-size:13px}.event-picker select{font-size:14px;margin-bottom:16px}.event-choice{display:block;width:100%;text-align:left;padding:16px;border:1px solid transparent;border-radius:12px;margin:8px 0;background:transparent;color:var(--ink)}.event-choice strong,.event-choice small,.event-choice span{display:block}.event-choice strong{font-size:15px;margin:6px 0}.event-choice span{font-size:13px;color:var(--muted)}.event-choice.selected{background:white;border-color:#d5d9e8;border-left:3px solid var(--brand-teal)}.event-choice:hover{background:#eef0f8}.attendance-card{padding:24px;overflow:hidden}.attendance-card .section-label{margin:0 0 24px;gap:14px}.attendance-card h2{font-family:Georgia,serif;font-size:28px;font-weight:400}.attendance-summary{display:flex;gap:26px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap}.attendance-summary span{font-size:14px;color:var(--muted)}.attendance-summary strong{font-size:26px;font-weight:650;color:var(--brand-navy);margin-right:5px}.attendance-summary .absent-total strong{color:var(--red)}.choir-legend{display:flex;gap:18px;align-items:center;flex-wrap:wrap;font-size:13px;margin:24px 0 5px}.choir-legend span{display:inline-flex;align-items:center;gap:7px}.choir-legend small{margin-left:auto}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.dot.present{background:var(--brand-teal)}.dot.absent{background:var(--brand-rose)}.choir-scroll{overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;padding:8px 0 0;margin:0 -8px}.choir-map{display:block;margin:auto;max-width:none}.choir-guide{fill:none;stroke:#edeef6;stroke-width:1.5;stroke-dasharray:4 8}.choir-seat{cursor:pointer;outline:none}.choir-seat circle{fill:var(--brand-teal);stroke:white;stroke-width:3;transition:stroke .15s,fill .15s}.choir-seat.is-absent circle{fill:var(--brand-rose)}.choir-seat text{fill:#11142e;font-family:inherit;font-size:15px;font-weight:750;pointer-events:none}.choir-seat .seat-mark{font-size:16px;fill:var(--brand-navy);stroke:white;stroke-width:3;paint-order:stroke;stroke-linejoin:round}.choir-seat:hover circle,.choir-seat:focus circle{stroke:var(--brand-navy);stroke-width:4}.row-label,.conductor-label{font-family:inherit;font-size:11px;fill:#717791;letter-spacing:2px;font-weight:650}.map-groups{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--muted);padding:18px 0;border-bottom:1px solid var(--line)}.absence-details{margin-top:26px}.absence-details h3{font-size:17px}.absence-person{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:16px 0}.absence-person:last-child{border:0}.absence-person p{font-size:14px;margin:5px 0}.unplaced{padding:18px;background:#f3f4f9;border-radius:10px;margin-top:15px}.unplaced strong{font-size:14px}.unplaced .actions{margin-top:12px}.unplaced-singer{border:1px solid #bce5df;background:#def4f1;color:var(--brand-navy);border-radius:30px;padding:8px 12px;font-size:13px;font-weight:700}.unplaced-singer span{margin-left:8px;font-weight:400}.unplaced-singer.is-absent{background:#fbe9ec;border-color:#efb7c0}.singer-directory{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.singer-directory h2{font-size:18px}.singer-line{display:flex;align-items:center;justify-content:space-between;padding:13px 0;gap:10px;border-bottom:1px solid var(--line)}.singer-line:last-child{border:0}.singer-line small{display:block;margin-top:4px}.event-attendance-link{margin-bottom:18px}details{margin-top:20px}summary{cursor:pointer;font-size:14px;color:var(--muted)}dialog{width:600px}.check-label{margin-top:24px}@media(max-width:1100px){.admin-layout{grid-template-columns:1fr}.event-picker .event-choice{display:none}.event-picker h2{display:none}.event-picker{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.event-picker select{max-width:600px;width:100%;margin:0}.event-picker label{margin:0}.choir-legend small{margin-left:0}}@media(max-width:760px){header{padding:0 16px;height:90px}.brand-logo{height:62px;width:35px}.brand{font-size:20px}#identity{gap:4px}#identity .btn{padding:8px;font-size:12px}.singer-directory{grid-template-columns:1fr}.attendance-card{padding:16px}.attendance-summary{gap:16px}.attendance-summary strong{font-size:22px}.attendance-summary span{font-size:13px}.attendance-card .section-label{flex-wrap:wrap;align-items:flex-start}.absence-person{align-items:flex-start;flex-direction:column}.map-groups{justify-content:flex-start}.choir-legend{gap:10px}nav{gap:2px}.page-head .btn{align-self:flex-start}}
/* Administration structurée et rangées compactes. */
.admin-shell{display:grid;grid-template-columns:180px minmax(0,1fr);gap:28px}.admin-nav{padding:22px 12px;background:white;border:1px solid var(--line);border-radius:14px;align-self:start;position:sticky;top:18px}.admin-nav a{display:flex;justify-content:space-between;padding:11px 12px;text-decoration:none;border-radius:8px;color:var(--muted);font-size:14px}.admin-nav a[aria-current=page]{background:#e5f5f2;color:var(--ink);font-weight:700}.admin-nav hr{border:0;border-top:1px solid var(--line);margin:14px 0}.admin-main{min-width:0}.admin-main .page-head{margin-top:0}.admin-main h1{font-size:36px}.event-toolbar{display:flex;align-items:center;gap:14px;margin-bottom:20px;flex-wrap:wrap}.event-toolbar label{margin:0}.event-toolbar select{width:auto;flex:1;min-width:180px}.accounts-tools{margin-bottom:20px}.choir-rows{display:grid;gap:10px;margin:24px 0 18px}.choir-row{display:flex;gap:10px;align-items:stretch;position:relative;padding-left:45px}.rank-label{position:absolute;left:0;top:45%;font-size:11px;text-transform:uppercase;writing-mode:vertical-rl;transform:rotate(180deg);letter-spacing:1px;color:var(--muted)}.voice-block{border:1px solid #cdd4e4;border-radius:12px;padding:10px;flex:1;min-width:0;background:#fbfcff}.voice-block h4{display:flex;gap:10px;align-items:center;margin:0 0 10px;font-size:14px;font-weight:700}.voice-block h4 small{font-size:12px;background:#eceff7;border-radius:20px;padding:0 7px}.voice-seats{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start}.singer-seat{width:66px;flex:0 0 66px;border:0;background:transparent;padding:0;color:var(--ink);display:flex;align-items:center;flex-direction:column;gap:5px;border-radius:8px;cursor:pointer}.seat-avatar{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border:3px solid var(--brand-teal);background:#ddf4f1;border-radius:50%;position:relative;font-size:14px;font-weight:700;color:#11142e}.seat-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.singer-seat.is-absent .seat-avatar{border-color:var(--brand-rose);background:#f9e1e6}.absence-mark{position:absolute;right:-7px;top:-5px;display:grid;place-items:center;width:20px;height:20px;background:var(--brand-rose);border:2px solid white;border-radius:50%;color:#11142e;font-size:15px;line-height:1}.seat-name{font-size:11px;line-height:1.2;max-width:66px;overflow-wrap:anywhere}.singer-seat:focus-visible{outline:3px solid var(--brand-navy);outline-offset:4px}.direction-label{text-align:center;margin:4px 0;font-size:11px;letter-spacing:2px;color:var(--muted)}.directory-avatar{display:inline-flex;width:34px;height:34px;border-radius:50%;background:#e7f6f3;align-items:center;justify-content:center;margin-right:8px;vertical-align:middle;overflow:hidden}.directory-avatar img{width:100%;height:100%;object-fit:cover}.singer-directory .card{padding:20px}.singer-directory .singer-line{font-size:14px}input[type=file]{font-size:14px}.choir-legend small{font-size:12px}@media(max-width:900px){.admin-shell{grid-template-columns:1fr;gap:18px}.admin-nav{position:static;display:flex;flex-wrap:wrap;align-items:center;padding:10px;gap:5px}.admin-nav .eyebrow,.admin-nav hr{display:none}.admin-nav a{padding:8px 10px}.admin-nav a span{margin-left:8px}}@media(max-width:550px){.choir-row{padding-left:24px;gap:6px}.voice-block{padding:7px}.voice-seats{gap:7px}.singer-seat{width:54px;flex-basis:54px}.seat-name{max-width:54px;font-size:11px}.seat-avatar{width:40px;height:40px}.rank-label{font-size:10px}.voice-block h4{font-size:13px;gap:5px}}
.choir-row>.voice-block{flex:0 1 auto;width:max-content;max-width:calc(50% - 5px);min-width:100px}.choir-row.front>.voice-block{max-width:100%}.choir-row .voice-seats{max-width:100%}
.choir-row{padding-left:0}.front-ensemble{display:grid;grid-template-columns:minmax(0,2fr) minmax(110px,1fr);gap:0 8px;align-items:stretch}.soprano-block{display:contents}.soprano-upper{grid-column:1;grid-row:1;border:1px solid #cdd4e4;border-bottom:0;border-radius:12px 12px 0 0;background:#fbfcff;padding:10px}.soprano-upper h4{margin:0 0 10px;font-size:14px}.soprano-upper h4 small{margin-left:8px;color:var(--muted)}.soprano-lower{grid-column:1/3;grid-row:2;border:1px solid #cdd4e4;border-top:0;border-radius:0 0 12px 12px;background:#fbfcff;padding:10px}.alto-pocket{grid-column:2;grid-row:1;padding-bottom:8px}.alto-pocket .voice-block{height:100%}.admin-main>details summary{font-weight:650}.accounts-tools{margin-bottom:16px}

/* Calendrier et plan compact */
.calendar-toolbar{gap:12px;flex-wrap:wrap}.view-tabs{display:flex;gap:4px;background:#eceff7;padding:4px;border-radius:12px}.view-tabs .btn{border:0;background:transparent}.view-tabs .btn[aria-pressed=true]{background:white;color:var(--brand-navy);box-shadow:0 1px 4px #232a5815}.announcement-preview{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line}.month-scroll{overflow:auto;margin-bottom:18px}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-width:560px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:white}.weekday{text-align:center;padding:12px 4px;font-size:12px;color:var(--muted);background:#f1f3f9}.month-day{min-height:120px;border-top:1px solid var(--line);border-right:1px solid var(--line);padding:6px;min-width:0}.month-day>strong{font-size:12px;display:inline-block;padding:3px 6px}.month-day.today>strong{background:var(--brand-navy);color:white;border-radius:50%}.month-day.outside{background:#f6f7fa}.month-event{display:block;width:100%;text-align:left;border:0;border-left:3px solid var(--brand-teal);border-radius:4px;background:#e6f5f3;color:var(--ink);padding:6px;margin-top:5px;font:inherit;font-size:11px;overflow-wrap:anywhere;cursor:pointer}.month-event small{display:block;font-size:10px}.month-event.is-cancelled{opacity:.6;text-decoration:line-through}
.choir-rows{--seat:66px;--seat-gap:8px;width:max-content;min-width:0;max-width:none}.choir-row>.voice-block{max-width:none;min-width:0}.choir-row .voice-seats,.front-ensemble .voice-seats{flex-wrap:nowrap}.front-ensemble{grid-template-columns:max-content minmax(max-content,1fr);gap:0;min-width:0}.soprano-upper{position:relative;border-right:1px solid #cdd4e4;padding-bottom:16px;border-bottom:0;border-radius:10px 0 0 0}.soprano-upper:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:#fbfcff;z-index:1}.soprano-lower{border-top:1px solid #cdd4e4;border-radius:0 10px 10px 10px}.alto-pocket{padding:0 0 10px 10px}.alto-pocket .voice-block{box-sizing:border-box;height:100%;border-radius:10px}.choir-row{gap:10px}.choir-row>.voice-block{flex:0 0 auto}.choir-scroll{padding:8px;margin:0 -8px}.brand>span{font-size:23px}@media(max-width:550px){.choir-rows{--seat:54px;--seat-gap:7px}.brand>span{font-size:17px}.soprano-upper,.soprano-lower{padding:10px}}

/* Métadonnées d’évènement et convocations */
.event-month>h2{text-transform:capitalize;font-family:Georgia,serif;font-size:24px;font-weight:400;margin:28px 0 10px}.event-month:first-child>h2{margin-top:0}.event-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 12px}.time-chip,.place-chip{display:inline-flex;align-items:center;gap:5px;border-radius:7px;padding:5px 9px;font-size:13px;font-weight:700}.time-chip{background:#d9f4f1;color:#075f59}.place-chip{background:#eff0f8;color:var(--brand-navy)}.badge.reduced{background:#fbe9ec;color:#9d2d40}.next .time-chip{background:var(--brand-teal);color:#101733}.next .place-chip{background:#3a4273;color:white}.admin-event-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.event-staff{padding:18px 0;border-bottom:1px solid var(--line)}.event-staff .section-label{margin:0 0 12px}.staff-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px}.staff-grid>div{padding:12px;border-radius:10px;background:#f3f4f9}.staff-grid small,.staff-grid strong{display:block}.not-called{padding:14px 0}.not-called p{font-size:13px;margin-top:10px}.notice.neutral{background:#f0f1f7;color:var(--brand-navy)}

/* L’administration et le calendrier restent manipulables sur un petit écran. */
@media(max-width:760px){
  body{overflow-x:hidden}.layout{padding:12px 12px 44px}header{padding:8px 12px;height:auto;min-height:76px;gap:8px}.brand-logo{width:30px;height:54px}.brand>span{font-size:17px}#identity{gap:0}#identity .btn{padding:7px 8px;min-height:40px;font-size:12px}
  nav{margin:0 -12px 22px;padding:0 8px;scrollbar-width:none;position:sticky;top:0;background:var(--paper);z-index:5}nav::-webkit-scrollbar{display:none}nav a{min-height:48px;padding:13px 10px}
  .page-head{gap:14px;margin:12px 0 22px}.page-head h1,.admin-main h1{font-size:31px}.page-head>.btn,.page-head>.actions{width:100%}.page-head>.btn{align-self:stretch}.card{padding:16px;border-radius:12px}
  .calendar-toolbar{align-items:stretch;margin-top:18px}.view-tabs{flex:1}.view-tabs .btn{flex:1}.calendar-toolbar>.btn{width:100%}.event-month>h2{font-size:21px;margin-top:24px}.event-row{display:grid;grid-template-columns:48px minmax(0,1fr);gap:8px 12px;padding:16px 0}.date-tile{grid-row:1/3;width:48px}.date-tile strong{font-size:25px}.event-row>.event-more{grid-column:2;margin:2px 0 0;width:100%}.event-info h3{font-size:15px}.event-meta{gap:5px}.time-chip,.place-chip{font-size:12px;padding:4px 7px}.place-chip{max-width:100%;overflow-wrap:anywhere}
  .month-scroll{overflow:visible}.month-grid{min-width:0}.weekday{font-size:10px;padding:8px 1px}.month-day{min-height:67px;padding:3px}.month-day>strong{font-size:10px;padding:2px 4px}.month-event{height:9px;padding:0;border:0;border-radius:5px;background:var(--brand-teal);font-size:0}.month-event small,.month-event span{display:none}.month-event.is-cancelled{background:var(--brand-rose)}
  .admin-shell{gap:14px}.admin-nav{position:sticky;top:0;z-index:6;flex-wrap:nowrap;overflow-x:auto;margin:0 -12px;border-width:0 0 1px;border-radius:0;padding:7px 12px}.admin-nav a{white-space:nowrap;min-height:42px;align-items:center}.admin-main .page-head{margin-bottom:16px}.event-toolbar{display:grid;grid-template-columns:1fr}.event-toolbar label{font-size:12px}.event-toolbar select,.event-toolbar .btn{width:100%;min-width:0}.attendance-card{padding:14px;margin:0 -4px}.admin-event-title{display:block}.admin-event-title>.btn{width:100%;margin:12px 0}.attendance-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 0}.attendance-summary span{display:flex;flex-direction:column}.attendance-summary strong{font-size:23px}.staff-grid{grid-template-columns:1fr 1fr}.event-staff .section-label{display:block}.event-staff .section-label .btn{width:100%;margin-top:10px}.choir-legend{align-items:flex-start}.singer-line{align-items:flex-start;flex-direction:column}.singer-line>.btn,.singer-line>.actions{width:100%}.singer-line>.btn{margin-left:42px;width:calc(100% - 42px)}
  dialog{width:100%;max-width:none;max-height:92dvh;margin:auto 0 0;border-radius:18px 18px 0 0;padding:20px 16px}.form-foot{position:sticky;bottom:-20px;background:white;padding:12px 0 4px;flex-direction:column}.form-foot .btn{width:100%}.two-fields{gap:0}
}
@media(max-width:390px){.brand>span{font-size:15px}.brand{gap:7px}#identity [data-action=profile]{display:none}.staff-grid{grid-template-columns:1fr}.attendance-summary{grid-template-columns:1fr 1fr}.month-day{min-height:58px}}
.staff-grid>button{padding:12px;border-radius:10px;background:#f3f4f9;border:0;text-align:left;color:var(--ink);font:inherit}.staff-grid>button small,.staff-grid>button strong{display:block}@media(max-width:760px){.month-event{height:17px}.month-day{min-height:74px}}@media(max-width:390px){.month-day{min-height:66px}}
.called-picker{border:1px solid var(--line);border-radius:10px;margin:18px 0;padding:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;max-height:260px;overflow:auto}.called-picker legend{font-size:14px;font-weight:700;padding:0 6px}.called-picker label{display:flex;align-items:center;gap:7px;margin:0;padding:7px;border-radius:7px;font-weight:500}.called-picker label:hover{background:#f3f4f9}.called-picker input{width:18px;height:18px;flex:0 0 18px}.called-picker small{margin-left:auto}@media(max-width:560px){.called-picker{grid-template-columns:1fr;max-height:220px}}
.dot.not-called{background:#a8adbd}.singer-seat.is-not-called .seat-avatar{border-color:#9da3b5;background:#e5e7ee;filter:grayscale(1);color:#686e80}.singer-seat.is-not-called .seat-name{color:#858a99}.singer-seat.is-not-called:hover .seat-avatar,.singer-seat.is-not-called:focus .seat-avatar{border-color:#d48b32;background:#fff0dc;filter:none}.staff-grid>button{cursor:pointer}.staff-grid>button:hover{background:#e6f5f3}
.admin-event-actions{display:inline-flex;gap:2px;margin-left:auto}.admin-event-title>.btn,.event-attendance-link>[data-action=edit-event]{display:none}@media(max-width:760px){.admin-event-actions{width:100%;margin-left:0}.admin-event-actions .btn{flex:1}.next .admin-event-actions .btn{border-color:#707799}.event-meta{align-items:stretch}}

/* Typographie et actions de calendrier */
@font-face{font-family:"Valley Sans";src:url("./fonts/ValleySans-Regular.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Valley Sans";src:url("./fonts/ValleySans-SemiBold.ttf") format("truetype");font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:"Valley Sans";src:url("./fonts/ValleySans-Bold.ttf") format("truetype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:Lora;src:url("./fonts/Lora-Regular.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Lora;src:url("./fonts/Lora-SemiBold.ttf") format("truetype");font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:Lora;src:url("./fonts/Lora-Bold.ttf") format("truetype");font-style:normal;font-weight:700;font-display:swap}
:root{font-family:"Valley Sans",ui-sans-serif,system-ui,sans-serif}
h1,.next h2,.attendance-card h2,.event-month>h2,.date-tile strong,.event-row h3{font-family:Lora,Georgia,serif}
.btn{border:1.5px solid #afb5ca;background:#fff;color:var(--brand-navy);box-shadow:0 1px 2px #232a5812;transition:background .15s,border-color .15s,color .15s,transform .15s,box-shadow .15s}
.btn:hover{filter:none;background:#f0f2f8;border-color:#747c9e;box-shadow:0 2px 5px #232a5818}
.btn:active{transform:translateY(1px)}
.btn.primary{background:var(--brand-navy);border-color:var(--brand-navy);color:#fff}
.btn.primary:hover{background:#343d72;border-color:#343d72}
.btn.accent{background:var(--brand-teal);border-color:var(--brand-teal);color:#101733}
.btn.accent:hover{background:#38bbb3;border-color:#38bbb3}
.btn.danger{border-color:#e4a7b0;background:#fff7f8;color:#9c2940}
.btn.danger:hover{border-color:var(--brand-rose);background:#fbe9ec}
.btn.text{border:1.5px solid #d6d9e5;background:#f7f8fc;padding:8px 12px}
.btn.text:hover{background:#eceef6;border-color:#b8bdd1}
.next .btn.on-dark{border-color:#9299bc;background:#ffffff0d;color:#fff}
.next .btn.on-dark:hover{background:#fff;color:var(--brand-navy);border-color:#fff}
.calendar-head{display:grid;grid-template-columns:1fr;align-items:start}
.calendar-head-actions{justify-content:flex-start;max-width:none}
.calendar-head-actions .btn{white-space:nowrap}
.view-tabs{display:inline-flex;padding:3px;border:1px solid var(--line);border-radius:11px;background:#fff}
.view-tabs .btn{min-height:38px;border-color:transparent;box-shadow:none;padding:7px 15px}
.view-tabs .btn[aria-pressed=true]{background:var(--brand-navy);color:#fff;border-color:var(--brand-navy)}
@media(max-width:980px){.calendar-head{align-items:flex-start}.calendar-head-actions{justify-content:flex-start}}
@media(max-width:760px){.calendar-head-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:8px}.calendar-head-actions .btn{width:100%;padding-inline:10px}.calendar-toolbar{align-items:center;gap:10px}.calendar-toolbar>.btn{margin-left:auto}.event-row>.btn{margin-left:70px}}
@media(max-width:430px){.calendar-head-actions{grid-template-columns:1fr}.calendar-toolbar{align-items:stretch;flex-direction:column}.calendar-toolbar>.btn{margin-left:0;width:100%}.view-tabs{width:100%}.view-tabs .btn{flex:1}}
.notice.warning{border:1px solid #efb2bb;border-left:4px solid var(--brand-rose);background:#fff4f6;color:#762337}
.notice.warning strong{color:#9d2d40}
.reinforcement-picker{background:#f7f8fc;border-color:#cfd3e2}
.singer-seat.is-reinforcement .seat-avatar{border-style:dashed}
.singer-seat.is-reinforcement .seat-name small{display:block;margin-top:2px;color:#a16a25;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
