*{box-sizing:border-box} :root{font-family:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#263c36;background:#f5f7f8;font-synthesis:none}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;background:white;border:1px solid #dce4e0;border-radius:7px;padding:9px 14px;color:inherit;font-size:14px}button:hover{background:#edf3f0}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #76aa95;outline-offset:3px}.primary{background:#2e6654;color:white;border-color:#2e6654;padding:12px 20px}.primary:hover{background:#244f42}header{height:84px;border-bottom:1px solid #e3e8e5;background:#fff;display:flex;align-items:center;padding:0 5%;gap:20px}.brand{text-decoration:none;color:#253d34;font-weight:750;font-size:25px;display:flex;align-items:center;gap:12px}.brand-icon{font-size:27px;color:#fff;background:#2e6654;border-radius:10px;width:37px;height:37px;text-align:center}.brand small{font-size:11px;letter-spacing:2px;color:#74847d;margin-left:5px}.header-note{margin-left:auto;color:#8b9791;font-size:13px;letter-spacing:2px}.avatar{background:#e9eee9;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;font-size:13px;margin-left:20px}main{max-width:1440px;margin:auto;padding:42px 5% 20px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.eyebrow{font-size:11px;letter-spacing:2.4px;color:#7f9288}h1{font-size:33px;letter-spacing:1px;margin:10px 0 8px;font-weight:650}.dot{color:#4f8b70;padding-left:5px}.page-heading p{font-size:14px;color:#89958f;margin:0}.workspace{display:grid;grid-template-columns:210px minmax(0,1fr);gap:28px}.semester{border-radius:12px;background:#e8efeb;padding:22px}.tiny{font-size:12px;color:#778a7f}.semester h3{font-size:23px;font-weight:550;margin:12px 0}.semester p{font-size:13px}.semester p span{background:#d6e7dc;color:#3d7655;font-size:11px;padding:3px 6px;border-radius:4px;margin-left:12px}.semester hr{border:0;border-top:1px solid #d4dfd7;margin:20px 0}.semester strong{display:block;font-size:15px;margin-top:8px;font-weight:550}.aside-label{display:flex;justify-content:space-between;color:#809087;font-size:12px;margin:27px 3px 17px}.legend-item{display:flex;align-items:center;gap:10px;font-size:13px;margin:17px 3px}.swatch{width:9px;height:9px;border-radius:3px;flex-shrink:0}.import-card{border:1px dashed #cbd7d0;border-radius:10px;padding:20px;margin-top:30px}.import-symbol{font-size:23px;color:#557865}.import-card h3{font-size:14px;margin:12px 0}.import-card p{font-size:12px;color:#8a9890;line-height:1.9}.import-card button{border:0;background:transparent;padding:5px 0;font-size:12px;width:100%;text-align:left;color:#3e7059}.import-card button span{float:right}.local-note{font-size:11px;color:#92a096;margin:21px 0}.schedule-panel{background:white;border:1px solid #e0e6e2;border-radius:12px;overflow:hidden;box-shadow:0 4px 18px #203d3210}.toolbar{display:flex;align-items:center;justify-content:space-between;padding:21px 23px 16px;gap:10px}.week-switch{display:flex;align-items:center;gap:13px}.week-switch button{padding:0;border:0;font-size:24px;color:#73877b}.week-switch strong{font-size:19px;white-space:nowrap}.week-switch span{font-size:11px;background:#edf3ef;padding:4px 7px;border-radius:4px;color:#678174}.toolbar-right{display:flex;gap:8px}.toolbar-right button{font-size:12px}.week-strip{display:flex;gap:5px;padding:0 23px 18px}.week-strip button{flex:1;border:0;padding:7px 0;color:#859189;font-size:12px;border-radius:5px;background:#f7f8f7}.week-strip button.active{background:#2e6654;color:white}.summary{display:flex;justify-content:space-between;padding:12px 23px;border-top:1px solid #eff2f0;border-bottom:1px solid #eff2f0;font-size:12px;color:#8d9891}.summary span:first-child{color:#54735f}.grid{display:grid;grid-template-columns:54px repeat(5,minmax(115px,1fr));padding:0 12px 12px;min-width:650px}.day-head{text-align:center;padding:16px 0 13px;font-size:13px;color:#5d7366;border-bottom:1px solid #e8ede9}.day-head small{font-size:11px;display:block;color:#98a49c;margin-top:6px}.day-head.today{color:#2e6654;font-weight:700}.slot-label{font-size:12px;color:#7a8d81;text-align:center;border-bottom:1px solid #eef1ef;padding-top:22px}.slot-label small{display:block;margin-top:8px;font-size:11px;color:#acb6ae}.cell{border-bottom:1px solid #eef1ef;border-left:1px solid #f0f3f1;min-height:118px;padding:5px;display:flex;flex-direction:column;gap:5px}.course{border:0;border-left:3px solid var(--accent);background:var(--bg);border-radius:5px;display:block;text-align:left;padding:12px 10px;color:var(--ink);width:100%;height:100%;min-height:103px;transition:transform .15s}.course:hover{background:var(--bg);filter:brightness(.98);transform:translateY(-2px)}.course strong{font-size:13px;line-height:1.5;display:block;font-weight:600}.course small{display:block;font-size:11px;line-height:1.7;opacity:.8;margin-top:6px}.course .period{font-size:10px;opacity:.65;margin-top:8px}.panel-footer{display:flex;justify-content:space-between;align-items:center;padding:5px 22px 15px;color:#96a39a;font-size:11px}.panel-footer button{border:0;padding:5px;font-size:11px;color:#6d8274}footer{font-size:10px;letter-spacing:1px;color:#a6b0aa;padding:25px 0;display:flex;justify-content:space-between}footer span{letter-spacing:2px}dialog{border:1px solid #dbe3df;border-radius:16px;width:min(620px,94vw);max-height:90vh;padding:28px;color:#263c36;box-shadow:0 20px 100px #1b312633}dialog::backdrop{background:#182b2660;backdrop-filter:blur(4px)}.dialog-head{display:flex;justify-content:space-between;align-items:center}.dialog-head h2{font-size:23px;margin:6px 0}.dialog-head small{font-size:10px;letter-spacing:2px;color:#8d9c93}.dialog-head .close{border:0;font-size:25px;padding:3px 10px}dialog p{font-size:13px;color:#809086;line-height:1.8}.drop{position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;border:1px dashed #a7bfb0;padding:25px 15px;border-radius:10px;background:#f4f8f5;cursor:pointer}.drop>span{font-size:30px}.drop strong{font-size:15px}.drop small{font-size:11px;color:#8a9b90}.drop input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.import-help{display:flex;justify-content:space-between;gap:8px;margin:16px 0}.import-help button{font-size:12px}.field{display:flex;flex-direction:column;gap:8px;font-size:14px;margin:15px 0}.field small{font-size:11px;color:#819387}input,select,textarea{border:1px solid #d6e0d9;border-radius:6px;padding:10px;min-width:0;color:#304d3e;background:#fff}textarea{width:100%;font-size:12px;line-height:1.8}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.form-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}#image-preview{width:100%;max-height:230px;object-fit:contain;margin-top:15px}#status,#course-error{font-size:13px;line-height:1.7;color:#a25d39;margin-top:10px}#review-list{max-height:200px;overflow:auto;font-size:13px;line-height:2;border:1px solid #dbe5de;padding:10px}#delete{color:#ae5b51;margin-right:auto}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:#264d3c;color:white;padding:12px 22px;border-radius:8px;font-size:14px;display:none;z-index:10}.table-scroll{overflow-x:auto}#source-dialog{width:min(1100px,95vw)}@media(min-width:1450px){.cell{min-height:140px}}@media(max-width:1000px){main{padding:30px 3%}.workspace{grid-template-columns:170px minmax(0,1fr);gap:18px}.semester{padding:16px}.semester h3{font-size:19px}.import-card{padding:15px}.toolbar{padding:17px 15px}.week-strip{padding:0 15px 15px}}@media(max-width:720px){header{height:65px;padding:0 5%}.header-note{display:none}.avatar{margin-left:auto}.brand small{font-size:9px}main{padding:28px 4%}.page-heading{margin-bottom:23px}h1{font-size:27px}.eyebrow{font-size:9px}.page-heading .primary{font-size:13px;padding:10px 12px}.workspace{display:block}aside{display:none}.toolbar-right button{font-size:11px;padding:7px}.week-switch{gap:9px}.week-switch strong{font-size:16px}.summary{padding:12px;font-size:11px}.panel-footer{padding:10px;font-size:10px}.week-strip{gap:2px}.week-strip button{font-size:10px}.grid{min-width:640px}.cell{min-height:113px}.import-help{flex-wrap:wrap}dialog{padding:20px}.form-row{gap:6px}footer{font-size:9px}}
/* Comfortable reading sizes and the import review workspace. */
.page-heading p,.legend-item,.semester p,.semester strong,.toolbar-right button,.course strong,.day-head,.slot-label,.field,.summary{font-size:14px}.course small,.course .period,.tiny,.aside-label,.local-note,.panel-footer,.panel-footer button,.day-head small,.slot-label small,.week-strip button,.import-card p,.import-card button,.field small,dialog p,.import-help button,.drop small{font-size:12px}.course strong{line-height:1.6}.course .period{line-height:1.6}.cell{min-height:135px}.course{padding:12px 10px}.week-strip{overflow:auto}.week-strip button{min-width:25px}.import-card h3{font-size:16px}.semester{background:#e2ece5}.schedule-panel{box-shadow:0 7px 28px #234c3508}.review-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;border:1px solid #dbe5de;border-radius:10px;padding:15px;margin:0 0 18px}.review-row legend{font-size:14px;padding:0 8px;font-weight:600}.review-field{display:flex;flex-direction:column;gap:6px;font-size:12px}.review-field:first-of-type,.review-field:nth-of-type(5),.review-field:last-of-type{grid-column:1/-1}.review-field input{font-size:14px;width:100%}.review-field input:invalid{border-color:#c96a50}#review-list{max-height:480px;border:0;padding:0 5px 0 0}#status:not(:empty){background:#f6f1e7;padding:12px;border-radius:7px}#recognize:disabled{opacity:.8;animation:breathe 1.5s ease-in-out infinite}dialog{scrollbar-gutter:stable}#import-dialog{width:min(720px,95vw)}#image-options p{font-size:14px}input:focus,textarea:focus,select:focus{outline:2px solid #739c85;outline-offset:1px}@keyframes breathe{50%{opacity:.5}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important;transition:none!important}}@media(max-width:720px){.summary span:last-child{display:none}.summary:after{content:'左右滑动查看 →';font-size:12px;color:#85978b}.grid{min-width:750px}.page-heading p{font-size:14px}.cell{min-height:135px}.week-strip{padding-bottom:12px}.toolbar-right button{font-size:12px}footer{font-size:11px}}
