/* Consistent hierarchy, alignment and touch targets for app screens. */
.dialoghead{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px}.dialoghead::after{content:''}.dialoghead h2{text-align:center;line-height:1.2}.dialog-back{width:44px;height:44px;display:grid;place-items:center;border-radius:50%}.dialog-back svg{width:23px;height:23px}.actions .primary{min-height:48px;min-width:150px}
.metric{display:flex;min-height:116px;flex-direction:column;align-items:flex-start;text-align:left}.metric .label{display:flex;align-items:flex-start;min-height:34px;line-height:1.25}.metric strong{line-height:1.15}.metric small{margin-top:auto;padding-top:5px;line-height:1.25}
.meal-daily-status span{display:inline;min-width:0;line-height:1.35}.meal-daily-status span strong{display:inline;margin-left:3px;white-space:nowrap}.meal-daily-status>svg{margin-left:auto;flex:none}
.crypto-rate{display:inline-flex;align-items:center;gap:8px;margin:9px 0 0;padding:7px 11px;border:1px solid #3e4b36;border-radius:999px;background:#222a1e;color:var(--muted);line-height:1}.crypto-rate span{font-size:10px}.crypto-rate strong{color:#dfe8d8;font-size:11px;font-weight:650;white-space:nowrap}.crypto-holding-display{cursor:pointer}.crypto-holding-display:active{background:#252d22}
.required-payment-progress{display:block;width:100%;margin:0;padding:13px 0;border-bottom:1px solid var(--line);background:transparent;text-align:left}.required-payment-progress:last-child{border-bottom:0}.required-payment-progress .budgethead{align-items:center}.required-payment-progress .budgethead>span:first-child{font-weight:650;color:var(--text)}.required-payment-progress .budgethead>span:last-child{text-align:right}.active-filter{border-color:#60794d;background:#34452b;color:var(--green)}
.donutinner strong{display:block;max-width:104px;overflow:hidden;text-overflow:clip;white-space:nowrap;font-variant-numeric:tabular-nums}.donutinner.compact strong{font-size:14px;letter-spacing:-.65px}
@media(max-width:720px){
 dialog{inset:0!important;box-sizing:border-box;width:100vw!important;max-width:none!important;height:100dvh!important;max-height:none!important;margin:0!important;padding:max(12px,env(safe-area-inset-top)) 18px max(18px,env(safe-area-inset-bottom))!important;border:0!important;border-radius:0!important;background:var(--bg)!important;overflow:auto}
 dialog::backdrop{background:var(--bg)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
 dialog>form{display:flex!important;flex-direction:column;gap:14px;width:100%;max-width:640px;min-height:calc(100dvh - max(12px,env(safe-area-inset-top)) - max(18px,env(safe-area-inset-bottom)));margin:0 auto}
 .dialoghead{position:sticky;z-index:3;top:calc(-1 * max(12px,env(safe-area-inset-top)));margin:0 -18px 8px;padding:8px 18px;background:linear-gradient(var(--bg) 78%,transparent)}
 .dialoghead h2{font-size:18px}.actions{position:sticky;bottom:calc(-1 * max(18px,env(safe-area-inset-bottom)));z-index:3;margin-top:auto!important;padding:16px 0 max(18px,env(safe-area-inset-bottom));background:linear-gradient(transparent,#111410 18%)}.actions .primary{width:100%}
 dialog input,dialog select,dialog textarea{min-height:48px}.permission-primary{margin-top:auto!important;min-height:50px}.permission-skip{min-height:44px}
 .metric{min-height:108px;padding:13px 10px}.metric .label{min-height:30px}.metric strong{font-size:16px}.metric small{min-height:27px}
 .donutinner.compact strong{font-size:13px}.crypto-rate{margin-top:10px}
}
@media(max-width:380px){.metric{min-height:105px}.metric .label{font-size:9px}.metric strong{font-size:14px}.metric small{font-size:8.5px}.donutinner.compact strong{font-size:12px}}

/* Gemma summary: a quiet, distinctive card that remains readable beside financial data. */
.ai-magic{position:relative;isolation:isolate;overflow:hidden;margin:0 0 28px;border:1px solid #657849;background:radial-gradient(circle at 88% 0,#9ae05b24 0,transparent 36%),linear-gradient(145deg,#242e20,#191f18 70%);box-shadow:0 16px 46px #05080445}.ai-magic::before{content:'';position:absolute;z-index:-1;inset:-70% 35% auto -25%;height:240px;background:radial-gradient(circle,#c7ff8a16,transparent 68%);transform:rotate(-8deg)}.ai-magic-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.ai-magic-title{display:flex;align-items:center;gap:11px}.ai-magic-title h2{font-size:18px;line-height:1.1}.ai-magic-title small{display:block;margin-top:4px;color:#9faa98;font-size:10px}.ai-spark{width:38px;height:38px;display:grid;place-items:center;border-radius:13px;background:linear-gradient(145deg,#bff17c,#6d9d42);box-shadow:0 5px 18px #8ec95433;color:#192111;font-size:19px}.ai-refresh{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#303b29;color:var(--green);flex:none}.ai-refresh svg{width:20px}.ai-refresh.spinning svg{animation:ai-spin 1s linear infinite}.ai-magic-copy{margin-top:19px}.ai-magic-copy h3{max-width:660px;font-size:23px;line-height:1.2;letter-spacing:-.4px}.ai-magic-copy p{max-width:720px;margin-top:9px;color:#d2dbcc;font-size:13px;line-height:1.55}.ai-magic-copy ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 18px;margin:16px 0 0;padding:0;list-style:none}.ai-magic-copy li{position:relative;padding:10px 12px 10px 28px;border:1px solid #3b4734;border-radius:13px;background:#171d15aa;color:#cbd4c5;font-size:12px;line-height:1.4}.ai-magic-copy li::before{content:'✦';position:absolute;left:11px;top:10px;color:var(--green);font-size:10px}.ai-updated{display:block;margin-top:14px;color:#899384;font-size:9px}.ai-magic-empty{margin-top:18px;color:var(--muted);font-size:13px}.ai-magic-loading{display:grid;gap:9px;margin-top:20px}.ai-magic-loading i{height:13px;border-radius:8px;background:linear-gradient(90deg,#2d3827 20%,#405034 50%,#2d3827 80%);background-size:220% 100%;animation:ai-shimmer 1.4s ease infinite}.ai-magic-loading i:nth-child(1){width:62%}.ai-magic-loading i:nth-child(2){width:93%}.ai-magic-loading i:nth-child(3){width:76%}@keyframes ai-spin{to{transform:rotate(360deg)}}@keyframes ai-shimmer{to{background-position:-220% 0}}
@media(max-width:720px){.ai-magic{margin-bottom:24px;padding:18px}.ai-magic-copy{margin-top:16px}.ai-magic-copy h3{font-size:20px}.ai-magic-copy ul{grid-template-columns:1fr;gap:7px}.ai-magic-title h2{font-size:17px}.ai-spark{width:36px;height:36px;border-radius:12px}}
@media(prefers-reduced-motion:reduce){.ai-refresh.spinning svg,.ai-magic-loading i{animation:none}}
