:root{--bg:#f1f3f4;--paper:#fff;--ink:#172320;--muted:#5f6a66;--line:#e6ebe8;--action:#BFE0D6;--action-border:#7FD0BD;--green:#183e34;--red:#a74438;--slate:#5f6a66;--cream:#f1f3f4;--saving-soft:#eaf4ed;--sharing-soft:#edf4ee}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,input,select{font:inherit}button,a,input,select{ -webkit-tap-highlight-color:transparent}button,a{cursor:pointer}button{color:inherit}a{color:inherit;text-decoration:none}button{border:1px solid var(--line);background:white;border-radius:11px;padding:10px 14px;font-weight:600}button:hover{filter:brightness(.96)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--action);border-color:var(--action-border);color:var(--ink)}button.dark{background:var(--ink);border-color:var(--ink);color:white}button.quiet{background:transparent;border:0;color:var(--muted)}button.danger{color:var(--red)}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.layout{display:grid;grid-template-columns:222px minmax(0,1fr);padding:14px;gap:22px;min-height:100vh}.sidebar{position:sticky;top:14px;height:calc(100vh - 28px);background:#fff;border-radius:24px;padding:23px 15px;display:flex;flex-direction:column}.brand{display:flex;gap:10px;align-items:center;font-weight:750;font-size:15px;letter-spacing:-.5px;padding-bottom:43px;white-space:nowrap}.mark{position:relative;width:35px;height:35px;background:var(--ink);border-radius:12px;display:grid;place-items:center;color:white;font-size:20px;overflow:hidden;flex-shrink:0} .mark span{position:absolute;width:19px;height:19px;border-radius:50%;background:var(--action);top:-4px;right:-5px}.navlabel{font-size:10px;font-weight:650;letter-spacing:1.7px;color:#8a9690;padding:0 13px;margin:0 0 12px}nav{display:grid;gap:5px;margin-bottom:30px}nav a{display:flex;gap:14px;padding:13px;border-radius:12px;color:var(--muted);font-size:17px}nav a span{font-size:13px}nav a.active{background:var(--ink);color:#fff}nav a.active:first-letter{color:var(--action)}.sidefooter{margin-top:auto;border-top:1px solid var(--line);padding-top:18px;display:flex;gap:11px;align-items:center}.avatar{border:0;border-radius:50%;background:#e7ece7;display:grid;place-items:center;width:35px;height:35px;font-size:13px;font-weight:700;padding:0;flex-shrink:0}small{display:block;color:var(--muted);font-size:11px;margin-top:5px}main{min-width:0}.topbar{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 14px 0 5px;font-size:12px;color:var(--muted)}.topright{display:flex;align-items:center;gap:18px}.localbadge{border:1px solid #d5ddd3;padding:7px 10px;border-radius:20px;font-size:10px;color:#5b6a51}.page{padding:8px 14px 0 0;max-width:1600px;margin:auto}.notice{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted);margin:0 0 24px;gap:12px}.notice button{font-size:11px;background:transparent;border-color:#d9e0db;padding:8px 12px}.heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.eyebrow{font-size:10px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:var(--muted);margin-bottom:10px}h1{font-size:36px;letter-spacing:-1.5px;margin:0;font-weight:650}h2{font-size:17px;letter-spacing:-.45px;margin:0}h3{font-size:14px;margin:0}p{line-height:1.6;color:var(--muted);font-size:13px}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.monthselect{background:#fff;border:1px solid var(--line);padding:11px 13px;border-radius:11px;color:var(--ink)}.summary{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:12px;margin-bottom:22px}.metric{background:white;border-radius:20px;padding:23px;min-height:164px}.metric .caption{font-size:12px;color:var(--muted)}.metric .value{font-size:clamp(22px,2.1vw,34px);font-weight:650;letter-spacing:-1px;margin:19px 0 12px;font-variant-numeric:tabular-nums;white-space:nowrap}.metric.featured{background:var(--green);color:#fff;position:relative;overflow:hidden}.metric.featured:after{content:'';position:absolute;right:-35px;top:-40px;width:150px;height:150px;border:1px solid #ffffff15;border-radius:50%;box-shadow:0 0 0 20px #ffffff05,0 0 0 40px #ffffff05;pointer-events:none}.metric.featured .caption,.metric.featured small{color:#cfddcb}.metric.featured .value{color:#d2e9d0}.negative{color:var(--red)!important}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 295px;gap:18px;align-items:start}.panel{background:white;border:1px solid #e9eeeb;border-radius:20px;padding:23px;margin-bottom:18px}.panelhead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.panelhead small{margin-top:7px}.subtle{color:var(--muted);font-size:11px}.track{height:9px;background:#edf1ec;display:flex;overflow:hidden;border-radius:9px;margin:18px 0}.track i{display:block;height:100%}.legend{display:flex;gap:15px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.legend span:before{content:'';display:inline-block;width:7px;height:7px;background:var(--color);border-radius:50%;margin-right:6px}.progresslabels{display:flex;justify-content:space-between;font-size:12px;margin-top:6px}.tag{display:inline-block;font-size:10px;border-radius:7px;background:#eef2ed;color:#556647;padding:5px 7px;white-space:nowrap}.tag.warn{background:#fff1dc;color:#876222}.tag.red{background:#fbeae5;color:#994638}.filters{display:flex;gap:8px;margin-bottom:15px;flex-wrap:wrap}.filters input{flex:1;min-width:150px}.filters input,.filters select{border:1px solid var(--line);background:#f8faf8;padding:10px;border-radius:10px;font-size:12px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.7px;color:#89928c;font-weight:600;border-bottom:1px solid var(--line);padding:12px 9px}td{padding:15px 9px;border-bottom:1px solid #edf0ed;font-size:12px}tr:last-child td{border:0}td b{font-weight:600}td.money{text-align:right;font-variant-numeric:tabular-nums}th.money{text-align:right}.payname{display:flex;gap:10px;align-items:center}.tile{display:grid;place-items:center;width:33px;height:33px;border-radius:10px;background:#f0f3ed;font-size:12px;font-weight:700;color:#637555}.rowaction{padding:6px 8px;font-size:11px}.check{accent-color:#285746;width:17px;height:17px;cursor:pointer}.advice{background:#edf2e5;border:1px solid #e2e9d5}.advice h2{font-size:16px}.advice p{font-size:12px;margin:14px 0 0;color:#536345}.advice strong{color:#30472e}.dueitem{display:flex;gap:12px;padding:15px 0;border-bottom:1px solid var(--line);align-items:center}.dueitem:last-child{border:0;padding-bottom:0}.daybox{min-width:40px;text-align:center;padding:9px 6px;background:#f4f6f2;border-radius:10px;font-size:17px;font-weight:650}.daybox small{font-size:9px;margin:3px 0 0;text-transform:uppercase}.dueitem div:nth-child(2){flex:1}.dueitem b{font-size:12px}.dueitem .amount{font-size:12px;font-weight:600}.category{margin-bottom:17px}.categoryhead{display:flex;justify-content:space-between;font-size:11px;margin-bottom:7px}.bar{height:5px;background:#f0f3ed;border-radius:4px;overflow:hidden}.bar i{display:block;background:#8fa380;height:100%;border-radius:4px}.empty{padding:40px 20px;text-align:center;color:var(--muted);font-size:13px}footer{display:flex;justify-content:space-between;gap:12px;padding:12px 0 25px;color:#89938b;font-size:10px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.projectcard{display:block;max-width:390px;min-height:245px;transition:transform .2s}.projectcard:hover{transform:translateY(-3px)}.projectcard .tile{background:var(--action);width:48px;height:48px;font-size:22px}.projectcard h2{font-size:23px;margin-top:26px}.projectcard p{margin:10px 0 24px}.projectbottom{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:15px;font-size:12px}.bigintro{padding:40px 0 32px}.bigintro h1{font-size:48px}.pending{padding:14px;background:#fff7e8;border:1px solid #f0e7d3;border-radius:12px;color:#816735;font-size:12px;line-height:1.6;margin-bottom:18px}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.weekday{text-align:center;padding:8px;color:var(--muted);font-size:11px}.calday{min-height:108px;background:#f7f9f5;border-radius:9px;padding:9px;font-size:11px}.calday.today{outline:2px solid #739726}.calday.blank{background:transparent}.calentry{display:block;background:#e5ebde;border-radius:5px;padding:5px;margin-top:5px;font-size:9px;width:100%;border:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:7px;font-size:12px}.field.full{grid-column:1/-1}.field input,.field select{padding:12px;border:1px solid #dce3dc;border-radius:10px;background:white;min-width:0;width:100%}.field input[type=checkbox]{width:17px}.formhint{font-size:11px;color:var(--muted);line-height:1.5;margin:0}.formactions{display:flex;gap:10px;justify-content:flex-end;margin-top:23px;flex-wrap:wrap}.togglelabel{display:flex;gap:9px;align-items:center;font-size:12px}dialog{border:0;border-radius:23px;box-shadow:0 30px 100px #0003;width:min(580px,calc(100% - 28px));padding:26px;max-height:90vh}dialog::backdrop{background:#17232066;backdrop-filter:blur(5px)}.dialoghead{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.dialoghead h2{font-size:23px}.dialoghead button{border:0;padding:2px 10px;font-size:26px}.auth{max-width:460px;margin:20px auto}.auth .field{margin-top:17px}.auth .primary{width:100%;margin-top:22px}.authtabs{display:flex;gap:8px;margin:20px 0}.authtabs button.active{background:var(--ink);color:#fff}.statusline{padding:12px;border-radius:9px;background:#f0f4eb;font-size:12px;color:#566b46;line-height:1.5;margin-top:18px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;border-radius:13px;padding:14px 20px;max-width:90vw;font-size:12px;z-index:100;display:none}.definition{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid var(--line);font-size:13px}.definition:last-child{border:0}.accountcard{max-width:700px}.annual{height:125px;display:flex;gap:13px;align-items:flex-end;margin-top:25px}.annualcol{flex:1;text-align:center;font-size:10px;color:var(--muted)}.annualbar{width:100%;background:#d8e3cb;border-radius:5px 5px 0 0;margin-bottom:9px}.annualcol.current .annualbar{background:var(--green)}.annualcol.current{font-weight:700;color:var(--ink)}
@media(min-width:1500px){.page{padding-top:20px}.metric{min-height:180px}.workspace{grid-template-columns:minmax(0,1fr) 340px}}
@media(max-width:1150px){.layout{grid-template-columns:185px 1fr;gap:15px}.brand{font-size:13px}.summary{grid-template-columns:1fr 1fr}.workspace{grid-template-columns:1fr}.rail{display:grid;grid-template-columns:1fr 1fr;gap:16px}.metric{min-height:140px}.grid2{grid-template-columns:1fr}}
@media(max-width:700px){.layout{display:block;padding:0}.sidebar{position:relative;top:0;border-radius:0;height:auto;padding:15px}.brand{padding-bottom:16px}.navlabel,.sidefooter{display:none}.sidebar nav{display:flex;overflow:auto;margin:0;gap:4px}.sidebar nav+nav{margin-top:6px}nav a{padding:10px;white-space:nowrap;font-size:13px;gap:5px}nav a span{font-size:11px}.topbar{padding:12px 18px;height:55px}.page{padding:8px 16px}.heading{align-items:flex-start;flex-direction:column}h1{font-size:30px}.notice{align-items:flex-start;line-height:1.5}.summary{gap:9px}.metric{padding:17px;min-height:139px}.metric .value{font-size:23px}.metric small{font-size:10px}.panel{padding:18px}.rail{display:block}.calendar{gap:3px}.calday{min-height:85px;padding:5px}.calentry{font-size:8px;padding:4px}.formgrid{grid-template-columns:1fr}.field.full{grid-column:auto}footer{flex-direction:column}.bigintro h1{font-size:37px}.panelhead{align-items:flex-start}.localbadge{font-size:9px}.actions{width:100%}.actions>*{flex:1}.heading .actions{justify-content:space-between}.monthselect{max-width:190px}.annual{gap:7px}}
.workspace>* , .grid2>* , .rail>*{min-width:0}.panel{min-width:0}@media(max-width:1150px){.workspace,.grid2{grid-template-columns:minmax(0,1fr)}}@media(max-width:700px){.summary{grid-template-columns:repeat(2,minmax(0,1fr))}.metric .value{font-size:22px}.annual{max-width:100%}}
.sharingmodes{display:grid;grid-template-columns:1fr 1fr;gap:18px}.sharingmodes .tile{background:var(--action);margin-bottom:16px;font-size:22px}.sharingmodes p{margin-bottom:0}.percentage{width:67px;padding:9px;border:1px solid var(--line);border-radius:8px}.definition b{text-align:right}@media(max-width:700px){.sharingmodes{grid-template-columns:1fr;gap:0}}

/* Continuidad de meses, filtros y avisos de pago. */
.calendarTrigger{display:inline-flex;align-items:center;gap:9px;border-color:#c9d8ce;background:#fff}.calendarTrigger>span:first-child{font-size:19px;line-height:1;color:#225648}.selectedMonth{color:#607269;font-size:11px;border-left:1px solid #d7e0d9;padding-left:9px}.budgetDetails{font-size:11px;color:#516159;margin-top:4px}.budgetDetails summary{cursor:pointer;font-weight:700;color:#225648;width:max-content}.budgetDetails>div{display:flex;justify-content:space-between;gap:12px;margin-top:9px}.budgetDetails b{color:var(--ink)}.strongTrack{background:#d2e9d0;height:15px;border:1px solid #a9c9ae;margin-top:22px;margin-bottom:15px}.strongTrack i+ i{border-left:2px solid white}.legend span{font-weight:600;color:#47564c}.legend span:before{width:10px;height:10px;border:1px solid #91a396}.weeklyRow.warning{background:#fff9e9}.weeklyRow.alert{background:#fff1eb}.urgency{display:inline-block;border-radius:9px;padding:6px 8px;background:#edf2eb;color:#3b5945;font-size:11px;font-weight:700}.urgency.warning{background:#f3d99e;color:#654614}.urgency.alert{background:#f6c9b8;color:#873e2e}.paidCheck{display:flex;align-items:center;gap:7px;cursor:pointer;font-weight:700;color:#285746}.paidCheck input{width:18px;height:18px;accent-color:#285746}.pillBar,.stateFilters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:15px}.pill{border-radius:999px;background:#f5f8f3;border:1px solid #dce6dc;padding:8px 13px;font-size:11px}.pill.active{background:#225648;border-color:#225648;color:#fff}.pill.addPill{background:#ecf5d7;border-color:#cde1aa;color:#315526}.stateChip{display:inline-flex;align-items:center;gap:6px;border:1px solid #dce6dc;border-radius:999px;padding:8px 12px;color:#637267;font-size:11px;cursor:pointer}.stateChip.active{background:#e6f0e4;color:#254d39;border-color:#9bbc9f;font-weight:700}.stateChip input{accent-color:#285746}.filters input{width:100%}.projectedSwitch{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:15px;background:#f0f6e7;border:1px solid #c8dfa8;border-radius:14px}.projectedSwitch small{font-weight:400}.projectedSwitch input{width:42px!important;height:23px!important;appearance:none;background:#aab8ac;border-radius:20px;position:relative;cursor:pointer;flex-shrink:0}.projectedSwitch input:before{content:'';position:absolute;left:3px;top:3px;width:17px;height:17px;border-radius:50%;background:#fff;transition:transform .15s}.projectedSwitch input:checked{background:#285746}.projectedSwitch input:checked:before{transform:translateX(19px)}.togglelabel:has(input[name="remind"]){background:#f1f4f0;padding:15px;border:1px solid #dce6dc;border-radius:14px}.togglelabel:has(input[name="remind"]:checked){background:#e7f5d1;border-color:#85ae56;color:#214c36;font-weight:700}.togglelabel input[name="remind"]{appearance:none;width:42px;height:23px;background:#aab8ac;border-radius:20px;position:relative;vertical-align:middle;margin-right:10px;cursor:pointer}.togglelabel input[name="remind"]:before{content:'';position:absolute;left:3px;top:3px;width:17px;height:17px;border-radius:50%;background:white;transition:transform .15s}.togglelabel input[name="remind"]:checked{background:#285746}.togglelabel input[name="remind"]:checked:before{transform:translateX(19px)}.calendarDialog{width:min(1320px,calc(100% - 30px));height:min(92vh,1000px);max-height:92vh}.calendarDialog #modalBody{height:calc(100% - 55px);overflow:auto}.calendarTools{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:17px}.calendarTools strong{font-size:19px;margin:0 6px}.calendarTools label{margin-left:auto;font-size:11px;color:#52695b}.calendarTools input{margin-left:7px;border:1px solid #d8e4d8;border-radius:9px;padding:9px}.calendarWide{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendarWide .calday{width:100%;border:1px solid transparent;text-align:left;display:block;min-height:105px;background:#f7faf5}.calendarWide .calday.selected{border-color:#356448;background:#eaf4dd}.calendarWide .calday.today b{background:#d2e9d0;border-radius:50%;padding:4px 8px}.calendarWide .calday.blank{background:transparent}.calendarWide .calentry{font-size:10px;line-height:1.3;white-space:normal}.calendarDetail{border-top:1px solid #dfe8dc;margin-top:18px;padding-top:18px}.calendarDetail .primary{margin-top:16px}#toast button{background:var(--action);border:0;margin-left:14px;padding:7px 10px}
@media(max-width:700px){.calendarDialog{width:calc(100% - 12px);height:96vh;max-height:96vh;padding:14px}.calendarWide .calday{min-height:72px;padding:5px}.calendarWide .calentry{font-size:8px;padding:3px}.calendarTools label{margin-left:0;width:100%}.selectedMonth{font-size:10px}.weeklyRow td{padding:10px 6px}.urgency{padding:4px;font-size:9px}}
.calendarPage{padding:24px;min-height:720px}.calendarFilterPanel{margin-bottom:23px;padding-bottom:16px;border-bottom:1px solid var(--line)}.calendarFilterPanel .filters{max-width:580px}.calendarCarousel{overflow:hidden;width:100%;min-height:580px}.calendarSlides{display:flex;width:200%;transition:transform .38s cubic-bezier(.22,.72,.18,1);align-items:flex-start}.calendarCarousel.showDay .calendarSlides{transform:translateX(-50%)}.gridSlide,.daySlide{width:50%;flex:none;min-width:0;padding:1px}.calendarPage .calendarWide .calday{min-height:120px}.calendarWide .remaining{font-size:10px;font-weight:700;color:#355e3a;background:#e5f1d4;border-radius:6px;padding:4px 6px;margin-top:5px}.daySlide{padding:3px 7px 18px}.backCalendar{background:#edf4e6;border-color:#cbdfc1;color:#285746;margin-bottom:27px}.dayHeading{align-items:end}.dayHeading h2{font-size:23px;text-transform:capitalize}.calendarDialog .calendarFilterPanel{margin-bottom:15px}.calendarDialog .calendarCarousel{min-height:460px}.calendarDialog .calendarSlides .calday{min-height:94px}.calendarDialog .daySlide{padding:8px}
@media(max-width:700px){.calendarPage{padding:14px;min-height:650px}.calendarCarousel{min-height:450px}.calendarPage .calendarWide .calday{min-height:86px}.calendarWide .remaining{font-size:8px;padding:2px}.dayHeading h2{font-size:18px}.calendarDialog .calendarSlides .calday{min-height:72px}}
.strongTrack .expenseMeter{height:100%;display:block;flex:none;background:#f1bdb5;overflow:hidden}.strongTrack .expensePaid{display:block;height:100%;background:#225648}.strongTrack .savingPart{flex:none;background:#80a92c;border-left:2px solid #fff}.strongTrack .expenseMeter+.savingPart{border-left:2px solid #fff}
#toast button{color:#172320;background:var(--action);font-weight:800;border:1px solid var(--action-border)}.weekFilterWrap{display:grid;gap:11px;padding:2px 0 16px;border-bottom:1px solid var(--line);margin-bottom:4px}.weekFilterGroup{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.weekFilterTitle{font-size:11px;font-weight:700;color:#506358;min-width:83px}.weekCheck{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid #dae4db;border-radius:9px;font-size:10px;color:#55665a;cursor:pointer;background:#fff}.weekCheck.active{background:#e9f3e7;border-color:#adc9ac;color:#254d39;font-weight:750}.weekCheck input{accent-color:#285746;width:15px;height:15px;margin:0}.calendarBodySurface{background:#f3f7f2;border:1px solid #dfe8df;border-radius:18px;padding:15px;box-shadow:0 5px 16px rgba(31,60,40,.055)}.calendarBodySurface .weekday{color:#526558;font-weight:700}.calendarBodySurface .calday{background:#fff;border:1px solid #e7eee7;box-shadow:0 1px 3px rgba(31,60,40,.045)}.calendarBodySurface .calday.selected{background:#eaf4dd;border-color:#88aa75}.calendarBodySurface .calday.blank{background:transparent;border:0;box-shadow:none}
.overviewDueTabs{display:flex;gap:8px;flex-wrap:wrap;margin:3px 0 15px}.overviewDueTabs .pill{min-width:112px;justify-content:center}
@media(max-width:700px){.calendarBodySurface{padding:8px;border-radius:14px}.weekFilterTitle{width:100%;min-width:0}.weekCheck{font-size:10px}}
.budgetPanel{max-width:1120px}.budgetPanel>p{margin:8px 0 23px}.primaryIncomeGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.primaryIncomeCard,.extraIncomeCard{border:1px solid #e1e9e0;background:#f8faf7;border-radius:15px;padding:16px}.primaryIncomeCard>input{width:100%;margin-top:13px;padding:12px;border:1px solid #dce3dc;border-radius:10px;background:#fff}.incomeLabelLine{display:flex;align-items:center;gap:7px;min-height:27px}.budgetIncomeTitle{font-weight:700;font-size:13px;color:#213f32}.incomeIcon{padding:2px 6px;border:0;background:transparent;color:var(--green);font-size:17px;line-height:1}.budgetSubhead{margin:27px 0 15px}.budgetSubhead h3{font-size:15px}.extraIncomeCard{display:grid;grid-template-columns:minmax(170px,1.2fr) minmax(210px,1fr) minmax(175px,.8fr);align-items:end;gap:16px;margin-bottom:10px}.extraIncomeCard .field{min-width:0}.extraIncomeCard small{margin-top:3px}.incomeAmountLine{display:flex;gap:7px}.incomeAmountLine input{flex:1;min-width:0}.incomeDelete{color:#91483a;background:#fff5f1;border-color:#eed5cd;white-space:nowrap}.incomeAdd{margin-top:6px;border:1px dashed #a9c19f;color:var(--green);background:#f1f7eb}.budgetFigures{border-top:1px solid var(--line);margin-top:22px}.budgetFigures .definition{max-width:650px}#budgetError,#renameError{color:#a74438;font-size:12px;margin-top:12px}#budgetError:empty,#renameError:empty{display:none}
.incomeReceiptFields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:13px;padding-top:13px;border-top:1px solid #dfe8e5}.incomeReceiptFields>span,.incomeReceiptFields>small{grid-column:1/-1}.incomeReceiptFields>span{font-weight:650;color:#0B6B5A;font-size:12px}.incomeReceiptFields small{font-weight:400;color:#647580}.incomeReceiptFields .field{min-width:0;font-size:11px}.incomeReceiptFields input{width:100%;min-width:0}.incomeReceiptFields input:disabled{background:#f0f2f1;color:#708081}.extraIncomeCard .incomeReceiptFields{grid-column:1/-1}
@media(max-width:850px){.extraIncomeCard{grid-template-columns:1fr 1fr}.incomeNameArea{grid-column:1/-1}}@media(max-width:600px){.primaryIncomeGrid,.extraIncomeCard{grid-template-columns:1fr}.incomeNameArea{grid-column:auto}.incomeAmountLine{flex-wrap:wrap}.incomeDelete{width:100%}.incomeReceiptFields{grid-template-columns:1fr}}
/* Menú de pagos y metas de ahorro. */
.sidebar .navParent{display:flex;align-items:center;gap:14px;width:100%;border:0;background:transparent;padding:13px;border-radius:12px;color:var(--muted);font-size:17px;text-align:left;font-weight:400}.sidebar .navParent span:nth-child(1){font-size:13px}.sidebar .navParent.active{background:#edf3e9;color:var(--green);font-weight:700}.navChevron{margin-left:auto;font-size:18px;transition:transform .2s}.navParent[aria-expanded="true"] .navChevron{transform:rotate(180deg)}.subnav{display:grid;gap:3px;margin:-1px 0 7px 21px;padding-left:13px;border-left:1px solid #d9e6d7}.subnav[hidden]{display:none}.sidebar .subnav a{font-size:12px;padding:10px 13px}.goalRowAction{margin-right:6px;background:#edf6df;border-color:#bed5a2;color:#27513b}.goalsHeading p{max-width:650px;margin:12px 0 0}.goalHero{display:flex;align-items:center;justify-content:space-between;gap:35px;padding:31px 34px;border-radius:22px;margin-bottom:22px;overflow:hidden;position:relative}.projectedHero{background:#dfefe4}.savingHero{background:#eaf4ed}.goalHero>div{position:relative;z-index:1}.goalHero:after{content:'';position:absolute;width:310px;height:310px;border:1px solid #1e49341f;border-radius:50%;right:-90px;top:-130px;box-shadow:0 0 0 35px #1e49340b,0 0 0 70px #1e49340a}.goalHero h2{font-size:24px;letter-spacing:-.8px}.goalHero p{color:#3b5e48;max-width:660px;margin:10px 0 0}.goalHeroAmount{min-width:225px;text-align:right}.goalHeroAmount small{font-size:11px;color:#4b6a52}.goalHeroAmount strong{display:block;font-size:27px;letter-spacing:-1px;margin:7px 0;color:#173f31;white-space:nowrap}.goalHeroAmount span{font-size:11px;color:#4b6a52}.goalGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.goalCard{border:1px solid #e3ebe2;background:white;border-radius:21px;padding:24px;min-width:0;box-shadow:0 5px 20px #173d2609}.savingGoal{background:linear-gradient(145deg,#fff 52%,#f6faef 100%);border-top:5px solid var(--goal-color)}.annualGoal{border-left:5px solid var(--goal-color)}.goalDone{background:#f3f8ef}.goalCardTop,.goalNumbers,.goalProgressCaption,.goalFacts,.goalActions{display:flex;align-items:center;justify-content:space-between;gap:12px}.goalIcon{width:49px;height:49px;border-radius:16px;display:grid;place-items:center;font-size:27px;background:#f0f5eb;font-weight:750;box-shadow:0 4px 13px #16382620}.goalStatus{font-size:10px;color:#416247;background:#edf4e8;padding:7px 9px;border-radius:999px;font-weight:700}.goalCard h2{font-size:23px;margin:18px 0 4px}.goalCard>p{margin:0 0 23px}.goalNumbers{border-top:1px solid #e6eee4;padding-top:20px;align-items:flex-end}.goalNumbers>div:last-child{text-align:right}.goalNumbers small{font-size:11px}.goalNumbers strong{font-size:22px;letter-spacing:-.8px;display:block;white-space:nowrap}.goalProgress{height:13px;background:#e9f0e4;border-radius:999px;overflow:hidden;margin:20px 0 7px}.goalProgress i{display:block;height:100%;border-radius:999px;background:var(--goal-color);min-width:0;box-shadow:inset 0 0 0 1px #17453214}.goalProgressCaption{font-size:11px;color:#47604c}.goalProgressCaption span:first-child{font-weight:800;color:#27503b}.goalFacts{margin:19px 0;padding:13px 0;border-block:1px solid #e7eee4;color:#5a6b5c;font-size:11px;flex-wrap:wrap}.goalActions{justify-content:flex-start;flex-wrap:wrap}.goalActions button{font-size:11px}.goalBars{height:83px;display:flex;align-items:flex-end;gap:10px;margin-top:17px}.goalBars>div{flex:1;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:end;gap:5px}.goalBars i{width:100%;max-width:42px;min-height:4px;border-radius:7px 7px 0 0}.goalBars small{font-size:9px;margin:0}.goalEmpty{text-align:center;max-width:700px;margin:30px auto;padding:45px}.goalEmpty>span{display:block;font-size:32px;margin-bottom:16px}.goalEmpty p{max-width:400px;margin:12px auto 20px}.goalFormIntro{padding:17px;border-radius:13px;background:#edf5e7;color:#325440;margin-bottom:20px;font-size:13px}.goalFormIntro p{margin:5px 0 0}.amountChoices{display:flex;gap:8px;margin:18px 0}.amountChoices button{flex:1;font-size:11px}.amountChoices .chosen{background:var(--action);border-color:var(--action-border);color:#1d3f2f}#goalFormError,#contributionError{color:#a74438;margin-top:12px;font-size:12px}
@media(max-width:1050px){.goalGrid{grid-template-columns:1fr}}@media(max-width:700px){.sidebar .navParent{white-space:nowrap;width:auto;padding:10px;font-size:13px;gap:5px}.sidebar .navParent span:nth-child(1){font-size:11px}.sidebar .subnav{display:flex;margin:0;padding:0;border:0;gap:3px}.sidebar .subnav[hidden]{display:none}.sidebar .subnav a{white-space:nowrap;font-size:11px}.goalHero{padding:24px;display:block}.goalHeroAmount{text-align:left;margin-top:24px}.goalCard{padding:18px}.goalNumbers strong{font-size:19px}.goalActions button{flex:1}.amountChoices{flex-wrap:wrap}.amountChoices button{min-width:29%}}
/* Formularios de pagos, calendario e Histórico. */
.backCalendar{background:#225648!important;border-color:#225648!important;color:#fff!important;font-weight:750;box-shadow:0 5px 13px #173f3124}.backCalendar:hover{background:#183e34!important;filter:none}.monthPaymentsLink{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;background:#e9f3e5;color:#24503b;border:1px solid #bfd4bd;border-radius:10px;padding:9px 11px;font-size:11px;font-weight:750}.monthPaymentsLink:hover{background:#dcebd8}.payFormSection{grid-column:1/-1;border-top:1px solid #e3ebe3;margin-top:8px;padding-top:23px}.payFormSection h3{font-size:16px;margin:0 0 5px}.payFormSection p{margin:0 0 18px}.payFormSection .formgrid{margin-top:15px}.readonlyMovement{min-height:44px;display:flex;align-items:center;padding:11px 13px;background:#f0f3f0;border:1px solid #dfe6de;border-radius:10px;color:#41554a;font-weight:700}.payFormNotice{background:#f6f9f4;border:1px solid #e1eade;border-radius:16px;padding:19px}.remindButton{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;min-width:235px;border:1px solid #cfddcd;border-radius:13px;background:#f0f4ef;color:#435a4c;padding:12px 15px;font-size:13px;font-weight:750;cursor:pointer}.remindButton:has(input:checked){background:#225648;color:white;border-color:#225648}.remindButton input{appearance:none;width:41px!important;height:23px!important;background:#a8b7ad;border-radius:999px;position:relative;cursor:pointer;flex:none}.remindButton input:before{content:'';position:absolute;width:17px;height:17px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .15s}.remindButton input:checked{background:var(--action)}.remindButton input:checked:before{transform:translateX(18px);background:#1b4635}.reminderDays{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.dayChoice{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid #d9e5d7;border-radius:999px;padding:8px 11px;font-size:11px;cursor:pointer}.dayChoice:has(input:checked){background:#e3f3d5;border-color:#9bbd82;color:#234d37;font-weight:750}.dayChoice input{accent-color:#225648}.frequencyDetail{grid-column:1/-1;display:flex;gap:13px;align-items:end;flex-wrap:wrap}.frequencyDetail[hidden]{display:none}.frequencyDetail .field{min-width:155px}.schedulePreview{grid-column:1/-1;color:#3c5949;background:#f1f6ee;border-radius:9px;padding:10px 12px;font-size:11px}.inlineCategoryNew[hidden]{display:none}.deleteActions{margin-right:auto;display:flex;gap:7px;flex-wrap:wrap}.deleteActions .danger{background:#fff7f4;border-color:#eedbd4}.historyGate{max-width:560px;margin:28px auto;padding:30px}.historyGateIcon{width:55px;height:55px;border-radius:17px;background:#e7f2df;display:grid;place-items:center;color:#28513a;font-size:26px;margin-bottom:19px}.historyGate h2{font-size:23px}.historyGate p{max-width:430px}.historyGate .field{margin:17px 0}.historyGate input{max-width:360px}.historyTools{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:17px 0}.historyTools input,.historyTools select{border:1px solid #dce6db;border-radius:9px;padding:10px;background:#fff;font-size:12px}.historyTools input[type=search]{min-width:220px;flex:1}.historyFilters{display:flex;gap:7px;flex-wrap:wrap;margin:17px 0}.historyTable td{white-space:normal;min-width:100px;vertical-align:top}.historyTable td:first-child{white-space:nowrap}.historyTable .historyNote{max-width:200px;white-space:normal}.historyCount{font-size:11px;color:#607368}.historyNotice{font-size:11px;color:#607368;line-height:1.5}.historyActions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.historyTop{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.historyTop h1{margin-top:4px}.historyTop .historyActions{flex:none}.historyMetrics{display:flex;gap:12px;flex-wrap:wrap;margin:15px 0}.historyMetrics .tag{font-size:11px;padding:8px 10px}@media(max-width:700px){.payFormSection{grid-column:auto}.payFormSection .formgrid{grid-template-columns:1fr}.historyGate{padding:20px}.historyTop{display:block}.historyActions{justify-content:flex-start;margin:15px 0}.historyTools>*{width:100%}.monthPaymentsLink{font-size:10px}}
.savingHero{background:#eaf3ee;border:1px solid #d5e5da}.savingHero .eyebrow{color:#426b52}.savingHero:after{border-color:#22564816;box-shadow:0 0 0 35px #22564808,0 0 0 70px #22564806}.goalIcon svg{width:27px;height:27px}.goalChoiceBlock{border:0;padding:0;margin:2px 0 7px;min-width:0}.goalChoiceBlock legend{font-size:12px;font-weight:700;margin-bottom:10px;color:#274535}.goalIconChoices,.goalColorChoices{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.goalIconChoice,.goalColorChoice{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;min-height:75px;border:1px solid #dce8dd;border-radius:13px;background:#fff;color:#355744;font-size:10px;text-align:center;cursor:pointer;padding:8px 3px}.goalIconChoiceArt svg{width:26px;height:26px}.goalIconChoice:has(input:checked),.goalColorChoice:has(input:checked){border:2px solid #225648;background:#edf5ee;box-shadow:0 0 0 2px #22564815}.goalIconChoice input,.goalColorChoice input{position:absolute;opacity:0;width:1px;height:1px}.goalIconChoice:focus-within,.goalColorChoice:focus-within{outline:3px solid #739726;outline-offset:2px}.goalColorSwatch{width:27px;height:27px;border-radius:50%;background:var(--swatch);box-shadow:0 0 0 1px #1e3f3424}.movementPills{margin-bottom:8px}.pillGroupLabel{font-size:10px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:#607566;margin-right:4px}.movementPills .pill{font-weight:650}.categoryPills{padding-bottom:10px;border-bottom:1px solid #e7eee7}@media(max-width:700px){.goalIconChoices,.goalColorChoices{grid-template-columns:repeat(3,minmax(0,1fr))}}

.goalEmpty>span svg{width:38px;height:38px;color:#225648}
.savingHero{background:linear-gradient(125deg,#eaf4ed 0%,#f0f5ed 56%,#f7f4e9 100%);border-color:#d8e8db;box-shadow:0 14px 34px #234f3520}.savingHero .goalHeroAmount{background:#225648;border-radius:18px;padding:20px 23px;box-shadow:0 12px 24px #173d2b29}.savingHero .goalHeroAmount small,.savingHero .goalHeroAmount span{color:#d7e7d9}.savingHero .goalHeroAmount strong{color:#d2e9d0}.savingHero:before{content:'';position:absolute;width:210px;height:210px;left:38%;bottom:-140px;border-radius:50%;border:1px solid #517d6224;box-shadow:0 0 0 24px #517d6208,0 0 0 50px #517d6208;pointer-events:none}.goalIconChoice,.goalColorChoice{min-height:61px}.goalIconChoiceArt svg{width:29px;height:29px}.goalColorSwatch{width:31px;height:31px}.goalDelete,.deleteRowAction{color:#9a4f43!important}.profileHistoryLink{font-weight:750;color:#225648;text-decoration:underline;text-underline-offset:3px}.historyArchived{background:#fff0eb;color:#915044}
/* Acuerdos y notificaciones */
.sharingIntro{max-width:720px;margin:-10px 0 22px;color:#52685e;line-height:1.55}.sharingMode{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.sharingMode p{flex:1;line-height:1.55}.sharingModeIcon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#e9f2ec;color:#225648;font-size:25px}.sharingMode .primary{margin-top:10px}.sharingRowTop{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.sharingRowTop b{display:block;font-size:17px}.sharingRowTop small{display:block;margin-top:5px;color:#65776e}.sharingRow p{color:#52685e}.shareSplitTools{display:flex;align-items:end;gap:18px;margin:24px 0 12px}.shareSplitTools .field{max-width:220px}.shareSplitTools span{color:#66786e;font-size:13px;padding-bottom:12px}.shareItem{border:1px solid #dce7df;border-radius:14px;padding:15px;margin:10px 0;background:#fcfefd}.shareItemTitle{display:flex;gap:12px;align-items:center}.shareItemTitle small{display:block;margin-top:4px;color:#65776e}.shareInputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-top:15px}.shareInputs[hidden]{display:none}.shareInputs .field{font-size:12px}.shareInputs input{width:100%}.shareMembers{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.shareNote{padding:14px;background:#f3f7f4;border-radius:10px}.shareCombined{display:flex;gap:20px;margin:20px 0}.shareCombined>div{flex:1;padding:15px;border-radius:12px;background:#edf4ee}.shareCombined small{display:block;color:#52685e}.shareCombined b{display:block;font-size:20px;margin-top:6px}.projectionChoice p{font-size:16px;line-height:1.6;max-width:680px}.notificationBell{position:relative;display:grid;place-items:center;width:42px;height:42px;border:1px solid #d8e4da;border-radius:12px;background:#fff;color:#225648;cursor:pointer}.notificationBell:hover{background:#eaf3ed}.notificationBell span{position:absolute;right:-6px;top:-6px;min-width:18px;height:18px;padding:1px 4px;border-radius:20px;background:#a94139;color:white;font-size:10px;font-weight:700}.notificationPanel{position:absolute;right:75px;top:60px;z-index:1000;width:min(390px,calc(100vw - 25px));max-height:min(70vh,550px);overflow:auto;background:white;border:1px solid #dce7df;border-radius:15px;box-shadow:0 15px 42px #17382a2d}.notificationPanel[hidden]{display:none}.notificationHead{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:15px;border-bottom:1px solid #e7eee9}.notificationHead .quiet{font-size:12px}.notificationItem{display:flex;flex-direction:column;text-align:left;width:100%;gap:4px;padding:14px 16px;border:0;border-bottom:1px solid #edf2ee;background:white;cursor:pointer}.notificationItem.unread{background:#f0f7f0;border-left:3px solid #225648}.notificationItem:hover{background:#eaf3ed}.notificationItem span{color:#4b6255;font-size:13px}.notificationItem small{color:#74877b}.topright{position:relative}@media(max-width:700px){.notificationPanel{right:0;top:50px}.shareSplitTools{display:block}.shareCombined{flex-direction:column}}
.sharedEconomyPanel{margin-top:22px}.sharedEconomyGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}.sharedEconomyGrid article{padding:18px;border:1px solid #dce7df;border-radius:14px;background:#f8fbf8}.sharedEconomyGrid article>b{display:block;font-size:16px;margin-bottom:14px}.sharedEconomyGrid article>div{display:flex;justify-content:space-between;gap:12px;padding:7px 0;color:#52685e}.sharedEconomyGrid article strong{color:#225648}.sharedEconomyGrid article button{margin-top:12px}
.shareRegistrationInvite{margin-top:14px;padding:18px;border:1px solid #d7e5da;border-radius:14px;background:#f5faf6;color:#294b3a}.shareRegistrationInvite strong{display:block;font-size:16px}.shareRegistrationInvite p{line-height:1.5;margin:8px 0}.shareRegistrationInvite>small{display:block;color:#587260;margin:8px 0 16px;overflow-wrap:anywhere}.shareRegistrationInvite .field{display:block}.shareRegistrationInvite input{width:100%;margin-top:7px}.shareRegistrationInvite .formactions{margin-top:12px;justify-content:flex-start}

/* Gastos libres y salud del presupuesto */
.freeIntro{max-width:810px;color:#52685e;line-height:1.6;margin:-8px 0 22px}.freeSummary{display:grid;grid-template-columns:2fr 1fr 1fr;gap:15px;margin-bottom:18px}.freeHero{background:#eef5ef;border:1px solid #cfe0d2}.freeHero.warning{background:#fff6e9;border-color:#e9cda4}.freeHero.danger{background:#fff0ee;border-color:#e6beb7}.freeHero>strong{display:block;color:#214e3a;font-size:30px;margin:10px 0}.freeHero p,.freeFact span{color:#52675b;line-height:1.5}.freeFact{display:flex;flex-direction:column;justify-content:center;gap:10px}.freeFact small{color:#677d6e}.freeFact strong{font-size:23px;color:#1e4938}.freeProgress{height:12px;border-radius:999px;background:#dce7dc;overflow:hidden}.freeProgress i{display:block;height:100%;background:#39825a;border-radius:999px}.warning .freeProgress i{background:#c68a2e}.danger .freeProgress i{background:#c65c4c}.freeColumns{display:grid;grid-template-columns:1.2fr 1fr;gap:18px;margin-bottom:18px}.freeColumns .panel{min-width:0}.freeColumns p{line-height:1.55;color:#576b5f}.freeCheck{display:flex;align-items:center;gap:9px;font-size:12px;margin-top:13px;color:#4d6255}.freeGuidance{background:#f7f9f2}.freeToolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0;flex-wrap:wrap}.freeToolbar label{display:flex;align-items:center;gap:8px;font-size:12px}.freeToolbar select{border:1px solid #d8e5da;border-radius:9px;padding:9px;background:#fff}.freeRow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:15px;border-top:1px solid #e9eee9;padding:14px 0}.freeRow small{display:block;color:#6a7c70;margin-top:4px;line-height:1.4}.freeRow>div:last-child{display:flex;gap:6px}.freeRow>strong{color:#244d3b}.freeQuick{display:flex;align-items:center;justify-content:space-between;gap:30px;border-radius:18px;padding:20px 24px;margin:0 0 18px;background:#eff5ef;border:1px solid #d7e4d8}.freeQuick:hover{background:#e6f1e8}.freeQuick.warning{background:#fff6ea;border-color:#eacfa4}.freeQuick.danger{background:#fff0ed;border-color:#e6c2bb}.freeQuick h2{font-size:18px;margin:6px 0}.freeQuick p{color:#506456;max-width:540px;margin:0;line-height:1.5}.freeQuickFigures{min-width:240px;display:grid;gap:10px;color:#2b573f}.freeQuickFigures b{font-weight:500;color:#617567}.freeQuickFigures strong{font-size:12px}.budgetSignal{display:flex;align-items:center;gap:15px;border-radius:13px;padding:15px 18px;margin:0 0 16px;line-height:1.5;background:#fff6e8;border:1px solid #e8d1a6;color:#664d25}.budgetSignal.danger{background:#fff0ed;border-color:#e9bfb6;color:#8b3c32}.budgetSignal b{flex:none}.budgetSignal span{flex:1}.budgetSignal a{font-weight:700;text-decoration:underline;white-space:nowrap}.actionHint{position:fixed;z-index:10000;max-width:250px;background:#183e34;color:#fff;padding:9px 11px;border-radius:9px;box-shadow:0 8px 24px #17382a42;font-size:12px;line-height:1.4}button[aria-disabled="true"]{background:#e3e6e4!important;color:#6c7670!important;border-color:#d4d9d5!important;box-shadow:none!important;cursor:help!important;filter:none!important}button[aria-disabled="true"]:hover{filter:none!important}.shareItemMode{max-width:210px;margin:10px 0 0 30px}.shareItemMode select{width:100%}
/* Navegación compacta en escritorio y cajón completo en móvil */
.sidebarTop{display:flex;align-items:center;justify-content:space-between;gap:6px}.sidebarTop .brand{min-width:0}.sidebarTop .brandLabel{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.navToggle{display:grid;place-items:center;width:28px;height:28px;padding:0;border-radius:8px;background:#f1f6ef;color:#225648;font-size:20px;flex:none}.topbarStart{display:flex;align-items:center;gap:12px;min-width:0}#mobileMenuButton{display:none;font-size:21px;line-height:1;padding:7px 10px}#navBackdrop{display:none}.layout.sidebarCollapsed{grid-template-columns:68px minmax(0,1fr)}.sidebarCollapsed .sidebar{padding-left:10px;padding-right:10px}.sidebarCollapsed .sidebarTop{flex-direction:column;gap:12px}.sidebarCollapsed .brandLabel,.sidebarCollapsed .navlabel,.sidebarCollapsed nav a span,.sidebarCollapsed .navParent span,.sidebarCollapsed .sidefooter{display:none}.sidebarCollapsed nav a,.sidebarCollapsed .navParent{justify-content:center;padding:11px 0;font-size:19px}.sidebarCollapsed .subnav{display:none!important}.sidebarCollapsed .navToggle{width:36px}.sidebarCollapsed .sidebar nav+nav{margin-top:18px}
@media(max-width:700px){.layout,.layout.sidebarCollapsed{display:block;padding:0}.sidebar,.sidebarCollapsed .sidebar{position:fixed!important;top:0;left:0;bottom:0;width:min(310px,86vw);height:100dvh!important;overflow-y:auto;z-index:1100;border-radius:0;transform:translateX(-110%);transition:transform .24s ease;box-shadow:12px 0 30px #102a1c24;padding:18px!important}.layout.mobileMenuOpen .sidebar{transform:translateX(0)}.sidebar nav,.sidebarCollapsed .sidebar nav{display:block!important;overflow:visible!important}.sidebar nav a,.sidebarCollapsed nav a,.sidebar .navParent,.sidebarCollapsed .navParent{display:flex!important;justify-content:flex-start!important;font-size:14px!important;padding:11px 13px!important;gap:11px;white-space:normal}.sidebar nav a span,.sidebarCollapsed nav a span,.sidebar .navParent span,.sidebarCollapsed .navParent span,.sidebar .brandLabel,.sidebarCollapsed .brandLabel,.sidebar .navlabel,.sidebarCollapsed .navlabel,.sidebar .sidefooter,.sidebarCollapsed .sidefooter{display:initial!important}.sidebar .subnav[hidden]{display:none!important}.sidebar .subnav:not([hidden]){display:block!important}.sidebarTop,.sidebarCollapsed .sidebarTop{flex-direction:row!important}.sidebar .navToggle{width:33px}#mobileMenuButton{display:grid;place-items:center}#navBackdrop:not([hidden]){display:block;position:fixed;inset:0;background:#0d251aa6;z-index:1090;border:0;border-radius:0;padding:0}body.menuOpen{overflow:hidden}.freeSummary,.freeColumns{grid-template-columns:1fr}.freeQuick{display:block}.freeQuickFigures{min-width:0;margin-top:17px}.freeRow{grid-template-columns:1fr auto}.freeRow>div:last-child{grid-column:1/-1}.budgetSignal{display:block}.budgetSignal span,.budgetSignal a{display:block;margin-top:6px}.topbar{gap:8px}.topbarStart{gap:6px}#breadcrumb{font-size:11px}}

/* Adaptación de tablet y teléfonos: el contenido no depende del ancho de escritorio. */
.mobileDayCount{display:none}
@media(min-width:901px) and (max-width:1150px){.sidebarTop .brand{font-size:12px;gap:6px;letter-spacing:-.3px}.sidebarTop .navToggle{width:24px;height:24px;font-size:17px}.sidebar{padding-left:11px;padding-right:11px}}
@media(max-width:900px){
 .layout,.layout.sidebarCollapsed{display:block;padding:0}
 .page{padding:8px clamp(16px,3vw,28px) 0}
 .topbar{padding:0 clamp(16px,3vw,28px)}
 .sidebar,.sidebarCollapsed .sidebar{position:fixed!important;top:0;left:0;bottom:0;width:min(310px,86vw);height:100dvh!important;overflow-y:auto;z-index:1100;border-radius:0;transform:translateX(-110%);transition:transform .24s ease;box-shadow:12px 0 30px #102a1c24;padding:18px!important}
 .layout.mobileMenuOpen .sidebar{transform:translateX(0)}
 .sidebar nav,.sidebarCollapsed .sidebar nav{display:block!important;overflow:visible!important}
 .sidebar nav a,.sidebarCollapsed nav a,.sidebar .navParent,.sidebarCollapsed .navParent{display:flex!important;justify-content:flex-start!important;font-size:14px!important;padding:11px 13px!important;gap:11px;white-space:normal}
 .sidebar nav a span,.sidebarCollapsed nav a span,.sidebar .navParent span,.sidebarCollapsed .navParent span,.sidebar .brandLabel,.sidebarCollapsed .brandLabel,.sidebar .navlabel,.sidebarCollapsed .navlabel,.sidebar .sidefooter,.sidebarCollapsed .sidefooter{display:initial!important}
 .sidebar .subnav[hidden]{display:none!important}.sidebar .subnav:not([hidden]){display:block!important}
 .sidebarTop,.sidebarCollapsed .sidebarTop{flex-direction:row!important}.sidebar .navToggle{width:33px}
 #mobileMenuButton{display:grid;place-items:center;flex:none}
 #navBackdrop:not([hidden]){display:block;position:fixed;inset:0;background:#0d251aa6;z-index:1090;border:0;border-radius:0;padding:0}
 body.menuOpen{overflow:hidden}
 #breadcrumb{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .topbarStart{min-width:0;flex:1}.topright{flex:none;gap:8px}
 .freeSummary,.freeColumns{grid-template-columns:1fr}.freeQuick{display:block}.freeQuickFigures{min-width:0;margin-top:17px}
 .budgetSignal{display:block}.budgetSignal span,.budgetSignal a{display:block;margin-top:6px}
 .definition>*{min-width:0;overflow-wrap:anywhere}
 .shareItemTitle span,.sharingRowTop>div,.goalCard,.goalHero>div,.panelhead>div{min-width:0;overflow-wrap:anywhere}
 .tablewrap{overflow:visible}
 .tablewrap table{display:block;width:100%;white-space:normal}
 .tablewrap thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .tablewrap tbody{display:grid;gap:10px;min-width:0}
 .tablewrap tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 12px;border:1px solid #e0e9e2;border-radius:13px;background:#fff;padding:12px;min-width:0}
 .tablewrap tbody td{display:block;min-width:0!important;max-width:none!important;border:0;padding:5px 0;white-space:normal;overflow-wrap:anywhere;align-self:start}
 .tablewrap tbody td::before{content:attr(data-label);display:block;color:#718075;font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;margin-bottom:5px}
 .tablewrap tbody td:first-child{grid-column:1/-1;border-bottom:1px solid #edf1ed;padding-bottom:10px;margin-bottom:3px}
 .tablewrap tbody td:first-child::before{display:none}
 .tablewrap tbody td:last-child{grid-column:1/-1;border-top:1px solid #edf1ed;margin-top:4px;padding-top:9px}
 .tablewrap tbody td.money{text-align:left}
 .tablewrap tbody td:last-child button{margin:2px 6px 2px 0}
 .weeklyRow.warning,.weeklyRow.alert{border-color:#e7cfaa}
 .weeklyRow.alert{border-color:#e6b9a9}
 .historyTable tbody td:first-child{font-weight:700}
 .historyTable tbody td:first-child::before{display:block}
}
@media(max-width:600px){
 .topbar{gap:8px}.topbarStart{gap:8px}
 #saveStatus:not(.error):not(.confirmed),#logout{display:none}
 .notice{align-items:center}.notice span{min-width:0;overflow-wrap:anywhere}
 .heading .actions{gap:8px}.heading .actions>*{min-width:0}
 .metric .value{white-space:normal;overflow-wrap:anywhere;line-height:1.08}
 .freeRow{grid-template-columns:minmax(0,1fr) auto}.freeRow>div:last-child{grid-column:1/-1}
 .calendarBodySurface{padding:7px;border-radius:12px}
 .calendarWide{gap:3px}
 .calendarWide .weekday{font-size:10px;padding:5px 0}
 .calendarWide .calday,.calendarPage .calendarWide .calday,.calendarDialog .calendarSlides .calday{min-height:62px;padding:5px 3px;position:relative;overflow:hidden;font-size:11px}
 .calendarWide .calday b{display:inline-grid;place-items:center;min-width:22px;height:22px}
 .calendarWide .calentry,.calendarWide .remaining{display:none}
 .calendarWide .mobileDayCount{display:grid;place-items:center;position:absolute;right:4px;bottom:5px;min-width:20px;height:20px;padding:0 3px;border-radius:999px;background:#e3efdc;color:#285c3e;font-size:10px;font-weight:800}
 .calendarWide .calday.selected .mobileDayCount{background:#c5e2ae}
 .calendarTools{gap:7px;flex-wrap:wrap}.calendarTools strong{font-size:16px}
 .calendarTools label{width:100%;margin:3px 0 0}
 .calendarPage{padding:16px 10px;min-height:0}
 .calendarCarousel{min-height:430px}
 dialog{width:calc(100% - 20px);max-height:calc(100dvh - 20px);padding:20px 16px}
 .dialoghead{position:sticky;top:-20px;z-index:3;background:#fff;padding:15px 0 8px;margin-top:-15px}
 .notificationPanel{position:fixed;left:10px;right:10px;top:58px;width:auto;max-height:calc(100dvh - 70px)}
 #toast{bottom:max(12px,env(safe-area-inset-bottom));width:calc(100% - 24px);max-width:420px}
}
@media(max-width:420px){
 .summary{grid-template-columns:minmax(0,1fr)}
 .metric{min-height:0;padding:18px}
 .metric .value{font-size:clamp(24px,8vw,32px);margin:12px 0 8px}
 .metric.featured{min-height:130px}
 .freeFact{gap:7px}
 .goalHeroAmount{min-width:0}.goalHeroAmount strong{white-space:normal;overflow-wrap:anywhere}
 .goalIconChoices,.goalColorChoices{grid-template-columns:repeat(2,minmax(0,1fr))}
 .shareInputs{grid-template-columns:minmax(0,1fr)}
 .formactions>*{max-width:100%}
}
@media(max-width:600px){.calendarCarousel{min-height:350px}}
dialog .dialoghead{position:sticky;top:-26px;z-index:4;background:#fff;padding:15px 0 8px;margin-top:-15px;box-shadow:none;transition:box-shadow .18s ease}
dialog.modalScrolled .dialoghead{box-shadow:0 10px 14px -12px rgba(23,35,32,.55)}
dialog.calendarDialog{overflow:hidden}
@media(max-width:600px){dialog .dialoghead{top:-20px}}

/* Navegación: control independiente y subniveles legibles en ambos tamaños. */
.sidebar{overflow-y:auto}
.sidebar nav{margin-bottom:18px}
.sidebar .sidefooter{border-radius:12px;padding:12px 6px 0;color:var(--ink)}
.sidebar .sidefooter:hover,.sidebar .sidefooter.active{background:#f0f5ed}
.sidebar .sidefooter>div{min-width:0;overflow-wrap:anywhere}
.sidebarCollapsed .sidebar .sidefooter{display:flex;justify-content:center;padding:12px 0 0}
.sidebarCollapsed .sidefooter>div{display:none}
.sidebarTop,.sidebarCollapsed .sidebarTop{display:block}
.sidebarTop .brand{padding-bottom:0}
.sidebarToggleRow{display:flex;align-items:center;min-height:36px;margin:13px 0 20px}
.sidebarCollapsed .sidebarToggleRow{justify-content:center}
.sidebar .navParent .navIcon{width:18px;height:18px;flex:none}
.sidebar .subnav a{display:flex;align-items:center;gap:10px}
.sidebar .subnav .navIcon{width:16px;height:16px;flex:none}
.sidebarCollapsed .subnav:not([hidden]){display:grid!important;width:39px;margin:0 auto 8px;padding:4px 0 4px 5px;border-left:2px solid #a9c8ad;gap:3px}
.sidebarCollapsed .sidebar .subnav a{display:grid;place-items:center;width:32px;height:32px;padding:0!important;border-radius:9px}
.sidebarCollapsed .subnav a span{display:none!important}
.sidebarCollapsed .subnav .navIcon{width:17px;height:17px}
@media(max-width:900px){
 .sidebarCollapsed .sidebar .sidefooter{justify-content:flex-start}
 .sidebarCollapsed .sidefooter>div{display:block}
 .sidebarCollapsed .sidebarToggleRow{justify-content:flex-start}
 .sidebar .subnav:not([hidden]),.sidebarCollapsed .subnav:not([hidden]){display:block!important;width:auto;margin:0 0 8px 20px;padding:0 0 0 12px;border-left:1px solid #a9c8ad}
 .sidebarCollapsed .sidebar .subnav a{display:flex!important;justify-content:flex-start;gap:10px;width:auto;height:auto;padding:10px 13px!important}
 .sidebarCollapsed .subnav a span{display:initial!important}
}

/* Una sola barra superior para aprovechar mejor la altura disponible. */
.topbar{position:relative;height:56px;gap:12px}
.topbarPurpose{font-size:11px;white-space:nowrap;color:#66756d}
.topright{gap:10px}
.exportButton{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:8px 10px;font-size:11px;white-space:nowrap;background:#fff}
.exportButton svg{display:block;flex:none}
.notificationBell{display:flex;align-items:center;justify-content:center;padding:0;line-height:0;flex:none}
.notificationBell svg{display:block;flex:none}
.page{padding-top:0}
@media(max-width:600px){
 .topbar{padding:0 12px;gap:5px}
 .topbarStart{gap:5px}
 #mobileMenuButton{padding:6px 7px;font-size:19px}
 .topbarPurpose{font-size:9px;letter-spacing:-.18px;overflow:hidden;text-overflow:clip}
 .topright{gap:5px}
 .localbadge{display:none}
 .exportButton{width:32px;min-height:32px;padding:0}
 .exportButton span{display:none}
 .notificationBell{width:36px;height:36px}
 #accountButton{width:32px;height:32px}
 .topbar:has(#saveStatus.error) .topbarPurpose{display:none}
 .savestatus.error{max-width:115px;font-size:10px;line-height:1.15}
}

#saveStatus.savestatus{flex:none;border:1px solid transparent;border-radius:10px;padding:8px 11px;min-height:35px;text-align:center;text-decoration:none;white-space:normal;box-shadow:none;transition:background .2s,border-color .2s,box-shadow .2s}
#saveStatus.savestatus.error{max-width:none;background:#fce8e5;border-color:#cf655d;color:#902c25;font-size:11px;font-weight:800;line-height:1.2;box-shadow:0 0 0 3px #cf655d16;cursor:pointer}
#saveStatus.savestatus.error:hover,#saveStatus.savestatus.error:focus-visible{background:#f7d7d1;box-shadow:0 0 0 4px #cf655d30}
#saveStatus.savestatus.confirmed{background:#e9f6ee;border-color:#94c5a4;color:#245a3a;font-size:11px;font-weight:700}
#saveStatus.savestatus:disabled{opacity:1;cursor:default}
#passwordForm{border-top:1px solid var(--line);margin-top:22px;padding-top:22px}
#passwordForm h2{margin-bottom:8px}
#passwordForm p{font-size:12px;color:var(--muted);line-height:1.5}
#passwordForm .field{margin-top:13px}
#passwordError{color:#a74438;font-size:12px}

/* Ideas diarias: lectura tranquila, tres láminas y avance de 24 horas. */
.dailyTips{position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:405px;background:linear-gradient(155deg,#f8fbf6 0%,#edf4e9 100%);border-color:#dce9d8;box-shadow:0 10px 30px #213d2410}
.dailyTips:before{content:'“';position:absolute;right:11px;top:81px;font:120px/1 Georgia,serif;color:#aac6a328;pointer-events:none}
.tipTop,.tipFooter{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px}
.tipTop{align-items:flex-start}
.tipOverline{font-size:9px;letter-spacing:1.65px;font-weight:750;color:#5b7562;margin-bottom:8px}
.dailyTips h2{font-size:18px;letter-spacing:-.45px;color:#193f30}
.tipClock{width:48px;height:48px;position:relative;flex:none;color:#234b38}
.tipClock svg{display:block;width:48px;height:48px;transform:rotate(-90deg)}
.tipClock circle{fill:none;stroke-width:3.5}
.tipRingTrack{stroke:#274a3a}
.tipRingFill{stroke:#a9d798;stroke-linecap:round;transition:stroke-dashoffset .7s linear}
.tipClock span{position:absolute;inset:0;display:grid;place-items:center;font-size:9px;font-weight:750}
.tipSlide{position:relative;z-index:1;display:flex;flex-direction:column;flex:1;min-height:295px;padding:22px 0 16px}
.tipSection{font-size:10px;line-height:1.45;letter-spacing:.2px;font-weight:700;color:#54735d;max-width:95%}
.dailyTips .tipPhrase{font-size:15px;line-height:1.57;letter-spacing:-.12px;font-weight:570;color:#1d382d;margin:19px 0 22px}
.tipCredit{margin-top:auto;padding-top:14px;border-top:1px solid #cfdfcb;display:flex;flex-direction:column;gap:4px;font-size:11px;line-height:1.4;color:#5a6b5b}
.tipCredit strong{color:#254a35;font-size:12px}
.tipFooter{border-top:1px solid #dce8d8;padding-top:12px;color:#718477;font-size:10px;font-weight:650}
.tipDots{display:flex;align-items:center;gap:2px}
.tipDot{display:grid;place-items:center;width:30px;height:30px;padding:0;border:0;background:transparent;border-radius:50%}
.tipDot:before{content:'';width:8px;height:8px;background:#aabdac;border-radius:50%;transition:width .2s,background .2s}
.tipDot.active:before{width:22px;border-radius:8px;background:#285842}
.tipDot:hover{background:#e1ebdc}
.tipLoading{position:relative;z-index:1;min-height:295px;display:grid;place-items:center;text-align:center;color:#667c69;font-size:13px}
@media(max-width:1150px){.dailyTips{min-height:385px}.tipSlide{min-height:265px}}
@media(max-width:700px){.dailyTips{min-height:365px}.tipSlide{min-height:245px}.dailyTips .tipPhrase{font-size:16px}}
@media(prefers-reduced-motion:reduce){.tipRingFill,.tipDot:before{transition:none}}

/* Menú: iconos de la misma altura y geometría estable al contraerlo. */
.layout{transition:grid-template-columns .3s cubic-bezier(.22,.8,.25,1)}
@media(min-width:901px) and (max-width:1150px){.layout{grid-template-columns:210px minmax(0,1fr)}}
.sidebar{overflow-x:hidden}
.sidebar .navlabel{display:block;min-height:15px;margin:0 0 12px;padding:0 13px;font-size:11px;line-height:15px;letter-spacing:1.5px;font-weight:700;white-space:nowrap;transition:opacity .18s ease}
.sidebar nav{gap:5px;margin-bottom:27px}
.sidebar nav a,.sidebar .navParent{display:flex;align-items:center;justify-content:flex-start;gap:9px;width:100%;height:43px;min-height:43px;padding:10px 13px;border:0;border-radius:12px;background:transparent;color:var(--muted);font-size:13px;line-height:1.2;font-weight:500;text-align:left;white-space:nowrap;transition:background-color .2s ease,color .2s ease,gap .3s ease}
.sidebar nav a:hover,.sidebar .navParent:hover{background:#f0f4ee}
.sidebar nav a.active,.sidebar .navParent.active{background:var(--ink);color:#fff;font-weight:600}
.sidebar nav a.active:hover,.sidebar .navParent.active:hover{background:var(--ink)}
.sidebar nav a.active:first-letter{color:inherit}
.sidebar .navIconSlot{display:grid;place-items:center;width:25px;height:20px;flex:0 0 25px;color:inherit}
.sidebar nav>a>.navIconSlot,.sidebar .navParent>.navIconSlot{transition:transform .3s ease}
.sidebar .navIconSlot svg{display:block;width:auto;height:18px;max-width:25px;flex:none}
.sidebar .navText{display:block;min-width:0;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.2;font-weight:inherit;color:inherit;opacity:1;transition:max-width .3s ease,opacity .18s ease,transform .3s ease}
.sidebar .navChevron{margin-left:auto;max-width:18px;overflow:hidden;color:inherit;font-size:16px;line-height:1;transition:max-width .3s ease,opacity .18s ease,transform .2s ease}
.sidebar .subnav{margin:0 0 7px 22px;padding-left:10px;border-left:1px solid #c9dacb}
.sidebar .subnav a{height:38px;min-height:38px;padding:8px 9px;font-size:12px}
.sidebar .subnav .navIconSlot{width:23px;flex-basis:23px}
.sidebar .subnav .navIconSlot svg{height:16px;max-width:23px}
.sidebar .subnav .navText{font-size:12px}
.sidebarTop .brand{gap:10px;overflow:hidden}
.sidebarTop .brandLabel{display:block;max-width:150px;opacity:1;transition:max-width .3s ease,opacity .18s ease}
.sidebarToggleRow,.sidebarCollapsed .sidebarToggleRow{justify-content:flex-start}
.sidebar .navToggle,.sidebarCollapsed .navToggle{width:34px;height:34px;font-size:20px;transform:rotate(180deg);transition:transform .3s ease,background-color .2s ease}
.sidebarCollapsed .navToggle{transform:rotate(0)}
.sidebar .sidefooter{gap:11px}
.sidebar .sidefooter>div{display:block;max-width:155px;opacity:1;overflow:hidden;transition:max-width .3s ease,opacity .18s ease}
.sidebarCollapsed .sidebar{padding-left:15px;padding-right:5px}
.sidebarCollapsed .sidebarTop .brand{gap:0}
.sidebarCollapsed .sidebarTop .brandLabel{display:block;max-width:0;opacity:0}
.sidebarCollapsed .sidebar .navlabel{display:block;opacity:0;pointer-events:none}
.sidebarCollapsed .sidebar nav a,.sidebarCollapsed .sidebar .navParent{justify-content:center;gap:0;padding:10px 0;font-size:13px}
.sidebarCollapsed .sidebar .navIconSlot{display:grid}
.sidebarCollapsed .sidebar nav>a>.navIconSlot,.sidebarCollapsed .sidebar .navParent>.navIconSlot{transform:translateX(1.5px)}
.sidebarCollapsed .sidebar .navText{display:block;max-width:0;opacity:0;transform:translateX(-5px);pointer-events:none}
.sidebarCollapsed .sidebar .navChevron{display:block;max-width:0;opacity:0;margin:0}
.sidebarCollapsed .sidebar .sidefooter{display:flex;justify-content:flex-start;padding:12px 6px 0;gap:0}
.sidebarCollapsed .sidebar .sidefooter>div{display:block;max-width:0;opacity:0}
.sidebarCollapsed .subnav:not([hidden]){margin:0 auto 7px;padding:0 0 0 5px}
.sidebarCollapsed .sidebar .subnav .navIconSlot{display:grid!important}
@media(max-width:900px){
 .sidebar .navlabel,.sidebarCollapsed .sidebar .navlabel{display:block!important;opacity:1}
 .sidebar .navText,.sidebarCollapsed .sidebar .navText{display:block!important;max-width:190px;opacity:1;transform:none}
 .sidebarTop .brandLabel,.sidebarCollapsed .sidebarTop .brandLabel{display:block!important;max-width:190px;opacity:1}
 .sidebar .navChevron,.sidebarCollapsed .sidebar .navChevron{display:block;max-width:18px;opacity:1;margin-left:auto}
 .sidebar .sidefooter>div,.sidebarCollapsed .sidebar .sidefooter>div{display:block;max-width:190px;opacity:1}
 .sidebar .sidefooter,.sidebarCollapsed .sidebar .sidefooter{gap:11px}
 .sidebar .navToggle,.sidebarCollapsed .navToggle{transform:none}
 .sidebarCollapsed .sidebar nav>a>.navIconSlot,.sidebarCollapsed .sidebar .navParent>.navIconSlot{transform:none}
 .sidebar nav a,.sidebarCollapsed .sidebar nav a,.sidebar .navParent,.sidebarCollapsed .sidebar .navParent{justify-content:flex-start!important;gap:9px!important;height:43px;min-height:43px;padding:10px 13px!important;font-size:13px!important}
 .sidebar .subnav a,.sidebarCollapsed .sidebar .subnav a{height:38px;min-height:38px;padding:8px 9px!important;font-size:12px!important}
}
@media(prefers-reduced-motion:reduce){.layout,.sidebar .navText,.sidebar .navChevron,.sidebarTop .brandLabel,.sidebar .sidefooter>div,.sidebar .navToggle,.sidebar .navlabel{transition:none}}

/* Revisión segura de copias antes de cambiar los datos de la cuenta. */
.importReviewActions{display:flex;align-items:center;gap:7px}
.importReviewActions[hidden],.importReviewBanner[hidden],#importFile[hidden],.exportButton[hidden]{display:none!important}
.importReviewActions button{min-height:36px;padding:8px 11px;font-size:11px;white-space:nowrap}
.importReviewActions .importCommit{background:#8d3e35;border-color:#8d3e35;color:#fff}
.importReviewBanner{background:#fff0e7;border:1px solid #e8bea9;border-radius:14px;color:#713b32;padding:14px 18px;margin:2px 0 17px;font-size:12px;line-height:1.5}
.importReviewBanner strong{color:#71342d}
.importChoice{display:grid;gap:10px;margin:18px 0}
.importChoice label{display:block;padding:15px;border:1px solid #d9e3dc;border-radius:12px;background:#fafcf9;cursor:pointer;font-size:13px}
.importChoice label:has(input:checked){border-color:#275a42;background:#edf5ef}
.importChoice input{accent-color:#275a42;margin-right:8px}
.importChoice small{margin:6px 0 0 25px;line-height:1.45}
.importModalActions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:22px}
.importModalActions button{font-size:12px}
.importModalActions .primary{background:#285842;border-color:#285842;color:#fff}
.importModalActions .importCommit{background:#8d3e35;border-color:#8d3e35;color:#fff}
.importPreviewAlert{margin-bottom:0}
@media(max-width:700px){body.importReview .topbarPurpose{display:none}body.importReview .topbar{height:auto;min-height:60px}body.importReview .topright{gap:5px}.importReviewActions{gap:5px}.importReviewActions button{min-height:32px;padding:7px 8px;font-size:10px}}
/* Notices shown on opening the app remain compact on phones and desktops. */
.startupReminders{display:grid;gap:10px;margin:20px 0;max-height:52vh;overflow:auto}.startupReminder{display:grid;gap:5px;padding:14px 16px;border:1px solid #dce8d9;border-radius:14px;background:#f5faf2;color:#204537}.startupReminder strong{font-size:14px}.startupReminder span{font-size:13px;line-height:1.45;color:#53685b}
/* Keep profile access inside the visible sidebar; only the menu list may scroll on short screens. */
.sidebar{overflow:hidden;min-height:0}
.sidebarMenu{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#cbd6ce transparent}
.sidebar .sidefooter{flex:0 0 52px;min-height:52px;max-height:52px;margin:8px 0 0;padding:7px 6px;border-top:1px solid var(--line);align-self:stretch;box-sizing:border-box}
.sidebar .sidefooter>div{white-space:nowrap}
.sidebarToggleRow{margin:8px 0 13px}
.sidebar nav{margin-bottom:13px}
.sidebar .navlabel{margin-bottom:9px}
@media(min-width:901px){
 .sidebarCollapsed .sidebar{padding-left:10px;padding-right:10px}
 .sidebarCollapsed .sidebarTop .brand{justify-content:center}
 .sidebarCollapsed .sidebarToggleRow{justify-content:center}
 .sidebarCollapsed .sidebar .navlabel{height:10px;min-height:10px;margin:0;padding:0}
 .sidebarCollapsed .sidebar nav a,.sidebarCollapsed .sidebar .navParent{justify-content:center;gap:0;padding:10px 0}
 .sidebarCollapsed .sidebar nav>a>.navIconSlot,.sidebarCollapsed .sidebar .navParent>.navIconSlot{transform:none}
 .sidebarCollapsed .sidebar .sidefooter{justify-content:center;gap:0;padding:7px 0}
 .sidebarCollapsed .sidebar .sidefooter>div{display:none}
}
@media(max-width:900px){
 .sidebar,.sidebarCollapsed .sidebar{overflow:hidden}
 .sidebarMenu{overflow-y:auto;overflow-x:hidden}
 .sidebar .sidefooter,.sidebarCollapsed .sidebar .sidefooter{display:flex!important;flex:0 0 54px;min-height:54px;max-height:54px;align-items:center;padding:7px 6px}
}
/* Identidad de Dico: base original y acciones en azul claro. */
.brandLogo{display:block;width:42px;height:34px;object-fit:contain;flex:0 0 42px}
.authbrand .brandLogo{width:54px;height:44px;flex-basis:54px}
.authLogo[hidden],.authMark[hidden]{display:none!important}
.draftOffer{display:grid;gap:7px;padding:14px 16px;margin-bottom:18px;border:1px solid #cbd9ba;border-radius:14px;background:#f4f8eb;color:#172320}.draftOffer span{font-size:12px;color:#5f6a66}.draftOffer>div{display:flex;gap:8px;flex-wrap:wrap}.draftOffer button:first-child{background:var(--action);border-color:var(--action-border)}.needsAttention{border-color:#a74438!important;box-shadow:0 0 0 2px #a7443833!important}.validationTip{display:block;color:#a6423b;font-size:11px;font-weight:650;margin-top:6px}#modal{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}#modalBody{min-height:0;overflow:visible}#modal .tablewrap{touch-action:pan-x pan-y}@media(max-width:700px){#modal{max-height:calc(100dvh - 20px);overflow-y:auto}#modalBody{overflow:visible}}
.typeCategoryToolbar{display:flex;align-items:center;margin:0 0 10px}.typeCategoryButton{display:inline-flex;gap:8px;align-items:center;border-color:#cbd8d2;background:#f8fbf8;color:#305e4c}.typeCategoryButton svg{flex:none}.activeFilters{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 15px}.activeFilters button{font-size:11px;border-radius:999px;padding:7px 11px;background:#225648;color:#fff;border-color:#225648}.activeFilters button:last-child{background:transparent;color:#5f6a66;border-color:#d8dfd9}.activeFilters span{font-size:16px;margin-left:5px;line-height:0}.filterModalSection{border-top:1px solid var(--line);padding-top:17px;margin-top:17px}.filterModalSection h3{margin-bottom:12px}.filterChoices{display:flex;flex-wrap:wrap;gap:8px}.filterCategoryList{max-height:35vh;overflow-y:auto;padding-right:5px}.filterCategoryRow{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:3px 0}.filterCategoryRow>div{white-space:nowrap}.filterCategoryRow .stateChip{min-width:0;overflow-wrap:anywhere}.filterCategoryRow .quiet{padding:7px 9px}.filterRenameForm{display:flex;gap:6px;width:100%}.filterRenameForm input,#filterCategoryForm input{min-width:0;border:1px solid var(--line);border-radius:9px;padding:9px}#filterCategoryForm{display:flex;align-items:end;gap:8px;margin-top:15px}#filterCategoryForm .field{flex:1;min-width:0}.sortHeader{background:transparent;border:0;padding:2px;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;white-space:nowrap}.sortHeader:hover{color:#225648}@media(max-width:700px){#filterCategoryForm{align-items:stretch;flex-direction:column}.filterCategoryList{max-height:30vh}}
.typeCategoryButton svg{width:18px;height:18px}.sharedSavingsTitle{display:inline-flex;align-items:center;gap:10px}.sharedSavingsTitle svg{display:block;width:auto;height:22px;max-width:31px;flex:none;color:#225648}
.payDayPicker{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-top:9px;padding:13px;background:#f8faf7;border:1px solid #dce5da;border-radius:13px}.payDayPicker[hidden]{display:none}.payDayPicker button{padding:8px 3px;min-height:38px;border-radius:9px;background:#fff}.payDayPicker button.active{background:#225648;border-color:#225648;color:#fff}.payWeekPicker{grid-template-columns:repeat(7,minmax(0,1fr))}.payWeekPicker button{font-size:11px}.inlineCategoryDialog{width:min(420px,calc(100% - 25px));border:0;border-radius:18px;box-shadow:0 25px 75px #0004}.categoryDialogError{color:#a6423b}@media(max-width:420px){.payDayPicker{gap:4px;padding:9px}.payDayPicker button{min-height:34px;font-size:11px}}
#goalSecondDayField[hidden]{display:none}
.payShortMonthPolicy{display:grid;gap:8px;margin:15px 0 0;padding:14px;border:1px solid #BFE0D6;border-radius:13px;background:#E7F4EF}.payShortMonthPolicy[hidden]{display:none}.payShortMonthPolicy legend{padding:0 5px;font-size:13px;font-weight:750;color:#0B6B5A}.payShortMonthPolicy p{margin:0 0 3px;font-size:12px;color:#526875}.payShortMonthPolicy label{display:flex;align-items:center;gap:8px;font-size:12px;line-height:1.35;cursor:pointer}.payShortMonthPolicy input{flex:none;accent-color:#0B7F6B}
.sharedRowMeta{display:block;white-space:normal;color:#5f6a66;max-width:320px;font-size:10px;line-height:1.35;margin-top:5px}.duplicateChoice{border:1px solid #dce7df;background:#edf4ee;border-radius:13px;padding:15px;margin:12px 0}.duplicateChoice b{display:block;margin-bottom:10px}.duplicateChoice>button{margin-top:9px}
#shareAgreementSearch,.shareItemSearch input,.shareItemSearch select{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff;min-width:0}#shareAgreementSearch{width:100%;margin:0 0 14px}.shareItemSearch{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,210px);gap:9px;margin:16px 0}.shareItem[hidden]{display:none!important}@media(max-width:580px){.shareItemSearch{grid-template-columns:1fr}}
.overviewPeriodPanel{margin-bottom:18px}.periodChoices,.periodFilters,.periodDates{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.periodFilters .typeCategoryToolbar,.periodFilters .activeFilters{margin:0}.periodFilters input[type=search],.periodDates input{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff}.periodFilters input[type=search]{min-width:180px;flex:1}.periodDates label{display:flex;gap:7px;align-items:center;font-size:11px;color:#5f6a66}@media(max-width:700px){.periodFilters{display:grid;grid-template-columns:1fr}.periodFilters input[type=search]{width:100%;min-width:0}}
.goalForecast{margin:14px 0;padding:12px 14px;border:1px solid #cbdaca;border-radius:12px;background:#f2f8ef;color:#265941;font-size:12px;font-weight:650}.goalForecast.shortfall{background:#fff4e6;border-color:#edcf9c;color:#865519}.goalNote{font-size:12px;color:#5f6a66;background:#f5f7f3;padding:9px 11px;border-radius:10px}.goalNotice{margin:8px 0;color:#5f6a66}.goalSearch{display:block;width:100%;max-width:430px;margin:0 0 20px;padding:11px 13px;background:#fff;border:1px solid var(--line);border-radius:11px}
.creditGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px}.creditCard{background:#fff;border:1px solid #e4e2dc;border-radius:20px;padding:22px}.creditCardTop{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.creditIcon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#edf4ee;color:#5f6a66}.creditCard h2{font-size:19px;margin-bottom:13px}.creditFigures{display:grid;grid-template-columns:1fr 1fr;gap:8px}.creditFigures b{display:block;font-size:17px;margin-top:5px}.creditProgress{height:9px;background:#eef0ec;border-radius:99px;overflow:hidden;margin-top:16px}.creditProgress i{display:block;height:100%;background:#5f6a66;border-radius:99px}.creditNote{background:#f8fbf8;padding:10px;border-radius:10px}#creditForm textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px;resize:vertical}
/* Jerarquía de interacción: acción principal, secundaria y selección. */
:root{--focus-ring:#0B6B5A;--action-primary:#0B7F6B;--action:#BFE0D6;--action-dark:#0B6B5A;--action-border:#7FD0BD}
button.primary,.filterModalFooter .primary{background:var(--action-primary);border-color:var(--action-primary);color:#0E3B33}
button.primary:hover,.filterModalFooter .primary:hover{background:#0B7F6B;border-color:#0B7F6B;filter:none}
button:not(.primary):not(.dark):not(.danger):not(.quiet):not(.active):not([aria-pressed="true"]):not(.remindButton):not(.backCalendar):hover,.monthPaymentsLink:hover{border-color:var(--action-border);background:#E7F4EF;filter:none}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}
input[type=checkbox],input[type=radio]{accent-color:var(--action-dark)}
.sidebar nav a.active,.sidebar .navParent.active,.sidebar nav a.active:hover,.sidebar .navParent.active:hover,.pill.active,.payDayPicker button.active{background:var(--action-dark);border-color:var(--action-dark);color:#fff}
.sidebar nav a:hover,.sidebar .navParent:hover,.sidebar .sidefooter:hover{background:#E7F4EF}
.sidebar nav a.active:hover,.sidebar .navParent.active:hover,.pill.active:hover,.overviewStatusTabs button.active:hover,.spendingPeriodTabs button.active:hover,.payDayPicker button.active:hover,.remindButton:has(input:checked):hover{background:#0B6B5A;border-color:#0B6B5A;color:#fff;filter:none}
.stateChip.active,.dayChoice:has(input:checked){background:#E7F4EF;border-color:var(--action-border);color:#0E3B33}
.stateChip input,.dayChoice input,.weekCheck input,.check{accent-color:var(--action-dark)}
.calendarBodySurface .calday.selected,.calendarWide .calday.selected{background:#E7F4EF;border-color:var(--action-border)}
.calendarWide .calday.today b{background:#BFE0D6}
.remindButton:has(input:checked),.backCalendar,.activeFilters button,.notificationItem.unread{background:var(--action-dark);border-color:var(--action-dark);color:#fff}
.remindButton input:checked{background:var(--action-primary)}
.notificationItem.unread{background:#E7F4EF;border-left:3px solid var(--action-dark);color:var(--ink)}
.monthPaymentsLink,.typeCategoryButton,.calendarTrigger,.navToggle{background:#E7F4EF;border-color:#BFE0D6;color:#0E3B33}
#toast button,.amountChoices .chosen,.draftOffer button:first-child{background:var(--action);border-color:var(--action-border);color:#0E3B33}
.typeCategoryToolbar{margin:0}.typeCategoryButton{gap:6px;padding:8px 10px;font-size:11px;font-weight:650}.typeCategoryButton svg{width:14px;height:14px}.filterClearInline{display:inline-grid;place-items:center;width:18px;height:18px;margin-left:3px;border-left:1px solid #7FD0BD;padding-left:5px;color:var(--action-dark);font-size:16px;line-height:1}
.overviewFilterToolbar{display:flex;align-items:center;gap:9px;margin:0 0 11px}.overviewFilterToolbar input{min-width:0;flex:1;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:12px}.overviewPanelActions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.overviewPanelActions .monthPaymentsLink{display:inline-flex;gap:5px}.overviewPanelActions svg,.calendarTrigger svg{vertical-align:middle;flex:none}
.overviewStatusTabs,.spendingPeriodTabs{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 15px}.overviewStatusTabs button{padding:10px 17px;border-color:#BFE0D6;background:#E7F4EF;color:#0B6B5A;font-size:12px}.overviewStatusTabs button span{display:inline-grid;place-items:center;min-width:22px;height:22px;margin-left:7px;padding:0 5px;border-radius:99px;background:#BFE0D6;font-size:10px}.overviewStatusTabs button.active{background:var(--action-dark);border-color:var(--action-dark);color:#fff}.overviewStatusTabs button.active span{background:#ffffff35}.spendingPeriodTabs button{font-size:11px;padding:8px 11px}.spendingPeriodTabs button.active{background:var(--action-dark);border-color:var(--action-dark);color:#fff}.spendingPeriodResult{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px;border-radius:15px;background:#E7F4EF;border:1px solid #BFE0D6}.spendingPeriodResult>div:first-child>span{display:block;color:#0B6B5A;font-size:11px}.spendingPeriodResult strong{display:block;margin:5px 0;font-size:clamp(24px,3vw,32px);letter-spacing:-.8px;color:#0E3B33}.spendingPeriodResult small{margin:0}.spendingPeriodBreakdown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;color:#506873;font-size:11px}.spendingPeriodBreakdown span{min-width:85px}.spendingPeriodBreakdown b{display:block;margin-top:4px;color:#0E3B33;font-size:13px}@media(max-width:700px){.spendingPeriodBreakdown{width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}.overviewStatusTabs button{flex:1}}
.activeFilterGroups{display:flex;flex-wrap:wrap;gap:10px 16px;margin:0 0 15px}.activeFilterGroup{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.activeFilterGroup>strong{font-size:10px;color:var(--muted)}.activeFilterGroup .activeFilters{margin:0}.activeFilters button{padding:6px 9px;font-size:10px}.activeFilters button:hover{background:#0B6B5A!important;border-color:#0B6B5A!important;color:#fff!important}
.filterModalSection{margin-top:15px;padding-top:15px}.filterModalSection h3{font-size:12px}.filterModalFooter{position:sticky;bottom:-26px;margin:20px -26px -26px;padding:12px 26px 20px;background:#fff;border-top:1px solid var(--line);box-shadow:0 -8px 18px #183e3410}.filterModalFooter button{width:100%;padding:13px}.filterCategoryList{max-height:22vh}.filterCategoryRow .stateChip{flex:1}.filterCategoryRow .quiet{font-size:14px}#filterCategoryForm{display:flex;align-items:end;gap:8px}#filterCategoryForm .field{flex:1}#filterCategoryForm button{height:40px;background:var(--action);border-color:var(--action-border)}
.sharedRowMeta{display:block;margin-top:5px}.sharedParticipants{display:grid;gap:3px;max-width:330px;margin-top:8px}.sharedParticipant{display:grid;grid-template-columns:minmax(0,1fr) auto 18px;gap:8px;align-items:center;font-size:10px;color:var(--muted)}.sharedParticipant b{font-weight:650;color:var(--ink)}.sharedParticipantState{display:grid;place-items:center;flex:none;width:16px;height:16px;min-width:16px;min-height:16px;padding:0;margin:0;border:0;border-radius:50%;font-size:11px;line-height:1;font-weight:800}.sharedParticipantState.paid{background:#dff0e4;color:#1c6942}.sharedParticipantState.unpaid{background:#fae5df;color:#9d3d31}.sharedParticipantState.neutral{background:#edf0ee;color:#607069}
.notificationItem.dueWarning{border-left:4px solid #dc922f}.notificationItem.dueAlert{border-left:4px solid #c94a40}.notificationItem.dueSuccess{border-left:4px solid #2c9b66}
@media(max-width:700px){.overviewFilterToolbar{align-items:stretch}.overviewPanelActions{justify-content:flex-start}.filterModalFooter{bottom:-20px;margin:18px -20px -20px;padding:11px 20px 20px}#filterCategoryForm{flex-direction:row;align-items:end}#filterCategoryForm .field{min-width:0}#filterCategoryForm button{flex:none}}
.datePickerField{position:relative;display:block;width:100%}.datePickerField input[type=date]{width:100%;padding-right:48px}.datePickerOpen{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:38px;height:36px;display:grid;place-items:center;border:0;border-radius:8px;background:#E7F4EF;color:var(--action-dark);padding:0}.datePickerOpen:hover{background:#BFE0D6!important}.datePickerDialog{width:min(370px,calc(100vw - 28px));max-height:calc(100dvh - 24px);padding:18px;border:1px solid #BFE0D6;border-radius:18px;box-shadow:0 22px 65px #142d4050}.datePickerHead{display:flex;align-items:center;gap:5px;margin-bottom:13px}.datePickerHead strong{flex:1;font-size:15px}.datePickerHead button{width:32px;height:32px;padding:0;background:#E7F4EF;border-color:#BFE0D6;color:var(--action-dark)}.datePickerGrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.datePickerWeekday{text-align:center;font-size:11px;color:var(--muted);padding:6px 0;font-weight:700}.datePickerGrid button{min-width:0;height:38px;padding:0;border-radius:9px;background:#fff;font-size:12px}.datePickerGrid button.today{border-color:var(--action-dark)}.datePickerGrid button.active{background:var(--action-dark);color:#fff;border-color:var(--action-dark)}.datePickerGrid button:disabled{opacity:.3}.datePickerFooter{display:flex;justify-content:space-between;gap:9px;margin-top:14px}.datePickerFooter button{flex:1;padding:9px;background:#E7F4EF;border-color:#BFE0D6;color:var(--action-dark);font-size:11px}
.freeToolbar{justify-content:flex-start}.freeToolbar input[type=search]{flex:1;min-width:150px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:12px}
.filterSearchRow{display:flex;align-items:center;gap:9px;width:100%;margin:12px 0}.filterSearchRow .typeCategoryToolbar{flex:none;margin:0}.filterSearchRow input[type=search]{flex:1;min-width:0;border:1px solid var(--line);border-radius:10px;background:#fff;padding:9px 11px;font-size:12px}.calendarFilterPanel .filterSearchRow{margin-top:0}.freeColumns{display:block}.freeColumns>.panel{width:100%}.freeCategoryTabs{display:flex;gap:7px;align-items:center;overflow-x:auto;padding:0 0 10px;margin:0 0 7px;scrollbar-width:thin}.freeCategoryTabs .pill{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;flex:none}.freeCategoryTabs svg{width:16px;height:16px;flex:none}.freeIconChoices{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;border:1px solid var(--line);border-radius:12px;padding:12px;margin:14px 0}.freeIconChoices legend{padding:0 5px;font-size:12px;font-weight:700}.freeIconChoices label{position:relative;cursor:pointer}.freeIconChoices input{position:absolute;opacity:0}.freeIconChoices span{display:grid;place-items:center;height:42px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#225648}.freeIconChoices svg{width:22px;height:22px}.freeIconChoices input:checked+span{border:2px solid var(--action-dark);background:#E7F4EF;color:var(--action-dark)}.freeIconChoices input:focus-visible+span{outline:3px solid var(--focus-ring);outline-offset:2px}@media(max-width:420px){.freeIconChoices{grid-template-columns:repeat(5,minmax(0,1fr))}}
.sharingPageActions{display:flex;justify-content:flex-end;margin:0 0 16px}.sharingViewTabs{display:flex;gap:7px;margin:0 0 15px}.sharingViewTabs .pill{flex:1;max-width:230px}.sharingAvailable .definition{align-items:center}.sharingAvailable .definition small{display:block;margin-top:4px}.shareModeChoice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}.shareModeChoice button{padding:18px;text-align:left;background:#E7F4EF;border-color:#BFE0D6}.shareModeChoice b,.shareModeChoice small{display:block}.shareModeChoice small{margin-top:6px;line-height:1.4}@media(max-width:580px){.shareModeChoice{grid-template-columns:1fr}.sharingViewTabs .pill{max-width:none}}
.spendingPeriodToggle{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin-top:13px;padding:12px 15px;border:1px solid #BFE0D6;border-radius:12px;background:#E7F4EF;color:#0B6B5A;text-align:left;font-size:12px;font-weight:750}.spendingPeriodToggle svg{width:18px;height:18px;flex:none;transition:transform .2s ease}.spendingPeriodToggle[aria-expanded="true"] svg{transform:rotate(180deg)}.spendingPeriodDetails{margin-top:12px;border:1px solid #E7F4EF;border-radius:13px;overflow:hidden}.spendingPeriodDetailHead{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:13px 15px;background:#E7F4EF;font-size:11px}.spendingPeriodDetailHead span{color:var(--muted)}.periodExpenseRow{display:grid;grid-template-columns:95px minmax(0,1fr) 85px auto;gap:12px;align-items:center;padding:12px 15px;border-top:1px solid #E7F4EF;font-size:11px}.periodExpenseDate{color:#536875;font-variant-numeric:tabular-nums}.periodExpenseName{min-width:0}.periodExpenseName b{display:block;overflow-wrap:anywhere;font-size:12px}.periodExpenseName small{margin-top:3px}.periodExpenseState{color:#526e7d}.periodExpenseRow>strong{text-align:right;white-space:nowrap;font-size:12px;font-variant-numeric:tabular-nums}@media(max-width:600px){.periodExpenseRow{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name amount" "date state";gap:5px 10px}.periodExpenseDate{grid-area:date}.periodExpenseName{grid-area:name}.periodExpenseState{grid-area:state;text-align:right}.periodExpenseRow>strong{grid-area:amount}.spendingPeriodDetailHead{display:block}.spendingPeriodDetailHead span{display:block;margin-top:4px}}


/* Vencimientos ajustados al último día de meses cortos. */
.payShortMonthWarning:not([hidden]){margin:8px 0 2px;padding:10px 12px;border-radius:10px;background:#fff4ee;color:#a43f38;font-size:.8rem;font-weight:650;line-height:1.45}
.shiftedDayBadge{display:inline-flex;margin-left:7px;padding:2px 7px;border:1px solid #d7c8f3;border-radius:999px;background:#f1eaff;color:#5d438c;font-size:.69rem;font-weight:700;white-space:nowrap;vertical-align:middle}
.shiftedDaysCard{margin:14px 0 0;padding:14px;border:1px solid #d7c8f3;border-radius:14px;background:#f5f0ff;color:#4d3b6c}
.shiftedDaysCard h3{margin:0 0 5px;font-size:.94rem}
.shiftedDaysCard p{margin:0;font-size:.8rem;line-height:1.45}
.noticeControlsInactive{opacity:.7;filter:grayscale(1)}

/* Las opciones de meses cortos son filas completas: nunca se separa la radio de su texto. */
.payShortMonthPolicy{display:flex;flex-direction:column;align-items:stretch;min-width:0;width:100%;max-width:100%;gap:8px;overflow:hidden}
.payShortMonthPolicy legend{float:none;max-width:100%;white-space:normal}
.payShortMonthPolicy label{display:flex!important;flex-direction:row!important;justify-content:flex-start;align-items:flex-start;gap:10px;width:100%;min-width:0;margin:0;padding:7px 9px;border-radius:8px;background:#fff;color:#0B6B5A;overflow-wrap:anywhere}
.payShortMonthPolicy label input[type=radio]{display:block!important;position:static!important;flex:0 0 16px;width:16px!important;height:16px!important;margin:1px 0 0;opacity:1!important}
.backCalendar{background:var(--action-dark)!important;border-color:var(--action-dark)!important;color:#fff!important;box-shadow:0 5px 13px #176aab22}
.backCalendar:hover{background:#0B6B5A!important;border-color:#0B6B5A!important}
.datePickerField input[type=date]{cursor:pointer;caret-color:transparent}
.datePickerField input[type=date]::-webkit-calendar-picker-indicator{display:none!important;opacity:0!important}
.datePickerHeading{display:flex;align-items:center;gap:2px;flex:1;min-width:0}
.datePickerHeadingChoice{display:inline-flex;align-items:center;gap:5px;width:auto!important;min-width:0;white-space:nowrap;padding:5px 7px!important;border:0!important;background:transparent!important;color:var(--action-dark)!important;font-size:14px;font-weight:750}
.datePickerHeadingChoice span{font-size:12px}
.datePickerChoices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;max-height:min(48dvh,310px);overflow-y:auto;padding:3px}
.datePickerChoices button{min-width:0;padding:9px 4px;font-size:11px}
.datePickerChoices button.active{background:var(--action-dark);border-color:var(--action-dark);color:#fff}
.datePickerChoices button:disabled{opacity:.35;cursor:default}
.datePickerYears{grid-template-columns:repeat(4,minmax(0,1fr))}
.inlineEditPayment{display:inline-grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid transparent;border-radius:9px;background:#E7F4EF;color:var(--action-dark)}
.inlineEditPayment:hover{background:#E7F4EF!important;border-color:var(--action-border)!important}
.inlineEditPayment svg{width:17px;height:17px;display:block}
.overviewPaymentsPanel tbody .weeklyRow td{border-bottom:1px solid #e6edf0}
.overviewPaymentsPanel tbody .weeklyRow:nth-of-type(even){background:#E7F4EF}
.overviewPaymentsPanel tbody .weeklyRow:hover{background:#E7F4EF}
.overviewPaymentsPanel tbody .weeklyRow td:first-child{border-left:3px solid #E7F4EF}
.overviewPaymentsPanel tbody .weeklyRow.warning td:first-child{border-left-color:#e8be78}
.overviewPaymentsPanel tbody .weeklyRow.alert td:first-child{border-left-color:#e7a39a}
.popupIllustration{display:block;width:min(100%,220px);height:auto;max-height:165px;object-fit:contain;margin:0 auto 12px}
.projectionChoice .popupIllustration{width:min(100%,250px);max-height:180px}
.pendingProposalReadOnly{display:grid;gap:12px;margin:17px 0;padding:16px;border:1px solid #BFE0D6;border-radius:13px;background:#E7F4EF}
.pendingProposalReadOnly strong{color:#0B6B5A}
.pendingProposalReadOnly label{display:block;color:#526875;font-size:12px;font-weight:700}
.pendingProposalReadOnly label>div{margin-top:5px;padding:10px 12px;border:1px solid #BFE0D6;border-radius:9px;background:#fff;color:#0E3B33;font-weight:500;line-height:1.5;overflow-wrap:anywhere}
#shareInviteItemPercents:not([hidden]){display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;padding:12px;border:1px solid #BFE0D6;border-radius:12px;background:#E7F4EF}
#shareCancelReason{width:100%;min-height:88px;resize:vertical;padding:10px;border:1px solid var(--line);border-radius:10px}
.illustratedEmpty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:140px;padding:14px 18px;text-align:center}
.illustratedEmpty img,.monoIllustration{display:block;width:min(100%,170px);height:auto;max-height:114px;object-fit:contain;margin:0 auto}
.illustratedEmpty p{margin:0;color:#607781;font-size:12px;line-height:1.45}
.goalEmpty .monoIllustration{width:min(100%,210px);max-height:140px;margin:0 auto 10px}
.freeBasePanel .monoIllustration{width:150px;max-height:100px;margin:0 auto 8px}
.calendarWide .calentry.shiftedCalendarEntry{background:#f1eaff;border:1px solid #d7c8f3;color:#5d438c}
.calendarColorKey .paid,.calentry.paid,.calentry.paid.shiftedCalendarEntry{background:#e8ebee;color:#53616a;border-color:#d4dce1}
.calendarColorKey .overdue,.calentry.overdue,.calentry.overdue.shiftedCalendarEntry{background:#f8e0dc;color:#9b3834;border-color:#e9bab2}
.notificationRow{position:relative}
.notificationRow .notificationItem{width:100%;padding-right:34px}
.notificationDismiss{position:absolute;right:7px;top:8px;width:25px;height:25px;border:0;border-radius:50%;background:transparent;color:#697a74;font-size:19px;line-height:1;cursor:pointer}
.notificationDismiss:hover,.notificationDismiss:focus-visible{background:#e7eeec;color:#15322c}
.overviewPeriodSelect{display:inline-flex;align-items:center;gap:7px;color:#61716c;font-size:.75rem;font-weight:650}
.overviewPeriodSelect select{max-width:170px;min-height:38px;border:1px solid #BFE0D6;border-radius:10px;padding:8px 34px 8px 12px;appearance:none;-webkit-appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3 6 5 5 5-5' fill='none' stroke='%23153e4e' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 11px center;background-size:14px 14px;color:#0E3B33;font:inherit;font-size:.8rem;line-height:1.2;cursor:pointer}
.overviewPeriodRange{color:#697b7d;font-size:.72rem;font-weight:500;white-space:nowrap;margin-left:4px}
.overviewWeekDivider th{padding:18px 10px 8px;border:0;background:transparent;text-align:left}
.overviewWeekDivider span{display:flex;align-items:center;gap:12px;color:#647679;font-size:.72rem;font-weight:700;white-space:nowrap}
.overviewWeekDivider span::after{content:"";height:1px;flex:1;background:#e1e9e9}
.overviewMonthPager{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:18px;padding-top:15px;border-top:1px solid #e5eded}
.overviewMonthPager strong{min-width:130px;text-align:center;color:#0E3B33;font-size:.82rem}
.overviewMonthPager button{min-width:102px;padding:8px 10px;border:1px solid #BFE0D6;border-radius:10px;background:#E7F4EF;color:#0E3B33;font-size:.75rem;font-weight:700}
.overviewMonthPager button:disabled{border-color:#e1e8e7;background:#f2f5f4;color:#95a4a2;cursor:default}
.overviewMonthPager .overviewPagerCurrent{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:190px;background:#fff;border-color:#BFE0D6;color:#0E3B33}
.overviewMonthPager .overviewPagerCurrent svg{width:15px;height:15px;flex:none}
.overviewPagerLimit{display:block;margin:8px 0 0;text-align:center;color:#71828a;font-size:.68rem;line-height:1.4}
.overviewJumpHint{margin:0 0 18px;padding:11px 13px;border-radius:10px;background:#E7F4EF;color:#0B6B5A;font-size:.8rem;line-height:1.5}
.overviewJumpYear h3{margin:16px 0 8px;color:#0B6B5A;font-size:.9rem}
.overviewJumpGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.overviewJumpGrid button{min-width:0;padding:11px 5px;border-radius:10px;background:#E7F4EF;color:#0E3B33;font-size:.76rem}
.overviewJumpGrid button.active{background:#0B6B5A;border-color:#0B6B5A;color:#fff}
.fragmentOverviewSummary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;padding:13px 15px;border:1px solid #BFE0D6;border-radius:12px;background:#E7F4EF;color:#0B6B5A}
.fragmentOverviewSummary strong{font-size:.84rem;white-space:nowrap}.fragmentOverviewSummary span{font-size:.74rem;line-height:1.4}
.debtWeekGroup{margin-top:18px}.debtWeekGroup h3{display:flex;align-items:center;gap:12px;margin:0 0 7px;color:#61777f;font-size:.76rem;font-weight:750}.debtWeekGroup h3::after{content:"";height:1px;flex:1;background:#e1e9e9}
.debtWeekGroup .tablewrap{margin-top:0}
.debtWeekGroup{margin-top:24px}
.debtWeekGroup h3{margin-bottom:10px;color:#466071;font-size:.8rem}
.debtWeekGroup .tablewrap{border:1px solid #E7F4EF;border-radius:13px;overflow-x:auto}
.debtWeekGroup tbody tr:nth-child(even){background:#E7F4EF}
.debtWeekGroup tbody tr:hover{background:#E7F4EF}
.debtWeekGroup tbody td{border-bottom:1px solid #e8eef1}
.debtWeekGroup tbody tr:last-child td{border-bottom:0}
.debtWeekGroup tbody td:first-child{border-left:3px solid #BFE0D6;padding-left:13px}
@media(max-width:700px){
 .debtWeekGroup .tablewrap{border:0;overflow:visible}
 .debtWeekGroup .tablewrap tbody tr{border-left:3px solid #BFE0D6}
 .debtWeekGroup .tablewrap tbody td:first-child{border-left:0;padding-left:0}
 .debtWeekGroup .tablewrap tbody td{border-bottom:0}
}
.payFormSection .formgrid[hidden],.payFormNotice[hidden],.payFormSection .field[hidden]{display:none!important}
.notificationRow{box-sizing:border-box;width:100%}
.notificationRow .notificationItem{box-sizing:border-box;padding-right:58px}
.notificationDismiss{right:14px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;z-index:2;line-height:0}
.notificationDismiss svg{display:block;width:13px;height:13px;flex:none;pointer-events:none}
@media(max-width:700px){.tablewrap tbody tr.overviewWeekDivider{display:block;padding:2px 0 0;border:0;border-radius:0;background:transparent}.overviewWeekDivider th{display:block;padding:8px 2px 3px}.overviewPeriodSelect{flex-wrap:wrap}.overviewPeriodRange{flex-basis:100%;margin-left:0}}
@media(max-width:600px){.fragmentOverviewSummary{display:block}.fragmentOverviewSummary span{display:block;margin-top:5px}.overviewJumpGrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:420px){.overviewMonthPager{gap:6px}.overviewMonthPager button{min-width:0;flex:1;font-size:.68rem}.overviewMonthPager .overviewPagerCurrent{min-width:0;flex:1.6}.overviewMonthPager .overviewPagerCurrent svg{display:none}.overviewJumpGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.visibleSumLabel{color:#63736d;font-size:.78rem;font-weight:500}
.visibleSumLabel strong,.overviewPanelActions strong{color:#18362e;font-size:.98rem;font-weight:750}
@media(max-width:600px){.overviewStatusTabs{flex-wrap:wrap}.overviewPeriodSelect{flex:1 0 100%;justify-content:space-between}.overviewPeriodSelect select{max-width:none;flex:1}.overviewPanelActions{flex-wrap:wrap}}
/* Mis pagos: all controls stay in one row; small viewports scroll that row. */
.overviewStatusScroll{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;margin-bottom:8px}
.overviewStatusTabs{display:grid;grid-template-columns:minmax(152px,1.4fr) repeat(4,minmax(94px,1fr)) minmax(116px,1fr);gap:7px;align-items:stretch;min-width:675px;margin:0;flex-wrap:nowrap}
.overviewStatusTabs button{min-width:0;padding:8px 7px;white-space:nowrap}
.overviewStatusTabs button span{margin-left:3px}
.overviewPeriodSelect,.overviewShowSelect{display:flex;align-items:center;justify-content:space-between;gap:5px;min-width:0;white-space:nowrap;color:#61716c;font-size:.72rem;font-weight:650}
.overviewPeriodSelect select,.overviewShowSelect select{min-width:0;width:100%;max-width:none;min-height:38px;border:1px solid #BFE0D6;border-radius:10px;padding:7px 29px 7px 8px;appearance:none;-webkit-appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3 6 5 5 5-5' fill='none' stroke='%23153e4e' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 8px center;background-size:13px 13px;color:#0E3B33;font:inherit;cursor:pointer}
.overviewPeriodSelect select{flex:1}
.overviewShowSelect select{width:58px;flex:none}
.overviewPaymentsPanel>.overviewPeriodRange{display:block;margin:0 0 15px;color:#697b7d;font-size:.75rem;line-height:1.4}
.overviewMonthPager .overviewPagerCurrent{min-width:0;border:0;background:transparent;color:#0E3B33;cursor:default;text-align:center;font-size:.8rem;font-weight:700}
.paymentPeriodicity{color:#0B6B5A}
.authPasswordHelp{margin:0 0 13px;color:#5f6a66;font-size:12px;line-height:1.45}
.passwordRules{margin:4px 0 16px;padding:12px 14px;border:1px solid #BFE0D6;border-radius:12px;background:#E7F4EF;color:#53646d;font-size:12px;line-height:1.5}
.passwordRules strong{color:#0E3B33}.passwordRules ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 12px;list-style:none;margin:8px 0 0;padding:0}
.passwordRules li span{display:inline-flex;align-items:center;justify-content:center;width:16px;margin-right:3px;font-weight:800}
.passwordRules li.passed{color:#216748}.passwordRules li.failed{color:#b43632;font-weight:700}
.field input[aria-invalid="true"],.passwordField input[aria-invalid="true"]{border-color:#c63d39!important;box-shadow:0 0 0 2px #c63d3920!important}
@media(max-width:430px){.passwordRules ul{grid-template-columns:1fr}}
/* El panel de pagos aprovecha todo el ancho; los controles caben en una fila. */
.workspace:has(.overviewPaymentsPanel)>div{display:contents}
.workspace:has(.overviewPaymentsPanel)>div>section:first-child{grid-column:1 / -1;grid-row:1}
.workspace:has(.overviewPaymentsPanel)>.rail{grid-column:1 / -1;grid-row:3;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.workspace:has(.overviewPaymentsPanel) .overviewPaymentsPanel{grid-column:1 / -1;grid-row:2}
@media(max-width:700px){.workspace:has(.overviewPaymentsPanel)>.rail{display:block}}
@media(max-width:700px){.overviewStatusTabs{min-width:675px}.overviewPeriodSelect{flex-wrap:nowrap;flex:none;justify-content:space-between}.overviewPeriodSelect select{max-width:none;flex:1}.overviewPeriodRange{flex-basis:auto}}
@media(max-width:420px){.overviewMonthPager{gap:6px}.overviewMonthPager button{min-width:0;flex:1}.overviewMonthPager .overviewPagerCurrent{flex:1.5}}
/* Deudas fragmentadas: un presupuesto mensual que se consume por registros. */
.fragmentSwitch{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 14px;padding:14px;border:1px solid #BFE0D6;border-radius:14px;background:#E7F4EF;color:#0E3B33;cursor:pointer}
.fragmentSwitch strong,.fragmentSwitch small{display:block}.fragmentSwitch strong{font-size:.91rem}.fragmentSwitch small{margin-top:4px;font-size:.76rem;line-height:1.45;color:#526975}
.fragmentSwitch input{flex:none;width:20px;height:20px;accent-color:#0B7F6B}
.fragmentRow{background:#E7F4EF}.fragmentRow .tile{background:#BFE0D6;color:#0B6B5A}
.fragmentStatus{background:#E7F4EF!important;color:#0B6B5A!important}
.fragmentBalance{display:block;margin-top:4px;color:#526975;font-size:.69rem;font-weight:600;white-space:nowrap}
.fragmentAction{color:#0B6B5A!important;font-weight:750!important}
.fragmentDashboard{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0 14px}
.fragmentDashboard>div{min-width:0;padding:13px;border:1px solid #BFE0D6;border-radius:12px;background:#E7F4EF}.fragmentDashboard>div.over{border-color:#e9beb7;background:#fff4f2}
.fragmentDashboard small,.fragmentDashboard strong{display:block}.fragmentDashboard small{font-size:.7rem;color:#607680}.fragmentDashboard strong{margin-top:5px;font-size:1.05rem;color:#0E3B33;overflow-wrap:anywhere}.fragmentDashboard .over strong{color:#a44138}
.fragmentUsageList{display:grid;gap:8px;margin:14px 0 20px;max-height:260px;overflow:auto}.fragmentUsage{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid #E7F4EF;border-radius:11px;background:#fff}.fragmentUsage span{min-width:0}.fragmentUsage b,.fragmentUsage small{display:block;overflow-wrap:anywhere}.fragmentUsage small{font-size:.7rem;color:#6b7b80}.fragmentUsage strong{white-space:nowrap;font-size:.82rem}.fragmentUsage button{border:0;background:#f3f5f6;color:#63757b;border-radius:50%;width:25px;height:25px;font-size:18px;cursor:pointer}
.fragmentCalendarBanner{margin:0 0 12px;padding:12px;border:1px solid #BFE0D6;border-radius:12px;background:#E7F4EF}.fragmentCalendarBanner strong{display:block;margin-bottom:6px;color:#0B6B5A;font-size:.78rem}.fragmentCalendarBanner div{display:flex;gap:8px;flex-wrap:wrap}.fragmentCalendarBanner button{border:1px solid #BFE0D6;border-radius:999px;background:#fff;color:#0B6B5A;padding:6px 10px;font-size:.72rem;cursor:pointer}
@media(max-width:500px){.fragmentDashboard{grid-template-columns:1fr 1fr}.fragmentDashboard>div:first-child{grid-column:1/-1}}

/* iOS amplía la página al enfocar controles con texto menor de 16 px.
   El tamaño del campo evita ese salto sin desactivar el zoom manual. */
@media (pointer:coarse), (max-width:1366px){
 input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),
 select,
 textarea{font-size:16px!important}
}

.passwordField{position:relative;display:flex;align-items:center;width:100%}
.passwordField input{width:100%;padding-right:52px}
.passwordVisibility{position:absolute;right:5px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:42px;height:42px;padding:0;border:0;border-radius:9px;background:transparent;color:#0B6B5A;cursor:pointer}
.passwordVisibility:hover,.passwordVisibility:focus-visible{background:#E7F4EF;color:#0B6B5A}
.passwordVisibility svg{display:block;width:20px;height:20px}
/* Contador de notificaciones y resumen mensual. */
.notificationBell #notificationCount{display:flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:20px;height:20px;padding:0 3px;line-height:1;text-align:center;white-space:nowrap;transform:translate(2px,-2px)}
.notificationBell #notificationCount[hidden]{display:none}
.freeBasePanel{width:100%}.freeLockedBase{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#f5f8f5}.freeLockedBase small,.freeLockedBase strong{display:block}.freeLockedBase strong{font-size:24px;margin-top:4px}.freeExtraBlock{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}.freeExtraBlock h3{margin:0 0 6px}.freeExtraForm{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:12px;margin:12px 0}.freeExtraForm .field{min-width:0;max-width:none}.freeExtraForm button{grid-column:1/-1;justify-self:start}.freeExtraSummary{display:flex;flex-wrap:wrap;gap:12px;padding:12px 0;color:var(--muted)}.freeExtraSummary b{color:var(--ink)}.freeExtraRow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-top:1px solid var(--line)}
.reportIntro{display:flex;justify-content:space-between;align-items:end;gap:16px;margin:0 0 18px}.reportIntro p{max-width:670px}.reportIntro label{display:grid;gap:5px;min-width:180px}.reportMetrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-bottom:18px}.reportNegative .value{color:#b6483d}.reportGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.reportPanel h2{margin:0 0 14px}.reportPanel .definition{gap:12px}.reportFragment,.reportGoal{display:grid;gap:6px;padding:10px 0;border-top:1px solid var(--line)}.reportFragment span,.reportGoal small{color:var(--muted);font-size:13px}.reportGoals{grid-column:1/-1}.reportGoal .freeProgress{width:100%;height:7px}
@media(max-width:800px){.reportGrid{grid-template-columns:1fr}.reportMetrics{grid-template-columns:1fr}.reportIntro{display:block}.reportIntro label{margin:12px 0}.freeLockedBase{flex-direction:column;align-items:stretch}.freeExtraForm{grid-template-columns:1fr}.freeExtraForm button{justify-self:stretch}}

.reportIntro select{width:100%;min-height:42px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font:inherit}
.overviewPaymentHeading{display:flex;align-items:baseline;justify-content:flex-start;gap:14px;flex-wrap:wrap}.overviewPaymentHeading h2{margin:0}.overviewPaymentHeading .overviewPeriodRange{margin:0;color:#697b7d;font-size:.75rem;line-height:1.4}.overviewShowSelect{justify-content:flex-start;gap:7px}.overviewPaymentsPanel>.overviewPeriodRange{display:none}
.shareMemberStatus{display:inline-flex;align-items:center;gap:5px}.shareNudge{display:inline-flex;align-items:center;justify-content:center;margin:5px 0 0;padding:5px 8px;border:1px solid #BFE0D6;border-radius:8px;background:#E7F4EF;color:#0B6B5A;font-size:11px;font-weight:700;line-height:1.2;white-space:nowrap;cursor:pointer}.shareNudge:hover{background:#E7F4EF;color:#0E3B33}.shareNudge:disabled{opacity:.55;cursor:wait}.sharePartState{font-size:11px;font-weight:650}.sharePartState.isPaid{color:#226a4b}.sharePartState.isPending{color:#805730}
.reportDashboardIntro{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:0 0 20px}.reportDashboardIntro p{margin:0;color:#526477;line-height:1.5}.reportDashboardIntro small{display:block;margin-top:5px;color:#6e7d87}.reportDashboardIntro label{display:grid;gap:5px;min-width:185px;font-size:12px;color:#536a7b;font-weight:700}.reportDashboardIntro select{min-height:42px;padding:9px 12px;border:1px solid #BFE0D6;border-radius:10px;background:#fff;color:#0E3B33;font:inherit}
.reportHero{padding:26px;border-radius:21px;background:linear-gradient(130deg,#0E3B33,#0E3B33 68%,#0B6B5A);color:#fff;display:grid;grid-template-columns:1.15fr 1fr;gap:24px;margin-bottom:18px}.reportHeroLead>span{display:block;color:#BFE0D6;font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.07em}.reportHeroLead>strong{display:block;margin:5px 0;font-size:clamp(32px,4.3vw,50px);line-height:1.1;letter-spacing:-.05em;font-variant-numeric:tabular-nums}.reportHeroLead p{max-width:410px;margin:8px 0 0;color:#BFE0D6;font-size:13px;line-height:1.5}.reportHeroMetrics{display:grid;gap:10px;align-content:center}.reportHeroMetrics>div{display:flex;align-items:baseline;justify-content:space-between;gap:15px;border-bottom:1px solid #ffffff26;padding-bottom:7px}.reportHeroMetrics span{color:#BFE0D6;font-size:12px}.reportHeroMetrics b{font-size:17px;font-variant-numeric:tabular-nums;text-align:right}.reportHeroMetrics .negative{color:#ffc9bc}.reportBudgetBar{grid-column:1/-1;height:13px;display:flex;border-radius:99px;overflow:hidden;background:#ffffff36}.reportBudgetBar i{display:block;height:100%}.reportBudgetBar .used{background:#7FD0BD}.reportBudgetBar .saved{background:#a4d7aa}.reportBarLegend{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:17px;margin-top:-14px;color:#BFE0D6;font-size:11px}.reportBarLegend span,.reportTrendLegend span{display:inline-flex;align-items:center;gap:6px}.reportBarLegend i,.reportTrendLegend i{display:inline-block;width:9px;height:9px;border-radius:50%;background:#ffffff36}.reportBarLegend .used,.reportTrendLegend .used{background:#7FD0BD}.reportBarLegend .saved,.reportTrendLegend .saved{background:#a4d7aa}
.reportComparison{margin-bottom:14px}.reportCompareRow{display:grid;grid-template-columns:minmax(125px,1fr) minmax(100px,2fr) auto;gap:14px;align-items:center;margin:12px 0;font-size:12px}.reportCompareRow>div{height:12px;border-radius:99px;background:#E7F4EF;overflow:hidden}.reportCompareRow i{display:block;height:100%;border-radius:99px}.reportCompareRow .planned{background:#8aa6b4}.reportCompareRow .actual{background:#0B7F6B}.reportCompareRow b{font-variant-numeric:tabular-nums}.reportPace{display:flex;gap:8px 20px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:13px;font-size:12px}.reportPace span{color:#586b70}.reportSources{margin-bottom:18px;padding:14px 18px;border:1px solid var(--line);border-radius:15px;background:#fff}.reportSources summary{cursor:pointer;color:#0B6B5A;font-weight:700;font-size:12px}.reportSourceGroup{margin-top:15px}.reportSourceGroup h4{font-size:12px;margin:0 0 7px}.reportSourceRow{display:flex;gap:12px;justify-content:space-between;border-top:1px solid #eef2f3;padding:7px 0;font-size:12px}.reportSourceRow small{display:block;color:#65777c}.reportSourceRow b{white-space:nowrap;font-variant-numeric:tabular-nums}
.historyAuditPanel{max-width:1050px}.historyAuditRow{display:grid;grid-template-columns:minmax(150px,1fr) minmax(180px,1.2fr);gap:12px;border-bottom:1px solid #eaf0f0;padding:13px 0}.historyAuditRow:last-child{border-bottom:0}.historyAuditRow b,.historyAuditRow strong{font-size:12px}.historyAuditRow small{display:block;margin-top:4px;color:#637579;font-size:11px;line-height:1.4}.historyAuditRow strong{color:#0B6B5A}@media(max-width:600px){.historyAuditRow{grid-template-columns:1fr;gap:5px}}
#quickFreeAction{display:none}@media(max-width:700px){#quickFreeAction{display:block;position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:800;border-radius:999px;box-shadow:0 8px 24px #14374b42;padding:13px 17px;font-weight:750}body.menuOpen #quickFreeAction,body:has(dialog[open]) #quickFreeAction{display:none}}
.reportDashboardGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.reportDashboardCard{min-width:0}.reportCardHeading{display:flex;justify-content:space-between;align-items:baseline;gap:14px;margin-bottom:17px}.reportCardHeading small{display:block;color:#0B7F6B;font-size:10px;font-weight:800;letter-spacing:.09em}.reportCardHeading h2{margin:4px 0 0;color:#0E3B33}.reportCardHeading>strong{font-size:13px;color:#0B6B5A;text-align:right}.reportDistributionBody{display:flex;align-items:center;gap:23px}.reportDonut{width:178px;height:178px;flex:none;border-radius:50%;display:grid;place-items:center}.reportDonut>div{width:116px;height:116px;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:8px}.reportDonut strong{font-size:17px;color:#0E3B33;line-height:1.2}.reportDonut small{font-size:11px;color:#657988}.reportLegend{min-width:0;flex:1}.reportLegend>div{display:grid;grid-template-columns:9px minmax(0,1fr) auto;gap:8px;align-items:center;margin:8px 0;font-size:12px}.reportLegend i{width:9px;height:9px;border-radius:50%}.reportLegend span{overflow-wrap:anywhere;color:#526677}.reportLegend b{white-space:nowrap;color:#0E3B33}.reportNote{margin:16px 0 0;color:#687b85;font-size:11px;line-height:1.5}
.reportWeekBars{display:grid;gap:14px}.reportWeekBars>div{display:grid;grid-template-columns:68px minmax(0,1fr) auto;gap:10px;align-items:center;font-size:12px;color:#506779}.reportWeekBars b{color:#0E3B33;font-size:12px;font-variant-numeric:tabular-nums}.reportWeekTrack{height:10px;background:#E7F4EF;border-radius:99px;overflow:hidden}.reportWeekTrack i{display:block;height:100%;background:#7FD0BD;border-radius:inherit}.reportInsight{margin-top:20px;padding:12px 14px;border-radius:10px;background:#E7F4EF;color:#0B6B5A;font-size:12px}.reportMiniStats{display:flex;gap:12px;flex-wrap:wrap;margin-top:15px;color:#61747d;font-size:11px}.reportMiniStats b{color:#0E3B33}.reportTrendLegend{display:flex;gap:15px;margin-bottom:16px;color:#637887;font-size:11px}.reportTrendRows{display:grid;gap:10px}.reportTrendRow{display:grid;grid-template-columns:27px minmax(0,1fr) auto;align-items:center;gap:10px;font-size:11px;color:#667987}.reportTrendRow b{min-width:68px;text-align:right;color:#0E3B33;font-size:11px}.reportTrendTrack{display:flex;height:12px;border-radius:99px;background:#E7F4EF;overflow:hidden}.reportTrendTrack i{height:100%;min-width:0}.reportTrendTrack .used{background:#7FD0BD}.reportTrendTrack .saved{background:#a4d7aa}.reportSummaryList>div{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #e8eef0;font-size:12px;color:#526879}.reportSummaryList b{color:#0E3B33;text-align:right}.reportAttention{padding:12px 14px;border-radius:10px;background:#fff5df;color:#765121;font-size:12px;line-height:1.5}.reportGoalGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.reportGoalCard{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;padding:15px;border:1px solid #dce9e5;border-radius:13px;background:#f7fbf9}.reportGoalCard b{display:block;color:#0E3B33}.reportGoalCard small{display:block;margin-top:4px;color:#607971;font-size:11px}.reportGoalCard strong{color:#0E3B33;white-space:nowrap}.reportGoalTrack{grid-column:1/-1;height:8px;margin-top:8px;border-radius:99px;background:#e0eee5;overflow:hidden}.reportGoalTrack i{display:block;height:100%;border-radius:inherit;background:#81bd9b}.reportGoalCard>.reportGoalTrack+small{grid-column:1/-1}
@media(max-width:900px){.reportDashboardGrid{grid-template-columns:1fr}.reportHero{grid-template-columns:1fr}.reportHeroMetrics{grid-template-columns:repeat(3,1fr)}.reportHeroMetrics>div{display:block}.reportHeroMetrics b{display:block;margin-top:5px;text-align:left}.reportGoals{grid-column:auto}}
@media(max-width:600px){.overviewPaymentHeading{align-items:flex-start;gap:4px 10px}.reportDashboardIntro{display:block}.reportDashboardIntro label{margin-top:14px}.reportHero{padding:21px;gap:19px}.reportHeroMetrics{grid-template-columns:1fr}.reportHeroMetrics>div{display:flex}.reportHeroMetrics b{margin:0;text-align:right}.reportCompareRow{grid-template-columns:1fr auto;gap:5px 10px}.reportCompareRow>div{grid-column:1/-1;grid-row:2}.reportDistributionBody{flex-direction:column;align-items:stretch}.reportDonut{margin:auto}.reportGoalGrid{grid-template-columns:1fr}.reportCardHeading{align-items:flex-start}.reportWeekBars>div{grid-template-columns:63px minmax(0,1fr);gap:6px}.reportWeekBars b{grid-column:2;text-align:right}.reportBarLegend{margin-top:-8px}}
.shareDetailTabs{display:flex;gap:6px;padding:5px;margin:0 0 18px;background:#f0f4f5;border-radius:13px}.shareDetailTabs button{flex:1;min-height:38px;border:0;border-radius:10px;background:transparent;color:#354850;font-weight:700;cursor:pointer}.shareDetailTabs button.active{background:#fff;color:#0E3B33;box-shadow:0 2px 8px #2639431c}.shareHistoryEvent{padding:15px 0;border-bottom:1px solid #dce5e6}.shareHistoryEvent>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.shareHistoryEvent small{color:#617074}.shareHistoryEvent p{margin:8px 0;color:#42565b}.shareHistoryEvent details{margin-top:9px}.shareHistoryEvent summary{cursor:pointer;color:#0B6B5A;font-weight:650}
.goalHistorySummary{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.2rem;border-radius:16px;background:#E7F4EF;color:#0E3B33;margin-bottom:1rem}.goalHistorySummary strong{font-size:1.35rem}.goalHistoryList{display:grid;gap:.45rem;max-height:55vh;overflow:auto}.goalHistoryList>div{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;border:1px solid #E7F4EF;border-radius:12px}.goalHistoryList span{display:grid;gap:.2rem}.goalHistoryList small{color:#66797e}.reportGoalGroup+.reportGoalGroup{margin-top:1.4rem}.reportGoalGroup h3{font-size:1rem;margin:0 0 .8rem;color:#0E3B33}.reportGoalGroup h3 span{color:#587075;font-weight:500}.reportGoals .reportGoalGrid{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.calendarSettingsButton{font-size:.85rem}.calendarColorKey{display:inline-flex;align-items:center;gap:.25rem;flex-wrap:wrap;font-size:.72rem;color:#506370}.calendarColorKey i{display:inline-block;width:.65rem;height:.65rem;margin-left:.35rem;border-radius:50%}.calendarColorKey .ahead,.calentry.ahead{background:#E7F4EF;color:#0B6B5A}.calendarColorKey .near,.calentry.near{background:#fff1cf;color:#705b19}.calendarColorKey .urgent,.calentry.urgent{background:#fbe3df;color:#9b3c36}.calendarColorKey .extra,.calentry.extra{background:#E7F4EF;color:#59477d}.calentry.paid{background:#e5f2e8;color:#316047}.calentry.free{background:#E7F4EF;color:#0B6B5A}.calendarSettingsCheck{display:flex;align-items:center;gap:.6rem;margin:.8rem 0;font-size:.9rem}.calendarFreeDetail{margin-top:1.2rem}.calendarFreeDetail h3{font-size:1rem}.calendarFreeDetail .definition{border-top:1px solid #e5e9e9;padding:.6rem 0}
.calendarWide .calentry.paid,.calendarWide .calentry.paid.shiftedCalendarEntry{background:#e8ebee;color:#53616a;border-color:#d4dce1}
.calendarWide .calentry.overdue,.calendarWide .calentry.overdue.shiftedCalendarEntry{background:#f8e0dc;color:#9b3834;border-color:#e9bab2}
.overdueMonthGroups{display:grid;gap:.8rem;margin-top:1rem}.overdueMonthGroup{border:1px solid #e2e8e8;border-radius:15px;overflow:hidden;background:#fff}.overdueMonthGroup summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;cursor:pointer;padding:1rem 1.2rem;font-weight:700;color:#283b42}.overdueMonthGroup summary strong{font-size:.78rem;font-weight:600;color:#7b5450}.overdueMonthGroup[open] summary{border-bottom:1px solid #e2e8e8;background:#f6f8f8}.overdueMonthGroup .tablewrap{border:0}.overdueMonthActions{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1.2rem;border-top:1px solid #e2e8e8}.overdueMonthActions p{margin:0;font-size:.78rem;color:#627278}.overdueMonthActions button{white-space:nowrap;color:#a3413a;border-color:#d3a29e}@media(max-width:640px){.overdueMonthActions{align-items:stretch;flex-direction:column}.overdueMonthActions button{align-self:flex-end}}
.reportGoalVisualization{display:flex;align-items:center;gap:1.5rem;padding:1.1rem 1.3rem;margin:0 0 1.35rem;border:1px solid #E7F4EF;border-radius:18px;background:#E7F4EF}.reportGoalDial{width:108px;height:108px;flex:none;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#0B7F6B var(--dial-progress),#E7F4EF 0)}.reportGoalDial span{display:grid;place-content:center;text-align:center;width:79px;height:79px;border-radius:50%;background:#fff;color:#0E3B33}.reportGoalDial strong{font-size:1.35rem}.reportGoalDial small{font-size:.72rem}.reportGoalVisualStats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem;width:100%}.reportGoalVisualStats>div+div{border-left:1px solid #d9e4e8;padding-left:1.2rem}.reportGoalVisualStats small{display:block;color:#5f7782}.reportGoalVisualStats strong{display:block;font-size:1.12rem;color:#0E3B33;margin:.25rem 0}.reportGoalVisualStats strong span{font-size:.75rem;font-weight:500;color:#667c85}.reportGoalVisualStats p{margin:0;font-size:.76rem;color:#5f7782}@media(max-width:600px){.reportGoalVisualization{gap:.8rem}.reportGoalDial{width:82px;height:82px}.reportGoalDial span{width:60px;height:60px}.reportGoalDial strong{font-size:1rem}.reportGoalVisualStats{grid-template-columns:1fr;gap:.5rem}.reportGoalVisualStats>div+div{border-left:0;border-top:1px solid #d9e4e8;padding:.5rem 0 0}}
/* El acceso al perfil conserva el nombre completo sin recortarlo. */
.sidebar .sidefooter{flex:0 0 auto;min-height:70px;max-height:none}
.sidebar .sidefooter>div{min-width:0;max-width:none;flex:1;white-space:normal}
.sidebar .sidefooter b{display:block;white-space:normal;overflow-wrap:anywhere;font-size:12px;line-height:1.2}
.sidebar .sidefooter small{margin-top:3px;white-space:normal}
@media(min-width:901px){.sidebarCollapsed .sidebar .sidefooter{min-height:54px;max-height:54px;flex-basis:54px}.sidebarCollapsed .sidebar .sidefooter>div{flex:none}}
/* En anchos intermedios la etiqueta y las acciones no compiten por la misma línea. */
@media(max-width:1100px){
 .topbar{height:auto;min-height:56px;flex-wrap:wrap;align-content:center;row-gap:3px;padding-top:7px;padding-bottom:7px}
 .topbarStart{flex:1 0 100%;max-width:100%}
 .topbarPurpose{white-space:normal;overflow:visible;text-overflow:clip}
 .topright{max-width:100%;margin-left:auto}
}
@media(max-width:600px){
 .topbarPurpose{font-size:11px;letter-spacing:0}
 .topright{gap:5px}
}
/* Las pestañas se desplazan horizontalmente en móvil, sin recortar sus nombres. */
.overviewStatusTabs{grid-template-columns:minmax(152px,1.4fr) repeat(4,minmax(126px,1fr)) minmax(116px,1fr);min-width:810px}
.overviewStatusTabs button{min-width:0;overflow:visible}
.calendarColorKey{display:flex;width:100%;gap:6px 10px;flex-wrap:wrap;line-height:1.3}
.calendarColorKey>span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.calendarColorKey i{margin-left:0;flex:none}

/* Acceso Dico: dos paneles dentro de un solo marco. Home conserva su acceso privado. */
.authpage.dicoAuth{box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);align-items:stretch;gap:0;width:min(1060px,calc(100% - 40px));max-width:none;min-height:min(650px,calc(100dvh - 64px));margin:clamp(24px,5vh,64px) auto;padding:0;border:1px solid #e1e6e9;border-radius:28px;background:#fff;box-shadow:0 26px 70px #1c254021;overflow:hidden}
.dicoAuth .authEntry{grid-column:2;grid-row:1;display:flex;flex-direction:column;justify-content:center;min-width:0;width:100%;padding:clamp(30px,4.5vw,62px);background:#fff}
.dicoAuth .authbrand{margin-bottom:34px}
.dicoAuth .authpanel{width:100%;box-sizing:border-box;padding:0;border:0;border-radius:0;box-shadow:none;margin:0;background:transparent}
.authStory{box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;min-width:0;min-height:565px;padding:clamp(26px,4vw,44px);border-radius:28px;background:linear-gradient(145deg,#2d2549 0%,#0E3B33 100%);color:#fff;overflow:hidden}
.dicoAuth .authStory{grid-column:1;grid-row:1;min-height:100%;border-radius:0;background:radial-gradient(circle at 78% 12%,#7555aa80 0,transparent 37%),linear-gradient(145deg,#49386e 0%,#0E3B33 100%)}
.authStory[hidden]{display:none}
.authStoryArt{display:grid;place-items:center;min-height:300px;max-height:360px}
.authStoryArt img{display:block;width:100%;height:360px;object-fit:contain;filter:drop-shadow(0 12px 25px #0c112845)}
.authStoryCopy{min-height:146px;max-width:490px;margin:8px auto 0;text-align:center}
.authStoryCopy>span{font-size:11px;letter-spacing:.18em;font-weight:800;color:#7FD0BD}
.authStoryCopy h2{margin:9px 0;font-size:clamp(24px,2.7vw,35px);line-height:1.13;letter-spacing:-.035em;color:#fff}
.authStoryCopy p{margin:0;color:#E7F4EF;font-size:15px;line-height:1.55}
.authStoryDots{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:13px}
.authStoryDot{width:9px;height:9px;min-width:9px;padding:0;border:0;border-radius:99px;background:#ffffff75;cursor:pointer;transition:width .25s ease,background .25s ease}
.authStoryDot.active{width:27px;background:#7FD0BD}
.authStoryDot:focus-visible{outline:2px solid #fff;outline-offset:4px}
.sessionIllustration{display:block;width:min(280px,100%);height:205px;object-fit:contain;margin:0 auto 15px}
.sessionIllustration[hidden]{display:none}
#sessionAlert{text-align:center;max-width:430px;box-sizing:border-box}
#sessionAlert .formactions{justify-content:center;flex-wrap:wrap}
@media(max-width:760px){.authpage.dicoAuth{display:flex;flex-direction:column;align-items:stretch;min-height:0;width:min(520px,calc(100% - 24px));max-width:none;margin:12px auto 28px;padding:0;border-radius:22px}.dicoAuth .authEntry{order:1;padding:28px clamp(22px,6vw,40px) 34px}.dicoAuth .authbrand{margin-bottom:20px}.dicoAuth .authStory{order:2;min-height:0;padding:22px;border-radius:0}.authStoryArt{min-height:190px;max-height:230px}.authStoryArt img{height:220px}.authStoryCopy{min-height:116px}.authStoryCopy h2{font-size:24px}.authStoryCopy p{font-size:13px}.authStoryDots{margin-top:8px}}
@media(max-width:400px){.dicoAuth .authEntry{padding:24px 20px 30px}.authStoryArt img{height:190px}.authStoryArt{min-height:180px}.sessionIllustration{height:165px}}
@media(prefers-reduced-motion:reduce){.authStoryDot{transition:none}}

.reportCoverage{display:flex;align-items:center;flex-wrap:wrap;gap:6px 16px;margin:0 0 16px;padding:12px 16px;border:1px solid #E7F4EF;border-radius:12px;background:#E7F4EF;color:#0B6B5A;font-size:12px}.reportCoverage strong{color:#0E3B33}.reportCoverage span{font-weight:650}.reportCoverage small{flex-basis:100%;color:#647b89;font-size:11px;line-height:1.45}

.goalHistoryList>div{flex-wrap:wrap}.goalHistoryList span{min-width:0;flex:1 1 140px}.goalHistoryList b{overflow-wrap:anywhere}.goalHistoryList button{margin-left:auto}

.overviewManualLegend{margin:6px 0 12px;color:#637b88;font-size:11px;line-height:1.4}
.bulkPaymentColumn{width:38px;min-width:38px;text-align:center!important}.bulkPaymentColumn input{width:17px;height:17px;accent-color:#0B7F6B;cursor:pointer}.bulkPaymentToolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 12px;padding:10px 12px;border:1px solid #BFE0D6;border-radius:12px;background:#E7F4EF}.bulkPaymentToolbar[hidden]{display:none}.bulkPaymentToolbar strong{margin-right:auto;color:#0E3B33}.bulkPaymentToolbar button{white-space:normal}.bulkPaymentReview{max-height:min(40dvh,350px);overflow:auto;border:1px solid #E7F4EF;border-radius:12px;padding:4px 12px}.bulkPaymentReview .definition{gap:12px}.bulkPaymentReview small{display:block;color:#637b88}.bulkPaymentReview strong{white-space:nowrap}
@media(max-width:600px){.bulkPaymentToolbar{align-items:stretch}.bulkPaymentToolbar strong{width:100%}.bulkPaymentToolbar button{flex:1 1 130px}}
.budgetTransferBalances{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.budgetTransferBalances span{display:flex;justify-content:space-between;gap:18px;min-width:min(220px,100%);padding:11px 14px;border:1px solid #E7F4EF;border-radius:10px;background:#E7F4EF;color:#415b67}.budgetTransferBalances b{color:#0E3B33}.budgetTransferCard .formgrid{margin:0 0 8px}.budgetTransferCard small{display:block;color:#5f7580;line-height:1.4}.budgetTransferCard [role="alert"]:empty{display:none}

.authpage{max-width:460px;margin:9vh auto;padding:20px}.authbrand{display:flex;align-items:center;gap:12px;margin-bottom:32px}.authpanel{padding:30px}.authpanel h1{font-size:30px;margin-bottom:25px}.authpanel .field{margin-bottom:17px}.authpanel .primary{width:100%;margin-top:10px}.authlinks{display:flex;flex-wrap:wrap;justify-content:center;margin-top:15px}#authError,#homeError,#manageError{color:#a74438;font-size:13px}.homeStats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0}.button{display:inline-flex;align-items:center;padding:11px 15px;border-radius:11px;background:var(--action);font-weight:650}.button:not([href]){opacity:.4;pointer-events:none}dialog{width:min(980px,calc(100% - 30px))}.authpanel .field input{width:100%}.savestatus{font-size:11px;color:#58794d}.savestatus.error{color:#a74438;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.notice{margin-top:14px}.sharingRow{padding:18px 0;border-bottom:1px solid var(--line)}.sharingRow .actions{margin-top:12px}@media(max-width:700px){.homeStats{grid-template-columns:1fr}.homeStats .metric{min-height:90px}.homeStats .value{margin:10px 0}.authpage{margin:3vh auto}}

#dicoHelpButton{width:34px;height:34px;flex:0 0 34px;border:1px solid #BFE0D6;border-radius:50%;background:#E7F4EF;color:#0E3B33;font-size:19px;font-weight:750;line-height:1;display:grid;place-items:center;cursor:pointer}
#dicoHelpButton:hover,#dicoHelpButton:focus-visible{background:#E7F4EF;outline-color:#0B7F6B}
#dicoTour{width:min(570px,calc(100vw - 28px));max-height:min(700px,calc(100dvh - 28px));padding:0;border:0;border-radius:25px;background:#fff;box-shadow:0 20px 70px #1a27364a;overflow:auto;color:#31343c}#dicoTour::backdrop{background:#1c273a9c;backdrop-filter:blur(3px)}
.dicoTourCard{padding:0 28px 25px;min-height:500px;display:flex;flex-direction:column}.dicoTourHead{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:20px 0 12px;background:#fff;color:#576376;font-size:13px;font-weight:650}.dicoTourClose{width:34px;height:34px;border:0;border-radius:50%;background:#edf2f4;color:#0E3B33;font-size:24px;line-height:1;cursor:pointer}.dicoTourClose:hover{background:#E7F4EF}
.dicoTourArt{display:grid;place-items:center;min-height:225px;margin:8px 0 10px;border-radius:22px;background:linear-gradient(145deg,#E7F4EF,#f7f6ee 70%);color:#0B7F6B}.dicoTourArt img{display:block;width:min(280px,82%);height:auto;max-height:195px;object-fit:contain;filter:drop-shadow(0 10px 9px #4f809225)}
.dicoTourCopy{text-align:center;max-width:430px;margin:0 auto}.dicoTourCopy h2{font-size:28px;line-height:1.15;margin:8px 0 12px;color:#0E3B33}.dicoTourCopy p{font-size:16px;line-height:1.5;margin:0;color:#586274}.dicoTourFoot{margin-top:auto;padding-top:26px}.dicoTourDots{display:flex;justify-content:center;gap:9px;margin-bottom:23px}.dicoTourDots button{padding:0;width:9px;height:9px;border:0;border-radius:99px;background:#bacbd4;cursor:pointer;transition:width .18s,background .18s}.dicoTourDots button.active{width:28px;background:#0B7F6B}.dicoTourActions{display:flex;justify-content:space-between;gap:12px}.dicoTourActions button{min-height:43px;padding:10px 20px;border-radius:11px;cursor:pointer}.dicoTourActions button:disabled{opacity:.4;cursor:default}.dicoTourActions .primary{min-width:140px;background:#0B7F6B;color:white}
@media(max-width:600px){.dicoTourCard{min-height:min(545px,calc(100dvh - 30px));padding:0 20px 22px}.dicoTourArt{min-height:185px}.dicoTourArt img{max-height:160px}.dicoTourCopy h2{font-size:24px}.dicoTourCopy p{font-size:15px}.dicoTourFoot{padding-top:18px}}

/* #22 P2 · asistente de primer mes */
.firstMonth{margin-bottom:18px;border-color:var(--action-border)}
.firstMonthHead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.firstMonthSteps{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:14px}
.firstMonthSteps li{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start}
.firstMonthSteps li>div{display:grid;gap:6px;justify-items:start}
.firstMonthTick{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--green);color:#fff;font-size:14px}
.firstMonthTick.pending{background:transparent;color:var(--muted);border:1px solid var(--line)}
.firstMonthSteps li.isDone b{color:var(--green)}
.firstMonthAmount{font-size:26px}
.firstMonthAmount.negative{color:var(--red)}
.firstMonthHelp{margin:14px 0 0}
.firstMonthDone{display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap;background:var(--saving-soft)}
.firstMonth form{display:grid;gap:8px;justify-items:start;width:100%;max-width:360px}

/* #98 · Estados de componente coherentes: hover, pulsado, seleccionado, deshabilitado, ocupado y alto contraste.
   Se carga al final del CSS (build.py) y solo completa lo que faltaba; no cambia dimensiones ni colores base. */
.brand:hover,.brand:focus-visible,summary:hover,a.subtle:hover,a.profileHistoryLink:hover{filter:brightness(.97);text-decoration:underline;text-underline-offset:3px}
summary{cursor:pointer}
button:not(:disabled):not([aria-disabled="true"]):active,.button[href]:active,.pill:active,.sidebar nav a:active,.sidebar .navParent:active{transform:translateY(1px);filter:brightness(.94)}
input:disabled,select:disabled,textarea:disabled{background:#f0f2f1;color:#708081;cursor:not-allowed;opacity:1}
a[aria-disabled="true"],.button:not([href]){opacity:.5;pointer-events:none;cursor:not-allowed}
[aria-busy="true"]{cursor:progress;opacity:.7;pointer-events:none}
[aria-selected="true"],[aria-current="page"],[aria-pressed="true"]{font-weight:700}
@media(prefers-reduced-motion:reduce){button:active,a:active{transform:none!important}}
@media(forced-colors:active){:focus-visible{outline:3px solid Highlight}button:disabled,[aria-disabled="true"]{color:GrayText;border-color:GrayText}}

/* #19 · aviso de cierre de sesión por inactividad */
.srOnly{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.idleWarning{border:0;border-radius:18px;padding:0;max-width:min(380px,calc(100% - 32px));width:100%;box-shadow:0 24px 70px #17232066}
.idleWarning::backdrop{background:#172320b3}
.idleCard{display:grid;gap:10px;justify-items:center;text-align:center;padding:26px 22px}
.idleCard h2{margin:0}.idleCard p{margin:0;color:var(--muted)}
.idleRing{position:relative;width:120px;height:120px}
.idleRing svg{width:100%;height:100%;transform:rotate(-90deg)}
.idleTrack{fill:none;stroke:var(--line);stroke-width:9}
.idleBar{fill:none;stroke:var(--focus-ring);stroke-width:9;stroke-linecap:round;transition:stroke-dashoffset 1s linear}
.idleSeconds{position:absolute;inset:0;display:grid;place-items:center;font-size:34px;font-weight:700;color:var(--ink)}
.idleCard .formactions{justify-content:center;margin-top:6px}
@media(prefers-reduced-motion:reduce){.idleBar{transition:none}}

/* #11 · códigos de recuperación */
.recoveryCodes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;list-style:none;margin:12px 0;padding:0}
.recoveryCodes code,.recoveryNotice code{display:block;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--bg);font:600 14px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em;text-align:center}
.recoveryNotice{display:grid;gap:8px;justify-items:center;margin-bottom:14px;padding:14px;border:1px solid var(--action-border);border-radius:14px;background:var(--saving-soft)}
.recoveryNotice p{margin:0;text-align:center}
@media(max-width:420px){.recoveryCodes{grid-template-columns:1fr}}

/* #26 · ayuda */
.supportItem{padding:10px 0;border-top:1px solid var(--line)}
.supportItem p{margin:6px 0 0}
.supportAnswer{padding:8px 10px;border-radius:10px;background:var(--saving-soft)}

/* Aceptación de términos */
.checkRow{display:flex;gap:9px;align-items:flex-start;margin:8px 0;cursor:pointer}
.checkRow input[type=checkbox]{flex:none;width:17px;height:17px;margin:2px 0 0;accent-color:var(--action-dark);cursor:pointer}
.checkRow span{min-width:0}
.authTerms{margin:12px 0;font-size:14px;line-height:1.45}
.authTerms a,.termsGate a{color:var(--focus-ring);text-decoration:underline;text-underline-offset:2px}
.termsGate{max-width:560px;margin:8vh auto}

/* UI «Aire» · fase 1: color con significado, tipografía, tarjetas amplias y menú lateral.
   Solo presentación: no toca la lógica ni los datos. Se concatena al final en build.py.
   Referencia visual: docs/ui/propuesta-aire.md */
@font-face{font-family:"Bricolage Grotesque";src:url("fonts/bricolage-grotesque-latin.woff2") format("woff2");font-weight:500 800;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url("fonts/inter-latin.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"DM Sans";src:url("fonts/dm-sans-latin.woff2") format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
:root{
  --bg:#F5F3EE;--paper:#FFFFFF;--ink:#17231F;--muted:#5B6862;--line:#E6E2D9;--soft:#F1EFE9;
  --forest:#0E3B33;--forest-2:#14574A;--mint:#0B7F6B;--mint-hover:#096957;--mint-soft:#DDF3EC;--mint-ink:#0B5A4B;--mint-vivid:#7FE0C6;
  --sun:#F2B84B;--sun-soft:#FFF1D0;--sun-ink:#7A5200;
  --coral:#E8644A;--coral-soft:#FFE3DC;--coral-ink:#A63B25;
  --lilac:#7A6AE6;--lilac-soft:#E9E5FF;--lilac-ink:#4A3CC0;
  --sky:#3E9BE8;--sky-soft:#DCEEFF;--sky-ink:#1D5E9E;
  --r-field:18px;--r-card:32px;--r-hero:40px;
  --shadow-card:0 1px 2px #17231F0A,0 10px 28px #17231F0D;--shadow-dialog:0 40px 100px #17231F40;
  /* Variables heredadas de la interfaz actual, ahora con la paleta Aire */
  --action-dark:#17231F;--action-primary:#0B7F6B;--action:#DDF3EC;--action-border:#B9E3D6;--focus-ring:#0B7F6B;--green:#0E3B33;--red:#A63B25;--cream:#F5F3EE;--saving-soft:#DDF3EC;--sharing-soft:#E9E5FF;
  --display:"Bricolage Grotesque","DM Sans",system-ui,sans-serif;
}
body{background:var(--bg);color:var(--ink);font-family:"DM Sans",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:15px;font-variant-numeric:tabular-nums}
h1,h2,h3,.value,.brandLabel{font-family:var(--display);letter-spacing:-.02em}
h1{font-size:clamp(28px,2.7vw,38px);line-height:1.08;letter-spacing:-.03em}
.layout{background:var(--bg)}

/* Menú lateral: píldoras, activo en tinta */
.sidebar{background:transparent;border:0;box-shadow:none;border-radius:0}
.navlabel{color:#7B8A84;font-size:11px;letter-spacing:.14em;font-weight:700}
nav a,.sidebar .navParent{min-height:46px;align-items:center;border-radius:999px;color:var(--muted);font-size:15px;font-weight:500}
nav a:hover:not(.active),.sidebar .navParent:hover:not(.active){background:#fff}
nav a.active,.sidebar .navParent.active,.sidebar nav a.active:hover,.sidebar .navParent.active:hover{background:var(--ink);color:#fff}
.sidebar .subnav{border-left:2px solid var(--line);margin-left:34px;padding-left:12px}
.sidebar .subnav a{min-height:40px;font-size:14px;border-radius:999px}
.sidebar .subnav a.active{background:var(--ink);color:#fff}
.sidefooter{background:#fff;border-radius:24px;box-shadow:var(--shadow-card)}

/* Barra superior: el guardado como píldora; copia manual fuera de la barra (la copia vive en Mi cuenta) */
.topbarPurpose{color:var(--muted)}
.savestatus{background:var(--mint-soft);color:var(--mint-ink);border-radius:999px;padding:9px 16px;font-size:13px;font-weight:700;min-height:0}
.savestatus.error{background:var(--coral-soft);color:var(--coral-ink)}
.topright .exportButton,#importButton,#exportButton{display:none}

/* Tarjetas amplias y sin borde */
.panel,.metric{background:var(--paper);border:0;border-radius:var(--r-card);box-shadow:var(--shadow-card);padding:28px}
.metric .caption,.metric small{color:var(--muted)}
.metric .value{font-size:clamp(24px,2.2vw,32px)}
.metric.featured{background:var(--forest);color:#fff;border-radius:var(--r-hero);box-shadow:none}
.metric.featured .caption,.metric.featured small{color:#BFE6DB}
.metric.featured .value{color:#fff;font-size:clamp(28px,2.7vw,40px);letter-spacing:-.04em}
.metric.featured:after{border-color:#ffffff1f;box-shadow:0 0 0 22px #ffffff0d,0 0 0 44px #ffffff08}
.page{padding-block:32px}
.grid{gap:22px}

/* Botones en píldora: menta = acción, tinta = confirmar, contorno = secundaria */
button{border-radius:999px;border-color:var(--line);min-height:44px;padding-inline:18px;font-weight:700;transition:background 150ms ease,transform 100ms ease}
button:active:not(:disabled){transform:scale(.97)}
button.primary,.button{background:var(--mint);border-color:var(--mint);color:#fff}
button.primary:hover,.button:hover{background:var(--mint-hover);border-color:var(--mint-hover)}
dialog .formactions .primary,.formactions>button.primary{background:var(--ink);border-color:var(--ink);color:#fff}
button.danger{color:var(--coral-ink)}
button:disabled{opacity:.45}
:is(#closeModal,#close,.dicoTourClose,[data-date-close],#dicoHelpButton,#sidebarCollapse,[aria-label="Mes anterior"],[aria-label="Mes siguiente"],[data-date-prev],[data-date-next]){min-height:0;padding-inline:0}

/* Campos amplios con foco menta */
input,select,textarea,.field input,.field select{border-radius:var(--r-field);border:2px solid var(--line);background:var(--bg);min-height:48px}
input:focus,select:focus,textarea:focus{border-color:var(--mint);background:#fff;outline:none;box-shadow:0 0 0 4px #0B7F6B26}
input[type=checkbox],input[type=radio]{min-height:0}

/* Chips y pestañas */
.pill{background:#fff;border:0;color:var(--ink);font-size:14px;min-height:42px;box-shadow:var(--shadow-card)}
.pill.active{background:var(--ink);color:#fff}

/* Estados con significado: pronto = sol, vencido = coral, pagado = menta */
.statusline{background:var(--mint-soft);color:var(--mint-ink);border-radius:var(--r-field)}
.notice{background:var(--lilac-soft);border:0;border-radius:var(--r-card);color:var(--ink)}
.badge.late,.status.late,.late{color:var(--coral-ink)}

/* Cápsulas y barras */
.track,.bar,.strongTrack,.reportBudgetBar{border-radius:999px;background:var(--soft)}
.track i,.bar i,.strongTrack i,.reportBudgetBar i{border-radius:999px}
.bar i{background:var(--mint)}

/* Asistente del primer mes en lila */
.firstMonth{background:var(--lilac-soft);border:0;border-radius:var(--r-card);color:var(--ink)}
.firstMonth h2,.firstMonth b{color:var(--ink)}
.firstMonthTick{background:var(--mint);color:#fff}

/* Diálogos amplios */
dialog{border:0;border-radius:36px;box-shadow:var(--shadow-dialog);padding:36px 40px}
dialog::backdrop{background:#17231F66}

@media(max-width:700px){
  .panel,.metric{padding:22px;border-radius:28px}
  dialog{width:100%;max-width:none;margin:auto 0 0;max-height:92vh;border-radius:36px 36px 0 0;padding:26px 20px calc(20px + env(safe-area-inset-bottom))}
}
@media(prefers-reduced-motion:reduce){button{transition:none}button:active:not(:disabled){transform:none}}

/* Registro rápido (botón flotante) y hoja de acciones */
#quickFreeAction{display:none!important}
#quickRegister{position:fixed;right:max(28px,env(safe-area-inset-right));bottom:max(28px,env(safe-area-inset-bottom));z-index:800;min-height:60px;padding:0 26px 0 14px;display:flex;align-items:center;gap:12px;border:0;border-radius:999px;background:var(--ink);color:#fff;font-size:16px;font-weight:700;box-shadow:0 18px 40px #17231F40}
#quickRegister:hover{background:#26413A}
#quickRegister span{width:34px;height:34px;border-radius:50%;background:var(--mint-vivid);color:var(--ink);display:flex;align-items:center;justify-content:center;font-size:24px;line-height:1}
body:has(dialog[open]) #quickRegister{display:none}
.quickGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:8px}
.quickGrid button{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;min-height:96px;padding:18px;border:0;border-radius:26px}
.quickGrid button span{font-size:13px;font-weight:500;opacity:.85}
.quickFree{background:var(--sky-soft);color:var(--sky-ink)}.quickDebt{background:var(--coral-soft);color:var(--coral-ink)}.quickIncome{background:var(--mint-soft);color:var(--mint-ink)}.quickGoal{background:var(--lilac-soft);color:var(--lilac-ink)}
.quickList{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.quickList button{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:0 22px;border:0;border-radius:999px;background:var(--soft)}
.muted{color:var(--muted)}

/* Menú inferior en píldora (móvil) con la paleta Aire */
#bottomNav{display:none}
@media(max-width:700px){
  #bottomNav{display:flex;position:fixed;left:14px;right:14px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:30;background:var(--ink);border-radius:999px;padding:7px;gap:2px;box-shadow:var(--shadow-dialog)}
  #bottomNav>*{flex:1;min-width:0;min-height:52px;border:0;background:transparent;border-radius:999px;color:#C9D6D1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:11px;font-weight:700;padding:4px 2px;text-decoration:none}
  #bottomNav svg{width:22px;height:20px;fill:none;stroke:currentColor}
  #bottomNav [aria-current="page"]{background:var(--mint-vivid);color:var(--ink)}
  body.menuOpen #bottomNav,body:has(dialog[open]) #bottomNav{display:none}
  .layout{padding-bottom:104px}
  #quickRegister{bottom:calc(96px + env(safe-area-inset-bottom));right:16px;min-height:54px;padding-right:22px}
}
/* Menú lateral abierto en móvil/tablet: panel con fondo y sombra (en escritorio queda transparente) */
@media(max-width:900px){
  .sidebar{background:#fff;border-radius:0 32px 32px 0;box-shadow:var(--shadow-dialog)}
  body.menuOpen #quickRegister{display:none}
}

.field[hidden]{display:none!important}
/* Iconos de trazo (24 px, 1.8) en menú y barra */
.navIconSlot svg{height:20px;width:20px;max-width:none}
.navIconSlot{width:24px;flex-basis:24px}
.notificationBell svg{width:20px;height:20px}

/* Asistente del primer mes compacto: tres pasos en una fila, sin ocupar la pantalla */
.firstMonth{padding:16px 22px;margin-block:10px;gap:8px}
.firstMonthHead{margin:0}
.firstMonth h2{font-size:17px;letter-spacing:-.01em;margin:0}
.firstMonth small,.firstMonth p,.firstMonthHelp{font-size:12.5px;line-height:1.4}
.firstMonthSteps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;list-style:none;margin:6px 0 0;padding:0}
.firstMonthSteps li{display:flex;gap:10px;align-items:flex-start;background:#fff;border-radius:20px;padding:12px 14px;margin:0}
.firstMonthSteps b{font-size:14px;line-height:1.3}
.firstMonthSteps .field{font-size:12px;margin:6px 0 0}
.firstMonthSteps input{min-height:40px;font-size:14px}
.firstMonth .firstMonthAmount{font-size:18px}
.firstMonth button{min-height:36px;padding-inline:14px;font-size:13px}
.firstMonthHelp{margin:2px 0 0}
@media(max-width:900px){.firstMonthSteps{grid-template-columns:1fr}}

/* ===== Vista general: «Lo siguiente», piedras por semana y frasco ===== */
.summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
.summary>.metric.featured{min-height:200px;display:flex;flex-direction:column;justify-content:space-between}
@media(max-width:1000px){.summary{grid-template-columns:repeat(2,minmax(0,1fr))}.summary>.metric.featured{grid-column:span 2}}
@media(max-width:560px){.summary{grid-template-columns:1fr}.summary>.metric.featured{grid-column:auto}}
/* Vista general: Disponible + «Lo siguiente» arriba, tres tarjetas debajo */
.summary:has(.aireNext){grid-template-columns:repeat(6,minmax(0,1fr))}
.summary:has(.aireNext)>.metric.featured{grid-column:span 4;min-height:230px}
.summary:has(.aireNext)>.metric:not(.featured){grid-column:span 2}
.summary>.aireNext{min-height:230px;display:flex;flex-direction:column;justify-content:space-between;gap:8px}
@media(max-width:1000px){.summary:has(.aireNext)>.metric.featured,.summary:has(.aireNext)>.aireNext{grid-column:span 6}.summary:has(.aireNext)>.metric:not(.featured):not(.aireNext){grid-column:span 3}}
@media(max-width:700px){.summary:has(.aireNext)>.metric:not(.featured):not(.aireNext){grid-column:span 6}}
.aireBadge{align-self:flex-start;padding:6px 14px;border-radius:999px;font-size:12.5px;font-weight:700;background:var(--soft);color:var(--ink)}
.aireBadge.soon{background:var(--sun-soft);color:var(--sun-ink)}.aireBadge.late{background:var(--coral-soft);color:var(--coral-ink)}.aireBadge.ok{background:var(--mint-soft);color:var(--mint-ink)}
.aireNextName{font-family:var(--display);font-size:clamp(22px,2.2vw,30px);letter-spacing:-.02em;line-height:1.1}
.aireNextFoot{display:flex;align-items:center;justify-content:space-between;gap:12px}
.aireNextAmount{font-family:var(--display);font-weight:700;font-size:24px}
.airePebbles{margin-block:22px}
.airePebblesHead{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}
.airePebblesHead h2{margin:0;font-size:22px}.airePebblesHead small{color:var(--muted)}
.aireWeeks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
@media(max-width:900px){.aireWeeks{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.aireWeeks{grid-template-columns:1fr}}
.aireWeek>span{display:block;font-size:13px;font-weight:700;color:var(--muted);margin-bottom:8px}
.aireWeek>div{display:flex;flex-wrap:wrap;gap:8px}
.airePebble{min-height:40px;padding:8px 16px;border:0;border-radius:999px;background:var(--soft);color:var(--ink);font-size:14px;font-weight:500;text-align:left}
.airePebble.paid{background:var(--mint-soft);color:var(--mint-ink)}.airePebble.soon{background:var(--sun-soft);color:var(--sun-ink);font-weight:700}.airePebble.late{background:var(--coral-soft);color:var(--coral-ink);font-weight:700}
.aireNone{color:var(--muted)}
a.freeQuick{display:flex;align-items:center;gap:22px;border:0;background:var(--sky-soft);border-radius:var(--r-card);color:var(--ink)}
a.freeQuick>div:first-of-type{flex:1}
.freeQuick .eyebrow{color:var(--sky-ink)}
.freeQuick .freeProgress{background:#fff}.freeQuick .freeProgress i{background:var(--sky)}
.aireJar{flex:none}

/* ===== Mis deudas: cada pago como tarjeta ===== */
@media(min-width:701px){
  .debtWeekGroup .tablewrap{overflow:visible;border:0;background:transparent;box-shadow:none;padding:0}
  .debtWeekGroup table,.debtWeekGroup tbody{display:block;border:0}
  .debtWeekGroup thead{display:block;margin-bottom:6px}
  .debtWeekGroup thead tr,.debtWeekGroup tbody tr{display:grid;grid-template-columns:minmax(120px,1.5fr) 60px 100px minmax(96px,1fr) 36px auto;align-items:center;gap:10px}
  .debtWeekGroup thead tr{padding:0 18px}
  .debtWeekGroup thead th{padding:0;border:0;font-size:12px;color:var(--muted);text-transform:none;letter-spacing:0;background:transparent}
  .debtWeekGroup tbody tr{background:#fff;border-radius:28px;padding:12px 18px;margin:0 0 10px;box-shadow:var(--shadow-card);border:0}
  .debtWeekGroup tbody tr:has(.tag.red){background:var(--coral-soft)}
  .debtWeekGroup tbody td{display:block;padding:0;border:0;background:transparent}
  .debtWeekGroup td.money{font-family:var(--display);font-weight:700;font-size:18px;text-align:right;white-space:nowrap}
  .debtWeekGroup .payname b{font-family:var(--display);font-size:17px;letter-spacing:-.01em}
  .debtWeekGroup .tile{border-radius:16px}
  .debtWeekGroup .rowaction{min-height:36px;padding-inline:12px;border:2px solid var(--ink);background:transparent;color:var(--ink);border-radius:999px;font-size:12.5px;font-weight:700}
  .debtWeekGroup .rowaction.deleteRowAction{border-color:transparent;color:var(--coral-ink)}
  .debtWeekGroup td:last-child{display:flex;gap:6px;justify-content:flex-end;flex-wrap:nowrap;white-space:nowrap}
  .debtWeekGroup tbody td:first-child,.debtWeekGroup tbody tr{border-left:0!important;box-shadow:var(--shadow-card)}
  .debtWeekGroup tbody td:first-child{box-shadow:none!important}
  .debtWeekGroup .tag{white-space:normal;font-size:12px;line-height:1.25}
}

/* Gastos libres: frasco; Ahorros: anillo de avance */
.freeHero{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.freeHero>*:not(.aireJar){flex:1 1 220px}
.freeHero .freeProgress{background:var(--sky-soft)}.freeHero .freeProgress i{background:var(--sky)}
.goalCard.savingGoal{position:relative;border-radius:var(--r-card);border:0;background:#fff;box-shadow:var(--shadow-card)}
.goalCard .aireRing{position:absolute;right:24px;top:64px}
.goalCard .goalProgress{background:var(--lilac-soft)}.goalCard .goalProgress i{background:var(--lilac)}
.goalCard .goalStatus{background:var(--lilac-soft);color:var(--lilac-ink);border-radius:999px}
.goalCard .goalIcon{background:var(--lilac-soft)!important;color:var(--lilac-ink)!important;border-radius:16px}
.freeSummary{display:grid!important;grid-template-columns:minmax(0,2.2fr) minmax(0,1fr) minmax(0,1fr)!important;gap:22px}
@media(max-width:900px){.freeSummary{grid-template-columns:1fr}}

/* ===== Calendario: casillas suaves y pagos como píldoras de color ===== */
.calendarPage{background:#fff;border:0;border-radius:var(--r-hero);padding:28px;box-shadow:var(--shadow-card)}
.calendarWide{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.calendarWide .weekday{text-align:center;font-size:12.5px;font-weight:700;color:var(--muted);padding:4px 0}
.calday{border:0;border-radius:22px;background:var(--bg);min-height:96px;padding:10px;text-align:left;display:flex;flex-direction:column;gap:5px;align-items:stretch;color:var(--muted);font-size:13px;font-weight:700;box-shadow:none}
.calday.blank{background:transparent;pointer-events:none}
.calday:hover:not(.blank){background:var(--soft)}
.calday.today,.calday[class*=today]{background:var(--ink);color:#fff}
.calentry{display:block;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:700;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--soft);color:var(--ink)}
.calentry.paid{background:var(--mint-soft);color:var(--mint-ink)}
.calentry.overdue{background:var(--coral-soft);color:var(--coral-ink)}
.calentry.urgent,.calentry.near{background:var(--sun-soft);color:var(--sun-ink)}
.calentry.extra{background:var(--lilac-soft);color:var(--lilac-ink)}
.calendarTools{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:16px 0}
.calendarTools strong{font-family:var(--display);font-size:20px}
.calendarColorKey i{border-radius:50%}
.calendarColorKey i.paid{background:var(--mint)}.calendarColorKey i.overdue{background:var(--coral)}
.calendarColorKey i.urgent,.calendarColorKey i.near{background:var(--sun)}.calendarColorKey i.extra{background:var(--lilac)}.calendarColorKey i.ahead{background:#B9C4BF}
.aireCalNext{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:14px;padding:18px 22px;border-radius:28px;background:var(--forest);color:#fff}
.aireCalNext span{color:#BFE6DB;font-size:13px}.aireCalNext b{font-family:var(--display);font-size:22px;letter-spacing:-.01em}
.aireCalNext .amount{margin-left:auto;font-family:var(--display);font-weight:700;font-size:22px}
@media(max-width:700px){.calday{min-height:64px;padding:8px}.calentry{display:none}}
.calendarTools>button:first-child,.calendarTools>button:nth-child(3){width:40px;height:40px;min-height:40px;border-radius:50%;background:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:18px}
.calendarBodySurface,.gridSlide{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important}
.fragmentCalendarBanner{border:0;border-radius:var(--r-card);background:var(--sky-soft);color:var(--sky-ink)}
.calendarWide .calday:not(.blank){background:var(--bg)!important;border:0!important}
.calendarWide .calday:not(.blank):hover{background:var(--soft)!important}
.calendarWide .calday.today{background:var(--ink)!important;color:#fff!important}
.calendarWide .calday.today b{background:#ffffff26!important;color:#fff!important}
.calendarWide .calday.selected:not(.today){outline:3px solid var(--mint);outline-offset:-3px}
.calendarWide .calday .calentry{box-shadow:none}

/* ===== Compartir: acuerdos como tarjetas con avatares ===== */
.sharingIntro{color:var(--muted);max-width:760px;line-height:1.55}
.sharingViewTabs{display:flex;gap:10px;margin:18px 0}
.sharingViewTabs .pill{min-height:46px;padding-inline:26px;font-size:15px;font-weight:700}
.sharingRow{background:var(--bg);border:0!important;border-radius:28px;padding:22px 26px!important;margin-bottom:14px;box-shadow:none}
.sharingRowTop b{font-family:var(--display);font-size:22px;letter-spacing:-.01em}
.sharingRowTop small{display:block;color:var(--muted);margin-top:4px}
.sharingRow .tag{border-radius:999px;padding:6px 14px;font-weight:700;background:var(--mint-soft);color:var(--mint-ink);border:0}
.sharingRow .tag.warn{background:var(--sun-soft);color:var(--sun-ink)}
.aireAvatars{display:flex;align-items:center;gap:12px;margin:14px 0}
.aireStack{display:flex}
.aireAvatar{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-style:normal;font-weight:700;border:4px solid var(--bg);margin-left:-12px}
.aireAvatar:first-child{margin-left:0}
.aireAvatar.mint{background:var(--mint-soft);color:var(--mint-ink)}.aireAvatar.coral{background:var(--coral-soft);color:var(--coral-ink)}.aireAvatar.lilac{background:var(--lilac-soft);color:var(--lilac-ink)}.aireAvatar.sky{background:var(--sky-soft);color:var(--sky-ink)}
.sharingRow .actions{display:flex;flex-wrap:wrap;gap:10px}
.sharingRow .actions button:not(.primary){border:2px solid var(--ink);background:transparent;color:var(--ink)}
.sharingAvailable .definition{background:var(--bg);border:0;border-radius:20px;padding:14px 20px;margin-bottom:8px}
.sharedEconomyGrid>*{background:var(--bg);border:0;border-radius:28px;padding:22px}
.shareNudge,.startupReminder{background:var(--sun-soft);border:0;border-radius:28px;color:var(--ink)}
.sharePartState.isPaid{background:var(--mint-soft);color:var(--mint-ink);border-radius:999px}
.sharePartState.isPending{background:var(--sun-soft);color:var(--sun-ink);border-radius:999px}
.sharingPageActions{margin:6px 0 4px}

/* ===== Mi cuenta: tarjetas en dos columnas ===== */
@media(min-width:1000px){
  #screen:has(.accountcard){display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:22px;align-items:start}
  #screen:has(.accountcard)>.heading{grid-column:1/-1}
  #screen:has(.accountcard)>.accountcard:first-of-type{grid-row:2/span 5}
}
.accountcard{max-width:none!important;margin:0!important}
.accountcard h2{font-size:21px}
.accountcard>form+form{margin-top:22px;padding-top:22px;border-top:1px solid var(--line)}
#recoverySection{background:var(--lilac-soft)}
#recoverySection .definition{background:#fff}
.accountDanger{background:var(--coral-soft)}
.accountDanger h2{color:var(--coral-ink)}
.accountDanger .danger{border:2px solid var(--coral-ink);background:transparent;color:var(--coral-ink)}
.accountcard .definition{background:var(--bg);border:0;border-radius:20px;padding:14px 18px}
/* Presupuestos e informes */
.primaryIncomeCard,.extraIncomeCard{background:var(--bg)!important;border:0!important;border-radius:28px!important;padding:22px!important}

/* ===== Recordatorios: lista con fichas de días ===== */
.panel>.definition:has(.aireDaysChip){display:flex;align-items:center;gap:16px;background:var(--bg);border:0;border-radius:22px;padding:12px 18px;margin-bottom:10px}
.panel>.definition:has(.aireDaysChip)>div{flex:1}
.panel>.definition:has(.aireDaysChip) b{font-family:var(--display);font-size:17px}
.aireDaysChip{flex:none;width:46px;height:46px;border-radius:16px;background:var(--sun-soft);color:var(--sun-ink);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
.reminderDays label,.reminderDays .remindButton{border:0;background:var(--bg);border-radius:999px}
.reminderDays label:has(input:checked){background:var(--mint-soft);color:var(--mint-ink)}

/* ===== Color principal: amarillo de alto contraste ===== */
:root{--cta:#FFC93C;--cta-hover:#FFB800}
button.primary,.button,dialog .formactions .primary,.formactions>button.primary{background:var(--cta);border-color:var(--cta);color:var(--ink)}
button.primary:hover,.button:hover,dialog .formactions .primary:hover,.formactions>button.primary:hover{background:var(--cta-hover);border-color:var(--cta-hover);color:var(--ink)}
button.primary:disabled,button.primary[aria-disabled="true"]{background:#F1E3B5;border-color:#F1E3B5;color:#7A6A33}

/* ===== Menú: sin cortes, pie con saludo y cierre de sesión ===== */
.sidebar .navParent{width:100%;box-sizing:border-box;min-width:0}
.sidebar .navParent .navText{flex:1;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar .navParent .navChevron{flex:none;margin-left:auto}
.sidebar nav a,.sidebar .navParent{max-width:100%;box-sizing:border-box}
.brandLabel{text-transform:lowercase;font-size:24px;letter-spacing:-.04em}
.sidebar .brandLogo{width:38px;height:38px}
#sidebarCollapse{width:36px;height:36px;border-radius:50%;background:#fff;border:0;box-shadow:var(--shadow-card);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;font-size:18px;line-height:1}
#sidebarCollapse:hover{background:var(--mint-soft)}
.sidefooter{display:flex;flex-direction:column;gap:4px;align-items:stretch;background:#fff;border-radius:24px;box-shadow:var(--shadow-card);padding:12px;border:0}
.sideProfile{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;border-radius:16px;padding:4px}
.sideProfile .avatar{font-size:0;width:42px;height:42px;border-radius:50%;background:var(--mint-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B5A4B' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 20c0-4 3.6-6 8-6s8 2 8 6'/%3E%3C/svg%3E") center/22px no-repeat}
.sideProfile b{display:none}
.sideProfile small{font-size:15px;font-weight:700;color:var(--ink)}
.sideLogout{background:transparent;border:0;color:var(--muted);font-size:13px;font-weight:700;min-height:32px;padding:0 4px;text-align:left}
.sideLogout:hover{color:var(--coral-ink);background:transparent}
.sidebarCollapsed .sideLogout,.sidebarCollapsed .sideProfile small{display:none}

/* ===== Barra superior: mes con flecha, ayuda y campana con elevación; sin «Salir» ni inicial ===== */
#logout,#accountButton{display:none!important}
#dicoHelpButton,.notificationBell{width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:50%;background:#fff;color:var(--ink);box-shadow:var(--shadow-card);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:17px;line-height:1}
#dicoHelpButton:hover,.notificationBell:hover{background:var(--mint-soft)}
.topright{display:flex;align-items:center;gap:10px}
.calendarTrigger{display:inline-flex;align-items:center;gap:10px;height:46px;padding:0 16px;border:0;border-radius:999px;background:#fff;box-shadow:var(--shadow-card);color:var(--ink);font-weight:700}
.calendarTrigger .selectedMonth{border:0;padding:0;background:transparent;font-size:15px;color:var(--ink)}
.calendarTrigger .calChevron{font-size:14px;color:var(--muted);transform:translateY(-1px)}
.calendarTrigger:hover{background:var(--mint-soft)}

/* ===== Vista general: hero con barra y leyenda, presupuesto + gastos, ahorro junto a libres ===== */
.summary:has(.aireNext){grid-template-columns:repeat(6,minmax(0,1fr))}
.summary>.aireBudget{grid-column:span 6;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;min-height:0}
@media(max-width:700px){.summary>.aireBudget{grid-template-columns:1fr}}
.aireHero{gap:12px}
.aireBar{display:flex;gap:3px;height:16px;border-radius:999px;overflow:hidden;background:#ffffff26}
.aireBar>span{height:100%;border-radius:999px;display:block}
.aireBar .kPaid{background:#7FE0C6}.aireBar .kPending{background:#F2B84B}.aireBar .kFree{background:#ffffff40}
.aireLegend{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:14px;font-weight:700}
.aireLegend span{display:inline-flex;align-items:center;gap:8px}
.aireLegend i{width:10px;height:10px;border-radius:50%;display:inline-block}
.aireLegend .kPaid{color:#7FE0C6}.aireLegend .kPaid i{background:#7FE0C6}
.aireLegend .kPending{color:#F2B84B}.aireLegend .kPending i{background:#F2B84B}
.aireLegend .kFree{color:#D9E8E3}.aireLegend .kFree i{background:#ffffff66}
.aireBudgetCol .value{font-size:clamp(26px,2.4vw,34px)}
.aireSaveBox{display:flex;flex-direction:column;gap:2px;padding:14px 20px;border-radius:24px;background:var(--lilac-soft);color:var(--lilac-ink);min-width:150px}
.aireSaveBox b{font-family:var(--display);font-size:24px;color:var(--ink)}
.aireSaveBox span,.aireSaveBox small{font-size:13px;font-weight:700}

/* ===== Primer mes: tres pasos que son botones ===== */
.firstMonthSteps{display:flex;flex-wrap:wrap;gap:12px;grid-template-columns:none;margin:8px 0 0;padding:0;list-style:none}
.firstMonthStep{display:inline-flex;align-items:center;gap:10px;min-height:50px;padding:0 22px 0 16px;border:0;border-radius:999px;background:#fff;color:var(--ink);box-shadow:0 2px 6px #17231F1F,0 10px 22px #17231F14;font-size:15px;font-weight:700;transition:transform .12s ease,box-shadow .12s ease}
.firstMonthStep:hover{transform:translateY(-2px);box-shadow:0 4px 10px #17231F26,0 14px 28px #17231F1A}
.firstMonthStep:active{transform:translateY(0)}
.firstMonthStep .firstMonthTick{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:15px;background:var(--mint);color:#fff}
.firstMonthStep .firstMonthTick.pending{background:#E3E6E3;color:#9AA39F}
.firstMonthStep.isDone{background:var(--mint-soft);color:var(--mint-ink)}
.firstMonth .firstMonthHead{display:flex;align-items:center;justify-content:space-between;gap:12px}
.summary:has(.aireNext)>.aireBudget{grid-column:1/-1!important}
.aireLegend span{background:transparent!important;padding:0!important;border:0!important;box-shadow:none!important}

/* ===== Pagos del mes unificado: fichas del mismo tamaño agrupadas por semana ===== */
.overviewPaymentsPanel .tablewrap{display:none!important}
.overviewPaymentsPanel.aireTableMode .tablewrap{display:block!important}
.aireWeekGroup{margin-top:18px}
.aireWeekGroup h3{margin:0 0 10px;font-size:14px;letter-spacing:.02em;color:var(--muted)}
.aireChipGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.aireChip{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:6px;min-height:104px;padding:16px 18px;text-align:left;border:0;border-radius:24px;background:var(--bg);color:var(--ink);box-shadow:none;transition:transform .12s ease,box-shadow .12s ease}
.aireChip:hover{transform:translateY(-2px);box-shadow:var(--shadow-card);background:#fff}
.aireChip b{font-family:var(--display);font-size:16px;letter-spacing:-.01em;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.aireChipAmount{font-family:var(--display);font-weight:700;font-size:20px}
.aireChip small{font-size:12.5px;color:var(--muted)}
.aireChip.paid{background:var(--mint-soft)}.aireChip.paid small{color:var(--mint-ink)}
.aireChip.soon{background:var(--sun-soft)}.aireChip.soon small{color:var(--sun-ink);font-weight:700}
.aireChip.late{background:var(--coral-soft)}.aireChip.late small{color:var(--coral-ink);font-weight:700}
.aireDetail .definition{background:var(--bg);border:0;border-radius:18px;padding:12px 16px;margin-bottom:8px;display:flex;justify-content:space-between}
a.freeQuick{flex-wrap:wrap}
a.freeQuick>div{flex:1 1 220px;min-width:0}
a.freeQuick>.aireJar{flex:none}
.sidebar nav a.active,.sidebar nav a.active:hover,.sidebar nav a.active:focus-visible,.sidebar .navParent.active,.sidebar .navParent.active:hover{background:var(--ink)!important;color:#fff!important}

/* ===== Acceso y guías: puntos circulares en todas las instancias ===== */
.authStoryDot,.authStoryDot.active,.dicoTourDots button,.dicoTourDots button.active,.tipDots button,.tipDots i,.tipDots span{width:10px!important;min-width:10px!important;height:10px!important;min-height:0!important;padding:0!important;border-radius:50%!important}
.authStoryDots,.dicoTourDots{gap:10px}
.authStoryDot{background:#ffffff59}.authStoryDot.active{background:var(--mint-vivid)}
.dicoTourDots button{background:#D6DAD7}.dicoTourDots button.active{background:var(--mint)}
.authSupport{display:block;text-align:center;margin-top:6px;color:var(--mint-ink);font-weight:700;text-decoration:underline}

/* ===== Contraseña: chulito gris que se vuelve verde al cumplirse ===== */
.passwordRules{background:var(--bg);border:0;border-radius:20px;color:var(--muted)}
.passwordRules li{color:var(--muted)}
.passwordRules li span{color:#C4CAC6;font-weight:800}
.passwordRules li.passed{color:var(--mint-ink)}
.passwordRules li.passed span{color:var(--mint)}
.passwordRules li.failed{color:var(--coral-ink);font-weight:700}
.passwordRules li.failed span{color:#C4CAC6}

/* ===== Carga: círculo que se llena + frase ===== */
#aireBusy{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:2000;display:flex;align-items:center;gap:14px;padding:12px 22px 12px 14px;border-radius:999px;background:var(--ink);color:#fff;font-weight:700;font-size:15px;box-shadow:0 18px 40px #17231F40}
#aireBusy[hidden]{display:none}
.aireBusyArc{animation:aireFill 1.5s ease-in-out infinite}
@keyframes aireFill{0%{stroke-dasharray:0 107}80%,100%{stroke-dasharray:107 0}}
@media(prefers-reduced-motion:reduce){.aireBusyArc{animation:none;stroke-dasharray:70 37}}
@media(max-width:700px){#aireBusy{bottom:96px;max-width:calc(100% - 32px)}}
#brandName,.authbrand b{text-transform:lowercase;font-family:var(--display);font-size:28px;letter-spacing:-.04em}
.firstMonthStep .firstMonthTick{position:static!important;flex:none;margin:0}

/* ===== Ronda 3: tamaños más modestos, tarjeta unificada, pagos como filas ===== */
.panel,.metric{padding:20px;border-radius:26px}
.metric.featured{border-radius:30px}
.page{padding-block:22px}.grid{gap:16px}
@media(max-width:700px){.panel,.metric{padding:16px;border-radius:22px}}
h1{font-size:clamp(24px,2.2vw,30px)}
.metric .value{font-size:clamp(20px,1.8vw,26px)}
.metric.featured .value{font-size:clamp(26px,2.3vw,34px)}
button{min-height:40px;padding-inline:16px}
/* Botones de la barra superior: siempre círculos del mismo tamaño */
#dicoHelpButton,.notificationBell{flex:none!important;width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important;aspect-ratio:1;border-radius:50%!important;padding:0!important}
.calendarTrigger{height:40px}
.topright{gap:8px}
/* Disponible previsto + presupuesto y gastos en una sola tarjeta */
.summary,.summary:has(.aireNext){display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:14px;align-items:stretch}
@media(max-width:900px){.summary,.summary:has(.aireNext){grid-template-columns:1fr}}
.aireHero{gap:10px;padding:22px 24px}
.aireHero .caption{font-size:14px}
.aireBar{height:12px}
.aireLegend{font-size:13px}
.aireHero .aireBudget{grid-column:auto!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:6px;padding:14px 0 0;border-top:1px solid #ffffff26;background:transparent!important;box-shadow:none!important;min-height:0}
.aireHero .aireBudgetCol{display:flex;flex-direction:column;gap:2px;min-width:0}
.aireHero .aireBudgetCol span{font-size:13px;color:#BFE6DB}
.aireHero .aireBudgetCol b{font-family:var(--display);font-size:clamp(18px,1.6vw,22px);color:#fff;letter-spacing:-.02em}
.aireHero .aireBudgetCol small,.aireHero .budgetDetails,.aireHero .budgetDetails summary{font-size:12.5px;color:#BFE6DB}
.aireHero .budgetDetails div{display:flex;justify-content:space-between;gap:12px;padding:3px 0}
.aireHero .budgetDetails b{font-size:13px;font-family:inherit;color:#fff}
@media(max-width:560px){.aireHero .aireBudget{grid-template-columns:1fr}}
/* Gastos libres y ahorro: dos tarjetas apiladas donde estaba «Tu próximo gasto» */
.aireMinis{display:flex;flex-direction:column;gap:12px}
.aireMini{display:flex;align-items:center;gap:14px;flex:1;padding:16px 18px;border-radius:24px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow-card);background:var(--sky-soft);transition:transform .12s ease}
.aireMini:hover{transform:translateY(-2px)}
.aireMini.save{background:var(--lilac-soft)}
.aireMini>div{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.aireMini span{font-size:13px;font-weight:700;color:var(--sky-ink)}
.aireMini.save span{color:var(--lilac-ink)}
.aireMini b{font-family:var(--display);font-size:clamp(20px,1.7vw,24px);letter-spacing:-.02em}
.aireMini small{font-size:12.5px;color:var(--muted)}
.aireMini .freeProgress{height:6px;border-radius:999px;background:#ffffffA0;overflow:hidden}
.aireMini .freeProgress i{display:block;height:100%;background:var(--sky);border-radius:999px}
.aireMiniIcon{font-style:normal;font-size:30px;line-height:1;color:var(--lilac)}
.aireMini svg{flex:none}
/* Separación entre Distribución del mes e Ideas que suman */
.rail{display:flex;flex-direction:column;gap:16px}
.rail>*{margin:0}
.workspace{gap:16px}
/* Pagos del mes: filas como el boceto */
.aireWeekGroup{margin-top:14px}
.aireRows{display:flex;flex-direction:column;gap:10px}
.aireRow{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:10px 14px 10px 10px;border-radius:24px;background:#fff;box-shadow:var(--shadow-card);cursor:pointer;transition:transform .12s ease}
.aireRow:hover{transform:translateY(-1px)}
.aireRow.paid{background:var(--mint-soft)}.aireRow.soon{background:var(--sun-soft)}.aireRow.late{background:var(--coral-soft)}.aireRow.frag{background:var(--sky-soft)}
.aireTile{width:42px;height:42px;border-radius:14px;background:var(--bg);display:inline-flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:800;font-size:17px;color:var(--ink)}
.aireRow.paid .aireTile,.aireRow.soon .aireTile,.aireRow.late .aireTile,.aireRow.frag .aireTile{background:#fff}
.aireRow.frag .aireTile{color:var(--sky-ink)}
.aireRowMain{display:flex;flex-direction:column;gap:2px;min-width:0}
.aireRowMain b{font-family:var(--display);font-size:16px;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aireRowMain>small{font-size:12.5px;color:var(--muted);font-weight:500}
.aireRow.soon .aireRowMain>small{color:var(--sun-ink);font-weight:700}.aireRow.late .aireRowMain>small{color:var(--coral-ink);font-weight:700}.aireRow.paid .aireRowMain>small{color:var(--mint-ink)}.aireRow.frag .aireRowMain>small{color:var(--sky-ink);font-weight:700}
.aireRowMain .sharedParticipants{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.aireRowMain .sharedParticipant{display:inline-flex;gap:6px;align-items:center;font-size:12px;background:#ffffffB3;border-radius:999px;padding:2px 10px}
.aireRowMain .sharedRoles{font-size:12px;color:var(--muted)}
.aireRowAmount{font-family:var(--display);font-weight:800;font-size:20px;letter-spacing:-.02em;white-space:nowrap}
.aireRowActs{display:flex;gap:8px;align-items:center}
.aireAct{min-height:36px;padding:0 18px;font-size:14px;border-radius:999px;border:2px solid var(--ink);background:transparent;color:var(--ink);font-weight:700;white-space:nowrap}
.aireAct.main{background:var(--ink);border-color:var(--ink);color:#fff}
.aireAct.main:hover{background:#26413A}
.aireAct.use{background:var(--sky);border-color:var(--sky);color:#fff}
.aireAct.ghost:hover{background:#ffffff99}
.aireDone{font-weight:700;font-size:13px;color:var(--mint-ink)}
.aireSel{width:20px;height:20px;accent-color:var(--mint)}
.aireSelGap{width:0}
.aireSelAll{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--muted);margin-top:10px}
.bulkPaymentToolbar:not([hidden]){display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 14px;border-radius:20px;background:var(--mint-soft);margin:10px 0}
@media(max-width:700px){
  .aireRow{grid-template-columns:auto auto minmax(0,1fr);row-gap:8px}
  .aireRowAmount{grid-column:3;justify-self:start}
  .aireRowActs{grid-column:1/-1;justify-content:flex-end}
}
.aireDetailShared{margin-bottom:10px}
/* Menú: configuración y cerrar sesión como los ítems del menú */
.sidefooter{background:transparent;box-shadow:none;padding:0;gap:6px}
.sideProfile,.sideLogout{display:flex;align-items:center;gap:12px;min-height:46px;padding:0 16px;border-radius:999px;background:transparent;color:var(--muted);font-size:15px;font-weight:500;text-decoration:none;text-align:left}
.sideProfile:hover,.sideLogout:hover{background:#fff;color:var(--ink)}
.sideProfile .avatar{width:22px;height:22px;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B6862' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M19.4 15a1.7 1.7 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1.1-1.5 1.7 1.7 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.8 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.5-1.1 1.7 1.7 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.8.3H9a1.7 1.7 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.8V9a1.7 1.7 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1z'/%3E%3C/svg%3E") center/20px no-repeat}
.sideProfile small{font-size:15px;font-weight:500;color:inherit}
.sideLogout::before{content:"";width:22px;height:22px;flex:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B6862' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'/%3E%3Cpath d='M16 17l5-5-5-5'/%3E%3Cpath d='M21 12H9'/%3E%3C/svg%3E") center/20px no-repeat}
.sideLogout:hover{color:var(--coral-ink)}
.sidebarCollapsed .sideLogout,.sidebarCollapsed .sideProfile small{display:none}
#currentName{display:none!important}
.overviewPaymentsPanel{padding:16px 18px}
.overviewPaymentsPanel .overviewManualLegend{font-size:11.5px;margin:4px 0;color:var(--muted)}
.overviewPaymentsPanel .panelhead{margin-bottom:6px}
.overviewPaymentsPanel .overviewStatusTabs{gap:8px}
.overviewPaymentsPanel .overviewStatusTabs button,.overviewPaymentsPanel .overviewStatusTabs select{min-height:36px;font-size:13px}
.overviewPaymentsPanel .overviewFilterToolbar{margin:6px 0}
.overviewPaymentsPanel .overviewFilterToolbar input{min-height:38px}
#quickRegister{min-height:48px;padding:0 20px 0 10px;font-size:14px}
#quickRegister span{width:28px;height:28px;font-size:20px;background:var(--cta)!important;color:var(--ink)!important}

/* Resumen que se pliega solo a los 4 s y se puede desplegar */
.summary,.summary:has(.aireNext){display:block!important}
.aireFullWrap{display:grid;grid-template-rows:1fr;opacity:1;transition:grid-template-rows .6s cubic-bezier(.4,0,.2,1),opacity .45s ease}
.aireFullInner{overflow:hidden;min-height:0;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:14px}
@media(max-width:900px){.aireFullInner{grid-template-columns:1fr}}
.aireHero{position:relative}
.aireToggle{min-height:0;width:32px;height:32px;padding:0;border:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#ffffff26;color:#fff;flex:none}
.aireToggleUp{position:absolute;top:14px;right:14px;z-index:2}
.aireToggle:hover{background:#ffffff40}
.aireCompact{display:grid;grid-template-columns:auto auto minmax(150px,1.4fr) minmax(170px,1fr) auto;align-items:center;gap:20px;max-height:0;opacity:0;overflow:hidden;padding:0 22px;margin:0;cursor:pointer;transition:max-height .6s cubic-bezier(.4,0,.2,1),opacity .5s ease .12s,padding .6s cubic-bezier(.4,0,.2,1)}
.aireCompact .aireToggle{background:var(--bg);color:var(--ink)}
.aireCompact .aireToggle:hover{background:var(--mint-soft)}
.aireCompactCol{display:flex;flex-direction:column;gap:1px}
.aireCompactCol span,.aireCompactSide span,.aireCompactBar small{font-size:12px;color:var(--muted);font-weight:700}
.aireCompactCol b{font-family:var(--display);font-size:20px;letter-spacing:-.02em}
.aireCompactBar{display:flex;flex-direction:column;gap:6px}
.aireCompactBar .aireBar{height:10px;background:var(--soft)}
.aireCompactBar .aireBar .kPaid{background:var(--mint)}.aireCompactBar .aireBar .kPending{background:var(--sun)}.aireCompactBar .aireBar .kFree{background:#D6DAD7}
.aireCompactBar small b{color:var(--ink)}
.aireCompactSide{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.aireCompactSide>div{display:flex;flex-direction:column;gap:2px}
.aireCompactSide b{font-family:var(--display);font-size:16px}
.aireTiny{display:block;height:5px;border-radius:999px;background:var(--soft);overflow:hidden}
.aireTiny u{display:block;height:100%;border-radius:999px;background:var(--sky)}
.aireTiny.save u{background:var(--lilac)}
.aireCollapsed .aireFullWrap{grid-template-rows:0fr;opacity:0}
.aireCollapsed .aireCompact{max-height:140px;opacity:1;padding:16px 22px}
.aireNoAnim,.aireNoAnim *{transition:none!important}
@media(max-width:700px){.aireCompact{grid-template-columns:1fr 1fr;gap:12px}.aireCompactBar,.aireCompactSide{grid-column:1/-1}.aireCompact .aireToggle{position:absolute;top:12px;right:12px}.aireCompact{position:relative}}

.overviewPaymentsPanel .overviewManualLegend{display:none}
.aireSortBar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:10px 0 2px;font-size:13px;font-weight:700;color:var(--muted)}
.aireSortBar .sortHeader{min-height:30px;padding:0 12px;border:0;border-radius:999px;background:var(--bg);font-size:13px;color:var(--ink)}
.aireSortBar .sortHeader:hover{background:var(--mint-soft)}
.aireInfo{margin-left:auto;cursor:help}
.aireSel:disabled{opacity:.4}

/* Calendario sin barra lateral de desplazamiento, hoy suave, cierres siempre circulares */
.calendarTrigger .calChevron{display:none}
.calendarCarousel{scrollbar-width:none;-ms-overflow-style:none}
.calendarCarousel::-webkit-scrollbar{display:none;width:0;height:0}
dialog.calendarDialog{overflow-x:hidden}
.calday.today,.calday[class*=today],.calendarWide .calday.today{background:var(--mint-soft)!important;color:var(--ink)!important;box-shadow:inset 0 0 0 2px var(--mint-vivid)}
.calendarWide .calday.today b{background:var(--mint)!important;color:#fff!important}
#closeModal,.dicoTourClose,[data-date-close],.modalClose{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;padding:0!important;border-radius:50%!important;aspect-ratio:1;flex:none;display:inline-flex;align-items:center;justify-content:center;line-height:1;background:transparent;border:0}
#closeModal:hover,.dicoTourClose:hover,[data-date-close]:hover,.modalClose:hover{background:var(--soft)}
#sidebarCollapse,[aria-label="Mes anterior"],[aria-label="Mes siguiente"],[data-date-prev],[data-date-next]{width:36px;height:36px;min-width:36px;aspect-ratio:1;border-radius:50%;flex:none}

/* Menú: mismo ancho en todos los ítems, nada se corta; el padre con hijo activo queda suave */
.sidebar nav a,.sidebar .navParent,.sidebar .subnav a{box-sizing:border-box;width:100%;max-width:100%;min-width:0}
.sidebar .subnav{margin-left:22px;padding-left:8px;width:calc(100% - 22px);box-sizing:border-box}
.sidebar .subnav a{padding-inline:12px;gap:8px;font-size:13.5px;white-space:nowrap;overflow:hidden}
.sidebar .subnav a svg{flex:none;width:16px;height:16px}
.sidebar .navParent.active:has(+ .subnav a.active),.sidebar .navParent.active:has(~ .subnav a.active){background:transparent!important;color:var(--ink)!important;font-weight:700}

/* Registrar deudas: organizar, no vigilar. Colores escalonados, sin estado de vencimiento ni abonos */
@media(min-width:701px){
  .debtWeekGroup thead tr,.debtWeekGroup tbody tr{grid-template-columns:minmax(120px,1fr) 100px 120px 64px 230px!important}
  .debtWeekGroup thead th:nth-child(4),.debtWeekGroup tbody td:nth-child(4){display:none!important}
}
.debtWeekGroup [data-partial-payment]{display:none!important}
.debtWeekGroup tbody tr,.debtWeekGroup tbody tr:has(.tag.red){background:var(--tone,#fff)!important}
.debtWeekGroup tbody tr:nth-child(4n+1){--tone:var(--mint-soft)}
.debtWeekGroup tbody tr:nth-child(4n+2){--tone:var(--sky-soft)}
.debtWeekGroup tbody tr:nth-child(4n+3){--tone:var(--lilac-soft)}
.debtWeekGroup tbody tr:nth-child(4n+4){--tone:var(--sun-soft)}
.debtWeekGroup .tile{background:#fff!important}

/* ===== Proyectados y Ahorros como el boceto ===== */
.aireHidden{display:none!important}
.aireGoalIntro{display:flex;flex-direction:column;gap:14px}
.aireGoalTitle{margin:0}
.aireGoalBar{display:flex;align-items:center;justify-content:space-between;gap:12px}
.aireNewGoal{background:var(--lilac)!important;border-color:var(--lilac)!important;color:#fff!important;min-height:42px;padding:0 22px}
.aireNewGoal:hover{background:#6657D6!important}
.agTag{font-size:11.5px;letter-spacing:.12em;font-weight:700;color:var(--lilac-ink)}
.aireGoalHero{display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:22px 26px;border-radius:26px;background:#E3EDE5;position:relative;overflow:hidden}
.aireGoalHero h2{margin:4px 0 6px;font-size:clamp(20px,2vw,26px);line-height:1.15}
.aireGoalHero p{margin:0 0 14px;color:var(--muted);max-width:520px;font-size:14px}
.aireGoalHero .goalHeroAmount{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}
.aireGoalHero .goalHeroAmount strong{font-family:var(--display);font-size:28px}
.aireGoalHero .goalHeroAmount small,.aireGoalHero .goalHeroAmount span{font-size:12.5px;color:var(--muted)}
.goalSearch{max-width:420px;margin:14px 0}
.aireGoalGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}
.aireGoalCard{border-radius:26px;background:#fff;box-shadow:var(--shadow-card);padding:18px 22px;cursor:pointer;transition:transform .12s ease}
.aireGoalCard:hover{transform:translateY(-2px)}
.aireGoalCard.proj{display:flex;flex-direction:column;gap:10px}
.aireGoalCard.proj:first-child{background:var(--lilac-soft)}
.agTop{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.agTop h3{margin:0;font-size:20px}
.agWhen{font-size:12.5px;font-weight:700;color:var(--lilac-ink);white-space:nowrap}
.agBar{height:12px;border-radius:999px;background:var(--soft);overflow:hidden}
.aireGoalCard:first-child .agBar{background:#fff}
.agBar i{display:block;height:100%;border-radius:999px;background:var(--lilac)}
.agNums{display:flex;justify-content:space-between;font-size:13px;color:var(--muted)}
.agActs{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}
.aireSavingLayout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:14px;margin-bottom:14px}
@media(max-width:900px){.aireSavingLayout{grid-template-columns:1fr}}
.aireGoalCard.feat{display:flex;align-items:center;gap:22px;background:var(--lilac-soft);padding:24px 26px}
.aireGoalCard.feat .agBody{display:flex;flex-direction:column;gap:6px;min-width:0}
.aireGoalCard.feat h3{margin:0;font-size:clamp(22px,2.2vw,28px)}
.aireGoalCard.feat p{margin:0;font-size:14px}
.aireGoalCard.feat small{color:var(--lilac-ink);font-weight:700;font-size:13px}
.aireSavingSide{display:flex;flex-direction:column;gap:12px}
.aireGoalCard.small{display:flex;align-items:center;gap:14px;padding:14px 18px;flex:1}
.aireGoalCard.small h3{margin:0;font-size:17px}
.aireGoalCard.small p{margin:2px 0 0;font-size:13px;color:var(--muted)}
.agIcon{width:56px;height:56px;border-radius:50%;background:var(--lilac-soft);color:var(--lilac-ink);display:inline-flex;align-items:center;justify-content:center;flex:none}
.agIcon.big{width:110px;height:110px;background:#fff}
.agIcon svg{width:50%;height:50%}
.aireGoalCard .aireRing{position:static;flex:none}
.aireFeed{margin-top:14px}
.aireFeed h2{margin:0 0 6px;font-size:18px}
.aireFeedRow{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.aireFeedRow:last-child{border-bottom:0}
.aireFeedRow b.in{color:var(--mint-ink)}.aireFeedRow b.out{color:var(--coral-ink)}
.aireGoalPop .goalCard{box-shadow:none;background:transparent;padding:0}
.sidebar .subnav{margin-left:14px;padding-left:6px;width:calc(100% - 14px)}
.sidebar .subnav a{padding-inline:10px;gap:6px;font-size:13px}
.aireSavingSide:empty{display:none}.aireSavingLayout:has(.aireSavingSide:empty){grid-template-columns:1fr}

/* Diálogos: título con cierre y botones de acción siempre a la vista */
dialog{--padY:32px;--padX:36px;padding:var(--padY) var(--padX)}
dialog .dialoghead{position:sticky;top:calc(var(--padY)*-1);z-index:4;background:#fff;margin:calc(var(--padY)*-1) calc(var(--padX)*-1) 8px;padding:20px var(--padX) 12px}
dialog .formactions{position:sticky;bottom:calc(var(--padY)*-1);z-index:3;background:#fff;margin-top:14px;padding:14px 0 var(--padY);margin-bottom:calc(var(--padY)*-1);box-shadow:0 -12px 14px -6px #fff}
@media(max-width:700px){dialog{--padY:22px;--padX:20px}}
.aireFormError{margin:0 0 8px;color:var(--coral-ink);font-weight:700;font-size:14px}
.aireFormError:empty{display:none}
.aireRateBlock{border:0;padding:0;margin:4px 0 0}
.aireRateBlock legend{font-weight:700;margin-bottom:6px}

/* ===== Tarjetas y créditos ===== */
.aireHelp{width:28px;height:28px;min-height:28px;padding:0;border-radius:50%;border:0;background:#fff;box-shadow:var(--shadow-card);font-size:15px;font-weight:800;color:var(--ink);vertical-align:middle;margin-left:6px;display:inline-flex;align-items:center;justify-content:center}
.aireHelp:hover{background:var(--mint-soft)}
.aireTabs{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 14px}
.aireTab{min-height:38px;padding:0 16px;border:0;border-radius:999px;background:#fff;box-shadow:var(--shadow-card);color:var(--ink);font-size:14px;display:inline-flex;gap:8px;align-items:center}
.aireTab span{background:var(--soft);border-radius:999px;padding:1px 8px;font-size:12px}
.aireTab.active{background:var(--ink);color:#fff}.aireTab.active span{background:#ffffff26;color:#fff}
.aireDebtSection{margin-bottom:18px}
.aireDebtSection h2{font-size:18px;margin:0 0 10px}
.aireDebtGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.aireDebtCard{border-radius:26px;padding:20px 22px;background:#fff;box-shadow:var(--shadow-card);cursor:pointer;display:flex;flex-direction:column;gap:8px;transition:transform .12s ease}
.aireDebtCard:hover{transform:translateY(-2px)}
.aireDebtCard h3{margin:0;font-size:20px}
.aireDebtCard p{margin:0;font-size:13px;color:var(--muted)}
.adTop{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap}
.adTag{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--muted)}
.adRate{font-size:12px;font-weight:700;background:var(--sky-soft);color:var(--sky-ink);padding:3px 10px;border-radius:999px}
.adRate.due{background:var(--sun-soft);color:var(--sun-ink)}
.aireDebtCard.bank{background:linear-gradient(135deg,#17231F,#1F3B34);color:#fff;position:relative;overflow:hidden}
.aireDebtCard.bank:after{content:"";position:absolute;right:-50px;top:-60px;width:190px;height:190px;border-radius:50%;background:#ffffff14;pointer-events:none}
.aireDebtCard.bank .adTag,.aireDebtCard.bank p,.aireDebtCard.bank small{color:#BFD9D1}
.aireDebtCard.bank .adRate{background:#ffffff24;color:#fff}.aireDebtCard.bank .adRate.due{background:var(--sun);color:var(--ink)}
.adFigures{display:flex;gap:22px;flex-wrap:wrap}
.adFigures div{display:flex;flex-direction:column}
.adFigures b{font-family:var(--display);font-size:22px;letter-spacing:-.02em}
.adUse{height:8px;border-radius:999px;background:#ffffff26;overflow:hidden}
.adUse i{display:block;height:100%;border-radius:999px;background:var(--mint-vivid)}
.adSegs{display:flex;gap:5px}
.adSegs i{flex:1;height:14px;border-radius:999px;background:var(--soft)}
.adSegs i.on{background:var(--mint)}
.adBar{height:12px;border-radius:999px;background:var(--soft);overflow:hidden}.adBar i{display:block;height:100%;background:var(--mint);border-radius:999px}
.aireDebtCard.plan.loan{background:var(--lilac-soft)}.aireDebtCard.plan.loan .adSegs i{background:#fff}.aireDebtCard.plan.loan .adSegs i.on{background:var(--lilac)}
.aireDebtCard.plan.installment{background:var(--sky-soft)}.aireDebtCard.plan.installment .adSegs i{background:#fff}.aireDebtCard.plan.installment .adSegs i.on{background:var(--sky)}
.adActs,.adPopActs{display:flex;gap:8px;flex-wrap:wrap}
.adPopActs{margin:10px 0}
.aireDebtEmpty{text-align:center;padding:34px 20px}
.aireDebtEmpty .adActs{justify-content:center;margin-top:12px}
.aireAct.danger{color:var(--coral-ink);border-color:var(--coral)}
.aireHelpBody p{margin:0 0 10px;line-height:1.5}
.aireDebtPop .creditCard{box-shadow:none;border:0;padding:0;background:transparent}
.aireChooser{grid-template-columns:1fr!important}

/* ===== Gastos libres como el boceto ===== */
.freeIntro{font-size:14px;color:var(--muted);margin:2px 0 14px}
.aireFreeHero{display:flex;align-items:center;gap:26px;flex-wrap:wrap;padding:22px 28px;border-radius:28px;background:#fff;box-shadow:var(--shadow-card);margin-bottom:14px}
.aireFreeHero .afMain{display:flex;flex-direction:column;gap:6px;flex:1 1 260px;min-width:0}
.aireFreeHero .afMain strong{font-family:var(--display);font-size:clamp(30px,3.2vw,44px);letter-spacing:-.04em;line-height:1}
.aireFreeHero .afMain small{color:var(--muted);font-size:13px}
.aireFreeHero .freeProgress{height:8px;border-radius:999px;background:var(--sky-soft);overflow:hidden;max-width:420px}
.aireFreeHero .freeProgress i{display:block;height:100%;background:var(--sky);border-radius:999px}
.afChips{display:flex;flex-direction:column;gap:8px;align-items:stretch;min-width:150px}
.aireChip.free{display:block;min-height:0;padding:8px 18px;border-radius:999px;background:var(--sky-soft);color:var(--sky-ink);font-size:14px;font-weight:700;text-align:center;box-shadow:none}
.aireAct.free{background:var(--sky);border-color:var(--sky);color:#fff}
.aireFreeConfig{margin-bottom:14px}
.aireFreeConfig>summary{cursor:pointer;font-weight:700;font-family:var(--display);font-size:17px}
.aireFreeConfig .freeColumns{margin-top:12px}
.freeList{display:flex;flex-direction:column;gap:2px}
.freeRow{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:12px 4px;border-bottom:1px solid var(--line)}
.freeRow:last-child{border-bottom:0}
.freeRow>div:first-of-type b{font-family:var(--display);font-size:16px}
.freeRow small{color:var(--muted)}
.freeRow .aireTile{background:var(--sky-soft);color:var(--sky-ink)}
.freeRow>strong{font-family:var(--display);font-size:17px}
.freeRow button{min-height:32px;padding:0 12px;font-size:12.5px;border-radius:999px}
.aireCoin{flex:none}
.aireCompact{min-height:0!important;margin-top:0;border:0}
.aireCollapsed .aireCompact{margin-top:0}


/* =====================================================================
   Ronda 5 · Sistema de criticidad: 4 niveles (crítico, importante, medio, bajo)
   Tipografía: Bricolage Grotesque para títulos, valores y botón crítico; Inter para el resto.
   Negrita solo en títulos, valores y alertas. Sombras y botones según nivel.
   ===================================================================== */
:root{
  --body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --sh-crit:0 2px 4px #17231F26,0 10px 22px #17231F1F;
  --sh-imp:0 1px 3px #17231F26,0 4px 10px #17231F14;
  --sh-mid:0 1px 2px #17231F14;
  --tone-a:#F3F5F2;--tone-b:#E4E8E4;
  --alert-bg:#FDE3DD;--alert-ink:#B23B27;--alert-soft:#FF9E90;
}
body,button,input,select,textarea{font-family:var(--body)}
h1,h2,h3,h4,.value,.brandLabel,#brandName{font-family:var(--display)}
*{font-weight:var(--fw-p)!important}
b,strong,th,legend,summary,button,.pill,.tag,nav a,.navParent,.navlabel,label.field,.eyebrow,.caption,.agTag,.adTag,.aireAct,.statusline,.savestatus,.aireTab,.aireChip,.urgency,.sideProfile,.sideLogout,.aireInfo,.sortHeader,.aireLegend span,.adRate,.agWhen,.aireDone,.calentry,.badge,.status,.aireBadge,.definition span,.field,.formhint b{font-weight:var(--fw-medium)!important}
h1,h2,h3,h4,.value,.aireRowAmount,.aireRowMain b,.adFigures b,.aireMini b,.aireCompactCol b,.aireCompactSide b,.afMain strong,.goalHeroAmount strong,.aireBudgetCol b,.aireFeedRow b,.freeRow>strong,.freeRow>div>b,.money,td.money,.aireTile,.brandLabel,#brandName,.metric .value,.aireHero .aireBudgetCol b,button.primary,#quickRegister,svg text{font-weight:var(--fw-h)!important}
.aireRow.late .aireRowMain>small,.aireRow.soon .aireRowMain>small,.adRate.due,.aireFormError,.negative{font-weight:var(--fw-h)!important}
button.primary,.button,dialog .formactions .primary,#quickRegister,.aireAct.free{font-family:var(--display)}

/* Botones por nivel */
button{border-width:1.5px;box-shadow:none}
button.primary,.button,dialog .formactions .primary,.formactions>button.primary{background:var(--cta)!important;border-color:var(--cta)!important;color:var(--ink)!important;box-shadow:var(--sh-crit)}
button.primary:hover,.button:hover,dialog .formactions .primary:hover,.formactions>button.primary:hover{background:var(--cta-hover)!important;border-color:var(--cta-hover)!important;color:var(--ink)!important;filter:none}
button.primary:disabled{box-shadow:none}
.aireAct.main,.aireAct.use,.aireAct.free,.aireNewGoal{box-shadow:var(--sh-imp)}
.aireAct.main{background:var(--ink)!important;border-color:var(--ink)!important;color:#fff!important}
.aireAct.main:hover{background:#2E4A42!important;border-color:#2E4A42!important;color:#fff!important}
.aireAct.use,.aireAct.free{background:var(--sky)!important;border-color:var(--sky)!important;color:#fff!important}
.aireAct.use:hover,.aireAct.free:hover{background:#2C86D6!important;border-color:#2C86D6!important;color:#fff!important}
.aireNewGoal:hover{background:#6657D6!important;color:#fff!important}
.aireAct.ghost,.aireAct:not(.main):not(.use):not(.free){background:transparent;border:1.5px solid var(--ink);color:var(--ink);box-shadow:none}
.aireAct.ghost:hover,.aireAct:not(.main):not(.use):not(.free):hover{background:#17231F14!important;color:var(--ink)!important;border-color:var(--ink)!important}
.aireAct.danger{color:var(--coral-ink)!important;border-color:var(--coral)!important}
button:not(.primary):not(.aireAct):not(.pill):not(.aireTab):not(.aireToggle):not(.aireChev):not(.aireHelp):not(.quiet):not(.aireText):not(.sortHeader):not(#quickRegister):not(.firstMonthStep):not(.calendarTrigger):not(.dark):not(.active):not([aria-pressed="true"]):hover{background:var(--soft)!important;color:var(--ink)!important;border-color:var(--ink)!important}
.pill.active:hover,.aireTab.active:hover,.overviewStatusTabs button.active:hover{background:var(--ink)!important;color:#fff!important}
.pill:not(.active):hover,.aireTab:not(.active):hover{background:var(--mint-soft)!important;color:var(--ink)!important}
#quickRegister:hover{background:#26413A!important;color:#fff!important}
/* Nivel bajo: solo texto, sin píldora, contorno ni sombra */
.aireText,.sortHeader,.aireSortHead .sortHeader,button.quiet,.freeRow button,.afLinks button{background:transparent!important;border:0!important;box-shadow:none!important;color:var(--ink);padding:0 6px!important;min-height:28px!important;border-radius:6px!important;font-size:13px}
.aireText:hover,.sortHeader:hover,button.quiet:hover,.freeRow button:hover,.afLinks button:hover{background:transparent!important;text-decoration:underline;color:var(--ink)!important}
.freeRow button.danger,.freeRow button[data-free-delete],.freeRow button[data-free-extra-delete]{color:var(--coral-ink)!important}
.afLinks{display:flex;gap:14px;margin-top:6px}
.afLinks button{padding:0!important;color:var(--sky-ink);text-decoration:underline;text-underline-offset:3px}

/* Resumen: «por pagar» en rojo suave; el amarillo queda para acciones críticas */
.aireBar .kPending{background:#FF9E90}
.aireLegend .kPending{color:#FFB3A7}.aireLegend .kPending i{background:#FF9E90}
.aireHero .value.negative,.metric.featured .value.negative{color:#FFB3A7}
.aireCompactBar .aireBar .kPending{background:#F4A99C}
/* Flecha estándar: círculo blanco con elevación breve y la misma flecha */
.aireToggle,.aireChev,#sidebarCollapse,[aria-label="Mes anterior"],[aria-label="Mes siguiente"],[data-date-prev],[data-date-next]{width:34px;height:34px;min-width:34px;min-height:34px;padding:0;border:0;border-radius:50%;background:#fff;color:var(--ink);box-shadow:var(--sh-imp);display:inline-flex;align-items:center;justify-content:center;flex:none;font-size:0}
.aireToggle:hover,.aireChev:hover,#sidebarCollapse:hover,[aria-label="Mes anterior"]:hover,[aria-label="Mes siguiente"]:hover,[data-date-prev]:hover,[data-date-next]:hover{background:var(--mint-soft)!important;color:var(--ink)!important}
#sidebarCollapse::before,[aria-label="Mes anterior"]::before,[aria-label="Mes siguiente"]::before,[data-date-prev]::before,[data-date-next]::before,.zzNone::before{content:"";width:18px;height:18px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;display:block}
#sidebarCollapse::before,[aria-label="Mes anterior"]::before,[data-date-prev]::before{transform:rotate(90deg)}
[aria-label="Mes siguiente"]::before,[data-date-next]::before,.sidebarCollapsed #sidebarCollapse::before{transform:rotate(-90deg)}
.aireCollapseRow{grid-column:1/-1;display:flex;justify-content:center;margin-top:-2px}
.aireCompact .aireToggle{background:#fff}
/* Menú: todos los ítems con el mismo radio y hover; pie sin grupo */
.sidebar nav a,.sidebar .navParent,.sidebar .subnav a,.sideProfile,.sideLogout{border-radius:12px!important}
.sidebar nav a:hover:not(.active),.sidebar .navParent:hover:not(.active),.sidebar .subnav a:hover:not(.active),.sideProfile:hover,.sideLogout:hover{background:#fff!important;color:var(--ink)!important}
.sidefooter{border:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;margin-top:8px}
.sidebarCollapsed .navText,.sidebarCollapsed .navChevron{display:none!important}
.sidebarCollapsed .sideProfile{justify-content:center;padding:0}
/* Pagos del mes: cabecera de orden sobre los conceptos, filas escalonadas, vencido en rojo */
.overviewPeriodRange{display:none!important}
.aireSortHead{display:grid;grid-template-columns:20px 42px minmax(0,1fr) 112px 190px;gap:12px;align-items:center;padding:8px 14px 4px 10px;margin-top:6px;font-size:12.5px;color:var(--muted)}
.aireSortMain{display:flex;gap:6px;flex-wrap:wrap}
.aireSortVal{text-align:right}.aireSortInfo{text-align:right;cursor:help}
.aireSortHead .sortHeader{font-size:12.5px;color:var(--muted)}
.aireSortHead input{width:18px;height:18px;accent-color:var(--mint)}
.aireRow{grid-template-columns:20px 42px minmax(0,1fr) 112px 190px;background:var(--rowtone,#fff)}
.aireRows>.aireRow:nth-child(odd){--rowtone:var(--tone-a)}
.aireRows>.aireRow:nth-child(even){--rowtone:var(--tone-b)}
.aireRow.paid,.aireRow.frag{background:var(--rowtone)}
.aireRow.paid .aireRowMain>small{color:var(--mint-ink)}.aireRow.frag .aireRowMain>small{color:var(--muted)}
.aireRow.soon{background:var(--sun-soft)!important}
.aireRow.late{background:var(--alert-bg)!important}
.aireRow.late .aireRowAmount,.aireRow.late .aireRowMain>small{color:var(--alert-ink)}
.aireRow.soon .aireRowAmount,.aireRow.soon .aireRowMain>small{color:var(--sun-ink)}
.aireRow .aireTile{background:#fff}
.aireRowActs{justify-content:flex-end}
@media(max-width:700px){.aireSortHead{display:flex;flex-wrap:wrap}.aireSortVal,.aireSortInfo{text-align:left}.aireRow{grid-template-columns:20px 42px minmax(0,1fr)}}
/* Registrar deudas: solo dos colores planos, intercalados */
.debtWeekGroup tbody tr:nth-child(odd),.debtWeekGroup tbody tr:nth-child(odd):has(.tag.red){--tone:var(--tone-a)}
.debtWeekGroup tbody tr:nth-child(even),.debtWeekGroup tbody tr:nth-child(even):has(.tag.red){--tone:var(--tone-b)}
/* Calendario: los gastos de cada día, cuadrados de esquinas redondeadas */
.calentry{border-radius:8px!important}
/* Gastos libres */
.aireFreeHero .aireCoin{flex:none}
.aireTile.plus{background:var(--mint-soft)!important;color:var(--mint-ink)}
.aireUp{color:var(--mint-ink)}
.freeRow .aireTile{background:#fff}
/* Ahorros sin meta con accesos directos */
.aireGoalCard.small{flex-wrap:wrap;align-items:flex-start}
.aireGoalCard.small .agBody{flex:1;min-width:0}
.aireGoalCard.small .agBody small{display:block;color:var(--lilac-ink);margin-top:2px;font-size:12.5px}
.aireGoalCard.small .agActs{flex-basis:100%;margin-left:70px}
.aireGoalCard.small .aireAct{min-height:32px;padding:0 14px;font-size:13px}
/* Al abrir una tarjeta: acciones como píldoras con elevación breve */
.aireGoalPop .goalActions button:not(.primary),.aireDebtPop .goalActions button:not(.primary),.aireDebtPop .definition button{border:0!important;border-radius:999px!important;background:#fff!important;box-shadow:var(--sh-imp)!important;color:var(--ink)!important;padding:0 16px!important;min-height:38px!important;text-decoration:none!important}
.aireGoalPop .goalActions button:not(.primary):hover,.aireDebtPop .goalActions button:not(.primary):hover{background:var(--soft)!important}
.aireGoalPop .goalActions button.danger,.aireGoalPop .goalActions .goalDelete{color:var(--coral-ink)!important}
.aireGoalPop .goalActions,.aireDebtPop .goalActions{gap:10px}

/* Marca: «dic» + «o» como anillo lila; lema en el acceso */
.brandLabel,#brandName{font-size:0!important;display:inline-flex;align-items:center;gap:0;text-transform:none;line-height:1}
.brandLabel::before,#brandName::before{content:"dic";font-family:var(--display);font-weight:600;font-size:28px;letter-spacing:-.04em;color:var(--forest)}
.brandLabel::after,#brandName::after{content:"";display:inline-block;width:18px;height:18px;margin-left:2px;margin-top:5px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Ccircle cx='20' cy='20' r='13' fill='none' stroke='%237A6AE6' stroke-width='7' stroke-linecap='round' stroke-dasharray='70 12' transform='rotate(-120 20 20)'/%3E%3C/svg%3E") center/contain no-repeat}
.authbrand{display:grid!important;grid-template-columns:auto 1fr;column-gap:12px;row-gap:0;align-items:center}
.authbrand .authLogo,.authbrand .authMark{grid-row:1/3}
.authbrand::after{content:"DINERO CONTROLADO";grid-column:2;font-size:10.5px;letter-spacing:.2em;font-weight:500!important;color:var(--lilac-ink);margin-top:2px}
.authbrand #brandName{grid-column:2}
.authbrand .authLogo,.authbrand .authMark{width:56px;height:56px}
.authbrand #brandName::before{font-size:46px}
.authbrand #brandName::after{width:28px;height:28px;margin-top:9px;margin-left:3px}
.authbrand::after{margin-top:0;font-size:11px}
.sidebar .brandLabel::before{font-size:30px}.sidebar .brandLabel::after{width:19px;height:19px}
.aireRow .aireRowMain b{color:var(--ink)!important}
.freeRow .aireTile{background:var(--sky-soft)!important}
.aireGoalCard.small .agActs{margin-left:0!important}.aireSavingLayout{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
.aireGoalPop .goalActions button.goalDelete,.aireGoalPop .goalActions button.danger{color:var(--coral-ink)!important}

/* Escalonado sobrio */
.aireFreeTop{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(0,1fr);gap:14px;margin-bottom:14px}
@media(max-width:900px){.aireFreeTop{grid-template-columns:1fr}}
.aireFreeTop .aireFreeHero{margin-bottom:0}
.aireFreeExtraCard{border-radius:28px;background:var(--sky-soft);padding:22px 24px;display:flex;flex-direction:column;gap:10px}
.aireFreeExtraCard h3{margin:0;font-size:18px}
.aireFreeExtraCard p{margin:0;font-size:13.5px;line-height:1.5;color:var(--ink)}
.aireFreeExtraCard small{color:var(--sky-ink)}
.aireFreeExtraCard .aireAct{align-self:flex-start;margin-top:auto}
@keyframes aireGlowPulse{0%,100%{box-shadow:var(--sh-imp),0 0 0 0 #FFC93C80}50%{box-shadow:var(--sh-imp),0 0 0 9px #FFC93C00}}
.aireGlow{animation:aireGlowPulse 1.8s ease-in-out infinite;background:var(--cta)!important;border-color:var(--cta)!important;color:var(--ink)!important}
@media(prefers-reduced-motion:reduce){.aireGlow{animation:none}}
.afMain .aireAct{align-self:flex-start;margin-top:6px}
/* Detalle de proyectados y metas */
.aireGoalPop .goalCard{border:0!important;border-left:0!important;box-shadow:none!important;background:transparent!important;padding:0!important;border-radius:0!important}
.aireGoalPop .goalCard::before,.aireGoalPop .goalCard::after{display:none!important}
.aireGoalPop .goalActions button{font-family:var(--body)!important;font-size:14px!important;font-weight:500!important;min-height:40px!important;padding:0 18px!important;border-radius:999px!important}
.aireGoalPop .goalActions button.primary{background:var(--cta)!important;box-shadow:var(--sh-crit)!important}
.aireGoalPop .goalActions button.aireSettle{background:transparent!important;box-shadow:none!important;text-decoration:underline;padding:0 6px!important;color:var(--sky-ink)!important}
.aireGoalPop .goalFacts{font-size:16px;gap:18px}
.aireGoalPop .goalFacts span{font-size:16px;color:var(--ink)}
.aireGoalPop .goalNumbers strong{font-size:26px}


/* =====================================================================
   Capa de tokens del sistema de diseño (editable desde el panel «Diseño» en pruebas)
   Los valores por defecto reproducen el aspecto actual.
   ===================================================================== */
:root{
  --fs-h1:28px;--fs-h2:20px;--fs-h3:17px;--fs-h4:15px;--fs-h5:14px;--fs-h6:12.5px;--fs-p:15px;--fs-small:12.5px;
  --fw-h:600;--fw-medium:500;--fw-p:400;--lh-h:1.15;--lh-p:1.4;
  --r-field:18px;--r-card:26px;--r-hero:30px;--r-row:24px;--r-btn:999px;--r-chip:999px;--r-dialog:36px;
  --pad-card:20px;--gap:16px;--gap-row:10px;--pad-row-y:10px;--pad-row-x:14px;--pad-page:22px;--btn-h:40px;
  /* Sombras: dos capas por nivel (desplazamiento Y, difuminado, opacidad) */
  --shc-y1:2px;--shc-b1:4px;--shc-a1:.15;--shc-y2:10px;--shc-b2:22px;--shc-a2:.12;
  --shi-y1:1px;--shi-b1:3px;--shi-a1:.15;--shi-y2:4px;--shi-b2:10px;--shi-a2:.08;
  --shm-y1:1px;--shm-b1:2px;--shm-a1:.08;--shm-y2:0px;--shm-b2:0px;--shm-a2:0;
  --shk-y1:1px;--shk-b1:2px;--shk-a1:.04;--shk-y2:10px;--shk-b2:28px;--shk-a2:.05;
  --shd-y1:40px;--shd-b1:100px;--shd-a1:.25;--shd-y2:0px;--shd-b2:0px;--shd-a2:0;
  --sh-crit:0 var(--shc-y1) var(--shc-b1) rgb(23 35 31/var(--shc-a1)),0 var(--shc-y2) var(--shc-b2) rgb(23 35 31/var(--shc-a2));
  --sh-imp:0 var(--shi-y1) var(--shi-b1) rgb(23 35 31/var(--shi-a1)),0 var(--shi-y2) var(--shi-b2) rgb(23 35 31/var(--shi-a2));
  --sh-mid:0 var(--shm-y1) var(--shm-b1) rgb(23 35 31/var(--shm-a1)),0 var(--shm-y2) var(--shm-b2) rgb(23 35 31/var(--shm-a2));
  --shadow-card:0 var(--shk-y1) var(--shk-b1) rgb(23 35 31/var(--shk-a1)),0 var(--shk-y2) var(--shk-b2) rgb(23 35 31/var(--shk-a2));
  --shadow-dialog:0 var(--shd-y1) var(--shd-b1) rgb(23 35 31/var(--shd-a1)),0 var(--shd-y2) var(--shd-b2) rgb(23 35 31/var(--shd-a2));
}
h1{font-size:min(var(--fs-h1),9vw);line-height:var(--lh-h)}
h2{font-size:var(--fs-h2);line-height:var(--lh-h)}
h3{font-size:var(--fs-h3);line-height:var(--lh-h)}
h4{font-size:var(--fs-h4);line-height:var(--lh-h)}
h5{font-size:var(--fs-h5);line-height:var(--lh-h)}
h6{font-size:var(--fs-h6);line-height:var(--lh-h)}
body{font-size:var(--fs-p)}
p{line-height:var(--lh-p)}
small{font-size:var(--fs-small)}
.panel,.metric{border-radius:var(--r-card);padding:var(--pad-card)}
.metric.featured{border-radius:var(--r-hero)}
input,select,textarea,.field input,.field select{border-radius:var(--r-field)}
dialog{border-radius:var(--r-dialog)}
button{border-radius:var(--r-btn);min-height:var(--btn-h)}
.pill,.aireChip,.tag{border-radius:var(--r-chip)}
.aireRow{border-radius:var(--r-row);padding:var(--pad-row-y) var(--pad-row-x) var(--pad-row-y) 10px}
.aireRows{gap:var(--gap-row)}
.grid,.workspace{gap:var(--gap)}
.aireDebtGrid,.aireGoalGrid{gap:var(--gap)}
.page{padding-block:var(--pad-page)}
.aireGoalCard,.aireDebtCard{border-radius:var(--r-card)}



/* ===== Ronda 7 ===== */
/* Resumen en cero o negativo: el fondo no cambia; el valor va en el tono claro del fondo de un pago vencido */
.aireHero .value.negative,.metric.featured .value.negative{color:var(--alert-bg)!important}
/* Que las sombras no se corten con la máscara de plegado */
.aireFullInner{padding:6px 14px 24px;margin:-6px -14px -24px}
.aireCollapsed .aireFullInner{padding-bottom:0;margin-bottom:0}
/* Iconos de las mini tarjetas: mismo tamaño y misma altura */
.aireMini{align-items:flex-start}
.aireMiniIco{width:64px;height:56px;display:flex;align-items:center;justify-content:center;flex:none}
.aireMiniIco svg{width:58px;height:48px}
/* Valores de pagos sobre la misma línea, con su orden justo encima */
.aireRowAmount{justify-self:end;text-align:right}
.aireSortVal{justify-self:end;text-align:right}
.aireSortVal .sortHeader{padding-right:0!important}
/* Flecha estándar de los desplegables */
select{-webkit-appearance:none;appearance:none;background-color:var(--bg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2317231F' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px;padding-right:40px!important}
/* Campanita: sin tarjetas por notificación, hover claro y colores escalonados */
.notificationPanel .notificationRow{border-radius:12px;overflow:hidden}
.notificationPanel .notificationRow:nth-child(odd) .notificationItem{background:var(--tone-a)}
.notificationPanel .notificationRow:nth-child(even) .notificationItem{background:var(--tone-b)}
.notificationPanel .notificationItem,.notificationPanel .notificationItem.unread{border:0!important;border-left:0!important;border-radius:0;box-shadow:none;color:var(--ink);text-align:left}
.notificationPanel .notificationItem:hover{background:#fff!important}
.notificationPanel .notificationItem.unread b::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--coral);margin-right:8px;vertical-align:middle}
.notificationPanel .notificationItem.dueAlert b{color:var(--alert-ink)}
.notificationPanel .notificationRow+.notificationRow{margin-top:4px}

/* Proyectados y ahorros: tarjetas equivalentes, popup sin título repetido y niveles de botón */
.aireGoalPop .goalCard>h2,.aireGoalPop .goalCard>p:first-of-type{display:none}
.aireGoalPop .goalActions button:not(.primary){background:transparent!important;border:1.5px solid var(--ink)!important;box-shadow:none!important;color:var(--ink)!important}
.aireGoalPop .goalActions button:not(.primary):hover{background:#17231F14!important}
.aireGoalPop .goalActions button.aireSecond{background:var(--ink)!important;border-color:var(--ink)!important;color:#fff!important;box-shadow:var(--sh-imp)!important}
.aireGoalPop .goalActions button.aireSecond:hover{background:#2E4A42!important;color:#fff!important}
.aireGoalPop .goalActions button.aireSettle{text-decoration:none!important;padding:0 18px!important}
.aireGoalHero p.oneLine{white-space:nowrap;max-width:none;overflow:hidden;text-overflow:ellipsis}
@media(max-width:700px){.aireGoalHero p.oneLine{white-space:normal}}
.agIcon.sm{width:34px;height:34px;flex:none;background:var(--lilac-soft)}
.agTop{align-items:center}
.agTop h3{flex:1;min-width:0}
.aireSavingGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:var(--gap);margin-bottom:var(--gap)}
.aireGoalCard.saving{display:flex;align-items:center;gap:20px;background:var(--lilac-soft);padding:20px 24px;min-height:176px}
.aireGoalCard.saving .agBody{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.aireGoalCard.saving h3{margin:0;font-size:20px}
.aireGoalCard.saving p{margin:0;font-size:14px}
.aireGoalCard.saving small{color:var(--lilac-ink);font-size:12.5px;min-height:1.2em}
.aireGoalCard.saving .agActs{margin-top:8px}
.aireGoalCard.saving .aireRing{flex:none}
.aireFeedHead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.aireFeedHead select{min-height:36px;font-size:13px;max-width:240px}
.aireFeedRow[hidden]{display:none}

/* Calendario */
.calday b{display:inline-flex!important;align-items:center;justify-content:center;width:28px;height:28px;padding:0!important;border-radius:50%!important;font-size:13px;line-height:1;flex:none}
.calendarWide .calday.today b,.calday.today b{background:var(--mint)!important;color:#fff!important;border-radius:50%!important}
[data-calendar-prev],[data-calendar-next],[data-calendar-today]{font-size:0!important}
[data-calendar-today]{font-size:14px!important}
.calendarTools button[data-calendar-prev],.calendarTools button[data-calendar-next]{width:34px;height:34px;min-width:34px;padding:0;border-radius:50%;font-size:0!important}
.calendarPage:has(.calendarCarousel.showDay) .calendarTools,.calendarDialog:has(.calendarCarousel.showDay) .calendarTools,.calendarPage:has(.calendarCarousel.showDay) .calendarColorKey,.calendarDialog:has(.calendarCarousel.showDay) .calendarColorKey{display:none!important}
.calendarCarousel .backCalendar{display:inline-flex;align-items:center;gap:8px;min-height:38px;margin-bottom:10px;padding:0 16px;background:transparent;border:1.5px solid var(--ink);color:var(--ink);border-radius:999px}
.calendarCarousel .backCalendar:hover{background:#17231F14!important;color:var(--ink)!important}
.dayHeading{margin-bottom:6px}
.aireDayRows{margin-top:8px}
.aireCalNext{cursor:pointer}
.aireCalNext .primary{margin-left:6px}
.aireCalNext .amount{margin-left:auto}

/* Presupuesto: las cuatro tarjetas en una sola, como Mis pagos */
.summary:has(.aireBudgetHero){display:block!important}
.aireBudgetHero{gap:6px}
.aireBudgetHero .aireHeroNote{color:#BFE6DB}
.aireBudgetHero.aireHeroNeg .aireHeroNote{color:#8A4234}
.aireBudgetHero .aireBudget3{grid-template-columns:repeat(3,minmax(0,1fr))!important;margin-top:12px}
@media(max-width:700px){.aireBudgetHero .aireBudget3{grid-template-columns:1fr!important}}

/* Informes: la comparación vive dentro de «Dinero utilizado» */
.reportHero .reportComparison{background:transparent;box-shadow:none;padding:0;margin-top:14px;border-radius:0;color:inherit}
.reportHero .reportComparison .reportCardHeading{margin-bottom:6px}
.reportHero .reportComparison h2{font-size:15px}
.reportHero .reportComparison small{opacity:.8}
.reportHero .reportComparison .reportNote,.reportHero .reportComparison .reportPace span{font-size:12.5px;opacity:.85}
.reportHero .reportComparison .reportCompareRow{margin:6px 0}

/* Compras con cuotas dentro de la tarjeta */
.aireBuy{border:1px solid var(--line);border-radius:14px;padding:8px 12px;margin:6px 0;background:#fff}
.aireBuy>summary{display:flex;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;align-items:center}
.aireBuy>summary::-webkit-details-marker{display:none}
.abName,.abAmt{display:flex;flex-direction:column;gap:2px;min-width:0}.abAmt{text-align:right;font-family:var(--display);font-weight:var(--fw-h)}
.abAmt small,.abName small{font-family:var(--body);font-weight:400;color:var(--muted)}
.abSched{margin-top:8px}
.abRow{display:grid;grid-template-columns:70px 1fr auto 90px;gap:8px;padding:6px 4px;border-top:1px solid var(--line);font-size:13px;align-items:center}
.abRow.ok{color:var(--mint-ink)}.abRow.next{background:var(--sun-soft);border-radius:8px}
.aireDebtPop h3{margin:14px 0 4px;font-size:16px}
.aireDebtPop .popFig{margin:8px 0}

.aireCurrencyRow{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap}
.aireCurrencyRow .field{min-width:260px}
.reportHero .reportComparison h2,.reportHero .reportComparison small,.reportHero .reportComparison .reportCardHeading *,.reportHero .reportComparison .reportCompareRow span,.reportHero .reportComparison .reportCompareRow b,.reportHero .reportComparison .reportPace strong,.reportHero .reportComparison .reportPace span,.reportHero .reportComparison .reportNote{color:#fff!important}
.reportHero .reportComparison .reportCompareRow{display:grid;grid-template-columns:130px 1fr auto;gap:10px;align-items:center}
.calendarCarousel .backCalendar{background:transparent!important;color:var(--ink)!important;border:1.5px solid var(--ink)!important;box-shadow:none!important}
.calendarCarousel .backCalendar:hover{background:#17231F14!important}
.dayHeading h2{text-transform:none!important}.dayHeading h2::first-letter{text-transform:uppercase}
.calendarPage:has(.calendarCarousel.showDay) .aireCalNext,.calendarPage:has(.calendarCarousel.showDay) .calendarFilters,.calendarPage:has(.calendarCarousel.showDay) .typeCategoryToolbar{display:none!important}
.calendarPage:has(.calendarCarousel.showDay) .calendarFilterPanel,.calendarDialog:has(.calendarCarousel.showDay) .calendarFilterPanel,.calendarDialog:has(.calendarCarousel.showDay) .aireCalNext{display:none!important}
.notificationPanel{border-radius:20px;overflow:hidden}
.notificationPanel .notificationRow{border-radius:0}


/* ===== Ronda 8 ===== */
:root{--delete:#B23B27}
.aireHero .value.negative,.metric.featured .value.negative{color:var(--alert-ink)!important}
/* Flecha de todos los desplegables, aunque otro estilo pise el fondo */
select:not([multiple]):not([size]){-webkit-appearance:none!important;appearance:none!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2317231F' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 14px center!important;background-size:16px!important;padding-right:40px!important}
/* Eliminar: siempre el mismo rojo */
.danger,button.danger,.deleteRowAction,.goalDelete,[data-free-delete],[data-free-extra-delete],[data-goal-delete],[data-credit-delete],[data-credit-cancel],[data-aire-delete-card],[data-aire-purchase-delete],[data-archive-entry],.freeRow button.danger,.aireAct.danger,.aireGoalPop .goalActions button.goalDelete,.aireGoalPop .goalActions button.danger{color:var(--delete)!important;border-color:var(--delete)!important}
.freeRow button.danger,.freeRow [data-free-delete],.freeRow [data-free-extra-delete],.deleteRowAction{border-color:transparent!important}
/* Sin sombras en filas de pagos ni en Registrar deudas */
.aireRow,.aireRow:hover{box-shadow:none!important}
.debtWeekGroup tbody tr,.debtWeekGroup tbody tr:hover{box-shadow:none!important}
/* Fecha de aviso transparente salvo trimestral, semestral o anual */
.aireDim{opacity:.35;pointer-events:none}
/* Proyectados: icono en cuadrito como en el detalle */
.aireGoalCard .goalIcon.agIconBox{width:44px;height:44px;border-radius:14px;background:var(--lilac-soft)!important;display:inline-flex;align-items:center;justify-content:center;flex:none}
.aireGoalCard.proj:first-child .goalIcon.agIconBox{background:#fff!important}
.agIconBox svg{width:24px;height:24px}
/* Presupuesto: tarjetas separadas */
.aireBudgetForm{display:contents}
.aireBudgetCard h2{margin:0 0 4px}
.aireBudgetCard>p,.aireBudgetCard>div>p{color:var(--muted);margin:0 0 12px}
.aireBudgetCard .formactions{display:flex;justify-content:flex-end;margin-top:12px}
.aireBudgetCard .incomeAdd{margin:8px 0}
.aireBudgetFigures .budgetFigures{margin-top:6px}


/* ===== Ronda 9 ===== */
.aireRowName{display:flex;align-items:baseline;gap:8px;min-width:0;flex-wrap:wrap}
.aireRowName b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aireShared{font-style:normal;font-size:12px;font-weight:400!important;color:var(--sky-ink);background:var(--sky-soft);padding:1px 9px;border-radius:999px;white-space:nowrap}
.aireInfoBtn{font-size:12.5px;color:var(--muted)}
.datePickerOpen[hidden]{display:none!important}

.aireGoalCard.saving{background:color-mix(in srgb,var(--goal,#7A6AE6) 12%,#fff)!important}
.aireGoalCard.saving .agTag{color:var(--goal,#4A3CC0);filter:brightness(.7)}
.aireGoalCard.saving .agIconBox{background:#fff!important}
.agTitleRow{display:flex;align-items:center;gap:10px}
.agTitleRow h3{margin:0}
.aireGoalCard.saving small{color:var(--ink);opacity:.7}
.aireSeg{display:inline-flex;gap:4px;padding:3px;border-radius:999px;background:var(--soft)}
.aireSeg button{min-height:30px;padding:0 14px;border:0;border-radius:999px;background:transparent;font-size:13px;color:var(--ink)}
.aireSeg button.on{background:#fff;box-shadow:var(--sh-imp)}
.aireFeedTools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:6px 0 8px}
.aireFeedTools select{min-height:36px;font-size:13px}
.aireSize{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);margin-left:auto}
.aireFeedEmpty{color:var(--muted);padding:12px 0;margin:0}
.aireCatTitle{margin-left:14px;min-height:34px;font-size:13px}
.panelhead:has(.aireCatTitle){justify-content:flex-start;align-items:center;flex-wrap:wrap}

/* Recordar: botón claro y visible */
.shareNudge,button.shareNudge{display:inline-flex!important;align-items:center;gap:8px;min-height:34px!important;padding:0 16px!important;margin:6px 6px 0 0!important;border:0!important;border-radius:999px!important;background:var(--cta)!important;color:var(--ink)!important;font-size:13px;box-shadow:var(--sh-imp)}
.shareNudge::before{content:"";width:15px;height:15px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8a6 6 0 1 0-12 0c0 7-3 9-3 9h18s-3-2-3-9'/%3E%3Cpath d='M13.7 21a2 2 0 0 1-3.4 0'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8a6 6 0 1 0-12 0c0 7-3 9-3 9h18s-3-2-3-9'/%3E%3Cpath d='M13.7 21a2 2 0 0 1-3.4 0'/%3E%3C/svg%3E") center/contain no-repeat}
.shareNudge:hover{background:var(--cta-hover)!important;color:var(--ink)!important}
.shareHistoryNote{margin:8px 0;padding:10px 14px;border-radius:14px;background:var(--soft);font-size:14px}
.shareHistoryNote.hasAdjust{background:var(--sun-soft);color:var(--sun-ink)}

.aireUntil{margin-top:8px}
.aireExpiry{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:16px 20px;border-radius:24px;background:var(--sun-soft);color:var(--ink);margin-bottom:var(--gap)}
.aireExpiry>div:first-child{display:flex;flex-direction:column;gap:2px}
.aireExpiry small{color:var(--sun-ink)}
.aireExpiryActs{display:flex;gap:8px;flex-wrap:wrap}

.aireRemList{display:flex;flex-direction:column;gap:6px;max-height:55vh;overflow:auto;margin-top:10px}
.aireRemRow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;background:var(--tone-a)}
.aireRemRow:nth-child(even){background:var(--tone-b)}
.aireRemRow small{display:block;color:var(--muted)}
#aireRemSearch{width:100%;margin-bottom:6px}
#payForm.aireReminderOnly .formgrid>*:not(.payFormNotice),#payForm.aireReminderOnly .deleteActions{display:none!important}
.aireRemHead{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:var(--soft);margin-bottom:12px}
.aireRemHead small{display:block;color:var(--muted)}
#screen:has(#notificationPrefsForm) .calendarTrigger,#screen:has(#budgetForm) .calendarTrigger{display:none!important}

.aireHeroBtns{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.aireGoalBar .actions{display:flex;gap:10px;align-items:center}
/* Configuración en azul y Cerrar sesión en rojo, suaves y con buen contraste */
.sideProfile{background:#E3EDFA!important;color:#1D5E9E!important}
.sideProfile:hover{background:#D3E4F8!important;color:#154B80!important}
.sideLogout{background:#FBE7E2!important;color:#A63B25!important}
.sideLogout:hover{background:#F7D6CE!important;color:#8A2E1C!important}
.sideProfile .avatar,.sideLogout::before{background:currentColor!important}
.sideProfile .avatar{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M19.4 15a1.7 1.7 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1.1-1.5 1.7 1.7 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.8 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.5-1.1 1.7 1.7 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.8.3H9a1.7 1.7 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.8V9a1.7 1.7 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1z'/%3E%3C/svg%3E") center/20px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M19.4 15a1.7 1.7 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1.1-1.5 1.7 1.7 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.8 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.5-1.1 1.7 1.7 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.8.3H9a1.7 1.7 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.8V9a1.7 1.7 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1z'/%3E%3C/svg%3E") center/20px no-repeat}
.sideLogout::before{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'/%3E%3Cpath d='M16 17l5-5-5-5'/%3E%3Cpath d='M21 12H9'/%3E%3C/svg%3E") center/20px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'/%3E%3Cpath d='M16 17l5-5-5-5'/%3E%3Cpath d='M21 12H9'/%3E%3C/svg%3E") center/20px no-repeat}

.aireCatPills{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.aireHistCat button{min-height:44px;justify-content:flex-start}
#sidebarCollapse,.navToggle,.sidebarCollapsed .navToggle{transform:none!important}
.overviewShowSelect select,.overviewPeriodSelect select,.panelhead select{min-width:84px}
select{min-width:72px}
.field textarea,textarea{display:block;width:100%;box-sizing:border-box;padding:12px 16px;border-radius:var(--r-field);border:2px solid var(--line);background:var(--bg);min-height:84px;font-family:var(--body);font-size:15px}
#goalForm .field,#goalForm .goalChoiceBlock{margin-bottom:8px}
#goalForm textarea,#goalForm input:not([type=radio]):not([type=checkbox]){width:100%;box-sizing:border-box}

.debtWeekGroup thead th.money,.debtWeekGroup td.money{text-align:right}
.debtWeekGroup thead th:nth-child(5),.debtWeekGroup tbody td:nth-child(5){text-align:center;justify-self:center}
.debtWeekGroup td:last-child{justify-content:flex-end}

/* Espacio interior de todos los campos: nada pegado a la esquina */
select:not([multiple]):not([size]){padding-left:16px!important;padding-right:42px!important;background-position:right 16px center!important}
input[type=text],input[type=search],input[type=email],input[type=number],input[type=password],input[type=date],input[type=month],input[type=time],input[type=tel],input[type=url],textarea{padding-left:16px;padding-right:16px}
input[type=date]{padding-right:12px}
.aireFeedTools select,.aireFeedHead select{padding-left:16px!important}

/* Cambio de moneda (ventana de tres pasos) */
.aireCC{display:grid;gap:14px}
.aireCCGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.aireCCRate{display:flex;align-items:center;gap:10px}
.aireCCRate input{flex:1;min-width:0}
.aireCCSample{background:var(--tone-a,#F3F5F2);border-radius:16px;padding:12px 16px;margin:0}
.aireCCWarn{background:var(--alert-bg,#FDE3DD);color:var(--alert-ink,#B23B27);border-radius:16px;padding:12px 16px;margin:0}
.aireCCTable{display:grid;gap:6px;max-height:46vh;overflow:auto}
.aireCCHead,.aireCCRow{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(90px,1fr) minmax(110px,1fr);gap:10px;align-items:center}
.aireCCHead{font-size:12px;color:var(--muted,#667);position:sticky;top:0;background:var(--surface,#fff)}
.aireCCRow{padding:8px 0;border-bottom:1px solid var(--tone-b,#E4E8E4)}
.aireCCRow small{display:block;color:var(--muted,#667)}
.aireCCRow input{width:100%}
.aireCCLog{display:grid;gap:4px;margin-top:10px;font-size:13px;color:var(--muted,#667)}
@media(max-width:560px){.aireCCGrid{grid-template-columns:1fr}.aireCCHead{display:none}.aireCCRow{grid-template-columns:1fr 1fr}.aireCCRow>span:first-child{grid-column:1/-1}}

/* Informe descargable: elección de formato */
.reportFormat{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:6px 0 14px}
.reportFormat label{display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.reportFormat input{width:auto;margin:0}
.reportOptions{display:grid;gap:4px;max-height:52vh;overflow:auto;padding-right:4px}
.reportOptions>.reportFormat>b{min-width:72px}
.reportPeriod{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:8px}
.reportPeriod[hidden]{display:none}

/* Esqueletos de carga (skeletons): misma forma que el contenido que llegará */
.srOnly{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skel{display:block;border-radius:10px;background:linear-gradient(90deg,#E4E8E4 25%,#EEF1EE 50%,#E4E8E4 75%);background-size:200% 100%;animation:skelShimmer 1.4s ease-in-out infinite}
@keyframes skelShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.skel{animation:none}}
.skelWrap{display:grid;gap:14px}
.skelLine{max-width:100%}
.skelHeading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}
.skelHeading>div{display:grid;gap:8px;min-width:0;flex:1}
.skelBtn{width:150px;height:44px;border-radius:999px}
.skelBtnWide{width:100%;max-width:220px}
.skelChip{width:92px;height:32px;border-radius:999px;flex:none}
.skelChips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.skelDot{width:40px;height:40px;border-radius:50%;flex:none}
.skelIcon{width:44px;height:44px;border-radius:14px;flex:none}
.skelGrow{flex:1;min-width:0;display:grid;gap:8px}
.skelRow{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--tone-b,#E4E8E4)}
.skelMetrics{display:grid;gap:18px;padding:18px 20px}
.skelMetric{display:grid;gap:10px}
@media(max-width:700px){.skelMetrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
.skelCards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.skelCard{display:grid;gap:14px}
.skelCardTop{display:flex;gap:12px;align-items:center}
.skelProgress{height:10px;border-radius:999px}
.skelPanel{display:grid;gap:14px}
.skelField{display:grid;gap:8px}
.skelInput{height:48px;border-radius:16px}
.skelFree{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px}
.skelCalHead{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.skelCal{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.skelDay{aspect-ratio:1.2;border-radius:14px}
.skelCharts{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.skelChart{height:200px;border-radius:16px}
.skelInlineBar{display:inline-block;width:70px;height:16px;vertical-align:middle}
@media(max-width:700px){.skelFree{grid-template-columns:1fr}.skelBtn{width:44px}.skelBtnWide{width:100%}}


/* Versión móvil (≤700 px): filas compactas, botón flotante en círculo, cabeceras que se apilan, campos táctiles */
@media(max-width:700px){
  /* Resumen colapsado: que no recorte la última fila */
  .aireCollapsed .aireCompact{max-height:none}
  /* Filas de pagos: casilla, icono, nombre y valor arriba; acciones debajo alineadas con el nombre */
  .aireRow{grid-template-columns:20px 40px minmax(0,1fr) auto;column-gap:10px;row-gap:8px;padding:12px 14px 12px 10px;border-radius:22px}
  .aireRow .aireTile{width:40px;height:40px;font-size:16px}
  .aireRowAmount{grid-column:4;justify-self:end;align-self:start;font-size:17px}
  .aireRowActs{grid-column:3/-1;justify-content:flex-start;flex-wrap:wrap}
  .aireRowActs .aireAct,.aireRowActs button{min-height:38px;padding:0 16px;font-size:14px}
  .aireRowMain>small{font-size:12.5px}
  .aireSortHead{flex-wrap:nowrap;overflow-x:auto;gap:18px;padding-bottom:6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .aireSortHead::-webkit-scrollbar{display:none}
  .aireSortHead>*{flex:none;white-space:nowrap}
  /* Botón flotante: solo el círculo con el «+» */
  /* Cabeceras: título arriba y acciones en su propia fila, a todo el ancho */
  .heading{flex-direction:column;align-items:stretch;gap:12px}
  .heading>.actions,.heading .actions{display:flex;flex-wrap:wrap;gap:8px;width:100%}
  .heading .actions>button{flex:1 1 calc(50% - 8px);min-height:46px;white-space:normal;text-align:center;justify-content:center}
  .heading .actions>.calendarTrigger{flex:1 1 100%;white-space:nowrap}
  .heading h1{font-size:28px;line-height:1.1}
  /* Tarjetas, paneles y formularios */
  .panel,.metric{padding:16px;border-radius:22px}
  .freeSummary,.aireFreeTop,.aireSavingLayout,.shareSummary{grid-template-columns:1fr}
  .formactions{flex-wrap:wrap}
  .formactions>button{flex:1 1 140px;min-height:46px}
  input,select,textarea{font-size:16px}
  button,.pill,.aireTab{min-height:40px}
  .tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  /* Ventanas: hoja desde abajo con el contenido desplazable y botones fijos al final */
  dialog{max-height:94vh;overflow-y:auto;padding-bottom:calc(20px + env(safe-area-inset-bottom))}
  dialog .formactions{position:sticky;bottom:-20px;background:#fff;padding:12px 0 4px;margin-top:8px}
  .aireCCRate{flex-wrap:wrap}
  .aireCCRow{grid-template-columns:1fr 1fr}
  .reportOptions{max-height:60vh}
  .reportFormat{gap:12px}
  /* Calendario: celdas más compactas, sin importes */
  .calendar{gap:4px}
  /* Avisos pequeños sobre la barra inferior */
  #toast{bottom:calc(96px + env(safe-area-inset-bottom));left:16px;right:16px;max-width:none;text-align:center}
}
@media(max-width:380px){
  .heading .actions>button{flex-basis:100%}
  .aireRowAmount{font-size:16px}
  .summary .metric strong{font-size:22px}
}

/* Elementos que solo existen en móvil: ocultos fuera de él */
#mobileSubnav,#bottomNavAdd{display:none}
/* Correcciones de todas las resoluciones (24-10-2026) */
.illustratedEmpty[hidden],.aireFeedEmpty[hidden],.empty[hidden]{display:none!important}
.filterCategoryList{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.filterModalSection>.stateChip{margin-top:8px}
.budgetSignal.danger{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:var(--alert-bg,#FDE3DD);color:var(--alert-ink,#B23B27)}
.budgetSignalIcon{flex:none;width:38px;height:38px;border-radius:50%;background:#fff;color:var(--alert-ink,#B23B27);display:grid;place-items:center}
.budgetSignalText{display:grid;gap:3px;min-width:0}
.budgetSignalText b{font-size:14px;line-height:1.3}
.budgetSignalText a{color:inherit;font-size:13px;font-weight:600;text-decoration:underline}
.aireCompactPins .kPaid i{background:var(--mint,#4DBFA5)}.aireCompactPins .kPending i{background:var(--sun,#F2B84B)}.aireCompactPins .kFree i{background:#B9B0F2}
.aireCompactBar .aireBar .kFree{background:#B9B0F2}
#mobileBudgetCard,#mobileShortcuts,#topLogout,#selectBar,.aireSelectMode{display:none}
.budgetSignalIcon{aspect-ratio:1/1;border-radius:50%}
.budgetSignalIcon.big{width:56px;height:56px;margin:0 auto 12px;background:var(--alert-bg,#FDE3DD)}
.overBudgetModal{display:grid;gap:8px;text-align:center}
.overBudgetModal p{margin:0}
.overBudgetModal .formactions{justify-content:center;margin-top:10px}
/* Compartir gastos: elección de configuración, resumen y filas tocables */
.shareAvailRow{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit}
.shareAvailRow>span{flex:1;min-width:0}
.shareAvailRow .shareChevron{font-style:normal;font-size:22px;line-height:1;color:var(--muted)}
.shareScope{display:grid;gap:8px;margin:10px 0}
.shareScopeOpt{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1.5px solid #D5DBD7;border-radius:14px;background:#fff;cursor:pointer}
.shareScopeOpt:has(input:checked){border-color:var(--ink);background:#F3F5F2}
.shareScopeOpt input{margin-top:3px}
.shareScopeOpt small{display:block;color:var(--muted)}
.shareGlobal{padding:12px 14px;border-radius:14px;background:#F3F5F2;margin:8px 0}
.shareGlobal h4{margin:0 0 8px}
.shareBulk{display:flex;gap:8px;margin:8px 0}
.shareBulk button{min-height:32px;padding:0 12px;border-radius:999px;font-size:12.5px}
.shareCustomBtn{min-height:30px;padding:0 10px;border:0;background:transparent;text-decoration:underline;font-size:12.5px;justify-self:start}
#shareItems.shareAllMode .shareItem:not(.shareCustom) .shareItemMode,#shareItems.shareAllMode .shareItem:not(.shareCustom) .shareInputs,#shareItems.shareAllMode .shareItem:not(.shareCustom) .shareRoles{display:none!important}
.shareEquiv{display:block;font-size:11.5px;color:var(--muted)}
.shareSummary{margin:14px 0;padding:12px 14px;border-radius:14px;background:#F3F5F2}
.shareSummary h4{margin:0 0 6px}
.shareSummary[hidden],.shareGlobal[hidden],.shareSplitTools[hidden]{display:none!important}
.authStoryNext{display:none}
.tourSkipMobile{display:none}
/* A-010: puntos de carrusel con objetivo táctil de 24×24 px; el punto visible sigue midiendo 10 px */
.authStoryDot,.authStoryDot.active,.dicoTourDots button,.dicoTourDots button.active,.tipDots button{width:24px!important;min-width:24px!important;height:24px!important;min-height:24px!important;padding:7px!important;background-clip:content-box!important;border-radius:50%!important}
.authStoryDots,.dicoTourDots,.tipDots{gap:0}
.budgetSignal.danger>.budgetSignalIcon{flex:0 0 38px!important;width:38px!important;min-width:38px!important;max-width:38px!important;height:38px!important;aspect-ratio:1/1;border-radius:50%!important;padding:0!important;display:grid;place-items:center;align-self:center}
.budgetSignal.danger{overflow:hidden;max-height:140px;transition:opacity .45s ease,max-height .45s ease,padding .45s ease,margin .45s ease}
.budgetSignal.danger.dismissing{opacity:0;max-height:0;padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0}
body.budgetBannerDone .budgetSignal.danger{display:none}
#budgetAlertBtn{display:inline-grid;place-items:center;flex:none;width:40px;min-width:40px;max-width:40px;height:40px;min-height:40px;aspect-ratio:1/1;padding:0;border:0;border-radius:50%!important;background:var(--alert-bg,#FDE3DD);color:var(--alert-ink,#B23B27);animation:budgetPulse 1.6s ease-in-out infinite;cursor:pointer}
#budgetAlertBtn[hidden]{display:none}
@keyframes budgetPulse{0%,100%{box-shadow:0 0 0 0 #B23B2755;transform:scale(1)}50%{box-shadow:0 0 0 7px #B23B2700;transform:scale(1.07)}}
@media(prefers-reduced-motion:reduce){#budgetAlertBtn{animation:none}.budgetSignal.danger{transition:none}}
#topLogout{aspect-ratio:1/1}
/* Pantalla de salida de un participante */
body.shareLeaveOpen{overflow:hidden}
body.shareLeaveOpen #bottomNav,body.shareLeaveOpen #bottomNavAdd,body.shareLeaveOpen #screen .heading button[data-action="new"],body.shareLeaveOpen #selectBar,body.shareLeaveOpen #quickRegister{display:none!important}
#toast{z-index:500}
#shareLeaveScreen{position:fixed;inset:0;z-index:400;background:var(--bg,#f3f5f2);overflow-y:auto;overscroll-behavior:contain}
#shareLeaveScreen .slWrap{max-width:720px;margin:0 auto;padding:calc(20px + env(safe-area-inset-top)) 24px calc(40px + env(safe-area-inset-bottom))}
#shareLeaveScreen .slHead{display:flex;align-items:flex-start;gap:12px}
#shareLeaveScreen .slHead h1{margin:2px 0 0;font-size:24px;line-height:1.2}
#shareLeaveScreen .slHead small{color:var(--muted)}
#shareLeaveScreen .slBack{flex:none;width:40px;height:40px;min-height:40px;padding:0;border:0;border-radius:50%;background:#fff;font-size:20px;box-shadow:var(--shadow-card)}
#shareLeaveScreen .slLead{margin:16px 0}
#shareLeaveScreen .slTabs{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 10px;scrollbar-width:none}
#shareLeaveScreen .slTabs::-webkit-scrollbar{display:none}
#shareLeaveScreen .slTab{flex:none;display:grid;grid-template-columns:auto auto;grid-template-areas:"icon name" "icon state";column-gap:8px;align-items:center;text-align:left;min-height:52px;padding:6px 14px 6px 8px;border:1.5px solid #D5DBD7;border-radius:999px;background:#fff;color:var(--ink)}
#shareLeaveScreen .slTab.on{border-color:var(--ink);background:var(--ink);color:#fff}
#shareLeaveScreen .slTab.gone{opacity:.8;border-style:dashed}
#shareLeaveScreen .slIcon{grid-area:icon;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#EEF1EE;color:var(--ink)}
#shareLeaveScreen .slTab.on .slIcon{background:#fff}
#shareLeaveScreen .slName{grid-area:name;font-weight:700;font-size:14px}
#shareLeaveScreen .slTab small{grid-area:state;font-size:11.5px;opacity:.8}
#shareLeaveScreen .slDetail{padding:16px;border-radius:18px;background:#fff;margin:6px 0 16px}
#shareLeaveScreen .slDetail h3{margin:0 0 6px}
#shareLeaveScreen .slActions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
#shareLeaveScreen .slActions[hidden],#shareLeaveScreen .slConfirm[hidden]{display:none}
#shareLeaveScreen .slConfirm{padding:16px;border-radius:18px;background:#FDE3DD}
/* Tickets de soporte: pantalla del usuario y panel de soporte del Home */
body.supportScreenOpen{overflow:hidden}
body.supportScreenOpen #bottomNav,body.supportScreenOpen #bottomNavAdd,body.supportScreenOpen #screen .heading button[data-action="new"],body.supportScreenOpen #selectBar{display:none!important}
#supportScreen{position:fixed;inset:0;z-index:400;background:var(--bg,#f3f5f2);overflow-y:auto;overscroll-behavior:contain}
#supportScreen .ssWrap{max-width:720px;margin:0 auto;padding:calc(20px + env(safe-area-inset-top)) 24px calc(40px + env(safe-area-inset-bottom))}
#supportScreen .ssHead{display:flex;align-items:center;gap:12px;margin-bottom:12px}
#supportScreen .ssHead h1{margin:0;font-size:24px}
#supportScreen .ssBack{flex:none;width:40px;height:40px;min-height:40px;padding:0;border:0;border-radius:50%;background:#fff;font-size:20px;box-shadow:var(--shadow-card)}
#supportScreen .ssTicket,.supportRow{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin:8px 0;padding:14px;border:0;border-radius:16px;background:#fff;text-align:left;color:inherit;font:inherit;box-shadow:var(--shadow-card)}
#supportScreen .ssTicket small,.supportRow small{display:block;color:var(--muted)}
#supportScreen .ssSnippet{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.ssState,.supportState{flex:none;padding:3px 10px;border-radius:999px;background:#EEF1EE;font-size:12px;font-weight:700}
.ssState.open,.supportState.open{background:#FFF4D6}.ssState.answered,.supportState.answered{background:#E3F4EC}.ssState.closed,.supportState.closed{background:#E6E8E7;color:#5f6a66}
.ssThread,.supportThread{display:grid;gap:10px;margin:12px 0}
.ssMsg,.supportMsg{max-width:88%;padding:10px 14px;border-radius:16px;background:#fff;box-shadow:var(--shadow-card)}
.ssMsg p,.supportMsg p{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.ssMsg small,.supportMsg small{color:var(--muted)}
.ssMsg.user,.supportMsg.user{justify-self:end;background:#E3F4EC}
.ssMsg.system,.supportMsg.system{justify-self:center;background:transparent;box-shadow:none;text-align:center;color:var(--muted)}
.ssClosed{padding:14px;border-radius:16px;background:#fff}
/* Código de color de los eventos (calendario y leyenda): «abono extra» y «gasto libre» bien separados del resto */
:root{--ev-ahead:#8FA3B5;--ev-urgent:#E0A12B;--ev-overdue:#D4513D;--ev-paid:#2B8F6B;--ev-extra:#A24DD3;--ev-extra-soft:#F1E1F9;--ev-extra-ink:#6E2A93;--ev-free:#1AA7B8;--ev-free-soft:#DDF3F6;--ev-free-ink:#0D6773}
.calentry.extra{background:var(--ev-extra-soft);color:var(--ev-extra-ink)}
.calentry.free{background:var(--ev-free-soft);color:var(--ev-free-ink)}
.calendarColorKey i.extra{background:var(--ev-extra)}.calendarColorKey i.free{background:var(--ev-free)}.calendarColorKey i.ahead{background:var(--ev-ahead)}
.calendarColorKey i.paid{background:var(--ev-paid)}.calendarColorKey i.overdue{background:var(--ev-overdue)}.calendarColorKey i.urgent{background:var(--ev-urgent)}
/* Presupuesto: los ingresos adicionales se distinguen de la quincena 1 y 2 con el color de «abono extra»; el campo de fecha nunca se sale de la tarjeta */
.extraIncomeCard{background:var(--ev-extra-soft,#F1E1F9)!important;box-shadow:inset 4px 0 0 var(--ev-extra,#A24DD3)}
.extraIncomeCard button.incomeIcon,.extraIncomeCard .incomeIcon{background:var(--ev-extra,#A24DD3)!important;color:#fff!important}
.incomeReceiptFields input,.incomeReceiptFields .datePickerField{min-width:0;max-width:100%;box-sizing:border-box}
@media(max-width:700px){.incomeReceiptFields{grid-template-columns:minmax(0,1fr)}}
.ssTabs{display:flex;gap:6px;margin:10px 0;overflow-x:auto}
.ssTabs button{flex:1 1 0;min-width:0;padding:8px 6px;border:1px solid var(--line,#d9dee3);border-radius:999px;background:#fff;font:inherit;font-size:13px;white-space:nowrap}
.ssTabs button.on{background:var(--ink,#1f2a37);color:#fff;border-color:transparent}
.ssTabs button span{opacity:.75;margin-left:2px}
.ssAttach{display:grid;gap:8px;margin:10px 0}
.ssAttachTip{margin:0;padding:8px 10px;border-radius:10px;background:#FFF6DC;color:#5b4500;font-size:13px}
.ssAttachBtn{justify-self:start;padding:8px 14px;border:1px dashed var(--line,#b9c1c9);border-radius:999px;cursor:pointer;font-size:14px}
.ssAttachList{display:flex;gap:8px;flex-wrap:wrap}
.ssThumb{position:relative;display:inline-block}
.ssThumb img{width:72px;height:72px;object-fit:cover;border-radius:10px;display:block}
.ssThumb button{position:absolute;top:-6px;right:-6px;width:24px;height:24px;border-radius:50%;border:0;background:#1f2a37;color:#fff;line-height:1;padding:0}
.ssImages{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.ssImg{max-width:160px;max-height:160px;border-radius:10px;display:block}
.ssEditor{position:fixed;inset:0;z-index:2147483000;background:rgba(15,23,32,.7);display:grid;place-items:center;padding:16px;overflow:auto}
.ssEditorCard{background:#fff;border-radius:16px;padding:14px;max-width:min(760px,100%);display:grid;gap:10px}
.ssEditorCard canvas{width:100%;height:auto;max-height:60vh;object-fit:contain;touch-action:none;cursor:crosshair;border-radius:8px;background:#eee}
/* ===== App móvil (≤700 px) ===== Misma experiencia que tendrá la app: barra superior compacta, pestañas de sección,
   barra inferior con «+» central, tipografía de móvil y ventanas como hoja inferior o aviso con margen de 24 px. */
@media(max-width:700px){
  :root{--m-side:16px;--m-gap:12px;--m-radius:18px;--m-title:24px;--m-h2:18px;--m-h3:16px;--m-body:14px;--m-small:12.5px;--m-cap:11.5px;--m-btn:42px;--m-btn-sm:34px;--m-nav:56px;--m-nav-gap:24px;--m-sheet:24px}
  html{-webkit-text-size-adjust:100%}
  body{font-size:var(--m-body);line-height:1.45}
  /* El menú lateral y el botón flotante se reemplazan por la barra inferior */
  .sidebar,#navBackdrop,#mobileMenuButton,#quickRegister{display:none!important}
  .layout{display:block;padding:0 0 calc(var(--m-nav) + 28px + env(safe-area-inset-bottom))}
  /* Barra superior: marca a la izquierda, estado y avisos a la derecha */
  .topbar{position:sticky;top:0;z-index:25;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:calc(10px + env(safe-area-inset-top)) var(--m-side) 8px;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(10px);min-height:56px}
  .topbar,.topright{flex-wrap:nowrap!important}
  .topbarStart{min-width:0;flex:1}
  .topright{margin-left:auto}
  .topbarPurpose{display:inline-flex;align-items:center;gap:1px;font-size:0;color:transparent}
  .topbarPurpose::before{content:"dic";font:800 21px/1 var(--display,inherit);letter-spacing:-.03em;color:var(--ink)}
  /* La «o» de dico es una gráfica que se completa: anillo morado con un tramo sin cerrar */
  .topbarPurpose::after{content:"";display:inline-block;width:17px;height:17px;margin-top:3px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Ccircle cx='20' cy='20' r='13' fill='none' stroke='%237A6AE6' stroke-width='7' stroke-linecap='round' stroke-dasharray='70 12' transform='rotate(-120 20 20)'/%3E%3C/svg%3E") center/contain no-repeat}
  .topright{gap:8px;flex:none}
  .topright .avatar,#logout,.topright .quiet{display:none}
  .topright button{min-height:40px}
  .savestatus{font-size:var(--m-cap);padding:0 10px;min-height:30px}
  #notificationBell,#aireHelp,.topright>button[aria-label*="yuda"],.topright>.aireHelp{width:40px;height:40px;min-height:40px}
  /* Pestañas de la sección */
  #mobileSubnav{position:sticky;top:calc(56px + env(safe-area-inset-top));z-index:24;display:flex;gap:8px;overflow-x:auto;padding:4px var(--m-side) 10px;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(10px);scrollbar-width:none;-webkit-overflow-scrolling:touch}
  #mobileSubnav::-webkit-scrollbar{display:none}
  #mobileSubnav[hidden]{display:none}
  #mobileSubnav a{flex:none;display:inline-flex;align-items:center;min-height:34px;padding:0 13px;border-radius:999px;background:#fff;color:var(--ink);font-size:12.5px;font-weight:600;text-decoration:none;box-shadow:0 1px 2px #17231F0F}
  #mobileSubnav a[aria-current="page"]{background:var(--ink);color:#fff}
  /* Barra inferior: 4 secciones y «+» central elevado */
  #bottomNav{display:grid;grid-template-columns:1fr 1fr 70px 1fr 1fr;align-items:end;position:fixed;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:60;height:var(--m-nav);padding:0 6px;background:var(--ink);border-radius:26px;box-shadow:0 12px 32px #17231F59;gap:0}
  #bottomNav>a{height:100%;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:20px;background:transparent;color:#B9C8C2;font-size:10px;font-weight:600;letter-spacing:-.01em;padding:6px 0 4px;min-width:0}
  #bottomNav>a svg{width:24px;height:24px;stroke:currentColor}
  #bottomNav>a span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  #bottomNav .lblShort{display:none}
  #bottomNav>a[aria-current="page"]{background:transparent;color:var(--mint-vivid,#9de6cf)}
  #bottomNav>a[aria-current="page"] svg{stroke-width:2.2}
  #bottomNav>a[aria-current="page"]::after{content:"";width:5px;height:5px;border-radius:50%;background:var(--mint-vivid,#9de6cf);margin-top:1px}
  #bottomNavAdd{align-self:start;justify-self:center;width:60px;height:60px;min-height:0;margin-top:-22px;padding:0;border:5px solid var(--bg);border-radius:50%;background:var(--cta,#F2CB57);color:var(--ink);display:grid;place-items:center;box-shadow:0 8px 18px #17231F40}
  #bottomNavAdd svg{width:28px;height:28px;stroke:var(--ink);stroke-width:2.4}
  #bottomNavAdd:active{transform:scale(.93)}
  body.menuOpen #bottomNav,body:has(dialog[open]) #bottomNav{display:none}
  /* Página */
  .page{padding:6px var(--m-side) 0}
  footer{font-size:var(--m-cap);padding:8px 0 0}
  /* Escala tipográfica */
  h1,.heading h1{font-size:var(--m-title)!important;line-height:1.15!important;letter-spacing:-.02em}
  h2{font-size:var(--m-h2)!important;line-height:1.2!important}
  h3,h4{font-size:var(--m-h3)!important;line-height:1.25!important}
  p,li,.muted,.sharingIntro,.goalFormIntro{font-size:13.5px;line-height:1.5}
  small,.eyebrow,.field small,.aireRowMain>small{font-size:var(--m-cap)}
  .eyebrow{letter-spacing:.08em}
  label,.field{font-size:12.5px}
  .heading{margin:6px 0 12px;gap:10px}
  .heading p{font-size:14px}
  .metric strong,.summary .metric strong{font-size:17px!important}
  .metric.featured strong,.aireHero strong,.freeHero strong{font-size:24px!important}
  .aireRowMain b,.aireRowName b{font-size:14px}
  .aireRowAmount{font-size:15px}
  .pill,.aireTab,.chip{font-size:12.5px;min-height:32px;padding:0 12px}
  /* Botones y campos */
  button,.button{font-size:14px}
  button.primary,.button,.formactions>button,dialog .formactions button{min-height:var(--m-btn);padding:0 18px;border-radius:999px;font-size:14px}
  .aireAct,.aireRowActs button,.freeRow button,.panelhead button{min-height:var(--m-btn-sm);font-size:13px;padding:0 13px}
  .heading .actions>button,.heading .actions>.calendarTrigger{min-height:var(--m-btn);font-size:14px}
  input,select,textarea{min-height:44px;font-size:16px;padding:0 14px;border-radius:14px}
  textarea{padding:12px 14px}
  input[type=checkbox],input[type=radio]{min-height:0}
  select{padding-right:38px}
  /* Componentes: menos espacio y esquinas más contenidas */
  .panel,.metric,.panel.accountcard{padding:16px;border-radius:var(--m-radius)}
  .panelhead{gap:10px;margin-bottom:10px}
  .grid{gap:var(--m-gap)}
  .aireRow{padding:12px 12px 12px 10px;border-radius:18px;gap:10px}
  .aireRow .aireTile{width:38px;height:38px;border-radius:12px;font-size:15px}
  .aireGoalCard,.aireDebtCard{border-radius:var(--m-radius);padding:16px}
  .summary{gap:var(--m-gap)}
  .calday{min-height:52px}
  .calendarTrigger,.calendarTrigger .selectedMonth{white-space:nowrap}
  /* Avisos (toast) */
  #toast{left:24px;right:24px;bottom:calc(var(--m-nav) + 30px + env(safe-area-inset-bottom));font-size:14px;border-radius:16px;padding:12px 16px}
}
@media(max-width:360px){
  :root{--m-side:14px;--m-title:22px;--m-body:13.5px;--m-nav:54px}
  #bottomNav{left:8px;right:8px;grid-template-columns:1fr 1fr 68px 1fr 1fr}
  #bottomNav>a{font-size:10px}
  #bottomNavAdd{width:54px;height:54px;margin-top:-20px}
  .metric.featured strong,.aireHero strong,.freeHero strong{font-size:22px!important}
  #mobileSubnav a{padding:0 12px}
}
@media(min-width:520px) and (max-width:700px){
  /* Teléfonos grandes y plegables: se recompone en dos columnas lo que cabe */
  :is(div,section):has(>.aireGoalCard),:is(div,section):has(>.aireDebtCard),.skelCards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--m-gap);align-items:start}
  #bottomNav{left:50%;right:auto;width:min(420px,calc(100% - 24px));transform:translateX(-50%)}
}

/* Ventanas en móvil: hoja inferior (formularios y listas) o aviso centrado con 24 px de margen */
@media(max-width:700px){
  dialog[data-kind="sheet"]{position:fixed;inset:auto 0 0 0;margin:0;width:100%;max-width:none;max-height:92dvh;border-radius:28px 28px 0 0;padding:28px var(--m-side) calc(16px + env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y}
  dialog[data-kind="sheet"]::before{content:"";position:absolute;top:8px;left:50%;width:40px;height:5px;margin-left:-20px;border-radius:999px;background:#C9D2CE;z-index:3}
  dialog[data-kind="sheet"] .dialoghead{position:sticky;top:-28px;z-index:2;margin:-28px calc(-1*var(--m-side)) 8px;padding:24px var(--m-side) 8px;background:#fff}
  dialog[data-kind="sheet"] .dialoghead h2{font-size:var(--m-h2)!important}
  dialog[data-kind="sheet"] #closeModal{width:36px;height:36px;min-height:36px;border-radius:50%;background:var(--soft,#EEF1EE);font-size:22px;line-height:1;padding:0}
  dialog[data-kind="sheet"] .formactions{position:sticky;bottom:calc(-16px - env(safe-area-inset-bottom));margin:12px calc(-1*var(--m-side)) 0;padding:12px var(--m-side) calc(12px + env(safe-area-inset-bottom));background:linear-gradient(to top,#fff 78%,#fff0)}
  dialog[data-kind="alert"]{position:fixed;inset:0;margin:auto;width:calc(100% - 48px);max-width:none;height:fit-content;max-height:80dvh;border-radius:24px;padding:22px 20px 18px;overflow-y:auto}
  dialog[data-kind="alert"] .dialoghead{margin:0 0 8px;padding:0}
  dialog[data-kind="alert"]{overflow-x:hidden}
  dialog[data-kind="alert"] .dialoghead h2{font-size:var(--m-h2)!important}
  dialog[data-kind="alert"] #closeModal{width:32px;height:32px;min-height:32px;padding:0;border-radius:50%}
  dialog[data-kind="alert"] .formactions{margin-top:14px;display:flex;gap:10px}
  dialog[data-kind="alert"] .formactions>button{flex:1 1 0}
}

/* Escala compacta (24-10-2026): valores, títulos y cifras de cada pantalla al tamaño de una app */
@media(max-width:700px){
  h1,.heading h1,.aireGoalTitle{font-size:var(--m-title)!important}
  h2,.panel h2,.panelhead h2{font-size:var(--m-h2)!important}
  .reportHeroLead strong,.afMain strong,.goalHeroAmount strong,article.metric .value{font-size:24px!important}
  .aireCalNext b,.aireCalNext .amount{font-size:17px!important}
  a.aireMini b,.aireCompactCol b,.calendarTools strong{font-size:16px!important}
  .aireBudgetCol b,.reportGoalVisualStats strong,.reportHeroMetrics b,.reportDonut strong,.freeRow>strong,.freeRow>div>b{font-size:15px!important}
  .aireTile,.aireRow .aireTile,button.incomeIcon{font-size:14px}
  .eyebrow,.aireEyebrow{font-size:10.5px!important}
  .aireRowMain>small,small{font-size:var(--m-cap)}
  .field small{font-size:11.5px}
  #toast{font-size:13px}
  dialog .dialoghead h2,dialog[data-kind="sheet"] .dialoghead h2,dialog[data-kind="alert"] .dialoghead h2{font-size:var(--m-h2)!important}
  dialog p,dialog li{font-size:13.5px}
  dialog .formactions button{font-size:14px;min-height:var(--m-btn)}
}
@media(max-width:360px){
  h1,.heading h1,.aireGoalTitle{font-size:20px!important}
  .reportHeroLead strong,.afMain strong,.goalHeroAmount strong,article.metric .value{font-size:22px!important}
}
@media(max-width:400px){#bottomNav .lbl{display:none}#bottomNav .lblShort{display:inline}}

/* ===== Móvil v2 (24-10-2026) ===== Elementos que solo existen en móvil: ocultos fuera de él */
.aireSortMobile,.aireHoldHint,.aireCompactPins,.aireStatusPills{display:contents}
.aireSortMobile,.aireHoldHint,.aireCompactPins{display:none}
@media(max-width:700px){
  /* Menú inferior: solo iconos, a 24 px del borde, y aire al final del scroll */
  .layout{padding-bottom:calc(var(--m-nav) + var(--m-nav-gap) + 40px)}
  #bottomNav{margin:0;left:24px;right:24px;bottom:var(--m-nav-gap);height:var(--m-nav);border-radius:22px;grid-template-columns:1fr 1fr 64px 1fr 1fr;padding:0 4px}
  #bottomNav>a{gap:0;padding:0;justify-content:center}
  #bottomNav>a .lbl,#bottomNav>a .lblShort{display:none!important}
  #bottomNav>a svg{width:24px;height:24px}
  #bottomNav>a[aria-current="page"]::after{margin-top:3px}
  #bottomNavAdd{width:52px;height:52px;margin-top:-18px;border-width:4px}
  #bottomNavAdd svg{width:26px;height:26px}
  #toast{bottom:calc(var(--m-nav) + var(--m-nav-gap) + 16px)}
  /* El calendario vive solo en su pantalla */
  body:not([data-view="calendar"]) .calendarTrigger,body:not([data-view="calendar"]) [data-open-calendar]{display:none!important}
  /* «Nueva deuda»: botón flotante abajo a la derecha */
  #screen .heading button[data-action="new"]{position:fixed;right:16px;bottom:calc(var(--m-nav) + var(--m-nav-gap) + 14px);z-index:55;flex:none;width:auto;min-height:44px;padding:0 18px;border-radius:999px;font-size:14px;box-shadow:0 8px 20px #17231F40}
  body:has(dialog[open]) #screen .heading button[data-action="new"]{display:none}
  .heading .actions{width:auto}
  /* Resumen del mes: solo la tarjeta reducida */
  .aireFullWrap,.aireCollapseRow,.aireCompact .aireToggle{display:none!important}
  .aireCompact{display:grid!important;max-height:none!important;opacity:1!important;grid-template-columns:1fr 1fr;gap:10px 12px;padding:14px 16px;border-radius:var(--m-radius);cursor:default}
  .aireCompactCol span{font-size:12px}
  .aireCompactCol b{font-size:16px!important}
  .aireCompactBar{grid-column:1/-1}
  .aireCompactBar small,.aireCompactSide{display:none!important}
  .aireCompactPins{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;grid-column:1/-1}
  .aireCompactPins>div{display:grid;gap:2px;justify-items:center;padding:8px 4px;border-radius:12px;background:#F3F5F2;text-align:center}
  .aireCompactPins b{font-size:13px;line-height:1.2;white-space:nowrap}
  .aireCompactPins span{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--muted);line-height:1.2}
  .aireCompactPins i{width:7px;height:7px;border-radius:50%;background:currentColor}
  .aireCompactPins .kPaid span{color:#2B6F70}.aireCompactPins .kPending span{color:#B5543F}.aireCompactPins .kFree span{color:#6B5BD6}
  /* Pagos del mes: una fila de herramientas y, debajo, las píldoras */
  .overviewPaymentsPanel{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
  .overviewPaymentsPanel>*{flex:0 0 100%;order:20;min-width:0}
  .overviewPaymentsPanel>.overviewPaymentHeading{order:0}
  .overviewPeriodRange,.overviewManualLegend{display:none}
  .overviewStatusScroll,.overviewStatusTabs,.overviewFilterToolbar,.typeCategoryToolbar{display:contents}
  .overviewPeriodSelect,.overviewShowSelect{font-size:0;flex:0 0 auto;margin:0;gap:0}
  .overviewPeriodSelect{order:1}.overviewShowSelect{order:4}
  .overviewPeriodSelect select,.overviewShowSelect select{font-size:14px;min-height:40px;padding:0 28px 0 12px;border-radius:12px;background-position:right 10px center}
  .overviewPaymentsPanel .overviewPeriodSelect select:not([multiple]):not([size]){min-width:0!important;width:72px!important;padding:0 20px 0 9px!important;font-size:14px!important;background-position:right 6px center!important}
  .overviewPaymentsPanel .overviewShowSelect select:not([multiple]):not([size]){min-width:0!important;width:50px!important;padding:0 18px 0 9px!important;font-size:14px!important;background-position:right 5px center!important}
  .overviewFilterToolbar .typeCategoryButton{order:2;flex:0 0 40px;width:40px;min-height:40px;height:40px;padding:0;border-radius:12px;font-size:0;justify-content:center}
  .overviewFilterToolbar .typeCategoryButton svg{width:18px;height:18px}
  .overviewFilterToolbar #overviewPeriodSearch{order:3;flex:1 1 0;min-height:40px;padding:0 9px!important;border-radius:12px}
  .overviewFilterToolbar #overviewPeriodSearch::placeholder{font-size:13.5px}
  .overviewPaymentsPanel::after{content:"";order:5;flex:0 0 100%;height:0}
  .aireStatusPills{display:flex;order:6;flex:0 0 100%;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 -2px;padding:2px}
  .aireStatusPills::-webkit-scrollbar{display:none}
  .aireStatusPills button{flex:none;min-height:30px;padding:0 11px;font-size:12px}
  .aireStatusPills button span{font-size:10.5px;min-width:18px;height:18px;line-height:18px}
  .bulkPaymentToolbar{order:7}
  /* Organizar por + pista de selección */
  .aireChips>.aireSortHead{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 2px 8px;margin:0;overflow:visible}
  .aireSortHead>*{display:none}
  .aireSortHead>.aireSortMobile{display:block;position:relative}
  .aireSortHead>.aireHoldHint{display:block;margin:0;font-size:11px;line-height:1.25;color:var(--muted);text-align:right}
  .aireSortTrigger{padding:0!important;min-height:32px!important;font-size:12.5px!important;color:var(--muted)!important}
  .aireSortTrigger i{font-style:normal;margin-left:2px}
  .aireSortMenu{position:absolute;left:0;top:34px;z-index:40;min-width:176px;padding:6px;border-radius:14px;background:#fff;box-shadow:0 12px 32px #17231F33}
  .aireSortMenu[hidden]{display:none}
  .aireSortMenu button{display:block;width:100%;min-height:40px;padding:0 10px;border:0;background:transparent;text-align:left;font-size:14px;color:var(--ink)}
  /* Pagos: composición limpia, sin iniciales ni casillas */
  .aireRow{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main amount" "main acts";gap:4px 12px;align-items:start;padding:12px 14px;border-radius:16px}
  .aireRow .aireSel,.aireRow .aireTile{display:none!important}
  .aireRow .aireRowMain{grid-area:main;min-width:0}
  .aireRow .aireRowAmount{grid-area:amount;justify-self:end;text-align:right;font-size:15px}
  .aireRow .aireRowActs{grid-area:acts;justify-self:end;align-self:end;margin-top:4px}
  .aireRow .aireRowActs button{min-height:32px;padding:0 14px;font-size:12.5px}
  .aireRow.aireSelected{box-shadow:inset 0 0 0 2px var(--ink);filter:brightness(.93)}
  body.aireSelecting .aireRow{user-select:none;-webkit-user-select:none}
  .aireRow{-webkit-touch-callout:none}
  /* Ideas que suman y Distribución del mes con su margen */
  .workspace{gap:16px}
  .workspace>.rail{display:grid;gap:16px;margin-top:4px}
  /* Ventanas: 24 px al borde y 24 px al contenido */
  dialog[data-kind="alert"]{width:calc(100% - 48px);padding:24px}
  dialog[data-kind="alert"] .dialoghead{margin:0 0 10px;padding:0}
  dialog[data-kind="sheet"]{padding-left:var(--m-sheet);padding-right:var(--m-sheet)}
  dialog[data-kind="sheet"] .dialoghead{margin-left:calc(-1*var(--m-sheet));margin-right:calc(-1*var(--m-sheet));padding-left:var(--m-sheet);padding-right:var(--m-sheet)}
  dialog[data-kind="sheet"] .formactions{margin-left:calc(-1*var(--m-sheet));margin-right:calc(-1*var(--m-sheet));padding-left:var(--m-sheet);padding-right:var(--m-sheet)}
  /* Valores y títulos de tarjetas más compactos */
  .reportHeroLead strong,.afMain strong,.goalHeroAmount strong,article.metric .value{font-size:22px!important}
  .metric strong,.summary .metric strong{font-size:16px!important}
  .metric .caption,.metric>span,.aireBudgetCol span{font-size:12px}
}
@media(max-width:360px){
  #bottomNav{left:16px;right:16px;grid-template-columns:1fr 1fr 58px 1fr 1fr}
  #bottomNavAdd{width:48px;height:48px;margin-top:-16px}
}

/* ===== Móvil v3 (24-10-2026) ===== */
@media(max-width:700px){
  /* Tarjeta de presupuesto fija e iconos de acceso de «Día a día» */
  #mobileBudgetCard{display:block;margin:2px 0 12px}
  #mobileBudgetCard[hidden],#mobileShortcuts[hidden]{display:none}
  #mobileBudgetCard .aireCompact{margin:0}
  body[data-view="overview"] #screen .summary{display:none!important}
  #mobileShortcuts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin:0 0 14px;padding:10px 4px;background:#fff;border-radius:var(--m-radius);box-shadow:var(--shadow-card)}
  #mobileShortcuts a{display:grid;justify-items:center;align-content:start;gap:5px;min-width:0;color:var(--ink);text-decoration:none;font-size:10px;line-height:1.15;text-align:center}
  #mobileShortcuts .mhLabel{display:block;max-width:100%;white-space:normal;overflow-wrap:normal;hyphens:none}
  #mobileShortcuts .mhIcon{width:42px;height:42px;border-radius:50%;background:#F3F5F2;display:grid;place-items:center}
  #mobileShortcuts .mhIcon svg{width:21px;height:21px}
  #mobileShortcuts a[aria-current="page"] .mhIcon{background:var(--ink);color:#fff}
  #mobileShortcuts a[aria-current="page"] .mhLabel{font-weight:700}
  /* Salir siempre visible arriba a la derecha */
  #topLogout{display:inline-grid;place-items:center;width:40px;height:40px;padding:0;border:0;border-radius:50%;background:#fff;color:var(--ink);box-shadow:0 1px 2px #17231F14}
  /* Barra de filtros de Pagos del mes más pequeña, para dejar sitio a la búsqueda */
  .overviewPaymentsPanel{gap:6px}
  .overviewPaymentsPanel .overviewPeriodSelect select:not([multiple]):not([size]){width:62px!important;min-height:36px;padding:0 16px 0 8px!important;font-size:13px!important;background-position:right 4px center!important}
  .overviewPaymentsPanel .overviewShowSelect select:not([multiple]):not([size]){width:46px!important;min-height:36px;padding:0 14px 0 8px!important;font-size:13px!important;background-position:right 3px center!important}
  .overviewFilterToolbar .typeCategoryButton{flex:0 0 36px;width:36px;height:36px;min-height:36px;border-radius:10px}
  .overviewFilterToolbar .typeCategoryButton svg{width:16px;height:16px}
  .overviewFilterToolbar #overviewPeriodSearch{min-height:36px;padding:0 8px!important;border-radius:10px}
  /* Ideas que suman y Distribución del mes: separación vertical */
  #screen .workspace>aside.rail{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:16px!important;margin-top:16px}
  #screen .workspace>aside.rail>.panel{margin:0!important}
  /* Notificaciones: el scroll se queda en el panel mientras está abierto */
  body:has(#notificationPanel:not([hidden])){overflow:hidden}
  #notificationPanel:not([hidden]){position:fixed;left:12px;right:12px;top:calc(64px + env(safe-area-inset-top));width:auto;max-height:calc(100dvh - 64px - 24px - env(safe-area-inset-top));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;z-index:90}
  /* Desplegables propios (mobile_dropdown.js) */
  .mdMenu{position:fixed;z-index:1000;padding:6px;border-radius:14px;background:#fff;box-shadow:0 14px 36px #17231F40;overflow-y:auto;overscroll-behavior:contain}
  .mdOption{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:44px;padding:0 14px;border:0;border-radius:10px;background:transparent;color:var(--ink);font-size:15px;text-align:left}
  .mdOption i{opacity:0;font-style:normal;color:#2B6F70}
  .mdOption.selected{background:#F3F5F2;font-weight:700}.mdOption.selected i{opacity:1}
  /* Calendario */
  .aireCalNext{display:grid!important;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name amount" "when pay";gap:2px 12px;align-items:center;padding:10px 14px;border-radius:16px;margin:0 0 10px}
  .aireCalNext>div:first-child{grid-area:name;min-width:0}
  .aireCalNext>div:first-child span{display:block;font-size:11px;opacity:.8}
  .aireCalNext>div:first-child br{display:none}
  .aireCalNext>div:first-child b{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .aireCalNext>span:nth-child(2){grid-area:when;font-size:12px;opacity:.85}
  .aireCalNext .amount{grid-area:amount;justify-self:end;font-size:15px!important}
  .aireCalNext>button{grid-area:pay;justify-self:end;min-height:32px;padding:0 16px;font-size:12.5px}
  .calendarPage .calendarTools{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0 4px}
  .calendarPage .calendarTools>strong{flex:1;text-align:center;font-size:15px!important}
  .calendarPage .calendarTools .calendarColorKey,.calendarPage .calendarTools>label{display:none!important}
  .calendarPage .calendarTools .calendarSettingsButton{margin-left:auto;font-size:12px;min-height:30px;padding:0 10px}
  .calendarWide{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px 0}
  .calendarBodySurface .calendarWide .weekday{font-size:11px;text-align:center;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:6px 0}
  .calendarBodySurface .calendarWide .calday{display:grid;grid-template-columns:repeat(3,auto);justify-content:center;align-content:start;gap:3px 2px;min-height:46px!important;height:auto!important;padding:2px 0 0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:var(--ink)}
  .calendarBodySurface .calendarWide .calday.blank{min-height:0}
  .calendarBodySurface .calendarWide .calday b{grid-column:1/-1;justify-self:center;width:30px;height:30px;line-height:30px;border-radius:50%;text-align:center;font-size:14px;font-weight:600;background:transparent!important;color:var(--ink)}
  .calendarBodySurface .calendarWide .calday.today b{box-shadow:inset 0 0 0 1.5px var(--ink)}
  .calendarBodySurface .calendarWide .calday.selected b{background:var(--ink)!important;color:#fff!important}
  .calendarBodySurface .calendarWide .calday .mobileDayCount{display:none!important}
  .calendarBodySurface .calendarWide .calday .calentry{display:block;width:5px;height:5px;min-height:0;padding:0;border:0;border-radius:50%;font-size:0;line-height:0;overflow:hidden;background:var(--ev-ahead);margin:0}
  .calendarBodySurface .calendarWide .calday .calentry:nth-of-type(n+5){display:none}
    .calendarBodySurface .calendarWide .calday .calentry.overdue{background:var(--ev-overdue)}.calendarBodySurface .calendarWide .calday .calentry.urgent,.calendarBodySurface .calendarWide .calday .calentry.near{background:var(--ev-urgent)}.calendarBodySurface .calendarWide .calday .calentry.paid{background:var(--ev-paid)}.calendarBodySurface .calendarWide .calday .calentry.extra{background:var(--ev-extra)}.calendarBodySurface .calendarWide .calday .calentry.free{background:var(--ev-free)}
}

/* ===== Móvil v4 (25-10-2026) ===== */
@media(max-width:700px){
  /* Barra superior con 24 px a los lados; los cinco accesos de «Día a día» van justo debajo, sueltos y repartidos parejo */
  .topbar{padding-left:24px;padding-right:24px}
  #mobileShortcuts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin:0 0 12px;padding:4px 12px 0;background:transparent;border-radius:0;box-shadow:none}
  #mobileShortcuts[hidden]{display:none}
  #mobileShortcuts a{font-size:11px;line-height:1.2;justify-items:center;text-align:center}
  #mobileShortcuts .mhLabel{text-align:center}
  #mobileShortcuts .mhLabel{white-space:normal;overflow-wrap:normal;word-break:normal;hyphens:none}
  #mobileShortcuts a:nth-child(4) .mhLabel{white-space:nowrap}
  /* Alerta de compromisos: icono pequeño que parpadea junto al «?» */
  /* Guía («?»): hoja a todo el ancho, esquinas redondeadas solo arriba y pegada abajo */
  #dicoTour[open]{position:fixed;inset:auto 0 0 0;margin:0;width:100%;max-width:none;max-height:92dvh;border-radius:28px 28px 0 0}
  #dicoTour .dicoTourCard{min-height:0;padding:0 24px calc(24px + env(safe-area-inset-bottom))}
  #dicoTour .dicoTourHead{padding-top:24px}
  /* Avisos con 24 px por todos lados, también arriba y abajo */
  dialog[data-kind="alert"]{max-height:calc(100dvh - 48px)}
  /* Barra de filtros de Pagos del mes un poco más pequeña */
  .overviewPaymentsPanel .overviewPeriodSelect select:not([multiple]):not([size]){width:58px!important;min-height:34px;font-size:12px!important;padding:0 14px 0 7px!important}
  .overviewPaymentsPanel .overviewShowSelect select:not([multiple]):not([size]){width:42px!important;min-height:34px;font-size:12px!important;padding:0 12px 0 7px!important}
  .overviewFilterToolbar .typeCategoryButton{flex:0 0 32px;width:32px;height:32px;min-height:32px}
  .overviewFilterToolbar .typeCategoryButton svg{width:14px;height:14px}
  .overviewFilterToolbar #overviewPeriodSearch{min-height:34px}
  /* «Seleccionar varios»: botón de contorno, casillas flotantes y barra de acciones sobre «Nueva deuda» */
  .aireSortHead>.aireSelectMode{display:inline-flex;align-items:center;min-height:30px;padding:0 13px;border:1.5px solid var(--ink);border-radius:999px;background:transparent;color:var(--ink);font-size:12px;font-weight:600;box-shadow:none}
  body.aireSelecting .aireRow.aireSelectable{position:relative;padding-left:36px}
  body.aireSelecting .aireRow.aireSelectable .aireSel{display:block!important;position:absolute;left:-8px;top:50%;margin:-14px 0 0;width:28px;height:28px;min-height:0;padding:0;border:2px solid var(--ink);border-radius:50%;background:#fff;-webkit-appearance:none;appearance:none;box-shadow:0 2px 6px #17231F33;z-index:2}
  body.aireSelecting .aireRow.aireSelectable .aireSel:checked{background:var(--ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/18px no-repeat}
  .bulkPaymentToolbar{display:none!important}
  #selectBar:not([hidden]){display:flex;flex-direction:column;align-items:center;gap:6px;position:fixed;left:0;right:0;bottom:calc(var(--m-nav-gap) + env(safe-area-inset-bottom));z-index:56;pointer-events:none}
  #selectBar>*{pointer-events:auto}
  #selectBar .primary{min-height:44px;padding:0 22px;border-radius:999px;box-shadow:0 8px 20px #17231F40}
  #selectBar .aireText{min-height:32px;padding:0 14px;border:0;border-radius:999px;background:#fff;color:var(--ink);font-size:12.5px;font-weight:600;box-shadow:0 2px 8px #17231F26}
  /* Aire al final del scroll: el último contenido queda a ≥ 24 px de «Nueva deuda» y del menú */
  body:has(#screen .heading button[data-action="new"]) .layout{padding-bottom:calc(var(--m-nav) + var(--m-nav-gap) + 14px + 44px + 24px)}
  #notificationPanel:not([hidden]){max-height:calc(100dvh - 64px - env(safe-area-inset-top) - var(--m-nav) - var(--m-nav-gap) - 24px);padding-bottom:24px}
}
.mfButton,.mfPills,.mobileCalLegend{display:none}
@media(max-width:700px){
  /* Filtros de los movimientos recientes reunidos en un botón */
  .aireFeed .aireSeg,.aireFeed [data-aire-feed-filter],.aireFeed [data-aire-feed-kind]{display:none!important}
  .aireFeedTools{justify-content:space-between}
  .aireFeedTools .mfButton{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;border:1.5px solid var(--ink);border-radius:999px;background:transparent;color:var(--ink);font-size:12.5px;font-weight:600;box-shadow:none}
  .mfPills:not([hidden]){display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}
  .mfPill{display:inline-flex;align-items:center;gap:4px;min-height:30px;padding:0 4px 0 12px;border-radius:999px;background:#F3F5F2;font-size:12.5px;font-weight:600}
  .mfPill button{width:24px;height:24px;min-height:24px;padding:0;border:0;border-radius:50%;background:transparent;font-size:16px;line-height:1}
  .mfClear{min-height:30px;padding:0 10px;border:0;background:transparent;font-size:12.5px;text-decoration:underline;color:var(--muted)}
  .mfSheet h3{margin:14px 0 8px}
  .mfChips{display:flex;flex-wrap:wrap;gap:8px}
  .mfChip{min-height:38px;padding:0 14px;border:1.5px solid #D5DBD7;border-radius:999px;background:#fff;color:var(--ink);font-size:13.5px}
  .mfChip.on{background:var(--ink);border-color:var(--ink);color:#fff}
}
@media(max-width:700px){
  /* Desplegables: el campo no recibe el toque; lo recoge mobile_dropdown.js con una zona ampliada y abre solo el menú propio */
  select:not([multiple]):not([size]){pointer-events:none}
  .mdMenu{pointer-events:auto}
}
@media(max-width:700px){
  /* Tarjeta del próximo vencimiento: delgada, con el nombre y el valor en una sola línea */
  .aireCalNext{grid-template-columns:minmax(0,max-content) max-content 1fr auto!important;grid-template-areas:"title title title pay" "name amount amount pay" "when when when pay"!important;gap:0 6px!important;padding:10px 14px!important;row-gap:0!important}
  .aireCalNext>div:first-child{display:contents}
  .aireCalNext>div:first-child>span{grid-area:title;font-size:11px;line-height:1.35}
  .aireCalNext>div:first-child>b{grid-area:name;font-size:14px;line-height:1.35}
  .aireCalNext .amount{grid-area:amount!important;justify-self:start!important;font-size:14px!important;line-height:1.35}
  .aireCalNext .amount::before{content:"– ";font-weight:400}
  .aireCalNext>span:nth-child(2){grid-area:when!important;font-size:11px!important;line-height:1.35}
  .aireCalNext>button{grid-area:pay!important;align-self:center!important}
  /* Hasta tres puntos por día y, si hay más, un «+» del mismo tamaño */
  .calendarBodySurface .calendarWide .calday{grid-template-columns:repeat(4,auto)!important}
  .calendarBodySurface .calendarWide .calday .calentry:nth-of-type(n+4){display:none!important}
  .calendarBodySurface .calendarWide .calday:has(.calentry:nth-of-type(4))::after,.mobileCalLegend i.more{content:"";display:block;width:6px;height:6px;margin:0;background:linear-gradient(var(--muted,#6B7570),var(--muted,#6B7570)) center/100% 1.5px no-repeat,linear-gradient(var(--muted,#6B7570),var(--muted,#6B7570)) center/1.5px 100% no-repeat}
  .mobileCalLegend{display:flex;flex-wrap:wrap;gap:6px 14px;margin:14px 0 4px;padding:0 4px;font-size:11.5px;color:var(--muted);line-height:1.3}
  .mobileCalLegend span{display:inline-flex;align-items:center;gap:6px}
  .mobileCalLegend i{display:inline-block;width:8px;height:8px;border-radius:50%;background:#4FA3C7;flex:none}
  .mobileCalLegend i{background:var(--ev-ahead)}.mobileCalLegend i.urgent{background:var(--ev-urgent)}.mobileCalLegend i.overdue{background:var(--ev-overdue)}.mobileCalLegend i.paid{background:var(--ev-paid)}.mobileCalLegend i.extra{background:var(--ev-extra)}.mobileCalLegend i.free{background:var(--ev-free)}
  .mobileCalLegend i.more{width:8px;height:8px;border-radius:0}
}

/* ===== Acceso móvil (25-10-2026) ===== Ilustraciones y mensajes arriba, ingreso abajo, todo dentro de la pantalla */
@media(max-width:700px){
  html:has(.authpage.dicoAuth),body:has(.authpage.dicoAuth){height:100%;overflow:hidden;background:#2d2549}
  .authpage.dicoAuth{display:flex;flex-direction:column;box-sizing:border-box;width:100%;max-width:none;height:100dvh;min-height:0;margin:0;border:0;border-radius:0;overflow:hidden}
  .dicoAuth .authStory{order:0;position:relative;flex:1 1 0;min-height:0;padding:calc(12px + env(safe-area-inset-top)) 24px 28px;border-radius:0;justify-content:flex-start;overflow:hidden}
  .dicoAuth .authStoryArt{flex:1 1 0;min-height:96px;max-height:none}
  .dicoAuth .authStoryCopy{flex:none}
  .dicoAuth .authStoryArt{position:relative;overflow:hidden;display:block}
  .dicoAuth .authStoryArt img{position:absolute;inset:0;margin:auto;height:100%;max-height:100%;width:100%;max-width:100%;object-fit:contain}
  .dicoAuth .authStoryCopy{min-height:0;margin:6px auto 0}
  .dicoAuth .authStoryCopy h2{margin:4px 0;font-size:20px}
  .dicoAuth .authStoryCopy p{font-size:13px;line-height:1.4}
  .dicoAuth .authStoryCopy>span{font-size:10px}
  .dicoAuth .authStoryDots{position:static;margin:8px 0 0;flex:none}
  .dicoAuth .authEntry{order:1;flex:0 0 auto;padding:18px 24px calc(18px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;margin-top:-18px;position:relative;z-index:2}
  .dicoAuth .authbrand{margin-bottom:6px}
  .dicoAuth .authLogo{height:34px;width:auto}
  .dicoAuth .authMark{width:34px;height:34px}
  .dicoAuth .authpanel #authKicker{display:none}
  .dicoAuth .authpanel h1{font-size:22px!important;margin:0 0 10px}
  .dicoAuth .authpanel .field{margin-bottom:8px}
  .dicoAuth .authpanel .primary{margin-top:6px}
  .dicoAuth #authLinks{margin-top:8px}
}
@media(max-width:700px) and (max-height:760px){
  .authpage.dicoAuth .authEntry .authbrand{display:none!important}
  .dicoAuth .authEntry{padding-top:16px;margin-top:-14px}
  .dicoAuth .authpanel h1{margin-bottom:6px}
  .dicoAuth .authpanel .field input{min-height:40px}
  .dicoAuth .authStoryCopy p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
}
@media(max-width:700px){
  /* Mientras se seleccionan pagos: menú y «Nueva deuda» quedan opacos y apagados para no competir con las acciones de la selección */
  /* Parte superior de «Pagos del mes» fija durante la selección */
  .aireChips>.aireSortHead.selectStuck{position:sticky;padding:6px 2px 8px;margin:0}
  /* «Salir de la selección» brilla con un amarillo suave; el botón conserva su color */
  .aireSelectMode[aria-pressed="true"]{box-shadow:0 0 0 3px #F2CB5780,0 0 16px 2px #F2CB57AA}
}
@media(max-width:700px){
  /* Guías con ilustraciones: sin «Atrás» ni «Siguiente»; se avanza deslizando o con los puntos y solo queda «Omitir» */
  #dicoTour [data-tour-prev],#dicoTour [data-tour-next]{display:none}
  #dicoTour .tourSkipMobile{display:inline-flex}
  #dicoTour .dicoTourFoot{justify-content:center;flex-direction:column;gap:12px}
  #dicoTour .dicoTourActions{justify-content:center;width:100%}
  /* Selección múltiple: «Descartar selección» en píldora blanca; menú y «Nueva deuda» desactivados */
  #selectBar .aireText{background:#fff!important;border:1px solid #D5DBD7!important;padding:0 18px!important;min-height:36px!important;border-radius:999px!important;box-shadow:0 4px 12px #17231F33!important}
}
@media(max-width:700px) and (max-height:640px){
  .dicoAuth .authStoryCopy>span{display:none}
  .dicoAuth .authStoryCopy h2{font-size:18px}
  .dicoAuth .authpanel h1{font-size:20px!important}
  .dicoAuth .authpanel .field{margin-bottom:6px}
  .dicoAuth .authpanel .field input{min-height:38px}
  .dicoAuth #authLinks{display:flex;flex-wrap:wrap;justify-content:center;gap:2px 14px;font-size:12px;margin-top:4px}
  .dicoAuth #authLinks a,.dicoAuth #authLinks button{font-size:12px;min-height:28px}
  .dicoAuth .authEntry{padding-top:12px}
}
@media(max-width:360px){
  /* A cada ancho, los cinco accesos se reparten por igual tomando como referencia el icono; el texto baja a 10 px para no cortarse */
  #mobileShortcuts{gap:2px}
  #mobileShortcuts a{font-size:10px;letter-spacing:-.015em}
  #mobileShortcuts .mhLabel{overflow-wrap:normal}
  #mobileShortcuts .mhIcon{width:38px;height:38px}
}
@media(max-width:700px){
  /* A-008: nada ensancha el documento a 320 px */
  .aireGoalGrid,.aireSavingGrid,.aireDebtGrid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
  .aireGoalCard,.aireDebtCard{min-width:0;max-width:100%}
  .fragmentBalance{white-space:normal;overflow-wrap:anywhere}
}
@media(max-width:700px){
  /* Modo «Seleccionar varios»: sin menú inferior ni «Nueva deuda»; la cabecera fija ocupa todo el ancho sobre una banda opaca */
  body.aireSelecting #bottomNav,body.aireSelecting #screen .heading button[data-action="new"]{display:none!important}
  body.aireSelecting .layout{padding-bottom:calc(150px + env(safe-area-inset-bottom))}
  .selectStuck{position:sticky;z-index:21;background:#fff}
  #selectMask{display:none;position:fixed;left:0;right:0;z-index:20;background:#fff;box-shadow:0 8px 14px #17231F1F}
  #selectMask.on{display:block}
}
@media(max-width:700px){
  #topLogout{flex:none;width:40px;min-width:40px;max-width:40px;height:40px;aspect-ratio:1/1;border-radius:50%!important;padding:0}
}
@media(max-width:360px){#mobileShortcuts a{font-size:10px;letter-spacing:-.015em}}
@media(max-width:330px){#mobileShortcuts a{font-size:9.5px}}

.dicoActionArt{display:block;width:clamp(100px,28vw,150px);height:auto;aspect-ratio:1;object-fit:contain;margin:0 auto 12px}
.authSuccessArt{display:block;width:112px;height:112px;object-fit:contain;margin:0 auto 12px}
#toast.dicoIllustratedToast{align-items:center;gap:10px;max-width:min(360px,calc(100vw - 24px));min-height:76px;line-height:1.35}
#toast.dicoIllustratedToast:not([style*="display: none"]){display:flex!important}
#toast.dicoIllustratedToast img{width:62px;height:62px;object-fit:contain;flex:none}
#toast.dicoIllustratedToast span{min-width:0;overflow-wrap:anywhere}
@media(max-width:500px){.dicoActionArt{width:112px}#toast.dicoIllustratedToast img{width:54px;height:54px}}
