:root{--bg:#f6f6f1;--paper:#fff;--ink:#202e2a;--muted:#7c8580;--line:#e6e9e1;--green:#234f42;--orange:#bd7657;--mint:#e7eee5;--radius:17px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,select{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #aacbbc;outline-offset:3px}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.shell{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:100vh}.sidebar{background:#fff;border-right:1px solid var(--line);padding:32px 23px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.brand{font-weight:650;font-size:22px;letter-spacing:-1px;display:block;position:relative;padding:0 0 0 48px;line-height:1.3}.brand-mark{background:var(--green);color:white;font:30px Georgia,serif;border-radius:12px;width:38px;height:38px;display:inline-grid;place-items:center}.brand .brand-mark{position:absolute;left:0;top:0}.brand-small{display:block;letter-spacing:1.3px;font-size:7px;font-weight:500;color:var(--muted);margin-top:4px}nav{margin-top:54px;display:grid;gap:9px}.nav-item{border:0;background:none;color:#727c75;text-align:left;padding:13px 14px;border-radius:9px;font-size:13px;display:flex;align-items:center;gap:13px}.nav-item>span{font-size:20px;width:20px;text-align:center}.nav-item:hover{background:#f6f8f3}.nav-item.active{background:#edf2e9;color:var(--green);font-weight:600}.sidebar-note{margin-top:auto;background:#f4f5ed;border:1px solid #e8ecdf;padding:20px 16px;border-radius:12px}.sidebar-note>span{font-size:9px;color:var(--muted);letter-spacing:1px}.sidebar-note p{font:21px/1.3 Georgia,serif;margin:14px 0}.sidebar-note a{font-size:11px;font-weight:600;color:var(--green)}.family-avatar{display:flex;align-items:center;gap:10px;margin-top:25px;font-size:10px}.family-avatar>span{background:#e8e4d6;border:2px solid #fff;width:29px;height:29px;border-radius:50%;display:grid;place-items:center;position:relative;margin-right:8px}.family-avatar>span>span{position:absolute;left:16px;top:5px;border:2px solid white;border-radius:50%;width:25px;height:25px;background:#d6e4d6;display:grid;place-items:center}.family-avatar small{display:block;margin-top:5px;font-size:9px;color:var(--muted)}main{padding:0 38px;max-width:1600px;width:100%;min-width:0}.topbar{height:80px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:12px}.crumb{font-size:11px;color:var(--muted)}.crumb>span:first-child{margin:0 12px;color:#bcc2b9}.crumb>span:last-child{color:var(--ink)}.top-actions{display:flex;align-items:center;gap:13px}.sync-state{font-size:10px;color:var(--muted)}.sync-state:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#8dab85;margin-right:7px}.sync-state.stale:before{background:#c88463}.icon-button{width:29px;height:29px;background:transparent;border:1px solid var(--line);border-radius:8px;font-size:20px;color:var(--green)}.text-button{border:0;background:transparent;color:var(--muted);font-size:11px;padding:6px}.text-button:hover{color:var(--green)}.page-header{display:flex;align-items:center;justify-content:space-between;padding:34px 0 28px;gap:20px}.eyebrow{font-size:9px;font-weight:600;letter-spacing:1.5px;color:var(--muted)}h1{font:43px/1.15 Georgia,"Times New Roman",serif;letter-spacing:-1.4px;margin:10px 0 10px}h2{font:23px/1.2 Georgia,"Times New Roman",serif;letter-spacing:-.5px;margin:7px 0 0}h3{font:29px/1.3 Georgia,serif;font-weight:400}.page-header p{font-size:12px;color:var(--muted);margin:0}.period-control{padding:10px 13px;background:#fff;border:1px solid var(--line);border-radius:10px;min-width:180px}.period-control>span{display:block;font-size:8px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:6px}select{border:0;background:white;color:var(--ink);font-size:12px;width:100%;cursor:pointer}.kpi-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:17px}.kpi{background:#fff;border:1px solid var(--line);padding:24px;border-radius:var(--radius);min-height:160px;position:relative;overflow:hidden}.kpi-label{font-size:9px;letter-spacing:1px;color:var(--muted);display:flex;justify-content:space-between;align-items:center;gap:8px}.kpi-label>span{font-size:20px}.kpi strong{display:block;font-size:31px;letter-spacing:-1.4px;font-weight:550;margin:22px 0 13px;position:relative;z-index:1;font-variant-numeric:tabular-nums}.kpi-foot{font-size:10px;color:var(--muted);position:relative;z-index:1}.balance-card{background:#224f43;color:#fff;border-color:#224f43}.balance-card .kpi-label,.balance-card .kpi-foot{color:#cad9ce}.balance-lines{position:absolute;right:-35px;bottom:-68px;width:220px;height:220px;border:1px solid #ffffff12;border-radius:50%;box-shadow:0 0 0 18px #ffffff08,0 0 0 36px #ffffff06,0 0 0 54px #ffffff04}.balance-note{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:10px;margin:13px 0 24px}.balance-note p{margin:0;line-height:1.5}.balance-note>span{font-size:14px}.overview-grid{display:grid;grid-template-columns:1.8fr 1fr;gap:20px;margin-bottom:20px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;min-width:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:23px}.pill{border:1px solid var(--line);border-radius:20px;padding:6px 10px;font-size:9px;color:var(--muted);white-space:nowrap}.category-layout{display:grid;grid-template-columns:190px minmax(0,1fr);gap:24px;align-items:center;min-height:225px}.donut-wrap{position:relative;width:190px;height:190px}.donut-wrap svg{width:100%;height:100%;transform:rotate(-90deg)}.donut-center{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px}.donut-center small{font-size:9px;color:var(--muted)}.donut-center strong{font-size:20px;letter-spacing:-.6px}.donut-center>span{font-size:8px;color:#a3aaa2}.category-list{display:grid;gap:12px;max-height:245px;overflow:auto;padding-right:5px}.category-item{display:grid;grid-template-columns:8px 1fr auto;gap:8px;align-items:center;font-size:10px}.category-dot{width:7px;height:7px;border-radius:50%;background:var(--dot-color,#7b9474)}.category-item strong{font-size:10px;font-weight:550;white-space:nowrap}.category-item small{display:block;color:#99a195;font-size:8px;margin-top:3px}.section-link{margin-top:20px;padding-top:15px;border:0;border-top:1px solid var(--line);width:100%;text-align:left;background:transparent;display:flex;justify-content:space-between;color:var(--muted);font-size:10px}.consultant-teaser{background:#eef0e2;border-color:#e6e9d8;position:relative;display:flex;flex-direction:column}.ai-badge{font-size:9px;letter-spacing:1px;color:#6d7b54}.consultant-teaser h2{font-size:34px;line-height:1.05;letter-spacing:-1px;margin:21px 0 14px}.consultant-teaser p{font-size:11px;line-height:1.7;color:#79806c;max-width:260px;margin:0 0 15px}.teaser-prompts{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:22px}.teaser-prompts button{font-size:9px;padding:7px 9px;border:1px solid #d8ddc8;border-radius:6px;background:transparent;color:#637152}.button{border:0;padding:13px 17px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;gap:20px;font-size:11px;font-weight:550}.primary{background:var(--green);color:white}.primary:hover{background:#316451}.secondary{border:1px solid var(--line);color:var(--green);background:#fff}.consultant-teaser>.button{margin-top:auto;justify-content:space-between}.consultant-teaser>small{font-size:8px;color:var(--muted);text-align:center;margin-top:12px}.second-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:20px;margin-bottom:20px}.chart-legend{display:flex;gap:12px;font-size:8px}.chart-legend span:first-child{color:#497154}.chart-legend span:last-child{color:#c48f6a}.month-chart{display:grid;gap:20px;min-height:115px}.month-row{display:grid;grid-template-columns:88px 1fr;gap:12px;align-items:center}.month-name{font-size:10px;text-transform:capitalize}.month-name small{display:block;color:var(--muted);font-size:8px;margin-top:5px}.month-bars{display:grid;gap:7px}.bar-row{display:grid;grid-template-columns:1fr 90px;align-items:center;gap:8px}.bar-track{height:10px;background:#f5f6f1;border-radius:3px;overflow:hidden}.bar{height:100%;border-radius:3px;background:#6b8a61;min-width:2px}.bar.expense{background:#cc9a75}.bar-amount{text-align:right;font-size:9px;color:var(--muted)}.micro{font-size:9px;line-height:1.7;color:var(--muted);margin:16px 0 0}.reserve-item{display:flex;align-items:center;justify-content:space-between;font-size:11px;padding:11px 0;border-bottom:1px solid var(--line);gap:10px}.reserve-item small{display:block;font-size:9px;color:var(--muted);margin-top:5px}.reserve-item strong{white-space:nowrap;font-size:12px;font-weight:550}.reserve-total,.available-row{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:10px;padding-top:16px}.reserve-total strong{font-size:16px;font-weight:550}.available-row{color:var(--green)}.available-row strong{font-size:17px}.income-panel{margin-bottom:20px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;font-size:11px;text-align:left}th{font-size:9px;letter-spacing:.3px;color:#98a08e;font-weight:500;border-bottom:1px solid var(--line);padding:11px 12px 14px 0}td{border-bottom:1px solid #eff1eb;padding:15px 12px 15px 0;vertical-align:top;line-height:1.5}tbody tr:last-child td{border-bottom:0}.right{text-align:right;white-space:nowrap}.green{color:#426d4b}.orange{color:var(--orange)}.money-income{color:#426d4b;font-variant-numeric:tabular-nums}.money-expense{color:#755c4b;font-variant-numeric:tabular-nums}.description{min-width:180px;max-width:370px}.description small{display:block;font-size:9px;color:var(--muted);margin-top:4px}.tag{font-size:9px;padding:4px 7px;border-radius:5px;background:#f2f4ed;color:#7c846f;display:inline-block;white-space:nowrap}.operation-toolbar{display:grid;grid-template-columns:1fr 150px 180px;gap:14px}.operation-toolbar select{border:1px solid var(--line);border-radius:9px;padding:12px}.search-box{display:flex;gap:10px;border:1px solid var(--line);border-radius:9px;padding:10px 13px}.search-box>span{font-size:22px;color:var(--muted)}.search-box input{background:transparent;min-width:0;width:100%;border:0;font-size:11px;outline:none}.operation-summary{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);padding:22px 0 10px}.operation-summary strong{font-weight:500;color:var(--ink)}.payment-list{display:grid;gap:0}.payment-row{display:grid;grid-template-columns:40px 1fr auto;gap:15px;padding:18px 0;border-bottom:1px solid var(--line);align-items:center}.payment-icon{background:#f1f3eb;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:var(--green)}.payment-row h3{font-family:inherit;font-size:12px;margin:0 0 6px;font-weight:550}.payment-row p{font-size:10px;color:var(--muted);margin:0}.payment-amount{text-align:right;font-size:14px;font-weight:550}.payment-amount small{display:block;font-size:9px;margin-top:7px;font-weight:400}.paid{color:#6e8b5d}.unpaid{color:#b68b5b}.empty-state{padding:25px 0;color:var(--muted);font-size:12px;line-height:1.7}.account-line{display:flex;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid var(--line);font-size:11px}.account-line small{display:block;font-size:9px;color:var(--muted);margin-top:5px}.account-line strong{font-size:15px;font-weight:500;white-space:nowrap}.chat-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:20px;align-items:start}.chat-main{padding:0;overflow:hidden;display:flex;flex-direction:column;min-height:580px}.chat-heading{display:flex;align-items:center;gap:13px;padding:22px;border-bottom:1px solid var(--line)}.ai-orb{background:#edf0e4;width:42px;height:42px;display:grid;place-items:center;border-radius:13px;color:#5c7754;font-size:25px;flex-shrink:0}.chat-heading h2{font-size:23px;margin:0}.chat-heading p{font-size:10px;color:var(--muted);margin:6px 0 0}.chat-heading>.text-button{margin-left:auto}.chat-messages{padding:25px;display:flex;flex-direction:column;gap:17px;min-height:280px;max-height:550px;overflow:auto}.assistant-message,.user-message{padding:16px 18px;border-radius:12px;font-size:12px;line-height:1.9;max-width:92%;white-space:pre-wrap;overflow-wrap:anywhere}.assistant-message{background:#f1f4eb;align-self:flex-start;border-bottom-left-radius:3px}.user-message{background:#214d41;color:#fff;align-self:flex-end;border-bottom-right-radius:3px}.chat-suggestions{display:flex;flex-wrap:wrap;gap:7px;padding:0 25px 15px}.chat-suggestions button{background:transparent;color:#7d886d;border:1px solid var(--line);border-radius:16px;padding:8px 11px;font-size:9px}#chat-form{display:flex;align-items:center;gap:10px;border:1px solid #dce2d4;border-radius:12px;margin:0 20px 10px;padding:10px 12px}textarea{width:100%;resize:none;border:0;outline:0;font-size:12px;line-height:1.6;background:transparent}.send-button{background:var(--green);border:0;border-radius:9px;width:35px;height:35px;color:white;font-size:21px;flex-shrink:0}.chat-disclaimer{text-align:center;font-size:9px;line-height:1.6;color:var(--muted);padding:0 15px 18px}.chat-context h3{margin:16px 0 25px}.context-row{font-size:11px;padding:14px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:8px}.context-row strong{font-size:12px;font-weight:550}.chat-context .button{width:100%;margin-top:25px}.page-footer{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding:22px 0;margin-top:30px;font-size:8px;letter-spacing:.2px;color:#a2a997}.error-banner{background:#faede7;color:#a25e40;border:1px solid #edd6c8;padding:13px;border-radius:10px;font-size:12px;margin-bottom:20px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.login-screen{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at 80% 10%,#e0e7d8 0,transparent 60%),#f6f6ef;padding:35px}.login-card{width:min(100%,510px);background:#fff;padding:48px;border:1px solid var(--line);border-radius:24px;box-shadow:0 25px 100px #284b3c08}.login-card>.brand-mark{width:50px;height:50px;font-size:39px;border-radius:15px;margin-bottom:35px}.login-card h1{font-size:45px;line-height:1.1;margin:20px 0}.login-card>p{color:var(--muted);font-size:13px;line-height:1.8;margin-bottom:25px}.login-card .button{width:100%;padding:16px}.login-card .micro{font-size:10px;margin-bottom:0}.login-foot{position:fixed;bottom:25px;font-size:10px;color:var(--muted)}
@media(min-width:1500px){main{padding:0 50px}.kpi strong{font-size:38px}.category-layout{grid-template-columns:220px 1fr}.donut-wrap{width:215px;height:215px}.category-item{font-size:12px}.category-item strong{font-size:11px}.category-list{gap:15px}}
@media(max-width:1150px){.shell{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding:25px 15px}.brand{font-size:18px}.brand-small{font-size:6px}.family-avatar{font-size:8px}main{padding:0 24px}.category-layout{grid-template-columns:1fr;gap:15px}.donut-wrap{margin:auto}.category-list{max-height:190px}.consultant-teaser h2{font-size:31px}.kpi{padding:19px}.kpi strong{font-size:26px}.chat-layout{grid-template-columns:1fr}.chat-context{display:none}.panel{padding:20px}.chat-main{padding:0}.overview-grid{grid-template-columns:1.5fr 1fr}}
@media(max-width:780px){.shell{display:block}.sidebar{position:sticky;top:0;height:auto;padding:12px 18px;z-index:10;display:flex;flex-direction:row;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);border-right:0;box-shadow:0 2px 15px #183a2d05}.brand{font-size:16px;padding-left:37px;white-space:nowrap}.brand .brand-mark{width:28px;height:28px;font-size:23px;border-radius:9px}.brand-small{display:none}nav{display:flex;gap:3px;margin:0}.nav-item{padding:8px;font-size:0;gap:0}.nav-item>span{font-size:23px}.sidebar-note,.family-avatar{display:none}main{padding:0 18px}.topbar{height:53px}.crumb{font-size:9px}.sync-state{font-size:8px}.top-actions{gap:7px}.page-header{padding:25px 0 22px;align-items:flex-start}.page-header h1{font-size:35px}.page-header p{font-size:10px;line-height:1.6;max-width:230px}.period-control{min-width:130px;max-width:145px;padding:9px;margin-top:8px}.period-control select{font-size:10px}.eyebrow{font-size:8px;letter-spacing:1px}.kpi-grid{gap:10px;grid-template-columns:1fr 1fr}.balance-card{grid-column:1/-1;min-height:150px}.kpi{padding:18px;min-height:135px;border-radius:13px}.kpi strong{font-size:27px;margin:18px 0 9px}.balance-card strong{font-size:38px}.kpi-label{font-size:8px;letter-spacing:.6px}.kpi-foot{font-size:9px}.balance-note{font-size:9px;align-items:flex-start;margin:12px 0 20px}.overview-grid,.second-grid{grid-template-columns:1fr;gap:15px;margin-bottom:15px}.category-layout{grid-template-columns:170px 1fr;gap:15px;min-height:210px}.donut-wrap{width:170px;height:170px}.donut-center strong{font-size:18px}.category-list{max-height:220px}.panel{padding:20px;border-radius:14px}.panel-head{margin-bottom:18px}h2{font-size:22px}.category-item{font-size:9px;gap:5px}.category-item strong{font-size:9px}.consultant-teaser h2{font-size:33px}.consultant-teaser p{max-width:none;font-size:12px}.consultant-teaser h2 br{display:none}.consultant-teaser>.button{margin-top:0}.teaser-prompts{margin-bottom:15px}.month-chart{gap:17px}.income-panel{margin-bottom:15px}.operation-toolbar{grid-template-columns:1fr 1fr;gap:10px}.search-box{grid-column:1/-1}.operation-toolbar select{font-size:10px;padding:10px}.operation-summary{font-size:10px}.payment-row{gap:10px;grid-template-columns:33px 1fr auto}.payment-icon{width:31px;height:31px}.payment-amount{font-size:13px}.payment-row p{font-size:9px}.page-footer{flex-wrap:wrap;font-size:8px;line-height:1.5;margin-top:23px}.page-footer>span:last-child{display:none}.chat-messages{padding:17px;max-height:450px}.chat-heading{padding:17px}.chat-heading h2{font-size:20px}.chat-heading p{font-size:9px}.chat-heading>.text-button{font-size:8px}.chat-suggestions{padding:0 17px 15px}.assistant-message,.user-message{font-size:12px;max-width:98%}.chat-main{padding:0;min-height:600px}#chat-form{margin:0 13px 10px}.login-card{padding:32px}.login-card h1{font-size:37px}.login-screen{padding:20px}.login-foot{font-size:9px}}
@media(max-width:390px){.category-layout{grid-template-columns:1fr}.category-list{max-height:none}.kpi strong{font-size:24px}.balance-card strong{font-size:36px}.page-header{gap:10px}.page-header h1{font-size:32px}.period-control{min-width:117px}.topbar .crumb{max-width:130px}.login-card{padding:26px}}

/* Phone layout: labelled navigation, readable cards and no wide data tables. */
@media(max-width:780px){
  html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:75px}
  body{min-width:0}
  .shell{min-height:100svh}
  .sidebar{padding:12px max(16px,env(safe-area-inset-right)) 12px max(16px,env(safe-area-inset-left));height:54px}
  .brand{font-size:19px;padding-left:39px}
  .brand .brand-mark{width:30px;height:30px;font-size:25px}
  .sidebar nav{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;z-index:30;padding:7px max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:#fffffff5;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid #dfe5d8;box-shadow:0 -4px 20px #173e2d06}
  .nav-item{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-height:53px;padding:6px 2px;font-size:10px;text-align:center;white-space:nowrap;border-radius:10px;line-height:1.2}
  .nav-item>span{font-size:23px;width:auto;line-height:1}
  .nav-item.active{background:#eaf1e4}
  main{padding:0 max(16px,env(safe-area-inset-right)) calc(90px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));overflow-wrap:break-word}
  .topbar{height:auto;min-height:58px;gap:8px}
  .crumb{min-width:0;font-size:10px;line-height:1.6}
  .crumb>span:first-child{margin:0 5px}
  .top-actions{gap:6px;flex-shrink:0}
  .sync-state{font-size:9px}
  .icon-button{height:44px;width:44px;font-size:25px}
  .text-button{font-size:12px;min-height:44px;padding:9px 8px}
  .page-header{display:grid;grid-template-columns:1fr;gap:18px;padding:25px 0 20px}
  .page-header h1{font-size:37px;margin:10px 0 12px}
  .page-header p{font-size:13px;max-width:none;line-height:1.6}
  .eyebrow{font-size:10px;letter-spacing:1px;line-height:1.5}
  .period-control{margin:0;min-width:0;max-width:none;width:100%;padding:12px 14px}
  .period-control>span{font-size:10px;letter-spacing:.8px;margin-bottom:8px}
  input,select,textarea,.period-control select,.operation-toolbar select,.search-box input{font-size:16px}
  select{min-height:28px}
  .kpi-grid{gap:12px}
  .kpi{padding:20px;min-height:144px;min-width:0}
  .kpi-label{font-size:10px;letter-spacing:.5px;line-height:1.5;align-items:flex-start}
  .kpi strong{font-size:clamp(22px,3.9vw,32px);letter-spacing:-1px;white-space:nowrap}
  .balance-card{min-height:165px}
  .balance-card strong{font-size:clamp(30px,7.5vw,40px);letter-spacing:-1.3px}
  .kpi-foot{font-size:11px;line-height:1.5}
  .balance-note{font-size:11px;gap:9px;margin:15px 0 22px;line-height:1.7}
  .balance-note>span{flex-shrink:0;font-size:16px}
  .panel{padding:20px;min-width:0}
  .panel-head{flex-wrap:wrap;align-items:flex-start;gap:12px;margin-bottom:20px}
  h2{font-size:25px;line-height:1.2}
  .pill{font-size:11px;padding:7px 10px;max-width:100%;white-space:normal;line-height:1.4}
  .category-layout{grid-template-columns:minmax(0,1fr);gap:25px;min-height:0}
  .donut-wrap{width:210px;height:210px;margin:0 auto}
  .donut-center strong{font-size:22px}
  .donut-center small{font-size:11px}
  .donut-center>span{font-size:10px}
  .category-list{max-height:none;overflow:visible;gap:16px;padding:0}
  .category-item{grid-template-columns:8px minmax(0,1fr) auto;gap:10px;font-size:13px;align-items:start}
  .category-dot{margin-top:5px}
  .category-item strong{font-size:13px;font-weight:600;line-height:1.5}
  .category-item small{font-size:11px;margin-top:4px}
  .section-link{font-size:13px;min-height:48px;padding:17px 0 0;margin-top:22px}
  .consultant-teaser h2{font-size:35px;line-height:1.1}
  .consultant-teaser p{font-size:14px;line-height:1.7}
  .ai-badge{font-size:11px}
  .teaser-prompts{gap:9px}
  .teaser-prompts button{font-size:12px;min-height:44px;padding:10px 12px}
  .button{font-size:14px;min-height:48px;padding:14px 17px}
  .consultant-teaser>small{font-size:11px;line-height:1.6}
  .chart-legend{font-size:11px;gap:12px}
  .month-row{grid-template-columns:1fr;gap:10px}
  .month-name{font-size:13px;display:flex;align-items:center;justify-content:space-between;gap:8px}
  .month-name small{font-size:10px;margin:0}
  .bar-row{grid-template-columns:minmax(0,1fr) 112px;gap:10px}
  .bar-track{height:13px}
  .bar-amount{font-size:11px}
  .micro{font-size:11px;line-height:1.75}
  .reserve-item{font-size:13px;line-height:1.5;padding:13px 0;align-items:flex-start}
  .reserve-item>div{min-width:0}
  .reserve-item small{font-size:11px;line-height:1.5}
  .reserve-item strong{font-size:14px}
  .reserve-total,.available-row{font-size:12px;line-height:1.5;align-items:flex-start}
  .reserve-total>span,.available-row>span{min-width:0;max-width:55%}
  .reserve-total strong,.available-row strong{font-size:17px;white-space:nowrap}
  .income-panel .panel-head>strong{font-size:18px}
  .table-scroll{overflow:visible;min-width:0}
  table,tbody{display:block;width:100%;min-width:0}
  thead{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  tbody{display:grid;gap:12px}
  tbody tr{display:block;border:1px solid var(--line);border-radius:12px;padding:10px 13px;background:#fdfefa;min-width:0}
  tbody td{display:grid;grid-template-columns:77px minmax(0,1fr);column-gap:10px;row-gap:4px;align-items:start;padding:8px 0;border:0;min-width:0;font-size:13px;line-height:1.65;white-space:normal;text-align:left;overflow-wrap:anywhere;max-width:none}
  tbody td[data-label]::before{content:attr(data-label);font-size:11px;color:var(--muted);line-height:1.9}
  tbody td.description{min-width:0;max-width:none}
  tbody td.description small{grid-column:2;font-size:11px;margin:0;line-height:1.6}
  tbody td.right{font-size:16px;font-weight:600;border-top:1px solid var(--line);margin-top:5px;padding-top:11px;text-align:right;white-space:nowrap}
  tbody td.right::before{text-align:left;font-weight:400}
  tbody td.empty-state{display:block;font-size:13px;padding:12px 0}
  tbody td .tag{font-size:11px;white-space:normal;padding:5px 8px;justify-self:start;max-width:100%;line-height:1.5}
  .operation-toolbar{grid-template-columns:1fr;gap:12px}
  .search-box{grid-column:auto;min-height:48px;padding:11px 13px;align-items:center}
  .search-box input{line-height:1.5;min-height:25px}
  .operation-toolbar select{min-height:48px;padding:11px}
  .operation-summary{flex-direction:column;gap:9px;font-size:13px;line-height:1.6;padding:20px 0 15px}
  .operation-summary strong{font-size:13px}
  .payment-row{grid-template-columns:32px minmax(0,1fr);gap:12px;padding:18px 0;align-items:start}
  .payment-icon{width:32px;height:32px;margin-top:2px}
  .payment-row h3{font-size:14px;line-height:1.5;overflow-wrap:anywhere}
  .payment-row p{font-size:11px;line-height:1.7}
  .payment-amount{grid-column:2;text-align:left;font-size:19px}
  .payment-amount small{font-size:11px;line-height:1.6;margin-top:5px}
  .account-line{font-size:13px;line-height:1.6;align-items:flex-start}
  .account-line>div{min-width:0}
  .account-line small{font-size:11px;line-height:1.6}
  .account-line strong{font-size:15px}
  .empty-state{font-size:13px;line-height:1.8}
  .chat-main{padding:0;min-height:0}
  .chat-heading{padding:17px 15px;gap:10px;flex-wrap:wrap}
  .chat-heading>div{min-width:0;flex:1}
  .chat-heading h2{font-size:23px;line-height:1.2}
  .chat-heading p{font-size:11px;line-height:1.5}
  .chat-heading>.text-button{margin:0 0 0 52px;padding-left:0;min-height:35px;font-size:12px}
  .chat-messages{padding:17px 14px;min-height:200px;max-height:none;overflow:visible;gap:15px}
  .assistant-message,.user-message{max-width:100%;padding:14px 15px;font-size:14px;line-height:1.8}
  .chat-suggestions{padding:0 14px 17px;gap:8px}
  .chat-suggestions button{font-size:12px;line-height:1.5;min-height:44px;padding:10px 12px;text-align:left;border-radius:10px}
  #chat-form{margin:0 12px 13px;padding:10px;gap:9px;scroll-margin-bottom:110px}
  #question{font-size:16px;line-height:1.5;min-height:70px;max-height:180px}
  .send-button{width:44px;height:44px;font-size:25px;align-self:flex-end}
  .chat-disclaimer{font-size:11px;line-height:1.7;padding:0 15px 18px}
  .page-footer{font-size:10px;line-height:1.7;display:grid;gap:6px;padding:20px 0}
  .login-screen{padding:22px 16px calc(70px + env(safe-area-inset-bottom));min-height:100svh}
  .login-card{padding:30px 24px;max-width:460px}
  .login-card h1{font-size:39px;line-height:1.12}
  .login-card>p{font-size:14px;line-height:1.8}
  .login-card .micro{font-size:12px}
  .login-foot{position:static;align-self:end;text-align:center;font-size:11px;line-height:1.7;margin-top:22px}
}
@media(max-width:480px){
  .kpi-grid{grid-template-columns:minmax(0,1fr)}
  .balance-card{grid-column:auto}
  .kpi{min-height:130px}
  .kpi strong{font-size:33px;letter-spacing:-1.2px}
  .balance-card strong{font-size:38px}
  .topbar .crumb{max-width:100px}
  .sync-state{font-size:8px}
  .panel{padding:18px}
  .chat-main{padding:0}
  .account-line{flex-wrap:wrap;row-gap:6px}
  .account-line strong{max-width:100%}
  .chat-heading h2{font-size:22px}
}
@media(max-width:350px){
  main{padding-left:12px;padding-right:12px}
  .panel{padding:15px}
  .chat-main{padding:0}
  .nav-item{font-size:9px}
  .topbar .crumb{display:none}
  .top-actions{width:100%;justify-content:flex-end}
  .sync-state{margin-right:auto;font-size:10px}
  .kpi strong{font-size:30px}
  .balance-card strong{font-size:35px}
  .category-item{font-size:12px;gap:7px}
  .category-item strong{font-size:12px}
  .reserve-total,.available-row{flex-wrap:wrap;gap:8px}
  .reserve-total>span,.available-row>span{max-width:100%}
  tbody td{grid-template-columns:65px minmax(0,1fr);gap:8px;font-size:12px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

.monthly-plan-panel{margin-bottom:24px;background:#fcfdf8;border-color:#dce5d4}
.plan-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:22px 0 25px}
.plan-metric{background:#f0f3e9;padding:17px 14px;border-radius:11px;min-width:0}
.plan-metric small{font-size:10px;color:#74806c;display:block;line-height:1.5}
.plan-metric strong{display:block;font-size:23px;font-weight:550;letter-spacing:-.6px;margin-top:11px;white-space:nowrap}
.plan-metric.target{background:#234f42;color:white}
.plan-metric.target small{color:#cfddcb}
.plan-details{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.plan-details h3,.repair-calculator h3{font-size:21px;margin:0 0 12px}
.plan-details .account-line{font-size:11px}
.plan-details .account-line strong{font-size:13px}
.repair-conclusion{margin-top:22px;padding:20px;background:#edf1e1;border-radius:12px;font-size:12px;line-height:1.8}
.repair-conclusion strong{display:block;color:var(--green);font-size:17px;margin-bottom:9px}
.repair-conclusion p{margin:7px 0}
.repair-calculator{margin-top:25px;padding-top:23px;border-top:1px solid var(--line)}
.repair-inputs{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.repair-inputs label{display:grid;gap:8px;font-size:11px;color:var(--muted);line-height:1.5}
.repair-inputs input{width:100%;min-width:0;padding:12px;border:1px solid #dce4d3;border-radius:9px;background:white;color:var(--ink);font-size:14px}
.repair-inputs input::placeholder{font-size:10px}
.repair-scenario{padding-top:15px;font-size:12px;line-height:1.8;color:var(--green)}
.repair-scenario.shortfall{color:#a35e3f}
.actual-heading{margin:28px 0 18px}
.utility-area-box{margin-top:25px;padding-top:24px;border-top:1px solid var(--line)}
@media(max-width:1150px){.plan-metrics{grid-template-columns:1fr 1fr}.plan-metric strong{font-size:25px}}
@media(max-width:780px){.plan-metrics{gap:10px;margin:20px 0 24px}.plan-metric{padding:16px 13px}.plan-metric small{font-size:11px}.plan-metric strong{font-size:23px}.plan-details{grid-template-columns:minmax(0,1fr);gap:24px}.plan-details h3,.repair-calculator h3{font-size:23px}.plan-details .account-line{font-size:13px}.plan-details .account-line strong{font-size:14px}.repair-conclusion{font-size:14px;line-height:1.8;padding:17px}.repair-conclusion strong{font-size:19px}.repair-inputs{grid-template-columns:minmax(0,1fr);gap:17px}.repair-inputs label{font-size:13px}.repair-inputs input{font-size:16px;min-height:48px}.repair-inputs input::placeholder{font-size:11px}.repair-scenario{font-size:14px}.actual-heading{line-height:1.7}}
@media(max-width:480px){.plan-metrics{grid-template-columns:minmax(0,1fr)}.plan-metric strong{font-size:29px}.plan-metric{padding:18px}.plan-metric small{font-size:12px}}
.change-preview{margin:16px 0;padding:14px;border:1px solid #c6d6ce;border-radius:12px;overflow-wrap:anywhere}.change-group{margin:10px 0 10px 12px}.change-controls{display:flex;gap:10px;flex-wrap:wrap}.change-controls button{min-height:44px}.change-preview .micro{white-space:pre-wrap}
.rental-summary{margin-bottom:22px}.rental-summary .plan-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.rental-properties{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-bottom:22px}.rental-property{min-width:0}.rental-property-head{display:flex;gap:15px;align-items:center}.rental-property-head h2{margin:0 0 6px}.rental-property-head p{margin:0}.rental-house{display:grid;place-items:center;width:65px;height:65px;flex-shrink:0;border-radius:18px;background:#edf2e9;color:var(--green)}.rental-house svg{width:43px;height:43px}.rental-monthly{display:grid;gap:5px;padding:24px 0 15px}.rental-monthly strong{font-size:34px;font-weight:550;letter-spacing:-1px}.rental-tenants .account-line{padding:16px 0}.rental-rule{background:#f4f6ef;padding:13px 15px;border-radius:10px;font-size:13px;line-height:1.6}.rental-property-actual{border-top:1px solid var(--line);margin-top:22px;padding-top:15px}.rental-property-actual h3{font-size:14px}.rental-property .account-line{gap:12px}.rental-property .account-line>div{min-width:0;overflow-wrap:anywhere}.rental-property .account-line strong{flex-shrink:0}.rental-actual .panel-head{gap:12px;flex-wrap:wrap}
@media(max-width:780px){.rental-properties{grid-template-columns:1fr;gap:16px}.rental-summary .plan-metrics{grid-template-columns:1fr}.rental-house{width:56px;height:56px}.rental-monthly strong{font-size:30px}.rental-property .account-line{font-size:13px;align-items:flex-start}.rental-property .account-line strong{font-size:13px}.rental-property .account-line small{font-size:11px;line-height:1.6}.rental-actual table tbody tr{display:grid;grid-template-columns:1fr;gap:10px;border:1px solid var(--line);padding:15px;border-radius:12px;margin:12px 0}.rental-actual thead{display:none}.rental-actual td{display:flex;justify-content:space-between;gap:18px;padding:0;border:0;text-align:right}.rental-actual td:before{content:attr(data-label);color:var(--muted);text-align:left;font-size:11px;flex-shrink:0}.rental-actual td.empty-state{display:block;text-align:left}}
.rental-invoice{margin:20px 0;padding:16px;background:#f7f8f3;border:1px solid var(--line);border-radius:12px}.rental-invoice h3{font-size:14px;line-height:1.5}.rental-invoice .micro{line-height:1.7}
.utility-overview{margin-bottom:22px}.utility-overview .plan-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.utility-month-label{display:grid;gap:7px;font-size:11px;color:var(--muted)}.utility-month-label select{padding:12px;border:1px solid var(--line);border-radius:10px;background:white;min-width:180px;color:var(--ink)}.utility-policy{padding:14px 16px;background:#f3f5ed;border-radius:12px;font-size:12px;line-height:1.7}.utility-address{min-width:0}.utility-address h2{font-size:25px}.utility-waiting{padding:28px 0 8px;font:25px/1.4 Georgia,serif}.utility-address>.account-line{padding:16px 0}.utility-address>.account-line strong{white-space:nowrap}.utility-address h3{font-size:14px;margin-top:24px}.utility-history .panel-head{flex-wrap:wrap;gap:12px}.utility-bill{border:1px solid var(--line);border-radius:12px;margin:12px 0;overflow:hidden}.utility-bill summary{padding:17px;display:flex;justify-content:space-between;gap:18px;cursor:pointer;background:#f7f8f3;list-style-position:inside}.utility-bill summary small{display:block;font-size:11px;color:var(--muted);margin-top:6px}.utility-bill summary>span{white-space:nowrap;font-weight:600}.utility-bill-body{padding:0 17px 15px}.utility-bill-body .micro{overflow-wrap:anywhere}.utility-address .micro{line-height:1.7}
@media(max-width:780px){.utility-overview .panel-head{flex-direction:column;align-items:stretch;gap:14px}.utility-overview .plan-metrics{grid-template-columns:1fr}.utility-month-label select{font-size:16px;min-height:44px}.utility-address h2{font-size:23px}.utility-bill summary{flex-direction:column;gap:10px}.utility-bill-body .account-line{align-items:flex-start;gap:12px}.utility-address .account-line{gap:10px;font-size:12px}.utility-address .account-line strong{font-size:12px}.sidebar nav .nav-item{min-width:0}.utility-policy{font-size:12px}}
.chat-main{display:flex;flex-direction:column;min-width:0}.chat-messages{flex:1;min-height:260px;max-height:60vh;overflow-y:auto;overscroll-behavior:contain}.message-meta{font-size:11px;opacity:.65;margin-bottom:8px}.message-content{white-space:pre-wrap;overflow-wrap:anywhere}.message-family{align-self:flex-start;background:#edf1e9;color:var(--ink)}.chat-composer{position:sticky;bottom:0;background:white;border-top:1px solid var(--line);padding-top:10px;border-radius:0 0 17px 17px}.chat-composer #chat-form{display:flex;align-items:flex-end}.chat-composer textarea{flex:1;min-width:0;resize:vertical;max-height:180px}.attach-button,.send-button{min-width:44px;min-height:44px;flex-shrink:0;border:0;border-radius:12px;background:var(--mint);color:var(--green);font-size:26px}.send-button{background:var(--green);color:white}.chat-attachments{display:flex;flex-wrap:wrap;gap:8px;padding:0 14px}.chat-file-chip{display:flex;align-items:center;gap:8px;max-width:100%;background:#edf2e9;border-radius:9px;padding:7px 10px;font-size:12px}.chat-file-chip span{overflow-wrap:anywhere;min-width:0}.chat-file-chip button{min-width:32px;min-height:32px;background:none;border:0;font-size:22px}.chat-file-chip small{white-space:nowrap}.chat-file-hint,.chat-upload-status{font-size:11px;color:var(--muted);padding:0 16px;line-height:1.6}.chat-upload-status:empty{display:none}.chat-file-link{display:block;text-decoration:underline;font-size:12px;line-height:1.7;padding:6px 0;overflow-wrap:anywhere}.chat-library-panel{border-bottom:1px solid var(--line);font-size:13px}.chat-library-panel summary{padding:13px 16px;cursor:pointer}.chat-library-panel[open] #chat-library{max-height:260px;overflow:auto;padding:0 16px 12px}.chat-library-file{padding:10px 0;border-top:1px solid var(--line)}.chat-library-file small{display:block;color:var(--muted);font-size:11px}.chat-job-status{padding:12px 16px;background:var(--mint);font-size:13px;line-height:1.6}.chat-dragging{outline:3px dashed var(--green);outline-offset:4px}.change-preview{max-height:420px;overflow:auto}
@media(max-width:780px){.chat-context{display:none}.chat-main{min-height:70dvh}.chat-messages{overflow-y:auto;max-height:55dvh;min-height:220px}.chat-composer{bottom:calc(70px + env(safe-area-inset-bottom));z-index:5}.chat-composer textarea{font-size:16px;min-height:48px}.chat-heading>.text-button{margin-left:0}.chat-suggestions{display:none}.chat-file-hint{font-size:10px}.chat-file-chip{font-size:12px}.chat-disclaimer{padding-top:12px}}
