.schedule-page{width:min(100%,var(--max-width));margin:0 auto;padding:clamp(1.25rem,3vw,2rem) clamp(1rem,3vw,2rem) 4rem;color:var(--text-color)}.schedule-toolbar,.schedule-panel,.view-panel{border:2px solid var(--border-color);border-radius:var(--border-corners);background:var(--bg-card);box-shadow:3px 4px 0 var(--shadow-color)}.schedule-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:clamp(1rem,3vw,1.5rem)}.schedule-kicker{display:block;margin-bottom:.35rem;color:var(--purple-primary);font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.schedule-intro h2,.panel-heading h3,.dialog-heading h3{margin:0;font-size:clamp(1.3rem,3vw,1.8rem)}.schedule-intro p{margin:.4rem 0 0;color:var(--text-muted)}.schedule-clock{display:flex;align-items:center;gap:.7rem;color:var(--text-muted)}.schedule-clock strong{color:var(--text-color);font-size:1.3rem}.schedule-picker select{min-width:9rem;padding:.55rem .7rem;border:2px solid var(--border-color);border-radius:var(--border-corners);background:var(--bg-card);color:var(--text-color);font:inherit;font-weight:700}.schedule-period-picker select{min-width:18rem}.schedule-picker select:focus-visible{outline:3px solid var(--purple-primary);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.schedule-tabs{display:flex;flex-wrap:wrap;gap:.85rem;margin:1.25rem 0}.tab-button{flex:1 1 12rem;min-height:3.25rem;padding:.75rem 1.1rem;font-size:1rem}.tab-button.is-active,.filter-button.is-active{background:var(--purple-primary);border-color:var(--purple-primary);color:#fff}.search-panel{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.15rem;margin-bottom:1.25rem}.search-field{display:flex;align-items:center;gap:.5rem;flex:1;color:var(--text-muted)}.search-field input{width:100%;min-height:2.4rem;border:0;outline:0;background:transparent;color:var(--text-color);font-size:1rem}.transfer-panel{padding:clamp(1.1rem,3vw,1.5rem)}.transfer-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.8rem}.transfer-heading h3{margin:0;font-size:1.15rem}.transfer-status{margin:0;color:var(--text-muted);font-size:.85rem;text-align:right}.transfer-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem}.transfer-controls .inline-control{flex:1 1 15rem}.transfer-controls .btn{min-height:2.6rem;padding:.5rem .75rem;font-size:.95rem}.file-button{position:relative;overflow:hidden}.file-button input{position:absolute;inset:0;width:100%;height:100%;cursor:pointer;opacity:0}.status-badge{border:1px solid var(--border-color);border-radius:var(--border-corners);padding:.25rem .55rem;font-size:.78rem;font-weight:700}.status-badge.class,.status-badge.available{color:var(--green-base)}.status-badge.free{color:var(--text-muted)}.status-badge.busy{color:var(--red-base)}.view-panel{padding:clamp(1.2rem,3vw,1.75rem)}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem}.filter-row{display:flex;flex-wrap:wrap;gap:.4rem}.filter-button,.icon-button{padding:.45rem .7rem}.inline-control{display:flex;align-items:center;gap:.5rem;color:var(--text-muted);font-size:.9rem}.inline-control select,.dialog-card select,.dialog-card input{min-height:2.8rem;padding:.55rem .75rem;font-size:.95rem}.data-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.data-card{border:2px solid var(--border-color);border-radius:var(--border-corners);padding:1rem;background:var(--bg-card);transition:transform .2s ease,border-color .2s ease}.data-card:hover{border-color:var(--purple-primary);transform:translateY(-2px)}.card-topline,.card-meta,.location-line{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start}.card-topline>div,.card-meta>span{min-width:0}.data-card h4{margin:0 0 .25rem;font-size:1.05rem}.data-card span{color:var(--text-muted);font-size:.88rem}.location-line{margin:1rem 0 .7rem;padding:.6rem;border:1px solid var(--border-color);border-radius:var(--border-corners);color:var(--text-muted);font-size:.85rem}.location-line span,.location-line strong{display:block}.location-line strong,.card-meta strong{color:var(--text-color)}.card-meta{font-size:.85rem}.room-content{display:flex;flex-direction:column;gap:.3rem;min-height:3.3rem;margin-top:1rem}.period-dots{display:flex;gap:.3rem;margin-top:1rem;padding-top:.7rem;border-top:1px solid var(--border-color)}.period-dot{display:grid;place-items:center;width:1.55rem;height:1.55rem;border:1px solid var(--border-color);border-radius:50%;color:var(--text-muted);font-size:.75rem}.period-dot.busy{background:color-mix(in srgb,var(--red-base) 18%,var(--bg-card));color:var(--red-base)}.schedule-table-wrap{overflow-x:auto;border:1px solid var(--border-color);border-radius:var(--border-corners)}.table-caption{display:flex;justify-content:space-between;gap:1rem;padding:1rem 1.2rem;border-bottom:1px solid var(--border-color);color:var(--text-muted)}.table-caption strong{color:var(--text-color)}table{width:100%;min-width:650px;border-collapse:collapse;font-size:.88rem}th,td{min-height:5.25rem;padding:.9rem;border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);text-align:left;vertical-align:top}thead th{background:var(--bg-card-hover);color:var(--text-color)}th.current-period,th.current-slot,td.current-slot{background:color-mix(in srgb,var(--purple-primary) 14%,var(--bg-card));box-shadow:inset 0 0 0 2px var(--purple-primary)}thead th.current-slot{color:var(--purple-primary)}.calendar-entry{display:grid;gap:.25rem;padding:.6rem;margin-bottom:.45rem;border-left:3px solid var(--purple-primary);background:var(--bg-card-hover);border-radius:0 var(--border-corners) var(--border-corners) 0}.calendar-entry:last-child{margin-bottom:0}.calendar-entry strong{color:var(--text-color)}.calendar-entry span,.calendar-entry small{color:var(--text-muted);font-size:.78rem}.schedule-target-label{margin-bottom:1rem}tbody th{color:var(--text-muted);white-space:nowrap}th small,td span,td strong{display:block}th small,td span{margin-top:.25rem;color:var(--text-muted);font-size:.78rem}.muted-cell{text-align:center;color:var(--text-muted)}.empty-state{margin:1rem 0;padding:2rem;border:2px dashed var(--border-color);border-radius:var(--border-corners);color:var(--text-muted);text-align:center}.is-hidden{display:none!important}@media(max-width:700px){.schedule-page{padding:1rem .85rem 3rem}.schedule-toolbar,.search-panel,.panel-heading,.transfer-heading{align-items:stretch;flex-direction:column}.schedule-toolbar{padding:1.15rem}.schedule-clock{align-items:stretch;flex-direction:column}.schedule-picker,.schedule-picker select{width:100%}.schedule-tabs{gap:.65rem}.tab-button{flex-basis:100%;min-height:3.5rem;font-size:1.05rem}.inline-control{justify-content:space-between}.inline-control select{flex:1}.transfer-status{text-align:left}.transfer-controls>.btn,.transfer-controls .file-button{width:100%;min-height:3.25rem}.table-caption{align-items:flex-start;flex-direction:column;padding:.95rem}table{min-width:720px}th,td{min-height:5.75rem;padding:.85rem}.calendar-entry{padding:.65rem}}@media print{.schedule-tabs,.search-panel,.schedule-toolbar,.transfer-panel,.no-print{display:none!important}.schedule-page{width:100%;padding:0}.view-panel{border:0;box-shadow:none}}
