@charset "UTF-8";
:root{--paper:#f3efe4;--ink:#163c4d;--muted:#788782;--line:#ccd1c3;--orange:#d87840;--ease-out:cubic-bezier(.23,1,.32,1);--ease-drawer:cubic-bezier(.32,.72,0,1);font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(ellipse at 77% 7%,#fffaf278,transparent 55%),var(--paper)}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{border:0;background:none;cursor:pointer}button{transition:background-color 180ms ease,color 180ms ease,transform 150ms var(--ease-out)}button:active{transform:scale(.97)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--orange);outline-offset:4px}button:disabled{opacity:.4;cursor:default}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;clip:rect(0,0,0,0);overflow:hidden;white-space:nowrap}.masthead{position:relative;display:flex;align-items:center;justify-content:space-between;margin:0 4.6%;height:94px}.brand{display:flex;gap:11px;align-items:center;font:11px Georgia,serif;letter-spacing:2.7px}.brand svg{width:35px;height:29px;fill:none;stroke:currentColor;stroke-width:1.7}.brand small{display:block;font:9px "Microsoft YaHei",sans-serif;letter-spacing:2.4px;margin-top:5px;color:var(--muted)}.save-state{font-size:10px;color:var(--muted);letter-spacing:.4px}.save-state i{display:inline-block;width:4px;height:4px;background:#6e8c74;border-radius:50%;vertical-align:middle;margin-right:7px}.head-actions{display:flex;align-items:center;gap:24px}.text-button{font-size:12px;padding:7px 0;white-space:nowrap}.head-actions .text-button span{font:11px Georgia;color:var(--muted);margin-left:7px}.round-button{font-size:21px;letter-spacing:1px;width:32px;height:32px;border:1px solid var(--line);border-radius:50%;line-height:10px;padding:0 0 8px}.menu{position:absolute;right:0;top:74px;width:240px;padding:19px 20px 12px;background:#fbf8ef;box-shadow:0 18px 70px #15384826;border:1px solid #e3e4d7;z-index:20;transform-origin:top right;animation:menu-in 180ms var(--ease-out)}.menu-label{display:block;font-size:10px;color:var(--muted);margin-bottom:10px}.menu select{display:block;width:100%;font-size:13px;border:0;background:#e9e9dd;padding:9px;margin-top:8px}.menu button{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;font-size:12px;padding:12px 0}.menu button span{color:var(--muted)}.menu p{font-size:9px;line-height:1.8;color:var(--muted);padding-top:10px;border-top:1px solid #dedfd3}.introduction{display:flex;align-items:flex-end;gap:5%;margin:8px 4.6% 35px}.intro-title{width:37%;flex-shrink:0}.eyebrow{font-size:8px;letter-spacing:2px;color:var(--muted);display:flex;align-items:center;gap:30px}.eyebrow span{font:9px Georgia;letter-spacing:1px;color:#a7ada0}h1{font-family:"Songti SC","Noto Serif CJK SC","SimSun",serif;font-weight:400;font-size:clamp(66px,6.3vw,106px);line-height:1.06;letter-spacing:5px;margin:14px 0 16px}.title-dot{color:var(--orange);font-size:.38em;margin-left:-.08em}.intro-title p{font-size:11px;color:var(--muted);letter-spacing:1px;margin:0}.period-heading{padding-bottom:0;min-width:165px}.period-heading>span{font:12px Georgia;letter-spacing:2px;color:var(--muted)}.period-heading h2{font-weight:400;font-family:"Songti SC","SimSun",serif;font-size:37px;letter-spacing:4px;margin:8px 0 12px}.period-heading>div{font:11px Georgia,serif;letter-spacing:1px;color:#6c817f}.totals{display:flex;margin-left:auto;gap:34px;padding-bottom:0}.totals>div>strong{display:block;font:38px Georgia,serif;white-space:nowrap;font-variant-numeric:tabular-nums}.totals strong small{font-size:13px;margin-left:3px;color:var(--muted)}.totals>div>span{display:block;font-size:9px;color:var(--muted);margin-top:12px;letter-spacing:1px}.completion strong{color:#5a787b}.workbench{margin:0 4.6%;border-top:1px solid var(--line)}.toolbar{display:flex;align-items:center;height:60px;gap:26px}.scales{display:flex;gap:3px}.scales button{font-size:11px;width:36px;height:28px;border-radius:2px}.scales button.active{background:var(--ink);color:var(--paper)}.date-nav{display:flex;align-items:center;gap:13px}.icon-button{font-size:17px;width:26px;height:28px}.date-nav .text-button{font-size:10px;letter-spacing:1px}.view-actions{display:flex;gap:23px;margin-left:auto;align-items:center}.view-actions>.text-button{font-size:10px;color:var(--muted)}.create-button{background:var(--ink);color:#f9f5e8;border-radius:2px;padding:9px 16px;font-size:11px;display:flex;gap:9px;align-items:center}.create-button>span{font-size:16px;line-height:11px;font-weight:300}.river-stage{position:relative;height:clamp(420px,54vh,690px);overflow:hidden;touch-action:none;outline:none;cursor:grab;isolation:isolate}.river-stage.dragging{cursor:grabbing}.river-stage.over-water{cursor:crosshair}.river-stage:focus-visible{outline:1px solid #d8784050;outline-offset:4px}.river-stage canvas{display:block;width:100%;height:100%;position:absolute;inset:0;z-index:-1}.labels{position:absolute;inset:0;pointer-events:none}.task-label{position:absolute;top:0;left:0;padding:0;text-align:left;pointer-events:auto;touch-action:none;user-select:none;cursor:grab;max-width:185px;transition:opacity 140ms ease,color 140ms ease}.task-label:active{transform:none;cursor:grabbing}.task-label .task-title{display:block;font-size:12px;line-height:1.6;font-weight:400;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;letter-spacing:.1px}.task-label .task-meta{display:block;font:9px/1.6 "Microsoft YaHei",sans-serif;letter-spacing:.3px;color:#718780;white-space:nowrap}.task-label.done .task-title{color:#627f7f}.task-label.done .task-meta{color:#8b9890}.task-label.project .task-title{font-weight:500}.task-label.selected .task-title{color:var(--orange)}.task-label.selected .task-meta{color:#ad764d}.task-label .state-dot{display:inline-block;width:3px;height:3px;border:1px solid currentColor;border-radius:50%;margin-right:4px;vertical-align:middle}.task-label.project:before{content:"";display:block;width:18px;height:2px;background:currentColor;margin-bottom:4px;opacity:.65}.task-label:focus-visible{outline-offset:6px}.water-cursor{position:absolute;pointer-events:none;white-space:nowrap;color:var(--orange);font:10px Georgia;letter-spacing:.3px;z-index:3;transform:translate(15px,-52px)}.water-cursor small{display:block;font:9px "Microsoft YaHei";margin-top:6px;color:#7c8b81}.empty-message{position:absolute;left:50%;top:31%;transform:translate(-50%,-50%);text-align:center;min-width:240px}.empty-message>span{font-family:"Songti SC","SimSun",serif;font-size:27px;letter-spacing:3px}.empty-message p{font-size:11px;color:var(--muted);margin:12px 0 19px}.empty-message button{font-size:10px;border-bottom:1px solid var(--orange);color:#b5673e;padding:7px 0}.stage-caption{position:absolute;bottom:16px;left:0;display:flex;gap:20px;pointer-events:none;font:8px Georgia,serif;letter-spacing:1.4px;color:#839188}.stage-caption span:last-child{font-family:"Microsoft YaHei";letter-spacing:.4px}.zoom-controls{display:flex;position:absolute;right:0;bottom:9px;align-items:center;gap:9px;color:var(--muted)}.zoom-controls button{font-size:16px;width:28px;height:28px;border:1px solid #cbd1c275;border-radius:50%;padding:0;line-height:20px}.zoom-controls>span{font-size:9px;min-width:35px;text-align:center;font-variant-numeric:tabular-nums}.river-footer{display:flex;align-items:center;min-height:58px;border-top:1px solid var(--line);gap:20px}.directions{display:flex;gap:22px;align-items:center;flex-wrap:wrap}.direction-chip{font-size:10px;display:flex;align-items:center;gap:7px;opacity:.45;padding:8px 0;white-space:nowrap}.direction-chip.active{opacity:1}.direction-chip i{display:block;width:22px;height:4px;position:relative;border-radius:80% 30% 60% 30%;background:var(--river-color)}.direction-chip span{font:9px Georgia;color:var(--muted);margin-left:1px}.add-river{font-size:10px;color:var(--muted);padding:8px 0;white-space:nowrap}.gesture-hint{margin:0 0 0 auto;font-size:9px;color:#89958c;white-space:nowrap;letter-spacing:.3px}.gesture-hint i{font-style:normal;margin:0 7px;color:#adb5a5}.page-footer{margin:10px 4.6% 24px;display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:9px;color:#8b9589}.page-footer .text-button{font-size:9px;color:#6f827a}.page-footer .text-button span{margin-left:5px;font-size:10px}.edition{letter-spacing:1px}.scrim{position:fixed;inset:0;z-index:29;background:#163b4b13;opacity:0;transition:opacity 230ms ease}.scrim.open{opacity:1}.inspector{position:fixed;right:28px;top:28px;bottom:28px;width:386px;max-width:calc(100vw - 28px);z-index:30;background:#f9f6eb;box-shadow:0 18px 90px #0b2b3f33;transform:translateX(24px);opacity:0;transition:transform 280ms var(--ease-drawer),opacity 180ms ease;overflow-y:auto;overscroll-behavior:contain;padding:0 30px 30px;scrollbar-width:thin}.inspector.open{transform:translateX(0);opacity:1}.sheet-head{position:sticky;top:0;background:#f9f6ebf2;z-index:2;display:flex;align-items:center;justify-content:space-between;height:64px;margin:0 -2px 10px;border-bottom:1px solid #d5dacd}.sheet-head>span{font-size:9px;color:var(--muted);letter-spacing:1px}.sheet-close{font-size:25px;font-weight:200;color:#738680;width:30px;height:30px;padding:0;line-height:20px}.inspector h2{font-family:"Songti SC","SimSun",serif;font-weight:400;font-size:28px;line-height:1.45;letter-spacing:1px;margin:21px 0}.title-field{display:block;margin:26px 0 20px}.title-field input{width:100%;border:0;border-bottom:1px solid #a9b7a5;background:none;font-size:20px;padding:12px 0 15px;line-height:1.6;border-radius:0}.title-field input::placeholder{color:#a4ac9e}.kind-select{display:flex;gap:6px;margin-bottom:25px}.kind-select label{cursor:pointer;flex:1}.kind-select input{position:absolute;opacity:0;width:1px;height:1px}.kind-select span{display:block;text-align:center;padding:8px 4px;font-size:10px;background:#e8ebdf;color:#79897e;border-radius:2px}.kind-select input:checked+span{background:#244c5a;color:#faf4e5}.kind-select input:focus-visible+span{outline:2px solid var(--orange);outline-offset:3px}.form-row{display:flex;gap:16px;align-items:end;margin:18px 0}.form-row>label{position:relative;width:50%;display:block;font-size:9px;letter-spacing:1px;color:var(--muted)}.form-row input,.form-row select{border:0;border-bottom:1px solid #c9d0c0;border-radius:0;background:none;display:block;width:100%;margin-top:9px;padding:8px 0 10px;font-size:12px;letter-spacing:0;color:var(--ink);min-height:36px}.form-row input[type=number]{padding-right:30px}.date-arrow{align-self:center;margin-top:20px;color:#9ba994;font-size:14px}.field-unit{position:absolute;right:4px;bottom:13px;font-size:9px}.form-field{display:block;font-size:9px;color:var(--muted);letter-spacing:1px;margin:22px 0}.form-field input,.form-field select,.form-field textarea{display:block;width:100%;margin-top:9px;border:0;border-radius:0;border-bottom:1px solid #c9d0c0;background:transparent;padding:10px 0;font-size:12px;letter-spacing:0;color:var(--ink);line-height:1.8}.form-field textarea{resize:vertical;background:#eef0e430;padding:10px;min-height:95px}.form-field textarea::placeholder{color:#a1ac9d}.form-actions{display:flex;align-items:center;gap:24px;margin-top:20px}.submit-button{display:flex;align-items:center;justify-content:space-between;width:100%;background:#153f50;color:#f9f1dd;padding:14px 17px;font-size:12px;letter-spacing:1px;border-radius:2px}.submit-button>span{font-size:17px}.form-error{font-size:11px;line-height:1.7;color:#b45c3f;min-height:0}.detail-date{display:flex;align-items:center;gap:14px;padding:22px 0;border-bottom:1px solid #d4daca;font:28px Georgia;letter-spacing:1px}.detail-date small{display:block;font:9px "Microsoft YaHei";letter-spacing:.5px;margin-top:9px;color:var(--muted)}.detail-date>span{font-size:18px;color:#9aa791}.detail-numbers{display:flex;gap:35px;margin:25px 0}.detail-numbers strong{font:33px Georgia;font-weight:400}.detail-numbers strong small{font:11px "Microsoft YaHei";margin-left:4px;color:var(--muted)}.detail-numbers>div>span{display:block;font-size:9px;margin-top:8px;color:var(--muted)}.status-pill{display:inline-flex;align-items:center;font-size:10px;color:#738b78;background:#e6eadd;padding:6px 9px;border-radius:2px;letter-spacing:.5px}.status-pill.active{background:#e6ede8;color:#37716e}.status-pill.done{color:#7c8878;background:#e9ebdf}.status-pill.idea{background:#f1e8d9;color:#b17c4b}.detail-note{font-size:12px;line-height:2;white-space:pre-wrap;color:#5f7775;margin:22px 0}.detail-path{font-size:10px;color:var(--muted);line-height:1.8;margin:14px 0}.detail-actions{display:flex;gap:14px;margin:27px 0}.detail-actions .submit-button{flex:1}.detail-actions .edit-button{padding:12px 16px;background:#e4e9dc;font-size:12px}.child-section{border-top:1px solid #d1d9c8;padding-top:18px;margin-top:24px}.child-section>div{font-size:10px;color:var(--muted);display:flex;justify-content:space-between;align-items:center}.child-section>div button{color:var(--orange);font-size:10px}.child-row{width:100%;padding:15px 0;text-align:left;display:flex;gap:10px;align-items:center;border-bottom:1px solid #e0e4d8}.child-row>span:first-child{color:#7a8f7a;font-size:14px}.child-row b{font-size:12px;font-weight:400;flex:1}.child-row small{font:10px Georgia;color:var(--muted)}.delete-button{font-size:10px;color:#a1846d;margin-top:24px;padding:8px 0}.search-field{display:flex;align-items:center;gap:8px;border-bottom:1px solid #b9c8b5;margin:20px 0}.search-field>span{font-size:23px;color:#7f9486}.search-field input{font-size:13px;background:none;border:0;width:100%;padding:10px 0}.list-tabs{display:flex;gap:23px;padding:5px 0 17px}.list-tabs button{font-size:10px;padding:5px 0;color:var(--muted)}.list-tabs button.active{color:var(--ink);box-shadow:0 1px 0 var(--ink)}.list-heading{font:10px Georgia;letter-spacing:1.5px;color:#8c9b89;margin:22px 0 8px}.list-row{display:flex;gap:12px;align-items:center;width:100%;text-align:left;border-bottom:1px solid #dde1d4;padding:14px 0}.list-row>i{display:block;width:4px;height:20px;border-radius:50%;background:var(--river-color);opacity:.7}.list-row>div{flex:1;min-width:0}.list-row b{display:block;font-size:12px;font-weight:400;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.list-row small{display:block;font-size:9px;color:var(--muted);margin-top:7px}.list-row>span{font:15px Georgia;color:#8d9d8c}.list-row.done b{color:#80927f}.help-intro,.privacy-note{font-size:11px;color:var(--muted);line-height:2}.help-list{margin:24px 0}.help-list>div{padding:12px 0;border-bottom:1px solid #dce1d1}.help-list dt{font-size:11px;margin-bottom:6px}.help-list dd{font-size:10px;color:var(--muted);margin:0;line-height:1.8}.privacy-note{margin-top:27px}.color-field{border:0;padding:0;margin:28px 0;display:flex;gap:19px}.color-field legend{font-size:9px;color:var(--muted);margin-bottom:15px}.color-field label{cursor:pointer}.color-field input{position:absolute;opacity:0;width:1px;height:1px}.color-field i{display:block;width:29px;height:29px;border-radius:50%;border:5px solid #f9f6eb;box-shadow:0 0 0 1px transparent}.color-field input:checked+i{box-shadow:0 0 0 1px var(--ink)}.toast{position:fixed;bottom:32px;left:50%;z-index:40;display:flex;gap:22px;align-items:center;background:#204c59;color:#f8f1e1;padding:13px 20px;box-shadow:0 8px 35px #15394824;font-size:11px;transform:translate(-50%,18px);opacity:0;pointer-events:none;transition:opacity 180ms ease,transform 240ms var(--ease-out);white-space:nowrap}.toast.visible{transform:translate(-50%,0);opacity:1;pointer-events:auto}.toast button{font-size:11px;color:#eab078;padding:0}.empty-list{font-size:12px;line-height:2;color:var(--muted);padding:30px 0}.drag-date{color:var(--orange)!important}
@keyframes menu-in{from{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(hover:hover) and (pointer:fine){.text-button:hover,.icon-button:hover,.add-river:hover,.menu button:hover{color:var(--orange)}.round-button:hover{border-color:var(--orange);color:var(--orange)}.task-label:hover .task-title{color:var(--orange)}.create-button:hover,.submit-button:hover{background:#2d5a66}.list-row:hover,.child-row:hover{background:#e4e9d85c}.zoom-controls button:hover{color:var(--orange);border-color:#d8784070}}
@media(min-width:1800px){.introduction{margin-top:25px;margin-bottom:50px}.masthead{height:110px}.river-stage{height:59vh}.task-label .task-title{font-size:14px}.task-label .task-meta{font-size:10px}}
@media(max-width:1000px){.intro-title{width:34%}.introduction{gap:4%}.totals{gap:20px}.totals strong{font-size:31px!important}.period-heading h2{font-size:31px}.directions{gap:16px}.gesture-hint{display:none}.river-footer{gap:18px}.task-label{max-width:160px}.task-label .task-title{font-size:11px}.task-label .task-meta{font-size:8px}.period-heading{min-width:140px}}
@media(max-width:650px){.masthead{height:74px;margin:0 6%}.brand{font-size:9px;letter-spacing:2px}.brand svg{width:29px}.brand small{font-size:8px;letter-spacing:1.5px}.save-state{position:absolute;top:74px;right:0;font-size:8px}.head-actions{gap:17px}.head-actions .text-button{font-size:11px}.round-button{width:28px;height:28px;font-size:18px}.introduction{margin:31px 6% 25px;gap:0;flex-wrap:wrap;justify-content:space-between}.intro-title{width:58%}.eyebrow{font-size:6px;letter-spacing:1.5px;gap:10px}.eyebrow span{display:none}h1{font-size:72px;margin:14px 0 14px}.intro-title p{font-size:9px;letter-spacing:.4px}.period-heading{min-width:0;width:34%;padding-bottom:1px}.period-heading>span{font-size:10px}.period-heading h2{font-size:28px;margin-top:8px;margin-bottom:14px;letter-spacing:2px}.period-heading>div{font-size:9px;letter-spacing:.3px}.totals{display:none}.workbench{margin:0 6%}.toolbar{gap:13px;height:58px}.scales{gap:1px}.scales button{width:30px;height:27px}.date-nav{gap:3px}.icon-button{width:23px;font-size:16px}.date-nav .text-button{font-size:9px}.view-actions{gap:10px}.view-actions>.text-button{font-size:9px}.create-button{padding:8px 10px;font-size:10px;gap:4px}.create-button>span{font-size:15px}.river-stage{height:clamp(450px,56dvh,640px)}.task-label{max-width:135px}.task-label .task-title{font-size:10px}.task-label .task-meta{font-size:8px}.stage-caption{font-size:7px;bottom:18px}.stage-caption span:last-child{display:none}.river-footer{padding:10px 0;min-height:65px;gap:14px;align-items:flex-start}.directions{gap:6px 16px;flex:1}.direction-chip{font-size:9px}.direction-chip i{width:17px;height:3px}.direction-chip span{font-size:8px}.add-river{font-size:9px}.page-footer{margin:9px 6% 24px;font-size:8px;gap:13px;align-items:start;line-height:1.8}.page-footer>span:first-child{max-width:195px}.edition{display:none}.page-footer .text-button{padding:0;font-size:8px}.zoom-controls{gap:5px}.zoom-controls>span{font-size:8px;min-width:30px}.zoom-controls button{width:25px;height:25px;font-size:14px}.inspector{top:auto;bottom:0;right:0;width:100%;max-width:100%;max-height:87dvh;padding:0 25px calc(25px + env(safe-area-inset-bottom));border-radius:14px 14px 0 0;transform:translateY(28px)}.inspector.open{transform:translateY(0)}.sheet-head{height:58px}.inspector h2{font-size:26px}.title-field{margin-top:18px}.menu{top:60px;width:235px}.toast{bottom:24px;max-width:90vw;font-size:10px;gap:17px}.water-cursor{display:none!important}.search-field{margin:14px 0}.privacy-note{font-size:10px}}
@media(prefers-reduced-motion:reduce){button,.inspector,.scrim,.toast,.task-label{transition:opacity 140ms ease,color 140ms ease,background-color 140ms ease}.menu{animation:none}.inspector{transform:none}.toast{transform:translateX(-50%)}.toast.visible{transform:translateX(-50%)}}
