/* 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}}

/* AI summary: one focused insight followed by one concrete action. */
.ai-magic{position:relative;isolation:isolate;overflow:hidden;margin:0 0 28px;padding:24px;border:1px solid #536943;background:radial-gradient(circle at 92% -8%,#c1ed8624 0,transparent 35%),linear-gradient(145deg,#242f20,#191f18 72%);box-shadow:0 16px 42px #0508043d}.ai-magic::before{content:'';position:absolute;z-index:-1;width:190px;height:190px;right:-100px;bottom:-125px;border:36px solid #a4dc6410;border-radius:50%}.ai-magic-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.ai-magic-title{display:flex;align-items:center;min-width:0;gap:12px}.ai-magic-title h2{font-size:18px;line-height:1.15}.ai-magic-title small{display:block;margin-top:3px;color:#b2bbaa;font-size:12px;line-height:1.3}.ai-spark{width:40px;height:40px;display:grid;place-items:center;flex:none;border-radius:13px;background:linear-gradient(145deg,#d0fb98,#80b64d);box-shadow:0 6px 20px #8ec9542e;color:#192111;font-size:19px}.ai-refresh{width:44px;height:44px;display:grid;place-items:center;flex:none;border:1px solid #45563a;border-radius:50%;background:#2b3527;color:var(--green)}.ai-refresh svg{width:20px;height:20px}.ai-refresh.spinning svg{animation:ai-spin 1s linear infinite}.ai-magic-copy{max-width:760px;margin-top:22px}.ai-magic-copy h3{font-size:21px;line-height:1.25;letter-spacing:-.3px;text-wrap:balance}.ai-magic-copy p{max-width:720px;margin-top:8px;color:#d8dfd2;font-size:14px;line-height:1.55}.ai-advice{position:relative;max-width:760px;margin-top:18px;padding:14px 15px 14px 40px;border:1px solid #465a38;border-radius:15px;background:#151b13b8}.ai-advice::before{content:'✦';position:absolute;left:15px;top:14px;color:var(--green);font-size:15px;line-height:1.4}.ai-advice strong{display:block;margin-bottom:3px;color:var(--green);font-size:12px}.ai-advice p{color:#e4e9df;font-size:14px;line-height:1.45}.ai-magic-empty{margin-top:20px;color:#b4bcae;font-size:14px;line-height:1.5}.ai-magic-loading{display:grid;gap:10px;margin-top:24px}.ai-magic-loading i{height:14px;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:58%}.ai-magic-loading i:nth-child(2){width:96%}.ai-magic-loading i:nth-child(3){width:78%}@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;border-radius:20px}.ai-magic-title{gap:10px}.ai-magic-title h2{font-size:17px}.ai-magic-title small{font-size:11px}.ai-spark{width:38px;height:38px;border-radius:12px}.ai-magic-copy{margin-top:19px}.ai-magic-copy h3{font-size:19px;line-height:1.28}.ai-magic-copy p,.ai-advice p{font-size:13px}.ai-advice{margin-top:15px;padding:13px 13px 13px 37px}.ai-advice::before{left:13px;top:13px}}
@media(prefers-reduced-motion:reduce){.ai-refresh.spinning svg,.ai-magic-loading i{animation:none}}
