:root{--bg:#f2f0eb;--block:#e9e6de;--block-2:#dfdbd1;--raised:#f7f5f1;--text:#1e2532;--text-2:#5f6570;--text-3:#979aa1;--line:#d6d2c7;--line-soft:#e2ded5;--accent:#3e4a5c;--accent-hover:#2f3948;--accent-ink:#f2f0eb;--accent-soft:#e1e4e8;--late:#9a4b32;--late-soft:#f0e2da;--glass:#f2f0ebe6;--r-lg:6px;--r-md:4px;--gutter:clamp(18px, 4vw, 40px);--font:-apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Helvetica Neue", "Segoe UI", "Microsoft YaHei", sans-serif;--serif:"Songti SC", "STSong", "Noto Serif SC", "Source Han Serif SC", "Source Han Serif", ui-serif, Georgia, serif;--ease:cubic-bezier(.25, .1, .25, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);min-height:100vh;color:var(--text);font:15px/1.65 var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}img{display:block}[hidden]{display:none!important}.boot{color:var(--text-3);text-align:center;margin-top:30vh}.top{z-index:20;background:var(--glass);-webkit-backdrop-filter:saturate(1.2)blur(14px);border-bottom:1px solid var(--line-soft);padding-top:env(safe-area-inset-top);position:sticky;top:0}.top-in{max-width:720px;padding:0 var(--gutter);align-items:center;gap:14px;height:54px;margin:0 auto;display:flex}.top-in.wide{max-width:1040px}.brand{font-family:var(--serif);letter-spacing:.01em;align-items:center;gap:8px;font-size:18px;text-decoration:none;display:flex}.brand img{border-radius:5px}.brand small{font-family:var(--font);color:var(--text-3);letter-spacing:.12em;margin-left:2px;font-size:12px}.back{color:var(--text-2);border-left:1px solid var(--line);padding-left:14px;font-size:13px;text-decoration:none}.back:hover{color:var(--text)}.me{margin-left:auto;position:relative}.me-btn{border-radius:var(--r-md);color:var(--text-2);cursor:pointer;background:0 0;border:1px solid #0000;padding:5px 10px;font-size:14px}.me-btn:hover,.me-btn[aria-expanded=true]{border-color:var(--line);color:var(--text)}.menu{background:var(--raised);border:1px solid var(--line);border-radius:var(--r-lg);min-width:200px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 32px #1c1c1a1a}.menu p{color:var(--text-3);word-break:break-all;border-bottom:1px solid var(--line-soft);margin:0;padding:8px 10px;font-size:12px}.menu button{text-align:left;border-radius:var(--r-md);cursor:pointer;background:0 0;border:0;width:100%;padding:9px 10px;font-size:14px;display:block}.menu button:hover{background:var(--block)}main{max-width:720px;padding:36px var(--gutter) calc(96px + env(safe-area-inset-bottom));margin:0 auto}main.wide{max-width:1040px}main.narrow{max-width:480px;padding-top:18vh}.kick{letter-spacing:.14em;color:var(--text-3);margin:0 0 10px;font-size:12px}h1{font-family:var(--serif);letter-spacing:.01em;margin:0;font-size:clamp(28px,6vw,40px);font-weight:400;line-height:1.22}.sub{color:var(--text-2);margin:12px 0 0;font-size:14px;line-height:1.75}.meta{color:var(--text-2);word-break:keep-all;margin:12px 0 0;font-size:13px;line-height:1.9}.meta .link{font-size:13px}.sec{font-family:var(--serif);margin:44px 0 6px;font-size:21px;font-weight:400}.sec small{font-family:var(--font);color:var(--text-3);letter-spacing:.04em;margin-left:10px;font-size:12px}.note{color:var(--text-3);margin:10px 0 0;font-size:12px}.late{color:var(--late)}.banner{background:var(--block);border-radius:var(--r-lg);color:var(--text-2);margin:18px 0 0;padding:10px 14px;font-size:13px}.page-head{margin-bottom:8px}.row-head{justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.btn{border-radius:var(--r-md);border:1px solid var(--accent);background:var(--accent);height:42px;color:var(--accent-ink);letter-spacing:.02em;cursor:pointer;white-space:nowrap;transition:background .15s var(--ease), border-color .15s var(--ease), opacity .15s;justify-content:center;align-items:center;gap:6px;padding:0 18px;font-size:14px;text-decoration:none;display:inline-flex}.btn:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn:disabled{opacity:.55;cursor:default}.btn.ghost{color:var(--accent);border-color:var(--line);background:0 0}.btn.ghost:hover{border-color:var(--accent);background:0 0}.btn.small{height:34px;padding:0 13px;font-size:13px}.btn.wide{width:100%}.link{color:var(--accent);cursor:pointer;text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);background:0 0;border:0;padding:0;font-size:13px}.link:hover{text-decoration-color:currentColor}.link.center{margin:14px auto 0;display:block}.link.danger{color:var(--late)}.link:disabled{color:var(--text-3);cursor:default;text-decoration:none}.field{gap:6px;min-width:0;display:grid}.field>span{color:var(--text-2);font-size:13px}:where(input:not([type=checkbox]):not([type=radio]),select,textarea){border:1px solid var(--line);border-radius:var(--r-md);background:var(--raised);width:100%;height:42px;transition:border-color .15s var(--ease), box-shadow .15s var(--ease);appearance:none;padding:0 12px}select{background-image:linear-gradient(45deg, transparent 50%, var(--text-3) 50%), linear-gradient(135deg, var(--text-3) 50%, transparent 50%);background-position:calc(100% - 17px) 18px,calc(100% - 12px) 18px;background-repeat:no-repeat;background-size:5px 5px;padding-right:30px}textarea{resize:vertical;height:auto;padding:10px 12px;line-height:1.6}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #3e4a5c24}input::placeholder{color:var(--text-3)}input[readonly],textarea[readonly]{background:var(--block)}.err{color:var(--late);margin:4px 0 0;font-size:13px}.hint{color:var(--text-3);font-size:12px}.hint.ok{color:var(--accent)}.hint.late{color:var(--late)}.auth{min-height:100vh;padding:48px var(--gutter);place-items:center;display:grid}.auth-in{width:100%;max-width:380px}.auth-mark{border-radius:10px;margin-bottom:28px}.auth-form{gap:16px;margin-top:30px;display:grid}.sent p{color:var(--text-2);margin:0;font-size:14px;line-height:1.7}.sent b{color:var(--text);word-break:break-all;font-weight:500}.sent .link{margin-top:6px}.field[data-code] input{letter-spacing:.4em;text-align:center;font-variant-numeric:tabular-nums;height:52px;font-size:22px}.dev{border-top:1px dashed var(--line);margin-top:26px;padding-top:14px}.road{margin:34px 0 0;padding:0;list-style:none}.ms{padding-left:32px;position:relative}.ms:before{content:"";background:var(--line);width:1px;position:absolute;top:30px;bottom:-14px;left:7px}.ms:last-child:before{display:none}.ms.passed:before,.ms.review:before{background:var(--accent)}.ms summary{cursor:pointer;border-radius:var(--r-md);align-items:baseline;gap:12px;padding:14px 0;list-style:none;display:flex}.ms summary::-webkit-details-marker{display:none}.node{border:1.5px solid var(--line);background:var(--bg);border-radius:50%;width:15px;height:15px;position:absolute;top:19px;left:0}.ms.passed .node{background:var(--accent);border-color:var(--accent)}.ms.passed .node:after{content:"";border:solid var(--accent-ink);border-width:0 1.5px 1.5px 0;width:3.5px;height:7px;position:absolute;top:1.5px;left:4px;transform:rotate(45deg)}.ms.review .node{border-color:var(--accent)}.ms.review .node:after{content:"";background:var(--accent);border-radius:50%;position:absolute;inset:3px}.ms.current .node{border-color:var(--accent);background:linear-gradient(90deg, var(--accent) 50%, var(--bg) 50%)}.ms-name{font-family:var(--serif);font-size:19px;line-height:1.4}.ms.todo .ms-name{color:var(--text-2)}.ms-meta{color:var(--text-3);white-space:nowrap;font-variant-numeric:tabular-nums;margin-left:auto;font-size:13px}.ms.current .ms-meta{color:var(--accent)}.ms summary:hover .ms-name{text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:5px}.ms-body{padding:0 0 26px}.ms-dates{color:var(--text-3);letter-spacing:.04em;margin:-6px 0 12px;font-size:12px}.goal{color:var(--text-2);white-space:pre-line;margin:0 0 16px;font-size:14px;line-height:1.75}.tasks{border-top:1px solid var(--line-soft);margin:0;padding:0;list-style:none}.task{border-bottom:1px solid var(--line-soft);align-items:flex-start;gap:12px;padding:13px 0;display:flex}.task .t{flex:1;min-width:0;font-size:15px;line-height:1.6}.task.done .t{color:var(--text-3);text-decoration:line-through;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line)}.due{color:var(--text-3);font-variant-numeric:tabular-nums;flex:none;padding-top:3px;font-size:12px}.due.soon{color:var(--accent)}.due.late{color:var(--late)}.chk{cursor:pointer;flex:none;width:22px;height:22px;margin-top:1px;position:relative}.chk input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.chk i{border:1.5px solid var(--line);background:var(--raised);transition:background .15s var(--ease), border-color .15s var(--ease);pointer-events:none;border-radius:5px;position:absolute;inset:0}.chk input:checked+i{background:var(--accent);border-color:var(--accent)}.chk input:checked+i:after{content:"";border:solid var(--accent-ink);border-width:0 2px 2px 0;width:5px;height:10px;position:absolute;top:2.5px;left:6.5px;transform:rotate(45deg)}.chk input:focus-visible+i{box-shadow:0 0 0 3px #3e4a5c33}.chk input:disabled{cursor:default}.chk:hover input:not(:checked):not(:disabled)+i{border-color:var(--accent)}.out{background:var(--block);border-radius:var(--r-lg);color:var(--text-2);margin-top:18px;padding:12px 15px;font-size:13px}.out b{color:var(--text);letter-spacing:.08em;margin-bottom:2px;font-size:12px;font-weight:500;display:block}.out p{white-space:pre-line;margin:0;line-height:1.75}.task.edit{align-items:center;gap:10px;padding:8px 0}.task.edit .t-edit{background:0 0;border-color:#0000;flex:1;height:36px;margin-left:-8px;padding:0 8px}.task.edit .t-edit:hover{border-color:var(--line)}.task.edit .t-edit:focus{background:var(--raised)}.task.edit.done .t-edit{color:var(--text-3);text-decoration:line-through}.task.edit .d-edit{flex:none;width:150px;height:36px;font-size:13px}.x{color:var(--text-3);cursor:pointer;border-radius:var(--r-md);background:0 0;border:0;flex:none;padding:6px;font-size:12px}.x:hover{color:var(--late);background:var(--late-soft)}.add-task{gap:10px;margin-top:12px;display:flex}.add-task input[name=title]{flex:1;height:36px}.add-task input[type=date]{flex:none;width:150px;height:36px;font-size:13px}.ms-dates.edit{gap:16px;margin:0 0 14px;display:flex}.ms-dates.edit label{align-items:center;gap:8px;font-size:12px;display:flex}.ms-dates.edit input{width:150px;height:32px;font-size:13px}.rows{border-top:1px solid var(--line);margin-top:28px}.row{border-bottom:1px solid var(--line-soft);transition:background .15s var(--ease);grid-template-columns:minmax(0,1.25fr) minmax(0,1.7fr) minmax(0,.9fr) minmax(0,.9fr);align-items:center;gap:20px;padding:16px 8px;text-decoration:none;display:grid}a.row:hover{background:var(--raised)}.row.th{color:var(--text-3);letter-spacing:.08em;padding:10px 8px;font-size:12px}.row small{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:12px;display:block;overflow:hidden}.row small.late{color:var(--late)}.nm{font-family:var(--serif);font-size:19px}.c-step>span:first-child{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.bar{background:var(--line-soft);border-radius:2px;height:3px;margin-top:8px;display:block;overflow:hidden}.bar i{background:var(--accent);height:100%;display:block}.tag{background:var(--block);color:var(--text-2);white-space:nowrap;border-radius:99px;padding:5px 9px;font-size:12px;line-height:1;display:inline-block}.tag.ok{background:var(--accent-soft);color:var(--accent)}.tag.warn{background:var(--late-soft);color:var(--late)}.empty{text-align:center;border:1px dashed var(--line);border-radius:var(--r-lg);margin-top:40px;padding:48px 28px}.empty>p:first-child{font-family:var(--serif);margin:0;font-size:22px}.empty .btn{margin-top:22px}.new-form{gap:22px;max-width:720px;margin-top:30px;display:grid}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px;display:grid}.demo-field{background:var(--raised);border:1px dashed var(--line);border-radius:var(--r-lg);padding:16px}fieldset{border:0;min-width:0;margin:0;padding:0}legend{color:var(--text-2);margin-bottom:8px;padding:0;font-size:13px}.tracks{flex-wrap:wrap;gap:10px;display:flex}.tracks legend{width:100%}.pick{cursor:pointer;position:relative}.pick input{opacity:0;position:absolute}.pick span{border:1px solid var(--line);border-radius:var(--r-md);background:var(--raised);transition:all .15s var(--ease);padding:9px 18px;font-size:14px;display:block}.pick input:checked+span{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.pick input:focus-visible+span{box-shadow:0 0 0 3px #3e4a5c33}.tick{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.tick input[type=checkbox]{width:17px;height:17px;accent-color:var(--accent);margin:0}.tracks .tick{margin-left:10px}.preview{background:var(--block);border-radius:var(--r-lg);padding:18px 20px}.pv-sum{color:var(--text-2);flex-wrap:wrap;gap:4px 12px;margin:0;font-size:14px;display:flex}.pv-sum b{color:var(--text);font-weight:500}.pv-list{margin:12px 0 0;padding:0;font-size:14px;list-style:none}.pv-list li{border-top:1px solid var(--line-soft);gap:14px;padding:6px 0;display:flex}.pv-list li span{width:150px;color:var(--text-3);font-variant-numeric:tabular-nums;flex:none;font-size:13px}.pv-list small{color:var(--text-3);margin-left:auto;font-size:12px}.pv-fee{border-top:1px solid var(--line);color:var(--text-2);flex-wrap:wrap;gap:4px 16px;margin:12px 0 0;padding-top:10px;font-size:13px;display:flex}.pv-fee b{color:var(--text);font-weight:500}.invite{background:var(--raised);border:1px solid var(--line);border-radius:var(--r-lg);max-width:640px;margin-top:26px;padding:20px}.invite .label{color:var(--text);margin:0 0 10px;font-size:13px}.invite .label small{color:var(--text-3);margin-left:10px;font-size:12px}.copy-row{gap:8px;display:flex}.copy-row input{height:34px;font-size:13px}.actions{flex-wrap:wrap;gap:10px;margin-top:26px;display:flex}.facts{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:16px;max-width:720px;margin-top:22px;display:grid}.account-btns{align-items:center;gap:18px;margin-top:12px;display:flex}.info{border-top:1px solid var(--line-soft);max-width:720px;margin:24px 0 0}.info>div{border-bottom:1px solid var(--line-soft);grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:6px 16px;padding:10px 0;font-size:14px;display:grid}.info dt{color:var(--text-3);letter-spacing:.1em;font-size:12px}.info dd{overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:8px;min-width:0;margin:0;display:flex}.info dd small{color:var(--text-2);font-size:13px}.info .acts{justify-self:end;gap:16px}.info .more{grid-column:1/-1;display:block}.info .more:empty{display:none}.info .invite{margin-top:4px}.ms{scroll-margin-top:70px}.ms.returned .ms-meta{color:var(--late)}.mini{letter-spacing:.1em;color:var(--text-3);margin:0 0 10px;font-size:12px}.mini span{letter-spacing:.02em;margin-left:10px}.work,.talk{margin-top:22px}.subm{border:1px solid var(--line-soft);border-radius:var(--r-lg);background:var(--raised);margin-bottom:10px;padding:14px 16px}.subm.passed{opacity:.82}.sub-head{color:var(--text-3);align-items:center;gap:10px;margin:0;font-size:13px;display:flex}.sub-head .link{margin-left:auto}.sub-note{white-space:pre-line;margin:10px 0 0;font-size:14px;line-height:1.75}.links,.docs{gap:4px;margin:10px 0 0;padding:0;font-size:14px;list-style:none;display:grid}.links a,.docs a{color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:3px;word-break:break-all}.docs li{align-items:baseline;gap:10px;display:flex}.docs small{color:var(--text-3);font-size:12px}.thumbs{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.thumbs img{object-fit:cover;border-radius:var(--r-md);border:1px solid var(--line-soft);background:var(--block);width:112px;height:84px}.review-box{border-top:1px dashed var(--line);gap:10px;margin-top:14px;padding-top:14px;display:grid}.review-btns,.form-btns{align-items:center;gap:10px;display:flex}.sub-new{margin-top:6px}.sub-form{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--raised);gap:14px;padding:16px;display:grid}.sub-form .mini{margin:0}.file-pick{border:1px dashed var(--line);border-radius:var(--r-md);height:34px;color:var(--accent);cursor:pointer;align-items:center;width:max-content;padding:0 14px;font-size:13px;display:inline-flex;position:relative}.file-pick:hover{border-color:var(--accent)}.file-pick input{opacity:0;cursor:pointer;position:absolute;inset:0}.picked{gap:4px;margin:0;padding:0;font-size:13px;list-style:none;display:grid}.picked li{align-items:center;gap:10px;display:flex}.picked li.up,.picked small{color:var(--text-3)}.picked .x{margin-left:auto}.comment{border-top:1px solid var(--line-soft);padding:10px 0}.comment:first-of-type{border-top:0;padding-top:0}.c-head{color:var(--text-3);align-items:center;gap:10px;margin:0;font-size:12px;display:flex}.c-head b{color:var(--text);font-size:13px;font-weight:500}.comment.pass .c-head span:first-of-type{color:var(--accent)}.comment.return .c-head span:first-of-type{color:var(--late)}.c-head .x{margin-left:auto}.c-body{white-space:pre-line;margin:4px 0 0;font-size:14px;line-height:1.75}.comment-form{align-items:flex-end;gap:10px;margin-top:12px;display:flex}.comment-form textarea{flex:1}.latest{border-left:2px solid var(--accent);background:var(--raised);border-radius:0;margin-top:22px;padding:14px 16px}.latest .mini{margin-bottom:4px}.latest>p:last-child{white-space:pre-line;margin:0;font-size:14px;line-height:1.75}.banner.nudge{color:var(--accent);background:var(--accent-soft);text-decoration:none;display:block}.gh{border:1px solid var(--line-soft);border-radius:var(--r-lg);max-width:720px;margin-top:24px;padding:14px 16px}.gh-head{flex-wrap:wrap;align-items:baseline;gap:12px;margin:0;font-size:14px;display:flex}.gh-head b{letter-spacing:.1em;color:var(--text-3);font-size:12px;font-weight:500}.gh-head a{color:var(--text);font-family:ui-monospace,Menlo,monospace;font-size:13px;text-decoration:none}.gh-head a:hover{text-decoration:underline}.gh-head>span{color:var(--text-2);font-size:13px}.gh-count{margin-left:auto;color:var(--accent)!important}.gh-count.late{color:var(--late)!important}.gh-empty .gh-head .link{margin-left:auto}.gh-list{gap:4px;margin:10px 0 0;padding:0;font-size:13px;list-style:none;display:grid}.gh-list li{align-items:baseline;gap:12px;display:flex}.gh-list a{min-width:0;color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;flex:1;text-decoration:none;overflow:hidden}.gh-list a:hover{color:var(--text)}.gh-list small{color:var(--text-3);flex:none;font-size:12px}.gh-form{flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;display:flex}.gh-form input{flex:1;min-width:220px;height:36px}.gh-form .note{width:100%;margin:0}.reflect{border-top:1px solid var(--line);margin-top:48px;padding-top:8px}.reflect .sec{margin-top:28px}.reflect .sub{margin-top:4px;margin-bottom:18px}.reflect-form{gap:14px;max-width:640px;display:grid}.answers{grid-template-columns:max-content 1fr;gap:6px 18px;max-width:640px;margin:0 0 12px;font-size:14px;display:grid}.answers dt{color:var(--text-3);font-size:13px}.answers dd{white-space:pre-line;margin:0;line-height:1.7}.last-week,.older{margin-top:20px}.last-week summary,.older summary{cursor:pointer;color:var(--accent);font-size:13px}.last-week[open] summary,.older[open] summary{margin-bottom:14px}.week{border-top:1px solid var(--line-soft);padding:12px 0}.week .mini{margin-bottom:6px}.todos{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:28px;display:grid}.todo-card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--raised);padding:18px 20px}.todo-h{font-family:var(--serif);align-items:baseline;gap:10px;margin:0 0 10px;font-size:20px;font-weight:400;display:flex}.todo-h span{font-family:var(--font);color:var(--text-3);font-size:14px}.todo-card ul{margin:0;padding:0;list-style:none}.todo-card li a{border-top:1px solid var(--line-soft);grid-template-columns:72px minmax(0,1fr) auto;align-items:baseline;gap:12px;padding:10px 0;font-size:14px;text-decoration:none;display:grid}.todo-card li:first-child a{border-top:0}.todo-card li a:hover span{text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:3px}.todo-card li b{font-weight:400;font-family:var(--serif);font-size:16px}.todo-card li small{color:var(--text-3);font-size:12px}.todo-card .note{margin:0}.todo-card.none{background:0 0;border-style:dashed;padding:14px 20px}.todo-card.none .todo-h{color:var(--text-2);margin:0;font-size:17px}.todo-card.none .todo-h span{font-size:13px}.stat{margin-top:14px}.nav{gap:2px;margin-left:10px;display:flex}.nav a{border-radius:var(--r-md);color:var(--text-2);padding:6px 10px;font-size:14px;text-decoration:none}.nav a:hover{color:var(--text);background:var(--block)}.nav a.on{color:var(--accent);background:var(--accent-soft)}.tabs{border-bottom:1px solid var(--line);gap:22px;margin:18px 0 4px;display:flex}.tabs a{color:var(--text-2);border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 0;font-size:14px;text-decoration:none}.tabs a:hover{color:var(--text)}.tabs a.on{color:var(--accent);border-bottom-color:var(--accent)}.next{background:var(--accent-soft);border-radius:var(--r-lg);color:var(--accent);align-items:baseline;gap:12px;max-width:max-content;margin-top:16px;padding:10px 14px;font-size:14px;text-decoration:none;display:flex}.next span{letter-spacing:.1em;font-size:12px}.next-when{font-family:var(--serif);color:var(--accent);margin:14px 0 0;font-size:24px}.page-head .actions{align-items:baseline;gap:14px;margin-top:16px;display:flex}.hours{border:1px solid var(--line-soft);border-radius:var(--r-lg);max-width:720px;margin-top:26px;padding:14px 16px}.hours .mini{margin-bottom:4px}.hours p:last-child{align-items:baseline;gap:14px;margin:0;font-size:14px;display:flex}.hours b{color:var(--accent);font-size:18px;font-weight:500}.hours span{color:var(--text-3);font-size:13px}.lessons{border-top:1px solid var(--line-soft);max-width:820px;margin:8px 0 0;padding:0;list-style:none}.lesson{border-bottom:1px solid var(--line-soft);padding:14px 0}.l-when{font-variant-numeric:tabular-nums;align-items:baseline;gap:12px;margin:0;font-size:15px;display:flex}.l-when span{color:var(--text-3);font-size:13px}.l-when .link,.l-when .x{margin-left:auto}.l-topic{margin:6px 0 0;font-size:15px}.l-notes{color:var(--text-2);white-space:pre-line;margin:6px 0 0;font-size:14px;line-height:1.75}.l-hw{margin-top:10px}.l-hw .mini{margin-bottom:4px}.l-hw ul{color:var(--text-2);margin:0;padding-left:18px;font-size:14px}.l-cancelled .l-when{color:var(--text-3);text-decoration:line-through}.l-btns{align-items:center;gap:16px;margin-top:10px;display:flex}.l-move,.plan-form,.pack-form,.add-bill,.pay-form,.edit-form,.fee-form{flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;font-size:14px;display:flex}.l-move input,.plan-form input,.pack-form input,.add-bill input,.pay-form input,.pay-form select,.edit-form input,.fee-form input{width:auto;height:36px}.fee-form{margin-top:18px}.fee-form input{width:140px}.fee-form>span{color:var(--text-2)}.plan-form input[name=topic],.add-bill input[name=title],.pay-form input[name=note],.edit-form input[name=title]{flex:1;min-width:180px}.plan-form input[type=number],.pack-form input[name=hours],.l-move input[type=number]{width:80px}.pack-form input[name=price]{width:110px}.add-bill input[name=amount],.edit-form input[name=amount]{width:120px}.pack-form>span,.plan-form>span,.add-bill>span{color:var(--text-2)}.plan-form .tick{width:100%;color:var(--text-2);font-size:13px}.record{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--raised);gap:14px;max-width:720px;margin-top:14px;padding:16px;display:grid}.record .mini{margin:0}.week-tasks ul{color:var(--text-2);gap:2px;margin:0;padding:0;font-size:13px;list-style:none;display:grid}.week-tasks li.done{color:var(--text-3)}.bills{border-top:1px solid var(--line);max-width:820px;margin:28px 0 0;padding:0;list-style:none}.bill{border-bottom:1px solid var(--line-soft);grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:4px 20px;padding:16px 0;display:grid}.b-main{min-width:0}.b-title{margin:0;font-size:15px}.b-state{color:var(--text-3);margin:2px 0 0;font-size:13px}.b-state.warn{color:var(--late)}.b-state.ok{color:var(--accent)}.b-claim{color:var(--text-2);margin:6px 0 0;font-size:13px}.b-claim a{color:var(--accent)}.b-amount{font-variant-numeric:tabular-nums;text-align:right;margin:0;font-size:18px}.b-amount small{color:var(--text-3);font-size:13px}.b-act{grid-column:1/-1;align-items:center;gap:16px;display:flex}.b-act:empty{display:none}.bill.b-void .b-title,.bill.b-void .b-amount{color:var(--text-3);text-decoration:line-through}.bill.b-paid .b-amount{color:var(--text-2)}.bill .claim,.bill .pay-form,.bill .edit-form{grid-column:1/-1}.claim{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--raised);gap:12px;max-width:520px;margin-top:10px;padding:14px;display:grid}.pay{border:1px solid var(--accent);border-radius:var(--r-lg);background:var(--raised);max-width:520px;margin-top:24px;padding:16px 18px}.pay .mini{margin-bottom:6px}.pay-text{white-space:pre-line;margin:0;font-size:15px;line-height:1.75}.qr{object-fit:contain;border-radius:var(--r-md);border:1px solid var(--line-soft);background:#fff;width:180px;height:180px;margin-top:12px}.packs{margin:8px 0 0;padding:0;font-size:14px;list-style:none}.packs li{border-bottom:1px solid var(--line-soft);align-items:baseline;gap:14px;max-width:520px;padding:8px 0;display:flex}.packs small{color:var(--text-3)}.packs .x{margin-left:auto}.audit{max-width:900px;margin:8px 0 0;padding:0;font-size:13px;list-style:none}.audit li{border-bottom:1px solid var(--line-soft);grid-template-columns:110px 70px 80px minmax(0,1fr);align-items:baseline;gap:12px;padding:9px 0;display:grid}.a-when{color:var(--text-3);font-variant-numeric:tabular-nums}.a-who{color:var(--text-2)}.audit .tag{justify-self:start}.a-detail{color:var(--text);word-break:break-all}.a-detail b{font-weight:500}.month-nav{gap:8px;display:flex}.money-list{margin:0;padding:0;list-style:none}.money-list a{border-top:1px solid var(--line-soft);grid-template-columns:72px minmax(0,1fr) auto;align-items:baseline;gap:12px;padding:9px 0;font-size:14px;text-decoration:none;display:grid}.money-list li:first-child a{border-top:0}.money-list b{font-weight:400;font-family:var(--serif);font-size:16px}.money-list em{font-variant-numeric:tabular-nums;font-style:normal}.todo-card small.claimed{color:var(--accent)}.sums{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:720px;margin:14px 0 18px;display:grid}.sums>div{border:1px solid var(--line-soft);border-radius:var(--r-lg);padding:14px 16px}.sums p:not(.mini){justify-content:space-between;margin:4px 0 0;font-size:14px;display:flex}.sums b{font-variant-numeric:tabular-nums;font-weight:500}.ledger{border-collapse:collapse;width:100%;font-size:14px}.ledger th{text-align:left;color:var(--text-3);border-bottom:1px solid var(--line);padding:8px 10px 8px 0;font-size:12px;font-weight:400}.ledger td{border-bottom:1px solid var(--line-soft);padding:10px 10px 10px 0}.ledger .num{text-align:right;font-variant-numeric:tabular-nums;padding-right:0}.ledger tfoot td{border-bottom:0;font-weight:500}.ledger a{color:var(--accent)}.actions .note{margin:0}.settings{max-width:720px}.pay-text-form{justify-items:start;gap:10px;display:grid}.qr-box{flex-wrap:wrap;align-items:flex-end;gap:18px;margin-top:18px;display:flex}.qr-box [data-qr]{justify-items:start;gap:8px;display:grid}.teachers{margin:8px 0 0;padding:0;font-size:14px;list-style:none}.teachers li{border-bottom:1px solid var(--line-soft);gap:14px;padding:8px 0;display:flex}.teachers b{width:90px;font-weight:500}.teachers span{color:var(--text-2)}.cards{gap:28px;margin-top:26px;display:grid}.card-item{border-bottom:1px solid var(--line-soft);grid-template-columns:minmax(0,340px) minmax(0,1fr);align-items:start;gap:28px;padding-bottom:28px;display:grid}.card-canvas{aspect-ratio:3/4;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--bg);width:100%;height:auto;box-shadow:0 10px 28px #1c1c1a14}.card-side{gap:14px;max-width:460px;display:grid}.card-name{align-items:center;gap:10px;margin:0;display:flex}.card-name b{font-family:var(--serif);font-size:22px;font-weight:400}.card-btns{flex-wrap:wrap;gap:10px;display:flex}.card-side .note{margin:0}.dot-sep{background:var(--text-3);vertical-align:middle;border-radius:50%;width:3px;height:3px;margin:0 8px;display:inline-block}.stat .link{margin-left:8px}.family-sum{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:26px;display:grid}.family-sum>div{border:1px solid var(--line-soft);border-radius:var(--r-lg);background:var(--raised);padding:14px 16px}.family-sum .mini{margin-bottom:4px}.family-sum p{margin:0;font-size:14px}.family-sum b{color:var(--accent);font-size:16px;font-weight:500}.family-sum .bar{margin-top:10px}.family-sum .note{margin-top:6px}.sub-state{margin-top:14px}.top-in.family .brand span,.top-in.family .brand small{display:inline!important}.family-foot{border-top:1px solid var(--line-soft);margin-top:48px;padding-top:18px;line-height:1.8}main.doc{max-width:720px}.doc-list{gap:10px;margin:8px 0 0;padding-left:20px;font-size:15px;line-height:1.75;display:grid}.doc-list b{margin-right:10px;font-weight:500}.doc-p{margin:8px 0 0;font-size:15px;line-height:1.75}.demo-banner{background:var(--accent-soft);color:var(--accent);margin:0 0 24px}.sys{grid-template-columns:max-content minmax(0,1fr);gap:8px 24px;margin:8px 0 14px;font-size:14px;display:grid}.sys dt{color:var(--text-2)}.sys dd{word-break:break-all;margin:0}.report{border:1px solid var(--line);background:#fdfcfa;border-radius:2px;max-width:780px;padding:48px 52px}.r-cover{border-bottom:1px solid var(--line);padding-bottom:26px}.r-brand{align-items:center;gap:10px;display:flex}.r-brand img{border-radius:6px}.r-brand b{font-family:var(--serif);font-size:20px;font-weight:400}.r-brand span{letter-spacing:.14em;color:var(--text-3);margin-left:auto;font-size:12px}.report h1{margin:34px 0 18px;font-size:36px}.r-meta{grid-template-columns:max-content minmax(0,1fr);gap:6px 22px;margin:0;font-size:14px;display:grid}.r-meta dt{color:var(--text-3)}.r-meta dd{word-break:break-all;margin:0}.r-sec{border-bottom:1px solid var(--line-soft);padding:26px 0}.r-sec h2{font-family:var(--serif);margin:0 0 14px;font-size:22px;font-weight:400}.r-sec h2 small{font-family:var(--font);color:var(--text-3);margin-left:10px;font-size:12px}.r-sec h3{color:var(--text-2);letter-spacing:.06em;margin:18px 0 8px;font-size:13px;font-weight:500}.r-nums{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.r-nums div{background:var(--block);border-radius:var(--r-md);padding:12px}.r-nums b{color:var(--accent);font-variant-numeric:tabular-nums;font-size:22px;font-weight:500;display:block}.r-nums span{color:var(--text-2);font-size:12px}.r-table{border-collapse:collapse;width:100%;font-size:13px}.r-table th{text-align:left;color:var(--text-3);border-bottom:1px solid var(--line);padding:6px 10px 6px 0;font-weight:400}.r-table td{border-bottom:1px solid var(--line-soft);vertical-align:top;padding:8px 10px 8px 0}.r-out{color:var(--text-2);margin:0;font-size:13px}.r-out b{color:var(--text);margin-right:10px;font-weight:500}.r-list{margin:0;padding-left:18px;font-size:14px;line-height:1.75}.r-list li.done{color:var(--text)}.r-list li:not(.done){color:var(--text-3)}.r-tips .r-list li{color:var(--text)}.r-sub{border-left:2px solid var(--line);margin:8px 0;padding:10px 12px;font-size:14px}.r-sub p{white-space:pre-line;margin:4px 0 0}.r-links{color:var(--accent);word-break:break-all;margin:4px 0 0;padding-left:18px;font-size:13px}.r-small{color:var(--text-3);margin:0;font-size:12px}.report blockquote{border-left:2px solid var(--accent);background:var(--raised);margin:8px 0;padding:8px 12px}.report blockquote p{white-space:pre-line;margin:0;font-size:14px}.report cite{color:var(--text-3);margin-top:4px;font-size:12px;font-style:normal;display:block}.r-week{border-top:1px solid var(--line-soft);padding:10px 0}.r-week dl{grid-template-columns:max-content minmax(0,1fr);gap:4px 16px;margin:6px 0 0;font-size:14px;display:grid}.r-week dt{color:var(--text-3);font-size:13px}.r-week dd{white-space:pre-line;margin:0}.r-foot{color:var(--text-3);text-align:center;padding-top:20px;font-size:12px}@media print{.top,.receipt-actions,#toast{display:none!important}main{max-width:none;padding:0}.report{background:#fff;border:0;max-width:none;padding:0}.r-sec{break-inside:avoid-page}.r-step{break-inside:auto}.r-sub,.report blockquote,.r-week,.r-table tr{break-inside:avoid}}@media (width<=760px){.report{padding:28px 20px}.r-nums{grid-template-columns:repeat(2,minmax(0,1fr))}}@media print{.report{padding:0}.r-nums{grid-template-columns:repeat(5,minmax(0,1fr))}}.receipt-actions{align-items:center;gap:18px;margin-bottom:22px;display:flex}.receipt{border:1px solid var(--line);background:#fdfcfa;border-radius:2px;max-width:640px;padding:40px 44px}.receipt header{align-items:center;gap:12px;display:flex}.receipt header img{border-radius:7px}.receipt header div{line-height:1.2;display:grid}.receipt header b{font-family:var(--serif);font-size:20px;font-weight:400}.receipt header span{color:var(--text-3);letter-spacing:.06em;font-size:11px}.r-no{color:var(--text-2);font-variant-numeric:tabular-nums;margin:0 0 0 auto;font-size:13px}.receipt h1{text-align:center;letter-spacing:.6em;text-indent:.6em;margin:34px 0 4px;font-size:30px}.r-date{text-align:center;color:var(--text-2);margin:0 0 26px;font-size:13px}.receipt table{border-collapse:collapse;width:100%;font-size:15px}.receipt th{text-align:left;width:110px;color:var(--text-2);border-bottom:1px solid var(--line-soft);vertical-align:top;padding:12px 0;font-size:13px;font-weight:400}.receipt td{border-bottom:1px solid var(--line-soft);padding:12px 0}.receipt footer{color:var(--text-3);justify-content:space-between;gap:20px;margin-top:30px;font-size:12px;display:flex}@media print{body{background:#fff}.top,.receipt-actions,#toast{display:none!important}main{max-width:none;padding:0}.receipt{background:#fff;border:0;max-width:none;padding:0}}#toast{left:50%;bottom:calc(28px + env(safe-area-inset-bottom));background:var(--accent);color:var(--accent-ink);border-radius:var(--r-md);opacity:0;pointer-events:none;transition:opacity .2s var(--ease), transform .2s var(--ease);z-index:50;max-width:calc(100vw - 40px);padding:10px 18px;font-size:14px;position:fixed;transform:translate(-50%,12px)}#toast.on{opacity:1;transform:translate(-50%)}@media (width<=760px){.card-item{grid-template-columns:1fr}.card-canvas{max-width:360px}.family-sum{grid-template-columns:1fr}.back{display:none}.nav{margin-left:4px}.nav a{padding:6px 7px}.audit li{grid-template-columns:1fr auto;gap:2px 10px}.a-detail{grid-column:1/-1}.a-who{display:none}.sums{grid-template-columns:1fr}.ledger th:nth-child(2),.ledger td:nth-child(2),.ledger th:nth-child(6),.ledger td:nth-child(6){display:none}.todos{grid-template-columns:1fr}.row{grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;padding:14px 4px}.row.th{display:none}.c-name{grid-column:1}.c-who{text-align:right;grid-area:1/2}.c-step{grid-column:1/-1;font-size:14px}.c-week{grid-column:1/-1;align-items:baseline;gap:10px;font-size:13px;display:flex}.c-week small{margin:0}.facts{grid-template-columns:1fr}.info>div{grid-template-columns:44px minmax(0,1fr)}.info .acts{grid-column:2;justify-self:start}}@media (width<=560px){.brand span{display:none}.receipt{padding:26px 20px}.l-when{flex-wrap:wrap}.comment-form{flex-direction:column;align-items:stretch}.answers{grid-template-columns:1fr;gap:2px}.answers dd{margin-bottom:8px}.gh-count{margin-left:0}.thumbs img{width:96px;height:72px}body{font-size:15px}main{padding-top:26px}.grid2{grid-template-columns:1fr}.row-head{flex-direction:column;align-items:flex-start}.brand small{display:none}.ms-name{font-size:18px}.task.edit{flex-wrap:wrap}.task.edit .t-edit{flex-basis:calc(100% - 40px)}.task.edit .d-edit{margin-left:32px}.add-task{flex-wrap:wrap}.add-task input[name=title]{flex-basis:100%}.pv-list li span{width:118px}.copy-row{flex-direction:column}.tracks .tick{width:100%;margin:4px 0 0}}
