
:root{--bg:#f5f6f2;--paper:#fff;--ink:#253d34;--muted:#849088;--line:#e8ece7;--green:#356b52;--sage:#e9f0e8;--orange:#d99a5a;--red:#b65851;--shadow:0 4px 22px #243b3205}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.6 -apple-system,BlinkMacSystemFont,'Segoe UI','Microsoft YaHei',sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #9cbd83;outline-offset:3px}button{color:inherit}#sidebar{width:238px;height:100vh;position:fixed;padding:31px 20px 20px;background:#fcfdf9;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:0 12px;font-size:26px;font-weight:650;letter-spacing:3px}.brand-symbol{display:grid;place-items:center;width:43px;height:43px;border-radius:13px;background:var(--ink);color:#d9e6b7;font-size:34px;font-weight:400}.brand small{display:block;font-size:8px;letter-spacing:1.5px;margin-top:0;font-weight:600;color:#889386}.workspace{display:flex;gap:10px;align-items:center;margin:32px 0 28px;padding:14px 12px;border:1px solid var(--line);border-radius:12px;font-size:12px;font-weight:600}.workspace small{display:block;font-size:10px;font-weight:400;color:var(--muted);margin-top:3px}.avatar{width:34px;height:34px;display:grid;place-items:center;background:#e7ebda;border-radius:50%;font-size:12px;color:#5b6844}.avatar.small{width:32px;height:32px}.status-dot{width:6px;height:6px;background:#7b9c75;border-radius:50%;display:inline-block;flex-shrink:0}.workspace>.status-dot{margin-left:auto}.nav-label{font-size:10px;letter-spacing:2px;color:#929b93;margin:0 14px 12px}nav{display:grid;gap:5px}nav a{display:flex;align-items:center;gap:14px;padding:12px 16px;border-radius:9px;color:#68766e;font-size:13px;transition:.15s}nav a:hover{background:#eef1e9}nav a.active{background:var(--ink);color:#fff}nav a.active .nav-dot{background:#c3d89f}.nav-dot{width:5px;height:5px;background:transparent;border-radius:100%;margin-left:auto}.icon{width:19px;height:19px;display:inline-block;vertical-align:middle;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.sidebar-bottom{margin-top:auto;padding:22px 8px 0}.sidebar-bottom button{background:none;border:0;color:#6d786f;font-size:12px;padding:10px 0}.local-note{border-top:1px solid var(--line);padding-top:18px;margin-top:10px;font-size:10px;color:#70816d}.local-note .status-dot{margin-right:5px}.local-note small{display:block;color:#a0a89e;margin-top:4px;font-size:10px}.main-shell{margin-left:238px}header{height:77px;display:flex;align-items:center;justify-content:space-between;padding:0 38px;border-bottom:1px solid var(--line);background:#fbfcf8}.breadcrumb{font-size:12px;color:#97a096}.breadcrumb span{margin:0 13px;color:#c4cbc1}.breadcrumb b{color:#56675d;font-weight:500}.header-right{display:flex;align-items:center;gap:20px;color:#8d988e;font-size:11px}main{max-width:1550px;padding:32px 38px 30px;margin:auto}.mobile-menu{display:none}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:22px}.eyebrow{color:#809279;font-size:10px;letter-spacing:2px;margin:0 0 7px}.page-heading h1{font-size:27px;letter-spacing:1px;font-weight:600;margin:0}.page-heading p.sub{color:#89958b;font-size:12px;margin:8px 0 0}.heading-actions{display:flex;align-items:center;gap:10px}.btn{border:1px solid #dfe5db;background:#fff;border-radius:8px;padding:9px 15px;font-size:12px;display:inline-flex;justify-content:center;align-items:center;gap:7px;white-space:nowrap}.btn:hover{background:#f2f5ef}.btn.primary{background:var(--ink);border-color:var(--ink);color:#fff}.btn.primary:hover{background:#3a5e4c}.btn.subtle{background:transparent;color:#6c7b70;border:0;padding:5px}.btn.danger{color:var(--red)}.month-picker{display:flex;align-items:center;border:1px solid #dfe5db;border-radius:8px;background:#fff;height:39px}.month-picker button{border:0;background:none;padding:7px;color:#8d9889}.month-picker input{border:0;background:transparent;width:128px;padding:4px;color:#516453;font-size:12px}.demo-banner{display:flex;align-items:center;gap:10px;padding:10px 15px;border:1px solid #e1e7d7;background:#eef2e7;border-radius:9px;margin-bottom:23px;font-size:11px;color:#728365}.demo-banner strong{color:#526c45;font-weight:600}.demo-banner button{margin-left:auto;font-size:11px}.live-banner{background:#f0f5f1;color:#6d8071}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:22px}.kpi{background:#fff;border:1px solid var(--line);border-radius:13px;padding:18px 21px;box-shadow:var(--shadow);position:relative}.kpi-top{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#7c897d}.kpi-top .icon-wrap{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#edf2e9;color:#65845d}.kpi:nth-child(2) .icon-wrap{background:#f9f1e7;color:#b78b5f}.kpi:nth-child(3) .icon-wrap{background:#ecf0f6;color:#7a8faa}.kpi:nth-child(4) .icon-wrap{background:#f3eff7;color:#9b8caf}.kpi-value{font-size:30px;font-weight:600;letter-spacing:-1px;margin:7px 0 8px;line-height:1.3;font-variant-numeric:tabular-nums}.kpi-value small{font-size:12px;color:#8a958a;font-weight:400;letter-spacing:0;margin-left:6px}.kpi-foot{font-size:10px;color:#99a192;display:flex;align-items:center;gap:6px}.pill{padding:2px 6px;border-radius:4px;font-size:10px;background:#edf3e9;color:#73876a}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(290px,1fr);gap:21px}.card{background:var(--paper);border:1px solid var(--line);border-radius:13px;padding:22px;box-shadow:var(--shadow);min-width:0}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:19px}.card h2{font-size:14px;font-weight:600;margin:0}.card .caption{color:#97a092;font-size:10px;margin:5px 0 0}.tabs{display:flex;padding:3px;border:1px solid #e7eadd;border-radius:6px;background:#f6f8f2;gap:2px}.tabs button{border:0;padding:4px 10px;border-radius:4px;background:none;font-size:10px;color:#94a08f}.tabs button.selected{background:white;color:#4c6548;box-shadow:0 1px 4px #0000000a}.legend{display:flex;gap:15px;font-size:10px;color:#8a9788}.legend span:before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--c);margin-right:6px}.trend-svg{display:block;width:100%;height:210px;overflow:visible}.trend-svg text{font-size:10px;fill:#a0a99c}.chart-empty{height:210px;display:grid;place-items:center;color:#9aa593;font-size:12px;border-bottom:1px dashed var(--line)}.chart-note{font-size:10px;color:#a0a996;margin:12px 0 0}.today-card{background:#f9fbf5;border-color:#e3e9db}.date-label{font-size:10px;color:#849578}.checklist{display:grid;gap:15px}.check-row{display:flex;gap:11px;align-items:center}.check-icon{display:grid;place-items:center;width:28px;height:28px;background:#e5eedc;border-radius:50%;color:#7d9a65;font-size:12px}.check-icon.pending{background:#ecefe7;color:#b1bba7}.check-text{font-size:12px;flex:1}.check-text small{display:block;font-size:10px;color:#9aa58f;margin-top:3px}.check-row .text-link{background:none;border:0;color:#8d9e7f;font-size:11px}.today-card .wide{width:100%;margin-top:22px;background:#e6eddc;color:#5f7750;border-color:#e0e8d4}.quote{border-top:1px solid #e3e9db;margin-top:18px;padding-top:15px;font-size:11px;color:#93a085;font-style:italic}.bottom-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:21px;margin-top:21px}.finance-total{display:flex;gap:28px;margin:0 0 18px}.finance-total small{display:block;color:#9ba393;font-size:10px}.finance-total strong{font-size:18px;font-weight:600;display:block;margin-top:2px}.expense-layout{display:flex;align-items:center;gap:20px}.donut{width:116px;height:116px;flex-shrink:0}.expense-legend{flex:1;display:grid;gap:10px}.expense-legend div{font-size:10px;display:flex;align-items:center;color:#87917f;gap:6px}.expense-legend div b{margin-left:auto;font-weight:500;color:#64745a}.dot{width:6px;height:6px;border-radius:50%}.goal-item{padding:0 0 15px;margin-bottom:14px;border-bottom:1px solid #f0f2eb}.goal-item:last-child{border:0;margin-bottom:0;padding:0}.goal-line{display:flex;justify-content:space-between;font-size:11px;gap:8px}.goal-line span{color:#98a18e;font-size:10px}.progress{height:5px;border-radius:9px;background:#edf1e7;margin:10px 0 6px;overflow:hidden}.progress i{display:block;background:#9bb584;height:100%;border-radius:9px}.goal-meta{display:flex;justify-content:space-between;font-size:9px;color:#a2aa99}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-top:15px}.calendar>span{height:23px;border-radius:4px;font-size:9px;display:grid;place-items:center;background:#f0f3ea;color:#b1b9a5}.calendar>span.done{background:#aac294;color:#fff}.calendar>span.strong{background:#6e9560;color:white}.calendar>span.empty{background:none}.calendar>span.weekday{background:none;height:16px;color:#a4ad99}.calendar-foot{display:flex;align-items:center;justify-content:space-between;font-size:9px;color:#a0aa94;margin-top:14px}.calendar-foot .scale{display:flex;gap:3px;align-items:center}.scale i{width:9px;height:9px;background:#edf1e6;border-radius:2px}.scale i:nth-child(2){background:#cbd9bc}.scale i:nth-child(3){background:#aac294}.scale i:nth-child(4){background:#6e9560}.mini-link{border:0;background:none;font-size:10px;color:#8b9b7d;padding:0}.section-description{font-size:12px;color:#8b9687;margin-bottom:20px}.table-tools{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.search{border:1px solid var(--line);border-radius:7px;padding:9px 12px;max-width:250px;outline:none;font-size:12px;background:#fbfcf9}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}th{text-align:left;font-weight:500;font-size:10px;color:#8c9986;background:#f7f9f3;padding:12px}td{padding:14px 12px;border-bottom:1px solid #eef1e9;color:#65765e}td.wrap{max-width:260px;white-space:normal;min-width:120px}td button{background:none;border:0;color:#8b9d7d;font-size:11px;padding:4px 6px}.empty-state{text-align:center;padding:60px 20px;color:#8a9a7c}.empty-state .icon{width:35px;height:35px;margin-bottom:12px}.empty-state h3{font-weight:500;color:#5a7150;margin:5px 0}.empty-state p{font-size:12px;margin:8px 0 22px}.module-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:20px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.settings-grid p{font-size:12px;color:#8b9782}.settings-grid .btn{margin-top:12px}footer{max-width:1550px;margin:auto;padding:8px 38px 24px;color:#a1aa9a;font-size:10px;display:flex;gap:12px}footer span:last-child{margin-left:auto}dialog{border:1px solid var(--line);border-radius:16px;padding:27px;width:min(650px,92vw);max-height:90vh;color:var(--ink);box-shadow:0 20px 100px #132d3330}dialog::backdrop{background:#172c2555;backdrop-filter:blur(4px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.dialog-head h2{font-size:21px;margin:0;font-weight:600}.icon-btn{border:0;background:#f1f4ed;border-radius:50%;width:32px;height:32px;font-size:22px;color:#85947b}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid label{font-size:11px;color:#7c8b73;display:grid;gap:6px}.form-grid label.full{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea{width:100%;padding:10px;border:1px solid #dfe6d8;border-radius:7px;background:#fcfdf9;color:#3a5330;outline:none;font-size:12px;min-width:0}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:#7e9c66;box-shadow:0 0 0 3px #86a57215}.form-grid textarea{resize:vertical;min-height:75px}.field-note{grid-column:1/-1;color:#94a087;font-size:11px;margin:0}.dialog-footer{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:20px;margin-top:24px}.form-error{color:var(--red);font-size:12px;margin:12px 0 0}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;padding:12px 22px;border-radius:10px;box-shadow:0 5px 30px #0002;z-index:100;font-size:12px;opacity:0;pointer-events:none;transition:.2s}#toast.show{opacity:1}.neg{color:var(--red)}.note-box{background:#f6f8f1;border-radius:8px;padding:14px 16px;color:#8c9a7e;font-size:11px;margin-bottom:20px}.insight-row{display:flex;gap:12px;margin-top:20px}.insight-row .card{flex:1}.insight-row h3{font-size:12px;margin:0 0 9px}.insight-row p{font-size:11px;color:#87977a;margin:0}.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.review-card h3{font-size:14px;margin:0 0 12px}.review-card p{white-space:pre-wrap;font-size:12px;color:#839177}.review-card b{font-size:11px;color:#556f48}.review-card .btn{margin-top:10px}.tag{background:#eef3e8;border-radius:4px;color:#7b906c;padding:3px 7px;font-size:10px}.tag.warm{background:#fbf0df;color:#b59a70}
@media(min-width:1500px){main{padding-top:38px}.trend-svg{height:245px}.kpi{padding:23px}.card{padding:25px}.calendar>span{height:28px}}@media(max-width:1180px){#sidebar{width:205px;padding:28px 14px}.main-shell{margin-left:205px}main{padding:27px 24px}header{padding:0 24px}.dashboard-grid{grid-template-columns:1.6fr 1fr}.bottom-grid{grid-template-columns:1fr 1fr}.bottom-grid>.card:last-child{grid-column:1/-1}.calendar{grid-template-columns:repeat(7,1fr)}.calendar>span{height:28px}.kpi{padding:15px}.kpi-value{font-size:26px}.heading-actions{gap:6px}}@media(max-width:850px){#sidebar{transform:translateX(-100%);transition:.2s;width:238px;box-shadow:10px 0 40px #0002}#sidebar.open{transform:translateX(0)}.main-shell{margin-left:0}.mobile-menu{display:block;border:0;background:none;color:#6b7f60;font-size:20px;margin-right:12px}header{height:65px}.breadcrumb{margin-right:auto}.header-right>span:first-child{display:none}.page-heading{align-items:flex-start}.heading-actions{flex-wrap:wrap;justify-content:flex-end}.kpi-grid{gap:12px}.kpi-value{font-size:23px}.kpi-top{font-size:10px}.kpi-top .icon-wrap{display:none}.dashboard-grid{grid-template-columns:1.4fr 1fr}.bottom-grid{gap:15px}.card{padding:18px}.header-right{gap:8px}}@media(max-width:620px){main{padding:22px 16px}.page-heading{flex-direction:column;gap:17px}.page-heading h1{font-size:25px}.heading-actions{width:100%;justify-content:space-between}.demo-banner{align-items:flex-start;gap:6px;flex-wrap:wrap}.demo-banner button{padding:0}.kpi-grid{grid-template-columns:repeat(2,1fr)}.kpi-value{font-size:28px}.kpi-top .icon-wrap{display:grid}.dashboard-grid,.bottom-grid,.settings-grid,.review-grid{grid-template-columns:1fr}.bottom-grid>.card:last-child{grid-column:auto}.card-head{gap:8px}.card-head h2{font-size:13px}.tabs button{padding:4px 7px}.trend-svg{height:200px}.module-stats{grid-template-columns:1fr;gap:10px}.module-stats .kpi{display:flex;align-items:center;gap:20px}.module-stats .kpi-value{margin:0;font-size:23px}.module-stats .kpi-foot{margin-left:auto}.form-grid{grid-template-columns:1fr}.form-grid label.full{grid-column:auto}dialog{padding:20px}.insight-row{flex-direction:column}footer{padding:6px 16px 20px;flex-wrap:wrap}footer span:last-child{margin-left:0;flex-basis:100%}.expense-layout{justify-content:center;gap:35px}.expense-legend{max-width:200px}.table-tools{flex-wrap:wrap}}

