.planning-toolbar-actions { flex-wrap: wrap; }
.slot-toolbar { display: inline-flex; align-items: center; flex: 0 0 auto; }
.slot-toggle { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 7px 11px; border: 1px solid #c7dfce; border-radius: 7px; background: #e7f2e9; color: #27613d; font-size: 13px; line-height: 18px; font-weight: 600; white-space: nowrap; }
.slot-toggle:hover { background: #dbece0; }
.slot-toggle-dot { width: 6px; height: 6px; flex: 0 0 auto; border-radius: 50%; background: #32754a; }
.slot-toggle-arrow { font-size: 12px; }
.slot-popover { position: fixed; z-index: 100; box-sizing: border-box; max-width: calc(100vw - 24px); overflow-y: auto; overscroll-behavior: contain; padding: 14px; border: 1px solid #d5e2d8; border-radius: 10px; background: #fff; color: #263c3a; box-shadow: 0 8px 24px #263c3a26; }
.slot-panel-heading { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 10px; }
.slot-panel-heading h2 { margin: 0; font-size: 14px; color: #27613d; }
.slot-panel-close { display: flex; justify-content: center; align-items: center; flex: 0 0 auto; min-height: 32px; width: 32px; padding: 0; border: 0; background: transparent; color: #27613d; font-size: 23px; line-height: 1; }
.slot-popover .muted { font-size: 12px; }
.slot-offers { display: flex; flex-direction: column; gap: 10px; }
.slot-offer { padding: 12px; background: #f5f8f5; border-radius: 8px; overflow-wrap: anywhere; }
.slot-offer strong { display: block; font-size: 14px; font-weight: 600; }
.slot-offer-course { margin-top: 5px; font-size: 13px; }
.slot-offer .actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }
.slot-offer .actions button { font-size: 13px; line-height: 18px; min-height: 34px; padding: 7px 10px; }
.slot-offer .slot-action { background: #32754a; border-color: #32754a; color: #fff; }
.slot-offer .slot-action:hover { background: #27613d; }
.slot-badge { color: #614600; display: block; }
.slot-action { font-weight: 600; }
.event > .slot-action { align-self: center; }
.available { border-left-color: #bd8d2c !important; }
.month-session .slot-action { font-size: .7rem; padding: .25rem .4rem; max-width: 100%; }
.slot-confirmation p { line-height: 1.5; }
@media (max-width: 600px) { .event { flex-wrap: wrap; } .planning-toolbar-actions { gap: 8px; } }
@media (pointer: coarse) { .slot-toggle, .slot-offer .actions button, .slot-panel-close { min-height: 44px; } .slot-panel-close { width: 44px; } }
@media print { .slot-toolbar, .slot-panel, .slot-action, .slot-confirmation { display: none !important; } .available { print-color-adjust: exact; } }
