*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif;color:#171717;background:#f5f5f2}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}[hidden]{display:none!important}
.shell{min-height:100vh;display:grid;grid-template-columns:238px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;background:#121212;color:#fff;padding:25px 17px 18px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;padding:0 8px}.brand-icon{width:35px;height:35px;border-radius:0;background:#fff;color:#111;display:grid;place-items:center;font-weight:950;font-size:18px}.brand>div:last-child{display:grid;line-height:1.05}.brand strong{font-size:17px}.brand span{font-size:11px;color:#999;letter-spacing:.12em;text-transform:uppercase;margin-top:4px}.station-name{margin:18px 8px 0;padding:10px 11px;border:1px solid #303030;border-radius:0;color:#d5d5d5;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar nav{display:grid;gap:6px;margin-top:28px}.sidebar nav a{border:0;background:transparent;color:#aaa;padding:12px 13px;border-radius:0;text-align:left;font-weight:750;font-size:15px;display:flex;gap:9px;align-items:center}.sidebar nav a b{width:24px;text-align:center;color:#777}.sidebar nav a:hover,.sidebar nav a.active{background:#fff;color:#111}.sidebar nav a.active b{color:#111}.sidebar-bottom{margin-top:auto}.connection{width:100%;border:1px solid #333;background:#1d1d1d;color:#fff;border-radius:0;padding:12px;display:flex;gap:10px;align-items:center;text-align:left}.connection>span:last-child{display:grid;min-width:0}.connection strong{font-size:13px}.connection small{color:#9a9a9a;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-dot{width:9px;height:9px;flex:0 0 auto;border-radius:0;background:#d94c4c;box-shadow:none}.connection.connected .status-dot{background:#43b96b;box-shadow:none}
main{padding:34px clamp(22px,4vw,62px) 60px;min-width:0}.page-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:25px}.eyebrow{font-size:11px;letter-spacing:.16em;font-weight:850;color:#8b8b85}.page-header h1{font-size:38px;line-height:1.05;margin:6px 0 7px}.page-header p{margin:0;color:#6f6f69;max-width:720px}.header-actions{display:flex;gap:8px;flex-wrap:wrap}.notice{display:none;margin:0 0 18px;padding:12px 14px;border-radius:0;background:#fff3c8;color:#684e00;font-weight:680}.notice.show{display:block}.notice.error{background:#ffebea;color:#922b25}
.primary,.secondary,.danger{border-radius:0;padding:11px 15px;font-weight:800}.primary{border:1px solid #111;background:#111;color:#fff}.primary:hover:not(:disabled){background:#292929}.secondary{border:1px solid #d2d2cc;background:#fff;color:#222}.secondary:hover:not(:disabled){background:#f7f7f4}.danger{border:1px solid #e9b9b5;background:#fff5f4;color:#a22b23}.link-button{border:0;background:transparent;padding:0;color:#222;text-decoration:underline;font-weight:750}
.card,.panel,.form-card{background:#fff;border:1px solid #e1e1dc;border-radius:0;box-shadow:none}.card{padding:18px}.panel{padding:22px}.form-card{padding:24px;max-width:820px}.card h3,.panel h2,.form-card h2{margin:0 0 8px}.card p,.panel p,.form-card>p{color:#666;line-height:1.45}.muted{color:#777}.small{font-size:12px}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:17px}.toolbar .spacer{flex:1}.toolbar input,.toolbar select{max-width:370px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.stack{display:grid;gap:15px}.two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.settings-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:17px;align-items:start}
.field{display:grid;gap:6px}.field>span,.field>label{font-size:12px;color:#64645f;font-weight:780}.field input,.field select,.toolbar input,.toolbar select{width:100%;border:1px solid #d6d6d0;background:#fff;color:#111;border-radius:0;padding:10px 11px;outline:none}.field input:focus,.field select:focus,.toolbar input:focus,.toolbar select:focus{border-color:#333;box-shadow:none}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid .full{grid-column:1/-1}.form-actions{display:flex;align-items:center;gap:12px;margin-top:20px;flex-wrap:wrap}.form-status{font-weight:720;color:#666}.file-drop{border:2px dashed #d0d0ca;border-radius:0;padding:18px;background:#fafaf8}.file-drop input{padding:0;border:0;background:transparent}.section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:17px}.section-title h2{margin:0}.section-title p{margin:5px 0 0;color:#74746e}.separator{height:1px;background:#ecece7;margin:20px 0}
.tag{display:inline-flex;align-items:center;border-radius:0;background:#f0f0ec;padding:5px 9px;font-size:11px;font-weight:850;color:#666}.tag.ok{background:#e8f8ed;color:#247441}.tag.warn{background:#fff2d5;color:#835700}.tag.bad{background:#ffebe9;color:#9c3128}.tag.direct{background:#eeebff;color:#594ca8}.connection-line{display:flex;align-items:center;gap:9px;margin:5px 0 18px}.connection-line .dot{width:9px;height:9px;border-radius:0;background:#d34c45}.connection-line.ok .dot{background:#3eb266}
.calendar-head{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap}.calendar-head strong{font-size:16px;margin-left:5px}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:8px;overflow-x:auto;padding-bottom:8px}.day{min-height:430px;background:#fff;border:1px solid #e1e1dc;border-radius:0;padding:10px}.day.today{border-color:#111;box-shadow:none}.day-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid #efefeb;padding:4px 3px 10px;margin-bottom:8px}.day-head b{font-size:13px;text-transform:capitalize}.day-head span{font-size:12px;color:#888}.event{display:block;width:100%;border:0;border-left:4px solid #111;background:#f2f2ef;border-radius:0;padding:8px 9px;margin:6px 0;text-align:left}.event:hover{filter:brightness(.985)}.event strong{display:block;font-size:13px}.event small{display:block;color:#666;margin-top:3px}.event.direct{border-left-color:#6d5dd3;background:#f1efff}.event.missing{border-left-color:#d69700;background:#fff8e8}.event.synced{border-left-color:#36a960;background:#edf9f1}
.segmented{display:inline-flex;background:#e9e9e5;border-radius:0;padding:4px;margin-bottom:19px}.segmented button{border:0;background:transparent;border-radius:0;padding:9px 14px;font-weight:800;color:#666}.segmented button.active{background:#fff;color:#111;box-shadow:none}.program-layout{display:grid;grid-template-columns:minmax(260px,350px) minmax(0,1fr);gap:17px;align-items:start}.program-side{display:grid;gap:13px}.broadcast-preview{display:grid;gap:8px;margin-top:15px}.broadcast-item{display:flex;justify-content:space-between;gap:12px;align-items:center;background:#f6f6f3;border-radius:0;padding:10px 12px}.broadcast-item span{font-size:12px;color:#73736e}.broadcast-item b{font-size:13px;text-align:right}.empty-state{padding:30px;text-align:center;border:1px dashed #d6d6d0;border-radius:0;color:#777}.success-box{background:#eaf8ef;color:#236f3e;border-radius:0;padding:12px 14px;font-weight:750}
.slot-list{display:grid;gap:8px}.slot-row{display:grid;grid-template-columns:1fr 150px 42px;gap:8px;align-items:center}.slot-row button{height:42px;border:0;border-radius:0;background:#f1f1ed;font-size:20px}.weekday-row{display:flex;gap:7px;flex-wrap:wrap}.weekday{position:relative}.weekday input{position:absolute;opacity:0;pointer-events:none}.weekday span{display:grid;place-items:center;min-width:42px;height:42px;padding:0 10px;border:1px solid #d8d8d2;border-radius:0;background:#fff;font-size:12px;font-weight:800}.weekday input:checked+span{background:#111;color:#fff;border-color:#111}.times{display:flex;gap:8px;flex-wrap:wrap;align-items:end}.time-item{width:128px}.time-item button{margin-top:5px;border:0;background:transparent;color:#a33;font-size:12px;padding:0}
.show-list-card{display:flex;align-items:center;justify-content:space-between;gap:14px}.show-list-card h3{margin:0 0 6px}.show-summary{font-size:12px;color:#71716c;line-height:1.5}.schedule-editor{display:grid;gap:9px}.schedule-row{display:grid;grid-template-columns:minmax(145px,1.25fr) minmax(110px,.9fr) minmax(125px,1fr) 105px 40px;gap:8px;align-items:end;padding:10px;background:#f7f7f4;border-radius:0}.schedule-row.weekly{grid-template-columns:minmax(155px,1.2fr) minmax(120px,1fr) 110px 40px}.schedule-row .field{min-width:0}.schedule-row .remove-schedule{height:42px;border:0;border-radius:0;background:#ecece8;font-size:20px}.schedule-row .direct-duration{grid-column:1/-1;max-width:220px}.show-editor-help{font-size:12px;color:#767670;margin:0}.role-hint{font-size:12px;color:#6e6e69;background:#f3f3ef;padding:10px 12px;border-radius:0;margin:0}
.radio-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.radio-fields .full{grid-column:1/-1}details.advanced{border-top:1px solid #ecece7;padding-top:13px;margin-top:4px}details.advanced summary{cursor:pointer;font-weight:800;color:#62625d}.advanced-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.advanced-grid .full{grid-column:1/-1}.code-ish{font-family:Consolas,monospace;font-size:12px;background:#f3f3ef;padding:8px 10px;border-radius:0;word-break:break-all}
dialog{border:0;padding:0;border-radius:0;width:min(820px,calc(100vw - 28px));max-height:calc(100vh - 30px);box-shadow:none}dialog::backdrop{background:#0008}#modalForm{padding:0}.modal-head{padding:21px 24px 16px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;align-items:start;position:sticky;top:0;background:#fff;z-index:2}.modal-head h2{margin:4px 0 0}.icon-button{border:0;background:#f2f2ef;border-radius:0;width:36px;height:36px;font-size:22px}.modal-foot{padding:15px 24px 20px;display:flex;justify-content:flex-end;gap:9px;border-top:1px solid #eee;position:sticky;bottom:0;background:#fff}.modal-foot .secondary{padding:10px 14px}#modalBody{padding:21px 24px;max-height:calc(100vh - 190px);overflow:auto}.modal-error{margin:0 24px 10px}.error{color:#a52f27;font-weight:700}.modal-section{display:grid;gap:14px}
@media(max-width:980px){.settings-grid,.program-layout,.two-col{grid-template-columns:1fr}.week-grid{grid-template-columns:repeat(7,175px)}.schedule-row,.schedule-row.weekly{grid-template-columns:1fr 1fr}.schedule-row .remove-schedule{grid-column:2}.schedule-row .direct-duration{grid-column:1/-1}}
@media(max-width:760px){.shell{grid-template-columns:1fr}.sidebar{height:auto;position:sticky;z-index:10;padding:10px 12px;flex-direction:row;align-items:center;gap:8px}.brand,.station-name{display:none}.sidebar nav{margin:0;display:flex;overflow:auto;flex:1}.sidebar nav a{white-space:nowrap;padding:9px 10px}.sidebar nav a b{width:auto}.sidebar-bottom{margin:0}.connection{width:44px;height:42px;padding:0;justify-content:center}.connection>span:last-child{display:none}main{padding:24px 14px 45px}.page-header{display:block}.header-actions{margin-top:14px}.page-header h1{font-size:31px}.form-grid,.radio-fields,.advanced-grid{grid-template-columns:1fr}.form-grid .full,.radio-fields .full,.advanced-grid .full{grid-column:auto}.slot-row{grid-template-columns:1fr 115px 40px}.schedule-row,.schedule-row.weekly{grid-template-columns:1fr}.schedule-row .remove-schedule{grid-column:auto}.modal-foot{padding-bottom:14px}}

/* ===== V3 — contrôles visuels, drag & drop, grille annonces ===== */
input,select,button,summary{font-family:inherit}
.field input,.field select,.toolbar input,.toolbar select,.slot-row input,.time-item input{
  appearance:none;-webkit-appearance:none;border:1px solid #d8d8d2;background:#fff;color:#171717;border-radius:0;min-height:44px;padding:10px 12px;transition:border-color .15s,box-shadow .15s,background .15s
}
.field select,.toolbar select{
  padding-right:42px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235f5f5a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center
}
.field input:hover,.field select:hover,.toolbar input:hover,.toolbar select:hover,.slot-row input:hover{border-color:#b8b8b0}
.field input:focus,.field select:focus,.toolbar input:focus,.toolbar select:focus,.slot-row input:focus{border-color:#111;box-shadow:none}
input[type="date"],input[type="time"]{color-scheme:light}
.primary,.secondary,.danger,.icon-button,.slot-row button,.remove-schedule,.ann-cell{appearance:none;-webkit-appearance:none}
.secondary.compact{padding:8px 11px;font-size:12px}

.audio-drop{position:relative;min-height:128px;border:1.5px dashed #c9c9c1;border-radius:0;background:#fafaf8;display:flex;align-items:center;justify-content:center;gap:16px;padding:20px;cursor:pointer;outline:none;transition:.16s ease}
.audio-drop:hover,.audio-drop:focus-visible{border-color:#777;background:#f7f7f4;box-shadow:none}
.audio-drop.dragging{border-color:#111;background:#f0f0ec;transform:translateY(-1px)}
.audio-drop.has-file{border-style:solid;background:#f7faf7}
.drop-icon{width:48px;height:48px;border-radius:0;background:#111;color:#fff;display:grid;place-items:center;font-size:24px;font-weight:850;flex:0 0 auto}
.drop-copy{display:grid;gap:3px}.drop-copy strong{font-size:15px}.drop-copy span{font-size:13px;color:#696963}.drop-copy small{font-size:11px;color:#92928c;margin-top:4px}
.drop-file{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;align-items:center}
.drop-file[hidden]{display:none!important}.drop-file strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.drop-file span{grid-column:1;color:#777;font-size:12px;margin-top:3px}.drop-clear{grid-column:2;grid-row:1/3;border:1px solid #d6d6d0;border-radius:0;background:#fff;padding:9px 12px;font-weight:750}

.classification-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.classification-card{border:1px solid #e3e3dd;border-radius:0;background:#fafaf8;padding:15px;display:grid;gap:12px}.classification-card h3{font-size:14px;margin:0 0 2px}.compact-empty{padding:18px}
.toggle-field{display:flex;align-items:flex-start;gap:11px}.toggle-field input{position:absolute;opacity:0;pointer-events:none}.toggle-field>span{position:relative;display:grid;gap:3px;padding-left:48px;min-height:28px}.toggle-field>span:before{content:"";position:absolute;left:0;top:0;width:38px;height:22px;border-radius:0;background:#d6d6d0;transition:.15s}.toggle-field>span:after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:0;background:#fff;box-shadow:none;transition:.15s}.toggle-field input:checked+span:before{background:#111}.toggle-field input:checked+span:after{transform:translateX(16px)}.toggle-field small{color:#777;font-weight:500}
.online-ready{overflow:hidden}.flow-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0 14px}.flow-line span{background:#f3f3ef;border:1px solid #e2e2dc;border-radius:0;padding:8px 10px;font-size:12px;font-weight:800}.flow-line b{color:#aaa}

.announcement-layout{display:grid;grid-template-columns:minmax(300px,390px) minmax(650px,1fr);gap:18px;align-items:start}.announcement-form{position:sticky;top:28px}.announcement-summary{display:grid;gap:3px;background:#f5f5f1;border-radius:0;padding:12px 13px;margin-top:16px}.announcement-summary strong{font-size:13px}.announcement-summary span{font-size:11px;color:#777}.announcement-plan-panel{min-width:0}.announcement-grid-wrap{overflow:auto;max-height:calc(100vh - 245px);border:1px solid #e0e0da;border-radius:0;background:#fff}.announcement-grid{display:grid;grid-template-columns:70px repeat(7,minmax(78px,1fr));min-width:690px}.ann-corner,.ann-day-head{position:sticky;top:0;z-index:4;background:#f3f3ef;border-bottom:1px solid #dfdfd9;height:42px;display:grid;place-items:center;font-size:11px;font-weight:850}.ann-corner{left:0;z-index:6}.ann-time{position:sticky;left:0;z-index:3;background:#fafaf8;border-right:1px solid #e5e5df;border-bottom:1px solid #efefeb;height:34px;display:grid;place-items:center;font-size:11px;font-weight:780;color:#696963}.ann-cell{height:34px;border:0;border-right:1px solid #efefeb;border-bottom:1px solid #efefeb;background:#fff;position:relative;padding:0}.ann-cell:hover{background:#f3f3ef}.ann-cell.selected{background:#111}.ann-cell.selected:after{content:"✓";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:12px;font-weight:900}.ann-cell:focus-visible{z-index:2;outline:2px solid #111;outline-offset:-2px}

@media(max-width:1180px){.announcement-layout{grid-template-columns:1fr}.announcement-form{position:static}.announcement-grid-wrap{max-height:560px}.classification-grid{grid-template-columns:1fr}}
@media(max-width:760px){.audio-drop{justify-content:flex-start;min-height:110px}.drop-icon{width:42px;height:42px}.announcement-grid{grid-template-columns:62px repeat(7,78px)}.announcement-grid-wrap{max-height:520px}}
.ann-cell.has-existing:not(.selected){background:#fff8e7}.ann-existing{position:absolute;right:4px;top:3px;min-width:15px;height:15px;border-radius:0;background:#e1a422;color:#fff;font-size:9px;font-weight:900;display:grid;place-items:center;padding:0 3px}.ann-existing:empty{display:none}.ann-cell.selected .ann-existing{background:#fff;color:#111;z-index:2}.ann-cell.selected:after{z-index:1}

/* ===== V3 — architecture locale / agent ===== */
.mode-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mode-card{position:relative;border:1px solid #deded8;border-radius:0;background:#fafaf8;padding:15px;cursor:pointer;transition:.15s}.mode-card:hover{border-color:#aaa}.mode-card.selected{border-color:#111;background:#f3f3ef;box-shadow:none}.mode-card input{position:absolute;opacity:0;pointer-events:none}.mode-card>span{display:grid;gap:4px}.mode-card strong{font-size:14px}.mode-card small{font-size:12px;line-height:1.4;color:#74746f}
.agent-box{border:1px solid #e0e0da;border-radius:0;background:#fafaf8;padding:14px 15px;display:flex;justify-content:space-between;gap:16px;align-items:center}.agent-box>div:first-child{display:grid;grid-template-columns:auto 1fr;column-gap:9px;align-items:center}.agent-box p{grid-column:2;margin:3px 0 0;color:#73736d;font-size:12px}.agent-led{width:10px;height:10px;border-radius:0;background:#c64d45;box-shadow:none}.agent-led.online{background:#43a96a;box-shadow:none}.queue-pills{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.queue-pills span{padding:6px 8px;background:#fff;border:1px solid #e1e1db;border-radius:0;font-size:11px;font-weight:800;white-space:nowrap}.queue-pills .bad{color:#9a342d;background:#fff0ef;border-color:#f1cbc7}
.token-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.token-row code{min-width:0;overflow:auto;background:#f3f3ef;border:1px solid #e1e1db;border-radius:0;padding:11px 12px;font-family:Consolas,monospace;font-size:11px;white-space:nowrap}.agent-steps{display:grid;grid-template-columns:28px 1fr;gap:8px 10px;align-items:center;background:#fafaf8;border:1px solid #e5e5df;border-radius:0;padding:14px}.agent-steps>span{width:25px;height:25px;border-radius:0;background:#111;color:#fff;display:grid;place-items:center;font-size:11px;font-weight:900}.agent-steps p{margin:0;font-size:12px;line-height:1.45;color:#585854}
.event.pending{border-style:dashed;opacity:.82}.event.pending:after{content:"En attente";display:inline-block;margin-left:6px;font-size:9px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.event.sync-error{outline:2px solid #c7473d;outline-offset:-2px}.event.sync-error:after{content:"Erreur";display:inline-block;margin-left:6px;color:#9d2f28;font-size:9px;font-weight:900;text-transform:uppercase}
@media(max-width:760px){.mode-cards{grid-template-columns:1fr}.agent-box{align-items:flex-start;flex-direction:column}.queue-pills{justify-content:flex-start}.token-row{grid-template-columns:1fr}.token-row .secondary{justify-self:start}}

.simple-programmer{max-width:850px;margin:auto;display:grid;gap:18px}.simple-programmer .audio-drop{min-height:220px}.day-exclusions{display:flex;flex-wrap:wrap;gap:6px}.day-exclusion{position:relative;cursor:pointer}.day-exclusion input{position:absolute;opacity:0;width:1px;height:1px}.day-exclusion span{display:inline-block;padding:5px 10px;border:1px solid #ccd4dc;border-radius:0;font-size:12px}.day-exclusion input:checked+span{background:#fce8e8;border-color:#d98d8d;color:#a12b2b}.day-exclusion input:focus-visible+span{outline:2px solid #397ddd}.event.drop-target{outline:3px solid #397ddd;background:#e7f0ff}#importRuleError{grid-column:1/-1;margin:0}.schedule-row:has([data-months]){grid-template-columns:repeat(5,minmax(0,1fr)) auto}

@media(max-width:760px){.schedule-row:has([data-months]){grid-template-columns:1fr 1fr}.simple-programmer .program-side{width:auto}.simple-programmer .audio-drop{min-height:180px}}

.event.past,.event.past.synced,.event.past.direct{background:#fff0f0;border-color:#dd8585;color:#a62828}.event.past small{color:#a62828}

/* Diffusions : champs lisibles et un seul défilement dans la fenêtre. */
dialog{overflow:hidden;max-height:calc(100dvh - 30px)}
#modalForm{display:flex;flex-direction:column;max-height:calc(100dvh - 30px);min-height:0}
.modal-head,.modal-foot,.modal-error{flex-shrink:0}
#modalBody{min-height:0;max-height:none;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable;padding:22px 24px}
.schedule-editor{gap:14px}
.schedule-row,.schedule-row:has([data-months]){grid-template-columns:minmax(190px,1.4fr) minmax(120px,1fr) minmax(140px,1fr) minmax(140px,.9fr) 36px;gap:12px;align-items:end;padding:14px}
.schedule-row.weekly{grid-template-columns:minmax(190px,1.4fr) minmax(140px,1fr) minmax(140px,1fr) 36px}
.schedule-row .field input,.schedule-row .field select{min-width:0;width:100%}
.schedule-row:has([data-months]) .field:has([data-months]){grid-column:1/5}
.schedule-row .remove-schedule{grid-column:-2/-1;grid-row:1;min-width:0;height:44px}
.schedule-row .field>span{line-height:1.4;white-space:normal}
@media(max-width:900px){
 .schedule-row,.schedule-row.weekly,.schedule-row:has([data-months]){grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
 .schedule-row .field:first-child{grid-column:1/-1;padding-right:48px}
 .schedule-row .remove-schedule{grid-column:2;grid-row:1;justify-self:end;width:36px}
 .schedule-row:has([data-months]) .field:has([data-months]){grid-column:1/-1}
}
@media(max-width:480px){
 #modalBody{padding:18px 14px}.modal-head{padding:16px 14px}.modal-foot{padding:14px;flex-wrap:wrap}
 .schedule-row,.schedule-row.weekly,.schedule-row:has([data-months]){padding:12px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .schedule-row .field:has([data-weeks]),.schedule-row .field:has([data-time]){grid-column:1/-1}
}

.month-picker{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;max-width:480px}
.month-picker button{min-height:30px;padding:4px 6px;border:1px solid #d5d9d0;border-radius:0;background:#fafbf8;color:#555e4e;font-size:11px;font-weight:500;box-shadow:none;transition:background .15s,border-color .15s,color .15s}
.month-picker button:hover{background:#f2f3ef;border-color:#d5d8ce}
.month-picker button[aria-pressed="true"]{background:#e0ebd5;border-color:#91aa77;color:#344925;font-weight:650}
.month-picker button[aria-pressed="true"]:hover{background:#e3ebda}
.month-picker button:focus-visible{outline:2px solid #397ddd;outline-offset:2px}
@media(max-width:480px){.month-picker{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Date d’import et recherche : contrôles discrets et cohérents. */
.import-picker{min-width:0;display:grid;gap:6px}.import-date-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.import-date-fields:has([data-import-time]){grid-template-columns:minmax(0,1fr) minmax(130px,.6fr)}
.import-picker [data-import-error]{margin:0}.import-picker [data-import-error]:empty{display:none}.import-picker:has(select:disabled){opacity:.65}
input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none;appearance:none;display:none}
input[type="search"]::-ms-clear{display:none;width:0;height:0}
@media(max-width:480px){.import-date-fields:has([data-import-time]){grid-template-columns:1fr}}

.simple-programmer .program-side[hidden]{display:none}


.programmed-files{margin:30px 0 0;padding-top:22px;border-top:1px solid #dde5dc;display:grid;gap:9px}
.programmed-files h3{margin:0 0 2px;font-size:12px;font-weight:650;color:#527462}
.programmed-file{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#edf7ef;border:1px solid #cce6d3;border-radius:0}
.programmed-file-icon{flex:0 0 30px;width:30px;height:30px;display:grid;place-items:center;border-radius:0;background:#d5ecdc;color:#287343;font-size:16px;font-weight:700}
.programmed-file-info{min-width:0;flex:1;display:grid;gap:5px}
.programmed-file-info strong{color:#245337;font-size:14px;overflow-wrap:anywhere}
.programmed-file-info small{color:#5d7867;font-size:12px}
.programmed-file-status{flex-shrink:0;padding:4px 8px;border-radius:0;background:#dbefdf;color:#35704a;font-size:11px;font-weight:650}
@media(max-width:480px){.programmed-file{flex-wrap:wrap;padding:12px}.programmed-file-info{flex-basis:calc(100% - 44px)}.programmed-file-status{margin-left:42px}}

.event-wrap{position:relative}.event-wrap .event{padding-right:28px}
.occurrence-delete{position:absolute;top:5px;right:4px;width:25px;height:25px;display:grid;place-items:center;border:0;border-radius:0;background:#fff;color:#a44747;opacity:0;pointer-events:none;padding:0;transition:opacity .15s}
.event-wrap:hover .occurrence-delete,.event-wrap:focus-within .occurrence-delete{opacity:1;pointer-events:auto}
.occurrence-delete:hover{background:#ffe7e7}
.replace-import{border:1px solid #b5d6be;background:#fff;color:#35704a;border-radius:0;font-size:12px;padding:6px 9px}
.replace-import:hover{background:#dbefdf}
@media(hover:none){.occurrence-delete{opacity:1;pointer-events:auto}}

.announcement-programmed{margin-top:20px}.announcement-group-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid #e7e9e2}.announcement-group-row strong{overflow-wrap:anywhere;min-width:0}

.import-date-value{display:none!important}
.import-calendar-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px;border:1px solid #cbd4c8;border-radius:0;background:#fff;color:#283b2d;text-align:left;font-size:14px;font-weight:500;min-height:42px}
.import-calendar-trigger:hover{border-color:#6c997b;background:#f8fbf7}.import-calendar-trigger:disabled{opacity:.65;cursor:default}
.import-calendar{width:100%;max-width:340px;padding:14px;background:#fff;border:1px solid #d6e1d5;border-radius:0;margin-top:4px;box-shadow:none}.import-calendar[hidden]{display:none}
.import-calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.import-calendar-head strong{text-transform:capitalize;font-size:14px}.import-calendar-head button{border:0;background:#f2f5f0;border-radius:0;width:30px;height:30px;padding:0;font-size:22px}.import-calendar-head button:disabled{opacity:.3}
.import-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-weekday{text-align:center;font-size:11px;color:#869083;padding:4px}
.import-calendar-days button{min-width:0;height:34px;border:1px solid transparent;border-radius:0;padding:0;font-size:12px;font-weight:600}.import-calendar-days button:disabled{background:#f5f5f3;color:#b5bbb2;opacity:1;cursor:default}.import-calendar-days button.available{background:#e3f0df;border-color:#b9d1af;color:#315d2d}.import-calendar-days button.available:hover{background:#cde4c6;border-color:#779e6b}.import-calendar-days button.selected{background:#34744b;border-color:#34744b;color:#fff}.import-calendar-days button:focus-visible{outline:2px solid #34744b;outline-offset:2px}
.import-calendar-legend{display:flex;align-items:center;gap:7px;margin-top:12px;color:#55714e;font-size:11px}.import-calendar-legend span{width:9px;height:9px;background:#c9e1be;border-radius:0}

.replacement-dragover{outline:2px solid #36754d!important;outline-offset:2px;background:#d8eedb!important}.programmed-announcement-drop{padding:14px;border:1px dashed #adcdb3;border-radius:0;background:#edf7ef}.announcement-group-row[data-replace-announcement]{border-radius:0;padding:12px 10px}

.programmed-section-hint{margin:0 0 5px;color:#71816f;font-size:12px;line-height:1.5}

.occurrence-delete{z-index:2;cursor:pointer}.event-wrap:hover .occurrence-delete,.event-wrap:focus-within .occurrence-delete{pointer-events:auto}
.scheduled-toolbar{display:grid;grid-template-columns:2fr 1fr;gap:14px;margin-bottom:20px}.scheduled-kind{color:#65745f;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.scheduled-group h2{margin-top:5px}.scheduled-group summary{cursor:pointer;font-size:13px;color:#426544;padding:8px 0}.scheduled-occurrences{display:grid;gap:6px;margin-top:8px}.scheduled-occurrence{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:0;background:#f3f7ef}.scheduled-occurrence>span:first-child{flex:1}.scheduled-occurrence.past{background:#fff0ee;color:#a44337}.manual-delete{border:0;background:#fff;color:#a44747;padding:6px;border-radius:0;display:grid;place-items:center}.manual-delete:hover{background:#ffe2df}@media(max-width:700px){.scheduled-toolbar{grid-template-columns:1fr}.scheduled-occurrence{flex-wrap:wrap}.scheduled-group .section-title{flex-wrap:wrap}}

.subfolder-option{display:flex;align-items:center;gap:7px;margin-top:-3px;color:#6b6b6b;font-size:12px;cursor:pointer}.subfolder-option input[type="checkbox"]{appearance:auto;width:13px;height:13px;min-height:0;padding:0;margin:0;accent-color:#555555;flex:0 0 13px}.subfolder-option span{font-weight:400}

.file-warning{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:0;background:#fff0e6;color:#a34020;font-size:11px;font-weight:650;line-height:1.4}.event.file-missing{border-left-color:#c64c2f;background:#fff1eb}.event .file-warning{margin-top:6px}.programmed-file:has(.file-warning){flex-wrap:wrap}

.sidebar nav a{text-decoration:none}

.delete-programmed-file{display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;padding:0;border:1px solid #e6c9c3;border-radius:0;background:#fff;color:#a54c3d}.delete-programmed-file:hover{background:#fff0eb;border-color:#c8897c}

/* Surfaces planes, contours nets et hiérarchie sobre. */
html,body{background:#f4f5f6;color:#20242b}.panel,.card,.form-card,.day{border-color:#dde1e5;background:#fff}.sidebar nav a{font-weight:600}.page-header h1{font-size:32px;letter-spacing:-.025em}.section-title h2{font-weight:650}.audio-drop{border-color:#b7c1bc;background:#fafcfb}.primary{font-weight:600}.secondary{font-weight:500}.programmed-file{border-color:#c8ddd0}.special-back{display:inline-block;margin:0 0 20px;color:#53635a;text-decoration:none;font-size:13px}.special-back:hover{text-decoration:underline}.special-open{display:inline-flex;align-items:center;padding:9px 12px;text-decoration:none;border:1px solid #d2d7dc;background:#fff;color:#30383f;font-size:13px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #397ddd;outline-offset:2px}.status-dot{border-radius:50%}

/* Arrondis légers, sans ombres. */
.panel,.card,.form-card,.day,.audio-drop,.programmed-file,.scheduled-group,.import-calendar,dialog{border-radius:6px}
button,input,select,.secondary,.primary,.sidebar nav a,.connection,.station-name,.brand-icon,.notice,.tag,.file-warning,.event,.scheduled-occurrence,.programmed-files,.month-picker button,.import-calendar-trigger,.import-calendar-days button,.programmed-announcement-drop{border-radius:4px}

.calendar-nav{width:30px;height:30px;min-height:0;display:grid;place-items:center;padding:0;border:0;background:transparent;color:#69727b;border-radius:4px}.calendar-nav:hover{background:#e8ecef;color:#202a33}.calendar-head #thisWeek{padding:7px 11px;font-size:13px;border-color:#e0e4e7;background:#fff}

.nav-section{display:grid;gap:3px;margin-top:12px}.nav-section-title{padding:8px 11px 5px;color:#8d9298;font-size:11px;font-weight:650;line-height:1.5;letter-spacing:.02em}.sidebar nav .nav-child{padding:9px 13px 9px 22px;font-size:13px}.sidebar nav .nav-settings{margin-top:18px;border-top:1px solid #303338;padding-top:16px}.sidebar nav{gap:4px;margin-top:20px}.sidebar nav .nav-child.active{background:#f3f5f3;border-left:3px solid #96ac97;padding-left:19px}.page-header p{font-size:14px;line-height:1.5}.scheduled-group h2{font-size:17px;overflow-wrap:anywhere}
@media(max-width:760px){.sidebar{align-items:stretch;flex-wrap:wrap}.sidebar nav{width:100%;margin:0;gap:10px;align-items:flex-start;flex-basis:100%}.nav-section{margin:0;min-width:150px;gap:2px}.nav-section-title{padding:3px 8px;font-size:10px}.sidebar nav .nav-child{padding:6px 10px;font-size:12px}.sidebar nav .nav-child.active{padding-left:7px}.sidebar nav .nav-settings{margin:0;border:0;padding-top:9px}.sidebar-bottom{position:absolute;right:12px;top:10px}.sidebar nav>a{flex-shrink:0}.sidebar nav{padding-right:46px}}

/* Focus des champs : bordure neutre, sans cadre bleu. */
input:focus,input:focus-visible,select:focus,select:focus-visible,textarea:focus,textarea:focus-visible{outline:none;box-shadow:none;border-color:#7d8781}
input[type="checkbox"]:focus-visible,input[type="radio"]:focus-visible{outline:1px solid #737b76;outline-offset:2px}

.search-result-count{display:block;margin:10px 0 7px;color:#7a817c;font-size:11px}.show-search-results{display:grid;gap:5px;max-height:340px;overflow-y:auto}.show-search-result{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;padding:11px 12px;background:#fafbf9;border:1px solid #e0e5df;border-radius:4px;color:#303b32}.show-search-result>span:first-child{min-width:0;display:grid;gap:4px}.show-search-result strong{font-size:13px;font-weight:600;overflow-wrap:anywhere}.show-search-result small{font-size:11px;color:#778074}.show-search-result:hover{background:#eff3ed;border-color:#becbbb}.show-search-result.selected{background:#eaf2e7;border-color:#9eb297}.show-result-arrow{font-size:18px;color:#5b7554}.search-no-result{margin:0;padding:16px 8px;color:#7a817c;font-size:13px}

.show-search-wrap{position:relative}.show-search-popup{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;background:#fff;border:1px solid #cbd4c8;border-radius:5px;padding:8px}.show-search-popup .search-result-count{margin:2px 4px 8px}.show-search-popup .show-search-results{max-height:280px}

.show-tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:14px}
.show-artwork{aspect-ratio:1;width:100%;overflow:hidden;border-radius:4px;background:#edf0ec;display:grid;place-items:center;color:#747c72;font-size:12px;text-align:center}
.show-artwork img{width:100%;height:100%;object-fit:cover;grid-area:1/1}
.show-artwork span{grid-area:1/1;padding:12px}
.show-artwork [hidden]{display:none}
.show-tile,.show-search-results .show-search-result{display:flex;flex-direction:column;align-items:stretch;gap:10px;min-width:0}
.show-tile h3{margin:0;font-size:16px}.show-tile-link{color:inherit;text-decoration:none}.show-tile-link:hover{border-color:#8a9b85}
.show-tile small{color:#697166}.show-tile .show-summary{font-size:12px}.show-tile button{margin-top:auto}
.show-search-popup{max-height:440px;overflow:auto}.show-search-popup .show-search-results{max-height:360px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
.show-search-result .show-result-arrow{display:none}#showImagePreview{max-width:130px;margin-bottom:8px}

/* Catalogue d’émissions : cartes comme le Studio Podcast. */
.show-catalog-programmer{max-width:1160px;width:100%;margin:0}
.show-catalog{gap:0}.catalog-search{max-width:520px}.catalog-search input{min-height:46px}
.catalog-back{justify-self:start}.show-catalog .search-result-count{margin:9px 0 24px}
.show-tile-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;max-width:1160px}
.show-tile,.show-search-results .show-search-result{padding:22px;background:#fff;border:1px solid #dce2dc;border-radius:6px;gap:12px;text-align:left;box-shadow:none}
.show-tile .show-artwork{border-radius:5px}.show-tile h3,.show-tile strong{font-size:17px;line-height:1.5;font-weight:700;color:#18251e}
.show-tile small{font-size:12px;line-height:1.6}.show-tile-link small,.show-search-result small{margin-top:auto;padding-top:12px}
.show-catalog .show-search-results{max-height:none;overflow:visible;gap:18px}
.show-catalog .show-search-result:hover{border-color:#8da68f;background:#fafcf9}
@media(max-width:1100px){.show-tile-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.show-tile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.show-tile,.show-search-results .show-search-result{padding:14px}}
@media(max-width:420px){.show-tile-grid{gap:10px}.show-tile h3,.show-tile strong{font-size:14px}}

.image-drop-zone{display:flex;align-items:center;gap:18px;width:100%;padding:16px;border:1px dashed #bec9bc;border-radius:5px;background:#fafcf9;text-align:left;color:#596354;font-weight:400}
.image-drop-zone:hover,.image-drop-zone.dragging{background:#edf4ea;border-color:#799472}.image-drop-zone small{display:block;margin-top:7px;color:#858d81;font-size:11px}
.image-drop-zone #showImagePreview{display:block;flex:0 0 90px;width:90px;margin:0}.rss-import-hint{font-size:12px;color:#687360;background:#f0f4ed;border:1px solid #dde6d8;padding:10px;border-radius:4px}

.event.rss-programmed,.event.rss-planned{background:#eaf4e7;border-color:#a9c4a0}.event.rss-programmed small,.event.rss-planned small{color:#377431}.rss-file-name{display:block;font-size:11px;color:#397235;overflow-wrap:anywhere;margin-top:5px}.rss-import-panel{display:grid;gap:8px;margin:10px 0 15px}.rss-import-panel .rss-import-hint{margin:0}.rss-import-panel button{justify-self:start}.rss-import-panel>small{font-size:12px;color:#64725e}.rss-import-panel>small.error{color:#a13d30}

.show-edit-tile{cursor:pointer;text-align:left;transition:background-color .16s,border-color .16s,transform .16s}.show-edit-tile:hover{background:#f3f7f0;border-color:#9eb495;transform:translateY(-2px)}.show-edit-tile:focus-visible{outline:2px solid #759568;outline-offset:3px}.rss-test-tools{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin:9px 0 14px}.rss-test-tools small{font-size:12px;color:#65725e}.rss-test-tools small:last-child{flex-basis:100%;overflow-wrap:anywhere}.rss-test-tools .error{color:#a13d30}
@media(prefers-reduced-motion:reduce){.show-edit-tile{transition:none}.show-edit-tile:hover{transform:none}}

/* Interface unifiée : actions utiles au premier plan, contrôles techniques discrets. */
:root{--ink:#242a2e;--muted:#747c79;--line:#e3e7e4;--accent:#315c46}
html,body{background:#f7f8f6;color:var(--ink)}
.shell{grid-template-columns:220px minmax(0,1fr)}
.sidebar{background:#202724;padding:24px 14px 16px}.brand{padding:0 9px}.brand-icon{width:30px;height:30px;font-size:15px;border-radius:5px;background:#edf1eb;color:#28362b}.brand strong{font-size:15px}.brand span{font-size:10px;letter-spacing:.07em}.station-name{border:0;background:#ffffff08;margin-top:16px;color:#d7dfd8;font-size:12px}
.sidebar nav a{color:#bec6bf;font-size:13px;padding:10px 12px}.sidebar nav a:hover{background:#ffffff0c;color:#fff}.sidebar nav a.active,.sidebar nav .nav-child.active{background:#eaf0e8;color:#27382c;border-left:0}.sidebar nav .nav-child.active{padding-left:22px}.nav-section-title{color:#929d94;font-size:10px;text-transform:uppercase;letter-spacing:.055em}.sidebar nav .nav-settings{border-color:#ffffff12;color:#a9b5ac}.connection{background:transparent;border-color:#ffffff15;padding:10px}.connection strong{font-weight:500}.connection small{font-size:11px;color:#a5b0a8}
main{padding:30px clamp(20px,3.2vw,48px) 48px}.page-header{align-items:center;margin-bottom:24px}.page-header h1{font-size:29px;font-weight:650;margin:0 0 7px;letter-spacing:-.03em}.page-header p{font-size:13px;color:var(--muted);max-width:650px}.header-actions{align-items:center;gap:16px}
.primary,.secondary,.danger{padding:9px 13px;font-size:13px;min-height:38px;font-weight:550;border-radius:5px;transition:background-color .15s,border-color .15s}.primary{background:var(--accent);border-color:var(--accent)}.primary:hover:not(:disabled){background:#244635;border-color:#244635}.secondary{border-color:#dce2dd;color:#414a43;background:#fff}.secondary:hover:not(:disabled){background:#f2f5ef;border-color:#bbc8bd}.danger{font-size:12px;background:#fff;color:#a3463d;border-color:#eadcd8}
.quiet-action{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:5px 3px;border:0;background:transparent;color:#737c75;font-size:12px;font-weight:450;text-decoration:none;text-underline-offset:3px;border-radius:3px;cursor:pointer}.quiet-action:hover:not(:disabled){color:#2c513c;text-decoration:underline}.quiet-action:disabled{opacity:.5}.quiet-action:focus-visible{outline:2px solid #6b9276;outline-offset:3px}
.panel,.card,.form-card,.day{border-color:var(--line);box-shadow:none}.panel{padding:20px}.card{padding:16px}.section-title h2,.panel h2{font-size:18px;font-weight:600;letter-spacing:-.015em}.section-title p,.panel p{font-size:13px}.section-title{margin-bottom:16px}.stack{gap:12px}.tag{font-weight:550;font-size:10px;padding:4px 7px}.notice{font-size:13px;font-weight:500;line-height:1.5}.form-status{font-size:12px;font-weight:500}
.field>span,.field>label{font-size:12px;font-weight:500;color:#69736b}.field input,.field select,.toolbar input,.toolbar select,.slot-row input,.time-item input{min-height:40px;padding:9px 11px;border-color:#dce2dd;border-radius:5px;font-size:13px}.field select,.toolbar select{padding-right:35px}.form-grid,.radio-fields,.advanced-grid{gap:16px}.form-actions{margin-top:18px}.form-actions .primary{min-width:130px}details.advanced summary{font-size:13px;font-weight:500;color:#58665b}.advanced{margin-bottom:10px}.classification-card{background:#fafbf9;border-color:var(--line)}
.audio-drop{min-height:136px;border-color:#c9d5ca;background:#fafcf8;border-radius:6px;gap:14px}.simple-programmer .audio-drop{min-height:178px}.audio-drop:hover,.audio-drop:focus-visible{border-color:#8ca58e;background:#f4f8f0}.drop-icon{width:38px;height:38px;background:#eaf0e5;color:#557346;border-radius:5px;font-size:21px}.drop-copy strong{font-size:14px;font-weight:550}.drop-copy span{font-size:12px}.drop-copy small{font-size:10px}.drop-clear{font-size:12px;padding:6px 10px;border-color:#dae1d6}
.simple-programmer{gap:16px}.show-tile-grid{gap:16px}.show-tile,.show-search-results .show-search-result{padding:16px;border-color:var(--line);gap:10px}.show-tile h3,.show-tile strong{font-size:15px;line-height:1.4;font-weight:600;color:#2d3830}.show-tile small{font-size:11px;color:#818a80}.show-tile:hover,.show-tile-link:hover{background:#fafcf8;border-color:#b5c7ad}.show-edit-tile:hover{transform:none}.catalog-search input{min-height:42px}.catalog-back{font-size:12px;padding:6px 0;border:0;background:transparent;color:#74806e;min-height:30px}.catalog-back:hover{background:transparent;text-decoration:underline}.show-catalog .search-result-count{margin-bottom:18px}
.calendar-head{gap:7px;margin-bottom:15px}.calendar-head strong{font-size:14px;font-weight:600}.calendar-head #thisWeek{font-size:12px;padding:5px 9px;min-height:30px}.day{padding:9px;min-height:400px}.day.today{border-color:#98b295}.day-head b{font-size:12px;font-weight:600}.day-head span{font-size:11px}.event{padding:9px 8px;border-left-width:3px}.event strong{font-size:12px;font-weight:600;line-height:1.4}.event small{font-size:11px;line-height:1.4}.occurrence-delete{background:#ffffffc9;color:#9c665b}.event:focus-visible{outline:2px solid #759b6b;outline-offset:2px}
.rss-import-panel{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;margin:0 0 16px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.rss-import-panel .rss-import-hint{grid-column:1;background:transparent;border:0;padding:0;color:#7c8576;font-size:11px;line-height:1.5}.rss-import-panel #testRssDownload{grid-column:2;grid-row:1/3;font-size:11px}.rss-import-panel>small{font-size:11px}.rss-import-panel #rssTestResult{grid-column:1/-1}.rss-import-panel #rssTestResult:empty{display:none}.rss-test-tools{gap:5px 12px;margin:6px 0 16px;padding:0 0 10px;border-bottom:1px solid var(--line)}.rss-test-tools small{font-size:11px;color:#85907f}.rss-test-tools .quiet-action{font-size:11px}.rss-test-tools small:last-child:empty{display:none}.rss-test-tools .error,.rss-import-panel>small.error{color:#a13d30}
.programmed-files{margin-top:28px;padding-top:18px;border-color:var(--line)}.programmed-files h3{font-size:13px;font-weight:550;color:#475e4e}.programmed-section-hint{font-size:11px;color:#81917f}.programmed-file{padding:12px 13px;gap:10px;background:#f0f7ed;border-color:#dce9d7}.programmed-file-info strong{font-size:13px;font-weight:550;color:#344a38}.programmed-file-info small{font-size:11px}.programmed-file-icon{background:#e2efdb;width:26px;height:26px;flex-basis:26px;border-radius:4px}.programmed-file-status{font-size:10px;font-weight:500;background:transparent;color:#5d8058}.replace-import{background:transparent;border-color:transparent;color:#597052;padding:5px 7px;font-size:11px}.replace-import:hover{background:#e2eddb;border-color:transparent}.delete-programmed-file{border-color:transparent;background:transparent;width:30px;height:30px;color:#a16a5e}.delete-programmed-file:hover{border-color:transparent}.scheduled-kind{font-size:10px;color:#8a9786}.scheduled-group h2{font-size:16px}.scheduled-toolbar{grid-template-columns:minmax(0,1fr) 185px;gap:16px}.special-open{font-size:12px;padding:7px 10px}.manual-delete{background:transparent}.settings-grid{gap:20px}.settings-grid .connection-line strong{font-size:12px;font-weight:500}.settings-grid .section-title p{font-size:12px}.mode-card strong{font-size:13px}.mode-card small{font-size:11px}
.modal-head{padding:20px 24px 16px}.modal-head h2{margin:0;font-size:21px;font-weight:600}.icon-button{background:transparent;color:#858e84;width:30px;height:30px}.icon-button:hover{background:#f0f3ec}.modal-foot{padding:14px 24px;gap:12px}.modal-foot .secondary{border-color:transparent;background:transparent;color:#74806d}.modal-foot .secondary:hover{background:#f2f5ed}.schedule-row{background:#f8faf6;border:1px solid #edf0e9;border-radius:5px}.schedule-row .remove-schedule{background:transparent;color:#8b9584}.month-picker button{font-weight:450}.month-picker button[aria-pressed="true"]{font-weight:550}.image-drop-zone{font-size:12px;background:#fafcf8}.image-drop-zone small{font-size:10px}
@media(max-width:980px){.settings-grid{grid-template-columns:1fr}.week-grid{grid-template-columns:repeat(7,165px)}}
@media(max-width:760px){.shell{grid-template-columns:1fr}.sidebar{padding:10px 12px}.sidebar nav a{padding:8px 10px}.sidebar nav .nav-child.active{padding-left:10px}.sidebar nav .nav-settings{padding-top:8px}.nav-section-title{font-size:9px;letter-spacing:.025em}.page-header{display:block}.page-header h1{font-size:25px}.header-actions{gap:12px;margin-top:12px}main{padding:22px 14px 36px}.panel{padding:16px}.show-tile,.show-search-results .show-search-result{padding:12px}.show-tile-grid{gap:12px}.scheduled-toolbar{grid-template-columns:1fr}.rss-import-panel{grid-template-columns:1fr}.rss-import-panel #testRssDownload{grid-column:1;grid-row:auto}.rss-import-panel #rssTestResult{grid-column:1}.programmed-file-status{margin-left:0}.modal-head{padding:16px 14px}.modal-foot{padding:14px}.form-actions .primary{min-width:0}}
@media(prefers-reduced-motion:reduce){.primary,.secondary,.danger{transition:none}}
.programme-title-link{color:inherit;text-decoration:none;text-underline-offset:4px}.programme-title-link:hover{color:#315c46;text-decoration:underline}.scheduled-group .section-title>.quiet-action{flex-shrink:0}.scheduled-group [data-manage-cycle]{padding:6px 9px;font-size:12px;min-height:32px}

/* Lisibilité : navigation plus ample et contenu moins tassé. */
.shell{grid-template-columns:270px minmax(0,1fr)}
.sidebar{padding:28px 18px 20px}.brand{gap:13px}.brand-icon{width:38px;height:38px;font-size:19px}.brand strong{font-size:19px}.brand span{font-size:12px}.station-name{font-size:14px;padding:12px;margin-top:22px}
.sidebar nav{gap:7px;margin-top:26px}.sidebar nav a{font-size:16px;padding:13px 14px;line-height:1.45}.nav-section{gap:5px;margin-top:17px}.nav-section-title{font-size:12px;line-height:1.5;padding:10px 13px 7px;letter-spacing:.025em}.sidebar nav .nav-child{font-size:15px;padding:12px 15px 12px 24px}.sidebar nav .nav-child.active{padding-left:24px}.sidebar nav .nav-settings{margin-top:22px;padding-top:18px}.connection{padding:13px;gap:12px}.connection strong{font-size:14px}.connection small{font-size:12px;margin-top:4px}.sidebar{overflow-y:auto}.sidebar-bottom{padding-top:20px}
main{padding:36px clamp(24px,3.5vw,54px) 56px}.page-header{margin-bottom:30px}.page-header h1{font-size:32px;margin-bottom:10px}.page-header p{font-size:15px;line-height:1.6}.header-actions{gap:18px}
.panel{padding:24px}.card{padding:20px}.form-card{padding:26px}.stack{gap:18px}.section-title{margin-bottom:22px}.section-title h2,.panel h2{font-size:20px}.section-title p,.panel p{font-size:14px;line-height:1.6}
.primary,.secondary,.danger{min-height:42px;padding:10px 15px;font-size:14px}.quiet-action{font-size:13px;min-height:34px}.field>span,.field>label{font-size:13px}.field{gap:8px}.field input,.field select,.toolbar input,.toolbar select,.slot-row input,.time-item input{min-height:44px;font-size:14px;padding:11px 12px}.field select,.toolbar select{padding-right:38px}.form-grid,.radio-fields,.advanced-grid{gap:20px}.form-actions{margin-top:24px;gap:15px}.form-status{font-size:13px}details.advanced summary{font-size:14px;padding:5px 0}
.show-tile-grid{gap:22px}.show-tile,.show-search-results .show-search-result{padding:20px;gap:14px}.show-tile h3,.show-tile strong{font-size:17px;line-height:1.5}.show-tile small{font-size:13px;line-height:1.6}.show-summary{font-size:13px}.search-result-count{font-size:12px;margin-bottom:12px}.catalog-search input{min-height:46px}.simple-programmer{gap:22px}.simple-programmer .audio-drop{min-height:195px}.drop-copy strong{font-size:16px}.drop-copy span{font-size:14px}.drop-copy small{font-size:12px}.drop-copy{gap:5px}
.calendar-head{gap:10px;margin-bottom:20px}.calendar-head strong{font-size:16px}.day-head b{font-size:13px}.day-head span{font-size:12px}.event{padding:11px 10px;margin:8px 0}.event strong{font-size:13px;line-height:1.5}.event small{font-size:12px;line-height:1.5}.week-grid{gap:10px}.day{padding:11px}.tag{font-size:11px;padding:5px 8px}
.programmed-file{padding:16px;gap:13px}.programmed-file-info strong{font-size:14px;line-height:1.5}.programmed-file-info small{font-size:12px;line-height:1.5}.programmed-files h3{font-size:14px}.programmed-section-hint{font-size:12px;line-height:1.6}.programmed-file-status{font-size:11px}.scheduled-group h2{font-size:18px}.scheduled-occurrence{padding:12px 14px}.scheduled-group summary{font-size:14px;padding:10px 0}.rss-import-panel .rss-import-hint,.rss-import-panel>small,.rss-test-tools small{font-size:12px;line-height:1.6}.rss-test-tools .quiet-action,.rss-import-panel #testRssDownload{font-size:12px}.settings-grid .section-title p{font-size:14px}.settings-grid .connection-line strong{font-size:14px}.mode-card strong{font-size:15px}.mode-card small{font-size:12px;line-height:1.6}.modal-head h2{font-size:23px}#modalBody{padding:24px}.modal-section{gap:18px}
@media(min-width:761px) and (max-height:850px){.sidebar{padding-top:20px}.sidebar nav{margin-top:18px;gap:5px}.nav-section{margin-top:10px}.sidebar nav a{padding-top:10px;padding-bottom:10px}.sidebar nav .nav-child{padding-top:9px;padding-bottom:9px}.sidebar nav .nav-settings{margin-top:14px;padding-top:13px}.station-name{margin-top:16px}.sidebar-bottom{padding-top:14px}}
@media(max-width:1100px) and (min-width:761px){.shell{grid-template-columns:245px minmax(0,1fr)}main{padding-left:24px;padding-right:24px}}
@media(max-width:760px){.shell{grid-template-columns:1fr}.sidebar{padding:12px;height:auto;overflow:visible}.sidebar nav{gap:12px;margin:0}.nav-section{margin:0;min-width:170px;gap:3px}.nav-section-title{font-size:11px;padding:4px 9px}.sidebar nav a{font-size:14px;padding:10px;line-height:1.4}.sidebar nav .nav-child,.sidebar nav .nav-child.active{font-size:13px;padding:8px 11px}.sidebar nav .nav-settings{margin:0;padding:10px}.sidebar-bottom{padding:0}.connection{padding:0}.page-header h1{font-size:28px}.page-header p{font-size:14px}main{padding:26px 16px 40px}.panel,.card{padding:18px}.show-tile-grid{gap:14px}.show-tile,.show-search-results .show-search-result{padding:14px;gap:12px}.show-tile h3,.show-tile strong{font-size:15px}.show-tile small{font-size:12px}.form-grid,.radio-fields,.advanced-grid{gap:17px}#modalBody{padding:20px 16px}.modal-head h2{font-size:21px}}

/* Esprit Studio : navigation claire et surfaces aérées. */
.sidebar{background:#fff;color:#26352b;border-right:1px solid #e2e8df}.brand-icon{background:#e6efdf;color:#476a38}.brand span{color:#899480}.station-name{background:#f4f7f0;color:#637459}.sidebar nav a{color:#61705b}.sidebar nav a b{color:#829377}.sidebar nav a:hover{background:#f5f8f1;color:#334d2a}.sidebar nav a.active,.sidebar nav .nav-child.active{background:#eaf2e2;color:#37582d}.sidebar nav a.active b{color:#37582d}.nav-section-title{color:#8a9782;text-transform:none;font-size:13px;font-weight:500;letter-spacing:0}.sidebar nav .nav-settings{border-color:#e9eee4;color:#77856f}.connection{border-color:#e5ebdf;background:#fafcf7;color:#44563b}.connection small{color:#87947e}.connection strong{font-weight:550}
.show-tile,.show-search-results .show-search-result{border-color:#dfe7d9}.show-tile:hover,.show-edit-tile:hover{background:#f9fcf5;border-color:#a9bf97}.page-header h1{color:#263621}.primary{background:#426637;border-color:#426637}.primary:hover:not(:disabled){background:#34532a;border-color:#34532a}
@media(max-width:760px){.sidebar{border-right:0;border-bottom:1px solid #e2e8df}.nav-section-title{font-size:11px}}

/* Léger zoom au survol des vignettes. */
.show-tile{transition:transform .18s ease,background-color .18s ease,border-color .18s ease}
@media(hover:hover) and (pointer:fine){.show-tile:hover,.show-edit-tile:hover{transform:scale(1.025)}}
@media(prefers-reduced-motion:reduce){.show-tile{transition:none}.show-tile:hover,.show-edit-tile:hover{transform:none}}

/* Une programmation réussie reste verte après sa diffusion. */
.event.past.synced{background:#edf9f1;border-left-color:#36a960;color:#242a2e}
.event.past.synced small{color:#477452}
.event.past.synced.rss-programmed{background:#eaf4e7;border-left-color:#a9c4a0}
.event.past.synced.rss-programmed small{color:#377431}

/* Suppressions discrètes, sans gros carrés. */
.subtle-trash,.slot-row button,.schedule-row .remove-schedule{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;min-height:30px;padding:0;border:0;background:transparent;color:#93998e;border-radius:4px;flex-shrink:0;font-size:14px}
.subtle-trash:hover,.slot-row button:hover,.schedule-row .remove-schedule:hover{background:#faf0ed;color:#a35b4d}
.subtle-trash:focus-visible,.slot-row button:focus-visible,.schedule-row .remove-schedule:focus-visible{outline:2px solid #7d9871;outline-offset:2px}
.schedule-row .remove-schedule{height:30px;margin-bottom:7px}.slot-row{grid-template-columns:minmax(0,1fr) 150px 30px}.show-delete-action{display:flex;align-items:center;gap:7px;border-top:1px solid #eef0ea;margin-top:14px;padding-top:12px;color:#8c8f85;font-size:12px}.drop-icon{background:transparent;border-radius:0;width:32px;height:36px;color:#7f9471;flex-basis:32px}.drop-file .drop-clear{grid-row:1/3;width:30px;height:30px;border:0;background:transparent;padding:0;color:#93998e}.drop-file .drop-clear:hover{background:#faf0ed;color:#a35b4d}
@media(max-width:760px){.slot-row{grid-template-columns:minmax(0,1fr) 115px 30px}}

/* Palette de statut commune à toute l’interface. */
:root{--status-ok-bg:#eaf4e7;--status-ok-border:#a9c4a0;--status-ok-ink:#377431;--status-ok-muted:#5e7958;--status-ok-icon:#dcecd5;--status-warning-bg:#fff2d5;--status-warning-ink:#835700;--status-error-bg:#ffebe9;--status-error-ink:#9c3128}
.event.synced,.event.rss-programmed,.event.rss-planned,.event.past.synced,.event.past.synced.rss-programmed{background:var(--status-ok-bg);border-left-color:var(--status-ok-border);color:var(--ink)}
.event.synced small,.event.rss-programmed small,.event.rss-planned small,.event.past.synced small,.event.past.synced.rss-programmed small,.rss-file-name{color:var(--status-ok-ink)}
.tag.ok,.success-box,.programmed-file,.programmed-announcement-drop{background:var(--status-ok-bg);color:var(--status-ok-ink);border-color:var(--status-ok-border)}
.programmed-file-info strong,.programmed-files h3{color:var(--status-ok-ink)}.programmed-file-info small,.programmed-section-hint,.programmed-file-status{color:var(--status-ok-muted)}.programmed-file-status{background:transparent}.programmed-file-icon{background:var(--status-ok-icon);color:var(--status-ok-ink)}
.scheduled-occurrence:not(.past){background:var(--status-ok-bg)}.tag.warn{background:var(--status-warning-bg);color:var(--status-warning-ink)}.tag.bad{background:var(--status-error-bg);color:var(--status-error-ink)}
/* Un avertissement de fichier conserve la priorité sur la couleur de réussite. */
.event.file-missing,.event.synced.file-missing,.event.rss-programmed.file-missing{background:#fff1eb;border-left-color:#c64c2f}.event.file-missing small{color:#a34020}
.emission-schedule{margin-bottom:22px}.emission-schedule h2{margin-bottom:18px}.emission-schedule-rows{display:grid;gap:0}.emission-schedule-row{display:flex;align-items:center;gap:14px;padding:12px 0;border-top:1px solid var(--line);flex-wrap:wrap}.emission-schedule-row strong{font-size:14px;font-weight:550;text-transform:capitalize}.emission-schedule-row small{font-size:12px;color:var(--muted)}
.emission-rules{margin-top:24px}.emission-rules>summary,.emission-report>summary{cursor:pointer;color:#596d50;font-size:14px;padding:12px 0}.emission-rules .emission-schedule{margin-top:14px}.emission-report{margin-top:30px;border-top:1px solid var(--line);padding-top:8px}.emission-report>summary{font-weight:550}.emission-report summary>span:not(.tag){margin-left:10px;font-size:12px;font-weight:400;color:var(--muted)}.report-month{border-top:1px solid var(--line);margin-top:12px}.report-month>summary{cursor:pointer;padding:14px 0;font-size:14px;text-transform:capitalize}.report-month summary .tag{margin-left:10px}.report-rows{display:grid;gap:5px;padding-bottom:14px}.report-row{display:flex;gap:14px;align-items:center;padding:10px 12px;background:var(--status-ok-bg);border-radius:4px;font-size:12px}.report-row strong{flex:1;min-width:0;font-size:13px;font-weight:500;overflow-wrap:anywhere}.report-missing{background:var(--status-error-bg)}
@media(max-width:760px){.report-row{flex-wrap:wrap}.report-row strong{flex-basis:100%}}

/* Fiche émission : dépôt à gauche, grille visible en haut à droite. */
.emission-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:24px;align-items:start}
.emission-detail-layout #programPane{min-width:0}.emission-detail-layout .simple-programmer{max-width:none;width:100%;margin:0;gap:0}
.emission-detail-layout .audio-drop{min-height:155px;justify-content:flex-start;padding:22px;gap:18px}
.emission-grid-sidebar{min-width:0}.emission-grid-sidebar .emission-schedule{margin:0;padding:22px}.emission-grid-sidebar h2{font-size:17px;margin-bottom:14px}.emission-grid-sidebar .emission-schedule-row{display:grid;grid-template-columns:1fr;gap:8px;padding:14px 0}.emission-grid-sidebar .emission-schedule-row .tag{justify-self:start}.emission-grid-sidebar .emission-schedule-row strong{font-size:13px}.emission-grid-sidebar .emission-schedule-row small:empty{display:none}
@media(max-width:1100px){.emission-detail-layout{grid-template-columns:minmax(0,1fr)}.emission-grid-sidebar .emission-schedule-row{display:flex}.emission-grid-sidebar{grid-row:1}.emission-detail-layout .audio-drop{min-height:145px}}
@media(max-width:760px){.emission-detail-layout{gap:18px}.emission-detail-layout .audio-drop{padding:18px}.emission-grid-sidebar .emission-schedule{padding:18px}}
.report-month>h3{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0;padding:16px 0;font-size:14px;font-weight:550;text-transform:capitalize}.report-month>h3>span:not(.tag){font-size:12px;font-weight:400;color:var(--muted)}
.grid-search-bar{display:flex;align-items:end;gap:16px;margin:0 0 20px}.grid-search-bar .field{width:min(100%,480px)}.grid-search-bar small{font-size:12px;color:var(--muted);padding-bottom:13px}.grid-search-empty{display:block;padding:14px 3px;font-size:12px}
@media(max-width:760px){.grid-search-bar{align-items:start;flex-direction:column;gap:7px}.grid-search-bar small{padding:0}.grid-search-bar .field{width:100%}}
.emissions-catalog-toolbar:not(:has(select:not([hidden]))){grid-template-columns:minmax(0,480px)}
.emissions-catalog-toolbar:has(.field[hidden]){grid-template-columns:minmax(0,480px)}
.emission-group-times{display:grid;gap:10px}.emission-group-times>div{display:grid;gap:4px}.emission-group-times small:empty{display:none}.emission-schedule-group{align-items:start}.emission-grid-sidebar .emission-schedule-group{display:grid}
.search-highlight{background:#f3e9ab;color:inherit;padding:0 1px;border-radius:2px;font-weight:inherit}.grid-search-bar input:focus,.catalog-search input:focus,.emissions-catalog-toolbar input:focus{border-color:#8aa277;background:#fcfef8}
.manual-list-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;background:#fff;border:1px solid var(--line);border-radius:5px}.manual-list-row h2{font-size:16px;font-weight:550;margin:0 0 7px}.manual-list-row small{color:var(--muted);font-size:12px}.manual-group-actions{display:flex;align-items:center;gap:12px}.manual-history{margin-top:30px;padding-top:10px;border-top:1px solid var(--line)}.manual-history>summary{font-size:14px;font-weight:550;color:#596d50;cursor:pointer;padding:12px 0}.manual-report-tools{display:flex;gap:14px;align-items:end;flex-wrap:wrap;margin:16px 0}.manual-report-tools .field{max-width:180px}.report-row strong small{display:block;font-size:11px;color:var(--muted);font-weight:400;margin-top:5px}.report-unverified{background:#f7f7f2}.report-row{margin-bottom:6px}.manual-list-row .programme-title-link{display:inline-block}.manual-list-row:has(.programme-title-link:hover){border-color:#a9bf97;background:#fafcf7}

.grid-search-bar .grid-view-filter{width:180px;flex-shrink:0}
@media(max-width:760px){.grid-search-bar .grid-view-filter{width:100%}}

.manual-list-row{position:relative}.manual-list-row .programme-title-link::after{content:"";position:absolute;inset:0;border-radius:5px}.manual-list-row .subtle-trash{position:relative;z-index:1}.manual-list-row:has(.programme-title-link:focus-visible){outline:2px solid #8aa277;outline-offset:2px}.manual-list-row:has(.programme-title-link){cursor:pointer}.manual-table-scroll{overflow-x:auto;margin-top:14px}.manual-report-table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}.manual-report-table th{font-size:12px;font-weight:550;color:var(--muted);background:#f7f8f5}.manual-report-table th,.manual-report-table td{padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:middle}.manual-report-table tbody tr:hover{background:#fafcf7}.manual-report-table td:nth-child(1),.manual-report-table td:nth-child(2){white-space:nowrap}.manual-table-file{min-width:160px;overflow-wrap:anywhere}.manual-report-table .tag{white-space:normal}

.programmed-episode{margin-top:12px}.programmed-episode .programmed-file{margin-top:0}.programmed-diffusions{margin:6px 0 16px;padding:0 4px}.programmed-diffusions summary{cursor:pointer;padding:7px 0;font-size:13px;color:var(--status-ok-muted)}.programmed-diffusions summary span{margin-left:8px;font-size:12px;color:#7b857b}

.programmed-file:has(.programmed-diffusions){flex-wrap:wrap}.programmed-file>.programmed-diffusions{flex:0 0 100%;margin:0;padding:4px 0 0;border-top:1px solid var(--status-ok-border)}.programmed-file>.programmed-diffusions summary{font-size:12px;padding:5px 0}.programmed-file .scheduled-occurrence{font-size:12px;padding:6px 8px}.programmed-file .scheduled-occurrence .tag{font-size:11px}

.file-transfer-progress{position:fixed;right:24px;bottom:24px;z-index:1500;width:min(360px,calc(100vw - 32px));padding:14px 16px;background:var(--panel,#fff);border:1px solid var(--line,#dfe5db);border-radius:5px;display:flex;flex-direction:column;gap:7px;text-align:left}.file-transfer-progress[hidden]{display:none}.transfer-name{font-size:13px;overflow-wrap:anywhere}.transfer-message{font-size:13px}.file-transfer-progress progress{width:100%;height:7px;accent-color:var(--status-ok-text,#52723b)}.transfer-detail{color:var(--muted);font-size:12px}.file-transfer-progress.error{border-color:#b85a50}.file-transfer-progress.error .transfer-message{color:#a33f35}

/* Fluid layout: no fixed-width days or clipped content. */
#content,.panel,.program-layout,.program-main,.program-side,.field,.day{min-width:0;max-width:100%}
.week-grid{grid-template-columns:repeat(7,minmax(0,1fr));overflow:visible}
.day-head{flex-wrap:wrap;gap:4px}.event strong,.rss-file-name,.programmed-file-info strong{overflow-wrap:anywhere}
.diffusion-badge{display:inline-block;margin-top:5px;padding:2px 5px;border:1px solid currentColor;border-radius:3px;font-size:10px;font-weight:500;line-height:1.3;opacity:.65}
.page-header,.section-title{flex-wrap:wrap}.header-actions{max-width:100%}
/* Keep all seven days together; use the available width efficiently. */
.week-grid{grid-template-columns:repeat(7,minmax(110px,1fr));gap:6px;overflow-x:auto}
@media(max-width:760px){
 .shell{grid-template-columns:minmax(0,1fr)}
 .sidebar{position:relative;display:block;height:auto;padding:12px;overflow:visible}
 .sidebar nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;padding:0;margin:0;gap:8px;overflow:visible}
 .sidebar nav>a{min-width:0;white-space:normal}.sidebar nav a{font-size:14px;padding:10px}
 .nav-section{min-width:0;margin:0}.nav-section-title{font-size:11px;padding:5px 10px;white-space:normal}
 .sidebar nav .nav-child,.sidebar nav .nav-child.active{padding:8px 10px;font-size:13px}
 .sidebar nav .nav-settings{margin:0;padding:10px}.sidebar-bottom{position:static;margin:8px 0 0;padding:0}
 .connection{width:auto;height:30px;padding:0 10px;gap:8px}.connection>span:last-child{display:block}.connection small{display:none}
 .week-grid{grid-template-columns:repeat(7,minmax(145px,1fr));overflow-x:auto;gap:6px}.day{min-height:240px}
 .grid-search-bar{display:flex;flex-wrap:wrap}.grid-search-bar .field{flex:1 1 200px}
 .program-layout,.two-col,.settings-grid{grid-template-columns:minmax(0,1fr)}.scheduled-occurrence{flex-wrap:wrap}.calendar-head strong{flex-basis:100%}
}
@media(max-width:420px){.show-tile-grid{grid-template-columns:minmax(0,1fr)}.cards{grid-template-columns:minmax(0,1fr)}}

/* Readable navigation and calendar; compact mode is optional. */
.sidebar-toggle{align-self:flex-end;display:grid;place-items:center;width:34px;height:34px;padding:0;margin-bottom:12px;background:transparent;border:1px solid #ffffff30;color:#dce4de;border-radius:4px;flex-shrink:0}
.sidebar-toggle:hover{background:#ffffff12}.nav-compact-icon{display:none!important}
@media(min-width:761px){.shell{grid-template-columns:270px minmax(0,1fr)}main{padding:28px 20px 40px}.sidebar{padding:22px 18px 18px}.nav-collapsed .shell{grid-template-columns:68px minmax(0,1fr)}.nav-collapsed .sidebar{padding:16px 8px}.nav-collapsed .sidebar-toggle{align-self:center}.nav-collapsed .brand,.nav-collapsed .station-name,.nav-collapsed .nav-section-title,.nav-collapsed .sidebar nav a>span,.nav-collapsed .connection>span:last-child{display:none}.nav-collapsed .sidebar nav a,.nav-collapsed .sidebar nav .nav-child,.nav-collapsed .sidebar nav .nav-child.active{justify-content:center;padding:12px 4px}.nav-collapsed .nav-compact-icon{display:block!important}.nav-collapsed .sidebar nav a b{font-size:16px;width:auto}.nav-collapsed .connection{justify-content:center;padding:12px 4px}}
.week-grid{grid-template-columns:repeat(7,minmax(220px,1fr));gap:10px;overflow-x:auto;padding-bottom:12px}.day{padding:10px}.event{padding:11px 10px}.event strong{font-size:14px;line-height:1.45}.event small{font-size:12px;line-height:1.45}.diffusion-badge{font-size:10px}.day-head b,.day-head span{font-size:12px}
@media(max-width:760px){.sidebar-toggle{margin:0 0 8px}.nav-collapsed .sidebar nav,.nav-collapsed .sidebar-bottom{display:none}.week-grid{grid-template-columns:repeat(7,minmax(220px,1fr))}}
html[data-theme="dark"]{color-scheme:dark;--ink:#eceef2;--muted:#b1b6c0;--line:#3e4149;--panel:#24262b;--accent:#a4b0c4;--status-ok-bg:#29372f;--status-ok-border:#567b5b;--status-ok-ink:#dce8de;--status-ok-muted:#bac9bd;--status-ok-icon:#34533b;--status-warning-bg:#34312b;--status-warning-ink:#eceef2;--status-error-bg:#392b2d;--status-error-ink:#efaaa1}
html[data-theme="dark"],html[data-theme="dark"] body{background:#18191c;color:var(--ink)}
[data-theme="dark"] :is(.panel,.card,.form-card,.day,dialog,.modal-head,.modal-foot,.file-transfer-progress,.classification-card,.mode-card){background:var(--panel);color:var(--ink);border-color:var(--line)}
[data-theme="dark"] :is(input,select,.secondary,.icon-button,.special-open,.show-search-result,.import-calendar-trigger){background:#2c2f35;color:var(--ink);border-color:#494d56}
[data-theme="dark"] :is(.audio-drop,.show-artwork,.code-ish,.import-calendar,.scheduled-group){background:#222429;color:var(--ink);border-color:#555b65}
[data-theme="dark"] :is(.muted,.small,.field>span,.panel p,.card p,.page-header p,.show-tile small,.event small,.day-head span,.programmed-file-info small,.search-result-count){color:var(--muted)}
[data-theme="dark"] :is(.event,.event.synced,.event.rss-planned,.event.rss-programmed){color:var(--ink)}
[data-theme="dark"] .event.missing{background:var(--status-warning-bg)}[data-theme="dark"] .event.direct{background:#342e49}[data-theme="dark"] .event.past:not(.synced):not(.direct){background:var(--status-error-bg)}
[data-theme="dark"] :is(.programmed-file-info strong,.programmed-file-status,.programmed-diffusions summary){color:var(--status-ok-ink)}
[data-theme="dark"] :is(.emission-schedule,.flow-line span,.scheduled-occurrence,.manual-report-table th,.manual-list-row:hover){background:#2c2f35;color:var(--ink);border-color:var(--line)}
[data-theme="dark"] .notice{background:var(--status-warning-bg);color:var(--status-warning-ink)}[data-theme="dark"] .notice.error,[data-theme="dark"] .file-warning{background:var(--status-error-bg);color:var(--status-error-ink)}
[data-theme="dark"] .primary{background:#aacaac;border-color:#aacaac;color:#18221b}[data-theme="dark"] .search-highlight{background:#695a28;color:#fff0b9}

.week-grid:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
[data-theme="dark"] .scheduled-occurrence:not(.past){background:var(--status-ok-bg)}

/* Complete dark surfaces, including editors, pickers and hover states. */
[data-theme="dark"] :is(.segmented,.broadcast-item,.schedule-row,.role-hint,.announcement-summary,.announcement-grid-wrap,.ann-corner,.ann-day-head,.ann-time,.ann-cell,.agent-box,.agent-steps,.token-row code,.queue-pills span,.month-picker button,.show-search-popup,.image-drop-zone,.manual-list-row,.report-unverified){background:#24262b;color:var(--ink);border-color:var(--line)}
[data-theme="dark"] :is(.slot-row button,.schedule-row .remove-schedule,.drop-clear,.occurrence-delete,.delete-programmed-file,.manual-delete,.import-calendar-head button,.weekday span,.tag){background:#34373e;color:#d5d9e1;border-color:#555b65}
[data-theme="dark"] :is(.audio-drop:hover,.audio-drop:focus-visible,.image-drop-zone:hover,.image-drop-zone.dragging,.show-tile:hover,.show-tile-link:hover,.show-edit-tile:hover,.show-search-result:hover,.secondary:hover:not(:disabled),.icon-button:hover,.modal-foot .secondary:hover,.import-calendar-trigger:hover,.month-picker button:hover,.ann-cell:hover,.manual-list-row:has(.programme-title-link:hover),.manual-report-table tbody tr:hover){background:#34373e;color:var(--ink);border-color:#77808d}
[data-theme="dark"] :is(.audio-drop.dragging,.audio-drop.has-file,.replacement-dragover,.event.drop-target){background:#2a4332;color:var(--ink);border-color:#88b28e}
[data-theme="dark"] :is(.mode-card.selected,.segmented button.active,.show-search-result.selected,.weekday input:checked+span,.month-picker button[aria-pressed="true"],.ann-cell.selected){background:#34533d;color:#d8efdc;border-color:#82a987}
[data-theme="dark"] :is(.ann-cell.has-existing:not(.selected),.ann-existing,.import-calendar-days button.available,.import-calendar-legend span,.success-box,.programmed-file,.programmed-announcement-drop,.event.synced,.event.rss-programmed,.event.rss-planned,.event.past.synced,.event.past.synced.rss-programmed){background:var(--status-ok-bg);color:var(--status-ok-ink);border-color:var(--status-ok-border)}
[data-theme="dark"] .import-calendar-days button.available:hover{background:#34553a;color:#e5f5e1}
[data-theme="dark"] .import-calendar-days button.selected{background:#507a55;color:#fff;border-color:#92b998}
[data-theme="dark"] .import-calendar-days button:disabled{background:#202226;color:#7e8b81}
[data-theme="dark"] :is(.drop-icon,.programmed-file-icon){background:#314b36;color:#c0dfb5}
[data-theme="dark"] :is(.rss-import-hint,.rss-import-panel .rss-import-hint){background:transparent;color:var(--muted);border-color:var(--line)}
[data-theme="dark"] :is(.tag.ok,.replace-import,.replace-import:hover){color:var(--status-ok-ink);background:var(--status-ok-bg)}
[data-theme="dark"] :is(.tag.warn,.event.missing,.event.file-missing,.event.synced.file-missing,.event.rss-programmed.file-missing){background:var(--status-warning-bg);color:var(--status-warning-ink)}
[data-theme="dark"] :is(.tag.bad,.scheduled-occurrence.past,.day-exclusion input:checked+span,.queue-pills .bad,.danger){background:var(--status-error-bg);color:var(--status-error-ink);border-color:#88524b}
[data-theme="dark"] :is(.tag.direct,.event.direct,.event.past.direct){background:#38304e;color:#d8caef}
[data-theme="dark"] :is(.show-tile h3,.show-tile strong,.show-search-result strong,.classification-card strong,.mode-card strong,.drop-copy strong,.manual-list-row strong,.programme-title-link,.emission-schedule h2){color:var(--ink)}
[data-theme="dark"] :is(.field>label,.section-title p,.form-status,.scheduled-kind,.programmed-section-hint,.programmed-diffusions summary span,.drop-copy span,.drop-copy small,.mode-card small,.rss-test-tools small,.rss-import-panel>small,.agent-steps p,.emission-schedule,.emission-schedule small,.report-month summary,.catalog-back,.special-back,.quiet-action,.link-button,.calendar-nav){color:var(--muted)}
[data-theme="dark"] :is(.error,.modal-error,.rss-test-tools .error,.rss-import-panel>small.error){color:#f0aaa0}
[data-theme="dark"] :is(.subtle-trash:hover,.delete-programmed-file:hover,.occurrence-delete:hover,.manual-delete:hover,.drop-file .drop-clear:hover){background:#51322e;color:#ffbbb0}
[data-theme="dark"] .primary:hover:not(:disabled){background:#bdd9bf;color:#18221b;border-color:#bdd9bf}
[data-theme="dark"] .separator{background:var(--line)}
[data-theme="dark"] .ann-cell.selected .ann-existing{background:#45674b;color:#e0f2de}
[data-theme="dark"] .calendar-nav:hover{background:#34373e;color:var(--ink)}

/* Neutral dark chrome, with colour reserved for status indicators. */
[data-theme="dark"] .sidebar{background:#202226;color:#eceef2;border-right:1px solid #373a42}
[data-theme="dark"] .brand strong{color:#eceef2}[data-theme="dark"] .brand span{color:#aeb4bf}
[data-theme="dark"] .brand-icon{background:#34373e;color:#e2e6ed}
[data-theme="dark"] .station-name{background:#292c32;color:#c2c8d2;border-color:#3c4048}
[data-theme="dark"] .sidebar nav a,[data-theme="dark"] .sidebar nav a b{color:#c4cad4}
[data-theme="dark"] .sidebar nav a:hover{background:#2d3037;color:#fff}
[data-theme="dark"] .sidebar nav a.active,[data-theme="dark"] .sidebar nav .nav-child.active{background:#383c45;color:#fff;border-color:#606b7c}
[data-theme="dark"] .sidebar nav a.active b{color:#e2e7ef}
[data-theme="dark"] .nav-section-title{color:#a8afbb}
[data-theme="dark"] .sidebar nav .nav-settings{border-color:#3b3e46}
[data-theme="dark"] .connection{background:#26292e;color:#e2e6ee;border-color:#3d424c}
[data-theme="dark"] .connection small{color:#aeb6c3}
[data-theme="dark"] .page-header h1,[data-theme="dark"] #heading{color:#eceef2}
[data-theme="dark"] .calendar-head #thisWeek{background:#30343b;color:#eceef2;border:1px solid #505661}
[data-theme="dark"] .calendar-head #thisWeek:hover{background:#3c414a;color:#fff}
[data-theme="dark"] .event strong,[data-theme="dark"] .event .diffusion-badge{color:#eceef2}
[data-theme="dark"] .event small{color:#c0c5cf}
[data-theme="dark"] .event.missing{background:#33312c;border-left-color:#ad9156;color:#eceef2}
[data-theme="dark"] .event.past:not(.synced):not(.direct){background:#392b2d;color:#eceef2}
[data-theme="dark"] .event.synced,[data-theme="dark"] .event.rss-planned,[data-theme="dark"] .event.rss-programmed,[data-theme="dark"] .event.past.synced{background:#29372f;color:#eceef2}
[data-theme="dark"] .event.direct,[data-theme="dark"] .event.past.direct{background:#333044;color:#eceef2}
[data-theme="dark"] .diffusion-badge{opacity:.85;border-color:#8c929d}
[data-theme="dark"] .primary{background:#c1cad8;border-color:#c1cad8;color:#1b1e24}
[data-theme="dark"] .primary:hover:not(:disabled){background:#d5dce6;border-color:#d5dce6;color:#1b1e24}
[data-theme="dark"] .notice,[data-theme="dark"] .tag.warn{background:#34312b;color:#eceef2}
[data-theme="dark"] .search-highlight{background:#454d5c;color:#fff}

/* One icon family, visible in both navigation states. */
.sidebar nav a .nav-icon{display:grid!important;place-items:center;flex:0 0 24px;width:24px;height:24px;color:inherit}
.sidebar nav a .nav-icon svg{display:block;width:22px;height:22px}
.sidebar nav .nav-child,.sidebar nav .nav-child.active{padding-left:14px;gap:10px}
.sidebar nav .nav-settings .nav-icon svg{width:24px;height:24px}
.sidebar-toggle{position:fixed;top:50%;left:254px;width:30px;height:56px;margin:0;padding:0;transform:translateY(-50%);z-index:40;background:#fff;color:#65716a;border:1px solid #dce2de;border-radius:0 10px 10px 0;box-shadow:none}
.sidebar-toggle:hover{background:#edf1ee;color:#263c2d}
.sidebar-toggle svg{width:17px;height:17px}
.nav-collapsed .sidebar-toggle{left:52px}
.nav-collapsed .sidebar-toggle svg{transform:rotate(180deg)}
@media(min-width:761px){.nav-collapsed .sidebar nav a .nav-icon{width:24px;font-size:inherit}.nav-collapsed .nav-section{padding-top:10px;margin-top:10px;border-top:1px solid #dce2de}.nav-collapsed .sidebar nav{gap:6px}.nav-collapsed .sidebar nav a{min-height:46px}}
[data-theme="dark"] .sidebar-toggle{background:#202226;border-color:#454a54;color:#c4cad4}
[data-theme="dark"] .sidebar-toggle:hover{background:#30343c;color:#fff}
[data-theme="dark"] .nav-collapsed .nav-section{border-color:#3b3e46}
@media(max-width:760px){.sidebar-toggle,.nav-collapsed .sidebar-toggle{position:absolute;top:12px;right:12px;left:auto;transform:none;height:34px;width:34px;border-radius:5px}.sidebar{padding-top:54px}.nav-collapsed .sidebar{min-height:54px}.nav-collapsed .sidebar-toggle svg{transform:rotate(180deg)}}

/* Edge handle extends outward, never over the collapsed navigation icons. */
@media(min-width:761px){
 .sidebar-toggle{left:269px;width:19px;height:44px;border:0;border-radius:0 8px 8px 0;background:#fff;color:#7b847e;clip-path:polygon(0 0,65% 10%,100% 25%,100% 75%,65% 90%,0 100%)}
 .nav-collapsed .sidebar-toggle{left:67px}
 .sidebar-toggle svg{width:14px;height:14px;margin-left:-2px}
 .sidebar-toggle:hover{background:#e9ede9;color:#35483a}
 [data-theme="dark"] .sidebar-toggle{background:#202226;border:0;color:#aeb6c3}
 [data-theme="dark"] .sidebar-toggle:hover{background:#30343c;color:#eef1f6}
 .sidebar-toggle:focus-visible{clip-path:none;outline:2px solid var(--accent);outline-offset:1px}
}

.audio-drop .drop-icon,[data-theme="dark"] .audio-drop .drop-icon{background:transparent;border:0;border-radius:0;color:var(--muted);box-shadow:none}

.theme-buttons{display:flex;gap:8px;margin-top:14px}.theme-buttons button{flex:1;min-height:42px;padding:10px 16px;background:#fff;color:#555b65;border:1px solid #d3d7de;border-radius:5px;font-weight:500}
.theme-buttons button[aria-pressed="true"]{background:#e9ecf1;color:#242933;border-color:#838c9c}
[data-theme="dark"] .theme-buttons button{background:#2c2f35;color:#c6cbd4;border-color:#474c56}
[data-theme="dark"] .theme-buttons button[aria-pressed="true"]{background:#424853;color:#f2f4f8;border-color:#8893a5}
[data-theme="dark"] :is(.mode-card.selected,.segmented button.active,.show-search-result.selected,.weekday input:checked+span,.month-picker button[aria-pressed="true"],.ann-cell.selected){background:#39404b;color:#edf0f5;border-color:#798598}
[data-theme="dark"] :is(.audio-drop.dragging,.audio-drop.has-file,.replacement-dragover,.event.drop-target){background:#303843;color:#edf0f5;border-color:#8391a7}
[data-theme="dark"] :is(.drop-icon,.programmed-file-icon){background:transparent;color:#bdc4cf}

[data-theme="dark"] #content summary{color:#d5dae3}
[data-theme="dark"] #content summary:hover{color:#fff}
[data-theme="dark"] #content summary::marker{color:#abb5c5}
[data-theme="dark"] #content summary :is(span,strong){color:inherit}
[data-theme="dark"] #content :is(.emission-report,.emission-rules,.report-month){border-color:#444a55}

/* Internal navigation control: no protruding tab. */
.sidebar-toggle,.nav-collapsed .sidebar-toggle{position:static;top:auto;left:auto;right:auto;transform:none;clip-path:none;align-self:flex-end;flex-shrink:0;width:32px;height:32px;margin:0 0 12px;padding:0;border:0;border-radius:4px;background:transparent;color:#66716b}
.sidebar-toggle:hover{background:#edf0ed;color:#273c2e}
.sidebar-toggle svg{width:18px;height:18px;margin:0}
.nav-collapsed .sidebar-toggle{align-self:center}
[data-theme="dark"] .sidebar-toggle{background:transparent;color:#c0c7d2;border:0}
[data-theme="dark"] .sidebar-toggle:hover{background:#343841;color:#fff}
@media(max-width:760px){.sidebar{display:flex;flex-direction:column;padding-top:12px}.nav-collapsed .sidebar{min-height:54px}.sidebar-toggle,.nav-collapsed .sidebar-toggle{align-self:flex-end;margin-bottom:8px}}

.sidebar nav .nav-settings .nav-icon svg{width:22px;height:22px}

/* Settings follow one reading order, with setup help collapsed. */
.settings-grid{display:flex;flex-direction:column;gap:22px;width:100%;max-width:960px}
.settings-grid>.stack,.settings-grid>.panel{width:100%;min-width:0}
.settings-grid .classification-grid,.settings-grid .radio-fields,.settings-grid .advanced-grid{grid-template-columns:minmax(0,1fr)}
.settings-grid .classification-card{padding:18px}.settings-grid .section-title{margin-bottom:18px}
.agent-configuration{margin:16px 0}.agent-configuration>summary{padding:10px 0;font-size:14px}.agent-configuration-content{padding-top:8px}.agent-configuration-content>.separator:first-child{display:none}
.occurrence-delete,[data-theme="dark"] .occurrence-delete{background:transparent;border:0;box-shadow:none;border-radius:0;color:#95695f}
.occurrence-delete:hover,[data-theme="dark"] .occurrence-delete:hover{background:transparent;color:#d36c5d}

/* Keep horizontal scrolling available without a permanent scrollbar. */
.week-grid{overflow-x:auto;scrollbar-width:none}
.week-grid::-webkit-scrollbar{height:0}
@media(hover:hover){.week-grid:hover,.week-grid:focus-within{scrollbar-width:thin;scrollbar-color:#9ba39f transparent}.week-grid:hover::-webkit-scrollbar,.week-grid:focus-within::-webkit-scrollbar{height:6px}.week-grid::-webkit-scrollbar-track{background:transparent}.week-grid::-webkit-scrollbar-thumb{background:#9ba39f;border-radius:3px}[data-theme="dark"] .week-grid:hover,[data-theme="dark"] .week-grid:focus-within{scrollbar-color:#69717e transparent}[data-theme="dark"] .week-grid::-webkit-scrollbar-thumb{background:#69717e}}

/* A fractionally rounded grid must not create horizontal overflow. */
.week-grid{grid-template-columns:repeat(7,minmax(220px,1fr));overflow-x:auto;overflow-y:hidden;min-width:0;width:100%;max-width:100%}
.week-grid .day{min-width:0}.week-grid .event-wrap{min-width:0}
.week-grid:not(.has-horizontal-overflow),.week-grid:not(.has-horizontal-overflow):hover,.week-grid:not(.has-horizontal-overflow):focus-within{scrollbar-width:none}
.week-grid:not(.has-horizontal-overflow)::-webkit-scrollbar{height:0!important}

.week-grid.grid-fits{grid-template-columns:repeat(7,minmax(0,1fr));overflow-x:hidden}
.week-grid.grid-fits:hover,.week-grid.grid-fits:focus-within{scrollbar-width:none}
.week-grid.grid-fits::-webkit-scrollbar{display:none!important;height:0!important}

.file-transfer-progress.transfer-inline{position:static;inset:auto;z-index:auto;width:100%;max-width:none;margin:0 0 20px;padding:16px 18px;border:1px solid var(--line);background:#f5f7f8;border-radius:5px;gap:10px}
.file-transfer-progress.transfer-inline .transfer-name{font-size:14px}.file-transfer-progress.transfer-inline .transfer-message{font-size:14px}.file-transfer-progress.transfer-inline progress{height:10px}
[data-theme="dark"] .file-transfer-progress.transfer-inline{background:#2c3038;color:#eceef2;border-color:#515967}

.transfer-track{position:relative;width:100%;height:6px;overflow:hidden;border:0;border-radius:3px;background:#e0e5e9}
.transfer-fill{display:block;width:0;height:100%;border-radius:inherit;background:#637e9a;transition:width .45s ease-out}
.transfer-track.indeterminate .transfer-fill{position:absolute;width:28%!important;left:0;animation:transfer-slide 1.7s ease-in-out infinite;will-change:transform}
@keyframes transfer-slide{0%{transform:translateX(-110%)}100%{transform:translateX(460%)}}
[data-theme="dark"] .transfer-track{background:#414853}[data-theme="dark"] .transfer-fill{background:#9eafc7}
@media(prefers-reduced-motion:reduce){.transfer-fill{transition:none}.transfer-track.indeterminate .transfer-fill{animation:none;left:36%;opacity:.7}}

.grid-search-bar{flex-wrap:wrap}.grid-search-bar .grid-view-filter{width:auto;flex-shrink:1;min-width:0}.grid-filter-buttons{display:flex;flex-wrap:wrap;gap:7px}
.grid-filter-buttons button{padding:9px 12px;min-height:40px;border:1px solid #ccd1d8;background:#f2f3f5;color:#4c535e;border-radius:5px;font-size:12px;font-weight:500}
.grid-filter-buttons [data-grid-filter="programmed"]{background:#eaf4e7;color:#365e35;border-color:#b4cbae}
.grid-filter-buttons [data-grid-filter="pending"]{background:#fff3da;color:#765918;border-color:#dbc99c}
.grid-filter-buttons [data-grid-filter="direct"]{background:#eeeafa;color:#62528b;border-color:#c6bbdf}
.grid-filter-buttons [data-grid-filter="past"]{background:#fbe9e7;color:#955247;border-color:#deb8b2}
.grid-filter-buttons button[aria-pressed="true"]{border-color:currentColor;box-shadow:inset 0 -2px currentColor;font-weight:650}
.grid-filter-buttons button:hover{filter:brightness(.96)}
[data-theme="dark"] .grid-filter-buttons button{background:#30343c;color:#e1e5ed;border-color:#565e6c}
[data-theme="dark"] .grid-filter-buttons [data-grid-filter="programmed"]{background:#293c2f;color:#c0d9c0;border-color:#526f56}
[data-theme="dark"] .grid-filter-buttons [data-grid-filter="pending"]{background:#3b3427;color:#e5d7b7;border-color:#85724b}
[data-theme="dark"] .grid-filter-buttons [data-grid-filter="direct"]{background:#393147;color:#d5c9eb;border-color:#79658e}
[data-theme="dark"] .grid-filter-buttons [data-grid-filter="past"]{background:#432f30;color:#e8c3bd;border-color:#8d625d}
[data-theme="dark"] .grid-filter-buttons button[aria-pressed="true"]{border-color:currentColor}

.grid-filter-buttons button[aria-pressed="true"],[data-theme="dark"] .grid-filter-buttons button[aria-pressed="true"]{box-shadow:none;border-color:currentColor;font-weight:600}

/* Mois : sélection par un trait, sans fond plein. */
.month-picker button,[data-theme="dark"] .month-picker button{position:relative;border:0;border-bottom:3px solid transparent;border-radius:0;background:transparent;color:var(--muted);box-shadow:none}
.month-picker button:hover,[data-theme="dark"] .month-picker button:hover{background:transparent;border-color:var(--line);color:var(--ink)}
.month-picker button[aria-pressed="true"],.month-picker button[aria-pressed="true"]:hover,[data-theme="dark"] .month-picker button[aria-pressed="true"]{background:transparent;border-color:#718965;color:var(--ink);font-weight:600;box-shadow:none}
[data-theme="dark"] .month-picker button[aria-pressed="true"]{border-color:#9cac98}

/* Actions rapides des émissions */
.show-tile-wrapper{position:relative;min-width:0}
.show-tile-wrapper>.show-tile{height:100%;box-sizing:border-box;padding-bottom:48px}
.show-quick-actions{position:relative;display:inline-block;text-align:left}
.show-tile-wrapper>.show-quick-actions{position:absolute;right:10px;bottom:10px;z-index:3}
.show-quick-actions>summary{display:flex;align-items:center;justify-content:center;list-style:none;cursor:pointer;width:28px;height:28px;font-size:21px;background:transparent;color:var(--muted,#788477);border:0;border-radius:4px}
.show-quick-actions>summary:hover,.show-quick-actions>summary:focus-visible{background:var(--line,#e9eee7);color:var(--ink,#2d3830)}
.show-quick-actions>summary:focus-visible{outline:2px solid var(--muted,#788477);outline-offset:2px}
.show-tile-wrapper>.show-quick-actions[open]{z-index:21}
.show-tile-wrapper>.show-quick-actions>.show-quick-menu{top:auto;bottom:32px}
.show-quick-actions>summary::-webkit-details-marker{display:none}
.show-quick-menu{position:absolute;right:0;top:42px;min-width:195px;padding:6px;background:var(--panel,#fff);border:1px solid var(--line,#cbd5d9);border-radius:8px;box-shadow:0 6px 20px #0002;z-index:20}
#content .show-quick-menu button{display:block;width:100%;text-align:left;padding:10px;border:0;background:transparent;color:var(--ink,#2d3830);cursor:pointer}
#content .show-quick-menu button:hover,#content .show-quick-menu button:focus-visible{background:var(--quick-menu-hover)}
#content .show-quick-menu button.danger{color:var(--quick-menu-danger)}
:root{--quick-menu-hover:#f1f2f3;--quick-menu-danger:#a72e25}
html[data-theme="dark"]{--quick-menu-hover:#34373e;--quick-menu-danger:#f2a59b}

.show-delete-action{flex-wrap:wrap;gap:8px}
.show-delete-action .show-editor-action{display:inline-flex;align-items:center;justify-content:flex-start;gap:8px;width:auto;min-height:36px;padding:8px 10px;background:transparent;border:0;border-radius:4px;color:var(--muted,#788477);font:inherit;cursor:pointer}
.show-editor-action svg{width:16px;height:16px;flex-shrink:0}
.show-delete-action .show-editor-action:hover,.show-delete-action .show-editor-action:focus-visible{background:var(--line,#e9eee7);color:var(--ink,#2d3830)}
.show-delete-action .show-editor-delete:hover,.show-delete-action .show-editor-delete:focus-visible{background:#faf0ed;color:#a35b4d}
.show-delete-action .show-editor-action:disabled{opacity:.5;cursor:wait}

/* La carte et ses actions partagent une seule animation. */
.show-tile-wrapper{transition:transform .18s ease}
.show-tile-wrapper>.show-tile,.show-tile-wrapper>.show-tile:hover{transform:none}
.show-tile-wrapper:hover>.show-tile{background:var(--panel,#fff);border-color:var(--line,#dfe3df)}
@media(hover:hover) and (pointer:fine){.show-tile-wrapper:hover{transform:scale(1.025)}}
@media(prefers-reduced-motion:reduce){.show-tile-wrapper{transition:none}.show-tile-wrapper:hover{transform:none}}
#closeModal{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;line-height:1;background:transparent}
#closeModal svg{display:block;flex-shrink:0}
#closeModal:hover,#closeModal:focus-visible{background:transparent;color:var(--ink,#2d3830)}
.show-quick-actions>summary:hover,.show-quick-actions>summary:focus-visible{background:transparent;color:var(--ink,#2d3830)}

/* Authentification et espaces de comptes : dimensions communes aux thèmes. */
.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px}
.auth-card{width:min(420px,100%);padding:32px}
.auth-card h1{margin-top:0}.auth-card .field input{width:100%}
.account-page{max-width:1050px;margin:0 auto;padding:32px 24px}
.account-page>.panel{margin-top:24px;padding:24px}
.account-row,.portal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.account-row{padding:12px 0;border-bottom:1px solid var(--line,#ddd)}
.account-row span{color:var(--muted,#687365)}
.account-link{display:block;margin:12px 0;color:inherit;text-decoration:underline}
.sidebar-bottom form{margin:12px 0}.account-page fieldset{border:1px solid var(--line,#ddd);padding:16px}
.portal-episode{padding:24px}.portal-episode input[type=file]{max-width:100%}
#portalShows{margin:24px 0}#portalEpisodes{margin-top:24px}

/* Le nom de station ne se comprime pas lorsque la navigation grandit. */
.sidebar .station-name{flex-shrink:0;min-height:44px;line-height:1.4;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.sidebar .brand,.sidebar nav,.sidebar-bottom{flex-shrink:0}
@media(min-width:761px){.sidebar{overflow-y:auto;overflow-x:hidden}}
.sidebar-bottom .account-logout{margin:12px 0 8px}
.sidebar-bottom .logout-link{display:inline-block;padding:5px 0;min-height:28px;border:0;background:transparent;color:var(--muted,#788477);font-size:12px;font-weight:400;line-height:1.5;text-align:left;box-shadow:none}
.sidebar-bottom .logout-link:hover,.sidebar-bottom .logout-link:focus-visible{background:transparent;color:var(--ink,#2d3830);text-decoration:underline}
.sidebar-bottom .logout-link:focus-visible{outline:2px solid currentColor;outline-offset:3px}

.sidebar nav .nav-administration{display:grid;gap:inherit;margin-top:18px;padding-top:12px;border-top:1px solid var(--line,#e2e8df)}
.sidebar nav .nav-administration .nav-settings{margin-top:0;border-top:0;padding-top:13px}
@media(max-width:760px){.sidebar nav .nav-administration{margin-top:0;padding-top:8px}}

/* Utilisateurs : liste administrative et édition séparée. */
.users-main{min-width:0;padding:40px 38px 60px}
.users-breadcrumb{font-size:12px;color:var(--muted,#74806f);margin-bottom:8px}
.users-breadcrumb a{color:inherit;text-decoration:none}.users-breadcrumb a:hover{text-decoration:underline}
.users-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:32px}
.users-heading h1{margin:0;font-size:28px;line-height:1.3;color:var(--ink,#27382a)}
.users-heading h1 span{font-weight:400}.users-heading p{margin:8px 0 0;color:var(--muted,#74806f);font-size:13px}
.users-create{display:inline-flex;align-items:center;gap:7px;padding:11px 16px;text-decoration:none;white-space:nowrap}
.users-table-panel{border:1px solid var(--line,#dde4d8);border-radius:6px;background:var(--panel,#fff)}
.users-table-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:18px}
.users-table-toolbar .field{width:min(340px,100%);margin:0}.users-table-toolbar input{width:100%}
.users-table-toolbar small{padding-bottom:10px;white-space:nowrap;color:var(--muted,#74806f)}
.users-table-scroll{overflow-x:auto}.users-table{border-collapse:collapse;width:100%;font-size:14px}
.users-table th{padding:12px 18px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;text-align:left;color:var(--muted,#74806f);border-top:1px solid var(--line,#dde4d8)}
.users-table td{padding:18px;border-top:1px solid var(--line,#dde4d8);vertical-align:middle;color:var(--ink,#2d3830)}
.users-identity{display:flex;align-items:center;gap:12px;min-width:150px}.users-identity strong{display:block;font-weight:600;overflow-wrap:anywhere}.users-identity small{display:block;color:var(--muted,#74806f);font-size:12px;margin-top:4px}
.users-avatar{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;border-radius:50%;background:var(--line,#e9eee5);color:var(--ink,#2d3830);font-size:13px}
.users-role{display:flex;align-items:center;gap:12px;white-space:nowrap}.users-edit-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;color:var(--muted,#74806f);background:transparent}.users-edit-icon:hover,.users-edit-icon:focus-visible{background:var(--line,#edf0eb);color:var(--ink,#2d3830)}
.users-table .users-shows{font-size:13px;min-width:180px;max-width:320px;line-height:1.6;color:var(--muted,#74806f)}
.users-status{display:inline-block;padding:4px 9px;border-radius:4px;font-size:12px;white-space:nowrap}.users-status.is-active{background:var(--status-ok-bg,#edf5e8);color:var(--status-ok-ink,#46633b)}.users-status.is-disabled{background:var(--line,#eceeea);color:var(--muted,#74806f)}
.users-table .users-actions-column{text-align:center;width:82px}.users-row-menu>summary{display:inline-flex;align-items:center;justify-content:center;list-style:none;width:30px;height:30px;cursor:pointer;font-size:21px;color:var(--muted,#74806f)}.users-row-menu>summary::-webkit-details-marker{display:none}
.users-row-menu>div{position:fixed;z-index:100;min-width:220px;max-width:calc(100vw - 24px);padding:6px;border:1px solid var(--line,#dde4d8);border-radius:6px;background:var(--panel,#fff);box-shadow:0 6px 24px #0002}
.users-row-menu a{display:block;padding:10px;color:var(--ink,#2d3830);text-align:left;font-size:13px;text-decoration:none}.users-row-menu a:hover,.users-row-menu a:focus-visible{background:var(--line,#edf0eb)}
.users-editor{max-width:850px;padding:26px;margin-top:28px;scroll-margin-top:24px}.users-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.users-editor-heading h2{margin:0}.users-cancel{color:var(--muted,#74806f);font-size:13px}
.users-editor fieldset{border:1px solid var(--line,#dde4d8);padding:18px;scroll-margin-top:24px}.users-editor fieldset p{font-size:13px;line-height:1.6;color:var(--muted,#74806f)}.users-show-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;font-size:13px}
.users-form-actions{display:flex;align-items:center;justify-content:flex-end;gap:20px;margin-top:12px}.users-feedback{color:var(--ink,#2d3830);padding:12px 0}
@media(max-width:760px){.users-main{padding:24px 16px 40px}.users-heading{gap:18px;margin-bottom:24px}.users-heading h1{font-size:24px}.users-table-toolbar{padding:14px;flex-wrap:wrap}.users-table td{padding:14px}.users-editor{padding:18px}.users-show-choices{grid-template-columns:1fr}}

/* Catégories repliables : les pages restent des liens directs. */
.sidebar nav .nav-group{display:block;min-width:0;margin-top:6px}
.sidebar nav .nav-group>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;list-style:none;cursor:pointer;padding:12px 10px;color:var(--ink);font-size:13px;font-weight:650;border-radius:4px}
.sidebar nav .nav-group>summary::-webkit-details-marker{display:none}
.sidebar nav .nav-group>summary::after{content:'›';font-size:20px;line-height:1;transform:rotate(0deg)}
.sidebar nav .nav-group[open]>summary::after{transform:rotate(90deg)}
.sidebar nav .nav-group>summary:hover{background:var(--panel)}
.sidebar nav .nav-group a,.sidebar nav .nav-group .nav-child,.sidebar nav .nav-group .nav-child.active{margin:3px 0;padding:10px 10px 10px 18px;font-size:14px;line-height:1.4}
.sidebar nav .nav-group.nav-administration{margin-top:16px;padding-top:10px}
.sidebar nav .nav-group .nav-settings{border:0}
.sidebar nav .nav-group>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(min-width:761px){.nav-collapsed .sidebar nav .nav-group>summary{display:none}.nav-collapsed .sidebar nav .nav-group>a{display:flex!important;justify-content:center;padding:12px 4px}.nav-collapsed .sidebar nav .nav-group{border-top:1px solid var(--line);padding-top:8px}.nav-collapsed .sidebar nav .nav-group::details-content{content-visibility:visible;display:block}}
@media(max-width:760px){.sidebar nav{display:flex;flex-direction:column;gap:4px;overflow:visible}.sidebar nav .nav-group{width:100%}.sidebar nav .nav-group.nav-administration{margin-top:6px}.sidebar nav .nav-group>summary{padding:10px}.sidebar nav .nav-group a{white-space:normal}}

.users-row-menu form{margin:0}
.users-row-menu .users-delete{display:block;width:100%;padding:10px;text-align:left;border:0;background:transparent;color:var(--quick-menu-danger,#b42318);font:inherit;border-radius:4px;cursor:pointer}
.users-row-menu .users-delete:hover,.users-row-menu .users-delete:focus-visible{background:var(--quick-menu-hover,#f2f4f2)}

.sidebar-bottom .logout-link .logout-icon{display:none;flex-shrink:0}
@media(min-width:761px){.nav-collapsed .sidebar-bottom .logout-link{display:flex;align-items:center;justify-content:center;width:100%;min-height:36px;padding:6px}.nav-collapsed .sidebar-bottom .logout-link .logout-icon{display:block}.nav-collapsed .sidebar-bottom .logout-link>span{display:none}}

/* Assistant de première installation. */
.setup-page{background:var(--bg,#f4f6f3);color:var(--ink)}
.setup-main{max-width:1000px;margin:0 auto;padding:44px 24px 64px}
.setup-heading{margin-bottom:26px}.setup-brand{color:var(--muted);font-size:13px;font-weight:650}.setup-heading h1{font-size:32px;margin:12px 0}.setup-heading p{color:var(--muted);line-height:1.6}
.setup-main>.panel,.setup-main>form>.panel{margin-bottom:20px}.setup-main .panel h2{font-size:20px;margin:0 0 18px}.setup-main .panel p{line-height:1.6}.setup-main .form-grid{margin-top:14px}
.setup-steps{display:flex;gap:12px;list-style:none;padding:0;margin:0 0 24px;flex-wrap:wrap}.setup-steps li{padding:10px 14px;border:1px solid var(--line);border-radius:5px;color:var(--muted)}.setup-steps .current{color:var(--ink);border-color:var(--accent)}
.setup-prerequisites{padding-left:22px;line-height:1.7}.setup-prerequisites li+li{margin-top:16px}.setup-main code{overflow-wrap:anywhere}.setup-command{white-space:pre-wrap;overflow-wrap:anywhere;padding:14px;border:1px solid var(--line);background:var(--panel);border-radius:5px;line-height:1.6;user-select:all}
.setup-checks{list-style:none;padding:0;margin:0}.setup-checks li{display:flex;align-items:flex-start;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}.setup-checks li:last-child{border-bottom:0}.setup-checks li>div{display:grid;gap:5px}.setup-checks small{color:var(--muted);line-height:1.5}.setup-check{flex:0 0 88px;font-size:12px;padding:4px 7px;border-radius:4px;text-align:center}.setup-check.ok{background:var(--status-ok-bg,#eaf4e7);color:var(--status-ok-ink,#335a32)}.setup-check.bad{background:var(--panel);color:var(--ink);border:1px solid var(--line)}.setup-submit{text-align:right}.setup-main a.primary,.setup-main a.secondary{text-decoration:none;display:inline-flex}
@media(max-width:760px){.setup-main{padding:24px 14px 40px}.setup-heading h1{font-size:26px}.setup-checks li{gap:10px}.setup-check{flex-basis:75px}.setup-submit .primary{width:100%}}

.setup-token-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0}.setup-resume{margin:0 0 20px}
