:root{--ink:#172c29;--muted:#70817b;--green:#205b47;--line:#e0e6df;--bg:#f5f6f1}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px 'DM Sans',system-ui,sans-serif}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,strong{font-family:Manrope,system-ui,sans-serif}h1{font-size:30px;letter-spacing:-1px;line-height:1.25;margin:10px 0}h2{font-size:17px;margin:0}h3{font-size:14px;margin:8px 0}.sidebar{position:fixed;inset:0 auto 0 0;width:245px;background:#153d32;color:#dce8de;display:flex;flex-direction:column;padding:28px 20px;overflow-y:auto}.brand{display:flex;align-items:center;gap:12px;color:white;font-size:12px;font-weight:700;letter-spacing:1px;margin-bottom:28px}.brand small{display:block;font-size:8px;font-weight:400;letter-spacing:2px;margin-top:6px}.brand-mark{display:inline-grid;place-items:center;background:#dce9b8;color:#244632;border-radius:10px;width:43px;height:43px;font-size:20px;font-weight:800}.nav-label{font-size:9px;letter-spacing:1.5px;color:#9eb7a9;margin:0 10px 10px}nav{display:grid;gap:3px}nav a{color:#c4d5cc;padding:10px 14px;border-radius:7px;font-size:13px}nav a:hover,nav a.active{background:#2a5144;color:#f1f5d9;text-decoration:none}.sidebar-footer{margin-top:auto;padding:30px 10px 0;font-size:11px;overflow-wrap:anywhere}.logout{border:0;background:none;color:#cad8c4;padding:12px 0;cursor:pointer}.main{margin-left:245px;max-width:1700px;padding:40px 42px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:#6e7d62}.muted,.hint{color:var(--muted);line-height:1.65}.hint{font-size:12px}.button{display:inline-block;background:var(--green);border:1px solid var(--green);color:white;border-radius:7px;padding:12px 17px;font:600 12px 'DM Sans',sans-serif;cursor:pointer;white-space:nowrap}.button:hover{background:#164735;text-decoration:none}.secondary{background:transparent;color:var(--green);border-color:#c9d6ca}.secondary:hover{background:#e6ecdf}.filter{display:flex;align-items:center;gap:12px;margin-bottom:26px}.filter select{max-width:350px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:25px}.metric{background:white;border:1px solid var(--line);border-radius:11px;padding:24px 20px;display:flex;flex-direction:column;gap:20px}.metric span{color:var(--muted);font-size:12px}.metric strong{font-size:24px;letter-spacing:-1px}.metric small{font-size:10px;color:var(--muted)}.metric.accent{background:#e6eccd;border-color:#dce4bb}.metric.accent strong{color:#315336}.panel{background:#fff;border:1px solid var(--line);border-radius:10px;padding:24px;margin-bottom:24px}.columns{display:grid;grid-template-columns:1.1fr 1fr;gap:24px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px}.section-heading a{font-size:11px}.entity-row{display:flex;align-items:center;justify-content:space-between;padding:15px 0;border-bottom:1px solid var(--line)}.badge{display:inline-block;font-size:10px;border-radius:5px;background:#eff3e9;color:#53734e;padding:5px 8px;text-transform:capitalize}.budget{margin:20px 0}.budget>div{display:flex;justify-content:space-between;font-size:12px}progress{width:100%;height:7px;accent-color:var(--green);margin-top:12px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);padding:14px 12px;border-bottom:1px solid var(--line)}td{padding:16px 12px;font-size:12px;border-bottom:1px solid #eef1ec}.numeric{font-weight:700;font-variant-numeric:tabular-nums}.empty{text-align:center;color:var(--muted);padding:35px;white-space:normal}.actions{display:flex;gap:15px;align-items:center}.text-button{border:0;background:none;color:var(--green);padding:0;font:inherit;cursor:pointer}.danger{color:#a54736}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;max-width:920px}.wide{grid-column:1/-1}.field{display:flex;flex-direction:column;gap:8px}.field label{font-size:12px;font-weight:600}input,select,textarea{font:inherit;padding:11px 12px;border:1px solid #cbd5cb;border-radius:6px;background:white;color:var(--ink);width:100%;min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid #98b996;outline-offset:2px}.flash{padding:15px;border:1px solid #b4cfb0;background:#eaf1e4;border-radius:8px;margin-bottom:20px}.flash.alert{background:#fff0e9;border-color:#e5b8a0;color:#86391f}.family-cards{display:flex;gap:18px;flex-wrap:wrap;margin-top:22px}.family-cards article{padding:20px;border:1px solid var(--line);border-radius:10px;flex:1;min-width:230px;max-width:380px}.avatar{width:40px;height:40px;border-radius:50%;background:#e8edd8;display:grid;place-items:center;font-size:12px;color:var(--green)}pre{max-width:500px;overflow:auto;font-size:11px}.auth-main{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:35px;background:radial-gradient(ellipse at top left,#dce6cd,transparent 60%)}.auth-card{background:white;border:1px solid var(--line);border-radius:20px;padding:42px;max-width:470px;width:100%;box-shadow:0 20px 70px #153d3210}.auth-card h1{font-size:28px}.auth-card .field{margin:20px 0}.auth-card .button{width:100%;margin-top:4px}.auth-card>p:last-child{font-size:12px;text-align:center}footer{font-size:10px;color:#91a08d;margin:35px 0 10px;line-height:1.6}@media(min-width:1600px){.main{padding:50px 65px}}@media(max-width:1150px){.cards{grid-template-columns:1fr 1fr}.columns{grid-template-columns:1fr}.main{padding:30px 25px}.page-heading{align-items:flex-start}h1{font-size:25px}}@media(max-width:720px){.sidebar{position:static;width:auto;padding:18px}.brand{margin-bottom:15px}nav{display:flex;overflow-x:auto}nav a{white-space:nowrap}.nav-label,.sidebar-footer{display:none}.main{margin-left:0;padding:24px 16px}.page-heading{flex-direction:column}.cards{gap:10px}.metric{padding:18px 12px}.metric strong{font-size:20px}.form-grid{grid-template-columns:1fr}.panel{padding:18px}.filter{flex-wrap:wrap}.auth-card{padding:28px}h1{font-size:24px}}

.cards.three{grid-template-columns:repeat(3,minmax(0,1fr))}.inline-form{display:flex;gap:8px;margin-top:12px}.inline-form input[type=month]{width:155px}.projection-chart{display:block;width:100%;height:auto;min-height:150px;border-bottom:1px solid var(--line)}.filter input[type=month]{max-width:170px}.sidebar nav{flex-shrink:0}@media(max-width:850px){.cards.three{grid-template-columns:1fr}.inline-form{flex-wrap:wrap}}

.quick-dialog{border:0;border-radius:16px;padding:24px;width:min(480px,90vw);max-height:85vh;overflow:auto}.quick-dialog::backdrop{background:#152b3b88}.quick-dialog .field{margin-bottom:12px}.quick-dialog input,.quick-dialog select{width:100%}.quick-actions{display:flex;gap:12px;margin-top:20px}.quick-add{align-self:flex-start;padding:3px 13px;font-size:20px}.quick-dialog [role=alert]:empty{display:none}

.field-control{display:flex;align-items:center;gap:8px}.field-control>input:not([type=checkbox]),.field-control>select,.field-control>textarea{min-width:0;width:100%;flex:1}.field-control .quick-add{align-self:center;flex:none}

.benefit-fields{border:1px solid #dce4e5;border-radius:12px;padding:20px;min-width:0}.benefit-fields legend{font-weight:700;padding:0 8px}.benefit-fields input[type=checkbox]{width:auto;margin-right:8px}

.sidebar-nav{display:grid;gap:22px}.nav-group{display:grid;gap:7px}.nav-group .nav-label{font:700 9px 'DM Sans',system-ui,sans-serif;letter-spacing:1.5px;text-transform:uppercase;color:#9eb7a9;margin:0 10px}.nav-items{display:grid;gap:3px}.nav-items a{display:flex;align-items:center;gap:8px;color:#c4d5cc;padding:9px 14px;border-radius:7px;font-size:13px}.nav-items a:hover,.nav-items a.active{background:#2a5144;color:#f1f5d9;text-decoration:none}.nav-icon{width:14px;text-align:center}
@media(max-width:720px){.sidebar-nav{display:flex;gap:6px;overflow-x:auto}.nav-group{display:block}.nav-group .nav-label{display:none}.nav-items{display:flex}.nav-items a{white-space:nowrap}}
.entity-balances{margin-bottom:25px}.entity-balances h2{margin:0 0 14px}.entity-balances .cards{margin-bottom:0}
.launches-filter{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px 16px;align-items:end;margin-bottom:26px}.launch-filter-group{display:grid;gap:6px}.launch-filter-group label,.launch-search>label{font-size:11px;color:var(--muted)}.launch-search{grid-column:span 2;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center}.launch-search>label{grid-column:1}.launch-search input{grid-column:2}.launch-search a{grid-column:3;padding:10px 13px}.launch-filter-submit{align-self:end}@media(max-width:1150px){.launches-filter{grid-template-columns:repeat(3,minmax(150px,1fr))}.launch-search{grid-column:span 2}}@media(max-width:720px){.launches-filter{grid-template-columns:1fr}.launch-search{grid-column:auto}.launch-filter-submit .button{width:100%}}
.budget-launch-link{border:0;background:none;padding:0;color:var(--green);font:inherit;font-weight:700;cursor:pointer;text-align:left}.budget-launch-link:hover{text-decoration:underline}.budget-edit-dialog{width:min(720px,92vw)}.recurrence-scope{border:1px solid var(--line);border-radius:8px;padding:14px;display:grid;gap:10px}.recurrence-scope legend{font-weight:700}.recurrence-scope label{display:flex;gap:8px;align-items:center}.recurrence-scope .hint{margin:0}
.expense-metric{background:#fff5f3;border-color:#f1d2ca}.expense-metric strong{color:#a54736}.expense-dashboard progress{accent-color:#b85445}.budget-expenses .category-row th{background:#fbe9e4;color:#963f31}.budget-expenses .subtotal-row th,.budget-expenses .subtotal-row td{background:#fff5f3;color:#713228}.budget-expenses .grand-total-row th,.budget-expenses .grand-total-row td{background:#f4d7d0;color:#713228}.budget-expenses .budget-launch-link{color:#a54736}
.negative-money,.expense-value{color:#a54736}.badge.expense-value{background:#fbe9e4;color:#963f31}.metric.expense-value{background:#fff5f3;border-color:#f1d2ca}.metric.expense-value strong{color:#a54736}
.metric strong{font-size:30px;letter-spacing:-1.4px;line-height:1.1}@media(max-width:720px){.metric strong{font-size:23px}}
.metric strong span{font-size:inherit;line-height:inherit;color:inherit}.metric strong .negative-money{color:#a54736}
.statement-dialog{width:min(1100px,94vw)}.statement-dialog .statement-cards{margin:20px 0}.statement-dialog .metric{padding:18px}.statement-dialog .metric strong{font-size:23px}
.entity-row-link{color:inherit;border-radius:7px;padding:15px 8px;margin:0 -8px}.entity-row-link:hover{background:#f4f7f1;text-decoration:none}.entity-row-link small{display:block;color:var(--green);font-size:10px}
.dashboard-budget{margin-bottom:24px}.dashboard-budget .cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:0}.dashboard-budget .metric{padding:18px;gap:12px}.dashboard-budget .metric strong{font-size:24px}.dashboard-month-filter{margin:0}.metric-link{color:inherit;transition:transform .15s ease,box-shadow .15s ease}.metric-link:hover{color:inherit;text-decoration:none;transform:translateY(-2px);box-shadow:0 7px 16px #153d3214}.metric-link small{color:var(--green)}.metric-link.expense-metric small{color:#a54736}@media(max-width:720px){.dashboard-budget .cards{grid-template-columns:1fr}}
.cards.two{grid-template-columns:repeat(2,minmax(0,1fr))}.due-cards{margin-top:0}@media(max-width:720px){.cards.two{grid-template-columns:1fr}}
.month-selector{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:220px;padding:8px 10px;border:1px solid #cbd5cb;border-radius:8px;background:white}.month-selector-label{min-width:130px;text-align:center;font:600 14px Manrope,system-ui,sans-serif;text-transform:capitalize;color:var(--ink)}.month-selector-arrow{border:0;background:none;color:#299ed5;font-size:30px;line-height:1;padding:0 5px;cursor:pointer}.month-selector-arrow:hover{color:#1576a7}.statement-filter{margin:0 0 16px}
.loading-skeleton{position:fixed;inset:155px 0 0 245px;z-index:1000;display:flex;flex-direction:column;gap:20px;padding:26px 42px;background:var(--bg);opacity:0;pointer-events:none;transition:opacity .15s ease}.is-loading .loading-skeleton{opacity:1;pointer-events:auto}.loading-skeleton>span{color:var(--muted);font-size:12px}.skeleton-heading,.skeleton-filter,.skeleton-panel,.skeleton-cards i{display:block;border-radius:10px;background:linear-gradient(90deg,#e8ece5 25%,#f8faf6 50%,#e8ece5 75%);background-size:200% 100%;animation:skeleton-pulse 1.1s infinite}.skeleton-heading{width:270px;height:34px}.skeleton-filter{width:100%;height:44px}.skeleton-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.skeleton-cards i{height:144px}.skeleton-panel{height:310px}@keyframes skeleton-pulse{to{background-position:-200% 0}}@media(max-width:1150px){.loading-skeleton{padding:22px 25px}.skeleton-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.loading-skeleton{inset:145px 0 0;padding:20px 16px}.skeleton-cards{gap:10px}.skeleton-cards i{height:110px}}

.sidebar-header{display:flex;align-items:center;justify-content:space-between}.mobile-nav-toggle{display:none}
@media(max-width:720px){.sidebar{padding:14px 16px}.sidebar-header{min-height:48px}.sidebar-header .brand{margin:0}.mobile-nav-toggle{display:inline-flex;align-items:center;gap:7px;border:1px solid #719184;border-radius:7px;background:transparent;color:#f1f5d9;padding:9px 11px;font:600 12px 'DM Sans',sans-serif;cursor:pointer}.sidebar-nav{display:none!important;margin-top:14px}.mobile-menu-open .sidebar-nav{display:grid!important;gap:14px}.mobile-menu-open .nav-group,.mobile-menu-open .nav-items{display:grid}.mobile-menu-open .nav-group .nav-label{display:block}.mobile-menu-open .nav-items a{white-space:normal}.sidebar-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:0;font-size:11px}.sidebar-footer .logout{padding:9px 0}.filter{display:grid;grid-template-columns:1fr;gap:8px}.filter select,.filter input,.filter .button{max-width:none;width:100%}.table-wrap{border:1px solid #edf1ea;border-radius:7px}.table-wrap::before{content:'Deslize a tabela para os lados ↔';display:block;width:max-content;padding:8px 10px 2px;color:var(--muted);font-size:10px}}
