@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;800&display=swap');
:root{--bg:#f7f5ef;--paper:#fffefa;--ink:#353b31;--muted:#828477;--line:#e6e5db;--sage:#617457;--pale:#edf1e6;--clay:#b28269;--clay-pale:#f7ece4;--sand:#f0ead9;--radius:14px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:14px}button,input,select{font:inherit}button,a,select{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{opacity:.5;cursor:wait}a{color:inherit;text-decoration:none}button{border:0;background:none}button:focus-visible,a:focus-visible{outline:3px solid #92a783;outline-offset:4px}input:focus,select:focus{outline:2px solid #a8b69c;outline-offset:1px}.sidebar{position:fixed;width:224px;height:100dvh;background:#eeede4;border-right:1px solid var(--line);padding:35px 22px 18px;display:flex;flex-direction:column}.brand{display:flex;gap:10px;align-items:center;font-family:Manrope,sans-serif;font-size:23px;font-weight:650;letter-spacing:-1px}.brand-mark{font-size:41px;font-weight:400;color:var(--sage);line-height:1}.brand-small{display:block;font-family:'DM Sans',sans-serif;font-size:9px;letter-spacing:4px;font-weight:500;margin:0 0 0 2px}.workspace{font-size:9px;font-weight:700;letter-spacing:1.5px;color:#929586;margin:57px 12px 17px}.nav{width:100%;display:flex;align-items:center;gap:12px;padding:13px 14px;margin-bottom:6px;text-align:left;border-radius:8px;font-size:12px;font-weight:500}.nav span{font-size:19px;color:#8b9081}.nav.active{background:#dde4d3;color:#4c6044}.nav.active span{color:#4c6044}.nav small{margin-left:auto;background:#e4e3d8;border-radius:4px;padding:2px 5px;font-size:10px}.side-note{margin-top:auto;padding:28px 14px 34px}.line-art{font-family:Georgia,serif;font-size:90px;color:#acb29c;line-height:1;transform:rotate(-12deg);margin-bottom:13px}.side-note h3{font-family:Georgia,serif;font-size:21px;font-weight:400;line-height:1.4;margin:0 0 10px}.side-note p{font-size:11px;color:var(--muted);line-height:1.8}.import-side{border:1px dashed #bfc5b2;border-radius:8px;padding:13px 10px;display:flex;gap:8px;font-size:10px;align-items:center}.import-side span{font-size:18px}.import-side b{margin-left:auto;font-size:14px}.side-bottom{display:flex;gap:9px;align-items:center;border-top:1px solid #dddccf;margin-top:22px;padding-top:20px;font-size:10px}.mini-avatar{background:#dedecf;width:29px;height:29px;border-radius:50%;display:grid;place-items:center;font-family:Georgia,serif;font-size:15px}.side-bottom small{display:block;font-size:8px;color:var(--muted);margin-top:4px}main{margin-left:224px}header{height:77px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 40px;font-size:11px}.breadcrumb{color:#96988c}.breadcrumb span{margin:0 16px;color:#bcbdaf}.breadcrumb b{font-weight:500;color:#656d5b}.header-actions{display:flex;gap:20px;align-items:center}.local-indicator{color:#8b9080;font-size:10px}.local-indicator i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#8b9c78;margin-right:6px}.icon-btn{border:1px solid #dadcd0;width:25px;height:25px;border-radius:50%;color:#858d78}.main-content{max-width:1580px;margin:auto;padding:39px 40px 20px}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;gap:20px}.eyebrow{font-size:9px;letter-spacing:2px;color:#92967f;font-weight:650;margin-bottom:13px}h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(27px,2.65vw,42px);letter-spacing:-1.25px;margin:0 0 12px;line-height:1.2}h1 em{font-weight:400;color:#788468}p{margin:0}.intro p{font-size:12px;color:var(--muted)}.term-tag{white-space:nowrap;padding:11px 13px;border:1px solid #dcdfcf;border-radius:7px;background:#f0f1e8;font-size:9px;letter-spacing:1px;color:#6c795d}.term-tag small{letter-spacing:0;padding-left:10px;color:#929a84}.source-banner{background:#eeeee3;border:1px solid #e1e2d4;padding:14px 18px;display:flex;align-items:center;gap:13px;border-radius:10px;margin-bottom:30px}.source-icon{background:#e0e4d4;border-radius:7px;width:34px;height:37px;display:grid;place-items:center;color:#78886a;font-size:21px}.source-banner b{font-weight:500;font-size:11px}.source-banner p{font-size:10px;color:#91957f;margin-top:5px}.status-pill{font-size:9px;color:#71845d;background:#e1e8d5;border-radius:4px;padding:5px 8px;margin-left:5px}.source-banner .text-btn{margin-left:auto}.text-btn{font-size:11px;color:#758267;white-space:nowrap}.text-btn span{margin-left:7px}.workspace-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.tabs{background:#ebece2;padding:4px;border-radius:8px;display:flex;gap:3px}.tabs button{font-size:11px;padding:10px 17px;border-radius:5px;color:#919483}.tabs button.selected{background:var(--paper);color:#4c5d42;box-shadow:0 1px 5px #434c3212}.tabs button span{margin-left:8px;font-size:13px}.setup{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px;gap:15px}.section-fields{display:flex;gap:13px}.section-fields label{font-size:8px;letter-spacing:1.3px;color:#969986;font-weight:600;display:block}.section-fields select{display:block;width:128px;margin-top:9px;border:1px solid #dfe1d3;background:#fffefa;color:#566049;border-radius:7px;padding:11px 13px;font-size:11px;font-weight:500;letter-spacing:0}.setup-actions,.row{display:flex;gap:10px;align-items:center}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:11px 15px;border-radius:7px;font-size:11px;font-weight:500;white-space:nowrap;min-height:36px}.button.secondary{border:1px solid #dcdfd1;background:#fffefa;color:#747e65}.button.primary{background:#697b59;color:white;border:1px solid #697b59}.button:hover{filter:brightness(.97)}.schedule-card{background:var(--paper);border:1px solid #e1e3d8;border-radius:var(--radius);box-shadow:0 4px 16px #3e4b2c03;overflow:visible}.schedule-toolbar{display:flex;align-items:center;justify-content:space-between;padding:22px 22px 20px;gap:15px}.schedule-name{display:flex;align-items:center;gap:12px}.tiny-mark{color:#8b9879;background:#f1f3ea;padding:7px;font-size:17px;border-radius:7px}h2{font-size:15px;font-weight:600;margin:0 0 5px}.schedule-name p{font-size:9px;color:#929781}.clash-free{font-size:8px;background:#eef2e7;color:#7b8c65;border:1px solid #e0e7d2;border-radius:20px;padding:5px 8px;margin-left:2px;white-space:nowrap}.clash-free.warning{color:#b05c43;background:#fae9df;border-color:#edc4b3}.view-switch{display:flex;border:1px solid #e3e5d8;border-radius:6px;padding:3px}.view-switch button{color:#a1a790;padding:4px 7px;font-size:16px;border-radius:3px}.view-switch button.selected{background:#eff1e7;color:#71835f}.export-wrap{position:relative}.export-menu{position:absolute;z-index:10;top:42px;right:0;background:var(--paper);box-shadow:0 8px 30px #34402322;padding:6px;border:1px solid var(--line);border-radius:9px;width:210px}.export-menu button{display:block;padding:11px 9px;width:100%;text-align:left;font-size:12px;border-radius:5px}.export-menu button:hover{background:#edf0e5}.table-scroll{overflow-x:auto}.week-grid{min-width:850px;display:grid;grid-template-columns:66px repeat(6,minmax(122px,1fr));padding:0 14px}.day-head{height:50px;border-bottom:1px solid #e9ebe0;display:flex;align-items:center;justify-content:center;gap:6px;color:#7a846d;font-size:10px;font-weight:600;letter-spacing:.3px}.day-head small{font-size:8px;color:#a1a993}.day-column,.time-column{height:648px;position:relative;background:repeating-linear-gradient(to bottom,transparent 0,transparent 107px,#eef0e7 107px,#eef0e7 108px);border-right:1px solid #eef0e7}.day-column:last-child{border-right:0}.time-column{border:0;color:#a0a58f;font-size:9px}.time-label{position:absolute;top:0;padding-top:11px;left:9px}.class-event{position:absolute;left:5px;right:5px;border-radius:7px;padding:9px 8px;background:#edf1e6;border:1px solid #e4e9da;border-left:3px solid #9aa88b;overflow:hidden;text-align:left;width:calc(100% - 10px);transition:box-shadow .15s}.class-event:hover{box-shadow:0 4px 9px #56653d1a;z-index:4}.class-event.lab{background:#f7eee7;border-color:#f0e3d6;border-left-color:#c7a589}.class-event.personal{background:#f4efde;border-color:#e5ddbf;border-left-color:#b2a36d}.class-event.clash{border:2px solid #c77558}.event-subject{display:block;font-size:11px;font-weight:600;line-height:1.35;margin-bottom:5px;overflow-wrap:anywhere}.event-time{display:block;font-size:8px;color:#818975;line-height:1.5}.event-room{display:block;font-size:9px;font-weight:500;margin-top:7px;color:#788468;overflow-wrap:anywhere}.lab .event-room{color:#ad8b72}.event-teacher{display:block;font-size:8px;color:#929a84;margin-top:4px}.event-section{font-size:8px;color:#8c967f;margin-top:4px;display:block}.empty-day{position:absolute;top:230px;left:0;right:0;text-align:center;color:#b6bdab;font-family:Georgia,serif;font-style:italic;font-size:13px}.empty-day span{display:block;font-family:Arial,sans-serif;font-size:21px;font-style:normal;color:#c3cab7;margin-bottom:10px}.schedule-footer{display:flex;justify-content:space-between;border-top:1px solid #e9ebe0;padding:17px 23px;font-size:8px;color:#a1a68f}.legend{display:flex;gap:19px;color:#90997f}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:5px}.sage{background:#a6b496}.clay{background:#d5b69d}.sand{background:#cbbd84}.bottom-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:17px;margin-top:19px}.insight-card,.tip-card{border:1px solid #e4e5d9;border-radius:10px;display:flex;align-items:center;padding:19px 23px;gap:14px}.insight-icon{font-size:21px;color:#9aa68a}.insight-card b{font-size:21px;font-weight:500;letter-spacing:-.5px}.insight-card p{font-size:9px;color:#969c89;margin-top:4px}.insight-divider{height:28px;border-left:1px solid #dfe2d4;margin:0 18px}.tip-card{background:#eff0e6;gap:15px;padding:16px 21px}.tip-card>span{font-size:30px;color:#a2ad8e}.tip-card p{font-size:10px;line-height:1.8;color:#939a84}.tip-card b{display:block;font-weight:500;color:#758167}.tip-card button{margin-left:auto}footer{margin-top:31px;padding-bottom:5px;display:flex;justify-content:space-between;font-size:8px;color:#a0a590}footer i{font-style:normal;margin:0 8px}.hidden{display:none!important}.custom-panel{border:1px solid #e1e3d5;border-radius:12px;padding:22px;background:#f0f1e7;margin-bottom:22px}.custom-heading{display:flex;justify-content:space-between;align-items:center;gap:15px}.custom-heading h3{font-family:Georgia,serif;font-size:21px;font-weight:400;margin:0 0 8px}.custom-heading p{font-size:11px;color:#8e9580}.catalog-controls{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-top:22px}label{font-size:11px;color:#7b836c}input,select{background:var(--paper);border:1px solid #d8ddcc;padding:10px 12px;border-radius:6px;color:#4c5843}input{display:block;width:100%;margin-top:7px}.catalog-controls label{flex:1;max-width:450px}.catalog{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:9px;margin-top:17px;max-height:300px;overflow:auto}.course{border:1px solid #dfe4d3;border-radius:8px;background:var(--paper);padding:12px;display:flex;gap:10px;align-items:center}.course>div{flex:1}.course b{font-size:11px;display:block}.course p{font-size:9px;color:#959c87;line-height:1.6;margin-top:5px}.course button{border:1px solid #d6ddca;border-radius:5px;width:25px;height:25px;color:#80926c}.course.added{background:#e6ecdc}.selected-courses{display:flex;flex-wrap:wrap;gap:6px;margin-top:15px}.chip{font-size:10px;padding:7px 10px;background:#dfe7d3;border-radius:20px}.chip button{margin-left:8px}.list-view{padding:5px 23px 20px}.list-day{font-family:Georgia,serif;font-size:19px;border-top:1px solid var(--line);padding:18px 0 10px}.list-class{display:flex;align-items:center;gap:20px;border-bottom:1px solid #efefe6;padding:14px 0;font-size:12px}.list-class .list-time{width:100px;font-size:11px;color:#929981}.list-class>div{flex:1}.list-class p{font-size:10px;color:#939b84;margin-top:5px}#clash-detail{margin:0 22px 16px;border:1px solid #edcbb6;background:#fff1e5;border-radius:7px;padding:11px;font-size:11px;color:#a26347;line-height:1.8}.saved-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(265px,1fr));gap:17px}.saved-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:24px}.saved-card h3{font-family:Georgia,serif;font-size:22px;font-weight:400;margin:15px 0 10px;overflow-wrap:anywhere}.saved-card p{font-size:11px;color:#929b82;margin-bottom:20px;line-height:1.7}.saved-card .row{justify-content:space-between}.empty-state{padding:75px 25px;text-align:center;border:1px dashed #cbd3be;border-radius:12px}.empty-state h3{font-family:Georgia,serif;font-weight:400;font-size:28px}.empty-state p{color:#929b82;margin-bottom:25px}dialog{border:1px solid #dce2d0;border-radius:16px;background:var(--paper);color:var(--ink);padding:0;max-width:590px;width:calc(100% - 32px);box-shadow:0 20px 90px #34402338}dialog::backdrop{background:#343c3055;backdrop-filter:blur(4px)}#modal-body{padding:30px}.modal-top{display:flex;justify-content:space-between;align-items:start;gap:16px}.modal-top h2{font-family:Georgia,serif;font-size:27px;font-weight:400}.modal-top button{font-size:23px;color:#929981}.modal-copy{color:#8b957c;font-size:12px;line-height:1.8;margin:15px 0 20px}.drop-zone{border:1px dashed #aab89a;border-radius:10px;padding:33px 20px;text-align:center;background:#f1f4e9;cursor:pointer}.drop-zone>span{font-size:35px;color:#8fa17b;display:block;margin-bottom:12px}.drop-zone b{font-size:14px;display:block}.drop-zone p{font-size:11px;color:#919b82;margin-top:9px}.modal-footer{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:23px}.modal-footer small{font-size:10px;color:#919c80}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:22px}.form-grid .full{grid-column:1/-1}.form-grid select{width:100%;display:block;margin-top:7px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:25px 0;font-size:12px}.detail-grid small{display:block;font-size:9px;color:#929b82;margin-bottom:7px;letter-spacing:1px}.import-report{padding:14px;background:#edf1e5;border-radius:7px;font-size:12px;line-height:1.9;margin:18px 0}.error{color:#ab5c43;background:#fae8dd;border-radius:6px;padding:12px;font-size:12px;line-height:1.7;margin-top:15px}.help-list{padding-left:20px;font-size:13px;line-height:1.9;color:#7e8971}.help-list li{margin-bottom:12px}#toast{position:fixed;bottom:28px;left:calc(50% + 80px);transform:translate(-50%,20px);background:#536449;color:white;padding:13px 22px;border-radius:9px;box-shadow:0 6px 28px #34402320;font-size:12px;opacity:0;pointer-events:none;z-index:100;transition:all .25s;max-width:85vw}#toast.show{opacity:1;transform:translate(-50%,0)}.loading{padding:80px;text-align:center;color:#949d84}.review-table{max-height:300px;overflow:auto;font-size:11px}.review-table table{width:100%;border-collapse:collapse}.review-table td,.review-table th{text-align:left;padding:9px;border-bottom:1px solid var(--line)}.muted{color:#929b82;font-size:11px;line-height:1.8}.batch-controls{display:flex;gap:10px;margin-bottom:20px}.batch-controls input{margin:0;flex:1}.course-count{font-size:9px;margin-left:6px;color:#8a9879}@media(min-width:1500px){.day-column,.time-column{height:720px;background-size:100% 120px;background-image:linear-gradient(to bottom,transparent 119px,#eef0e7 119px)}}@media(max-width:1150px){.sidebar{width:190px;padding-left:16px;padding-right:16px}main{margin-left:190px}header{padding:0 25px}.main-content{padding:30px 25px}.section-fields select{width:105px}.button{padding:10px 12px}.setup{flex-wrap:wrap}.setup-actions{margin-left:auto}.clash-free{display:none}.bottom-grid{grid-template-columns:1fr}.tip-card{display:none}.term-tag{display:none}.brand{font-size:21px}.side-note{padding-left:5px}}@media(max-width:760px){.sidebar{position:static;width:100%;height:auto;padding:18px 20px;display:block;border-right:0;border-bottom:1px solid var(--line)}.brand{font-size:21px}.brand-mark{font-size:34px}.sidebar nav{display:flex;margin-top:19px;gap:4px}.nav{font-size:10px;margin:0;padding:9px;gap:7px;justify-content:center}.nav span{font-size:16px}.nav small{margin-left:0}.workspace,.side-note,.side-bottom,.import-side{display:none}main{margin:0}header{height:52px;padding:0 20px}.main-content{padding:27px 17px 20px}.local-indicator{font-size:8px}h1{font-size:29px;letter-spacing:-.8px}h1 em{display:block;margin-top:4px}.intro{margin-bottom:24px}.intro p{font-size:11px;line-height:1.8;max-width:300px}.eyebrow{font-size:8px;letter-spacing:1.4px}.source-banner{padding:12px;gap:9px;margin-bottom:22px}.source-banner b{font-size:10px}.source-banner p{font-size:9px}.source-banner .status-pill{display:none}.source-banner .text-btn{font-size:9px}.source-icon{width:27px;min-width:27px;height:33px}.tabs button{padding:10px;font-size:10px}.workspace-bar>.text-btn{font-size:9px}.setup{gap:18px;margin-bottom:20px}.section-fields{width:100%;gap:9px}.section-fields label{flex:1}.section-fields select{width:100%;padding:10px}.setup-actions{width:100%;margin:0;justify-content:space-between}.setup-actions .button{flex:1}.schedule-toolbar{padding:17px 14px}.tiny-mark{display:none}.schedule-name{gap:0}h2{font-size:14px}.export-controls{gap:6px}.export-controls .button{padding:9px 12px}.schedule-name p{font-size:8px}.schedule-footer{padding:15px 13px;font-size:7px}.legend{gap:10px}.insight-card{padding:17px;gap:10px}.insight-card b{font-size:20px}.insight-card p{font-size:8px}.insight-divider{margin:0 10px}footer{gap:20px;font-size:7px;line-height:1.7}.custom-panel{padding:17px}.custom-heading{align-items:start}.custom-heading h3{font-size:21px}.custom-heading p{font-size:10px}.custom-heading .row{flex-direction:column;gap:5px}.catalog-controls{align-items:stretch;flex-direction:column;gap:12px}.catalog-controls label{max-width:none}.catalog{max-height:290px;grid-template-columns:1fr}.form-grid{gap:12px}#toast{left:50%}.list-class{gap:10px}.list-class .list-time{width:80px;font-size:10px}#modal-body{padding:24px}.batch-controls{flex-wrap:wrap}}
@media print{@page{size:A4 landscape;margin:10mm}body{background:white;font-size:11px}.sidebar,header,.intro,.source-banner,.workspace-bar,.setup,.custom-panel,.bottom-grid,footer,.export-controls,.schedule-footer,.clash-free,#clash-detail,dialog,#toast{display:none!important}main{margin:0}.main-content{padding:0;max-width:none}.schedule-card{border:0;box-shadow:none}.schedule-toolbar{padding:0 0 20px}.table-scroll{overflow:visible}.week-grid{min-width:0}.day-column,.time-column{height:500px}.class-event{print-color-adjust:exact;-webkit-print-color-adjust:exact}.event-subject{font-size:10px}.event-room,.event-teacher{font-size:8px}}

@media print{.event-teacher{display:none}.day-column,.time-column{height:500px}}
