:root{color-scheme:dark}body{background:#071116;color:#e8e5dc}.planner{max-width:1440px;margin:auto;padding:24px clamp(16px,3vw,40px) 80px}.crumb{display:flex;gap:12px;align-items:center;font-size:.9rem;margin-bottom:26px;color:#a9b7bb}.crumb a{color:#d9ba79}.planner-hero{border:1px solid #6b512e;border-radius:18px;padding:clamp(22px,4vw,46px);background:radial-gradient(circle at 88% 12%,#3b2a1e 0,transparent 34%),linear-gradient(145deg,#13262b,#101519);box-shadow:0 18px 45px #0007}.planner-hero h1{font-size:clamp(2rem,4vw,3.5rem);margin:.3em 0;color:#f6d793}.planner-hero>p:not(.eyebrow){max-width:75ch;line-height:1.65}.eyebrow{color:#d7a85c;letter-spacing:.14em;font-size:.76rem;font-weight:700;text-transform:uppercase}.planner-actions{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0 12px}.planner button,.planner .import{background:#9b7138;color:#101719;border:1px solid #d4a961;border-radius:9px;padding:10px 15px;font-weight:750;cursor:pointer;min-height:44px}.planner button:hover,.planner .import:hover{background:#d4a961}.planner button:focus-visible,.planner .import:focus-within,.planner input:focus-visible,.planner select:focus-visible{outline:3px solid #f2cc81;outline-offset:2px}.planner button.secondary{background:#203138;color:#d6c39f;border-color:#6c5837}.planner .import{display:inline-flex;align-items:center;position:relative}.planner .import input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}.planner .privacy,.planner .hint{color:#b8c1bf;font-size:.9rem}.planner-status{min-height:1.7em;color:#f0c782;font-weight:650}.planner-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:22px}.planner .panel{border:1px solid #435154;border-radius:16px;padding:clamp(18px,2vw,28px);background:linear-gradient(165deg,#14242a,#0d171b)}.panel-head{display:flex;gap:14px;align-items:center;margin-bottom:18px}.panel-head h2{margin:0;color:#f1dfb4}.panel-head .eyebrow{margin:0 0 3px}.step{font:700 1.3rem Georgia,serif;color:#eac17b;border:1px solid #6a5432;border-radius:9px;padding:9px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.planner label{display:grid;gap:6px;color:#dce2df;font-size:.9rem;font-weight:650}.planner input,.planner select{background:#0a1418;color:#f3f3ed;border:1px solid #607276;border-radius:7px;min-height:42px;padding:8px;width:100%;font:inherit}.form-grid button{align-self:end}.records{display:grid;gap:8px;margin-top:22px}.record{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border:1px solid #35484c;border-radius:10px;background:#0b191d}.record small{display:block;color:#aebdbc;margin-top:3px}.record button{flex:none}.assignments{margin-top:20px}.assign-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.assign-form label{min-width:190px;flex:1}.lineups{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:15px;margin-top:22px}.lineup{border:1px solid #59634f;border-radius:12px;padding:18px;background:#112228}.lineup h3{color:#f1d595;margin:0 0 6px}.lineup p{color:#bdc9c4}.lineup ol{padding-left:23px}.lineup li{margin:10px 0}.lineup li button{font-size:.8rem;padding:4px 8px;min-height:32px;margin-left:8px}.empty{color:#aebdbc;font-style:italic}.planner .delete{background:#25262a;color:#f0c3b4;border-color:#815845}@media(max-width:900px){.planner-grid{grid-template-columns:1fr}}@media(max-width:560px){.form-grid{grid-template-columns:1fr}.record{align-items:flex-start}.planner-actions>*{width:100%;justify-content:center}.assign-form{display:grid}.assign-form label{min-width:0}}

/* Organiser les participations sans confondre une réserve avec une place. */
.planner [hidden]{display:none!important}.planning-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:20px 0;border-block:1px solid #566153;padding:16px 0}.planning-overview div{padding:0 16px;border-right:1px solid #435154;min-width:0}.planning-overview div:last-child{border:0}.planning-overview dt{color:#bdc8c1;font-size:.88rem}.planning-overview dd{color:#f2d493;font-size:1.8rem;font-weight:750;margin:4px 0 0}.planner-status[data-error="true"]{color:#ffc8b5}.planner-warning{color:#f6dba4;border-left:3px solid #d6ac65;background:#352e1f;padding:12px 16px;line-height:1.6}.zone-note{color:#c5d6d0;font-size:.92rem;line-height:1.6;overflow-wrap:anywhere}.zone-note strong{color:#f1d595}.planner .lineups{grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr))}.lineup{min-width:0}.lineup h4{font-size:1rem;color:#e5dbc1;border-top:1px solid #49564d;margin:20px 0 12px;padding-top:15px}.lineup-time{font-size:.9rem;line-height:1.65;overflow-wrap:anywhere}.lineup-counts{display:grid;gap:6px}.lineup-counts strong{color:#f4d392;font-size:1.08rem}.lineup-counts span,.role-counts{font-size:.85rem;line-height:1.6}.lineup ul{padding:0;list-style:none}.participation{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding-block:14px;border-bottom:1px solid #435451}.participation-person{min-width:0;overflow-wrap:anywhere}.participation-person strong{display:block;color:#f0e5cb}.participation-person small{display:block;margin-top:5px;color:#c4d0c8;line-height:1.6}.participation-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;grid-column:1/-1}.participation>.delete{grid-column:2;grid-row:1;align-self:start}.participation-controls select{min-height:44px;font-size:.87rem}.participation-controls select[data-state="confirmed"]{border-color:#83b8a2}.participation-controls select[data-state="tentative"]{border-color:#d7b675}.participation-controls select[data-state="reserve"]{border-color:#9dadd0}.reserve-warning{grid-column:1/-1;font-size:.85rem;line-height:1.6;margin:0!important;color:#efc386!important}.person-group{border-top:1px solid #435154;padding-top:12px}.person-group h3{font-size:1rem;color:#efd394;margin:0 0 10px;overflow-wrap:anywhere}.person-group .record{border:0;border-bottom:1px solid #34484a;background:transparent;border-radius:0;padding:10px 0;min-width:0}.record>div{min-width:0;overflow-wrap:anywhere}.planner input,.planner select,.planner textarea{max-width:100%;min-width:0;box-sizing:border-box}.planner .manual-copy{border-block:1px solid #77826a;margin-block:24px;padding-block:18px}.manual-copy h2{color:#f2d493;font-size:1.3rem}.manual-copy p{color:#c9d3cc;line-height:1.6}.manual-copy textarea{display:block;width:100%;margin:8px 0 12px;background:#09161b;border:1px solid #869480;color:#f1efe5;border-radius:8px;padding:12px;resize:vertical;font:inherit;line-height:1.6}.manual-copy textarea:focus-visible{outline:3px solid #f2cc81;outline-offset:2px}.planner .lineup li button{min-height:44px;margin-left:0;padding:8px 10px}.planner h2:focus{outline:2px solid #f2cc81;outline-offset:4px}
@media(max-width:560px){.planning-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 0}.planning-overview div:nth-child(2){border:0}.planning-overview div{padding-inline:10px}.participation-controls{grid-template-columns:minmax(0,1fr)}.lineup{padding:15px}.assign-form{grid-template-columns:minmax(0,1fr)}.planner .panel{min-width:0}.planner .planner-grid{min-width:0}}

/* Vérifier les anciens horaires avant de les enregistrer. */
.timezone-panel{border-block:1px solid #8c7447;margin:24px 0;padding:22px 0}.timezone-panel p{line-height:1.65;max-width:90ch}.timezone-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:20px 0}.timezone-form>label{flex:1;min-width:220px}.timezone-form input{min-height:44px}.timezone-preview h3{color:#f1d595;font-size:1.1rem}.timezone-row{border-block-start:1px solid #435154;padding:16px 0;overflow-wrap:anywhere}.timezone-row h4{margin:0 0 8px;color:#edd5a5}.timezone-row p{margin:6px 0;font-size:.9rem}.timezone-row label{max-width:760px;margin:12px 0;line-height:1.6}.timezone-row select{min-height:44px;font-size:.88rem}.timezone-original{color:#c6cfcc}.timezone-proposal{color:#f4d899}.timezone-utc{color:#bad3d2}.timezone-error,#timezone-result[data-error=true]{color:#ffc8b5}.timezone-panel button:disabled{opacity:.45;cursor:default}#timezone-result{font-weight:650;line-height:1.65;overflow-wrap:anywhere}.timezone-preview>.hint{margin-top:14px}
@media(max-width:560px){.timezone-form{display:grid;grid-template-columns:minmax(0,1fr)}.timezone-form>label{min-width:0}.timezone-form button{width:100%}.timezone-panel{min-width:0}}

/* Un agenda lisible par personne, dérivé des participations du planning. */
.person-agenda{border-block:1px solid #8c7447;margin:24px 0;padding:22px 0}.agenda-toolbar{display:flex;align-items:end;gap:14px;flex-wrap:wrap}.agenda-toolbar>label{flex:1;min-width:220px}.agenda-toolbar select{min-height:44px}.agenda-status{color:#f1d595;line-height:1.65;overflow-wrap:anywhere}.agenda-rows{list-style:none;padding:0;margin:0}.agenda-row{position:relative;border-top:1px solid #435154;padding:18px 0 18px 18px;margin:0;overflow-wrap:anywhere}.agenda-row::before{content:"";position:absolute;left:0;top:26px;width:5px;height:18px;background:#d7b675;border-radius:3px}.agenda-row-head{display:flex;align-items:start;justify-content:space-between;gap:16px}.agenda-row h3{color:#efd394;font-size:1.05rem;margin:0;line-height:1.6}.agenda-state{font-size:.85rem;flex:none;padding:5px 10px;border:1px solid #d7b675;color:#f2d49b;border-radius:7px;line-height:1.5}.agenda-state[data-state=confirmed]{border-color:#83b8a2;color:#c7eddf}.agenda-state[data-state=reserve]{border-color:#9dadd0;color:#cddcff}.agenda-time{color:#ccd8d2;font-size:.9rem;line-height:1.7;margin:10px 0 6px}.agenda-character{color:#f1e3c8;font-size:.92rem;line-height:1.6;margin:6px 0}.agenda-row .reserve-warning{margin:10px 0!important}.planner .agenda-link{display:inline-flex;align-items:center;min-height:44px;color:#f2cc81;text-underline-offset:4px}.agenda-link:focus-visible,.lineup:focus-visible{outline:3px solid #f2cc81;outline-offset:3px}.person-agenda button:disabled{opacity:.45;cursor:default}.lineup{scroll-margin-top:110px}
@media(max-width:560px){.agenda-toolbar{display:grid;grid-template-columns:minmax(0,1fr)}.agenda-toolbar>label{min-width:0}.agenda-toolbar>button{width:100%}.agenda-row-head{flex-direction:column;gap:8px}.agenda-row{padding-left:14px}.person-agenda{min-width:0}}
