/* Shared, calm light/dark rhythm. Calendar cells retain readable type on folded screens. */
#incomeCalendar{margin-top:20px;container-type:inline-size;padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--card);scroll-margin-top:20px}
.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.calendar-eyebrow{font-size:10px;letter-spacing:.15em;color:var(--muted)}
.calendar-heading h2{margin:4px 0;font-size:22px}.calendar-heading p,.calendar-note{color:var(--muted);font-size:12px;line-height:1.7}
.calendar-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.calendar-controls input{min-width:0;border:1px solid var(--line);border-radius:10px;background:var(--card);color:inherit;padding:8px;font:inherit}
.calendar-total{display:flex;flex-direction:column;gap:5px;margin:20px 0}.calendar-total strong{font-size:30px;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.calendar-total span{font-size:12px;color:var(--muted)}
.calendar-week,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-week{padding:0 0 10px;text-align:center;font-size:12px;color:var(--muted)}
.calendar-day{min-height:88px;min-width:0;border:1px solid transparent;border-radius:12px;padding:10px 5px;background:color-mix(in srgb,var(--line) 35%,transparent);color:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer}
.calendar-day .calendar-date{align-self:flex-start;padding-left:5px;font-size:12px;color:var(--muted)}.calendar-day b{font-size:13px;max-width:100%;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.calendar-day small{font-size:10px;opacity:.8}.calendar-day.gain{background:color-mix(in srgb,#59a996 12%,var(--card));color:#248370}.calendar-day.loss{background:color-mix(in srgb,#e98678 12%,var(--card));color:#ba524c}
.calendar-day.is-today{border-color:#7faaa9;box-shadow:0 0 0 1px #7faaa940}.calendar-day:focus-visible{outline:2px solid #428fba;outline-offset:2px}.calendar-day:disabled{opacity:.3;cursor:default}
.calendar-note{margin-top:14px}.calendar-detail{display:flex;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}.calendar-detail small{display:block;font-size:12px;color:var(--muted);margin-top:5px}.calendar-detail strong{white-space:nowrap}
.import-table tbody td{padding:12px}.import-table input,.import-table select{max-width:100%}
@media(max-width:600px){#incomeCalendar{padding:14px}.calendar-grid,.calendar-week{gap:4px}.calendar-day{min-height:73px;border-radius:9px;padding:8px 2px}.calendar-day b{font-size:11px}.calendar-day small{font-size:9px}.calendar-total strong{font-size:26px}
.import-table.fund-confirmations{min-width:0!important;display:block}.fund-confirmations thead{display:none}.fund-confirmations tbody{display:grid;gap:12px}.fund-confirmations tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:12px;border:1px solid var(--line);border-radius:14px}.fund-confirmations td{display:flex;flex-direction:column;gap:5px;border:0;padding:6px;min-width:0}.fund-confirmations td:before{content:attr(data-label);font-size:11px;color:var(--muted)}.fund-confirmations td:last-child{grid-column:1/-1}}
@media(prefers-color-scheme:dark){.calendar-day.gain{color:#7cd1b8}.calendar-day.loss{color:#f5a298}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.calendar-compact{display:none}.calendar-full{white-space:nowrap}
@media(max-width:600px){.calendar-full{display:none}.calendar-compact{display:inline;white-space:nowrap}.calendar-day b{font-size:11px;overflow-wrap:normal}.calendar-day{gap:7px}}
