:root{--paper:#f7f5ee;--surface:#fffef9;--ink:#29392f;--muted:#6a7367;--accent:#425d49;--soft:#e9eee3;--line:#dcded2;--error:#9c3832;--radius:18px;--body:ui-sans-serif,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;--display:Georgia,"Songti SC",serif;--motion:180ms}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.65 var(--body)}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.45}a{color:var(--accent)}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #8c9d65;outline-offset:3px}button{transition:background var(--motion),transform var(--motion)}button:hover{filter:brightness(.97)}button:active{transform:translateY(1px)}[hidden]{display:none!important}.skip{position:fixed;left:15px;top:-80px;z-index:5;padding:10px;background:var(--surface)}.skip:focus{top:12px}.workspace{display:grid;grid-template-columns:254px 1fr;min-height:100vh}.sidebar{background:#eeeee4;border-right:1px solid var(--line);padding:38px 24px 24px;display:flex;flex-direction:column;gap:0}.brand{text-decoration:none;display:flex;gap:12px;align-items:center;margin-bottom:48px;font:25px/1.2 var(--display);font-weight:bold}.brand small{display:block;font:11px/1.6 var(--body);letter-spacing:3px;margin-top:5px;color:var(--muted)}.nestmark{width:44px;height:44px;border:1px solid #708263;border-radius:50%;font:italic 36px/1 var(--display);text-align:center;background:var(--soft)}.eyebrow{font-size:10px;letter-spacing:2.3px;font-weight:650;text-transform:uppercase;color:var(--muted);margin:0 0 15px}#stages{display:grid;gap:8px}.stage-button{display:flex;text-align:left;align-items:center;gap:12px;border:0;background:transparent;padding:13px 11px;border-radius:11px;width:100%}.stage-button .stage-number{font:italic 17px var(--display);opacity:.65}.stage-button strong{font-size:14px;display:block;font-weight:600}.stage-button small{font-size:10px;display:block;opacity:.8;margin-top:3px}.stage-button[aria-current="step"]{background:var(--accent);color:#fafbf4}.side-note{margin-top:45px;border-top:1px solid #d2d7c7;padding-top:25px}.leaf{font-size:32px;color:#78936d}.side-note h2{font:18px/1.55 var(--display);font-weight:500;margin:10px 0}.side-note p{font-size:12px;line-height:1.9;color:var(--muted)}.data-tools{margin-top:auto;padding-top:38px;display:grid;gap:7px}.data-tools button{text-align:left;border:0;background:none;padding:5px 0;font-size:12px;color:var(--muted)}.local-note{font-size:10px;letter-spacing:1.5px;color:var(--muted);margin-top:20px}main{max-width:1190px;width:100%;padding:30px 52px 22px}.topline{display:flex;justify-content:space-between;gap:20px;align-items:center;padding-bottom:26px;border-bottom:1px solid var(--line);color:var(--muted);font-size:10px;letter-spacing:1.6px}.date-button{border:1px solid var(--line);border-radius:30px;background:transparent;padding:8px 15px;font-size:11px;letter-spacing:0}.date-button span{margin-left:8px}.intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:42px 0 30px}.intro .eyebrow{margin-bottom:8px;color:#6b835e}h1{font:clamp(27px,3.2vw,42px)/1.35 var(--display);font-weight:500;margin:0 0 12px;letter-spacing:-1px}.intro p:not(.eyebrow){font-size:13px;color:var(--muted);margin:0}.primary{border:1px solid var(--accent);background:var(--accent);color:white;border-radius:8px;padding:11px 19px;white-space:nowrap;font-size:13px}.primary span{margin-right:6px}.secondary{border:1px solid var(--line);background:transparent;border-radius:8px;padding:10px 18px;font-size:13px}.overview{display:grid;grid-template-columns:1.5fr 1fr;background:var(--soft);border-radius:var(--radius);overflow:hidden;margin-bottom:34px;border:1px solid #dce3d2}.progress-block{padding:27px 30px}.stat-caption{font-size:11px;color:#53664f;display:flex;justify-content:space-between;gap:16px}.progress-number{display:flex;align-items:center;gap:24px;margin:10px 0 15px}.progress-number strong{font:70px/1.1 var(--display);letter-spacing:-4px;font-weight:400}.progress-number strong small{font-size:25px;letter-spacing:0;margin-left:3px}.progress-number>span{font-size:12px;color:#53664f;max-width:140px}.progress-track{height:7px;background:#ced8c3;border-radius:20px;overflow:hidden}.progress-track span{display:block;width:0;height:100%;background:#5d7654;border-radius:20px;transition:width 260ms ease}.overview p{font-size:10px;color:#69775f;margin:12px 0 0}.budget-block{padding:27px 30px;border-left:1px solid #d3dccb;display:flex;flex-direction:column;justify-content:center}.budget-block>strong{font:30px/1.35 var(--display);margin-top:7px}.budget-divider{height:1px;background:#d3dccb;margin:13px 0}.budget-block>strong.remaining{font-size:21px}.list-heading{display:flex;justify-content:space-between;align-items:center;gap:18px}.list-heading h2{font-size:17px;font-weight:550;margin:0}.list-heading h2 span{font:12px var(--body);margin-left:8px;color:var(--muted)}.search{display:flex;gap:8px;align-items:center;border-bottom:1px solid var(--line);padding:6px 0}.search span{font-size:22px}.search input{width:160px;border:0;background:transparent;font-size:12px;padding:4px;color:var(--ink)}.filter-row{display:flex;gap:6px;flex-wrap:wrap;margin:20px 0}.filter-row button{font-size:11px;padding:6px 13px;border:1px solid transparent;background:transparent;border-radius:30px;color:var(--muted)}.filter-row button[aria-pressed="true"]{border-color:#bccab0;background:#e9eee1;color:var(--ink)}.items{display:grid;gap:10px}.item{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:14px;padding:20px 22px;border:1px solid var(--line);border-radius:12px;background:var(--surface);align-items:start}.check{border:1px solid #bcc6b0;background:none;border-radius:50%;width:26px;height:26px;padding:0;line-height:24px;text-align:center;font-size:14px}.check[aria-pressed="true"]{background:#738965;color:white;border-color:#738965}.item h3{font-size:14px;font-weight:550;margin:0 0 7px;overflow-wrap:anywhere}.item.done h3{color:#65755d}.item-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:10px;color:var(--muted)}.category-label{padding:1px 7px;border-radius:4px;background:#f0f0e8}.item-note{font-size:11px;color:var(--muted);margin:9px 0 0;overflow-wrap:anywhere}.item-links{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px}.item-links a{font-size:11px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-actions{text-align:right;display:grid;justify-items:end;gap:12px}.quantity-control{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted)}.quantity-control button{width:24px;height:24px;border:1px solid var(--line);background:transparent;border-radius:5px;padding:0}.item-edit{display:flex;gap:12px}.text-button{border:0;background:none;padding:2px 0;color:var(--muted);font-size:10px}.empty{text-align:center;padding:44px 20px;border:1px dashed #c7cebb;border-radius:12px}.empty>span{font:60px var(--display);color:#7a8e6d}.empty h3{font:22px var(--display);font-weight:400}.empty p{font-size:12px;color:var(--muted)}footer{display:flex;justify-content:space-between;gap:18px;color:var(--muted);font-size:10px;margin-top:35px;padding-top:18px;border-top:1px solid var(--line)}footer span:first-child{font:italic 15px var(--display)}.notice{padding:12px 15px;background:#e6edde;border:1px solid #bfcdb3;border-radius:8px;margin-top:18px;font-size:12px}.notice.error,.error{color:var(--error)}.notice.error{background:#fff0eb;border-color:#e2bbb4}dialog{border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--ink);padding:30px;width:min(570px,calc(100% - 30px));max-height:90vh;box-shadow:0 24px 80px #23322233}dialog::backdrop{background:#25372666;backdrop-filter:blur(3px)}dialog h2{font:27px/1.3 var(--display);font-weight:500;margin:0 0 24px}.dialog-heading{display:flex;align-items:center;justify-content:space-between}.close{font-size:25px;line-height:1;border:0;background:none;padding:0 0 14px 14px}.dialog-heading .eyebrow{font-size:9px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-row.three{grid-template-columns:repeat(3,1fr)}dialog label{display:block;font-size:12px;margin-bottom:16px}dialog input:not([type=hidden]),dialog textarea,dialog select{width:100%;display:block;border:1px solid #cdd3c4;padding:9px 11px;margin-top:6px;background:#fffefa;border-radius:7px;color:var(--ink);font-size:13px}dialog textarea{resize:vertical}dialog p{font-size:12px;color:var(--muted)}.optional{font-size:10px;color:var(--muted);font-weight:400}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:26px}dialog .error{background:#fff0eb;padding:10px;border-radius:6px;color:var(--error)}
@media(min-width:1500px){main{margin-inline:auto;padding-inline:70px}.sidebar{padding-inline:30px}.workspace{grid-template-columns:280px 1fr}}
@media(max-width:1050px){.workspace{grid-template-columns:205px 1fr}.sidebar{padding:30px 17px}main{padding:25px 28px}.brand{font-size:21px}.progress-block,.budget-block{padding:23px}.progress-number{gap:12px}.progress-number strong{font-size:58px}.intro{align-items:flex-start}.intro .primary{margin-top:25px}}
@media(max-width:760px){.workspace{display:block}.sidebar{padding:20px 20px 15px;border-right:0;border-bottom:1px solid var(--line)}.brand{margin-bottom:18px;font-size:23px}.brand small{font-size:9px}.nestmark{width:36px;height:36px;font-size:30px}.sidebar>.eyebrow,.side-note,.local-note{display:none}#stages{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.stage-button{padding:10px 5px;display:block;text-align:center}.stage-button .stage-number,.stage-button small{display:none}.stage-button strong{font-size:11px}.data-tools{display:flex;margin-top:12px;padding:0;gap:20px}.data-tools button{font-size:10px}main{padding:20px}.topline{font-size:8px;padding-bottom:19px;letter-spacing:1px}.date-button{padding:6px 10px;font-size:10px}.intro{margin-top:27px;gap:12px;align-items:center}.intro .primary{margin:0;padding:10px 12px;font-size:11px}h1{font-size:28px;letter-spacing:-.5px}.intro p:not(.eyebrow){font-size:11px;max-width:210px}.intro .eyebrow{font-size:8px}.overview{grid-template-columns:1fr 1fr;margin-bottom:28px}.progress-block,.budget-block{padding:19px 16px}.progress-number{display:block;margin:10px 0}.progress-number strong{display:block;font-size:54px}.progress-number>span{display:block;font-size:10px;margin-top:6px}.stat-caption{font-size:10px;gap:8px;flex-wrap:wrap}.budget-block>strong{font-size:27px}.overview p{font-size:9px}.budget-block>strong.remaining{font-size:20px}.search input{width:120px}.item{padding:16px 13px;gap:10px;grid-template-columns:27px minmax(0,1fr)}.item-actions{grid-column:2;display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:0}.item h3{font-size:13px}.item-note{font-size:10px}.item-edit{gap:16px}.text-button{font-size:11px}.quantity-control button{width:28px;height:28px}.filter-row{gap:2px}.filter-row button{padding:5px 10px}.list-heading h2{font-size:16px}footer{display:block}footer span{display:block;margin-top:8px}dialog{padding:24px}.form-row{gap:10px}.form-row.three{gap:8px}dialog label{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
