@charset "UTF-8";
/* Class routines use clock time, independently of numbered lesson periods. */
.lesson-status.due{background:#faf2e5;color:#a16c32}
:root{--bg:#f7f8f4;--surface:#fff;--ink:#2c3c34;--muted:#849087;--accent:#547865;--accent-dark:#3f604e;--soft:#e8eee1;--soft-light:#f0f4eb;--line:#e8ece5;--hero:#e8edde;--sidebar:#fcfdf9;--radius:17px;--shadow:0 4px 20px #2e493503;--font:"Inter","PingFang SC","Microsoft YaHei UI","Microsoft YaHei",system-ui,sans-serif;color-scheme:light}
:root[data-theme="1"]{--bg:#f3f7f6;--accent:#557d72;--accent-dark:#3f665c;--soft:#e4eee8;--soft-light:#eef5f1;--hero:#e3ede6;--ink:#34463e;--line:#e0eae5;--sidebar:#fafffd}
:root[data-theme="2"]{--bg:#fbf6ef;--accent:#92643f;--accent-dark:#76502f;--soft:#f4e8d5;--soft-light:#faf1e5;--hero:#f3e7d3;--ink:#4c4034;--line:#eee2d4;--sidebar:#fffcf7}
*{box-sizing:border-box}body{margin:0;font-family:var(--font);font-size:14px;line-height:1.6;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}body::before{content:"";position:fixed;inset:0;background-image:var(--custom-background,none);background-size:cover;background-position:center;opacity:var(--background-opacity,0);pointer-events:none;z-index:-1}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;background:none;color:inherit}button:disabled{cursor:not-allowed;opacity:.35}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #a9bfa2;outline-offset:4px}button, a{touch-action:manipulation}.icon{height:19px;width:19px;flex:none;vertical-align:middle}.flip{transform:rotate(180deg)}.muted,.subtle{color:var(--muted)}.subtle{font-size:12px;font-weight:400}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:20px;top:-70px;padding:12px 20px;background:var(--surface);z-index:99;box-shadow:0 3px 20px #0002;border-radius:8px}.skip-link:focus{top:14px}
.sidebar{position:fixed;top:0;bottom:0;left:0;width:224px;display:flex;flex-direction:column;padding:34px 20px 0;background:var(--sidebar);border-right:1px solid var(--line);z-index:20}.brand{display:flex;align-items:center;gap:12px;padding-left:9px;margin-bottom:43px}.brand img{width:42px;height:42px;border-radius:13px}.brand strong{font-size:25px;letter-spacing:3px;line-height:1.25;display:block;font-weight:750}.brand-dot{color:var(--accent);letter-spacing:0}.brand small{font-size:8px;letter-spacing:2px;color:var(--muted);display:block;margin-top:5px}.sidebar-label{font-size:10px;letter-spacing:1px;color:#9aa397;padding:0 17px;margin-bottom:12px}.nav-item{width:100%;height:46px;display:flex;align-items:center;gap:13px;border-radius:10px;padding:0 17px;color:#79867d;text-align:left;margin-bottom:6px;transition:background .15s,color .15s}.nav-item:hover{background:var(--soft-light);color:var(--accent)}.nav-item.active{background:var(--soft);color:var(--accent-dark);font-weight:650}.nav-item .icon{width:19px}.nav-active-dot{margin-left:auto;width:5px;height:5px;background:var(--accent);border-radius:50%}.nav-divider{height:1px;background:var(--line);margin:26px 14px 23px}.semester-card{margin:42px 3px 24px;padding:17px 15px;border:1px solid var(--line);background:var(--soft-light);border-radius:13px}.semester-title{display:flex;align-items:center;gap:7px;color:var(--accent);font-size:10px}.semester-title .icon{width:15px;height:15px}.semester-week{font-size:12px;margin-top:9px}.semester-week strong{font-size:23px;font-weight:650;margin:0 2px}.semester-week>span{color:#a0a99c;font-size:10px}.progress{height:4px;background:#dde5d8;border-radius:3px;margin:9px 0 10px;overflow:hidden}.progress i{display:block;height:100%;background:var(--accent);border-radius:3px}.semester-card small{font-size:10px;color:#96a08f}.sidebar-about{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--muted);padding:10px 15px;margin-top:auto;margin-bottom:20px;text-align:left}.sidebar-about:hover{color:var(--accent)}.sidebar-about .icon{width:16px}.sidebar-profile{border-top:1px solid var(--line);padding:20px 0;display:flex;align-items:center;gap:10px}.avatar,.top-avatar{display:grid;place-items:center;color:var(--accent);background:var(--soft);border-radius:50%;width:36px;height:36px;font-weight:600;font-size:14px}.sidebar-profile strong{font-size:11px;display:block}.sidebar-profile small{font-size:9px;color:var(--muted);display:block;margin-top:1px}.sidebar-profile .icon-btn{margin-left:auto;width:24px}.sidebar-profile .icon-btn .icon{width:14px}.workspace{margin-left:224px;min-width:0}.topbar{height:77px;border-bottom:1px solid var(--line);padding:0 34px;display:flex;align-items:center;justify-content:space-between;background:#ffffff70}.breadcrumb{display:flex;align-items:center;gap:12px;font-size:12px;color:#9ca49b}.breadcrumb .icon{width:13px;height:13px;color:#afb5ab}.breadcrumb strong{color:var(--ink);font-weight:500}.topbar-right{display:flex;align-items:center;gap:17px}.search-trigger{display:flex;align-items:center;gap:9px;color:#a0a89f;font-size:11px;min-width:202px;text-align:left}.search-trigger .icon{width:16px}.search-trigger kbd{font-family:inherit;margin-left:auto;border:1px solid var(--line);border-radius:4px;font-size:10px;line-height:20px;width:20px;text-align:center;color:#a7aea3}.topbar-separator{height:22px;width:1px;background:var(--line);margin-left:7px}.notification{position:relative}.notification::after{position:absolute;right:9px;top:7px;content:"";width:5px;height:5px;background:#c7a882;border-radius:50%;border:1px solid var(--bg)}.top-avatar{width:33px;height:33px;font-size:12px;background:#ecebdd;color:#8f9575}.mobile-toggle,.nav-overlay{display:none}main{max-width:1580px;margin:0 auto;padding:30px 34px 0;min-height:calc(100vh - 135px)}.page-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:27px;min-height:82px}.eyebrow{font-size:10px;letter-spacing:1.2px;color:var(--muted);line-height:1.7;margin-bottom:8px}.page-heading h1{font-size:27px;letter-spacing:.8px;font-weight:650;line-height:1.5}.page-heading p{font-size:12px;color:var(--muted);margin-top:5px;letter-spacing:.1px}.date-badge{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--accent);padding:7px 11px;border:1px solid var(--line);border-radius:6px;white-space:nowrap}.date-badge .icon{width:14px;height:14px}.tiny-dot{margin:0 7px;color:#b2bbac}.page-footer{display:flex;justify-content:space-between;align-items:center;max-width:1580px;margin:0 auto;padding:24px 34px 25px;color:#a7aea1;font-size:10px;gap:15px}.page-footer>span:last-child{display:flex;align-items:center;gap:5px}.page-footer .icon{width:12px;height:12px}.footer-dot{margin:0 5px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:12px;font-weight:500;line-height:1.5;padding:10px 16px;background:var(--surface);border:1px solid var(--line);border-radius:8px;white-space:nowrap;transition:background .16s,transform .16s;min-height:38px}.btn:hover{background:var(--soft-light);border-color:#cdd9c6}.btn:active{transform:translateY(1px)}.btn .icon{width:15px;height:15px}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-dark);border-color:var(--accent-dark)}.btn.small{font-size:11px;padding:6px 12px;min-height:31px}.btn.full{width:100%}.text-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;font-size:11px;color:var(--accent);padding:6px 0;white-space:nowrap;line-height:1.6}.text-btn:hover{color:var(--accent-dark);text-decoration:underline;text-underline-offset:3px}.text-btn .icon{width:14px;height:14px}.icon-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;color:var(--muted)}.icon-btn:hover{background:var(--soft-light);color:var(--accent)}.icon-btn .icon{width:17px;height:17px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-heading h2{font-size:14px;font-weight:650;display:flex;align-items:center;gap:9px}.count-pill{border-radius:5px;min-width:20px;padding:0 5px;text-align:center;font-size:10px;line-height:20px;font-weight:500;background:var(--soft-light);color:var(--accent)}.soft-pill{display:inline-flex;align-items:center;justify-content:center;background:var(--soft-light);border-radius:5px;padding:3px 9px;color:var(--accent);font-size:10px}.notice{display:flex;align-items:flex-start;gap:9px;font-size:11px;line-height:1.8;color:#7b8c76;background:var(--soft-light);border-radius:8px;padding:12px 14px}.notice .icon{width:15px;height:15px;margin-top:2px}.notice.warning{color:#9b794a;background:#faf3e7}.source-note{margin-top:23px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 278px;gap:24px}.dashboard-main{display:flex;flex-direction:column;gap:19px;min-width:0}.dashboard-rail{display:flex;flex-direction:column;gap:20px;min-width:0}.hero{min-height:264px;border-radius:var(--radius);padding:27px 30px 28px;position:relative;background:var(--hero);overflow:hidden}.hero-copy{position:relative;z-index:1;width:65%;pointer-events:none}.hero-copy button{pointer-events:auto}.hero-kicker{font-size:10px;letter-spacing:.6px;color:#7c9474;display:flex;gap:7px;align-items:center;margin-bottom:14px}.hero-kicker>span{width:5px;height:5px;display:inline-block;background:#89a17b;border-radius:50%}.hero h2{font-size:31px;font-weight:600;letter-spacing:1.1px;line-height:1.55;color:#344b36}.hero h2>span{color:#8aa27b}.hero p{font-size:11px;line-height:1.9;color:#829076;margin-top:10px}.hero-actions{display:flex;gap:10px;margin-top:20px;align-items:center}.hero-actions .btn{font-size:11px;padding:9px 13px;min-height:35px}.hero-secondary{background:#ffffff60;border-color:#b4c3a755;color:#6b805f}.hero-art{position:absolute;width:310px;height:240px;right:-8px;bottom:24px;object-fit:contain;z-index:0}.hero-caption{position:absolute;bottom:16px;right:32px;font-size:7px;letter-spacing:1.7px;color:#9aa98b}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.stat-card{display:flex;align-items:center;gap:13px;position:relative;padding:19px 17px;min-height:95px;background:var(--surface);border:1px solid var(--line);border-radius:13px}.stat-icon{width:39px;height:39px;border-radius:11px;display:grid;place-items:center}.stat-icon .icon{width:19px;height:19px}.stat-icon.sage{background:#edf1e6;color:#829771}.stat-icon.peach{background:#faf0e6;color:#c59a78}.stat-icon.lavender{background:#f0edf7;color:#9b8bad}.stat-card small{font-size:10px;color:var(--muted);display:block;margin-bottom:2px}.stat-card strong{font-size:24px;font-weight:600;line-height:1.35;letter-spacing:-.4px}.stat-card strong span{font-size:10px;color:#98a18f;font-weight:400;letter-spacing:0;margin-left:2px}.stat-note{position:absolute;font-size:8px;color:#a9b09f;right:12px;top:13px}.next-panel{padding:20px 23px}.next-label{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:6px}.next-label .icon{width:13px;height:13px}.live-dot{margin-left:auto;width:5px;height:5px;background:#bdc9a8;border-radius:50%}.next-content{display:flex;width:100%;align-items:center;gap:13px;text-align:left;padding:14px 0 0;min-height:66px}.course-monogram{display:grid;place-items:center;width:40px;height:42px;border-radius:9px;font-size:18px;font-weight:550;flex:none}.next-course{min-width:0;flex:1}.next-course h3{font-size:15px;font-weight:600;line-height:1.5}.next-course p{font-size:10px;display:flex;gap:5px;align-items:center;color:var(--muted);margin-top:6px}.next-course p .icon{width:12px;height:12px}.next-course p>span{margin:0 2px}.next-time{text-align:right;white-space:nowrap;line-height:1.5;margin-left:8px}.next-time strong{font-size:10px;color:#99a38f;font-weight:400;display:block}.next-time strong>span{font-size:14px;letter-spacing:.2px;color:var(--ink);margin-left:6px;font-weight:550}.next-time small{font-size:9px;color:#9ca693;display:block;margin-top:5px}.countdown-pill{font-size:9px;color:var(--accent);padding:6px 8px;background:var(--soft-light);border-radius:6px;display:flex;align-items:center;gap:3px;white-space:nowrap;margin-left:2px}.countdown-pill .icon{width:11px;height:11px}.next-empty{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:13px;font-size:15px}.daily-panel{padding:20px 23px 0}.day-tabs{display:flex;background:#f5f6f2;padding:3px;border-radius:6px;gap:2px}.day-tabs button{font-size:10px;padding:4px 10px;color:#929c8c;min-width:42px;border-radius:4px}.day-tabs button:last-child{min-width:29px;padding:4px 7px}.day-tabs .icon{width:12px;height:12px}.day-tabs .selected{background:var(--surface);color:var(--accent);box-shadow:0 1px 4px #283d3210}.empty-day{display:flex;align-items:center;gap:17px;padding:24px 5px 21px;min-height:112px}.empty-symbol{width:58px;height:58px;background:#f8f6ed;display:grid;place-items:center;border-radius:50%;position:relative;color:#b8be99;flex:none}.empty-symbol>.icon{height:28px;width:28px;stroke-width:1.2}.empty-symbol>span{position:absolute;right:3px;top:0;font-size:16px;color:#d5bc87}.empty-day h3{font-size:13px;font-weight:500;letter-spacing:.2px}.empty-day p{font-size:10px;color:#a0a791;margin-top:7px}.empty-day .text-btn{margin-left:auto}.daily-bottom{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:10px 0;font-size:9px;color:#a0a792}.daily-bottom .text-btn{font-size:10px}.lesson-list{padding-top:10px}.lesson-row{display:flex;width:100%;text-align:left;align-items:center;gap:16px;padding:17px 0;border-bottom:1px solid var(--line)}.lesson-row:last-child{border-bottom:0}.lesson-row.finished{opacity:.55}.lesson-time{width:48px;line-height:1.4;flex:none}.lesson-time strong{font-size:13px;font-weight:600;display:block}.lesson-time small{font-size:10px;color:var(--muted);margin-top:5px;display:block}.lesson-line{width:3px;border-radius:4px;height:36px;flex:none}.lesson-info{flex:1;min-width:0}.lesson-info h3{font-size:13px;font-weight:500}.lesson-info p{font-size:10px;display:flex;align-items:center;gap:5px;color:var(--muted);margin-top:6px}.lesson-info p .icon{width:12px;height:12px}.lesson-status{font-size:9px;white-space:nowrap;border-radius:5px;padding:3px 7px;color:var(--muted);background:#f5f6f3}.lesson-status.ongoing,.lesson-status.break{background:var(--soft);color:var(--accent)}.lesson-status.unknown{color:#b48b53;background:#faf2e5}.lesson-row>.icon{height:13px;width:13px;color:#b6bea9}.week-preview{padding:20px 23px 18px}.week-preview .panel-heading h2 .subtle{font-size:9px;margin-left:3px}.preview-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));margin-top:18px;gap:7px}.preview-day{border-radius:8px;display:flex;flex-direction:column;align-items:center;padding:9px 2px 6px;border:1px solid transparent;min-height:93px}.preview-day:hover{background:var(--soft-light)}.preview-day.is-today{background:var(--soft-light);border-color:#d9e3d0}.preview-day>span{font-size:9px;color:#a1aa97}.preview-day>strong{font-size:15px;font-weight:500;color:#7c8a74;margin-top:2px}.preview-day.is-today>strong{background:var(--accent);color:#fff;border-radius:50%;width:25px;height:25px;line-height:25px;font-size:13px;margin-top:1px}.preview-courses{display:flex;flex-direction:column;gap:4px;width:100%;align-items:center;margin-top:9px}.preview-courses>span:not(.preview-free){font-size:8px;line-height:1.4;border-radius:3px;padding:3px 2px;display:block;width:95%;max-width:62px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-free{font-size:10px;color:#c1c8b8}.preview-courses small{font-size:8px;color:var(--muted)}
.mini-calendar{padding:20px 20px 12px}.calendar-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.calendar-heading h2{font-size:11px;font-weight:400;color:#98a18c}.calendar-heading h2 strong{font-size:14px;color:var(--ink);font-weight:600;margin-left:4px}.calendar-heading>div{display:flex;gap:1px}.calendar-heading .icon-btn{width:24px;height:26px}.calendar-heading .icon{width:13px;height:13px}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);font-size:9px;color:#a3ab98;text-align:center;margin-bottom:7px}.calendar-weekdays>span:nth-last-child(-n+2){color:#b8a286}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px 0}.calendar-day{width:29px;height:30px;position:relative;margin:auto;display:grid;place-items:center;font-size:10px;color:#78886e;border-radius:7px;padding:0}.calendar-day:hover{background:var(--soft-light)}.calendar-day.outside{color:#d0d5c8}.calendar-day.today:not(.selected){border:1px solid #c6d6ba}.calendar-day.selected{color:#fff;background:var(--accent);box-shadow:0 3px 7px #54786518}.calendar-day.has-course::after{position:absolute;content:"";width:3px;height:3px;background:#aab993;bottom:2px;border-radius:50%}.calendar-day.selected.has-course::after{background:#fff8}.calendar-legend{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin-top:13px;padding-top:8px}.calendar-legend>span{font-size:9px;color:#9ea78f;display:flex;align-items:center;gap:5px}.calendar-legend>span i{width:4px;height:4px;background:#aab993;border-radius:50%}.calendar-legend .text-btn{font-size:9px}.island-note{background:#f7f0e2;padding:22px 23px;border-radius:var(--radius);position:relative;overflow:hidden;border:1px solid #f0e8d5}.note-title{display:flex;align-items:center;gap:7px;font-size:10px;color:#9e9479;letter-spacing:.5px}.note-title .icon{width:15px;height:15px}.island-note h3{font-size:14px;line-height:1.8;font-weight:550;color:#75684e;margin-top:17px;letter-spacing:.3px}.island-note p{font-size:11px;color:#a39679;line-height:2;margin-top:7px}.note-rule{width:26px;height:1px;background:#d9cdae;margin:16px 0 13px}.island-note button{display:flex;align-items:center;gap:5px;font-size:9px;color:#a2916e;padding:0}.island-note button .icon{width:12px;height:12px}.note-flower{position:absolute;right:17px;bottom:13px;line-height:1;color:#dacba7;font-size:38px;transform:rotate(13deg)}.event-card{padding:21px;display:grid;grid-template-columns:49px 1fr;gap:17px 12px}.event-card>.note-title{grid-column:1/-1;color:#9ba68e}.event-date{background:#f3f5ed;padding:8px 4px;border-radius:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;height:62px}.event-date>span{font-size:9px;color:#98a582;line-height:1.2}.event-date small{font-size:8px;margin-left:1px}.event-date>strong{font-size:23px;font-weight:500;line-height:1.3;color:#6d815c}.event-info h3{font-size:12px;font-weight:550}.event-info p{font-size:9px;color:#a1a993;margin-top:4px;line-height:1.7}.event-info .text-btn{font-size:9px;margin-top:6px}.privacy-note{display:flex;gap:9px;padding:3px 8px;color:#a2ac95}.privacy-note>.icon{width:16px;height:16px;margin-top:2px;stroke-width:1.4}.privacy-note strong{font-size:10px;font-weight:500}.privacy-note p{font-size:9px;color:#b0b6a6;line-height:1.9;margin-top:6px}
.c0{background:#e9eff8;color:#738da9}.c1{background:#e8f0df;color:#7b976a}.c2{background:#f7f1da;color:#a49557}.c3{background:#f9eadf;color:#b78763}.c4{background:#efebf6;color:#9783ac}.c5{background:#f8e8eb;color:#b78690}.course-tag{display:inline-flex;padding:3px 8px;border-radius:5px;font-size:10px;line-height:1.5}.timetable-panel{padding:0;overflow:hidden}.week-toolbar{display:flex;align-items:center;justify-content:space-between;padding:21px 25px;gap:15px}.week-switcher{display:flex;align-items:center;gap:6px}.week-switcher select{font-size:17px;font-weight:600;background:none;border:0;padding:5px 6px;color:var(--ink);cursor:pointer}.week-range{font-size:11px;color:var(--muted);margin-left:13px}.week-summary{display:flex;align-items:center;gap:18px}.week-summary>span{font-size:10px;color:var(--muted)}.timetable-scroll{overflow:auto;overscroll-behavior-x:contain}.timetable{display:grid;grid-template-columns:64px repeat(7,minmax(100px,1fr));grid-template-rows:75px repeat(12,58px);min-width:826px;border-top:1px solid var(--line);position:relative}.table-corner{font-size:11px;text-align:center;align-self:stretch;display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line);gap:4px;color:#8d9a81}.table-corner span{font-size:8px;color:#afb6a4}.table-day{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;background:#fafbf8;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.table-day>span{font-size:11px;color:#929f87}.table-day>strong{font-size:15px;font-weight:500;margin-top:3px}.table-day>small{font-size:7px;position:absolute;bottom:4px;color:#b7a379}.table-day.is-today{background:var(--soft);color:var(--accent)}.table-day.is-today>span{color:var(--accent)}.table-period{display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fcfdfb}.table-period>strong{font-size:12px;font-weight:500;color:#849078;line-height:1.3}.table-period>span{font-size:8px;line-height:1.6;color:#a9b29c;margin-top:4px}.table-period>small{font-size:8px;line-height:1.4;color:#bbc3ae}.table-cell{border-right:1px solid var(--line);border-bottom:1px solid #edf0e8;background:#fff}.table-cell.today-column{background:#f5f8f04d}.table-cell.session-start{border-top:2px solid var(--line)}.table-course{z-index:1;align-self:stretch;justify-self:stretch;margin:5px;padding:12px 10px;border-radius:8px;display:flex;flex-direction:column;text-align:left;gap:7px;min-width:0;overflow:hidden;position:relative;box-shadow:inset 3px 0 #ffffff50;transition:filter .15s,transform .15s}.table-course:hover{filter:brightness(.97);transform:translateY(-2px)}.table-course strong{font-size:13px;line-height:1.45;word-break:break-word}.table-course span{font-size:9px;line-height:1.8;overflow:hidden}.table-course small{font-size:8px;line-height:1.5;opacity:.8}.table-course em{font-size:8px;font-style:normal;margin-top:auto;opacity:.7}.timetable-footer{padding:16px 23px;display:flex;align-items:center;justify-content:space-between;gap:18px}.timetable-footer>span{display:flex;align-items:center;gap:7px;font-size:10px;color:#a0aa93}.timetable-footer>span .icon{width:14px;height:14px}
.course-toolbar{display:flex;align-items:center;gap:18px;margin-bottom:23px}.search-field{display:flex;align-items:center;gap:10px;padding:11px 14px;min-width:220px;background:var(--surface);border:1px solid var(--line);border-radius:9px;max-width:380px;flex:1}.search-field .icon{width:16px;height:16px;color:#a0ac93}.search-field input{border:0;padding:0;background:none;width:100%;color:var(--ink);font-size:12px;min-width:0;outline:0}.search-field:focus-within{outline:2px solid #bacdad}.search-field input::placeholder{color:#a9b29d}.search-field input:focus-visible{outline:0}.filter-select{display:flex;align-items:center;gap:9px;font-size:11px;color:var(--muted)}.filter-select select{padding:8px 11px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);font-size:11px}.course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.course-card{padding:21px 22px;transition:box-shadow .2s,border-color .2s}.course-card:hover{box-shadow:0 8px 25px #29463108;border-color:#d3dfcd}.course-card-top{display:flex;align-items:center;gap:11px;margin-bottom:16px}.course-card-top>.icon-btn{margin-left:auto}.course-weeks{font-size:10px;color:var(--muted)}.course-card-title{padding:0;text-align:left;min-height:46px;width:100%;display:flex;align-items:flex-start}.course-card-title h2{font-size:14px;font-weight:600;line-height:1.7}.course-card-title:hover{color:var(--accent)}.course-card-meta{margin-top:10px}.course-card-meta p{display:flex;align-items:center;gap:8px;font-size:10px;color:#939e86;margin-top:9px}.course-card-meta .icon{width:13px;height:13px;color:#a3b097}.course-card-meta p>span{margin:0 1px}.course-card-bottom{border-top:1px solid var(--line);margin-top:20px;padding-top:12px;display:flex;justify-content:space-between;align-items:center}.empty-search{padding:60px 20px;text-align:center}.empty-search>.icon{width:36px;height:36px;color:#b2c4a4;stroke-width:1.2}.empty-search h3{font-size:17px;font-weight:500;margin-top:16px}.empty-search p{font-size:12px;color:var(--muted);margin:9px 0 22px}.calendar-page-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(290px,1fr);gap:24px}.school-calendar{padding:26px 29px}.timeline{padding-top:30px}.timeline-item{display:flex;align-items:flex-start;gap:19px;position:relative;padding:0 0 32px}.timeline-item:last-child{padding-bottom:0}.timeline-item:not(:last-child)::after{content:"";position:absolute;top:37px;bottom:0;left:18px;width:1px;background:var(--line)}.timeline-node{width:37px;height:37px;display:grid;place-items:center;border-radius:50%;color:var(--accent);background:var(--soft-light);flex:none;z-index:1}.timeline-node.holiday{color:#b79a67;background:#faf3e6}.timeline-node.exam{color:#a190b7;background:#f1edf8}.timeline-node .icon{width:17px;height:17px}.timeline-content{flex:1}.timeline-date{font-size:10px;color:#a1ab95;letter-spacing:.3px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.timeline-date span{font-size:8px;border-radius:4px;background:var(--soft-light);color:var(--accent);padding:2px 5px}.timeline-item.past .timeline-date span{color:#b2b8a9;background:#f6f7f3}.timeline-content h3{font-size:14px;font-weight:550;line-height:1.7;margin-top:6px}.timeline-content p{font-size:11px;color:var(--muted);margin-top:4px}.timeline-item.past .timeline-content h3{color:#859179}.calendar-page-grid>div{display:flex;flex-direction:column;gap:24px}.adjustment-panel,.calendar-policy{padding:24px}.adjustment-panel>.muted{font-size:11px;line-height:1.9;margin-top:16px}.small-empty{padding:29px 15px;text-align:center;font-size:12px;color:#a0ac92}.small-empty small{display:block;font-size:10px;margin-top:4px;color:#b3bca5}.adjustments{display:flex;flex-direction:column;margin:16px 0}.adjustments>button{display:flex;align-items:center;justify-content:space-between;text-align:left;padding:12px 0;border-bottom:1px solid var(--line)}.adjustments>button>span{display:grid;grid-template-columns:18px 1fr;gap:3px 8px}.adjustments strong{font-size:12px;font-weight:500}.adjustments small{grid-column:2;font-size:10px;color:var(--muted)}.adjustments .icon{width:14px;height:14px;color:var(--muted);align-self:center}.calendar-policy .note-title{color:var(--accent)}.calendar-policy p{font-size:11px;color:var(--muted);line-height:2;margin:12px 0}
.appearance-panel{padding:27px}.theme-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:27px}.theme-card{text-align:left;padding:0;border:1px solid var(--line);border-radius:13px;overflow:hidden;background:var(--surface);transition:border-color .2s,transform .2s}.theme-card:hover{transform:translateY(-3px)}.theme-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--soft)}.theme-preview{height:186px;background:#e8edde;position:relative;display:grid;place-items:center;overflow:hidden}.theme-preview img{height:100%;width:100%;object-fit:cover}.theme-0 img{object-fit:contain;width:85%;height:95%}.theme-1{background:#e3efeb}.theme-2{background:#f7e5d0}.theme-check{position:absolute;right:12px;top:12px;width:25px;height:25px;background:var(--accent);color:#fff;display:grid;place-items:center;border-radius:50%;box-shadow:0 2px 8px #28413220}.theme-check .icon{width:14px;height:14px}.theme-description{padding:18px 20px}.theme-description h3{font-size:13px;font-weight:550}.theme-description p{font-size:10px;color:var(--muted);margin-top:5px}.swatches{display:flex;gap:5px;margin-top:14px}.swatches i{width:13px;height:13px;border-radius:50%;background:#e8edde}.swatches i:nth-child(2){background:#b7c6a3}.swatches i:nth-child(3){background:#819674}.swatches i:nth-child(4){background:#53755e}.theme-card:nth-child(2) .swatches i{background:#e2eee8}.theme-card:nth-child(2) .swatches i:nth-child(2){background:#b7d7d5}.theme-card:nth-child(2) .swatches i:nth-child(3){background:#8cb4a8}.theme-card:nth-child(2) .swatches i:nth-child(4){background:#557d72}.theme-card:nth-child(3) .swatches i{background:#f7e7cd}.theme-card:nth-child(3) .swatches i:nth-child(2){background:#debc8c}.theme-card:nth-child(3) .swatches i:nth-child(3){background:#bc976a}.theme-card:nth-child(3) .swatches i:nth-child(4){background:#92643f}.background-panel{padding:26px 27px;margin-top:24px}.background-settings{display:flex;align-items:center;justify-content:space-between;gap:35px;margin-top:24px}.background-upload{display:flex;align-items:center;gap:18px;flex:1}.background-upload>img,.background-upload>.icon{width:80px;height:80px;border-radius:9px;object-fit:cover}.background-upload>.icon{padding:24px;color:#b7c6a3;background:var(--soft-light);stroke-width:1.1}.background-upload h3{font-size:13px;font-weight:500}.background-upload p{font-size:10px;color:var(--muted);margin-top:5px;margin-bottom:12px}.background-upload .btn{font-size:10px;padding:7px 12px;min-height:30px}.strength-control{width:190px;display:block;flex:none;font-size:11px;color:var(--muted)}.strength-control strong{float:right;font-weight:400;color:var(--accent)}.strength-control input{display:block;width:100%;margin:16px 0 9px;accent-color:var(--accent);cursor:pointer}.strength-control>span{display:flex;justify-content:space-between;font-size:9px;color:#a5b196}.settings-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(290px,1fr);gap:24px}.settings-grid>div{display:flex;flex-direction:column;gap:24px}.settings-panel{padding:24px 26px}.settings-panel .panel-heading h2 .icon{width:17px;height:17px;color:var(--accent)}.settings-panel>p{font-size:11px;line-height:1.9;margin:18px 0}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 0;border-bottom:1px solid var(--line)}.setting-row strong{display:block;font-size:12px;font-weight:500}.setting-row small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.setting-row input[type="date"]{font-size:11px;padding:8px 9px;min-width:145px;color:var(--accent);border:1px solid var(--line);border-radius:6px;background:var(--surface)}.switch{position:relative;width:37px;height:22px;flex:none}.switch input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;margin:0;z-index:1}.switch i{display:block;width:37px;height:22px;border-radius:20px;background:#dce3d6;transition:background .2s}.switch i::after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s}.switch input:checked+i{background:var(--accent)}.switch input:checked+i::after{transform:translateX(15px)}.switch input:focus-visible+i{outline:3px solid #b4c5ab;outline-offset:4px}.form-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:20px;margin-top:4px}.form-footer>.muted{font-size:10px}.form-footer>div{display:flex;gap:9px}.time-table{margin-top:20px}.time-table>div{display:grid;grid-template-columns:repeat(3,1fr);padding:9px 15px;border-bottom:1px solid var(--line);font-size:11px;text-align:center;color:var(--muted)}.time-table strong{font-weight:500;color:var(--ink)}.time-table>div:nth-child(2n){background:#fafbf8}.time-table .time-table-head{font-size:9px;color:#a8b29b;padding:9px 15px;background:var(--soft-light);border-radius:5px}.extra-time-title{margin:22px 0 16px}.extra-time-title strong{font-size:12px;font-weight:500}.extra-time-title p{font-size:10px;color:var(--muted);margin-top:5px}.storage-art{height:75px;width:75px;border-radius:50%;background:var(--soft-light);display:grid;place-items:center;margin:27px auto 20px}.storage-art>.icon{height:35px;width:35px;color:#b6c5a4;stroke-width:1.2}.backup-panel>h3{font-size:13px;font-weight:500;text-align:center}.backup-panel>p{font-size:11px;line-height:2;color:var(--muted);margin:16px 0 24px}.backup-actions{display:flex;flex-direction:column;gap:10px}.backup-tip{display:block;text-align:center;font-size:9px;color:#abb59e;margin-top:15px}
dialog{border:1px solid var(--line);padding:28px;border-radius:20px;background:var(--surface);color:var(--ink);width:490px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 50px);box-shadow:0 25px 100px #1a322336;overflow:auto;margin:auto}dialog::backdrop{background:#22362d55;backdrop-filter:blur(4px)}dialog[open]{animation:modal-enter .16s ease-out}.wide-modal{width:600px}.search-modal{width:550px}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.modal-heading .eyebrow{font-size:8px;letter-spacing:1.5px;margin-bottom:5px}.modal-heading h2{font-size:19px;line-height:1.6;font-weight:600}.modal-heading>.icon-btn{align-self:flex-start}.modal-footer{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:19px;margin-top:23px}.detail-chips{display:flex;gap:8px;margin-bottom:25px}.detail-line{display:flex;align-items:flex-start;gap:13px;margin-bottom:21px}.detail-line>.icon{color:#a3b296;width:17px;height:17px;margin-top:3px}.detail-line small{display:block;font-size:10px;color:var(--muted);margin-bottom:4px}.detail-line strong{display:block;font-size:13px;font-weight:500;word-break:break-word;line-height:1.9}.detail-body>.notice{margin-top:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid label,.field-label{display:flex;flex-direction:column;gap:7px;font-size:11px;color:#819174;font-weight:500;position:relative}.form-grid label>span{position:absolute;left:52px;top:0;color:#ba9275}.form-grid input,.form-grid select,.field-label input,.field-label select{width:100%;border:1px solid var(--line);border-radius:7px;padding:10px 11px;color:var(--ink);background:var(--surface);font-size:12px;min-height:39px;min-width:0}.form-grid input::placeholder{color:#b4bea8}.full-field{grid-column:1/-1}.form-hint{font-size:10px;color:var(--muted);margin-top:20px;background:var(--soft-light);padding:10px 12px;border-radius:6px;line-height:1.9}.form-error{font-size:11px;color:#b57562;margin-top:15px}.form-error:empty{display:none}.field-label{margin:20px 0}.danger{color:#b47f71}.danger-filled{color:#fff;background:#b47f71;border-color:#b47f71}.danger-filled:hover{background:#a46e60;border-color:#a46e60}.confirm-copy{font-size:13px;line-height:2.2;color:var(--ink)}.confirm-copy>span{font-size:11px;color:var(--muted)}.confirm-copy small{display:block;color:#a08b75;font-size:11px;line-height:2;margin-top:14px}.pending-list{display:flex;flex-direction:column;gap:22px}.pending-list article{display:flex;gap:13px}.pending-list article>span{background:var(--soft-light);color:var(--accent);width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-size:10px;flex:none;margin-top:2px}.pending-list h3{font-size:13px;font-weight:600;margin-bottom:6px}.pending-list p{font-size:11px;color:var(--muted);line-height:2}.about-body{text-align:center}.about-body>img{width:68px;height:68px;border-radius:20px;margin:27px auto 15px}.about-body h3{font-size:24px;letter-spacing:3px}.about-body h3>span{display:block;font-size:8px;color:var(--muted);font-weight:400;letter-spacing:2px;margin-top:5px}.about-body>p{font-size:12px;color:#94a087;line-height:2.3;margin-top:20px}.about-version{margin-top:25px;font-size:10px;color:#9fa998;line-height:2}.about-body>p.credits{font-size:9px;line-height:1.9;color:#b2b9a8;margin-top:24px}.profile-modal{text-align:center}.profile-modal>.avatar{width:60px;height:60px;font-size:23px;margin:25px auto 19px}.profile-modal h3{font-size:21px;font-weight:500}.profile-modal p{font-size:12px;color:var(--muted);margin:8px 0 20px}.profile-modal>.muted{margin:24px 0 0;line-height:2}.contact-body{text-align:center}.contact-body img{max-height:340px;object-fit:contain;margin:0 auto 20px}.contact-body strong{font-size:15px}.contact-body p{font-size:10px;color:var(--muted);margin-top:8px}.modal-search{max-width:none;margin-bottom:17px;padding:12px 14px}.search-result{width:100%;display:flex;align-items:center;gap:13px;text-align:left;padding:13px 8px;border-bottom:1px solid var(--line);border-radius:7px}.search-result:hover{background:var(--soft-light)}.search-result .course-monogram{width:33px;height:35px;font-size:15px}.search-result>span:nth-child(2){flex:1;min-width:0}.search-result strong{font-size:12px;font-weight:500;display:block}.search-result small{font-size:10px;color:var(--muted);display:block;margin-top:4px}.search-result>.icon{width:13px;height:13px;color:#aebaa1}#global-results{max-height:46vh;overflow:auto}#toasts{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);z-index:100;display:flex;flex-direction:column;align-items:center;gap:9px;width:max-content;max-width:calc(100vw - 36px);pointer-events:none}.toast{display:flex;align-items:center;gap:9px;border:1px solid #dce5d7;background:#fffffff7;color:var(--accent);border-radius:10px;padding:12px 18px;font-size:12px;box-shadow:0 8px 35px #20382a15;animation:toast-enter .25s ease-out;max-width:520px;line-height:1.8}.toast .icon{width:16px;height:16px}.toast.error{color:#ad7c61;border-color:#e8d9cb}
@keyframes modal-enter{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}@keyframes toast-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(min-width:1600px){.hero-art{width:375px;height:270px;right:20px;bottom:12px}.hero{min-height:283px}.hero h2{font-size:34px}.stat-card{padding:21px 24px}.hero-copy{width:57%}}
@media(max-width:1250px){.sidebar{width:204px;padding:31px 16px 0}.workspace{margin-left:204px}main{padding:25px 25px 0}.topbar{padding:0 25px}.page-footer{padding:24px 25px}.dashboard-grid{grid-template-columns:minmax(0,1fr) 252px;gap:19px}.hero{padding:25px;min-height:270px}.hero-art{width:267px;right:-35px}.hero h2{font-size:28px}.hero p{font-size:10px}.hero-actions{gap:8px}.hero-actions .btn{padding:8px 11px;font-size:10px}.hero-copy{width:70%}.stat-card{padding:17px 12px;gap:9px}.stat-icon{width:33px;height:35px}.stat-card strong{font-size:22px}.stat-note{display:none}.next-panel{padding:18px}.next-content{gap:9px}.next-course h3{font-size:13px}.countdown-pill{display:none}.next-time{margin-left:0}.daily-panel,.week-preview{padding-left:18px;padding-right:18px}.empty-day{gap:11px}.empty-day p{font-size:9px}.empty-day .text-btn{font-size:10px}.mini-calendar{padding:18px 17px 12px}.island-note{padding:21px}.event-card{padding:20px 17px}.course-grid{gap:16px}.course-card{padding:20px 17px}.course-card-meta p{font-size:9px}.theme-grid{gap:15px}.theme-preview{height:158px}.theme-description{padding:16px}.theme-description h3{font-size:11px}.settings-panel{padding:23px}.week-range{margin-left:8px;font-size:10px}.week-summary{gap:10px}}
@media(max-width:1050px){.dashboard-grid{grid-template-columns:1fr}.dashboard-rail{display:grid;grid-template-columns:1fr 1fr;gap:20px}.privacy-note{align-self:start;padding:8px}.hero-art{width:345px;right:20px;bottom:14px}.hero-copy{width:60%}.hero h2{font-size:31px}.hero{min-height:278px;padding:27px 31px}.hero-actions .btn{font-size:11px;padding:9px 14px}.stats-grid{gap:16px}.stat-card{padding:18px 20px;gap:13px}.stat-icon{width:39px;height:39px}.stat-note{display:block}.countdown-pill{display:flex}.next-panel,.daily-panel,.week-preview{padding-left:24px;padding-right:24px}.next-course h3{font-size:15px}.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-page-grid,.settings-grid{grid-template-columns:1fr}.calendar-page-grid>div,.settings-grid>div:last-child{display:grid;grid-template-columns:1fr 1fr;align-items:start}.theme-grid{gap:14px}.theme-preview{height:135px}.appearance-panel{padding:22px}.background-settings{flex-direction:column;align-items:flex-start;gap:25px}.strength-control{width:100%;max-width:340px}.week-toolbar{flex-wrap:wrap;padding:18px}.week-summary{margin-left:auto}.timetable-footer{align-items:flex-start}.timetable-footer>span{align-items:flex-start}.timetable-footer .text-btn{font-size:9px}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:transform .22s;width:224px;padding-top:27px}.sidebar.open{transform:translateX(0)}.sidebar-profile{padding:16px 0}.sidebar .brand{margin-bottom:28px}.sidebar .semester-card{margin-top:22px;margin-bottom:15px}.sidebar .sidebar-about{margin-bottom:12px}.nav-overlay.visible{display:block;position:fixed;inset:0;background:#22362d55;z-index:19;border-radius:0}.workspace{margin-left:0}.topbar{height:64px;padding:0 20px}.mobile-toggle{display:inline-flex;margin-left:-7px}.breadcrumb{gap:9px}.topbar-right{gap:9px}.search-trigger{min-width:0;gap:0}.search-trigger .icon{width:18px;height:18px}.search-trigger span,.search-trigger kbd,.topbar-separator{display:none}.notification{margin-left:4px}.top-avatar{height:30px;width:30px;font-size:11px}main{padding:24px 20px 0}.page-heading{min-height:78px;margin-bottom:23px}.page-heading h1{font-size:25px;letter-spacing:.3px}.page-heading .eyebrow{font-size:9px}.page-heading p{font-size:11px}.date-badge{font-size:9px;padding:6px 9px}.date-badge .icon{width:12px;height:12px}.page-footer{padding:24px 20px;font-size:9px;flex-wrap:wrap;gap:7px}.hero-art{width:325px;right:0;bottom:15px}.hero{padding:25px 29px;min-height:268px}.hero h2{font-size:30px}.hero-copy{width:65%}.semester-card small{font-size:9px}.dashboard-main{gap:17px}.stat-card{padding:17px 15px}.stat-note{display:none}.next-panel{padding:18px 21px}.daily-panel,.week-preview{padding-left:21px;padding-right:21px}.course-grid{gap:16px}.course-card{padding:20px}.course-card-meta p{font-size:10px}.theme-preview{height:155px}.theme-grid{grid-template-columns:1fr}.theme-card{display:grid;grid-template-columns:42% 1fr}.theme-description{padding:22px}.theme-description h3{font-size:14px}.theme-description p{font-size:11px}.calendar-page-grid,.settings-grid{gap:20px}.calendar-page-grid>div,.settings-grid>div:last-child{gap:20px}.school-calendar{padding:24px}.settings-panel{padding:23px}.week-range{font-size:10px}.timetable-footer{padding:15px 18px;flex-direction:column;gap:5px}.source-note{font-size:10px}.page-heading>.btn{font-size:11px;padding:9px 12px}.timeline-date{font-size:9px}.calendar-policy,.adjustment-panel{padding:22px}dialog{padding:24px;max-height:calc(100dvh - 32px)}}
@media(max-width:520px){main{padding:23px 16px 0}.topbar{padding:0 16px}.breadcrumb>span{font-size:10px}.breadcrumb>strong{font-size:11px}.page-heading{align-items:flex-start;margin-bottom:22px}.page-heading h1{font-size:23px}.page-heading p{font-size:10px;margin-top:7px;line-height:1.8}.page-heading .eyebrow{font-size:9px;letter-spacing:.5px}.date-badge{display:none}.page-heading>.btn{align-self:center;font-size:10px;padding:8px 10px}.page-heading>.btn>.icon{width:13px;height:13px}.hero{padding:25px 22px;min-height:270px}.hero h2{font-size:29px;letter-spacing:.3px}.hero-copy{width:100%}.hero-kicker{font-size:9px;margin-bottom:15px}.hero p{font-size:10px}.hero-art{width:225px;height:190px;right:-61px;bottom:51px;opacity:.48}.hero-actions{margin-top:21px;gap:8px}.hero-actions .btn{font-size:10px;padding:9px 11px}.hero-caption{font-size:6px;bottom:12px;right:18px;letter-spacing:1.4px}.stats-grid{gap:8px}.stat-card{padding:14px 11px;gap:7px;min-height:84px;align-items:flex-start}.stat-icon{width:25px;height:27px;border-radius:7px;margin-top:3px}.stat-icon .icon{width:14px;height:14px}.stat-card small{font-size:8px;white-space:nowrap}.stat-card strong{font-size:22px}.stat-card strong span{font-size:8px;margin-left:0}.next-panel{padding:17px}.next-content{gap:9px;flex-wrap:wrap;padding-top:13px}.next-course{flex:1}.next-course h3{font-size:13px}.course-monogram{height:37px;width:35px;font-size:16px}.next-course p{font-size:9px;gap:3px}.next-time{padding-left:44px;width:100%;text-align:left;margin-top:1px}.next-time strong{display:inline;font-size:10px}.next-time strong span{font-size:12px}.next-time small{display:inline;font-size:8px;margin-left:8px}.countdown-pill{display:none}.daily-panel{padding:17px 17px 0}.panel-heading h2{font-size:13px;gap:7px}.day-tabs button{font-size:9px;min-width:35px;padding:3px 8px}.day-tabs button:last-child{min-width:27px}.count-pill{line-height:18px;font-size:9px;min-width:18px}.empty-day{padding:24px 0 22px;gap:12px;flex-wrap:wrap}.empty-symbol{width:45px;height:45px}.empty-symbol>.icon{height:24px;width:24px}.empty-day h3{font-size:12px}.empty-day p{font-size:9px;max-width:235px;line-height:1.8}.empty-day .text-btn{margin-left:57px;font-size:10px;padding:0;margin-top:-8px}.daily-bottom{font-size:8px;padding:9px 0}.daily-bottom .text-btn{font-size:9px}.daily-bottom .text-btn .icon{height:11px;width:11px}.daily-bottom .tiny-dot{margin:0 4px}.week-preview{padding:17px 15px}.week-preview .panel-heading h2{font-size:12px}.week-preview .panel-heading h2 .subtle{display:none}.week-preview .panel-heading>.text-btn{font-size:9px}.preview-days{gap:3px;margin-top:13px}.preview-day{padding:8px 1px 5px;min-height:100px}.preview-day>span{font-size:8px}.preview-day>strong{font-size:13px}.preview-courses>span:not(.preview-free){font-size:7px;padding:3px 0}.dashboard-rail{grid-template-columns:1fr;gap:17px}.mini-calendar{padding:22px 24px 15px}.calendar-heading h2{font-size:12px}.calendar-heading h2 strong{font-size:15px}.calendar-weekdays{font-size:11px;margin-bottom:12px}.calendar-days{gap:8px 0}.calendar-day{width:34px;height:34px;font-size:11px}.calendar-legend{margin-top:16px;padding-top:10px}.calendar-legend>span,.calendar-legend .text-btn{font-size:10px}.island-note{padding:23px}.island-note p{font-size:12px}.island-note h3{font-size:16px}.note-title{font-size:11px}.island-note button{font-size:10px}.island-note .note-flower{font-size:48px;right:25px;bottom:24px}.event-card{padding:23px;grid-template-columns:57px 1fr}.event-date{height:72px}.event-info h3{font-size:13px}.event-info p{font-size:10px}.privacy-note{padding:10px}.course-toolbar{flex-wrap:wrap;gap:12px;margin-bottom:19px}.search-field{flex:0 0 100%;max-width:none;min-width:0;font-size:11px}.filter-select{font-size:10px}.filter-select select{font-size:10px}.course-grid{grid-template-columns:1fr;gap:17px}.course-card{padding:21px}.course-card-title{min-height:0}.course-card-title h2{font-size:15px}.course-card-meta{display:grid;grid-template-columns:1fr 1fr;gap:1px 10px;margin-top:14px}.course-card-meta p{font-size:10px}.course-card-meta p:nth-child(3){grid-column:1/-1;grid-row:2}.course-card-meta p:nth-child(4){grid-column:2;grid-row:1}.course-card-meta p:nth-child(2){grid-column:1/-1;grid-row:3}.course-card-top{margin-bottom:13px}.course-card-bottom{margin-top:18px}.calendar-page-grid>div,.settings-grid>div:last-child{display:flex;flex-direction:column}.calendar-page-grid>div>.panel,.settings-grid>div:last-child>.panel{width:100%}.school-calendar{padding:22px 18px}.school-calendar .panel-heading h2{font-size:12px}.timeline{padding-top:27px}.timeline-item{gap:13px;padding-bottom:28px}.timeline-node{height:31px;width:31px}.timeline-item:not(:last-child)::after{left:15px;top:31px}.timeline-date{gap:5px;letter-spacing:0;font-size:9px}.timeline-content h3{font-size:13px}.timeline-content p{font-size:10px}.settings-panel{padding:21px}.setting-row{gap:14px}.setting-row strong{font-size:11px}.setting-row small{font-size:9px;line-height:1.8;max-width:180px}.setting-row input[type="date"]{min-width:128px;font-size:10px;max-width:133px;padding:8px 5px}.settings-panel .form-footer{flex-wrap:wrap;gap:13px}.settings-panel .form-footer>.btn{margin-left:auto}.appearance-panel,.background-panel{padding:20px}.appearance-panel .panel-heading{align-items:flex-start;flex-direction:column;gap:7px}.appearance-panel .panel-heading .subtle{font-size:10px}.theme-grid{margin-top:20px;gap:17px}.theme-preview{height:135px}.theme-description{padding:21px 14px}.theme-description h3{font-size:12px}.theme-description p{font-size:9px}.theme-check{width:22px;height:22px;top:9px;right:9px}.background-upload{align-items:flex-start;gap:13px}.background-upload>img,.background-upload>.icon{height:53px;width:53px}.background-upload>.icon{padding:15px}.background-upload h3{font-size:11px}.background-upload p{font-size:9px;line-height:1.9}.background-panel .panel-heading .text-btn{font-size:9px}.week-toolbar{gap:11px;padding:16px 13px}.week-switcher{flex-wrap:wrap;gap:2px;width:100%}.week-switcher select{font-size:15px;padding:4px 5px}.week-range{font-size:9px;margin-left:auto}.week-summary{justify-content:space-between;width:100%;gap:11px}.week-summary>span{font-size:9px}.week-summary .btn.small{font-size:9px;min-height:27px;padding:5px 9px}.table-course{padding:10px 8px}.timetable-footer{font-size:9px}.timetable-footer>span{font-size:9px;line-height:1.9}.page-footer{padding:23px 16px;font-size:8px}dialog{padding:22px 20px;max-width:calc(100vw - 24px);border-radius:16px;max-height:calc(100dvh - 24px)}.modal-heading h2{font-size:17px}.modal-heading{margin-bottom:21px}.modal-footer{gap:7px;flex-wrap:wrap}.modal-footer>.btn{font-size:11px;padding:9px 13px}.form-grid{gap:14px 12px}.form-grid label{font-size:10px}.form-grid input,.form-grid select{font-size:11px;padding:10px}.form-footer>div{gap:6px}.form-footer .btn{font-size:11px;padding:9px 13px}.form-footer>.danger{font-size:10px}.form-footer>.danger .icon{width:13px}.toast{padding:11px 14px;font-size:11px}.detail-line strong{font-size:12px}.contact-body img{max-height:300px}.pending-list p{font-size:10px}.pending-list h3{font-size:12px}.search-result strong{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(min-width:761px){.mobile-toggle{display:none}}
:root[data-theme="1"] .hero{background:linear-gradient(120deg,#eef3e8,#e0ede7)}
:root[data-theme="1"] .hero h2{color:#344c40}
:root[data-theme="1"] .hero-kicker,:root[data-theme="1"] .hero p{color:#7b9280}
:root[data-theme="1"] .hero-art{width:350px;height:255px;right:5px;bottom:19px;mix-blend-mode:multiply}
:root[data-theme="1"] .brand img{border:1px solid #dce5d3;background:#fff;object-fit:cover}
:root[data-theme="1"] .brand small{color:#88a180}
@media(min-width:1600px){:root[data-theme="1"] .hero-art{width:395px;height:280px;right:22px;bottom:14px}}
@media(min-width:1051px) and (max-width:1250px){:root[data-theme="1"] .hero-art{width:285px;height:228px;right:-28px;bottom:25px}:root[data-theme="1"] .hero h2{font-size:27px}}
@media(max-width:520px){:root[data-theme="1"] .hero{min-height:370px;padding-bottom:20px}:root[data-theme="1"] .hero-copy{width:100%}:root[data-theme="1"] .hero h2{font-size:27px}:root[data-theme="1"] .hero p{max-width:70%;font-size:10px}:root[data-theme="1"] .hero-art{width:205px;height:154px;right:6px;bottom:47px;opacity:1}:root[data-theme="1"] .hero-actions{position:relative;margin-top:143px;z-index:1}:root[data-theme="1"] .hero-caption{right:20px;bottom:14px;font-size:6px}}
@media print{.sidebar,.topbar,.page-footer,.hero-actions,.text-btn,.btn,#toasts{display:none!important}.workspace{margin:0}main{padding:0}.page-heading{margin-bottom:15px}.timetable-scroll{overflow:visible}.timetable{min-width:0;grid-template-columns:45px repeat(7,1fr);grid-template-rows:55px repeat(12,48px)}.table-course{padding:5px;font-size:9px;-webkit-print-color-adjust:exact;print-color-adjust:exact}.table-course strong{font-size:10px}.table-course span{font-size:8px}.dashboard-grid{display:block}.dashboard-rail{display:none}.panel{break-inside:avoid;box-shadow:none}}

.sidebar{overflow-y:auto}.class-notice{padding:21px 24px;margin-bottom:22px}.class-notice .panel-heading h2{gap:8px}.class-notice .panel-heading h2>.icon{color:var(--accent)}.routine-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:21px;margin-top:18px}.routine-summary article{display:flex;gap:11px;align-items:flex-start}.routine-summary article>div{min-width:0}.routine-symbol{display:grid;place-items:center;width:35px;height:35px;border-radius:10px;background:var(--soft);color:var(--accent);flex:none}.routine-symbol.flag{background:#f5e7ec;color:#a66e82}.routine-summary strong{font-size:15px;font-weight:650;display:block}.routine-summary strong small{font-size:11px;font-weight:500;margin-left:5px;color:var(--accent)}.routine-summary p{font-size:11px;line-height:1.7;margin-top:4px}.routine-summary div>small{display:block;font-size:10px;color:var(--muted);margin-top:4px;overflow-wrap:anywhere}.routine-policy{font-size:10px;color:var(--muted);border-top:1px solid var(--line);padding-top:12px;margin-top:17px;line-height:1.8}.source-update{margin-bottom:20px;display:flex;align-items:center;gap:9px}.source-update>span{flex:1}.source-update .text-btn{flex:none}.activity-tag{font-size:9px;font-weight:400;color:var(--accent);background:var(--soft-light);padding:2px 5px;border-radius:4px;margin-left:7px;vertical-align:middle}.activity-note{display:block;color:var(--muted);font-size:10px;line-height:1.7;margin-top:5px;overflow-wrap:anywhere}.activity-conflict{display:block;font-size:10px;color:#a16c32;margin-top:5px;line-height:1.7}.activity-row .lesson-info p{display:block;overflow-wrap:anywhere;line-height:1.8}.activity-row .lesson-info p .icon{margin-right:5px}.activity-row.finished{opacity:.72}.daily-bottom>div{display:flex;gap:12px}.duty-panel{padding:21px 23px}.duty-panel h3{font-size:17px;font-weight:600;line-height:1.65;margin-top:14px;overflow-wrap:anywhere}.duty-panel p{font-size:11px;color:var(--muted);margin-top:9px;line-height:1.9}.duty-panel .duty-state{color:var(--accent);font-size:11px;margin:14px 0 8px}.duty-panel>.text-btn{margin-top:12px}.duty-panel>small{display:block;color:var(--muted);font-size:10px;margin-top:11px;line-height:1.7}.routine-week{padding:20px 0 0;margin-bottom:24px;overflow:hidden}.routine-week>.panel-heading{padding:0 24px 16px}.routine-week h2 .subtle{font-size:10px}.routine-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-width:826px;border-top:1px solid var(--line)}.routine-day{padding:12px 9px 15px;border-right:1px solid var(--line);background:var(--surface);min-width:0}.routine-day:last-child{border-right:0}.routine-day.is-today{background:var(--soft-light)}.routine-day-heading{font-size:11px;text-align:center;display:block;width:100%;color:var(--muted);margin-bottom:10px}.routine-day-heading strong{display:inline;font-size:12px;color:var(--ink);margin-left:5px;font-weight:500}.routine-day>p{font-size:10px;color:var(--muted);text-align:center;padding:15px 3px}.routine-slot{display:flex;flex-direction:column;gap:3px;border-radius:7px;padding:10px 9px;text-align:left;width:100%;margin-top:7px;overflow-wrap:anywhere}.routine-slot strong{font-size:12px;font-weight:600}.routine-slot span{font-size:10px}.routine-slot small{font-size:9px;line-height:1.6}.class-fields{margin-top:22px}.class-settings textarea{display:block;resize:vertical;width:100%;font:inherit;padding:11px 12px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:7px;line-height:1.9;margin-top:8px;min-height:120px}.class-settings textarea:focus-visible{outline:3px solid #a9bfa2;outline-offset:3px}.class-settings .field-label{margin-top:16px}.class-settings .form-hint{line-height:1.9}.activity-detail-copy{font-size:13px;line-height:2;margin:16px 0}.supplement-list{max-height:48vh;overflow:auto;margin-top:20px}.supplement-list article{padding:12px 0;border-top:1px solid var(--line)}.supplement-list strong{font-size:13px}.supplement-list small{display:block;color:var(--muted);font-size:11px;line-height:1.9;margin-top:3px}.class-settings .form-error{margin-top:12px}.lesson-info h3{overflow-wrap:anywhere}
@media(max-width:1050px){.routine-summary{gap:13px}.routine-summary article{gap:8px}.routine-summary strong{font-size:13px}.routine-symbol{width:30px;height:30px}.routine-summary strong small{font-size:10px;display:block;margin-left:0}.class-settings>div:last-child{grid-template-columns:1fr}.class-settings .duty-panel{width:100%}}
@media(max-width:620px){.class-notice{padding:18px;margin-bottom:18px}.class-notice .panel-heading{align-items:flex-start;gap:8px;flex-wrap:wrap}.class-notice .panel-heading h2{font-size:13px}.routine-summary{grid-template-columns:1fr;gap:15px;margin-top:15px}.routine-summary strong{font-size:15px}.routine-summary strong small{display:inline;font-size:11px;margin-left:6px}.routine-summary p{font-size:12px}.routine-summary div>small{font-size:11px}.routine-symbol{width:35px;height:35px}.routine-policy{font-size:10px}.source-update{flex-wrap:wrap;align-items:flex-start}.source-update .text-btn{margin-left:28px}.daily-bottom{flex-wrap:wrap;gap:8px}.daily-bottom>div{margin-left:auto;gap:12px}.activity-row{gap:10px}.activity-row .lesson-status{font-size:8px;padding:3px 4px}.activity-row .lesson-info h3{font-size:12px}.activity-tag{margin-left:4px;font-size:8px}.activity-row .lesson-info p,.activity-note,.activity-conflict{font-size:10px}.routine-week>.panel-heading{padding:0 18px 14px;flex-wrap:wrap;gap:7px}.routine-week h2 .subtle{display:none}.class-settings .form-grid{grid-template-columns:1fr}.class-settings .full-field{grid-column:auto}.class-settings .form-hint{font-size:11px}.duty-panel{padding:20px}.sidebar .semester-card{margin-top:20px}.sidebar .nav-divider{margin-top:16px;margin-bottom:16px}}
@media print{.routine-grid{min-width:0}.routine-slot{padding:5px;font-size:9px;-webkit-print-color-adjust:exact;print-color-adjust:exact}.routine-slot strong{font-size:10px}.routine-week{margin-bottom:12px}.routine-policy{color:#555}.routine-summary{gap:12px}.routine-day{padding:7px}.routine-week .panel-heading .subtle{display:none}}
.login-page{min-height:100dvh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at 50% 15%,#e3eee5 0,transparent 52%),var(--bg)}.login-card{width:min(100%,430px);padding:38px 40px;border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:0 22px 70px #20382a12}.login-card>img{width:58px;height:58px;border-radius:17px;margin:0 auto 23px}.login-card>.eyebrow{text-align:center}.login-card h1{text-align:center;font-size:27px;font-weight:650;margin-top:3px}.login-intro{text-align:center;color:var(--muted);font-size:12px;line-height:1.9;margin:10px 0 24px}.login-card .field-label{margin:17px 0}.login-card .field-label input{width:100%;border:1px solid var(--line);border-radius:8px;padding:12px;color:var(--ink);background:var(--surface);font-size:14px;min-height:45px}.login-transport-warning{background:#f6f0e8;border:1px solid #eadbc8;border-radius:8px;padding:10px 12px;color:#886c4b;font-size:10px;line-height:1.8;margin:15px 0}.login-card>.btn{width:100%;justify-content:center;margin-top:6px}.login-card>small{display:block;text-align:center;font-size:10px;color:var(--muted);margin-top:17px;line-height:1.8}.personal-duty{display:flex;flex-direction:column;gap:5px;padding:12px;margin-top:16px;background:var(--soft-light);border:1px solid var(--line);border-radius:9px}.personal-duty strong{font-size:11px;color:var(--accent-dark)}.personal-duty span{font-size:11px;color:var(--ink);line-height:1.8}.topbar-right>.btn.small:first-of-type{max-width:185px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:760px){.login-card{padding:31px 25px}.topbar-right>.btn.small:first-of-type{max-width:96px;font-size:9px;padding:7px 8px}}
