.feedback-text[data-v-47a18aaa]{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:8px}.feedback-record>.body[data-v-47a18aaa]{min-width:0;flex:1}.feedback-panel textarea[data-v-47a18aaa]{min-height:110px}:root{--bg:#F4F3EE;--card:#FFFFFF;--ink:#2B2A26;--ink-2:#5C5A53;--ink-3:#8A8780;--line:#E6E3DA;--accent:#D97757;--accent-soft:#FBEDE6;--accent-ink:#A8512F;--ok:#5F8F6B;--ok-soft:#E8F1EA;--warn:#B98A2E;--warn-soft:#FBF3E0;--shadow:0 1px 2px rgba(43,42,38,.05),0 8px 24px rgba(43,42,38,.06);--serif:"Noto Serif SC","Songti SC","STSong","SimSun",Georgia,serif;--sans:"Inter","Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1C1B18;--card:#262521;--ink:#EDEAE2;--ink-2:#BDB9AE;--ink-3:#8A8780;--line:#38362F;--accent:#E08B6D;--accent-soft:#3A2A22;--accent-ink:#F0A585;--ok:#8FBF9A;--ok-soft:#26332A;--warn:#D9B05A;--warn-soft:#3A3222;--shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.25)}}:root[data-theme=dark]{--bg:#1C1B18;--card:#262521;--ink:#EDEAE2;--ink-2:#BDB9AE;--ink-3:#8A8780;--line:#38362F;--accent:#E08B6D;--accent-soft:#3A2A22;--accent-ink:#F0A585;--ok:#8FBF9A;--ok-soft:#26332A;--warn:#D9B05A;--warn-soft:#3A3222;--shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.25)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased}a{color:var(--accent-ink);text-decoration:none;border-bottom:1px solid transparent}a:hover{border-bottom-color:var(--accent-ink)}h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.3;margin:0}h1{font-size:clamp(26px,4vw,40px);letter-spacing:-.01em}h2{font-size:clamp(21px,2.6vw,28px);margin-bottom:8px}h3{font-size:19px;margin-bottom:6px}h4{font-size:17px}p{margin:0 0 12px}ul,ol{margin:0 0 12px;padding-left:22px}li{margin-bottom:6px}li::marker{color:var(--accent)}code{font-family:var(--mono);font-size:13.5px;background:var(--bg);padding:2px 7px;border-radius:6px;color:var(--ink)}pre{font-family:var(--mono);font-size:13px;line-height:1.6;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:14px 16px;overflow-x:auto;margin:10px 0 14px;white-space:pre}.wrap{max-width:1180px;margin:0 auto;padding:0 16px}section.view{display:none;padding:28px 0 60px}section.view.on{display:block}.card{background:var(--card);border-radius:18px;box-shadow:var(--shadow);padding:22px 24px;border:1px solid var(--line)}.card+.card{margin-top:18px}.grid{display:grid;gap:18px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.pill{display:inline-block;padding:3px 11px;border-radius:999px;font-size:12.5px;font-weight:500;line-height:1.5;white-space:nowrap;vertical-align:middle}.pill-a{background:var(--accent-soft);color:var(--accent-ink)}.pill-ok{background:var(--ok-soft);color:var(--ok)}.pill-warn{background:var(--warn-soft);color:var(--warn)}.pill-grey{background:var(--bg);color:var(--ink-2);border:1px solid var(--line)}.note{border-left:3px solid var(--accent);background:var(--accent-soft);padding:12px 16px;border-radius:0 12px 12px 0;margin:14px 0;font-size:15px}.note.warn{border-left-color:var(--warn);background:var(--warn-soft)}.note.ok{border-left-color:var(--ok);background:var(--ok-soft)}.note p:last-child{margin:0}.small{font-size:14px;color:var(--ink-2)}.muted{color:var(--ink-3)}.sep{height:1px;background:var(--line);margin:18px 0}table{width:100%;border-collapse:collapse;font-size:14.5px;margin:8px 0 6px}th,td{text-align:left;padding:10px 12px;vertical-align:top;border-bottom:1px solid var(--line)}th{font-weight:600;color:var(--ink-2);font-size:13px;letter-spacing:.04em;background:var(--bg)}tr:last-child td{border-bottom:0}.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-ink);font-weight:600;margin-bottom:10px}.eyebrow:before{content:"";width:22px;height:2px;background:var(--accent);border-radius:2px}.lede{font-size:17px;color:var(--ink-2);max-width:780px}.topbar{position:sticky;top:0;z-index:30;background:var(--bg);border-bottom:1px solid var(--line)}.topbar .in{max-width:1180px;margin:0 auto;padding:12px 16px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px}.brand{font-family:var(--serif);font-weight:600;font-size:18px;line-height:1.2}.brand small{display:block;font-family:var(--sans);font-weight:400;font-size:12px;color:var(--ink-3);margin-top:3px}.tabs{display:flex;flex-wrap:wrap;gap:6px}.tab{padding:7px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink-2);font:inherit;font-size:14px;cursor:pointer;line-height:1.4}.tab:hover{border-color:var(--accent)}.tab.on{background:var(--accent);border-color:var(--accent);color:#fff}.ctl{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 18px}.kidsel{display:flex;gap:6px;flex-wrap:wrap}.kbtn{padding:7px 13px;border-radius:10px;border:1px solid var(--line);background:var(--card);cursor:pointer;font:inherit;font-size:14px;color:var(--ink-2);line-height:1.4}.kbtn.on{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft);font-weight:500}.ctl .lbl{font-size:13px;color:var(--ink-3)}.kid-layout{display:grid;grid-template-columns:1fr;gap:20px;align-items:start}@media(min-width:980px){.kid-layout{grid-template-columns:330px minmax(0,1fr);gap:22px}.left{position:sticky;top:78px}}.left{display:grid;gap:16px}.daystrip{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.day{padding:7px 2px 6px;border-radius:12px;border:1px solid var(--line);background:var(--bg);text-align:center;cursor:pointer;font-size:13px;line-height:1.3;color:var(--ink-2)}.day .d{display:block;font-size:11px;color:var(--ink-3)}.day .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--line);margin-top:5px}.day .dot.done{background:var(--ok)}.day .dot.part{background:var(--warn)}.day .dot.rest{background:transparent;border:1px dashed var(--ink-3)}.day.on{border-color:var(--accent);background:var(--card);box-shadow:0 0 0 2px var(--accent-soft);color:var(--ink)}.tl{list-style:none;padding:0;margin:0}.tl li{display:flex;gap:10px;align-items:baseline;padding:7px 0;border-bottom:1px dashed var(--line);font-size:14.5px;cursor:pointer}.tl li:last-child{border-bottom:0}.tl .n{color:var(--accent);font-family:var(--serif);min-width:18px}.tl .m{margin-left:auto;color:var(--ink-3);font-size:13px;white-space:nowrap}.tl li.done .t{text-decoration:line-through;color:var(--ink-3)}.tl li.part .t{color:var(--warn)}.daytype{font-family:var(--serif);font-size:18px;margin-bottom:4px}.total{font-size:13px;color:var(--ink-3)}.task{margin-top:0}.task+.task{margin-top:16px}.task .hd{display:flex;align-items:flex-start;gap:12px}.task .num{font-family:var(--serif);font-size:22px;color:var(--accent);line-height:1.2;min-width:26px}.task h4{font-size:17px;margin:0;line-height:1.4}.task .sub{font-size:13.5px;color:var(--ink-3);margin-top:2px}.task .mins{margin-left:auto;font-size:13px;color:var(--ink-3);white-space:nowrap;padding-top:4px}details.how{margin-top:10px;font-size:14px;color:var(--ink-2)}details.how summary{cursor:pointer;color:var(--accent-ink);font-size:13.5px;list-style:none}details.how summary::-webkit-details-marker{display:none}details.how summary:before{content:"▸ "}details[open].how summary:before{content:"▾ "}details.how p{margin:8px 0 0}.fields{display:grid;gap:12px;margin-top:14px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.fld{display:flex;flex-direction:column;gap:5px;min-width:0}.fld.wide{grid-column:1/-1}.fld label{font-size:13px;color:var(--ink-3);line-height:1.4}.fld input,.fld select,.fld textarea{font:inherit;font-size:15px;line-height:1.5;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);width:100%;max-width:100%}.fld textarea{min-height:80px;resize:vertical}.fld input:focus,.fld select:focus,.fld textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.fld input:disabled,.fld select:disabled{opacity:.6}.fld .hint{font-size:12.5px;color:var(--ink-3)}.fld .static{font-size:15px;padding:8px 12px;border-radius:10px;background:var(--accent-soft);color:var(--accent-ink)}.score{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.score input{width:72px}.chk{display:flex;align-items:center;gap:8px;font-size:15px;padding-top:22px}.chk input{width:18px;height:18px;accent-color:var(--accent)}.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:var(--card)}.seg button{padding:6px 14px;border:0;background:transparent;color:var(--ink-2);cursor:pointer;font:inherit;font-size:14px;line-height:1.4}.seg button+button{border-left:1px solid var(--line)}.seg button.on-done{background:var(--ok-soft);color:var(--ok);font-weight:600}.seg button.on-part{background:var(--warn-soft);color:var(--warn);font-weight:600}.seg button.on-skip{background:var(--line);color:var(--ink);font-weight:600}.task .ft{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:14px}.saved{font-size:13px;color:var(--ink-3);margin-left:auto}.saved.busy{color:var(--warn)}.saved.ok{color:var(--ok)}.count{font-size:12.5px;color:var(--ink-3)}.school li{font-size:14.5px}.momgrid{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.kid-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-bottom:10px}.kid-head h3{margin:0;font-size:21px}.bar{height:8px;border-radius:4px;background:var(--line);overflow:hidden;margin:6px 0}.bar i{display:block;height:100%;background:var(--ok);border-radius:4px;transition:width .3s}.radio{display:flex;flex-wrap:wrap;gap:6px}.radio button{padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--card);font:inherit;font-size:13.5px;color:var(--ink-2);cursor:pointer;line-height:1.4}.radio button.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink);font-weight:500}.confirm{margin-top:12px;display:grid;gap:10px}.todo{list-style:none;padding:0;margin:8px 0 0}.todo li{padding:7px 0;border-bottom:1px dashed var(--line);margin:0}.todo li:last-child{border-bottom:0}.todo .chk{padding-top:0;font-size:15px;align-items:flex-start}.todo .chk input{margin-top:5px;flex:none}.todo li.on label{color:var(--ink-3);text-decoration:line-through}.confirm>label{font-size:13px;color:var(--ink-3)}.btn{display:inline-block;padding:9px 18px;border-radius:999px;border:1px solid var(--accent);background:var(--accent);color:#fff;font:inherit;font-size:14.5px;cursor:pointer;line-height:1.4}.btn.ghost{background:transparent;color:var(--accent-ink)}.btn:hover{filter:brightness(.96)}.timeline{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.phase{position:relative;padding:18px 18px 16px;border-radius:14px;background:var(--bg);border:1px solid var(--line)}.phase .n{font-family:var(--serif);font-size:12.5px;letter-spacing:.14em;color:var(--accent-ink);text-transform:uppercase;margin-bottom:6px}.phase h4{font-size:16.5px;margin-bottom:8px}.phase ul{font-size:14px;color:var(--ink-2);padding-left:18px;margin:0}.phase.now{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.stat{padding:16px 18px;border-radius:14px;background:var(--bg);border:1px solid var(--line)}.stat .lbl{font-size:13px;color:var(--ink-3);margin-bottom:4px}.stat .big{font-family:var(--serif);font-size:clamp(24px,3vw,32px);font-weight:600;line-height:1.15;color:var(--accent-ink);overflow-wrap:anywhere}.stat .src{font-size:12px;color:var(--ink-3);margin-top:6px}.flow{display:flex;flex-wrap:wrap;gap:14px;align-items:stretch}.flow .step{flex:1 1 200px;padding:16px 18px;border-radius:14px;background:var(--bg);border:1px solid var(--line)}.flow .step .k{font-family:var(--serif);font-size:26px;color:var(--accent);line-height:1;margin-bottom:8px}.flow .step p{font-size:14.5px;color:var(--ink-2);margin:0}.flow .step h4{font-size:16px;margin-bottom:6px}.chart{width:100%;height:auto;display:block}.chart text{font-family:var(--sans);fill:var(--ink-3);font-size:11px}.chart .axis{stroke:var(--line);stroke-width:1}.chart .grid{stroke:var(--line);stroke-width:1;stroke-dasharray:2 4}.chart .ln{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.chart .pt{fill:var(--accent);stroke:var(--card);stroke-width:2}.chart .pt:hover{r:6}.chart .lab{fill:var(--ink);font-weight:600;font-size:12px}.chart .bar{fill:var(--accent)}.chart .bar.lo{fill:var(--warn)}.mini{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.mini .card{padding:16px 18px}.mini h4{font-size:15px;margin-bottom:4px}.mini .sub{font-size:12.5px;color:var(--ink-3);margin-bottom:8px}.tag-demo{font-size:12px;color:var(--warn);background:var(--warn-soft);padding:2px 9px;border-radius:999px}.ms{list-style:none;padding:0;margin:0}.ms li{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:10px 0;border-bottom:1px dashed var(--line);font-size:14.5px}.ms li:last-child{border-bottom:0}.ms .d{font-family:var(--serif);color:var(--accent-ink);font-size:14px;line-height:1.6}.decide{counter-reset:d}.decide .card{position:relative;padding-left:64px}.decide .card:before{counter-increment:d;content:counter(d);position:absolute;left:22px;top:20px;font-family:var(--serif);font-size:24px;color:var(--accent);line-height:1}.decide h3{font-size:17px}.decide p{font-size:14.5px}.decide .rec{font-weight:600;color:var(--accent-ink)}footer{padding:26px 0 60px;color:var(--ink-3);font-size:13px;border-top:1px solid var(--line);margin-top:20px}footer p{margin:0 0 6px}@media(max-width:600px){.card{padding:18px 16px;border-radius:14px}.decide .card{padding-left:54px}.decide .card:before{left:16px}.ms li{grid-template-columns:1fr}}:root{color-scheme:light}button,input,select,textarea{font-family:var(--sans)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.login{max-width:500px;margin:9vh auto;padding:24px}.login .card{padding:34px}.login h1{font-size:32px;margin-bottom:8px}.login form{display:grid;gap:18px;margin-top:26px}.login .btn{width:100%;margin-top:8px}.remember-login{display:flex;align-items:center;gap:9px;color:var(--ink-2);font-size:14px;cursor:pointer}.remember-login input{width:18px;height:18px;accent-color:var(--accent);margin:0}.topbar .in{max-width:1280px}.wrap{max-width:1240px}.account{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-2)}.text-btn{background:none;border:0;color:var(--accent-ink);cursor:pointer;padding:4px;font-size:13px}.app-main{padding-top:22px;padding-bottom:50px}.page-heading{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:20px;flex-wrap:wrap}.page-heading h1{font-size:27px}.page-heading input{border:1px solid var(--line);padding:7px 10px;border-radius:9px;background:var(--card);color:var(--ink)}.weeknav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.weeknav button{border:1px solid var(--line);background:var(--card);color:var(--ink-2);border-radius:9px;padding:7px 12px;cursor:pointer}.save-banner{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:9px 14px;border-radius:10px;background:var(--ok-soft);color:var(--ok);font-size:13px;margin-bottom:16px}.save-banner.dirty{background:var(--warn-soft);color:var(--warn)}.error{background:var(--warn-soft);border:1px solid var(--warn);padding:12px 16px;border-radius:10px;margin:12px 0;color:var(--ink)}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:100;background:var(--ink);color:var(--bg);padding:12px 22px;border-radius:12px;max-width:90vw;box-shadow:var(--shadow)}.fld input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);margin:9px 0}.task .sub{max-width:680px}.task[aria-disabled=true]{opacity:.85}.task h4{font-family:var(--sans);font-weight:600}.task .score input{width:80px}.status-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px}.empty{padding:40px 20px;text-align:center;color:var(--ink-3);border:1px dashed var(--line);border-radius:14px}.review-form{display:grid;gap:18px}.review-form textarea{min-height:85px}.review-form .actions{display:flex;gap:10px;flex-wrap:wrap}.report{width:100%;min-height:360px;resize:vertical;font-family:var(--mono);font-size:13px;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:14px;color:var(--ink)}.planner-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.edit-list{display:grid;gap:10px}.edit-task{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}.edit-task .fields{margin-top:0;grid-template-columns:1fr 100px}.code{font-family:var(--mono)!important;font-size:12px!important;min-height:260px!important;white-space:pre}.version-log{max-height:220px;overflow:auto;font-size:13px}.record{border-bottom:1px solid var(--line);padding:14px 0;display:flex;gap:12px;align-items:start}.record:last-child{border:0}.record .body{flex:1;min-width:0}.record p{margin-bottom:2px;white-space:pre-wrap;overflow-wrap:anywhere}.form-actions{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}.tracking-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.tracking-grid .card+.card{margin:0}.momgrid>.card+.card{margin-top:0}.chart-empty{height:130px;display:grid;place-items:center;color:var(--ink-3);font-size:14px}.chart-lines{width:100%;height:160px;overflow:visible}.chart-lines text{fill:var(--ink-3);font-size:10px}.chart-lines polyline{fill:none;stroke:var(--accent);stroke-width:2.5}.chart-lines circle{fill:var(--accent)}.chart-lines line{stroke:var(--line)}.modal-backdrop{position:fixed;inset:0;background:#0006;display:grid;place-items:center;z-index:200;padding:20px}.modal{max-width:440px;width:100%}details>summary{cursor:pointer;color:var(--accent-ink);font-size:14px}.reference{margin-top:26px}.reference .note:first-child{display:none}.reference .card{box-shadow:none}.btn.danger{background:var(--warn);border-color:var(--warn)}@media(max-width:700px){.topbar .in{gap:12px}.brand{font-size:17px}.brand small{font-size:11px}.account{margin-left:0}.tabs{width:100%}.tab{padding:7px 12px}.page-heading h1{font-size:24px}.grid-2,.momgrid{grid-template-columns:1fr}.kid-layout{display:flex;flex-direction:column}.left{width:100%;position:static}.left>.card:not(:first-child){display:none}.kid-layout>div{width:100%}.fields{grid-template-columns:1fr}.card+.card{margin-top:16px}.task .mins{font-size:12px}.task .num{min-width:20px}.task h4{font-size:16px}.edit-task .fields{grid-template-columns:1fr 90px}.score{flex-wrap:nowrap}.score input{min-width:60px}}
