/* Personal theme and intrinsic-size safeguards. */
:root{--green:#0b4b3f;--gold:#dcebb0}
body{background:linear-gradient(180deg,#f8f8f2 0%,#f3f5ee 100%)}
.logo{min-width:38px;width:auto;padding:0 8px;background:linear-gradient(145deg,#dcebb0,#bfd98c);color:#0b4b3f;box-shadow:0 5px 14px rgba(11,75,63,.16)}
.balance{background:linear-gradient(145deg,#0b4b3f,#176654)}
.panel,.stat{box-shadow:0 12px 34px rgba(27,67,54,.07)}
/* Intrinsic-size safeguards: content wraps before the viewport guard applies. */
[hidden]{display:none!important}
html{max-width:100%;overflow-x:clip;overscroll-behavior-x:none;scroll-behavior:auto}
body{width:100%;min-width:0;overflow-x:clip;overscroll-behavior-x:none}
main,header,section,article,form,nav,footer,dialog,.section-head>*,.period>*,.filters>*,.category-title>*,.budget-grid>*,.actions>*{min-width:0}
main,section,article,form,footer,dialog{overflow-wrap:anywhere}
button{max-width:100%;white-space:normal;overflow-wrap:anywhere}
input,select,textarea{width:100%;min-width:0;max-width:100%;font-size:16px}
input[type=date],input[type=month]{display:block;appearance:none;-webkit-appearance:none;min-height:48px;text-align:left}
input::-webkit-date-and-time-value{min-width:0;text-align:left}
input::-webkit-datetime-edit{min-width:0;padding:0}
textarea{resize:vertical}
.notice{position:static}
.logo,.beta{flex-shrink:0}
.period{display:grid;grid-template-columns:repeat(2,minmax(0,240px)) minmax(0,1fr);align-items:end}
.period label{width:100%;max-width:none}
.period .pill{justify-self:end;margin:0 0 10px}
.pill{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.category-title{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
.category-title strong{text-align:right}
.budget-card h3,.budget-card .amounts,.custom-chip{overflow-wrap:anywhere}
.budget-actions,.tx-actions{flex-wrap:wrap}
.budget-grid>.empty{grid-column:1/-1}
.custom-chip{display:flex;width:100%;margin:8px 0;justify-content:space-between;min-width:0}
.custom-chip button{flex-shrink:0}
.tx-value{white-space:normal;overflow-wrap:anywhere;min-width:0}
.decoration{right:0;max-width:100%;pointer-events:none}
.chart-column small{text-align:center}
dialog{max-width:470px;width:calc(100% - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior-y:contain;margin:auto;padding:24px}
dialog .section-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start}
dialog .section-head h2{font-size:clamp(20px,5vw,24px)}
#onboarding h2{font-size:clamp(28px,7.8vw,35px)}
@media(max-width:1100px){
 .period{grid-template-columns:repeat(2,minmax(0,1fr))}
 .period .pill{grid-column:1/-1;justify-self:start;margin:0}
 .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .balance{grid-column:1/-1}
 .tx-row{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:start;gap:10px}
 .tx-symbol{width:32px;height:32px}
 .tx-body{min-width:0}
 .tx-value{grid-column:2;max-width:100%;text-align:left;font-size:15px}
 .tx-actions{grid-column:2;width:100%;margin:0;justify-content:flex-end}
 .filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}
 .filters .search{grid-column:1/-1}
 #categoryForm{grid-template-columns:minmax(0,1fr)}
 #categoryForm button{width:100%}
}
@media(max-width:900px){
 .sidebar{position:static;width:100%;padding:calc(env(safe-area-inset-top) + 18px) max(20px,env(safe-area-inset-right)) 0 max(20px,env(safe-area-inset-left));border:0;background:transparent}
 .tagline,.local{display:none}
 .sidebar nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:18px 0 0;padding:0 0 10px;border-bottom:1px solid var(--line)}
 .sidebar nav a{display:flex;justify-content:center;align-items:center;min-height:44px;padding:10px 5px;font-size:13px;text-align:center;overflow-wrap:anywhere}
 main{margin:0;padding:25px max(20px,env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}
 header{flex-wrap:wrap}
 .budget-grid{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:700px){
 .period{grid-template-columns:minmax(0,1fr);gap:12px}
 .period .pill{grid-column:auto}
 .stats article{padding:20px}
 .panel{padding:20px 18px}
 .balance h2{font-size:clamp(27px,7vw,36px)}
 .stat h2{font-size:clamp(18px,4.6vw,24px)}
 .actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .actions button{width:100%;height:100%;font-size:14px}
}
@media(max-width:480px){
 .sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))}
 .sidebar nav a{justify-content:flex-start;padding:10px 12px}
 .filters{grid-template-columns:minmax(0,1fr)}
 .actions{grid-template-columns:minmax(0,1fr)}
 .stats{grid-template-columns:minmax(0,1fr)}
 .balance{grid-column:auto}
 .stat h2{font-size:24px}
 .stat{display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:12px;align-items:start}
 .stat-icon{grid-row:1/4;margin:0}
 .stat p,.stat h2,.stat small{grid-column:2}
 .stat h2{margin-bottom:6px;font-size:18px;letter-spacing:-.5px}
 .balance h2{font-size:22px;letter-spacing:-.6px}
 .category-title{grid-template-columns:minmax(0,1fr);gap:4px}
 .category-title strong{text-align:left}
 .chart{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 10px}
 .chart-column strong{font-size:10px}
 select{appearance:none;-webkit-appearance:none;padding-right:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23203b34' stroke-width='1.6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;min-height:48px}
}
