.class-switch[data-v-92b395c0]{display:flex;align-items:center;justify-content:center;gap:8px;padding:6px 0;background:var(--paper-2);border-bottom:1px solid var(--line-light);font-size:13px;cursor:pointer}.cs-label[data-v-92b395c0]{border:1px solid var(--qing);color:var(--qing);border-radius:10px;padding:0 8px;font-size:12px}.cs-name[data-v-92b395c0]{letter-spacing:2px;font-weight:700}.cs-arrow[data-v-92b395c0]{color:var(--ink-2)}.switch-wrap[data-v-92b395c0]{position:relative}.picker-mask[data-v-92b395c0]{position:fixed;inset:0;z-index:25;background:#2d2a2661}.class-picker[data-v-92b395c0]{position:absolute;top:100%;left:0;right:0;z-index:30;background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line-light);box-shadow:0 10px 24px #00000040}.picker-item[data-v-92b395c0]{padding:12px 20px;font-size:14px;border-bottom:1px dashed var(--line-light);color:var(--ink-2)}.picker-item.active[data-v-92b395c0]{color:var(--qing);font-weight:700;background:#3f6b6414}:root{--paper: #f6f1e4;--paper-2: #efead9;--paper-3: #e8e1cc;--ink: #2d2a26;--ink-2: #6d6658;--cinnabar: #b03a2e;--cinnabar-deep: #8a2b22;--qing: #3f6b64;--gold: #b08d3e;--line: #c9bb92;--line-light: #d9cfb0;--warn: #b8860b}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Kaiti SC,KaiTi,STKaiti,楷体,SimSun,宋体,serif;background:#e7e0cd;color:var(--ink);font-size:15px;line-height:1.7}#app{display:flex;justify-content:center;min-height:100vh}.phone{width:100%;max-width:420px;min-height:100vh;background:radial-gradient(ellipse at 12% 0%,rgba(255,252,240,.6),transparent 55%),var(--paper);position:relative;box-shadow:0 0 40px #00000038}@media(min-width:520px){.phone{min-height:calc(100vh - 40px);margin:20px 0;border-radius:6px}}.ink-mountains{position:fixed;left:50%;transform:translate(-50%);bottom:0;width:min(100%,420px);height:190px;pointer-events:none;z-index:1;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='420' height='190' viewBox='0 0 420 190' preserveAspectRatio='xMidYMax slice'><path fill='%233b3a32' opacity='0.055' d='M0 190 L55 78 L120 162 L185 52 L252 150 L315 66 L378 150 L420 190 Z'/><path fill='%233b3a32' opacity='0.04' d='M0 190 L80 118 L145 168 L225 95 L300 170 L360 128 L420 190 Z'/><path fill='%23b03a2e' opacity='0.05' d='M312 70 c10 -6 22 2 20 14 c-2 12 -16 16 -24 8 c-6 -6 -4 -16 4 -22 z'/></svg>") bottom center / 100% 190px no-repeat}.statusbar{height:34px;background:transparent;border-bottom:1px solid var(--line-light);display:flex;justify-content:space-between;align-items:center;padding:0 18px;font-size:11px;color:var(--ink-2);letter-spacing:2px}.screen{padding:12px 16px 96px;min-height:100vh;position:relative;z-index:2}.module-head{display:flex;align-items:center;gap:10px;margin:10px 0 8px;flex-wrap:wrap}.seal{writing-mode:vertical-rl;color:var(--cinnabar);border:2px solid var(--cinnabar);border-radius:3px;padding:4px 3px;font-size:16px;font-weight:700;letter-spacing:2px;line-height:1.35;transform:rotate(-3deg);box-shadow:inset 0 0 0 1px #fff5eb40;flex:0 0 auto}.mod-title{font-size:24px;font-weight:700;letter-spacing:6px;color:var(--ink)}.poem{width:100%;font-size:12px;color:var(--ink-2);letter-spacing:3px;margin-top:2px;padding-left:2px}.poem:before,.poem:after{color:var(--gold)}.poem:after{content:"〡";margin-left:6px;opacity:.6}.poem:before{content:"一";margin-right:6px;opacity:.6}.sec-title{font-size:13px;color:var(--ink-2);margin:16px 0 8px;letter-spacing:4px;padding-left:8px;border-left:2px solid var(--gold)}.card{background:var(--paper-2);border:1px solid var(--line);border-radius:4px;padding:12px;margin-bottom:10px;position:relative;box-shadow:0 1px 2px #7864320d}.card.dashed{border-style:dashed;border-color:var(--line-light);background:#fffaeb8c}.card-row{display:flex;align-items:center;gap:10px}.circle{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--line);flex:0 0 24px;display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff;cursor:pointer;font-family:inherit}.circle.done{background:var(--qing);border-color:var(--qing)}.circle.exception{background:var(--cinnabar);border-color:var(--cinnabar)}.time{font-size:13px;color:var(--ink-2);min-width:46px;letter-spacing:1px}.label{display:inline-block;font-size:11px;padding:1px 7px;border-radius:2px;border:1px solid var(--line);color:var(--ink-2);background:transparent;letter-spacing:2px;font-family:inherit}.label.hl{background:#b08d3e1f;border-color:var(--gold);color:var(--gold)}.label.warn{background:#b8860b1f;border-color:var(--warn);color:var(--warn)}.label.danger{background:#b03a2e14;border-color:var(--cinnabar);color:var(--cinnabar)}.label.ok{background:#3f6b641a;border-color:var(--qing);color:var(--qing)}.btn{display:inline-block;border:1px solid var(--line);background:transparent;border-radius:3px;padding:8px 14px;font-size:14px;color:var(--ink);text-align:center;cursor:pointer;font-family:inherit;letter-spacing:2px;transition:all .15s}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--cinnabar);color:#f8f0e2;border-color:var(--cinnabar);box-shadow:0 2px 6px #b03a2e4d}.btn.block{display:block;width:100%;margin-top:10px}.btn.ghost{border-style:dashed;color:var(--ink-2)}.btn.sm{padding:4px 10px;font-size:12px;letter-spacing:1px}.btn:disabled{opacity:.55;cursor:not-allowed}.txt-placeholder{color:var(--ink-2);font-size:12px;letter-spacing:1px}.ai-box{background:#fffaebbf;border:1px dashed var(--gold);border-left:3px solid var(--gold);border-radius:4px;padding:10px 12px;margin-top:8px;font-size:13px;color:var(--ink);position:relative}.ai-box .src{font-size:11px;color:var(--cinnabar);letter-spacing:2px;margin-bottom:4px;font-weight:700}.ai-actions{display:flex;gap:6px;margin-top:9px;flex-wrap:wrap}.arrow-note{font-size:11px;color:var(--warn);text-align:center;margin:4px 0;letter-spacing:2px;font-weight:600}.grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.grid .card{margin-bottom:0;text-align:center;padding:14px 6px}.icon-place{font-size:26px;color:var(--ink-2);margin-bottom:6px}.student-name{font-size:12px;letter-spacing:1px}.timeline{border-left:1.5px solid var(--line);margin-left:6px;padding-left:18px}.tl-node{position:relative;margin-bottom:16px}.tl-node:before{content:"";position:absolute;left:-23px;top:8px;width:9px;height:9px;border-radius:50%;background:var(--paper);border:1.5px solid var(--line)}.tl-node.key:before{background:var(--cinnabar);border-color:var(--cinnabar)}.tl-time{font-size:12px;color:var(--ink-2);letter-spacing:2px}.tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:420px;height:68px;background:var(--paper-2);border-top:3px double var(--gold);box-shadow:0 -3px 12px #5a46141f;display:flex;z-index:10}.tabbar:before,.tabbar:after{content:"";position:absolute;top:-7px;width:9px;height:9px;background:var(--cinnabar);border-radius:50%}.tabbar:before{left:14px}.tabbar:after{right:14px}.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:12px;color:var(--ink-2);cursor:pointer;gap:2px;text-decoration:none;letter-spacing:3px;position:relative}.tab .ico{font-size:15px;width:26px;height:26px;line-height:24px;border:1.5px solid var(--line);border-radius:3px;text-align:center;color:var(--ink-2);font-family:inherit;transform:rotate(-2deg)}.tab.active{color:var(--cinnabar);font-weight:700}.tab.active .ico{border-color:var(--cinnabar);color:var(--paper);background:var(--cinnabar);box-shadow:0 1px 4px #b03a2e4d}.subnav{display:flex;align-items:center;gap:8px;margin:10px 0 12px;padding-bottom:8px;border-bottom:1px dashed var(--line-light)}.subnav .back{font-size:14px;color:var(--cinnabar);cursor:pointer;letter-spacing:1px}.subnav .title{font-size:18px;font-weight:700;flex:1;letter-spacing:4px}.subnav .sub{font-size:11px;color:var(--ink-2);letter-spacing:2px}.modal-mask{display:none;position:fixed;inset:0;background:#2d2a2673;z-index:20;align-items:flex-end;justify-content:center}.modal-mask.show{display:flex}.modal{background:var(--paper-2);width:min(100%,420px);border-top:3px double var(--gold);border-radius:8px 8px 0 0;padding:16px 18px 26px}.modal h3{font-size:17px;letter-spacing:4px;margin-bottom:14px;color:var(--ink)}.modal h3:before{content:"▍";color:var(--cinnabar);margin-right:6px}.opt{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--line-light);border-radius:3px;margin-bottom:8px;font-size:14px;cursor:pointer;letter-spacing:2px;background:var(--paper)}.opt .badge{font-size:16px}.opt.active{border-color:var(--cinnabar);background:#b03a2e0f;color:var(--cinnabar)}.close-bar{text-align:center;color:var(--ink-2);font-size:12px;margin-bottom:8px;cursor:pointer;letter-spacing:2px}.note-box{border:1px dashed var(--gold);background:#b08d3e14;border-radius:4px;padding:8px 12px;font-size:12px;color:var(--ink-2);margin:10px 0;letter-spacing:1px}.progress{height:7px;background:var(--paper-3);border-radius:4px;overflow:hidden;margin:7px 0}.progress>div{height:100%;background:var(--qing)}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:3px;padding:10px 12px;font-size:14px;font-family:inherit;background:var(--paper);color:var(--ink);letter-spacing:1px}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--gold)}textarea{resize:vertical;min-height:60px}.form-group{margin-bottom:12px}.form-group label{display:block;font-size:12px;color:var(--ink-2);margin-bottom:4px;letter-spacing:2px}.loading,.empty{text-align:center;color:var(--ink-2);padding:30px 0;font-size:13px;letter-spacing:2px}.fab{position:fixed;bottom:88px;right:calc((100vw - 420px)/2 + 22px);width:48px;height:48px;border-radius:50%;background:var(--cinnabar);color:#f8f0e2;display:flex;align-items:center;justify-content:center;font-size:24px;font-family:serif;box-shadow:0 4px 12px #b03a2e59;cursor:pointer;z-index:9;border:1px solid var(--cinnabar-deep)}@media(max-width:519px){.fab{right:22px}}.week-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:10px}.day-chip{display:inline-block;padding:6px 0;border:1px solid var(--line-light);border-radius:3px;font-size:12px;color:var(--ink-2);cursor:pointer;text-align:center;font-family:inherit}.week-row .day-chip{padding:6px 12px}.day-chip.on{background:#3f6b641f;border-color:var(--qing);color:var(--qing)}.ph-img{border:1px dashed var(--line-light);border-radius:3px;height:52px;display:flex;align-items:center;justify-content:center;color:var(--ink-2);font-size:11px;background:#fffaeb99}
