@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700;900&family=Kumbh+Sans:wght@400;500;600;700&display=swap');

/* ── Root ── */
#bc-root { max-width: 780px; margin: 0 auto; font-family: 'Kumbh Sans','Roboto',sans-serif; }
#bc-root * { box-sizing: border-box; }

/* ── Card ── */
.bc-card { background:#fff; border-radius:16px; box-shadow:0 4px 24px rgba(19,30,59,.10); border:1px solid #dde3f0; overflow:hidden; }

/* ── Header ── */
.bc-header { background:#131e3b; padding:22px 28px 18px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.bc-header-left { flex:1; }
.bc-eyebrow { font-size:.63rem; letter-spacing:.15em; text-transform:uppercase; color:rgba(255,255,255,.45); font-weight:700; margin-bottom:4px; }
.bc-header h2 { font-size:1.2rem; font-weight:700; color:#fff; line-height:1.2; }

/* Donut */
.bc-donut-wrap { position:relative; width:90px; height:90px; flex-shrink:0; }
.bc-donut-svg { width:100%; height:100%; }
.bc-donut-bg { fill:none; stroke:rgba(255,255,255,.12); stroke-width:10; }
.bc-donut-fill { fill:none; stroke:#16a34a; stroke-width:10; stroke-linecap:round; stroke-dasharray:283; stroke-dashoffset:283; transform:rotate(-90deg); transform-origin:55px 55px; transition:stroke-dashoffset .6s ease, stroke .4s; }
.bc-donut-inner { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.bc-donut-pct { font-size:1.05rem; font-weight:900; color:#fff; font-family:'Roboto',sans-serif; line-height:1; }
.bc-donut-lbl { font-size:.55rem; color:rgba(255,255,255,.5); text-transform:uppercase; letter-spacing:.08em; }

/* ── Tabs ── */
.bc-tabs { display:flex; border-bottom:1px solid #f0f2f7; padding:0 24px; }
.bc-tab { background:none; border:none; border-bottom:2px solid transparent; padding:14px 18px; font-family:'Kumbh Sans','Roboto',sans-serif; font-size:.88rem; font-weight:600; color:#9ca3af; cursor:pointer; transition:color .2s, border-color .2s; }
.bc-tab.active { color:#131e3b; border-bottom-color:#131e3b; }
.bc-tab:hover { color:#131e3b; }

/* ── Panels ── */
.bc-panel { display:none; }
.bc-panel.active { display:block; }

/* ── Month selector ── */
.bc-month-row { display:flex; align-items:center; gap:12px; padding:16px 24px 8px; }
.bc-month-label { font-size:.78rem; font-weight:700; color:#131e3b; }
.bc-month-select { border:1px solid #dde3f0; border-radius:8px; padding:8px 12px; font-family:'Kumbh Sans',sans-serif; font-size:.85rem; color:#131e3b; background:#fff; cursor:pointer; outline:none; }
.bc-month-select:focus { border-color:#131e3b; }

/* ── Section title ── */
.bc-section-title { font-size:.65rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em; color:#9ca3af; padding:16px 24px 8px; }

/* ── Income row ── */
.bc-income-row { padding:0 24px 8px; }
.bc-income-hint { font-size:.72rem; color:#16a34a; font-weight:600; margin-bottom:8px; display:block; }
.bc-income-field { display:flex; align-items:center; gap:0; max-width:280px; border:2px solid #dde3f0; border-radius:10px; overflow:hidden; background:#fff; transition:border-color .2s; }
.bc-income-field:focus-within { border-color:#131e3b; }
.bc-prefix { padding:12px 10px 12px 14px; background:#f8f9ff; color:#9ca3af; font-weight:700; font-size:.9rem; border-right:1px solid #dde3f0; flex-shrink:0; }
.bc-income-input { flex:1; border:none; outline:none; padding:9px 14px; font-family:'Kumbh Sans','Roboto',sans-serif; font-size:1rem; font-weight:700; color:#131e3b; background:#fff;    margin: 0px; }

/* ── Categories ── */
.bc-categories { padding:0 24px 8px; display:flex; flex-direction:column; gap:2px; }
.bc-cat-row { display:flex; align-items:center; gap:12px; padding:10px 16px; border-radius:10px; transition:background .15s; }
.bc-cat-row:hover { background:#f8f9ff; }
.bc-cat-icon { font-size:1.3rem; flex-shrink:0; width:30px; text-align:center; }
.bc-cat-info { flex:1; min-width:0; }
.bc-cat-label { font-size:.88rem; font-weight:600; color:#131e3b; }
.bc-cat-suggested { font-size:.68rem; color:#9ca3af; margin-top:1px; }
.bc-cat-field { display:flex; align-items:center; border:1px solid #dde3f0; border-radius:8px; overflow:hidden; width:130px; flex-shrink:0; background:#fff; transition:border-color .2s; }
.bc-cat-field:focus-within { border-color:#131e3b; }
.bc-cat-field .bc-prefix { padding:8px 8px; font-size:.82rem; border-right:1px solid #dde3f0; }
.bc-cat-input { flex:1; border:none; outline:none; padding:8px 10px; font-family:'Kumbh Sans','Roboto',sans-serif; font-size:.88rem; font-weight:600; color:#131e3b;     width: 80px;
    margin: 0px; }
.bc-cat-pct { width:36px; text-align:right; font-size:.75rem; font-weight:700; color:#9ca3af; flex-shrink:0; }

/* ── Stats bar ── */
.bc-stats-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:#dde3f0; margin:16px 24px; border-radius:12px; overflow:hidden; }
.bc-stat-item { background:#f8f9ff; padding:14px; text-align:center; }
.bc-stat-val { display:block; font-size:1.15rem; font-weight:900; font-family:'Roboto',sans-serif; color:#131e3b; line-height:1; margin-bottom:4px; transition:color .3s; }
.bc-stat-lbl { font-size:.62rem; text-transform:uppercase; letter-spacing:.1em; color:#9ca3af; font-weight:700; }

/* ── Actions ── */
.bc-actions { display:flex; align-items:center; gap:16px; padding:16px 24px 24px; border-top:1px solid #f0f2f7; }
.bc-save-btn { background:#131e3b; color:#fff; border:none; border-radius:10px; padding:13px 28px; font-family:'Kumbh Sans','Roboto',sans-serif; font-weight:700; font-size:.9rem; cursor:pointer; transition:background .2s; }
.bc-save-btn:hover { background:#1c2d57; }
.bc-save-btn:disabled { background:#9ca3af; cursor:not-allowed; }
.bc-save-msg { font-size:.82rem; font-weight:700; color:#16a34a; opacity:0; transition:opacity .3s; }
.bc-save-msg.show { opacity:1; }

/* ── Summary panel ── */
.bc-sum-totals { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:#dde3f0; margin:20px 24px 16px; border-radius:12px; overflow:hidden; }
.bc-sum-total-item { background:#f8f9ff; padding:16px; text-align:center; }
.bc-sum-total-val { display:block; font-size:1.15rem; font-weight:900; font-family:'Roboto',sans-serif; color:#131e3b; margin-bottom:4px; }
.bc-sum-total-lbl { font-size:.62rem; text-transform:uppercase; letter-spacing:.1em; color:#9ca3af; font-weight:700; }

.bc-sum-bars { padding:0 24px 24px; }
.bc-sum-row { display:flex; align-items:center; gap:12px; padding:8px 0; border-bottom:1px solid #f0f2f7; }
.bc-sum-row:last-child { border-bottom:none; }
.bc-sum-label { display:flex; align-items:center; gap:8px; width:160px; flex-shrink:0; }
.bc-sum-icon { font-size:1rem; }
.bc-sum-label span:last-child { font-size:.82rem; font-weight:600; color:#131e3b; }
.bc-sum-bar-track { flex:1; height:8px; background:#e8edf5; border-radius:99px; overflow:hidden; }
.bc-sum-bar-fill { height:100%; background:#131e3b; border-radius:99px; transition:width .5s ease; }
.bc-sum-amounts { display:flex; flex-direction:column; align-items:flex-end; gap:1px; flex-shrink:0; width:70px; }
.bc-sum-amt { font-size:.82rem; font-weight:700; color:#131e3b; }
.bc-sum-pct { font-size:.68rem; color:#9ca3af; }
.bc-summary-empty { padding:32px 24px; text-align:center; color:#9ca3af; font-size:.88rem; }

/* ── Widget styles ── */
.bc-widget-body { padding:16px 20px 0; }
.bc-widget-empty { text-align:center; color:#9ca3af; font-size:.82rem; padding:20px; }
.bc-widget-amounts { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:12px; }
.bc-widget-stat { text-align:center; }
.bc-widget-val { display:block; font-size:1.05rem; font-weight:900; font-family:'Roboto',sans-serif; line-height:1; margin-bottom:3px; }
.bc-widget-lbl { font-size:.62rem; text-transform:uppercase; letter-spacing:.08em; color:#9ca3af; font-weight:700; }
.bc-widget-bar-wrap { display:flex; align-items:center; gap:8px; margin-bottom:0; padding:0 0 12px; }
.bc-widget-bar-track { flex:1; height:7px; background:#e8edf5; border-radius:99px; overflow:hidden; }
.bc-widget-bar-fill { height:100%; border-radius:99px; transition:width .5s ease; }
.bc-widget-pct { font-size:.72rem; font-weight:700; color:#131e3b; min-width:32px; text-align:right; }

/* ── Login ── */
.bc-login { padding:20px; text-align:center; color:#6b7280; }

/* ── Responsive ── */
@media(max-width:600px) {
    .bc-header { padding:16px; }
    .bc-cat-row { padding:8px; }
    .bc-cat-field { width:110px; }
    .bc-sum-label { width:120px; }
    .bc-stats-bar { margin:12px 16px; }
    .bc-actions { padding:12px 16px 20px; }
    .bc-categories { padding:0 16px 8px; }
}
