:root{color-scheme:dark;--bg:#000;--surface:#171717;--surface2:#242424;--fg:#f5f5f5;--muted:#b5b5b5;--line:#3d3d3d;--accent:#a3e4bf;--ink:#14251b;--math:#8ab6f6;--major:#efb77a;--english:#bba5ed;--politics:#ed9eab;--radius:14px}html[data-theme=light]{color-scheme:light;--bg:#fafbf9;--surface:#fff;--surface2:#eef1ed;--fg:#171c19;--muted:#55605a;--line:#cbd3cc;--accent:#245f3d;--ink:#fff;--math:#245797;--major:#855119;--english:#684199;--politics:#a33152}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.6 'Noto Sans SC VF','Microsoft YaHei UI',sans-serif}a{color:inherit;text-decoration:none}button,input,select,.button{font:inherit;color:var(--fg);background:var(--surface2);border:1px solid var(--line);border-radius:8px;min-height:44px;padding:8px 15px}button,a,input,select{transition:background .15s,color .15s,transform .15s}button{cursor:pointer}button:hover,.button:hover{background:var(--line)}button:active{transform:scale(.98)}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.skip{position:absolute;left:15px;top:-90px;background:var(--surface);padding:10px;z-index:9}.skip:focus{top:10px}.top{max-width:1280px;margin:auto;padding:22px 32px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;font-weight:600}.top nav{display:flex;gap:22px;align-items:center}.top nav a{min-height:44px;display:flex;align-items:center}main{max-width:1220px;margin:auto;padding:34px 32px 60px}.heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.eyebrow{color:var(--muted);margin:0;font-size:14px}h1{font-size:clamp(32px,5vw,48px);margin:2px 0;font-weight:600;letter-spacing:-1px}h2{font-size:23px;font-weight:500;margin:8px 0}.exam{text-align:right;display:flex;align-items:baseline;gap:8px;color:var(--muted)}.exam strong{color:var(--accent);font-size:40px;font-variant-numeric:tabular-nums}.live{display:grid;grid-template-columns:1fr auto;gap:24px;background:var(--surface);border-left:3px solid var(--accent);padding:25px 30px;border-radius:0 var(--radius) var(--radius) 0}.live p{margin:4px 0;color:var(--muted)}#liveTag{font-size:14px;color:var(--accent)}.clock{align-self:center;text-align:right}.clock span{display:block;color:var(--muted);font-size:13px}.clock strong{font-size:38px;font-weight:400;font-variant-numeric:tabular-nums}.routine{display:flex;gap:22px;flex-wrap:wrap;padding:18px 0;font-size:14px;color:var(--muted)}.tools{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 0;border-top:1px solid var(--line)}.date-tools,.views,.filters{display:flex;align-items:center;gap:8px}.date-tools label{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:14px}.filters{flex-wrap:wrap;margin-bottom:18px}.filters button{border:0;background:transparent;color:var(--muted);padding:7px 16px}button[aria-pressed=true]{background:var(--accent);color:var(--ink)}.fc{--fc-page-bg-color:var(--bg);--fc-neutral-bg-color:var(--surface);--fc-neutral-text-color:var(--fg);--fc-border-color:var(--line);--fc-today-bg-color:transparent;--fc-list-event-hover-bg-color:var(--surface2);--fc-now-indicator-color:var(--accent);font-size:14px}.fc .fc-scrollgrid{border-radius:8px;overflow:hidden}.fc .fc-timegrid-slot{height:35px}.fc .fc-timegrid-slot-label{color:var(--muted);font-variant-numeric:tabular-nums}.fc .fc-timegrid-event{border:0;border-left:3px solid var(--math);background:color-mix(in srgb,var(--math) 17%,var(--surface));color:var(--fg);border-radius:4px;margin:2px 4px;box-shadow:none;padding:4px 8px;cursor:pointer}.fc .fc-timegrid-event .fc-event-main{color:var(--fg)}.fc .fc-event-major{border-color:var(--major);background:color-mix(in srgb,var(--major) 17%,var(--surface))}.fc .fc-event-english{border-color:var(--english);background:color-mix(in srgb,var(--english) 17%,var(--surface))}.fc .fc-event-politics{border-color:var(--politics);background:color-mix(in srgb,var(--politics) 17%,var(--surface))}.fc .fc-event-life,.fc .fc-event-rest{border-color:var(--muted);background:var(--surface);color:var(--muted)}.fc .fc-event-time{font-size:12px}.fc .fc-event-title{font-size:15px;font-weight:500}.fc .fc-list-day-cushion{background:var(--surface2)}.fc .fc-list-event{cursor:pointer}.reminders{border-top:1px solid var(--line);margin-top:28px;padding-top:22px;display:grid;grid-template-columns:1fr auto;gap:16px}.reminders p{color:var(--muted);font-size:14px;margin:6px 0;max-width:620px}.reminders>div+div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}#notice{grid-column:1/-1;min-height:22px}.button{display:inline-flex;align-items:center}.primary{background:var(--accent);color:var(--ink);border:0}footer{margin-top:30px;color:var(--muted);font-size:13px;display:flex;gap:20px;flex-wrap:wrap}footer p{width:100%;margin:0}dialog{background:var(--surface);color:var(--fg);border:1px solid var(--line);border-radius:16px;padding:28px;max-width:520px;width:calc(100% - 32px)}dialog::backdrop{background:#0009}dialog p{white-space:pre-line}.close{float:right}#detailTime{font-size:14px;color:var(--muted)}.fallback-row{padding:16px;border-bottom:1px solid var(--line)}@media(max-width:700px){.top{padding:12px 16px}.top nav{gap:10px;font-size:13px}.top nav a:nth-child(2){display:none}main{padding:24px 16px}.live{padding:20px;gap:10px;grid-template-columns:1fr}.clock{text-align:left}.clock strong{font-size:32px}.routine{gap:7px 16px}.tools{align-items:flex-start;flex-direction:column}.date-tools{flex-wrap:wrap}.date-tools input{width:155px}.filters button{padding:7px 11px}.reminders{grid-template-columns:1fr}.fc .fc-timegrid-event{padding:2px 4px;margin:2px 1px}.fc .fc-event-title{font-size:13px}.exam strong{font-size:32px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.fallback-row{display:block;width:100%;text-align:left;margin:6px 0} #calendarFallback[hidden],#calendar[hidden]{display:none!important}

/* Theme preference, learning-day explanation and subject-preserving list. */
.theme-control{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted)}
.theme-control select{max-width:145px}
.learning-day-hint{font-size:13px;line-height:1.6;color:var(--muted);margin:10px 0 0;max-width:42em}
.date-tools{flex-wrap:wrap}.learning-day-hint{flex-basis:100%}.views{flex-shrink:0}.tools{align-items:flex-start}
.fallback-row{--row-color:var(--muted);display:grid;grid-template-columns:6.5em minmax(0,1fr);gap:12px;align-items:center;border-left:3px solid var(--row-color);background:color-mix(in srgb,var(--row-color) 12%,var(--surface));border-radius:6px}
.subject-math{--row-color:var(--math)}.subject-major{--row-color:var(--major)}.subject-english{--row-color:var(--english)}.subject-politics{--row-color:var(--politics)}
.list-subject{color:var(--row-color);font-size:14px;font-weight:600}.fallback-row:hover{background:color-mix(in srgb,var(--row-color) 20%,var(--surface))}
@media(max-width:900px){.tools{flex-direction:column}}
@media(max-width:700px){.top{flex-wrap:wrap;gap:8px}.top nav{width:100%;justify-content:space-between}.fallback-row{grid-template-columns:1fr;gap:4px}}
.date-controls{flex:1;min-width:0}.learning-day-hint{margin-top:10px}@media(max-width:900px){.date-controls{width:100%}}

/* Empty filters and date limits keep the next action explicit. */
.calendar-empty{padding:20px;border:1px solid var(--line);border-radius:8px;background:var(--surface);margin:0 0 16px}.calendar-empty[hidden]{display:none}.calendar-empty p{color:var(--muted);margin:0 0 12px}button:disabled{opacity:.4;cursor:default;transform:none}.learning-day-hint:empty{display:none}
