*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}[hidden]{display:none!important}:root{--ink:#22303c;--ink-soft:#7d92a6;--line:#e6edf3;--blue:#4a9fd8;--blue-soft:#e8f2fa;--mint:#8fd4b4;--mint-soft:#e7f6ef;--pink:#f5b8cc;--pink-soft:#fdeff5;--purple:#b9a8e8;--glass:#ffffffbd;--glass-border:#fffffff2}body{color:var(--ink);background:#fafbfc;justify-content:center;min-height:100vh;font-family:PingFang SC,Microsoft YaHei,sans-serif;display:flex}.serif{font-family:Georgia,Songti SC,serif}.blob{filter:blur(90px);opacity:.35;pointer-events:none;z-index:0;border-radius:50%;position:fixed}.blob-blue{background:#dcebf5;width:320px;height:320px;top:-60px;left:-80px}.blob-mint{background:#e0f3ea;width:280px;height:280px;bottom:10%;right:-70px}.blob-pink{background:#f9e8ef;width:260px;height:260px;bottom:-80px;left:-60px}.phone{z-index:1;width:100%;max-width:430px;padding:12px 14px 86px;position:relative}#bgLayer{z-index:-2;background-position:50%;background-size:cover;display:none;position:fixed;inset:0}#bgVeil{z-index:-1;background:#fdfdfe;display:none;position:fixed;inset:0}body.has-bg .blob{display:none}.bg-row{gap:8px;margin:8px 0 4px;display:flex}.bg-range{width:100%;accent-color:var(--blue)}.glass{background:var(--glass);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:20px;box-shadow:0 4px 16px #7896b414}.topbar{z-index:5;justify-content:space-between;align-items:center;margin-bottom:12px;padding:12px 16px;display:flex;position:sticky;top:8px}.top-title h1{letter-spacing:2px;color:var(--ink);font-size:21px}.top-title p{color:var(--ink-soft);margin-top:2px;font-size:11.5px}.top-avatars{align-items:center;gap:8px;display:flex}.avatar-wrap{flex-direction:column;align-items:center;display:flex}.avatar{object-fit:cover;border:2.5px solid #fff;border-radius:50%;width:46px;height:46px;box-shadow:0 3px 10px #7896b429}.avatar-name{color:var(--ink-soft);margin-top:3px;font-size:10px}.heart{color:var(--pink);margin-bottom:14px;font-size:17px}.page{flex-direction:column;gap:12px;display:flex}.card{padding:14px 16px}.card-label{color:var(--ink-soft);letter-spacing:1px;font-size:12px}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;display:flex}.pill{color:var(--ink-soft);border:1px solid var(--line);background:#fff;border-radius:999px;padding:3px 10px;font-size:11px}.current-card{padding:16px 18px}.current-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.current-title{color:var(--ink);margin-bottom:8px;font-size:21px;font-weight:700}.current-meta{color:var(--ink-soft);gap:18px;margin-bottom:12px;font-size:13.5px;display:flex}.current-meta p{font-weight:500}.current-meta b{color:var(--ink);font-size:16px;font-weight:700}.round-btns{justify-content:center;gap:18px;display:flex}.round-btn{cursor:pointer;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:74px;height:74px;font-size:11.5px;transition:transform .12s;display:flex}.round-btn span{font-size:19px}.round-btn:active{transform:scale(.93)}.rb-blue{color:#2c4a63;background:linear-gradient(145deg,#bfe0f6,#a3cef0);border:none;box-shadow:0 8px 18px #8fbee266}.rb-green{color:#8c4a63;background:linear-gradient(145deg,#f9cdda,#f5b3c9);border:none;box-shadow:0 8px 18px #f0a8c066}.exam-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.exam-target{color:var(--ink);font-size:16.5px;font-weight:700}.exam-right{align-items:center;gap:8px;display:flex}.exam-switch{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:999px;max-width:110px;padding:3px 8px;font-size:11.5px}.exam-days{color:var(--ink-soft);font-size:12px}.exam-days b{color:var(--ink);font-size:16px}.milestones{gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.ms{cursor:pointer;border:1px solid var(--line);background:#ffffffd9;border-radius:13px;flex:1;align-items:center;gap:7px;min-width:92px;padding:8px 10px;display:flex}.ms-dot{color:#fff;background:#e2eaf1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;display:flex}.ms.done .ms-dot{background:var(--mint)}.ms-info{min-width:0}.ms-name{white-space:nowrap;font-size:12px}.ms-date{color:var(--ink-soft);font-size:10.5px}.exam-actions{text-align:right;margin-top:8px}.mini-link{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;font-size:11.5px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.stats-row{grid-template-columns:1fr 1fr 1.3fr;gap:10px;display:grid}.mini{padding:11px 12px}.mini-label{color:var(--ink-soft);margin-bottom:4px;font-size:10.5px}.mini-num{color:var(--ink);font-size:20px}.mini-subjects{color:var(--ink-soft);flex-direction:column;gap:3px;font-size:10.5px;display:flex}.mini-subjects .bar{align-items:center;gap:4px;display:flex}.mini-subjects .bar i{background:#eef2f6;border-radius:4px;flex:1;height:5px;position:relative;overflow:hidden}.mini-subjects .bar i:after{content:"";width:var(--w,0%);background:var(--c,var(--blue));border-radius:4px;position:absolute;inset:0}.group-card{padding:12px 14px}.group-head{align-items:center;gap:6px;margin-bottom:8px;display:flex}.group-title{font-size:13.5px;font-weight:600}.group-meta{color:var(--ink-soft);margin-left:auto;font-size:11px}.task{border:1px solid var(--line);cursor:pointer;background:#ffffffe6;border-radius:13px;align-items:center;gap:8px;margin-bottom:7px;padding:8px 10px;display:flex}.task.done{opacity:.55}.task.done .t-title{text-decoration:line-through}.t-dot{border:2px solid #dbe4ec;border-radius:50%;flex-shrink:0;width:18px;height:18px}.task.running .t-dot{border-color:var(--blue);background:conic-gradient(var(--blue) 40%, #e8f2fa 0)}.task.done .t-dot{background:var(--mint);border-color:var(--mint)}.t-main{flex:1;min-width:0}.t-title{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.t-meta{color:#6b7f90;margin-top:2px;font-size:11px;font-weight:500}.subj{border-radius:999px;margin-right:4px;padding:1px 7px;font-size:9.5px;display:inline-block}.subj-资料{color:#3d6f8e;background:#e8f2fa}.subj-言语{background:var(--pink-soft);color:#b0748c}.subj-判断{background:var(--mint-soft);color:#3e8570}.subj-数量{color:#6f5aa8;background:#f0edfa}.subj-常识{color:#a07a2c;background:#fdf4e3}.subj-申论{color:#b05a5a;background:#fdeeee}.subj-综应{color:#3d6f7e;background:#e3f1f6}.subj-综合{color:#5f6b76;background:#eef1f4}.t-btns{flex-shrink:0;gap:5px;display:flex}.t-del{color:#c2cfd9;cursor:pointer;background:0 0;border:none;font-size:14px}.btn{cursor:pointer;border:none;border-radius:999px;padding:8px 15px;font-size:13px}.glass-btn{color:var(--ink);border:1px solid var(--line);background:#fff}.glass-btn.primary{background:var(--blue);color:#fff;border-color:var(--blue)}.btn-row{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.review-text{border:1px solid var(--line);width:100%;color:var(--ink);resize:vertical;background:#fff;border-radius:12px;padding:10px 12px;font-family:inherit;font-size:13.5px}.hint{color:#a8b8c6;margin-top:7px;font-size:10.5px}.sticker-card{align-items:center;gap:12px;display:flex}.sticker-card.unlocked{border:1.5px solid var(--pink)}.sticker-emoji{font-size:30px}.sticker-main{flex:1}.sticker-title{font-size:13.5px;font-weight:600}.sticker-sub{color:var(--ink-soft);margin-top:2px;font-size:11px}.zw-head{align-items:center;gap:10px;margin-bottom:10px;display:flex}.zw-avatar{object-fit:cover;border:2px solid #fff;border-radius:50%;width:42px;height:42px}.zw-name{font-size:14px;font-weight:600}.zw-lastseen{color:var(--ink-soft);font-size:10.5px;font-weight:400}.zw-info{flex:1}.mode-chips{gap:5px;margin-top:5px;display:flex}.mode{border:1px solid var(--line);color:var(--ink-soft);cursor:pointer;background:#fff;border-radius:999px;padding:3px 10px;font-size:10.5px}.mode.active{background:var(--blue-soft);color:var(--blue);border-color:var(--blue)}.mode-chips.big .mode{padding:7px 13px;font-size:12.5px}.zw-bubble{color:var(--ink);border:1px solid var(--line);background:#ffffffeb;border-radius:14px;padding:10px 12px;font-size:13.5px;line-height:1.6}.zw-next{color:var(--ink);margin-top:8px;font-size:12px}.cal-nav{align-items:center;gap:8px;display:flex}.cal-arrow{border:1px solid var(--line);color:var(--ink-soft);cursor:pointer;background:#fff;border-radius:50%;width:26px;height:26px;font-size:13px;line-height:1}#calMonth{color:var(--ink)}.streak-inline{color:var(--ink-soft);flex-wrap:wrap;gap:10px;font-size:11px;display:flex}.streak-inline b{color:var(--ink);font-size:13px}.calendar{grid-template-columns:repeat(7,1fr);gap:5px;margin-top:8px;display:grid;position:relative}.cal-wd{text-align:center;color:var(--ink-soft);font-size:10px}.cal-day{aspect-ratio:1;color:var(--ink-soft);background:#fffc;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:0;font-size:11px;line-height:1.1;display:flex;position:relative}.cal-day .mark{font-size:8px}.cal-day.has{background:var(--mint-soft);color:var(--ink)}.cal-day.mid{background:#d5f0e3}.cal-day.high{background:var(--mint-soft);color:var(--ink)}.cal-day.vine{box-shadow:inset 0 -3px #8fd4b480}.cal-day.today{outline:1.5px solid var(--pink);outline-offset:1px}.subject-bars{flex-direction:column;gap:8px;margin-top:6px;display:flex}.sb-row{align-items:center;gap:8px;font-size:12px;display:flex}.sb-name{width:38px;color:var(--ink-soft)}.sb-track{background:#eef2f6;border-radius:6px;flex:1;height:8px;overflow:hidden}.sb-fill{background:var(--c,var(--blue));border-radius:6px;height:100%}.sb-hours{text-align:right;width:44px;color:var(--ink-soft)}.us-avatars{justify-content:center;align-items:center;gap:18px;padding:12px 0;display:flex}.us-avatar-wrap{cursor:pointer;flex-direction:column;align-items:center;display:flex}.us-avatar{object-fit:cover;border:3px solid #fff;border-radius:50%;width:84px;height:84px;box-shadow:0 6px 16px #7896b433}.us-name{color:var(--ink);margin-top:6px;font-size:12.5px}.heart.big{font-size:26px}.sticker-book{grid-template-columns:repeat(4,1fr);gap:9px;margin-top:8px;display:grid}.book-item{aspect-ratio:1;color:var(--ink-soft);border:1px solid var(--line);background:#fff;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:10px;display:flex}.book-item .e{font-size:22px}.book-item.locked{opacity:.35;filter:grayscale(.9)}.tabbar{z-index:20;border-radius:22px;width:min(402px,100% - 28px);padding:7px 6px;display:flex;position:fixed;bottom:10px;left:50%;transform:translate(-50%)}.tab{cursor:pointer;color:var(--ink-soft);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:1px;padding:4px 0;font-size:10.5px;display:flex}.tab.active{color:var(--blue);font-weight:600}.tab-ico{width:21px;height:21px;margin:0 auto;display:block}.add-card{padding:10px 14px}.add-toggle{cursor:pointer;width:100%;color:var(--ink-soft);text-align:center;background:0 0;border:none;padding:6px 0;font-size:13.5px}.add-form{margin-top:10px}.f-input.full{margin-bottom:8px}.add-grid{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:4px;display:grid}.makeup-inline{color:var(--ink-soft);align-items:center;gap:5px;font-size:12px;display:flex}.weekly-hours{color:var(--ink);margin:4px 0 14px;font-size:38px}.week-chart{align-items:flex-end;gap:9px;height:170px;padding:6px 2px 0;display:flex}.wcol{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;min-width:0;height:100%;display:flex}.wmin{color:var(--ink-soft);white-space:nowrap;font-size:9px}.wbar{background:#f0f3f7;border-radius:9px;flex-direction:column-reverse;width:62%;max-width:30px;display:flex;overflow:hidden}.wseg{width:100%}.wseg.empty{background:#eef1f5;height:3px}.wlabel{color:var(--ink-soft);font-size:10px}.sheet-mask{z-index:40;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#22303c4d;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:#fcfdfef7;border-radius:24px 24px 0 0;width:min(430px,100%);padding:20px 20px 26px}.sheet-title{color:var(--ink);margin-bottom:14px;font-size:16px;font-weight:700}.reason-grid{grid-template-columns:1fr 1fr;gap:9px;margin-bottom:14px;display:grid}.reason{border:1px solid var(--line);cursor:pointer;color:var(--ink);background:#fff;border-radius:14px;padding:13px;font-size:14px}.sheet-cancel{width:100%;color:var(--ink);cursor:pointer;background:#eef2f6;border:none;border-radius:13px;padding:11px;font-size:14px}.f-label{color:var(--ink-soft);margin:10px 0 5px;font-size:11px;display:block}.f-input{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:11px;padding:9px 11px;font-size:13.5px}.ms-add{gap:6px;margin-bottom:4px;display:flex}.ms-add .f-input{flex:1;min-width:0}.weekly-soon{text-align:center;padding:46px 20px}.weekly-emoji{font-size:40px}.weekly-title{color:var(--ink);margin-top:10px;font-size:16px;font-weight:700}.weekly-sub{color:var(--ink-soft);margin-top:6px;font-size:12px}.pomo-line{color:var(--ink-soft);background:#f5dca840;border-radius:10px;margin-bottom:12px;padding:7px 10px;font-size:12.5px}.ceremony-mask{z-index:60;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#22303c73;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ceremony{text-align:center;background:linear-gradient(160deg,#fffffff5,#faf6f0f5);border-radius:26px;width:min(340px,86%);padding:34px 26px 26px;animation:.5s cubic-bezier(.2,1.4,.4,1) card-in;position:relative;overflow:hidden;box-shadow:0 18px 50px #3c465059}.ceremony-burst{background:radial-gradient(circle,#f0a8c059 0%,#a5cdea38 45%,#0000 70%);border-radius:50%;width:150px;height:150px;animation:1.2s ease-out burst;position:absolute;top:34px;left:50%;transform:translate(-50%)}.ceremony-sticker{filter:drop-shadow(0 6px 14px #3c465040);font-size:86px;line-height:1;animation:.7s cubic-bezier(.2,1.6,.4,1) .15s both sticker-pop;display:inline-block;position:relative}.ceremony-title{color:var(--ink);margin-top:14px;font-size:17px;font-weight:700}.ceremony-line{color:var(--ink);max-width:260px;margin:12px auto 4px;font-size:14px;line-height:1.7;position:relative}.ceremony-sign{color:var(--ink-soft);text-align:right;margin:4px 12px 16px;font-size:11.5px}.ceremony .btn{width:80%}.confetti{opacity:.85;border-radius:3px;width:7px;height:11px;animation:1.6s ease-in forwards confetti-fall;position:absolute;top:-10px}@keyframes burst{0%{opacity:0;transform:translate(-50%)scale(.2)}60%{opacity:1}to{opacity:.9;transform:translate(-50%)scale(1)}}@keyframes sticker-pop{0%{transform:scale(0)rotate(-18deg)}70%{transform:scale(1.15)rotate(4deg)}to{transform:scale(1)rotate(-3deg)}}@keyframes confetti-fall{0%{opacity:0;transform:translateY(-12px)rotate(0)}12%{opacity:.9}to{opacity:0;transform:translateY(340px)rotate(220deg)}}@keyframes card-in{0%{opacity:0;transform:translateY(24px)scale(.94)}to{opacity:1;transform:none}}.sticker-book .book-item{background:#fffdf8;border:1px solid #efe9dc;position:relative;box-shadow:0 3px 9px #78828c29}.sticker-book .book-item:nth-child(odd){transform:rotate(-1.6deg)}.sticker-book .book-item:nth-child(2n){transform:rotate(1.3deg)}.sticker-book .book-item:not(.locked):before{content:"";background:#f0c8a08c;border-left:1px dashed #fffc;border-right:1px dashed #fffc;width:34px;height:11px;position:absolute;top:-5px;left:50%;transform:translate(-50%)rotate(-2deg)}.sticker-book .book-item:not(.locked) .e{animation:.5s cubic-bezier(.2,1.6,.4,1) both sticker-pop}
