/* ── TIMER OVERLAY ── */
#timer-overlay { position: fixed; bottom: 20px; right: 20px; z-index: 800; background: #1F1B16; color: #FAF6EF; border-radius: var(--r-xl); box-shadow: var(--shadow-float); font-family: var(--font-display); padding: 18px 24px; min-width: 220px; text-align: center; display: none; transition: all .3s; border: 1px solid #4D4436; animation: pop-in var(--dur-3) var(--ease-spring); }
#timer-overlay.show { display: block; }
#timer-overlay.maximized { position: fixed; inset: 0; border-radius: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: unset; bottom: unset; right: unset; z-index: 1200; background: #14110D; }
#timer-overlay.warning { border-color: #E7CF7E; background: #2A2310; }
#timer-overlay.expired { border-color: #E9A69F; background: #2E1714; animation: timerPulse 1s infinite; }
@keyframes timerPulse { 0%,100%{opacity:1} 50%{opacity:.6} }
#timer-display { font-size: 3rem; font-weight: 800; letter-spacing: -.02em; font-variant-numeric: tabular-nums; letter-spacing: 2px; line-height: 1; }
#timer-overlay.maximized #timer-display { font-size: 18vw; }
#timer-label { font-family: var(--font-ui); font-size: 11px; color: #A99F90; margin-bottom: 8px; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; }
#timer-overlay.maximized #timer-label { font-size: 2vw; }
.timer-btn-row { display: flex; gap: 8px; justify-content: center; margin-top: 12px; flex-wrap: wrap; }
#timer-overlay.maximized .timer-btn-row { margin-top: 4vh; gap: 16px; }
.timer-btn { font-family: var(--font-ui); padding: 6px 12px; border-radius: 8px; border: 1px solid rgba(255,255,255,.12); cursor: pointer; font-size: 12px; font-weight: 600; transition: filter .15s; }
.timer-btn:hover { filter: brightness(1.2); }
#timer-overlay.maximized .timer-btn { padding: 12px 24px; font-size: 1.5rem; border-radius: 12px; }

/* ── CLASS SCHEDULE NOTIFICATION ── */
#schedule-notification { position: fixed; top: 60px; right: 16px; z-index: 900; background: var(--surface); border: 1.5px solid var(--press-color); border-radius: var(--r-md); box-shadow: 4px 4px 0 var(--press-color); padding: 12px 16px; max-width: 280px; display: none; animation: slideInRight .3s ease; }
#schedule-notification.show { display: block; }
#schedule-notification.ending { border-color: var(--rose-ink); box-shadow: 4px 4px 0 var(--rose-ink); }
@keyframes slideInRight { from{transform:translateX(80px);opacity:0} to{transform:translateX(0);opacity:1} }
.sched-notif-title { font-family: var(--font-display); font-size: 14px; font-weight: 700; margin-bottom: 3px; }
.sched-notif-msg { font-size: 12px; color: var(--text-muted); }
.sched-notif-close { position: absolute; top: 8px; right: 10px; background: none; border: none; cursor: pointer; color: var(--text-muted); font-size: 16px; }
#schedule-status-bar { display: none; align-items: center; gap: 8px; padding: 4px 12px; background: var(--accent-soft); color: var(--accent-ink); font-size: 12px; font-weight: 600; border-bottom: 1px solid var(--line); }
#schedule-status-bar.show { display: flex; }
#schedule-status-bar.ending { background: var(--rose); color: var(--rose-ink); }
