.home-title-row{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:15px 0 12px}.home-title-row h2{margin:0;min-width:0}.timetable-entry{flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:0;background:var(--soft);color:var(--accent);border-radius:13px;width:54px;height:57px;transition:transform .2s,background .2s}.timetable-entry:hover{transform:translateY(-2px);background:var(--hover)}.timetable-entry:active{transform:scale(.94)}.timetable-entry svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.timetable-entry span{font-size:10px;letter-spacing:1px}.timetable-dialog{width:min(1050px,calc(100% - 36px));padding:28px}.schedule-subtitle{color:var(--muted);font-size:12px;margin:10px 0 0}.schedule-hint,.schedule-footnote{font-size:11px;color:var(--muted);line-height:1.8}.schedule-scroll{overflow:auto;max-height:60svh;border:1px solid var(--line);border-radius:14px}.schedule-grid{display:grid;grid-template-columns:100px repeat(5,minmax(75px,1fr));grid-template-rows:40px repeat(12,48px);min-width:480px;background:var(--paper)}.schedule-head{position:sticky;top:0;z-index:3;display:grid;place-items:center;background:var(--soft);font-size:12px;border-bottom:1px solid var(--line)}.schedule-time{position:sticky;left:0;z-index:2;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;background:var(--paper);font-size:11px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.schedule-time small{font-size:10px;color:var(--muted)}.schedule-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.schedule-course{z-index:1;margin:4px;border:1px solid var(--line);border-radius:10px;background:var(--soft);color:var(--ink);font-size:13px;font-weight:600;overflow-wrap:anywhere;transition:transform .2s,background .2s}.schedule-course:hover{background:var(--hover);transform:translateY(-1px)}.course-full-name{font-size:15px;line-height:1.8}.course-fields{display:grid;grid-template-columns:80px 1fr;gap:18px 12px;font-size:13px;line-height:1.8}.course-fields dt{color:var(--muted)}.course-fields dd{margin:0;overflow-wrap:anywhere}.unscheduled{font-size:12px;color:var(--muted);line-height:1.8}.unscheduled summary{cursor:pointer}.unscheduled p{margin:8px 0}
@media(max-width:600px){.home-title-row{gap:8px}.home-title-row h2{font-size:22px}.timetable-entry{width:46px;height:51px}.timetable-entry svg{width:21px;height:21px}.timetable-entry span{font-size:9px}.timetable-dialog{padding:20px 14px;width:calc(100% - 20px)}.timetable-dialog .dialog-head{gap:10px}.schedule-scroll{max-height:58svh}.schedule-grid{grid-template-columns:86px repeat(5,75px)}.schedule-head:first-child{left:0;z-index:4}}
/* Course colors follow the selected site palette. */
body{--course-english:#e6f1ec;--course-math:#e6edf9;--course-politics:#f3e9f1;--course-thought:#fff0cf;--course-psych:#eeebf7;--course-management:#e9efdc;--course-python:#e0f1f2;--course-sports:#fbe6df;--course-text:#45505a}
body[data-theme="matcha"]{--course-english:#e2eddb;--course-math:#e1eee9;--course-politics:#eee9db;--course-thought:#eff0d5;--course-psych:#e9e5ed;--course-management:#d7e7ce;--course-python:#dcebed;--course-sports:#f1e4d8;--course-text:#3e503c}
body[data-theme="pink"]{--course-english:#f7e1eb;--course-math:#e8e5f6;--course-politics:#f1dfe7;--course-thought:#f8eadc;--course-psych:#ede7f4;--course-management:#e7eedf;--course-python:#deedf0;--course-sports:#f8dfdc;--course-text:#674858}
body[data-theme="mint"]{--course-english:#d9efe5;--course-math:#dfebf7;--course-politics:#e9e4f3;--course-thought:#f0efd6;--course-psych:#e5eef1;--course-management:#e1edd9;--course-python:#d3ecec;--course-sports:#f6e5de;--course-text:#36574f}
body[data-theme="mono"]{--course-english:#e2ece8;--course-math:#e2e8f0;--course-politics:#ece3ea;--course-thought:#efeada;--course-psych:#e9e6ef;--course-management:#e6ebdf;--course-python:#ddebed;--course-sports:#eee2dd;--course-text:#343b40}
.schedule-course{background:var(--course-bg,var(--soft));color:var(--course-text);font-weight:700;border:1px solid #00000006;box-shadow:0 2px 5px #00000003;transition:transform .2s,filter .2s,box-shadow .2s,background .25s}
.schedule-course[data-course="英语"]{--course-bg:var(--course-english)}.schedule-course[data-course="高数"]{--course-bg:var(--course-math)}.schedule-course[data-course="政经"]{--course-bg:var(--course-politics)}.schedule-course[data-course="习概"]{--course-bg:var(--course-thought)}.schedule-course[data-course="心理"]{--course-bg:var(--course-psych);font-style:italic;font-weight:300}.schedule-course[data-course="管理"]{--course-bg:var(--course-management)}.schedule-course[data-course="Python"]{--course-bg:var(--course-python)}.schedule-course[data-course="体育"]{--course-bg:var(--course-sports)}
.schedule-course:hover{background:var(--course-bg);filter:brightness(.97);box-shadow:0 4px 10px #00000009}.schedule-course:active{transform:scale(.97)}
@media(prefers-reduced-motion:reduce){.schedule-course{transition:none}}
.home-quick-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.clock-entry{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--accent);transition:transform .2s,background .2s}.clock-entry:hover{background:var(--soft);transform:rotate(-8deg)}.clock-entry:active{transform:scale(.93)}.clock-entry svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.beijing-now{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.clock-state-label{display:inline-block;margin-top:12px;padding:6px 10px;border-radius:20px;font-size:11px;color:var(--accent);background:var(--soft)}.clock-course{font-size:26px;margin:16px 0 22px}.clock-result{padding:18px 16px;background:var(--soft);border-radius:14px;margin:12px 0}.clock-result span{display:block;font-size:12px;color:var(--muted);margin-bottom:10px}.clock-result strong{display:block;font-size:21px;line-height:1.6;font-weight:600;font-variant-numeric:tabular-nums}.clock-context,.clock-warning,.semester-settings{font-size:11px;color:var(--muted);line-height:1.9}.clock-warning{border-top:1px solid var(--line);padding-top:15px}.semester-settings summary{cursor:pointer}.semester-settings label{display:block;margin:12px 0}.semester-start{display:block;padding:9px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);margin-top:8px}.semester-save{border:1px solid var(--line);background:var(--soft);color:var(--ink);padding:8px 16px;border-radius:8px}
@media(max-width:600px){.home-quick-actions{gap:6px}.clock-entry{width:36px;height:36px}.clock-entry svg{width:21px;height:21px}.home-title-row h2{font-size:clamp(17px,4.9vw,22px)}.clock-result strong{font-size:19px}}
.initial-avatar{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;border-radius:50%;background:#1a73e8;color:#fff;font-size:18px;font-weight:500;letter-spacing:0;font-family:'Microsoft YaHei','PingFang SC',sans-serif;line-height:1}.user-card>.initial-avatar{width:48px;height:48px}.menu-profile>.initial-avatar{width:44px;height:44px}.post-author{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:12px;margin-bottom:12px}.post-author .initial-avatar{width:28px;height:28px;font-size:12px}.student-login h3{font-size:16px;margin-top:24px}.admin-login-details{margin-top:22px;font-size:12px;color:var(--muted)}.admin-login-details summary{cursor:pointer}.menu-profile .initial-avatar{margin:0;color:#fff}.menu-profile>div{min-width:0}.menu-profile strong{overflow-wrap:anywhere}
.author-profile{display:flex;flex-direction:column;align-items:center;gap:18px;padding:12px 0 26px;text-align:center}.author-avatar,.author-avatar-fallback{width:84px;height:84px;border-radius:50%;object-fit:cover;border:3px solid var(--soft)}.author-avatar-fallback{display:grid;place-items:center;background:#1a73e8;color:white;font-size:32px}.author-profile strong{font-size:18px;line-height:1.7}.author-contact{display:grid;grid-template-columns:50px minmax(0,1fr);gap:20px 15px;border-top:1px solid var(--line);padding-top:24px;font-size:14px;line-height:1.8}.author-contact dt{color:var(--muted)}.author-contact dd{margin:0;overflow-wrap:anywhere}.author-contact a{color:var(--accent);text-underline-offset:4px}
