@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;0,6..72,600;1,6..72,400&display=swap";:root{--bg-primary:#faf8f6;--bg-secondary:#fff;--bg-tertiary:#f3efea;--bg-card:#fff;--bg-card-hover:#f6f3ee;--text-primary:#1f1e1b;--text-secondary:#6b6862;--text-muted:#99958f;--border-color:#e6e2dd;--border-hover:#d5cfb6;--accent-color:#cc785c;--accent-light:#cc785c14;--accent-border:#cc785c40;--skeleton-bg:#eae6e1;--skeleton-shimmer:#f5f2ec;--shadow-sm:0 1px 2px #00000008;--shadow-md:0 4px 16px #0000000a;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--font-serif:"Newsreader", Georgia, serif;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}[data-theme=dark]{--bg-primary:#141413;--bg-secondary:#1b1b19;--bg-tertiary:#242421;--bg-card:#1b1b19;--bg-card-hover:#242421;--text-primary:#f4f3ef;--text-secondary:#a3a099;--text-muted:#706e67;--border-color:#2b2b27;--border-hover:#3d3d38;--accent-color:#d97757;--accent-light:#d977571f;--accent-border:#d977574d;--skeleton-bg:#262623;--skeleton-shimmer:#33332e;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 16px #0006}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;transition:background-color .25s,color .25s;overflow-x:hidden}.serif-title{font-family:var(--font-serif);letter-spacing:-.01em;font-weight:500}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.clean-panel{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:border-color .2s,box-shadow .2s}.view-transition-enter{animation:.35s cubic-bezier(.16,1,.3,1) forwards fadeInUp}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.timetable-container{width:100%;overflow-x:auto}.timetable-table{border-collapse:separate;border-spacing:4px;width:100%;min-width:1000px}.timetable-table th{background:var(--bg-tertiary);color:var(--text-primary);text-align:center;border-radius:var(--radius-sm);border:1px solid var(--border-color);padding:10px 12px;font-size:.85rem;font-weight:700;transition:all .2s}.timetable-table td{vertical-align:top;padding:0}.time-column{background:var(--bg-tertiary);border-radius:var(--radius-sm);text-align:center;border:1px solid var(--border-color);width:105px;min-width:105px;color:var(--text-secondary);font-size:.8rem;font-weight:600;transition:all .2s;display:table-cell;vertical-align:middle!important;padding:10px 6px!important}.time-column .period-num{color:var(--accent-color);margin-top:2px;font-size:.7rem;font-weight:700}.break-row-cell{background:var(--bg-tertiary);border:1px dashed var(--border-color);border-radius:var(--radius-sm);text-align:center;color:var(--text-secondary);padding:8px;font-size:.85rem;font-weight:600}.slot-card{border-radius:var(--radius-sm);background:var(--bg-card);border:1px solid var(--border-color);cursor:pointer;will-change:transform;flex-direction:column;justify-content:space-between;height:100%;min-height:80px;padding:8px 10px;transition:border-color .2s cubic-bezier(.16,1,.3,1),background-color .2s cubic-bezier(.16,1,.3,1),transform .2s cubic-bezier(.16,1,.3,1),box-shadow .2s cubic-bezier(.16,1,.3,1);display:flex}.slot-card:hover{border-color:var(--accent-color);background-color:var(--bg-card-hover);transform:translateY(-2px);box-shadow:0 4px 12px #0000000d}.slot-card.active-now{box-shadow:0 0 0 1.5px var(--accent-color);animation:3s ease-in-out infinite cardPulse;border-color:var(--accent-color)!important;background-color:var(--accent-light)!important}@keyframes cardPulse{0%,to{box-shadow:0 0 0 1.5px var(--accent-color)}50%{box-shadow:0 0 0 3px var(--accent-color), 0 0 12px var(--accent-light)}}.subject-code{letter-spacing:-.01em;color:var(--text-primary);align-items:center;gap:4px;font-size:.9rem;font-weight:700;display:flex}.room-badge{background:var(--bg-tertiary);color:var(--text-secondary);white-space:nowrap;border-radius:4px;padding:1px 5px;font-size:.75rem;font-weight:600}.teacher-badge{color:var(--text-secondary);font-size:.75rem;font-weight:500}.elective-tag{background:var(--accent-light);color:var(--accent-color);border:1px solid var(--accent-border);border-radius:3px;padding:1px 5px;font-size:.65rem;font-weight:700}.timeline-swipe-bar{background:var(--accent-color);z-index:30;pointer-events:none;align-items:center;height:2px;transition:top .35s cubic-bezier(.34,1.25,.64,1);display:flex;position:absolute;left:12px;right:12px}.timeline-swipe-badge{background:var(--accent-color);color:#fff;white-space:nowrap;border-radius:10px;align-items:center;gap:4px;padding:2px 8px;font-size:.7rem;font-weight:700;display:flex;position:absolute;top:50%;left:-2px;transform:translateY(-50%);box-shadow:0 2px 8px #0000002e}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#00000073;justify-content:center;align-items:center;padding:16px;animation:.2s forwards fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);width:100%;max-width:520px;box-shadow:var(--shadow-md);animation:.28s cubic-bezier(.16,1,.3,1) forwards modalSpring;overflow:hidden}@keyframes modalSpring{0%{opacity:0;transform:scale(.94)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.skeleton-box{background-color:var(--skeleton-bg);border-radius:var(--radius-sm);position:relative;overflow:hidden}.skeleton-box:after{content:"";background:linear-gradient(90deg, transparent 0%, var(--skeleton-shimmer) 50%, transparent 100%);animation:1.5s ease-in-out infinite skeletonShimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes skeletonShimmer{to{transform:translate(100%)}}@media print{body{color:#000!important;background:#fff!important}.no-print{display:none!important}.clean-panel{box-shadow:none!important;background:#fff!important;border:1px solid #ccc!important}.timetable-table th,.timetable-table td,.time-column{color:#000!important;background:#fff!important;border:1px solid #ddd!important}.slot-card{color:#000!important;background:#fff!important;border:1px solid #999!important}}
