.planner-page { max-width: 1500px; }
.planner-page { background:linear-gradient(180deg, rgba(255,255,255,.45), rgba(245,245,245,0)); }
.planner-header { align-items: flex-end; }
.planner-header h1 { margin-bottom: .25rem; }
.planner-header p { color: #777; font-size: .92rem; }
.step-indicator { display:flex; align-items:center; gap:.55rem; color:#999; font-size:.82rem; }
.step-indicator span { padding:.35rem .65rem; border-radius:6px; background:#eee; }
.step-indicator .active { color:#fff; background:#1a1a2e; }
.planner-section { background:rgba(255,255,255,.96); border:1px solid #e5e5e5; border-radius:12px; padding:1.35rem; margin-bottom:1rem; box-shadow:0 5px 18px rgba(26,26,46,.045); }
.planner-section.collapsed > :not(.section-title-row) { display:none; }
.planner-section.collapsed > .section-title-row { margin-bottom:0; }
.section-title-row, .section-title-row > div, .subsection-head { display:flex; align-items:center; justify-content:space-between; gap:.7rem; }
.section-title-row { margin-bottom:1.1rem; }
.section-title-row h2 { font-size:1.08rem; color:#1a1a2e; }
.step-no { width:28px; height:28px; display:inline-flex; align-items:center; justify-content:center; color:#fff; background:#e94560; border-radius:6px; font-weight:700; }
.step-no.done { background:#27ae60; }
.section-note { color:#999; font-size:.8rem; }
.setup-grid { display:grid; grid-template-columns:1.4fr repeat(3, 1fr) 1.2fr; gap:1rem; }
.setup-grid > label { min-width:0; }
.setup-grid label { color:#666; font-size:.8rem; font-weight:600; }
.setup-grid select, .setup-grid input, .scene-row input, .scene-row select, .person-row input, .person-row select, .venue-row input { width:100%; margin-top:.35rem; padding:.58rem .7rem; border:1px solid #ddd; border-radius:6px; background:#fff; outline:none; }
.setup-grid select:focus, .setup-grid input:focus, .scene-row input:focus, .person-row input:focus { border-color:#e94560; }
.time-range { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:.45rem; width:100%; }
.time-range select { margin-top:.35rem; width:100%; min-width:0; }
.scene-list, .people-list, .venue-list { display:flex; flex-direction:column; gap:.55rem; }
.scene-row { display:grid; grid-template-columns:minmax(150px,1.5fr) 90px 110px minmax(220px,2fr) 36px; gap:.65rem; align-items:end; padding:.75rem; background:#f8f8fa; border-left:3px solid #e94560; }
.scene-row label, .person-row label { font-size:.72rem; color:#777; }
.role-checks { display:flex; flex-direction:column; gap:.2rem; }
.role-check { display:inline-flex; align-items:center; gap:.25rem; background:#fff; border:1px solid #ddd; padding:.28rem .45rem; border-radius:5px; font-size:.76rem; color:#555; }
.role-check input { width:auto; margin:0; }
.multi-select { position:relative; margin-top:.35rem; }
.multi-select summary { list-style:none; display:flex; align-items:center; justify-content:space-between; gap:.5rem; height:38px; padding:0 .65rem; border:1px solid #ddd; border-radius:6px; background:#fff; color:#555; font-size:.78rem; cursor:pointer; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.multi-select summary::-webkit-details-marker { display:none; }
.multi-select summary i { flex:none; transition:transform .15s; }
.multi-select[open] summary i { transform:rotate(180deg); }
.multi-options { position:absolute; top:calc(100% + 4px); left:0; right:0; z-index:15; max-height:210px; overflow:auto; padding:.4rem; background:#fff; border:1px solid #ddd; border-radius:6px; box-shadow:0 8px 24px rgba(0,0,0,.12); }
.icon-btn { width:34px; height:34px; display:inline-flex; align-items:center; justify-content:center; border-radius:6px; color:#999; }
.icon-btn:hover { color:#e74c3c; background:#fee; }
.subsection-head { margin:1.4rem 0 .75rem; }
.subsection-head h3 { font-size:.95rem; }
.subsection-heading { display:flex; align-items:baseline; gap:.55rem; }
.people-list.collapsed { display:none; }
.people-toggle { color:#666; }
.inline-actions { display:flex; gap:.45rem; }
.person-row { display:grid; grid-template-columns:1.2fr 150px minmax(240px,2fr) auto; gap:.65rem; align-items:end; padding:.75rem; border:1px solid #eee; }
.person-row.editing { border-color:#e94560; background:#fff8f9; box-shadow:0 0 0 1px #e94560; }
.person-actions { display:flex; align-items:center; gap:.35rem; min-height:38px; }
.person-role-wrap[hidden] { display:none; }
.availability-tabs { display:flex; flex-wrap:wrap; gap:.45rem; margin-bottom:.75rem; }
.availability-tab { border:1px solid #ddd; padding:.45rem .75rem; border-radius:6px; color:#555; background:#fff; }
.availability-tab.active { border-color:#e94560; color:#e94560; background:#fff4f6; font-weight:600; }
.availability-hint { padding:.65rem .8rem; background:#f4f7fb; color:#52606d; font-size:.83rem; border-radius:6px; margin-bottom:.75rem; }
.availability-wrap { overflow:auto; border:1px solid #e6e6e6; }
.availability-grid { display:grid; min-width:780px; user-select:none; }
.availability-grid .grid-head, .availability-grid .time-label { position:sticky; background:#fafafa; z-index:2; font-size:.75rem; color:#666; font-weight:600; }
.availability-grid .grid-head { top:0; padding:.55rem .25rem; text-align:center; border-bottom:1px solid #ddd; }
.availability-grid .time-label { left:0; padding:.38rem .55rem; border-right:1px solid #ddd; border-bottom:1px solid #eee; }
.slot-cell { min-height:30px; border-right:1px solid #eee; border-bottom:1px solid #eee; background:#fff; cursor:pointer; }
.slot-cell:hover { box-shadow:inset 0 0 0 2px #f6a5b2; }
.slot-cell.selected { background:#e94560; }
.venue-row { border:1px solid #e4e4e4; padding:.75rem; }
.venue-head { display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:.7rem; list-style:none; cursor:pointer; }
.venue-head::-webkit-details-marker { display:none; }
.venue-head strong { font-size:.92rem; }
.venue-head > i { transition:transform .15s; }
.venue-row[open] .venue-head > i { transform:rotate(180deg); }
.venue-mode { font-size:.76rem; color:#777; background:#f0f0f0; padding:.25rem .5rem; border-radius:5px; }
.venue-mini-grid { display:flex; flex-wrap:wrap; gap:.3rem; }
.venue-dates { margin-top:.75rem; }
.venue-slots { margin-top:.5rem; }
.venue-edit { display:flex; align-items:end; gap:.5rem; margin-top:.7rem; }
.venue-edit label { flex:1; font-size:.75rem; color:#777; }
.venue-date-btn { padding:.35rem .55rem; border:1px solid #ddd; border-radius:5px; font-size:.75rem; }
.venue-date-btn.active { color:#e94560; border-color:#e94560; }
.generate-bar { position:sticky; bottom:0; z-index:20; display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1rem 1.25rem; margin:1.25rem 0; background:#1a1a2e; color:#fff; border-radius:8px; box-shadow:0 8px 30px rgba(0,0,0,.2); }
.generate-bar strong, .generate-bar span { display:block; }
.generate-bar span { color:#bbb; font-size:.78rem; margin-top:.15rem; }
.schedule-day { margin-top:1rem; }
.schedule-day h3 { font-size:.95rem; padding-bottom:.45rem; border-bottom:1px solid #ddd; }
.schedule-item { display:grid; grid-template-columns:120px minmax(160px,1.3fr) 110px minmax(220px,2fr); gap:.7rem; padding:.8rem .4rem; border-bottom:1px solid #eee; align-items:center; }
.schedule-time { color:#e94560; font-weight:700; }
.schedule-scene strong, .schedule-scene span { display:block; }
.schedule-scene span, .schedule-meta { color:#777; font-size:.78rem; }
.rehearsal-kind { display:inline-flex; width:max-content; padding:.25rem .45rem; border-radius:5px; background:#e8f5e9; color:#218c45; font-size:.75rem; font-weight:600; }
.rehearsal-kind.self { background:#fff3e0; color:#b56400; }
.summary-strip { display:flex; gap:1rem; flex-wrap:wrap; padding:.8rem; background:#f7f8fa; border-radius:6px; }
.summary-strip span { color:#777; font-size:.82rem; }
.summary-strip strong { color:#222; margin-right:.25rem; }
.unscheduled-box { margin-top:1rem; padding:.85rem; background:#fff4f4; border:1px solid #ffd1d1; color:#a33; border-radius:6px; font-size:.85rem; }
.grid-legend { display:flex !important; gap:.8rem !important; font-size:.76rem; color:#777; }
.grid-legend span { display:flex; align-items:center; gap:.3rem; }
.legend-cell { width:15px; height:15px; border:1px solid #ddd; display:inline-block; }
.legend-cell.selected { background:#e94560; border-color:#e94560; }
@media(max-width:900px){.setup-grid{grid-template-columns:1fr 1fr}.scene-row{grid-template-columns:1fr 90px}.scene-row .scene-roles{grid-column:1/-1}.person-row{grid-template-columns:1fr 130px}.person-role-wrap{grid-column:1/-1}.schedule-item{grid-template-columns:90px 1fr}.planner-header{align-items:flex-start}.step-indicator{display:none}}
@media(max-width:600px){.setup-grid{grid-template-columns:minmax(0,1fr)}.planner-section{min-width:0;padding:1rem}.generate-bar{align-items:stretch;flex-direction:column}.navbar{padding:0 .65rem}.nav-logo span{display:none}.nav-links{gap:0}.nav-links a{font-size:0;padding:.45rem}.nav-links a i{font-size:1rem}.scene-row,.person-row{grid-template-columns:minmax(0,1fr)}.schedule-item{grid-template-columns:1fr}}
