/* Hallmark v2 · theme: kiln adapted · genre: atmospheric · scope: app · redesign: restyle · signature: course-time stage · built: project */
/* Critique: replace pale repeated panels with dark operational hierarchy, strong time typography and framed daily material. */
/* Waiver: existing sidebar and dense course grid retained for established task navigation; system Chinese fonts retained for legibility. */
:root{color-scheme:dark;--paper:#111315;--ink:#f1eee6;--muted:#b7bab7;--line:#363c3f;--green:#e4b66b;--surface:#1b1e20;--raised:#24282b;--quiet:#171a1c;--accent-ink:#171512;--danger:#ffb4a7;--accent-soft:#352d21;--today-fill:#25251f;--nav-active:#2b2e2e;--veil:#080a0cbb;--shadow:#00000040;--body-face:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;--course-fallback:#bad4c7;--image-scrim:#11131555;--rule-soft:#282d30;--focus:#f4ca85;--clear:transparent;--stage-time:clamp(38px,4.3vw,66px)}
html,body{overflow-x:clip}body{background:var(--paper);color:var(--ink);font-family:var(--body-face)}a{color:var(--green)}button{background:var(--raised);border-color:var(--line);color:var(--ink)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline-color:var(--focus)}.primary{background:var(--green);color:var(--accent-ink);border-color:var(--green);font-weight:600}button:hover{filter:none}aside{background:var(--quiet);border-color:var(--line)}.brand,.semester b{color:var(--ink)}.brand small{color:var(--muted);letter-spacing:0}.brand .logo{background:var(--green);color:var(--accent-ink);border-radius:9px}.semester,.aside-bottom,.aside-bottom small{color:var(--muted)}.dot{display:none}nav button{background:var(--clear);color:var(--muted);border-radius:8px}nav button.active{background:var(--nav-active);color:var(--ink)}nav button.active:before{content:"";width:3px;align-self:stretch;background:var(--green);position:absolute;left:0;border-radius:2px}nav button{position:relative}main{max-width:1520px;padding-top:36px}header{padding-bottom:24px;border-bottom:1px solid var(--line);margin-bottom:24px}header>.eyebrow,header .eyebrow{display:none}header h1{font-size:26px;font-weight:500;letter-spacing:-.6px}.eyebrow{letter-spacing:0;text-transform:none;font-size:12px;color:var(--muted)}.panel{color:var(--ink);background:var(--surface);border-color:var(--line);box-shadow:none;border-radius:12px}.note{background:var(--quiet);border-color:var(--line);color:var(--muted);border-radius:10px}.note b{color:var(--ink)}.tag{background:var(--accent-soft);color:var(--green);border-radius:5px}.muted,.date-line,.section-title small,footer{color:var(--muted)}footer{border-color:var(--line)}.danger,#form-error{color:var(--danger)}.subtle{background:var(--clear);color:var(--muted)}input,select{background:var(--quiet);border-color:var(--line);color:var(--ink)}input::placeholder{color:var(--muted);opacity:.7}input:focus,select:focus{outline:2px solid var(--focus);outline-offset:2px;box-shadow:none}input[type=checkbox]{accent-color:var(--green)}dialog{background:var(--surface);color:var(--ink);border-color:var(--line);box-shadow:0 24px 100px var(--shadow)}dialog::backdrop{background:var(--veil);backdrop-filter:none}.actions{background:var(--surface);border-color:var(--line)}#toast{background:var(--ink);color:var(--paper);box-shadow:0 6px 25px var(--shadow)}.dialog-head button{background:var(--clear)}.reminder-master{background:var(--quiet);border-color:var(--line)}.reminder-master button.danger{border-color:var(--danger)}hr{border-color:var(--line)}
.today-stage{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);min-height:330px;border:1px solid var(--line);background:var(--surface);margin-bottom:28px;border-radius:12px;overflow:clip}.hero.now-stage{background:var(--clear);border-radius:0;padding:32px 36px;box-shadow:none;min-height:330px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.hero.now-stage:after{display:none}.now-label{color:var(--muted);font-size:12px;margin:0 0 16px}.hero.now-stage .now-time{font-size:var(--stage-time);font-variant-numeric:tabular-nums;letter-spacing:-2px;color:var(--ink);line-height:1.12;font-weight:400;white-space:nowrap}.hero.now-stage h2{font-size:25px;line-height:1.5;max-width:100%;margin:16px 0 4px;overflow-wrap:break-word;min-width:0;font-weight:500}.hero.now-stage p.now-room{color:var(--green);font-size:16px;margin:8px 0 0}.hero.now-stage .now-description{color:var(--muted);font-size:13px;margin-top:8px}.stage-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px}.stage-actions button{font-size:12px;background:var(--quiet)}.daily-slot{min-width:0;border-left:1px solid var(--line);display:flex}.daily-slot #daily-card{color:var(--ink);width:100%;margin:0;padding:0;border:0;border-radius:0;background:var(--quiet);display:flex;flex-direction:column;min-height:330px}.daily-figure{margin:0;position:relative;min-height:190px;flex:1;overflow:clip;background:var(--raised)}#daily-card .daily-figure img{width:100%;height:100%;min-height:190px;max-height:280px;object-fit:cover;display:block;aspect-ratio:auto;filter:brightness(.74) saturate(.65);border-radius:0}.daily-verse{padding:20px 24px}.daily-verse h3{font-size:11px;color:var(--muted);font-weight:400}.daily-verse blockquote{font-size:19px;line-height:1.75;margin:12px 0;color:var(--ink)}.daily-verse p{font-size:11px;color:var(--muted);margin:0}.daily-credit{padding:0 24px 16px;font-size:10px;line-height:1.7;color:var(--muted)}.daily-credit a{font-size:10px!important;color:var(--muted);text-decoration:underline;text-underline-offset:3px}.daily-state{padding:24px;color:var(--muted);margin:auto 0;line-height:1.8}.overview-line{display:flex;flex-wrap:wrap;gap:24px;padding:16px 0 24px;border-bottom:1px solid var(--line);margin-bottom:24px}.overview-line span{font-size:12px;color:var(--muted)}.overview-line b{font-size:21px;line-height:1;margin-right:8px;color:var(--ink);font-weight:400;font-variant-numeric:tabular-nums}.dashboard.today-detail{grid-template-columns:minmax(0,1.65fr) minmax(230px,1fr)}.today-detail .section-title{margin-top:0}.timeline-panel{background:var(--clear);border:0;padding:0}.course-card{border-color:var(--line)}.time{color:var(--ink);font-weight:500}.time small,.course-body p{color:var(--muted)}.course-body{border-left-color:color-mix(in srgb,var(--course-color,var(--course-fallback)) 60%,var(--ink))}.course-body h3{color:var(--ink)}.course-card.past{opacity:.65}.empty{color:var(--muted)}.empty strong{color:var(--ink)}.tomorrow-list{padding:16px 0;border-top:1px solid var(--line)}.tomorrow-row{padding:12px 0;border-bottom:1px solid var(--rule-soft);display:grid;grid-template-columns:55px minmax(0,1fr);gap:12px}.tomorrow-row b{font-variant-numeric:tabular-nums;font-weight:500;color:var(--green)}.tomorrow-row strong{font-size:13px;line-height:1.6;font-weight:500}.tomorrow-row small{display:block;color:var(--muted);margin-top:4px}.push-hint{margin-top:16px;padding:12px 0;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.schedule-scroll,.week-wrap{background:var(--paper);border-color:var(--line);border-radius:9px}.schedule-corner,.schedule-head,.week-head{background:var(--quiet);border-color:var(--line);color:var(--ink)}.schedule-head>span,.schedule-head>small,.schedule-corner,.period small,.week-head small{color:var(--muted)}.schedule-head.is-today{background:var(--today-fill);color:var(--ink);box-shadow:inset 0 -2px var(--green)}.schedule-head.is-today>b{background:var(--clear);color:var(--green);border-radius:0}.schedule-head.is-today>small{color:var(--green)}.schedule-times{background:var(--quiet)}.schedule-day,.schedule-rule,.period,.slot-label,.week-cell{border-color:var(--rule-soft)}.schedule-day.is-today{background:var(--today-fill)}.session-break{border-top-color:var(--line)}.schedule-course,.week-course{background:color-mix(in srgb,var(--course-color,var(--course-fallback)) 24%,var(--quiet));color:var(--ink);border-top-color:color-mix(in srgb,var(--course-color,var(--course-fallback)) 65%,var(--ink));border-radius:5px;box-shadow:none}.schedule-room{color:var(--ink)}.schedule-detail{color:var(--muted);opacity:1}.week-controls{background:var(--surface);border:1px solid var(--line);border-radius:8px}.week-controls #this-week{background:var(--raised);color:var(--ink);box-shadow:none}.week-caption h2{font-weight:500}.week-footnote,.week-scroll-hint{color:var(--muted)}.week-footnote i{background:var(--green)}.manage-card{border-color:var(--line)}.manage-card p{color:var(--muted)}.manage-actions button{background:var(--quiet)}.tool-launchers{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:0;border:1px solid var(--line);border-radius:12px;overflow:clip}.tool-launcher{padding:32px;border-radius:0;border:0;min-height:245px;background:var(--surface)}.tool-launcher+.tool-launcher{border-left:1px solid var(--line);background:var(--quiet)}.tool-launcher>span{background:var(--clear);color:var(--green);border-radius:0;display:block;width:auto;height:auto;font-size:33px}.tool-launcher h2{font-size:24px;font-weight:500}.tool-launcher p,.tool-launcher small{color:var(--muted)}.tool-tabs{gap:0;border-bottom:1px solid var(--line);padding-bottom:0}.tool-tabs button{border:0;background:var(--clear);color:var(--muted);border-radius:0;border-bottom:2px solid var(--clear);padding:16px 16px}.tool-tabs button.primary{color:var(--green);background:var(--clear);border-bottom-color:var(--green)}.file-picker{background:var(--quiet);border-color:var(--line)}.file-picker input{background:var(--clear);color:var(--ink)}.file-picker input::file-selector-button{background:var(--raised);color:var(--ink);border-color:var(--line)}.file-row,.free-card{border-color:var(--line)}.download-result{background:var(--accent-soft);border-color:var(--line);color:var(--ink)}.free-card b{color:var(--ink)}.free-card .tag{color:var(--green)}.time-edit-row button{background:var(--quiet)}.settings-grid{align-items:start}.settings-grid .panel{border-radius:10px}.settings-grid h3{font-size:17px;font-weight:500}.settings-grid p,.settings-grid label{line-height:1.8}.time-edit-actions{margin-top:16px}.tool-form label,.form-grid label{min-width:0}
@media(hover:hover) and (pointer:fine){nav button:hover{background:var(--raised);color:var(--ink)}.tool-launcher:hover{background:var(--raised);box-shadow:none}.dialog-head button:hover{background:var(--raised)}.download-result:hover{background:var(--raised)}.schedule-course:hover{filter:brightness(1.12)}button:hover:not(:disabled){filter:brightness(1.07)}}
@media(min-width:1550px){main{margin-left:auto;margin-right:auto;transform:translateX(110px);width:calc(100% - 300px);max-width:1260px}}
@media(max-width:1100px){.today-stage{grid-template-columns:minmax(0,1fr) minmax(0,.85fr)}.hero.now-stage{padding:28px 24px}.hero.now-stage .now-time{font-size:40px}.dashboard.today-detail{grid-template-columns:1fr}.today-detail .right-column{display:block}.tomorrow-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.tomorrow-list>h3{grid-column:1/-1}}
@media(max-width:650px){aside{background:var(--quiet);border-color:var(--line);backdrop-filter:none}nav button{color:var(--muted)}nav button.active{background:var(--nav-active);color:var(--green)}nav button.active:before{display:none}main{padding-top:24px}header{margin-bottom:20px;padding-bottom:16px;align-items:center}header h1{font-size:23px}header .primary{margin-top:0;font-size:11px;min-height:40px;padding:8px 12px}.today-stage{display:flex;flex-direction:column;border-radius:10px;margin-bottom:20px}.hero.now-stage{min-height:260px;padding:28px 24px}.hero.now-stage .now-time{font-size:42px;letter-spacing:-1.6px}.hero.now-stage h2{font-size:23px;margin-top:16px}.hero.now-stage .now-room{font-size:16px}.stage-actions{margin-top:20px}.now-label{margin-bottom:16px}.daily-slot{border-left:0;border-top:1px solid var(--line)}.daily-slot #daily-card{min-height:0;display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1fr)}.daily-figure{min-height:175px;grid-row:1/3}.daily-slot #daily-card .daily-figure img{height:100%;min-height:175px;max-height:none}.daily-verse{padding:16px 16px 8px}.daily-verse blockquote{font-size:16px;line-height:1.75;margin:8px 0}.daily-verse h3{font-size:10px}.daily-verse p{font-size:10px}.daily-credit{padding:0 16px 16px;grid-column:2}.daily-state{grid-column:1/-1;padding:20px;font-size:12px}.overview-line{gap:16px;padding:4px 0 20px}.overview-line b{font-size:20px}.overview-line span{font-size:11px}.dashboard.today-detail{gap:8px}.today-detail .right-column{display:block}.tomorrow-list{display:block}.today-detail .section-title h2{font-size:19px}.tool-launchers{grid-template-columns:1fr}.tool-launcher{min-height:205px;padding:24px}.tool-launcher+.tool-launcher{border-left:0;border-top:1px solid var(--line)}.tool-launcher h2{font-size:22px}.settings-grid .panel{background:var(--surface);color:var(--ink)}.tool-tabs button{font-size:11px;flex:1 1 45%;padding:12px 8px}.schedule-course{border-radius:4px}.week-controls{border-radius:6px}.week-caption h2{font-size:23px}.date-line{font-size:12px}.panel{padding:20px 16px}.timeline-panel{padding:0}.hero.now-stage h2{max-width:100%}.free-card .tag{white-space:normal;max-width:112px}.file-row small{color:var(--muted)}}
@media(prefers-reduced-motion:reduce){.schedule-course:hover{filter:none}}

button:active:not(:disabled){transform:scale(.97)}h1,h2{text-wrap:balance}button:disabled{opacity:.45;cursor:not-allowed}@media(prefers-reduced-motion:reduce){button:active:not(:disabled){transform:none}}


.daily-figure{background:var(--raised) url("/daily-fallback.svg") center/cover no-repeat}
