:root{--bg:#f6f7f3;--card:#fff;--ink:#26382e;--muted:#7c877f;--line:#e3e8df;--green:#356b50;--soft:#eaf0e5;--gold:#a78957}*{box-sizing:border-box}body{margin:0;font:14px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,.btn{border:1px solid var(--line);border-radius:9px;background:white;padding:8px 13px;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:5px}button:hover,.btn:hover{border-color:#9bb79c;background:#f7faf4}button:disabled{opacity:.5;cursor:wait}.primary{background:var(--green);border-color:var(--green);color:#fff}.primary:hover{background:#28553f;color:#fff}.ghost{border-color:transparent;background:none}.danger{color:#a45c45}.sidebar{position:fixed;inset:0 auto 0 0;width:220px;background:#fcfdf9;border-right:1px solid var(--line);padding:32px 20px;display:flex;flex-direction:column}.brand{display:flex;gap:10px;align-items:center;font-size:28px;font-weight:650}.brand span{font-size:21px}.brand small{display:block;font-size:11px;color:var(--muted);font-weight:400;margin-top:5px}.nav-label{color:#99a296;font-size:11px;letter-spacing:1px;margin:44px 13px 12px}.sidebar nav{display:grid;gap:6px}.sidebar nav a{padding:11px 13px;border-radius:8px;color:#6b766c}.sidebar nav a.active{background:#e9f0e3;color:#2c5e43;font-weight:600}.nav-rule{height:1px;background:var(--line);margin:17px 10px}.side-bottom{margin-top:auto;font-size:12px;color:var(--muted)}.side-bottom p{font-size:11px;margin-left:12px}.small-dot{display:inline-block;background:#629369;width:6px;height:6px;border-radius:50%;margin-right:5px}.main{margin-left:220px}header{padding:22px 40px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;min-height:72px;background:#ffffff88}#breadcrumbs{color:var(--muted);font-size:13px}#sync{font-size:11px;color:#68826a}#app{max-width:1500px;margin:auto;padding:36px 40px 70px}h1{font-size:32px;font-weight:650;letter-spacing:-1px;line-height:1.3;margin:10px 0}h2{font-size:19px;margin:0 0 10px}h3{font-size:16px;margin:0 0 6px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--green);font-weight:650}.muted{color:var(--muted);font-size:12px}.hero{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.hero p{color:var(--muted);margin:10px 0}.date-badge{font-size:12px;color:var(--muted)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.card{background:var(--card);border:1px solid var(--line);border-radius:15px;padding:23px;min-width:0}.subject-card{padding:28px;position:relative;overflow:hidden}.subject-card:hover,.topic-card:hover{border-color:#b2c4aa;box-shadow:0 8px 25px #30452a06}.subject-card .letter{position:absolute;right:24px;top:16px;font-size:64px;color:#e8eee0;line-height:1;font-family:serif}.subject-card.gold .letter{color:#f0e9dc}.subject-card h2{font-size:27px;position:relative}.subject-card p{max-width:75%;color:var(--muted);font-size:12px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.wrap{flex-wrap:wrap}.stats{display:flex;gap:34px;margin:20px 0}.stats strong{font-size:25px;font-weight:600;display:block}.stats span{font-size:11px;color:var(--muted)}.section-title{display:flex;align-items:center;justify-content:space-between;margin:30px 0 14px}.section-title h2{margin:0}progress{width:100%;height:6px;accent-color:var(--green);border:0}.progress-label{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;margin:10px 0 4px}.pill{font-size:11px;border-radius:20px;background:var(--soft);color:var(--green);padding:4px 10px;display:inline-block}.empty{padding:35px 18px;text-align:center;color:var(--muted);font-size:13px}.task{display:flex;align-items:center;gap:14px;padding:17px 0;border-bottom:1px solid var(--line)}.task:last-child{border-bottom:0}.task .grow{flex:1}.task.done .task-title{text-decoration:line-through;color:var(--muted)}input[type=checkbox]{accent-color:var(--green);width:17px;height:17px;flex-shrink:0}input,select,textarea{padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);max-width:100%}textarea{width:100%;resize:vertical;min-height:95px}label.field{display:grid;gap:6px;margin-bottom:15px;font-size:12px;color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid label{margin:0}.list-row{display:flex;align-items:center;gap:12px;padding:15px 12px;border-bottom:1px solid var(--line)}.list-row:hover{background:#f8faf5}.file-icon{width:36px;height:40px;background:#edf2e7;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:19px;color:#5a7c52;flex-shrink:0}.list-row .name{flex:1;min-width:0;overflow-wrap:anywhere}.list-row small{display:block;color:var(--muted);font-size:11px}.folder-click{background:none;border:none;padding:0;text-align:left;justify-content:flex-start}.library-grid{display:grid;grid-template-columns:240px minmax(0,1fr);gap:20px}.library-tree button{display:block;width:100%;text-align:left;margin:4px 0;justify-content:flex-start}.library-tree button.active{background:var(--soft)}.hint{background:#edf2e6;border-radius:10px;padding:12px 15px;font-size:12px;color:#58744f;margin:16px 0}.desk{display:grid;grid-template-columns:1fr;gap:16px}.desk.dual{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.pane{min-width:0}.pane select{width:100%;margin:8px 0 14px}.pane .stage{height:420px;background:#edf0e8;display:flex;align-items:center;justify-content:center;border-radius:10px;overflow:hidden}.pane .stage video{width:100%;height:100%;background:#17241b}.pane .stage iframe{width:100%;height:100%;border:0}.pane .controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:12px 0;font-size:12px}.pane .controls input{width:65px}.pane .controls select{width:auto;margin:0}.pane textarea{margin-top:12px}.topic-card .muted{min-height:36px}.trail{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:12px;margin-bottom:18px}.trail button{border:0;padding:3px;background:none;color:var(--green)}.import-bar{background:#f0f4eb;display:flex;align-items:center;justify-content:space-between;padding:16px;border-radius:10px;margin-bottom:14px;gap:12px}.group-heading{font-size:13px;color:var(--muted);margin:26px 0 12px}.stat-strip{display:flex;gap:22px;flex-wrap:wrap;font-size:12px;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:16px;padding:26px;width:560px;max-width:94vw;color:var(--ink);max-height:88vh;overflow:auto}dialog::backdrop{background:#182b2255;backdrop-filter:blur(3px)}dialog h2{margin-bottom:20px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.pick-list{max-height:340px;overflow:auto;border:1px solid var(--line);border-radius:10px}.pick-list label{display:flex;gap:10px;padding:10px;border-bottom:1px solid var(--line);font-size:12px;align-items:center}.pick-list span{overflow-wrap:anywhere}.hidden{display:none!important}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#263e2e;color:white;padding:12px 18px;border-radius:10px;max-width:90vw;font-size:13px;z-index:99}#toast:empty{display:none}.footer-note{font-size:11px;color:var(--muted);margin-top:24px}.error{color:#a14f38!important}.job-message{font-size:13px;padding:12px;background:#f2f4ee;border-radius:10px;white-space:pre-wrap}.small{font-size:11px;padding:5px 9px}.score{font-size:31px;font-weight:600}.home-bottom{display:grid;grid-template-columns:1.5fr 1fr;gap:20px;margin-top:25px}.journal-history{white-space:pre-wrap;font-size:12px}.subject-icon{display:inline-flex;width:42px;height:42px;background:var(--soft);border-radius:10px;align-items:center;justify-content:center;font-size:21px;margin-bottom:15px}@media(max-width:1100px){.sidebar{width:180px;padding:26px 15px}.main{margin-left:180px}#app{padding:26px}.grid3{grid-template-columns:1fr 1fr}.library-grid{grid-template-columns:190px 1fr}.pane .stage{height:350px}}@media(max-width:760px){.sidebar{position:static;width:100%;padding:15px 18px;display:block;border-bottom:1px solid var(--line)}.brand{font-size:22px}.brand small,.nav-label,.side-bottom,.nav-rule{display:none}.sidebar nav{display:flex;overflow:auto;margin-top:14px;gap:3px}.sidebar nav a{font-size:12px;white-space:nowrap;padding:8px}.main{margin:0}header{padding:14px 18px}#app{padding:23px 16px}.grid2,.grid3,.home-bottom,.library-grid{grid-template-columns:1fr}.hero{align-items:flex-start;flex-direction:column}.hero h1{font-size:27px}.library-tree{display:none}.form-grid{grid-template-columns:1fr}.card{padding:18px}.row{flex-wrap:wrap}.list-row{flex-wrap:wrap}.list-row .name{min-width:120px}.desk.dual{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.desk.dual .card{padding:9px}.desk.dual .stage{height:310px}.desk.dual h3{font-size:12px}.desk.dual .controls{font-size:11px}.desk.dual button{padding:6px}.desk.dual select{font-size:12px}.import-bar{flex-wrap:wrap}.stats{gap:20px}}
/* Hierarchical topic material picker */
.pick-list{max-height:440px}
.pick-folder-row,.pick-file-row{display:flex;gap:10px;padding-top:10px;padding-bottom:10px;border-bottom:1px solid var(--line);font-size:12px;align-items:center;min-height:44px}
.pick-folder-row{font-weight:600;background:#f8faf6}
.pick-file-row{background:#fff}
.pick-disclosure{border:0;background:transparent;padding:2px 4px;min-width:22px;color:var(--green);font-size:15px}
.pick-disclosure:hover{background:#eaf0e5}
.large-file-info{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:24px}.large-file-info strong{font-size:18px}.large-file-info p{margin:0}

/* ===== Lively theme layer: color, motion and positive feedback ===== */
:root{--bg:#f7f5ff;--ink:#1f2340;--muted:#6f7391;--line:#e7e4f5;--green:#5b4cf0;--soft:#efecff;--coral:#ff7a59;--mint:#1fbf8f;--sun:#ffb020;--sky:#3a8dff;--pink:#ff5c93}
body{background:radial-gradient(1200px 500px at 85% -10%,#ffe9dc 0,transparent 60%),radial-gradient(900px 500px at -10% 10%,#e3f4ff 0,transparent 55%),var(--bg);background-attachment:fixed}
.primary{background:linear-gradient(135deg,#6a5cff,#8f5bff);border-color:transparent;box-shadow:0 6px 16px #6a5cff33}
.primary:hover{background:linear-gradient(135deg,#5747f2,#7d48f5);transform:translateY(-1px)}
button,.btn{transition:transform .15s,box-shadow .15s,background .15s;border-radius:11px}
button:active,.btn:active{transform:scale(.97)}
.sidebar{background:linear-gradient(180deg,#ffffffd9,#f6f3ffd9);backdrop-filter:blur(8px)}
.brand{background:linear-gradient(135deg,#5b4cf0,#ff7a59);-webkit-background-clip:text;background-clip:text;color:transparent}
.brand small{-webkit-text-fill-color:var(--muted)}
.sidebar nav a{transition:background .15s,transform .15s}
.sidebar nav a:hover{background:#f0edff;transform:translateX(3px)}
.sidebar nav a.active{background:linear-gradient(135deg,#6a5cff,#9a6bff);color:#fff;box-shadow:0 8px 18px #6a5cff40}
header{background:#ffffffb3;backdrop-filter:blur(8px)}
.eyebrow{color:var(--coral)}
.hero h1{background:linear-gradient(90deg,#2b2160,#5b4cf0 55%,#ff7a59);-webkit-background-clip:text;background-clip:text;color:transparent}
.card{border:1px solid #ece9fb;box-shadow:0 6px 22px #2b216010;border-radius:18px}
.subject-card{color:#fff;border:0;min-height:230px;background:linear-gradient(135deg,#4f7cff,#6a5cff 55%,#9b5cff);box-shadow:0 14px 34px #5b4cf040;transition:transform .2s,box-shadow .2s}
.subject-card.gold{background:linear-gradient(135deg,#ff9a4d,#ff6f61 55%,#ff5c93);box-shadow:0 14px 34px #ff6f6140}
.subject-card:hover{transform:translateY(-4px) rotate(-.3deg);box-shadow:0 20px 40px #5b4cf055}
.subject-card.gold:hover{box-shadow:0 20px 40px #ff6f6155}
.subject-card .letter,.subject-card.gold .letter{color:#ffffff2e;font-size:96px}
.subject-card .eyebrow,.subject-card p,.subject-card .footer-note,.subject-card .progress-label{color:#ffffffd9}
.subject-card progress::-webkit-progress-bar{background:#ffffff40}
.subject-card progress::-webkit-progress-value{background:#fff}
progress{height:9px;border-radius:99px;overflow:hidden;-webkit-appearance:none;appearance:none}
progress::-webkit-progress-bar{background:#ece9fb;border-radius:99px}
progress::-webkit-progress-value{background:linear-gradient(90deg,var(--mint),var(--sky),#8f5bff);border-radius:99px;transition:width .6s}
progress::-moz-progress-bar{background:linear-gradient(90deg,var(--mint),var(--sky),#8f5bff);border-radius:99px}
.topic-card{position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s;border-top:4px solid var(--accent,#6a5cff)}
.topic-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px #2b216018}
.topic-card .topic-emoji{position:absolute;right:16px;top:12px;font-size:30px;opacity:.9;transition:transform .3s}
.topic-card:hover .topic-emoji{transform:scale(1.2) rotate(-8deg)}
.topic-card progress::-webkit-progress-value{background:var(--accent,#6a5cff)}
.group-heading{display:flex;align-items:center;gap:8px;color:var(--ink);font-size:15px}
.group-heading::before{content:'';width:10px;height:10px;border-radius:50%;background:var(--accent,#6a5cff);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent,#6a5cff) 20%,transparent)}
.stats strong{background:linear-gradient(90deg,#5b4cf0,#ff7a59);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:30px}
.stats>div{background:#faf9ff;border-radius:14px;padding:12px 18px}
.task{border-radius:12px;padding:14px 10px;transition:background .15s}
.task:hover{background:#f7f5ff}
.task.done .task-title{color:var(--mint)}
input[type=checkbox]{accent-color:var(--mint)}
.list-row{border-radius:12px}
.list-row:hover{background:#f7f5ff}
.file-icon{background:linear-gradient(135deg,#eef0ff,#fff1ea);color:#5b4cf0}
.list-row .primary{background:linear-gradient(135deg,var(--mint),#16a37a);box-shadow:0 4px 12px #1fbf8f40}
.pane .stage{background:linear-gradient(135deg,#f3f1ff,#fff4ee)}
/* Home motivation strip */
.vibe{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;margin:-8px 0 26px;padding:18px 22px;border-radius:18px;background:linear-gradient(120deg,#fff,#fff7f1 60%,#f4f1ff);border:1px solid #f1e8ff;box-shadow:0 8px 24px #ff7a5914}
.vibe .flame{font-size:38px;line-height:1;animation:flicker 1.6s ease-in-out infinite;transform-origin:50% 90%}
.vibe .streak strong{font-size:26px;color:var(--coral)}
.vibe .streak small{display:block;color:var(--muted);font-size:12px}
.vibe .quote{font-size:14px;color:#3d3566;border-left:3px solid #ffd2c2;padding-left:16px}
.vibe .quote small{display:block;color:var(--muted);margin-top:4px;font-size:11px}
.vibe .week{display:flex;gap:6px}
.vibe .week span{width:26px;height:26px;border-radius:8px;background:#efecff;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--muted)}
.vibe .week span.on{background:linear-gradient(135deg,var(--sun),var(--coral));color:#fff;font-weight:700;box-shadow:0 4px 10px #ff7a5940}
.vibe .week span.today{outline:2px solid #6a5cff55}
@keyframes flicker{0%,100%{transform:scale(1) rotate(-2deg)}50%{transform:scale(1.12) rotate(3deg)}}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
#app>*{animation:rise .35s ease both}
#app>*:nth-child(2){animation-delay:.04s}#app>*:nth-child(3){animation-delay:.08s}#app>*:nth-child(4){animation-delay:.12s}#app>*:nth-child(5){animation-delay:.16s}
.confetti{position:fixed;top:-12px;width:9px;height:14px;border-radius:2px;z-index:200;pointer-events:none;animation:fall var(--d,1.6s) cubic-bezier(.2,.6,.4,1) forwards}
@keyframes fall{to{transform:translate(var(--x,0),105vh) rotate(var(--r,540deg));opacity:.2}}
#toast{background:linear-gradient(135deg,#2b2160,#5b4cf0);border-radius:14px;box-shadow:0 10px 30px #2b216055}
@media(max-width:760px){.vibe{grid-template-columns:auto 1fr}.vibe .week{grid-column:1/-1}.sidebar{background:#fff}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.confetti{display:none}}
/* PDF reading: adaptive size, focus mode, fullscreen */
.pdf-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:4px 0 10px}
.pane .stage.pdf-stage{height:calc(100vh - 170px);min-height:560px;background:#525659;border-radius:12px}
.pane .stage.pdf-stage:fullscreen{height:100vh;border-radius:0}
.pdf-wrap:fullscreen{background:#2b2160;padding:10px 14px;display:flex;flex-direction:column}
.pdf-wrap:fullscreen .pdf-tools{margin:0 0 8px}.pdf-wrap:fullscreen .pdf-tools small{color:#ffffffb3}
.pdf-wrap:fullscreen .pane .stage.pdf-stage,.pdf-wrap:fullscreen .stage.pdf-stage{flex:1;height:auto;min-height:0}
.pane .stage.pdf-stage iframe{width:100%;height:100%;border:0;background:#525659}
body.pdf-focus .sidebar,body.pdf-focus header,body.pdf-focus .hero,body.pdf-focus #topicOverview,body.pdf-focus .section-title,body.pdf-focus #app>.footer-note,body.pdf-focus #app>section.card:not(#topicOverview){display:none!important}
body.pdf-focus .main{margin-left:0}
body.pdf-focus #app{max-width:none;padding:10px 14px}
body.pdf-focus .pane .stage.pdf-stage{height:calc(100vh - 120px)}
@media(max-width:760px){.pane .stage.pdf-stage{height:calc(100vh - 120px);min-height:420px}}
.pdf-tools .active-view{background:var(--soft);border-color:#b9b0ff;color:#5b4cf0;font-weight:600}
/* ===== Plan-driven homepage, progress and schedule ===== */
.countdown{font-size:13px;font-weight:700;color:#fff;background:linear-gradient(135deg,#ff7a59,#ff5c93);padding:8px 14px;border-radius:99px;box-shadow:0 6px 16px #ff5c9340}
.expect-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:4px 0 22px}
.expect{background:#fff;border:1px solid #ece9fb;border-radius:16px;padding:16px 18px;box-shadow:0 6px 18px #2b216010}
.expect-label{font-size:11px;color:var(--muted);letter-spacing:.5px}
.expect strong{display:block;font-size:26px;margin:6px 0 2px;background:linear-gradient(90deg,#5b4cf0,#ff7a59);-webkit-background-clip:text;background-clip:text;color:transparent}
.expect.ok strong{background:linear-gradient(90deg,#1fbf8f,#3a8dff);-webkit-background-clip:text;background-clip:text}
.day-goal{background:#fff6ef;border:1px dashed #ffcbb5;color:#8a4a2f;border-radius:12px;padding:10px 14px;margin:10px 0 6px;font-size:13px}
.plan-task{align-items:flex-start}
.task-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px}
.task-meta .time{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.chip-kind,.chip-mod,.chip-q{font-size:10px;padding:3px 8px;border-radius:99px;white-space:nowrap}
.chip-kind{background:color-mix(in srgb,var(--accent,#6a5cff) 14%,#fff);color:var(--accent,#6a5cff);font-weight:600}
.chip-mod{background:color-mix(in srgb,var(--accent,#6a5cff) 12%,#fff);color:var(--accent,#6a5cff)}
.chip-q{background:#f2f0ff;color:#5b4cf0;font-weight:600}
.task-right{display:flex;align-items:center;gap:4px;flex-shrink:0}
.score-input{width:64px;text-align:center}
.mod-row{padding:12px 0}
.mod-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.mod-name{font-weight:600}
.mod-count{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.mod-row progress{margin:8px 0 6px}
.mod-row progress::-webkit-progress-value{background:var(--accent,#6a5cff)}
.mod-foot{display:flex;flex-wrap:wrap;gap:14px;font-size:11px;color:var(--muted)}
.mod-foot .good{color:#16a37a;font-weight:700}
.mod-foot .warn{color:#d9822b;font-weight:700}
.mod-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.mod-card{padding:16px 20px}
.acc-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:6px}
.acc-table th,.acc-table td{padding:8px 6px;border-bottom:1px solid var(--line);text-align:center}
.acc-table th:first-child,.acc-table td:first-child{text-align:left}
.acc-table .now{background:#efecff;font-weight:700;color:#5b4cf0;border-radius:6px}
.acc-table .good{color:#16a37a;font-weight:700}
.acc-table .warn{color:#d9822b;font-weight:700}
@media(max-width:1100px){.expect-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mod-grid{grid-template-columns:1fr}}
@media(max-width:760px){.expect-grid{grid-template-columns:1fr 1fr}.task-right{width:100%;justify-content:flex-end}}
.score-input.bad{border-color:#e5484d;background:#fff5f5}
.preview{background:#f4f1ff;border-radius:10px;padding:10px 14px;font-size:13px;color:#3d3566;margin:4px 0 2px}
.row-check{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--muted);margin-top:12px}
.day-goal{display:flex;gap:10px;align-items:center;justify-content:space-between}
.task-right .ghost{opacity:.5}
.task-right .ghost:hover{opacity:1}
.task-right .score-input{width:58px}
.week-table td{vertical-align:middle;min-width:76px}
.week-table .cell-rate{font-weight:700;font-size:13px}
.week-table .cell-sub{font-size:10px;color:var(--muted);margin-top:2px}
.week-table td.good{background:#eafaf3}
.week-table td.good .cell-rate{color:#16a37a}
.week-table td.warn{background:#fff6ec}
.week-table td.warn .cell-rate{color:#d9822b}
.week-table td.idle{color:#c3c7d6}
.week-table th.now{background:#efecff;color:#5b4cf0;border-radius:6px}
/* 每日准确率折线图 */
.trend{width:100%;height:auto;display:block;margin:6px 0 4px;overflow:visible}
.trend .grid{stroke:#ece9fb;stroke-width:1}
.trend .axis{stroke:#cfc9ee;stroke-width:1}
.trend .tick{font-size:11px;fill:#8b90ab}
.trend .series{fill:none;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.trend .dot{stroke:#fff;stroke-width:1.5}
.trend .target-line{fill:none;stroke:#c9c3f2;stroke-width:2;stroke-dasharray:6 5}
.trend-legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.legend-chip{font-size:11px;padding:5px 11px;border-radius:99px;border:1px solid var(--line);background:#fff;color:var(--muted)}
.legend-chip.on{border-color:var(--accent,#6a5cff);color:var(--accent,#6a5cff);background:color-mix(in srgb,var(--accent,#6a5cff) 10%,#fff);font-weight:600}
.trend-filters{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.trend-filters button{padding:4px 8px}.trend .small-sample .dot{opacity:.42;stroke-dasharray:2 2}.reality-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 22px}.reality-box{background:#fff;border:1px solid #ece9fb;border-radius:14px;padding:13px 15px;box-shadow:0 5px 16px #2b21600c}.reality-box strong{display:block;font-size:22px;margin:4px 0;background:linear-gradient(90deg,#5b4cf0,#ff7a59);-webkit-background-clip:text;background-clip:text;color:transparent}.reality-box.ok strong{background:linear-gradient(90deg,#1fbf8f,#3a8dff);-webkit-background-clip:text;background-clip:text;color:transparent}.task.skipped{opacity:.65;background:#f8f8fb}.task.skipped .task-title{text-decoration:line-through;color:var(--muted)}.reminder-card{background:linear-gradient(120deg,#fff,#f8f5ff)}
@media(max-width:900px){.reality-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
 body{padding-bottom:68px}.sidebar{position:static;padding:13px 16px 8px}.sidebar nav{position:fixed;left:0;right:0;bottom:0;z-index:50;margin:0;padding:7px max(8px,env(safe-area-inset-left)) calc(7px + env(safe-area-inset-bottom));background:#fffffff2;border-top:1px solid #e7e4f5;box-shadow:0 -5px 22px #2b216015;display:flex;justify-content:space-around;gap:4px;backdrop-filter:blur(12px)}.sidebar nav a{flex:1;text-align:center;padding:8px 4px;font-size:12px}.main{margin:0}.task-right button{min-height:36px}.task-right .score-input{min-height:36px}.expect-grid{gap:9px}.expect{padding:12px 13px}.reality-grid{grid-template-columns:1fr 1fr;gap:9px}.reality-box{padding:11px 12px}.reality-box strong{font-size:19px}.trend-filters{justify-content:flex-start;width:100%;margin-top:6px}.trend-filters button{min-height:34px}.trend-filters+*{margin-top:6px}
}
