:root{--paper: #f5f2ea;--paper-2: #efece3;--panel: #fffefb;--ink: #1c1b18;--ink-2: #5d5850;--ink-3: #8e8779;--line: #e3dcce;--line-2: #efe9dd;--accent: #b03a2e;--accent-2: #8f2c22;--accent-soft: #fbeee9;--jade: #2f6b5e;--jade-soft: #e9f2ee;--blue: #2b5c8a;--blue-soft: #e9f0f7;--gold: #a97d2f;--gold-soft: #f8f0dd;--radius: 14px;--radius-sm: 9px;--shadow: 0 1px 2px rgba(28, 27, 24, .04), 0 10px 28px rgba(28, 27, 24, .05);--shadow-lg: 0 2px 6px rgba(28, 27, 24, .06), 0 24px 60px rgba(28, 27, 24, .12);--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", sans-serif;--serif: "Songti SC", "STSong", "Noto Serif SC", "SimSun", "Source Han Serif SC", serif;--mono: "SF Mono", "JetBrains Mono", "Cascadia Mono", Consolas, "Courier New", monospace}*{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;font-weight:600}p{margin:0}a{color:inherit;text-decoration:none}button{font-family:inherit;font-size:inherit;color:inherit;cursor:pointer}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}::selection{background:#f2d6cf}.shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:26px 18px 20px;background:var(--paper-2);border-right:1px solid var(--line)}.brand{padding:0 8px 22px}.brand h1{font-family:var(--serif);font-size:22px;letter-spacing:1px}.brand .sub{margin-top:6px;font-size:11.5px;color:var(--ink-3);letter-spacing:.4px}.nav{display:flex;flex-direction:column;gap:2px}.nav a{position:relative;display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:9px;color:var(--ink-2);font-size:13.5px;transition:background .15s,color .15s}.nav a:hover{background:#fff9;color:var(--ink)}.nav a.active{background:var(--panel);color:var(--ink);box-shadow:0 1px 2px #0000000d}.nav a.active:before{content:"";position:absolute;left:0;top:50%;width:2px;height:16px;margin-top:-8px;background:var(--accent);border-radius:2px}.nav .ico{width:15px;height:15px;opacity:.75;flex:none}.side-foot{margin-top:auto;padding-top:16px}.countdown{padding:14px 14px 12px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.countdown .lab{font-size:11px;color:var(--ink-3);letter-spacing:.6px}.countdown .num{font-family:var(--mono);font-size:27px;line-height:1.15;margin-top:2px;letter-spacing:-1px}.countdown .num small{font-size:12px;color:var(--ink-3);margin-left:3px;letter-spacing:0}.countdown .meta{margin-top:6px;font-size:11px;color:var(--ink-3)}.main{min-width:0;padding:34px 40px 80px}.wrap{max-width:1060px;margin:0 auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:26px}.page-head h2{font-family:var(--serif);font-size:25px;letter-spacing:.5px}.page-head .desc{margin-top:5px;font-size:15px;color:var(--ink-2);font-size:12.5px}.page-head .actions{display:flex;gap:8px;align-items:center}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 20px;border-bottom:1px solid var(--line-2)}.card-head h3{font-size:13.5px;font-weight:600;letter-spacing:.3px}.card-head .hint{font-size:11.5px;color:var(--ink-3)}.card-body{padding:18px 20px}.grid{display:grid;gap:14px}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;border:1px solid var(--line);background:var(--panel);font-size:13px;transition:all .15s;white-space:nowrap}.btn:hover{border-color:#d3cab8;background:#fbf9f3}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-2);border-color:var(--accent-2)}.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-2)}.btn.ghost:hover{background:#0000000a;color:var(--ink)}.btn.sm{padding:5px 10px;font-size:12px;border-radius:7px}.btn:disabled{opacity:.45;cursor:not-allowed}.chip{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink-2);font-size:12px;transition:all .15s}.chip:hover{border-color:#d3cab8}.chip.active{background:var(--ink);border-color:var(--ink);color:#fff}.tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:6px;font-size:11px;line-height:1.7;white-space:nowrap}.tag.jade{background:var(--jade-soft);color:var(--jade)}.tag.accent{background:var(--accent-soft);color:var(--accent)}.tag.blue{background:var(--blue-soft);color:var(--blue)}.tag.gold{background:var(--gold-soft);color:var(--gold)}.tag.grey{background:#f0ece3;color:var(--ink-2)}.field{display:flex;flex-direction:column;gap:6px}.field>label{font-size:11.5px;color:var(--ink-3);letter-spacing:.4px}input[type=text],input[type=date],input[type=number],textarea,select{width:100%;padding:9px 11px;background:#fbf9f3;border:1px solid var(--line);border-radius:var(--radius-sm);outline:none;transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus,select:focus{border-color:#cbb9a2;box-shadow:0 0 0 3px #b03a2e12;background:#fff}textarea{resize:vertical;min-height:74px;line-height:1.65}input:disabled,textarea:disabled,select:disabled{background:#f2efe7;color:var(--ink-3);cursor:not-allowed}.mono{font-family:var(--mono)}.muted{color:var(--ink-3)}.tiny{font-size:11.5px}.divider{height:1px;background:var(--line-2);margin:14px 0}.task-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;align-items:start}.task-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}.empty{padding:34px 20px;text-align:center;color:var(--ink-3);font-size:13px}.stat{padding:18px 20px}.stat .lab{font-size:11.5px;color:var(--ink-3);letter-spacing:.5px;display:flex;align-items:center;justify-content:space-between}.stat .val{margin-top:8px;font-family:var(--mono);font-size:30px;line-height:1.1;letter-spacing:-1.2px}.stat .val small{font-size:12px;color:var(--ink-3);letter-spacing:0;margin-left:4px}.stat .foot{margin-top:10px;font-size:11.5px;color:var(--ink-2)}.subj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px 22px}.subj-row{min-width:0}.subj-row-top{display:flex;align-items:baseline;gap:6px;margin-bottom:5px;min-width:0}.subj-row-top .subj{flex:none}.subj-row-top .paper{font-size:10px;color:var(--ink-3);letter-spacing:.3px;padding:0 4px;border:1px solid var(--line);border-radius:3px;line-height:14px}.subj-row-top .from{font-size:10.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.subj-row-top .hrs{margin-left:auto;font-size:11px;color:var(--ink-2);white-space:nowrap}.subj-foot{margin-top:14px;font-size:11.5px;color:var(--ink-2);line-height:1.7;padding-left:10px;border-left:2px solid var(--gold-soft)}.bar{height:4px;border-radius:3px;background:var(--paper-2);overflow:hidden}.bar>i{display:block;height:100%;background:var(--jade);border-radius:3px;transition:width .4s}.bar.thin{height:3px}.track-block{margin-bottom:14px}.exam-track{display:grid;grid-template-columns:repeat(auto-fit,minmax(212px,1fr));gap:14px}@media(max-width:1280px){.exam-track{grid-template-columns:repeat(2,minmax(0,1fr))}}.exam-item{position:relative;padding:15px 18px 14px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.exam-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--ink-3)}.exam-item.gold:before{background:var(--gold)}.exam-item.blue:before{background:var(--blue)}.exam-item.accent:before{background:var(--accent)}.exam-item.jade:before{background:var(--jade)}.exam-item.next{border-color:#d8cdb8;box-shadow:0 1px 2px #1c1b180a,0 12px 30px #1c1b1814}.exam-item.passed{opacity:.62}.exam-item.now{border-color:var(--accent)}.ex-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.ex-name{font-size:12.5px;font-weight:600;letter-spacing:.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ex-num{margin-top:7px;font-family:var(--mono);font-size:27px;line-height:1.15;letter-spacing:-1px}.ex-num small{font-size:12px;color:var(--ink-3);margin-left:3px;letter-spacing:0}.exam-item.passed .ex-num,.exam-item.now .ex-num{font-size:21px;letter-spacing:0}.ex-date{margin-top:4px;font-size:11px;color:var(--ink-2);font-family:var(--mono);line-height:1.5}.ex-date>span{white-space:nowrap}.ex-date .ex-week:before{content:" · "}.ex-bar{height:3px;margin-top:11px;border-radius:3px;background:var(--paper-2);overflow:hidden}.ex-bar>i{display:block;height:100%;border-radius:3px;background:var(--ink-3);transition:width .4s}.exam-item.gold .ex-bar>i{background:var(--gold)}.exam-item.blue .ex-bar>i{background:var(--blue)}.exam-item.accent .ex-bar>i{background:var(--accent)}.exam-item.jade .ex-bar>i{background:var(--jade)}.task{display:flex;gap:11px;padding:11px 12px 11px 11px;margin-bottom:8px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:inset 3px 0 #ded6c7;transition:background .15s,border-color .15s,box-shadow .15s}.task:last-child{margin-bottom:0}.task.on{background:var(--jade-soft);border-color:#bcd8cd;box-shadow:inset 3px 0 0 var(--jade)}.task .box{flex:none;width:18px;height:18px;margin-top:2px;border:1.8px solid #b3aa99;border-radius:5px;background:#fff;position:relative;display:grid;place-items:center;transition:all .15s;cursor:pointer}.task .box:hover{border-color:var(--accent)}.task .box.on{background:var(--jade);border-color:var(--jade)}.task .box.on:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:12px;height:12px;background:center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 7.9l3.3 3.3L12.4 4.7' fill='none' stroke='%23fff' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.task .box.locked{cursor:not-allowed;opacity:.6}.task .body{min-width:0;flex:1}.task .lab{font-size:11px;color:var(--ink-2);letter-spacing:.5px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.task .txt{font-size:13.5px;color:var(--ink);line-height:1.65;white-space:pre-line}.task .txt .ln+.ln{margin-top:1px;color:var(--ink-2)}.task.on .txt{color:var(--ink-2);text-decoration:line-through;text-decoration-color:#9dbfb1;text-decoration-thickness:1.2px}.task .txt.empty-task{color:#bdb5a6}.task .lab .time{font-family:var(--mono);font-size:11px;color:var(--jade);letter-spacing:.3px}.task.on .lab .time{color:#2b5c51}.task .lab .subj{font-size:11px;color:var(--ink-2)}.task .lab .mins{font-size:11px;color:var(--ink-3)}.task .lab .subj,.other-row .subj,.done-item .subj,.item-note .subj,.week-card .line em{display:inline-block;padding:0 6px;border-radius:4px;font-size:10.5px;line-height:17px;letter-spacing:.2px;white-space:nowrap;background:#f0ece3;color:var(--ink-2)}.task .lab .subj.english,.other-row .subj.english,.done-item .subj.english,.item-note .subj.english,.week-card .line em.english{background:var(--blue-soft);color:var(--blue)}.task .lab .subj.math,.other-row .subj.math,.done-item .subj.math,.item-note .subj.math,.week-card .line em.math{background:var(--gold-soft);color:var(--gold)}.task .lab .subj.major,.other-row .subj.major,.done-item .subj.major,.item-note .subj.major,.week-card .line em.major{background:var(--jade-soft);color:var(--jade)}.task .lab .subj.politics,.other-row .subj.politics,.done-item .subj.politics,.item-note .subj.politics,.week-card .line em.politics{background:var(--accent-soft);color:var(--accent)}.task .lab .subj.check,.other-row .subj.check,.done-item .subj.check,.item-note .subj.check,.week-card .line em.check{background:#efe9dd;color:var(--ink-2)}.task .lab .subj.general,.other-row .subj.general,.done-item .subj.general,.item-note .subj.general,.week-card .line em.general{background:#f0ece3;color:var(--ink-2)}.task .lab .subj.fashi,.other-row .subj.fashi,.done-item .subj.fashi,.item-note .subj.fashi,.week-card .line em.fashi{background:var(--gold-soft);color:var(--gold)}.task .lab .subj.xianfa,.other-row .subj.xianfa,.done-item .subj.xianfa,.item-note .subj.xianfa,.week-card .line em.xianfa{background:#f3ecfa;color:#6a4b8f}.task .lab .subj.minfa,.other-row .subj.minfa,.done-item .subj.minfa,.item-note .subj.minfa,.week-card .line em.minfa{background:var(--jade-soft);color:var(--jade)}.task .lab .subj.minsu,.other-row .subj.minsu,.done-item .subj.minsu,.item-note .subj.minsu,.week-card .line em.minsu{background:#e6f0ef;color:#1f5f5b}.task .lab .subj.jingjifa,.other-row .subj.jingjifa,.done-item .subj.jingjifa,.item-note .subj.jingjifa,.week-card .line em.jingjifa{background:#eef2e0;color:#5c6b26}.task .lab .subj.fakao,.other-row .subj.fakao,.done-item .subj.fakao,.item-note .subj.fakao,.week-card .line em.fakao{background:var(--accent-soft);color:var(--accent)}.task .lab .subj.mianshi,.other-row .subj.mianshi,.done-item .subj.mianshi,.item-note .subj.mianshi,.week-card .line em.mianshi{background:#efeaf4;color:#6b5a86}.task .lab .subj.tingshuo,.other-row .subj.tingshuo,.done-item .subj.tingshuo,.item-note .subj.tingshuo,.week-card .line em.tingshuo,.subj.english{background:var(--blue-soft);color:var(--blue)}.subj.fashi{background:var(--gold-soft);color:var(--gold)}.subj.xianfa{background:#f3ecfa;color:#6a4b8f}.subj.minfa{background:var(--jade-soft);color:var(--jade)}.subj.minsu{background:#e6f0ef;color:#1f5f5b}.subj.jingjifa{background:#eef2e0;color:#5c6b26}.subj.politics,.subj.fakao{background:var(--accent-soft);color:var(--accent)}.subj.mianshi{background:#efeaf4;color:#6b5a86}.subj.tingshuo{background:var(--blue-soft);color:var(--blue)}.subj.check{background:#efe9dd;color:var(--ink-2)}.task.on .lab .subj{filter:saturate(1.15)}.week-card .line em{width:auto;min-width:26px}.task .note-toggle{margin-left:auto;font-size:10.5px;padding:2px 7px;border-radius:5px;border:1px solid var(--line);background:transparent;color:var(--ink-3);cursor:pointer}.task .note-toggle:hover{border-color:var(--accent);color:var(--accent)}.task .note-toggle.active{border-color:#bcd8cd;background:#fff;color:var(--jade)}.task .task-note{margin-top:8px;width:100%;font-size:12.5px;line-height:1.6;padding:7px 9px;border:1px solid var(--line);border-radius:7px;background:#fffdf9;color:var(--ink)}.other-tasks{margin-top:12px}.other-tasks>summary{font-size:11.5px;color:var(--ink-3);cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 0}.other-tasks>summary:hover{color:var(--ink-2)}.other-row{display:flex;gap:8px;align-items:baseline;font-size:12px;color:var(--ink-2);padding:5px 0 5px 10px;border-left:2px solid var(--line);margin-top:4px}.other-row .subj{flex:none}.other-row .when{flex:none;font-family:var(--mono);font-size:10.5px;color:var(--ink-3)}.other-row .what{min-width:0}.empty-day{padding:18px 12px;text-align:center;font-size:13px;color:var(--ink-2);background:#fbf8f2;border:1px dashed var(--line);border-radius:10px}.done-list{margin-top:7px;display:flex;flex-direction:column;gap:4px}.done-item{display:flex;gap:7px;align-items:baseline;font-size:12.5px;color:var(--ink-2);line-height:1.6}.done-item .subj{flex:none}.done-item .what{min-width:0}.item-note{margin-top:4px;font-size:12px;color:var(--ink-2);line-height:1.6;padding-left:9px;border-left:2px solid var(--jade-soft)}.item-note .subj{flex:none}.drawer-stats{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--ink-2);margin-bottom:16px}.briefs{display:flex;flex-direction:column;gap:9px;padding:12px 13px;margin-bottom:18px;background:var(--paper);border:1px solid var(--line);border-radius:10px}.brief{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px;align-items:start}.brief .subj{justify-self:start;margin-top:1px}.brief-txt{font-size:12px;color:var(--ink-2);line-height:1.65;min-width:0}.brief-txt>div+div{margin-top:2px}.day-block{margin-bottom:16px}.day-head{display:flex;gap:8px;align-items:baseline;font-size:12px;color:var(--ink-2);padding-bottom:6px;margin-bottom:8px;border-bottom:1px solid var(--line)}.day-head b{font-family:var(--mono);font-size:12.5px;color:var(--ink)}.day-head .day-sum{margin-left:auto;font-size:11px;color:var(--ink-3)}.day-empty{font-size:12px;color:var(--ink-3);padding:2px 0 2px 2px}.task-note-read{margin-top:6px;font-size:12px;color:var(--ink-2);line-height:1.6;padding-left:9px;border-left:2px solid var(--jade-soft)}.week-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(292px,1fr));gap:13px}.week-card{padding:15px 16px 13px;background:var(--panel);border:1px solid var(--line);border-radius:12px;cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s;position:relative;overflow:hidden}.week-card:hover{transform:translateY(-1px);box-shadow:var(--shadow);border-color:#d6cdbb}.week-card.current{border-color:var(--blue);box-shadow:0 0 0 3px #2b5c8a12}.week-card.overdue{border-color:#ddb0a8;background:#fffdfb}.week-card.done{background:#fbfdfb}.week-card .top{display:flex;align-items:center;justify-content:space-between;gap:8px}.week-card .no{font-family:var(--mono);font-size:13px;letter-spacing:.5px}.week-card .no b{font-size:17px}.week-card .range{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);margin-top:2px}.week-card .lines{margin-top:10px;display:flex;flex-direction:column;gap:4px}.week-card .line{display:flex;gap:7px;font-size:11.5px;color:var(--ink-2);line-height:1.55}.week-card .line em{flex:none;font-style:normal;width:auto;min-width:26px;font-size:10.5px}.week-card .line span{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.week-card .bottom{margin-top:11px;padding-top:9px;border-top:1px solid var(--line-2);display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--ink-3)}.dots{display:flex;gap:3px}.dots i{width:6px;height:6px;border-radius:50%;background:#e4ddd0}.dots i.on{background:var(--jade)}.dots i.blank{background:transparent;box-shadow:inset 0 0 0 1px #ded6c7}.heat-wrap{display:flex;gap:8px;justify-content:center}.heat-days{display:flex;flex-direction:column;gap:var(--hg, 2px);padding-top:17px;flex:0 0 auto}.heat-days span{height:var(--hc, 14px);line-height:var(--hc, 14px);font-size:9.5px;color:var(--ink-3);text-align:right;min-width:12px}.heat-body{flex:0 1 auto;min-width:0;max-width:100%;overflow:hidden}.heat-scroll{overflow-x:auto;overflow-y:hidden;padding-bottom:2px;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.heat-scroll::-webkit-scrollbar{display:none;height:0}.heat-months{display:flex;gap:var(--hg, 2px);height:14px;margin-bottom:3px;width:max-content}.heat-months .mcell{width:var(--hc, 14px);flex:0 0 var(--hc, 14px);font-size:9.5px;line-height:14px;color:var(--ink-3);white-space:nowrap;overflow:visible}.heat{display:flex;gap:var(--hg, 2px);width:max-content}.heat .col{display:flex;flex-direction:column;gap:var(--hg, 2px);flex:0 0 auto}.heat .cell{width:var(--hc, 14px);height:var(--hc, 14px);flex:0 0 auto;border-radius:calc(var(--hc, 14px) * .18);background:#eae4d8}.heat .cell.l1{background:#cfe0d8}.heat .cell.l2{background:#9dc4b5}.heat .cell.l3{background:#5f9484}.heat .cell.l4{background:#2f6b5e}.heat .cell.today{outline:1.5px solid var(--accent);outline-offset:-1.5px}.heat .cell.future{background:#f6f2ea;border:none}.heat .cell.blank{background:transparent;border:1px dashed #e6dfd2}.heat-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;flex-wrap:wrap}.heat-legend{display:flex;align-items:center;gap:5px;font-size:10.5px;color:var(--ink-3)}.heat-swipable{color:var(--accent-2)}.heat-legend .cell{width:14px;height:14px;border-radius:2.5px;background:#eae4d8;display:inline-block}.heat-legend .cell.l1{background:#cfe0d8}.heat-legend .cell.l2{background:#9dc4b5}.heat-legend .cell.l3{background:#5f9484}.heat-legend .cell.l4{background:#2f6b5e}.bars{display:flex;align-items:flex-end;gap:6px;height:96px}.bars .col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;justify-content:flex-end;height:100%}.bars .v{width:100%;max-width:26px;background:linear-gradient(180deg,#6c9c8c,#2f6b5e);border-radius:3px 3px 1px 1px;min-height:2px;transition:height .3s}.bars .v.zero{background:#e7e0d3}.bars .d{font-size:9.5px;color:var(--ink-3);font-family:var(--mono)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c1b1847;-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);z-index:40}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(520px,94vw);background:var(--panel);z-index:41;box-shadow:var(--shadow-lg);display:flex;flex-direction:column}.drawer-head{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.drawer-head h3{font-family:var(--serif);font-size:19px}.drawer-head .sub{font-size:11.5px;color:var(--ink-3);margin-top:4px;font-family:var(--mono)}.drawer-body{padding:20px 22px 40px;overflow-y:auto;flex:1}.drawer-foot{padding:13px 22px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fdfbf6}.fade-enter-active,.fade-leave-active{transition:opacity .18s ease}.fade-enter-from,.fade-leave-to{opacity:0}.slide-enter-active,.slide-leave-active{transition:transform .22s cubic-bezier(.22,.61,.36,1)}.slide-enter-from,.slide-leave-to{transform:translate(100%)}.rec{display:grid;grid-template-columns:96px 1fr auto;gap:16px;padding:14px 0;border-bottom:1px solid var(--line-2)}.rec:last-child{border-bottom:none}.rec .date{font-family:var(--mono);font-size:12.5px}.rec .date small{display:block;color:var(--ink-3);font-size:10.5px;margin-top:2px}.rec .note{font-size:12.5px;color:var(--ink-2);margin-top:5px;white-space:pre-line}.rec .right{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:5px}.lock{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;color:var(--ink-3)}.tl{position:relative;padding-left:26px}.tl:before{content:"";position:absolute;left:6px;top:6px;bottom:6px;width:1px;background:var(--line)}.tl-item{position:relative;padding:0 0 22px}.tl-item:last-child{padding-bottom:0}.tl-item .dot{position:absolute;left:-24px;top:5px;width:9px;height:9px;border-radius:50%;background:var(--panel);border:2px solid #cdc5b5}.tl-item.done .dot{background:var(--jade);border-color:var(--jade)}.tl-item.past .dot{border-color:var(--accent)}.tl-item .when{font-family:var(--mono);font-size:11px;color:var(--ink-3);letter-spacing:.4px}.tl-item .what{font-size:14px;margin-top:3px;font-weight:500}.tl-item .more{font-size:12px;color:var(--ink-2);margin-top:5px;line-height:1.7;white-space:pre-line}.tl-item .tl-box{flex:none;position:relative;width:18px;height:18px;margin-top:1px;padding:0;border:1.6px solid #cfc7b7;border-radius:5px;background:#fff;cursor:pointer;transition:all .15s}.tl-item .tl-box:hover{border-color:var(--accent)}.tl-item .tl-box:disabled{cursor:wait;opacity:.55}.tl-item .tl-box.on{background:var(--jade);border-color:var(--jade);box-shadow:inset 0 0 0 1px #ffffff59}.tl-item .tl-box.on:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:12px;height:12px;background:center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 7.9l3.3 3.3L12.4 4.7' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}table.kv{width:100%;border-collapse:collapse;font-size:12.5px}table.kv td{padding:7px 0;vertical-align:top;border-bottom:1px dashed var(--line-2)}table.kv td:first-child{width:88px;color:var(--ink-3);font-size:11.5px;padding-right:10px}table.kv tr:last-child td{border-bottom:none}.school{padding:20px 22px}.school .head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.school .rank{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-family:var(--mono);font-size:14px;background:var(--paper-2);color:var(--ink-2)}.school.r1 .rank{background:var(--jade);color:#fff}.school.r2 .rank{background:var(--gold-soft);color:var(--gold)}.school .name{font-family:var(--serif);font-size:18px}.school .why{font-size:12.5px;color:var(--ink-2);margin-top:10px;line-height:1.75}.school .risk{font-size:12.5px;color:var(--accent);margin-top:8px;line-height:1.75}pre.md{margin:0;padding:18px 20px;background:#fbf9f3;border:1px solid var(--line);border-radius:var(--radius-sm);font-family:var(--mono);font-size:11.5px;line-height:1.75;color:var(--ink-2);white-space:pre-wrap;word-break:break-word;max-height:520px;overflow:auto}.toasts{position:fixed;left:50%;bottom:30px;transform:translate(-50%);z-index:90;display:flex;flex-direction:column;gap:8px;align-items:center}.toast{padding:9px 16px;border-radius:9px;background:#23221e;color:#f7f4ec;font-size:12.5px;box-shadow:var(--shadow-lg);max-width:80vw}.toast.err{background:var(--accent)}.toast.ok{background:var(--jade)}@media(max-width:1080px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.shell{grid-template-columns:minmax(0,1fr)}.sidebar{position:sticky;top:0;height:auto;z-index:30;flex-direction:row;align-items:center;padding:10px 14px;gap:12px;border-right:none;border-bottom:1px solid var(--line);overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none}.sidebar::-webkit-scrollbar{display:none}.brand{padding:0;flex:none}.brand h1{font-size:16px}.brand .sub{display:none}.nav{flex-direction:row;gap:2px;flex:1}.nav a{padding:7px 10px;white-space:nowrap;font-size:12.5px}.nav a.active:before{display:none}.side-foot{display:none}.main{padding:20px 16px 56px}.g2{grid-template-columns:minmax(0,1fr)}.exam-track{grid-template-columns:minmax(0,1fr);gap:10px}.exam-item{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"top  num" "date num" "bar  bar";align-items:center;column-gap:12px;padding:12px 16px 11px}.ex-top{grid-area:top}.ex-num{grid-area:num;margin-top:0;text-align:right}.ex-date{grid-area:date;margin-top:3px}.ex-bar{grid-area:bar;margin-top:9px}.page-head{flex-direction:column;align-items:flex-start;gap:10px}.page-head .actions{flex-wrap:wrap}.rec{grid-template-columns:70px minmax(0,1fr)}.rec .right{grid-column:2;align-items:flex-start;text-align:left}}@media(max-width:700px){.g3{grid-template-columns:minmax(0,1fr)}}@media(max-width:560px){.sidebar{position:fixed;top:auto;bottom:0;left:0;right:0;height:auto;width:auto;padding:5px 4px calc(5px + env(safe-area-inset-bottom,0px));gap:0;border-top:1px solid var(--line);border-bottom:none;border-right:none;background:var(--panel);box-shadow:0 -2px 14px #3c2d1412;overflow:visible;z-index:40}.brand{display:none}.nav{flex-direction:row;gap:0;flex:1;justify-content:space-between}.nav a{flex:1 1 0;min-width:0;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:5px 1px;font-size:10px;line-height:1.15;border-radius:8px;white-space:nowrap}.nav a.active{background:transparent;box-shadow:none;color:var(--accent)}.nav .ico{display:block;width:17px;height:17px;opacity:.85}.main{padding:14px 12px 84px}.g4{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.g3{grid-template-columns:minmax(0,1fr);gap:10px}.exam-item{padding:11px 13px 10px;column-gap:10px}.ex-name{font-size:12px}.ex-num{font-size:21px}.exam-item.passed .ex-num,.exam-item.now .ex-num{font-size:17px}.card{border-radius:10px}.card-head{padding:12px 14px;flex-wrap:wrap;gap:4px 10px}.card-body{padding:13px 14px}.subj-grid{grid-template-columns:minmax(0,1fr);gap:11px}.subj-row-top{flex-wrap:wrap;row-gap:3px}.subj-row-top .hrs{margin-left:0;width:100%}.subj-foot{font-size:11.5px;line-height:1.65;margin-top:12px}.briefs{padding:11px 12px;margin-bottom:15px}.brief{grid-template-columns:52px minmax(0,1fr);gap:7px}.brief-txt{font-size:12px;line-height:1.6}.page-head h2{font-size:20px}.page-head .desc{font-size:11.5px;line-height:1.55}.page-head .actions{width:100%}.page-head .actions .btn{padding:6px 10px;font-size:12px}.stat{padding:13px 14px}.stat .val{font-size:24px;margin-top:6px}.stat .foot{font-size:11px;margin-top:7px}.task{gap:12px;padding:13px 13px 13px 12px;margin-bottom:10px;border-radius:12px}.task .box{width:22px;height:22px;margin-top:0;border-radius:6px}.task .lab{font-size:11.5px;gap:5px 7px;line-height:1.5;margin-bottom:7px}.task .lab .time{font-size:11.5px}.task .lab .mins{font-size:11px}.task .note-toggle{font-size:11.5px;padding:5px 8px;border-radius:7px;color:var(--ink-2);margin-left:auto}.task .txt{font-size:14.5px;line-height:1.62}.task .task-note{margin-top:9px;font-size:14px;padding:9px 11px;border-radius:8px}.other-tasks{margin-top:14px}.other-tasks>summary{font-size:12px;padding:6px 0}.other-row{display:block;padding:8px 0 8px 10px;font-size:13px;line-height:1.55;margin-top:8px}.other-row .subj{margin-right:7px}.other-row .when{font-size:11px}.other-row .what{display:block;margin-top:3px;color:var(--ink)}.empty-day{font-size:13.5px;padding:22px 14px}.task-fields{grid-template-columns:minmax(0,1fr);gap:10px}.task-actions{flex-direction:column;align-items:stretch;gap:10px}.task-actions .btn{width:100%;justify-content:center;padding:10px}input[type=text],input[type=date],input[type=number],textarea,select{font-size:16px;padding:10px 11px}.rec{grid-template-columns:minmax(0,1fr);gap:8px}.rec .right{grid-column:1;flex-direction:row;align-items:center;gap:10px}.heat-wrap{gap:6px;justify-content:flex-start}.heat-foot{flex-direction:column;align-items:flex-start;gap:8px}}@media print{.sidebar,.actions,.btn{display:none!important}.shell{grid-template-columns:minmax(0,1fr)}.main{padding:0}.card{break-inside:avoid;box-shadow:none}}
