.bills-tabs,.segmented-control{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:20px}.bills-tab,.calendar-mode{border:0;background:transparent;color:var(--muted);font:inherit;font-weight:700;padding:10px 14px;cursor:pointer;border-bottom:2px solid transparent}.bills-tab.active,.calendar-mode.active{color:var(--ink);border-color:var(--accent)}
.bill-row,.subscription-row,.match-card,.detection-card{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(110px,.7fr) minmax(110px,.7fr) minmax(120px,.8fr) auto;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--border)}.bill-name,.subscription-name{display:grid;gap:4px}.bill-name span,.subscription-name span,.bill-value span{color:var(--muted);font-size:12px}.bill-value{display:grid;gap:3px}.bill-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.match-section,.detection-section{margin-bottom:20px;padding:16px;border:1px solid var(--border);border-radius:6px;background:var(--surface)}.match-section h2,.detection-section h2{font-size:16px;margin:0 0 4px}.match-card,.detection-card{grid-template-columns:minmax(180px,1.4fr) repeat(2,minmax(100px,.6fr)) auto}.match-score,.status-pill{display:inline-flex;width:max-content;padding:3px 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:800}.price-increase{color:var(--danger);font-weight:800}.price-decrease{color:var(--accent);font-weight:800}
.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.calendar-toolbar .segmented-control{margin:0;border:1px solid var(--border);border-radius:6px;padding:3px}.calendar-mode{border:0;border-radius:4px;padding:7px 11px}.calendar-mode.active{background:var(--ink);color:white}.calendar-navigation{display:flex;align-items:center;gap:8px}.calendar-navigation input{min-height:38px}.calendar-overall{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border);margin-bottom:16px}.calendar-metric{background:var(--surface);padding:13px}.calendar-metric span{display:block;color:var(--muted);font-size:12px}.calendar-metric strong{font-size:19px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid var(--border);border-top:1px solid var(--border)}.calendar-day{min-height:118px;padding:8px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface)}.calendar-day.empty{background:var(--surface-subtle)}.calendar-date{font-size:12px;font-weight:800;margin-bottom:7px}.calendar-event{display:block;width:100%;border:0;border-left:3px solid var(--accent);background:var(--accent-soft);color:var(--ink);text-align:left;font:inherit;font-size:11px;padding:5px 6px;margin:4px 0;cursor:pointer}.calendar-event.income{border-color:#26734d;background:#e8f5ed}.calendar-event.debt_repayment,.calendar-event.bill{border-color:#a84a45;background:#f9ecea}.calendar-balances{margin-top:7px;font-size:10px;color:var(--muted)}.agenda-day{display:grid;grid-template-columns:120px 1fr auto;gap:16px;padding:12px 0;border-bottom:1px solid var(--border)}.agenda-events{display:grid;gap:6px}.agenda-event{border:0;background:transparent;text-align:left;padding:0;color:var(--ink);cursor:pointer}.agenda-flow{text-align:right;font-variant-numeric:tabular-nums}.calendar-empty{padding:30px 0;color:var(--muted)}
@media(max-width:900px){.bill-row,.subscription-row,.match-card,.detection-card{grid-template-columns:1fr 1fr}.bill-actions{grid-column:1/-1;justify-content:flex-start}.calendar-overall{grid-template-columns:1fr 1fr}.calendar-day{min-height:96px}.calendar-grid{min-width:760px}.financial-calendar-scroll{overflow-x:auto}}
@media(max-width:640px){.calendar-toolbar{align-items:stretch;flex-direction:column}.segmented-control{overflow-x:auto}.bill-row,.subscription-row,.match-card,.detection-card{grid-template-columns:1fr}.bill-actions{grid-column:auto}.calendar-overall{grid-template-columns:1fr 1fr}.agenda-day{grid-template-columns:1fr}.agenda-flow{text-align:left}.bills-tabs{overflow-x:auto}.bills-tab{white-space:nowrap}}
.calendar-detail-modal{width:min(560px,calc(100% - 28px))}.calendar-detail-body{padding:0}.calendar-detail-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:20px 18px}.calendar-detail-hero span,.calendar-detail-field span{display:block;color:var(--muted);font-size:12px}.calendar-detail-hero strong{display:block;margin-top:4px;font-size:26px;font-variant-numeric:tabular-nums}.calendar-detail-hero strong.outgoing{color:var(--danger)}.calendar-detail-hero strong.incoming{color:var(--accent)}.calendar-detail-badge{display:inline-flex;align-items:center;min-height:28px;padding:4px 8px;border-radius:4px;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:800;text-transform:capitalize}.calendar-detail-badge.outgoing{background:#f9ecea;color:var(--danger)}.calendar-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.calendar-detail-field{min-width:0;padding:13px 18px;background:var(--surface)}.calendar-detail-field strong{display:block;margin-top:4px;font-size:14px;overflow-wrap:anywhere}.calendar-detail-field.wide{grid-column:1/-1}.calendar-detail-actions{display:flex;justify-content:flex-end;gap:8px;padding:14px 18px;background:var(--surface)}
@media(max-width:640px){.calendar-navigation{display:grid;grid-template-columns:40px minmax(0,1fr) 40px}.calendar-navigation .icon-button{width:40px}.calendar-detail-modal{width:calc(100% - 20px);max-height:calc(100vh - 24px)}.calendar-detail-hero{align-items:flex-start;flex-direction:column;gap:10px;padding:17px 15px}.calendar-detail-grid{grid-template-columns:1fr}.calendar-detail-field,.calendar-detail-field.wide{grid-column:auto;padding:12px 15px}.calendar-detail-actions{position:sticky;bottom:0;padding:12px 15px}.calendar-detail-actions .button{flex:1}}
.calendar-context{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:4px 0 12px}.calendar-context>strong{font-size:17px}.calendar-legend{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:6px 12px}.calendar-legend span{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:11px;font-weight:700}.calendar-legend span::before{content:"";width:8px;height:8px;border-radius:2px;background:#86918d}.calendar-legend .today::before{background:var(--accent);box-shadow:0 0 0 2px rgba(23,107,85,.18)}.calendar-legend .scheduled::before{background:#306b91}.calendar-legend .projected::before{background:#86918d}.calendar-legend .paid::before{background:#26734d}.calendar-legend .overdue::before{background:var(--danger)}.calendar-legend .needs_confirmation::before{background:#a06b00}.calendar-day.today{position:relative;z-index:1;outline:3px solid var(--accent);outline-offset:-3px;background:#f1f8f5}.calendar-day.past:not(.today){background:#f7f8f7}.calendar-day.past:not(.today)>.calendar-date,.calendar-day.past:not(.today)>.calendar-balances{color:#87918d}.calendar-date{display:flex;align-items:center;justify-content:space-between;gap:5px}.calendar-date span{padding:2px 4px;border-radius:3px;background:var(--accent);color:#fff;font-size:9px;text-transform:uppercase}.agenda-day.today{padding:12px;border-left:4px solid var(--accent);background:#f1f8f5}.agenda-day.past{color:#68736f}.calendar-event-title,.calendar-event-meta{display:block;overflow-wrap:anywhere}.calendar-event-title{font-weight:750}.calendar-event-meta{margin-top:2px;font-size:9px;color:#59635f}.calendar-event.scheduled{border-color:#306b91;background:#edf5fa}.calendar-event.projected{border-color:#86918d;border-left-style:dashed;background:#f2f4f3}.calendar-event.paid{border-color:#26734d;background:#e8f5ed}.calendar-event.overdue{border-color:var(--danger);background:#f9e5e2}.calendar-event.needs_confirmation{border-color:#a06b00;background:#fff4dc}.calendar-event.due_today{border-color:var(--accent);background:#def0e8}.calendar-detail-badge.scheduled{background:#edf5fa;color:#285b7a}.calendar-detail-badge.projected,.calendar-detail-badge.recorded{background:#edf0ef;color:#59635f}.calendar-detail-badge.paid{background:#e8f5ed;color:#26734d}.calendar-detail-badge.overdue{background:#f9e5e2;color:var(--danger)}.calendar-detail-badge.needs_confirmation{background:#fff4dc;color:#7b5500}.calendar-detail-badge.due_today{background:#def0e8;color:var(--accent)}
@media(max-width:900px){.calendar-context{align-items:flex-start;flex-direction:column}.calendar-legend{justify-content:flex-start}}
@media(max-width:640px){.calendar-navigation{grid-template-columns:auto 40px minmax(0,1fr) 40px}.calendar-navigation #calendar-today{padding:5px 9px}.calendar-context{gap:9px}.calendar-legend{gap:5px 9px}}
