:root{color:#1b211d;background:#e9e7e1;font-family:Inter,Noto Sans TC,-apple-system,BlinkMacSystemFont,PingFang TC,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--paper: #fbfaf6;--ink: #1b211d;--muted: #6f746f;--rule: #d9d8d1;--green: #367246;--green-soft: #edf4ed;--coral: #ed5c50;--coral-text: #b8473f;--coral-soft: #fbebe6;--sage: #3f744e;--sage-soft: #eef3ea;--blue: #356caf;--blue-soft: #edf2f8;--ochre: #d89205;--ochre-soft: #faf3e6;--plum: #79338c;--plum-soft: #f3edf5}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;background:#e9e7e1;color:var(--ink);-webkit-font-smoothing:antialiased}button,input,select{font:inherit;font-family:inherit}button{color:inherit}button,input,select{outline-color:color-mix(in srgb,var(--green) 60%,transparent);outline-offset:2px}:where(button,input,select):focus-visible{outline:3px solid color-mix(in srgb,var(--green) 72%,white);outline-offset:3px}.page{min-height:100vh;padding:20px}.app-window{position:relative;width:min(100%,1440px);min-height:auto;margin:0 auto;padding:46px 48px 24px;overflow:hidden;border:1px solid #d6d3ca;border-radius:18px;background:var(--paper);box-shadow:0 18px 60px #23272324}.window-dots{position:absolute;top:17px;left:20px;display:flex;gap:7px}.topbar,.date-navigation,.section-heading,.bag-group__header,.bag-row,.summary-bar,.topbar__actions,.year-row,.year-stepper,.progress-chip,.floating-input,.button,.modal__header,.form__actions,.settings-list>div{display:flex;align-items:center}.topbar{justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:11px}.brand__mark{flex-shrink:0}.brand__title{display:flex;align-items:baseline;color:var(--ink);font-size:26px;line-height:1.15}.brand__title-zh{font-family:Noto Sans TC,-apple-system,sans-serif;font-weight:800;letter-spacing:-.02em}.brand__title-en{margin-left:6px;font-family:Inter,-apple-system,sans-serif;font-weight:800;letter-spacing:-.03em}.brand__badge{margin-left:6px;color:var(--coral-text);font-size:13px;font-weight:700}.brand p{margin:3px 0 0;color:#3d453e;font-size:15px;font-weight:650;letter-spacing:.02em}.topbar__actions{flex-wrap:wrap;justify-content:flex-end;gap:14px}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:0 18px;border:1px solid #aaaDA8;border-radius:9px;background:#fffefa;font-weight:650;cursor:pointer;transition:border-color .15s ease,background-color .15s ease,transform .15s ease}.button:hover{border-color:#767c77;background:#f4f3ed}.button:active{transform:translateY(1px)}.button--add{border-color:#8fb09a;color:#315f3d}.date-navigation{align-items:flex-end;gap:40px;margin-top:28px;padding-bottom:16px;border-bottom:1px solid var(--rule)}.date-navigation__display{flex:0 0 auto;font-size:clamp(76px,7.5vw,108px);font-weight:850;line-height:.88;letter-spacing:-.06em}.date-navigation__controls{flex:1;min-width:0}.year-row{justify-content:space-between;padding-bottom:11px;border-bottom:1px solid var(--rule)}.year-stepper{gap:16px;font-weight:600}.year-row__actions{display:flex;align-items:center;gap:10px}.return-current-month{min-height:36px;border-color:#8fb09a;color:var(--green)}.return-current-month:hover{border-color:var(--green);background:var(--green-soft)}.icon-button{display:inline-grid;width:34px;height:34px;padding:0;place-items:center;border:0;border-radius:8px;background:transparent;color:#777c78;cursor:pointer}.icon-button:hover{background:#efeee9;color:var(--ink)}.view-switch{display:grid;grid-template-columns:repeat(2,92px);overflow:hidden;border:1.5px solid #a9aca7;border-radius:8px}.view-switch button{min-height:36px;border:0;background:transparent;font-weight:650;cursor:pointer}.view-switch button+button{border-left:1px solid #b8bab6}.view-switch .is-active{background:#3e7048;color:#fff}.month-tabs{display:grid;grid-template-columns:repeat(12,minmax(46px,1fr));gap:8px;padding-top:9px}.month-tabs button{min-height:34px;padding:0;border:0;border-radius:999px;background:transparent;color:#252a26;cursor:pointer;font-weight:580}.month-tabs button:hover{background:#eeeee8}.month-tabs button.is-active{background:#467d50;color:#fff;box-shadow:inset 0 0 0 1px #1e4f2a2e}.drawer-section{margin-top:20px}.section-heading{display:flex;align-items:center;min-height:44px;margin-bottom:16px;gap:16px}.section-heading__title-box{display:flex;align-items:center;gap:10px}.section-heading__actions{display:flex;align-items:center;gap:10px;margin-left:auto}.section-heading h1{margin:0;font-size:30px;font-weight:730;letter-spacing:-.04em}.floating-toast{position:fixed;top:18px;left:50%;transform:translate(-50%);z-index:9999;display:inline-flex;align-items:center;gap:8px;padding:8px 14px 8px 12px;background:#edf7f0;border:1px solid #9dc2a6;border-radius:20px;color:#214d2c;font-size:13px;font-weight:700;box-shadow:0 6px 20px #0000001f;cursor:pointer;animation:toastFadeIn .25s cubic-bezier(.16,1,.3,1);white-space:nowrap;max-width:calc(100vw - 32px)}.floating-toast span{overflow:hidden;text-overflow:ellipsis}.floating-toast__close{opacity:.6;transition:opacity .15s ease;margin-left:2px}.floating-toast:hover .floating-toast__close{opacity:1}@keyframes toastFadeIn{0%{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translate(-50%)}}.notice-sub,.notice.notice-sub{font-size:13px;font-weight:680;padding:5px 11px;color:#2b5636!important;background:#f0f7f2!important;border:1px solid #a4c4ac!important;border-radius:7px!important;white-space:nowrap!important;cursor:pointer;line-height:1.3}.progress-chip{gap:18px;min-height:36px;padding:0 16px;border:1px solid #a9c2ae;border-radius:8px;background:#fafcf8;color:#376442}.progress-chip span{font-size:14px;font-weight:650}.progress-chip strong{color:#1c251e;font-size:16px}.notice{padding:7px 12px;border:1px solid #d6d4cc;border-radius:7px;background:#f6f4ee;color:#5c615d;cursor:pointer;font-size:13px}.section-edit-button{min-width:72px;border-color:#adb5ae;background:#fffefa;color:#4c554f}.month-actions-button{border-color:#c4c8c3;background:#f7f6f1;color:#5e655f}.month-actions-button:hover{border-color:#8e9690;background:#f0f1eb}.section-edit-button.is-active{border-color:#4c7b57;background:#3e7048;color:#fff}.section-edit-button.is-active:hover{border-color:#315f3d;background:#315f3d}.drawer-table{overflow:hidden;border:1px solid var(--rule);border-radius:10px;background:#fffefa}.table-columns{display:grid;grid-template-columns:1fr 180px 95px;min-height:44px;align-items:center;padding:0 22px 0 56px;color:#333935;font-size:15px;font-weight:720}.table-columns span:nth-child(2),.table-columns span:nth-child(3){text-align:center}.table-columns span:nth-child(3){transform:translate(6px)}.drawer-table.is-editing .table-columns{grid-template-columns:1fr 180px 95px 105px 76px}.drawer-table.is-editing .table-columns span:nth-child(3),.drawer-table.is-editing .table-columns span:nth-child(4){text-align:center}.drawer-table.is-editing .table-columns span:nth-child(3){transform:none}.drawer-table.is-editing .table-columns span:nth-child(4){transform:translate(6px)}.bag-group{--tone: var(--sage);--tone-soft: var(--sage-soft);position:relative;overflow:hidden;border-top:1px solid var(--rule);background:#fff}.bag-group--blue{--tone: var(--blue);--tone-soft: var(--blue-soft)}.bag-group--ochre{--tone: var(--ochre);--tone-soft: var(--ochre-soft)}.bag-group--plum{--tone: var(--plum);--tone-soft: var(--plum-soft)}.bag-group__header{position:relative;display:grid;grid-template-columns:1fr 275px;min-height:48px;align-items:center;padding:0 22px 0 56px;border-top:1px solid var(--rule);background:var(--tone-soft);color:var(--tone)}.drawer-table.is-editing .bag-group__header{grid-template-columns:1fr 380px 76px}.bag-group__header:before{position:absolute;top:0;bottom:0;left:0;width:5px;background:var(--tone);content:""}.bag-group__header strong{font-size:17px;font-weight:700}.bag-group__header span{display:inline-flex;align-items:baseline;color:#3b403c;font-size:16.5px;font-weight:650;text-align:right;justify-self:end;white-space:nowrap;transform:translate(-10px)}.bag-group__header b{margin-left:6px;color:#1a1e1b;font-size:16.5px;font-weight:750}.bag-row{display:grid;grid-template-columns:1fr 180px 95px;min-height:54px;padding:6px 22px 6px 56px;border-top:1px solid #e4e2dc;transition:background-color .15s ease;align-items:center}.drawer-table.is-editing .bag-row{grid-template-columns:1fr 180px 95px 105px 76px}.bag-row:hover{background:#faf9f5}.bag-row__name{display:flex;align-items:baseline;gap:12px;min-width:0;font-size:15px;font-weight:560}.bag-row__name i{width:13px;height:13px;flex:0 0 auto;border-radius:3px;background:var(--tone);transform:translateY(1px)}.bag-row__note{margin-left:2px;color:#7d857f;font-size:13px;font-weight:500;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.amount-control{position:relative;display:flex;width:160px;align-items:center;justify-self:center;gap:4px}.amount-field{display:flex;width:128px;height:34px;align-items:center;justify-self:center;overflow:hidden;border:1px solid #ced1cd;border-radius:7px;background:#fff}.amount-field:focus-within{border-color:#779480;box-shadow:0 0 0 2px #3b71481c}.amount-field>span:not(.sr-only){padding-left:12px;font-weight:600}.amount-field input{width:100%;min-width:0;padding:0 10px 0 4px;border:0;outline:0;background:transparent;color:#171a18;font-size:16.5px;font-weight:750;text-align:right}.quick-amount-trigger{display:grid;width:28px;height:34px;flex:0 0 28px;padding:0;border:1px solid #ced1cd;border-radius:7px;background:#f7f6f1;color:#656b66;cursor:pointer;place-items:center}.quick-amount-trigger:hover,.quick-amount-trigger[aria-expanded=true]{border-color:#86a08c;background:#edf4ed;color:#397447}.quick-amount-panel{display:flex;width:max-content;grid-row:2;grid-column:2;align-items:center;justify-content:center;justify-self:center;margin-top:6px}.quick-amount-panel button{min-width:0;min-height:24px;padding:0;border:0;background:transparent;color:#3c6946;cursor:pointer;font-size:13.5px;font-weight:750;line-height:1;white-space:nowrap}.quick-amount-panel button:hover{color:#245a31;text-decoration:underline;text-underline-offset:3px}.quick-amount-panel button:focus-visible{border-radius:2px;outline:2px solid #779480;outline-offset:3px}.quick-amount-separator{color:#9ba19c;font-size:13.5px;font-weight:450;line-height:1}.quick-amount-panel .quick-amount-clear{display:grid;margin-left:12px;color:var(--coral);place-items:center}.quick-amount-panel .quick-amount-clear svg path{stroke:currentcolor;stroke-width:12px;stroke-linejoin:round;paint-order:stroke fill}.quick-amount-panel .quick-amount-clear:hover{color:#c94238;text-decoration:none}.bag-row.is-disabled{background:#f5f4ef;color:#858984}.bag-row.is-disabled:hover{background:#f1f0eb}.bag-row.is-disabled .bag-row__name i{background:#a9aca7}input[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.status-button{display:inline-flex;width:95px;height:32px;align-items:center;justify-content:center;justify-self:end;gap:6px;padding:0 8px;border-radius:7px;background:transparent;cursor:pointer;font-size:13.5px;font-weight:650;white-space:nowrap;transition:all .18s ease}.status-button--complete{border:1px solid #b6cbb9;background:#f4f8f2;color:#397447}.status-button--pending{border:1px solid #ff8d80;background:#fff8f6;color:var(--coral-text)}.status-button--disabled{border:1px solid #cacbc7;background:#e9e9e5;color:#777c78;cursor:not-allowed}.status-placeholder{color:#a0a49f;font-size:15px;font-weight:650;text-align:center;justify-self:center}.usage-button{display:inline-flex;width:95px;height:32px;align-items:center;justify-content:center;justify-self:center;gap:5px;padding:0 8px;border:1px solid #c8cac6;border-radius:7px;background:#fffefa;color:#656b66;cursor:pointer;font-size:12.5px;font-weight:650;white-space:nowrap}.usage-button:hover{border-color:#858b86;background:#f3f2ed}.usage-button.is-disabled{border-color:#a9c2ae;background:#eef5ed;color:#397447}.bag-group__actions,.bag-row__actions{display:flex;align-items:center;gap:2px;justify-self:end;margin-right:-10px}.row-action{display:grid;width:32px;height:32px;padding:0;place-items:center;border:0;border-radius:7px;background:transparent;color:#707571;cursor:pointer}.row-action:hover{background:#ffffffb8;color:var(--ink)}.row-action--danger:hover{background:var(--coral-soft);color:var(--coral)}.group-empty{min-height:46px;padding:14px 56px;border-top:1px solid #e4e2dc;color:var(--muted);font-size:13px}.drawer-empty{display:flex;min-height:260px;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#667069}.drawer-empty strong{margin-top:5px;color:var(--ink);font-size:18px}.drawer-empty span{margin-bottom:12px;font-size:14px}.summary-bar{display:grid;grid-template-columns:minmax(200px,1.08fr) 32px minmax(200px,1fr) 32px minmax(200px,1.05fr) minmax(150px,.62fr);min-height:106px;align-items:stretch;margin-top:10px;overflow:hidden;border:1px solid var(--rule);border-radius:10px;background:#fbfaf6}.summary-card{display:flex;min-width:0;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:13px 18px;border-radius:99px;text-align:center}.summary-card>span,.summary-progress>span{display:flex;height:20px;width:100%;align-items:center;justify-content:center;color:#386b43;font-size:15px;font-weight:720;line-height:20px;text-align:center}.summary-card>strong{display:inline-flex;height:56px;align-items:center;justify-content:center;max-width:100%;color:#0e110f;font-size:clamp(28px,3vw,42px);font-weight:760;line-height:1;letter-spacing:-.045em;white-space:nowrap;text-align:center}.summary-card>strong.is-long{font-size:clamp(20px,2.1vw,28px)}.summary-card>strong.is-very-long{font-size:clamp(15px,1.6vw,21px)}.summary-card strong small{margin-right:7px;color:#212622;font-size:14px;font-weight:580;letter-spacing:0;align-self:center}.summary-card--fixed,.summary-card--total{background:transparent}.summary-card--fixed>span,.summary-card--total>span{transform:translate(15px)}.summary-card--floating{background:transparent}.summary-card--floating>span{display:flex;align-items:center;justify-content:center;gap:4px;color:var(--coral-text)}.summary-card--floating>span small{font-size:11px}.operator{display:flex;align-items:center;justify-content:center;align-self:center;color:#4a504b;font-size:36px;font-weight:800;text-align:center;transform:translateY(12px)}.floating-input{display:inline-flex;align-items:center;justify-content:center;width:fit-content;min-width:130px;max-width:100%;height:56px;padding:0 8px;margin-left:auto;margin-right:auto;border:0;border-bottom:2px solid #f07669;border-radius:0;background:transparent;gap:6px;cursor:pointer;transition:width .2s ease}.floating-input__wrapper{position:relative;display:inline-flex;align-items:center;justify-content:flex-start;min-width:1ch;max-width:100%;height:100%}.floating-input__sizer{visibility:hidden;height:0;font-size:clamp(28px,3vw,42px);font-weight:760;letter-spacing:-.045em;line-height:56px;white-space:pre;pointer-events:none}.floating-input.is-long .floating-input__sizer{font-size:clamp(20px,2.1vw,28px)}.floating-input.is-very-long .floating-input__sizer{font-size:clamp(15px,1.6vw,21px)}.floating-input input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;padding:0;border:0;outline:0;background:transparent;color:var(--coral);font-family:inherit;font-size:clamp(28px,3vw,42px);font-weight:760;letter-spacing:-.045em;line-height:1;text-align:center;cursor:text;-webkit-appearance:none;-moz-appearance:none;appearance:none}.floating-input.is-long input{font-size:clamp(20px,2.1vw,28px)}.floating-input.is-very-long input{font-size:clamp(15px,1.6vw,21px)}.summary-progress{display:flex;min-width:0;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:13px 18px;border-left:1px solid #b5b6b1;background:#e8f2e9;text-align:center}.summary-progress>span{display:flex;height:20px;width:100%;align-items:center;justify-content:center;color:#386b43;font-size:15px;font-weight:720;line-height:20px;text-align:center}.summary-progress__ring-box{position:relative;display:inline-flex;width:clamp(76px,20vw,110px)!important;height:clamp(76px,20vw,110px)!important;align-items:center;justify-content:center;margin-top:4px}.progress-ring{width:100%!important;height:100%!important;flex-shrink:0;transform:rotate(-90deg)}.progress-ring__bg{fill:none;stroke:#fff;stroke-width:12}.progress-ring__fill{fill:none;stroke:#397447;stroke-width:12;stroke-linecap:round;transition:stroke-dashoffset .3s ease}.summary-progress__overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;line-height:1}.summary-progress__overlay span{color:#4a524c;font-size:19px;font-weight:650;font-style:italic;letter-spacing:-.02em;line-height:1;white-space:nowrap}.summary-progress__overlay span.is-long{font-size:16.5px;letter-spacing:-.03em}.summary-progress__overlay span.is-very-long{font-size:12.5px;letter-spacing:-.04em}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex!important;align-items:center!important;justify-content:center!important;padding:16px!important;background:#14181573;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);overflow:hidden!important}.modal{display:flex!important;flex-direction:column!important;width:min(100%,480px);max-height:calc(100dvh - 32px)!important;max-height:calc(100vh - 32px);margin:auto!important;overflow:hidden!important;border:1px solid #d3d1c8;border-radius:14px;background:var(--paper);box-shadow:0 24px 70px #0f141038;padding:0!important}.modal--wide{width:min(100%,840px)}.modal__header{flex-shrink:0!important;display:flex!important;align-items:center!important;justify-content:space-between!important;padding:16px 20px!important;border-bottom:1px solid var(--rule);background:var(--paper)}.modal__header h2{margin:0;font-size:21px}.modal-body,.modal__body,.settings-modal,.backup-modal,.form,.modal>form,.modal>.form{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;scrollbar-width:none!important;-ms-overflow-style:none!important;display:grid;gap:17px;padding:20px}.modal-body::-webkit-scrollbar,.modal__body::-webkit-scrollbar,.settings-modal::-webkit-scrollbar,.backup-modal::-webkit-scrollbar,.form::-webkit-scrollbar,.modal::-webkit-scrollbar,.modal *::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}.modal div,.settings-note,.modal-card,.notice{scrollbar-width:none!important}.form label{display:grid;gap:7px;color:#444a46;font-size:13px;font-weight:650}.form input,.form select,.form textarea{width:100%;padding:0 12px;border:1px solid #c9cbc6;border-radius:8px;background:#fffefa;color:var(--ink)}.form input,.form select{height:42px}.form textarea{min-height:84px;padding-block:10px;resize:vertical;font:inherit;line-height:1.5}.button:disabled{cursor:not-allowed;opacity:.48}.form__actions{justify-content:flex-end;gap:10px;padding-top:4px}.form__intro,.form__scope{margin:0;color:var(--muted);font-size:13px;line-height:1.65}.form__scope{padding:10px 12px;border-radius:7px;background:#f1f0eb}.choice-card{display:grid!important;min-height:72px;grid-template-columns:20px 1fr;align-items:start;gap:12px!important;padding:14px;border:1px solid #d4d5d0;border-radius:9px;background:#fffefa;cursor:pointer}.choice-card:has(input:checked){border-color:#79a185;background:#f3f8f2;box-shadow:inset 0 0 0 1px #3672461f}.choice-card input{width:17px;height:17px;margin:2px 0 0;accent-color:var(--green)}.choice-card span{display:grid;gap:4px}.choice-card strong{color:var(--ink);font-size:14px}.choice-card small{color:var(--muted);font-size:12px;font-weight:500;line-height:1.5}.choice-card.is-disabled{background:#f1f0ec;cursor:not-allowed;opacity:.65}.choice-card--danger:has(input:checked){border-color:#df8f87;background:#fff4f1}.color-field{display:grid;grid-template-columns:54px 1fr;align-items:center;gap:12px}.form .color-field input[type=color]{width:54px;height:42px;padding:3px;cursor:pointer}.color-field span{color:var(--muted);font-size:12px;font-weight:500}.button--danger{border-color:#d2645b;background:#d9554b;color:#fff}.button--danger:hover{border-color:#b8473f;background:#c94a41}.button--small{gap:5px;min-height:34px;padding:0 11px;font-size:13px}.button--selected,.button--selected:disabled{border-color:#8fb09a;background:var(--green-soft);color:var(--green);cursor:default;opacity:1}.button__label{transform:translateY(-1px)}.confirm-content{padding:22px}.confirm-content p{margin:0 0 22px;color:#515753;font-size:14px;line-height:1.65}.month-completion-actions__summary{display:grid;grid-template-columns:1fr auto;gap:8px 20px;padding:14px 16px;border-radius:8px;background:#f1f2ec;color:#5f655f;font-size:13px}.month-completion-actions__summary strong{color:var(--ink)}.month-completion-actions__buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.month-completion-actions__buttons .button{min-height:48px}.month-completion-actions__complete{border-color:#9ebaa5;background:#f1f7ef;color:#397447}.month-completion-actions__complete:hover{border-color:#77a181;background:#e8f2e6}.settings-tabs{display:grid;grid-template-columns:repeat(2,1fr);border-bottom:1px solid var(--rule);background:var(--paper);flex-shrink:0!important}.settings-modal-content{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;scrollbar-width:none!important;-ms-overflow-style:none!important}.settings-modal-content::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}.settings-tabs button{min-height:42px;border:0;border-bottom:2px solid #d8d7d1;background:transparent;color:var(--muted);cursor:pointer;font-weight:680}.settings-tabs button.is-active{border-bottom-color:var(--green);color:var(--green)}.template-library{display:grid;gap:12px;margin:14px 22px 0;padding:14px;border:1px solid #d8d8d1;border-radius:9px;background:#faf9f5}.template-library__selector{display:grid;grid-template-columns:minmax(190px,.7fr) minmax(240px,1.3fr);align-items:end;gap:16px}.template-library__selector label{display:grid;gap:6px;color:#525954;font-size:12px;font-weight:650}.template-library__selector select{width:100%;height:38px;padding:0 10px;border:1px solid #c8cac5;border-radius:7px;background:#fffefa;color:var(--ink)}.template-library__selector>div{min-width:0}.template-library__selector strong{margin-right:8px;color:var(--ink);font-size:14px}.template-library__selector p{margin:5px 0 0;overflow:hidden;color:var(--muted);font-size:12px;line-height:1.5;text-overflow:ellipsis;white-space:nowrap}.template-library__badge{padding:2px 7px;border-radius:6px;background:#e8f2e7;color:var(--green);font-size:11px;font-weight:700}.template-library__actions{display:flex;flex-wrap:wrap;gap:7px}.template-library__actions .danger-action:not(:disabled){border-color:#e0b3ad;color:#b94b43}.settings-scope-note{margin:14px 22px 0;padding:10px 13px;border-radius:7px;background:#f1f0eb;color:#606661;font-size:12px}.settings-drag-hint{display:flex;align-items:center;gap:7px;margin:10px 22px 0;color:#657069;font-size:12px}.settings-drag-hint svg{color:var(--green)}.settings-drag-hint button{margin-left:auto;padding:3px 8px;border:1px solid #b6c8ba;border-radius:6px;background:#f7faf5;color:var(--green);cursor:pointer;font-size:11px;font-weight:650}.settings-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 22px 10px}.settings-toolbar>strong{font-size:15px}.manager-list{max-height:none!important;overflow-y:visible!important;padding:0 22px 22px}.manager-group{--tone: var(--sage);--tone-soft: var(--sage-soft);overflow:hidden;margin-top:10px;border:1px solid #dcdad3;border-radius:9px}.manager-group>header{display:grid;min-height:48px;grid-template-columns:14px 1fr auto auto;align-items:center;gap:10px;padding:0 10px 0 15px;background:var(--tone-soft)}.manager-dot{width:12px;height:12px;border-radius:3px;background:var(--tone)}.manager-group>header>strong{color:var(--tone);font-size:15px}.manager-group>header>small{color:var(--muted);font-size:12px}.manager-actions{display:flex;align-items:center;gap:2px!important}.manager-actions button{display:grid;width:26px!important;height:26px!important;padding:0;place-items:center;border:0;border-radius:5px;background:transparent;color:#68706a;cursor:pointer}.manager-actions button:hover{background:#fffc;color:var(--ink)}.manager-actions .danger-action:hover{background:#fff0ed;color:#c94a41}.manager-item{display:grid;min-height:44px;grid-template-columns:24px minmax(120px,1fr) auto auto;align-items:center;gap:12px;padding:0 12px 0 14px;border-top:1px solid #e4e2dc;background:#fffefa;transition:background-color .12s ease,border-color .12s ease,opacity .12s ease}.manager-item.is-dragging{opacity:.42}.manager-item.is-drop-target{border-top:2px solid var(--green);background:#f2f7f1}.drag-handle{display:grid;width:24px;height:32px;place-items:center;color:#9a9e9a;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.manager-item:active .drag-handle{cursor:grabbing}.manager-item-name{display:flex;align-items:baseline;gap:6px;min-width:0;overflow:hidden}.manager-item-name>span:first-child{font-size:13px;font-weight:560;color:var(--ink);white-space:nowrap}.manager-item>strong{font-size:13px;text-align:right}.manager-item>small{color:var(--muted);font-size:11px}.manager-drop-zone{display:grid;min-height:38px;place-items:center;border-top:1px dashed #b8c9bc;background:#f7faf5;color:var(--green);font-size:12px;font-weight:650}.manager-drop-zone.is-drop-target{background:#eaf4e9;box-shadow:inset 0 0 0 2px #3672463d}.manager-add-item{display:flex;width:100%;min-height:40px;align-items:center;justify-content:flex-end;gap:7px;padding:0 20px;border:0;border-top:1px solid #e4e2dc;background:#faf9f5;color:var(--green);cursor:pointer;font-size:12.5px;font-weight:650}.manager-add-item:hover{background:#f2f5ef}.manager-empty{display:grid;min-height:160px;place-items:center;color:var(--muted);font-size:14px}.modal__note{margin:0;padding:15px 22px 22px;color:var(--muted);font-size:13px;line-height:1.65}.data-backup{display:grid;gap:18px;padding:22px}.data-backup__status{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 16px;border:1px solid #d9d8d1;border-radius:9px;background:#f7f6f1}.data-backup__status>div{display:grid;gap:5px}.data-backup__status strong{font-size:14px}.data-backup__status span{color:var(--muted);font-size:12px;line-height:1.5}.storage-status{flex:0 0 auto;padding:6px 9px;border:1px solid #b8cdbd;border-radius:999px;background:#edf4ed;color:var(--green)!important;font-size:11px!important;font-weight:700;white-space:nowrap}.storage-status--loading,.storage-status--saving{border-color:#d5c59c;background:#faf3e6;color:#8a6408!important}.storage-status--error{border-color:#e5aaa3;background:#fbebe6;color:#b94339!important}.data-backup__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.data-backup__actions .button{width:100%}.data-backup__health,.data-backup__formal-start,.formal-use__backup{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid #deddd6;border-radius:9px;background:#fffefa}.data-backup__health>div,.data-backup__formal-start>div,.formal-use__backup>div{display:grid;gap:4px}.data-backup__health strong,.data-backup__formal-start strong,.formal-use__backup strong{font-size:13px}.data-backup__health span,.data-backup__formal-start span,.formal-use__backup span{color:var(--muted);font-size:12px;line-height:1.5}.backup-health{flex:0 0 auto;padding:5px 8px;border-radius:6px;font-size:11px!important;font-weight:700;white-space:nowrap}.backup-health.is-current{background:#eaf3e9;color:var(--green)}.backup-health.is-warning{background:#fff0e5;color:#b45434}.data-backup__month-export{display:grid;gap:12px;padding-top:18px;border-top:1px solid var(--rule)}.data-backup__month-export>div:first-child{display:grid;gap:5px}.data-backup__month-export strong{font-size:14px}.data-backup__month-export span{color:var(--muted);font-size:12px;line-height:1.5}.data-backup__note{margin:0;padding:12px 14px;border-left:3px solid #8cab94;background:#f3f6f1;color:#5f6661;font-size:12px;line-height:1.65}.data-backup__formal-start{border-color:#e6c5bf;background:#fff8f5}.data-backup__formal-start .button{flex:0 0 auto}.backup-preview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:18px 0}.backup-preview>div{display:grid;gap:4px;min-width:0;padding:12px;border:1px solid #dfddd5;border-radius:8px;background:#faf9f5}.backup-preview span,.backup-preview small{overflow:hidden;color:var(--muted);font-size:11px;line-height:1.5;text-overflow:ellipsis;white-space:nowrap}.backup-preview strong{font-size:14px}.formal-use{max-height:min(720px,calc(100vh - 100px))}.formal-use__backup{background:#f5f8f3}.formal-use__backup .button{flex:0 0 auto}.formal-use__templates{display:grid;gap:10px;margin:0;padding:14px;border:1px solid #d9d8d1;border-radius:9px}.formal-use__templates legend{padding:0 6px;color:var(--ink);font-size:13px;font-weight:700}.formal-use__templates>p{margin:0;color:var(--muted);font-size:12px}.formal-use__templates>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.formal-use__templates .choice-card{min-height:64px;padding:11px}.formal-use__grid{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(2,minmax(120px,.8fr));gap:12px}.formal-use__confirmation{background:#fff8f5}.formal-use__final-summary{display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px 12px;padding:13px;border-radius:8px;background:#f4f3ee}.formal-use__final-summary span{color:var(--muted);font-size:12px}.formal-use__final-summary strong{font-size:13px}@media(max-width:760px){.backup-preview,.formal-use__templates>div,.formal-use__grid{grid-template-columns:1fr}.data-backup__health,.data-backup__formal-start,.formal-use__backup{align-items:stretch;flex-direction:column}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1180px){.app-window{padding-inline:28px}.date-navigation{align-items:stretch;flex-direction:column;gap:20px}.date-navigation__display{flex-basis:auto}.summary-bar{overflow:hidden;grid-template-areas:"fixed plus floating equals total" "progress progress progress progress progress";grid-template-columns:minmax(0,1.08fr) 32px minmax(0,1.18fr) 32px minmax(0,1.05fr)}.summary-card{padding:20px 16px 18px!important;gap:12px!important}.summary-card--fixed{grid-area:fixed}.operator--plus{grid-area:plus}.summary-card--floating{grid-area:floating}.operator--equals{grid-area:equals}.summary-card--total{grid-area:total}.summary-progress{grid-area:progress;min-height:92px;padding:18px 16px!important;align-items:center;border-top:1px solid var(--rule);border-left:0;text-align:center}.summary-card>strong{font-size:clamp(30px,4vw,42px)}.floating-input{min-width:110px;height:50px;padding:0 12px}.floating-input input,.floating-input__sizer{font-family:inherit!important;font-size:clamp(30px,4vw,42px)!important;line-height:1!important;-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important}}@media(max-width:760px){.page{padding:0}.app-window{min-width:0;width:100%;max-width:100%;min-height:100vh;padding:16px 12px 28px;border-radius:0}@media(max-width:600px){.summary-bar{overflow:hidden;display:grid!important;grid-template-areas:"fixed plus floating" "total total total" "progress progress progress"!important;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr)!important;row-gap:12px!important;column-gap:4px!important;padding:14px!important}.summary-card{padding:12px 4px 6px;display:flex;flex-direction:column;align-items:center;justify-content:center}.summary-card>label,.summary-card>span{font-size:13.5px!important;white-space:nowrap!important;height:22px;line-height:22px;margin-bottom:0!important;text-align:center}.summary-card--fixed>strong{font-size:26px!important;font-weight:800!important;white-space:nowrap!important;height:44px;display:flex;align-items:center;justify-content:center;margin-top:-4px!important}.operator--plus{grid-area:plus;align-self:center!important;justify-self:center!important;font-size:26px!important;font-weight:850!important;color:#525a54;margin-top:22px!important;transform:none!important}.operator--equals{display:none!important}.summary-card--total{grid-area:total;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:16px;background:#f0f7f2;border:1px solid #9dc2a6;border-radius:10px}.summary-card--total>span{font-size:13.5px!important;font-weight:750;color:#315d3c;letter-spacing:.02em;margin-bottom:0;transform:translate(6px)}.summary-card--total>strong{font-size:44px!important;font-weight:850;color:#121a14;height:auto;line-height:1.1;transform:translate(-8px)}.floating-input{height:44px!important;width:fit-content!important;min-width:90px!important;max-width:100%!important;padding:0 4px!important;box-sizing:border-box!important;margin:-4px auto 0!important;border:0!important;border-bottom:2px solid #f07669!important;border-radius:0!important;background:transparent!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}.floating-input input,.floating-input__sizer{font-family:inherit!important;font-size:26px!important;font-weight:800!important;line-height:1!important;text-align:center!important;-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important}.summary-progress{grid-area:progress;min-height:auto;padding:14px 16px!important;background:#f0f7f2!important;border:1px solid #9dc2a6!important;border-radius:10px!important;border-top:1px solid #9dc2a6!important;border-left:1px solid #9dc2a6!important;margin-top:2px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}.summary-progress>span{font-size:13.5px!important;font-weight:750;color:#315d3c;letter-spacing:.02em}.summary-progress__ring-box{width:clamp(100px,28vw,130px)!important;height:clamp(100px,28vw,130px)!important}.summary-progress__overlay span{font-size:clamp(22px,6vw,28px)!important;font-weight:650!important}}.window-dots{display:none!important}.topbar{flex-direction:column;align-items:stretch;gap:12px}.brand{gap:10px}.brand__mark{width:52px!important;height:52px!important}.brand__title-zh,.brand__title-en{font-size:21px}.brand p{font-size:13px;margin-top:2px}.topbar__actions{display:flex;flex-wrap:wrap;gap:8px;width:100%}.topbar__actions .button{flex:1 1 calc(50% - 4px);justify-content:center;height:38px;font-size:13px;font-weight:650;padding:0 10px;border-radius:8px}.section-heading{display:flex!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;margin-bottom:14px!important;width:100%!important}.section-heading h1{font-size:24px!important;font-weight:850!important;white-space:nowrap!important;line-height:1.1!important;margin:0!important;flex-shrink:0!important}.section-heading__actions{display:flex!important;flex-wrap:nowrap!important;align-items:center!important;gap:6px!important;margin-left:auto!important;width:auto!important;flex-shrink:0!important}.section-heading__actions .button{height:36px!important;padding:0 10px!important;font-size:12.5px!important;font-weight:700!important;white-space:nowrap!important;flex-shrink:0!important;border-radius:7px!important}.section-heading__actions .button svg{width:15px!important;height:15px!important}.nav-header{flex-direction:column;align-items:stretch;gap:10px;margin-top:14px}.month-stepper{display:flex;justify-content:space-between;align-items:center;width:100%}.month-stepper__title{font-size:18px;font-weight:750}.month-stepper .button--icon{width:36px;height:36px}.nav-header__right{display:flex;align-items:center;justify-content:space-between;width:100%;gap:8px}.month-tabs{grid-template-columns:repeat(12,44px);overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}.drawer-table{overflow-x:auto;-webkit-overflow-scrolling:touch}.bag-group__header{display:grid!important;grid-template-columns:1fr auto!important;padding:8px 14px 8px 20px!important;min-height:40px!important;align-items:center!important}.drawer-table.is-editing .bag-group__header{display:grid!important;grid-template-columns:minmax(84px,1fr) 110px 72px!important;padding:6px 14px 6px 20px!important;min-height:44px!important;align-items:center!important}.drawer-table.is-editing .bag-group__header .bag-group__actions{display:flex!important;gap:4px!important;align-items:center!important;justify-content:flex-end!important}.bag-group__header strong,.bag-group__header span{white-space:nowrap!important}.bag-group__header strong{font-size:15px}.bag-group__header span{transform:none;font-size:14px}.table-columns,.bag-row{grid-template-columns:minmax(100px,1fr) 142px 34px;padding:6px 10px 6px 28px;min-height:48px}.drawer-table.is-editing .table-columns{grid-template-columns:minmax(72px,1fr) 136px 72px!important;padding:6px 14px 6px 20px!important}.drawer-table.is-editing .table-columns span:nth-child(3),.drawer-table.is-editing .table-columns span:nth-child(4){display:none!important}.drawer-table.is-editing .bag-row{grid-template-columns:minmax(72px,1fr) 136px 72px!important;padding:6px 14px 6px 20px!important}.drawer-table.is-editing .quick-amount-trigger,.drawer-table.is-editing .usage-button,.drawer-table.is-editing .status-button,.drawer-table.is-editing .status-placeholder{display:none!important}.drawer-table.is-editing .row-actions{display:flex!important;gap:4px!important;align-items:center!important;justify-content:flex-end!important}.drawer-table.is-editing .row-action{width:34px!important;height:34px!important;padding:0!important;flex-shrink:0!important}.bag-group__header:before{width:4px}.bag-row__name{font-size:14px;min-width:0}.bag-row__name>span:first-of-type{white-space:nowrap!important;font-weight:650}.bag-row__note{white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;max-width:85px;font-size:11.5px;color:#7d857f}.amount-control{width:138px}.amount-field{height:32px}.amount-input{width:105px;font-size:13.5px}.quick-amount-trigger{width:30px;height:30px;border-radius:7px}.status-button__label,.usage-button__label,.status-button span,.usage-button span{display:none!important}.status-button,.usage-button,.status-placeholder{width:30px!important;min-width:30px!important;height:30px!important;padding:0!important;justify-content:center!important;border-radius:7px!important}.status-button svg,.usage-button svg{margin:0!important}.bag-row__actions{gap:2px}.row-action,.drag-handle{width:34px;height:34px}.monthly-insights-bar{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:8px!important;width:100%!important;box-sizing:border-box!important}.insight-card{min-width:0!important;width:100%!important;padding:10px 8px!important;box-sizing:border-box!important;justify-content:center}.insight-card__label{font-size:12px!important;white-space:nowrap!important}.insight-card__value{display:inline-flex!important;align-items:baseline!important;font-size:clamp(24px,4vw,28px)!important;font-weight:800!important;white-space:nowrap!important}.insight-card__value small{font-size:13px!important;margin-right:4px!important;align-self:center!important}.insight-card--breakdown{grid-column:1 / -1!important;width:100%!important;box-sizing:border-box!important}.monthly-chart-bar{padding:12px 10px}.chart-bar__label{font-size:10.5px}.modal-backdrop{padding:10px!important}.modal{width:100%!important;max-width:calc(100vw - 20px)!important;max-height:calc(100dvh - 20px)!important;max-height:calc(100vh - 20px)!important;margin:auto!important;padding:0!important;border-radius:14px!important}.modal__header{padding:14px 16px!important}.modal-body,.modal__body,.settings-modal,.backup-modal,.form,.modal>form,.modal>.form{padding:14px 16px!important}.manager-item{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:5px!important;padding:0 6px 0 8px!important;min-height:42px!important;flex-wrap:nowrap!important}.manager-item .drag-handle{width:34px!important;height:34px!important;flex-shrink:0!important}.manager-item-name{flex:1 1 auto!important;min-width:0!important;overflow:hidden!important}.manager-item-name>span:first-child{font-size:13px!important;font-weight:650!important;white-space:nowrap!important;text-overflow:ellipsis!important;overflow:hidden!important}.manager-item .bag-row__note{display:none!important}.manager-item>strong{font-size:12px!important;font-weight:700!important;white-space:nowrap!important;flex-shrink:0!important;margin-left:2px!important;margin-right:2px!important}.manager-group>header,.manager-item{padding-right:8px!important}.manager-actions{display:flex!important;align-items:center!important;gap:1px!important;flex-shrink:0!important}.manager-actions button{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:34px!important;height:34px!important;padding:0!important;flex-shrink:0!important;border-radius:4px!important}.manager-actions button svg{width:16px!important;height:16px!important}.manager-add-item{justify-content:flex-end!important;padding:0 16px!important}.template-library{margin:10px 0 0!important;padding:12px!important}.template-library__selector{grid-template-columns:1fr!important;gap:10px!important}.template-library__selector p{white-space:normal!important}.template-library__actions{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:8px!important;margin-top:6px!important}.template-library__actions .button{width:100%!important;height:38px!important;justify-content:center!important;padding:0 6px!important;font-size:12px!important;font-weight:650!important;white-space:nowrap!important}}.monthly-insights-bar{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(280px,2.2fr);gap:16px;margin-top:14px}.insight-card{display:flex;flex-direction:column;justify-content:center;gap:8px;padding:14px 20px;border:1px solid var(--rule);border-radius:10px;background:#fbfaf6}.insight-card__label{display:inline-flex;align-items:center;gap:6px;color:#4e5550;font-size:13.5px;font-weight:680}.insight-card--completed .insight-card__label{color:#367246}.insight-card--pending .insight-card__label{color:var(--coral-text)}.insight-card__value{display:inline-flex;align-items:baseline;color:#1a1e1b;font-size:clamp(28px,3vw,40px);font-weight:760;line-height:1;letter-spacing:-.045em;white-space:nowrap}.insight-card__value small{margin-right:6px;color:#212622;font-size:14px;font-weight:580;letter-spacing:0;align-self:center}.insight-card--breakdown{justify-content:space-between}.monthly-cat-box{display:flex;flex-direction:column;gap:8px;width:100%}.monthly-cat-stacked{display:flex;height:12px;border-radius:999px;overflow:hidden;background:#eae8e1}.monthly-cat-legend{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.monthly-cat-item{display:inline-flex;align-items:center;gap:5px;font-size:12.5px}.legend-swatch{width:10px;height:10px;border-radius:3px;display:inline-block}.monthly-cat-item .name{color:#4c524d;font-weight:600}.monthly-cat-item .percent{color:#1a1e1b;font-weight:750}.insight-empty{color:#888d89;font-size:13px}.monthly-chart-bar{display:flex;flex-direction:column;gap:14px;margin-top:14px;padding:16px 20px;border:1px solid var(--rule);border-radius:10px;background:#fbfaf6}.monthly-chart-header{display:flex;align-items:center;justify-content:space-between}.monthly-chart-title{display:inline-flex;align-items:center;gap:6px;color:#386b43;font-size:14px;font-weight:720}.monthly-chart-hint{color:#727873;font-size:12px;font-weight:560}.monthly-chart-bars{display:grid;grid-template-columns:repeat(12,1fr);gap:8px;height:140px;align-items:flex-end;padding-top:18px}.monthly-bar-item{position:relative;display:flex;flex-direction:column;align-items:center;height:100%;padding:0;border:0;background:transparent;cursor:pointer}.monthly-bar-track{width:100%;max-width:28px;height:100%;display:flex;align-items:flex-end;border-radius:5px 5px 0 0;background:#eceae3;overflow:hidden}.monthly-bar-fill{width:100%;border-radius:5px 5px 0 0;transition:height .25s ease,opacity .15s ease,transform .15s ease;opacity:.85}.monthly-bar-item.is-current .monthly-bar-fill{opacity:1;box-shadow:0 -3px 8px #0000002e}.monthly-bar-item:hover .monthly-bar-fill{opacity:1;transform:scaleY(1.03);transform-origin:bottom}.monthly-bar-label{margin-top:6px;color:#626863;font-size:12px;font-weight:650;transition:color .15s ease,font-weight .15s ease}.monthly-bar-item.is-current .monthly-bar-label{color:#1a1e1b;font-size:12.5px;font-weight:850}.monthly-bar-tooltip{position:absolute;top:-42px;left:50%;transform:translate(-50%) scale(.9);display:flex;flex-direction:column;align-items:center;padding:4px 8px;border-radius:6px;background:#1e2420;color:#fff;white-space:nowrap;opacity:0;pointer-events:none;transition:transform .15s ease,opacity .15s ease;z-index:10;box-shadow:0 4px 12px #0000002e}.monthly-bar-tooltip strong{font-size:10.5px}.monthly-bar-tooltip span{font-size:11.5px;font-weight:700}.monthly-bar-item:hover .monthly-bar-tooltip{opacity:1;transform:translate(-50%) scale(1)}.date-navigation__display.is-year{letter-spacing:-.045em}.annual-navigation-note{margin:11px 0 0;color:var(--muted);font-size:13px;font-weight:560}.annual-overview{display:grid;gap:16px;margin-top:22px}.annual-heading,.annual-months>header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.annual-heading span,.annual-months>header span{color:var(--green);font-size:13px;font-weight:720}.annual-heading h1,.annual-months>header h2{margin:3px 0 0;font-size:30px;font-weight:760;letter-spacing:-.04em}.annual-heading p{margin:0 0 3px;color:var(--muted);font-size:13px}.annual-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.annual-kpi{display:flex;min-height:132px;flex-direction:column;justify-content:center;gap:9px;padding:18px 20px;overflow:hidden;border:1px solid var(--rule);border-radius:10px;background:#fffefa}.annual-kpi>span{color:#4d554f;font-size:13px;font-weight:680}.annual-kpi>strong{overflow:hidden;color:#171b18;font-size:clamp(25px,2.7vw,38px);font-weight:780;letter-spacing:-.045em;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.annual-kpi>strong small{margin-right:4px;font-size:13px;font-weight:620;letter-spacing:0}.annual-kpi>small{color:var(--muted);font-size:12px}.annual-kpi--total{border-color:#a8c5ae;background:#edf4ed}.annual-kpi--total>span{color:var(--green)}.annual-kpi--high{background:#faf3e6}.annual-kpi--low{background:#f3edf5}.annual-chart{margin-top:0;padding:18px 22px 20px}.annual-chart .monthly-chart-bars{height:210px;padding-top:28px}.annual-chart .monthly-bar-track{max-width:34px}.annual-months{display:grid;gap:13px;padding:19px 20px 20px;border:1px solid var(--rule);border-radius:10px;background:#fbfaf6}.annual-months>header h2{font-size:22px}.annual-months>header>strong{color:#59605b;font-size:13px;font-weight:650}.annual-month-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.annual-month-card{--month-color: var(--green);position:relative;display:grid;min-height:112px;grid-template-columns:1fr auto;align-content:center;align-items:baseline;gap:8px 12px;padding:15px 16px 14px 19px;overflow:hidden;border:1px solid #dad9d2;border-radius:9px;background:#fffefa;text-align:left;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.annual-month-card:before{position:absolute;inset:0 auto 0 0;width:4px;background:var(--month-color);content:""}.annual-month-card:hover{border-color:color-mix(in srgb,var(--month-color) 55%,#dad9d2);box-shadow:0 8px 22px #23272314;transform:translateY(-1px)}.annual-month-card.is-current{border-color:color-mix(in srgb,var(--month-color) 70%,#dad9d2);background:color-mix(in srgb,var(--month-color) 7%,#fffefa);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--month-color) 28%,transparent)}.annual-month-card__month{color:var(--month-color);font-size:14px;font-weight:760}.annual-month-card>strong{grid-column:1 / -1;overflow:hidden;color:#1a1e1b;font-size:21px;font-weight:760;letter-spacing:-.035em;text-overflow:ellipsis;white-space:nowrap}.annual-month-card__status{color:var(--muted);font-size:11.5px;font-weight:560}.annual-month-card__progress{display:block;width:66px;height:6px;overflow:hidden;border-radius:999px;background:#e8e7e1}.annual-month-card__progress i{display:block;height:100%;border-radius:inherit;background:var(--month-color)}@media(max-width:1180px){.annual-kpis,.annual-month-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.annual-chart .monthly-chart-bars{height:180px}}
