:root{--color-bg:#f7f8fa;--color-surface:#fff;--color-surface-muted:#eef2f6;--color-text:#18202a;--color-text-muted:#657384;--color-border:#d7dee8;--color-primary:#1769aa;--color-primary-hover:#12598f;--color-primary-soft:#e7f2fb;--color-primary-contrast:#fff;--color-success:#16845b;--color-success-soft:#e4f6ee;--color-warning:#a86410;--color-warning-soft:#fff2d7;--color-danger:#c2413b;--color-danger-soft:#fde7e5;--color-info:#4f6f52;--color-focus:#d78b17;--radius-sm:4px;--radius-md:8px;--shadow-sm:0 1px 2px #0f172a14;--shadow-md:0 16px 40px #0f172a1f;--sidebar-width:272px;--topbar-height:68px}[data-theme=dark]{--color-bg:#111418;--color-surface:#191f26;--color-surface-muted:#222a33;--color-text:#eef3f8;--color-text-muted:#a8b3c1;--color-border:#34404d;--color-primary:#63a8df;--color-primary-hover:#86bde9;--color-primary-soft:#173043;--color-primary-contrast:#0d1822;--color-success:#4fd39a;--color-success-soft:#153529;--color-warning:#f4bd62;--color-warning-soft:#3c2c12;--color-danger:#ef827b;--color-danger-soft:#421f1f;--color-info:#91b895;--color-focus:#f0b84f;--shadow-sm:0 1px 2px #0000003d;--shadow-md:0 16px 40px #00000052}*{box-sizing:border-box}html{background:var(--color-bg);min-width:320px}body{color:var(--color-text);background:var(--color-bg);letter-spacing:0;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}a:hover{color:var(--color-primary)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.screen-loader,.not-found{text-align:center;place-content:center;gap:16px;min-height:100vh;padding:24px;display:grid}.app-shell{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--color-border);background:var(--color-surface);height:100vh;padding:20px 16px;position:sticky;top:0;overflow-y:auto}.brand{color:var(--color-text);align-items:center;gap:10px;font-weight:800;display:inline-flex}.brand--large{font-size:1.15rem}.brand__mark{border-radius:var(--radius-md);width:34px;height:34px;color:var(--color-primary-contrast);background:var(--color-primary);place-items:center;display:inline-grid}.side-nav{gap:4px;margin-top:28px;display:grid}.side-nav__link{border-radius:var(--radius-md);min-height:42px;color:var(--color-text-muted);align-items:center;gap:10px;padding:0 12px;font-weight:650;display:flex}.side-nav__link:hover,.side-nav__link.active{color:var(--color-primary);background:var(--color-primary-soft)}.app-shell__main{min-width:0}.topbar{z-index:10;min-height:var(--topbar-height);border-bottom:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:sticky;top:0}.topbar__menu{display:none}.topbar__title{min-width:0;color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-weight:750;overflow:hidden}.topbar__actions{align-items:center;gap:8px;display:flex}.user-chip{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);max-width:220px;min-height:38px;color:var(--color-text-muted);align-items:center;gap:8px;padding:0 10px;font-weight:650;display:inline-flex;overflow:hidden}.user-chip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.content{width:min(1180px,100%);margin:0 auto;padding:28px}.page-stack{gap:20px;display:grid}.page-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-header h1{margin:0;font-size:clamp(1.55rem,2vw,2.1rem);line-height:1.1}.page-header p{max-width:760px;color:var(--color-text-muted);margin:8px 0 0}.page-header__action{flex:none}.card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);padding:18px}.card h2{margin:0 0 8px;font-size:1rem}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;display:grid}.kpi-label,.kpi-caption,.muted{color:var(--color-text-muted)}.kpi-label{font-size:.88rem;font-weight:700;display:block}.kpi-value{color:var(--color-text);margin-top:10px;font-size:1.55rem;line-height:1.1;display:block}.kpi-caption{margin-top:8px;font-size:.9rem;display:block}.kpi-card--danger{border-color:color-mix(in srgb, var(--color-danger) 35%, var(--color-border))}.kpi-card--info{border-color:color-mix(in srgb, var(--color-primary) 35%, var(--color-border))}.kpi-card--success{border-color:color-mix(in srgb, var(--color-success) 35%, var(--color-border))}.button,.icon-button{cursor:pointer;border:1px solid #0000;transition:background .16s,border-color .16s,color .16s,transform .16s}.button{border-radius:var(--radius-md);white-space:nowrap;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 14px;font-weight:750;display:inline-flex}.button:hover,.icon-button:hover{transform:translateY(-1px)}.button:disabled{cursor:wait;opacity:.65}.button--primary{color:var(--color-primary-contrast);background:var(--color-primary)}.button--primary:hover{background:var(--color-primary-hover)}.button--secondary{border-color:var(--color-border);color:var(--color-text);background:var(--color-surface)}.button--ghost{color:var(--color-text);background:0 0}.button--danger{color:#fff;background:var(--color-danger)}.icon-button{border-radius:var(--radius-md);width:40px;height:40px;color:var(--color-text);background:0 0;place-items:center;display:inline-grid}.icon-button:hover{background:var(--color-surface-muted)}.badge,.sync-pill{border-radius:999px;align-items:center;min-height:26px;padding:0 10px;font-size:.8rem;font-weight:800;display:inline-flex}.badge--neutral,.sync-pill{color:var(--color-text-muted);background:var(--color-surface-muted)}.badge--success{color:var(--color-success);background:var(--color-success-soft)}.badge--warning{color:var(--color-warning);background:var(--color-warning-soft)}.badge--danger{color:var(--color-danger);background:var(--color-danger-soft)}.badge--info{color:var(--color-info);background:var(--color-primary-soft)}.responsive-list{gap:10px;display:grid}.list-card{grid-template-columns:minmax(0,1.5fr) minmax(160px,.8fr) auto;align-items:center;gap:16px;display:grid}.home-bill-card,.credit-card-debt-card,.credit-card-card,.btc-asset-card,.loan-card{grid-template-columns:minmax(0,1.5fr) minmax(160px,.8fr) auto auto}.list-card div{gap:4px;min-width:0;display:grid}.list-card strong,.list-card span{text-overflow:ellipsis;overflow:hidden}.list-card span{color:var(--color-text-muted);font-size:.9rem}.list-card .list-card__actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.home-bill-card__meta{align-items:center;gap:6px;display:inline-flex}.action-button{border-color:var(--color-border);background:var(--color-surface)}.action-button--edit{color:var(--color-primary)}.action-button--delete{color:var(--color-danger)}.action-button--delete:hover{border-color:color-mix(in srgb, var(--color-danger) 35%, var(--color-border));background:var(--color-danger-soft)}.confirm-dialog__overlay{z-index:40;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a7a;position:fixed;inset:0}.confirm-dialog__content{z-index:50;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:min(420px,100vw - 32px);box-shadow:var(--shadow-lg);gap:14px;padding:22px 52px 22px 22px;display:grid;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.confirm-dialog__close{border-radius:var(--radius-md);width:34px;height:34px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;transition:background .16s,color .16s;display:inline-grid;position:absolute;top:12px;right:12px}.confirm-dialog__close:hover{color:var(--color-text);background:var(--color-surface-muted)}.confirm-dialog__title{color:var(--color-text);margin:0;font-size:1.1rem;line-height:1.25}.confirm-dialog__description{color:var(--color-text-muted);margin:0;line-height:1.55}.confirm-dialog__actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.quick-actions{flex-wrap:wrap;gap:10px;display:flex}.quick-actions a{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-primary);padding:10px 12px;font-weight:750}.month-filter{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-height:40px;color:var(--color-text-muted);align-items:center;gap:8px;padding:0 10px;font-size:.9rem;font-weight:750;display:inline-flex}.month-filter input{min-width:132px;color:var(--color-text);background:0 0;border:0;font-weight:750}.finance-dashboard{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);align-items:stretch;gap:16px;display:grid}.finance-dashboard__chart-card,.finance-dashboard__breakdown{min-width:0}.section-heading span{color:var(--color-text-muted);white-space:nowrap;font-size:.9rem;font-weight:750}.finance-dashboard__chart{width:100%;min-height:280px}.breakdown-list{gap:10px;display:grid}.breakdown-row{border-bottom:1px solid var(--color-border);grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 0;display:grid}.breakdown-row:last-child{border-bottom:0}.breakdown-row__marker{border-radius:999px;width:12px;height:12px}.breakdown-row span:not(.breakdown-row__marker){min-width:0;color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.alert{border:1px solid var(--color-danger);border-radius:var(--radius-md);background:var(--color-danger-soft);color:var(--color-text);gap:12px;padding:14px;display:flex}.alert strong{display:block}.alert p{color:var(--color-text-muted);margin:4px 0 0}.success-message{border:1px solid var(--color-success);border-radius:var(--radius-md);background:var(--color-success-soft);color:var(--color-text);align-items:center;gap:10px;padding:12px;font-weight:700;display:flex}.empty-state{border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);justify-items:start;gap:8px;padding:22px;display:grid}.empty-state p{color:var(--color-text-muted);margin:0}.skeleton-stack{gap:12px;display:grid}.skeleton-line{border-radius:var(--radius-md);background:linear-gradient(90deg, var(--color-surface-muted), var(--color-surface), var(--color-surface-muted));background-size:220% 100%;height:56px;animation:1.3s ease-in-out infinite skeleton}@keyframes skeleton{0%{background-position:100% 0}to{background-position:-100% 0}}.auth-page{grid-template-columns:minmax(0,1fr) minmax(360px,450px);align-items:center;gap:32px;min-height:100vh;padding:40px;display:grid}.auth-page__intro{gap:18px;max-width:680px;display:grid}.auth-page__intro h1{margin:0;font-size:clamp(2rem,4vw,4.2rem);line-height:1}.auth-page__intro p{max-width:560px;color:var(--color-text-muted);margin:0;font-size:1.06rem}.auth-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-md);padding:24px}.auth-card h2{margin:0 0 8px}.auth-card>p{color:var(--color-text-muted);margin:0 0 20px}.form{gap:14px;display:grid}.field{gap:7px;font-weight:700;display:grid}.field input,.field textarea,.field select{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);width:100%;min-height:42px;color:var(--color-text);padding:0 12px}.field small{color:var(--color-danger);font-weight:650}.auth-links{color:var(--color-primary);flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:18px;font-weight:750;display:flex}.drawer{z-index:40;position:fixed;inset:0}.drawer__backdrop{background:#0000006b;position:absolute;inset:0}.drawer__panel{background:var(--color-surface);width:min(340px,88vw);min-height:100vh;box-shadow:var(--shadow-md);padding:18px;position:relative}.drawer__header{justify-content:space-between;align-items:center;display:flex}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;display:grid}.support-admin-list{gap:14px;display:grid}.support-admin-card{gap:16px;display:grid}.support-ticket-card__reply{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);grid-column:1/-1;padding:12px}.support-ticket-card__reply span{color:var(--color-text-muted);font-size:.86rem;font-weight:800}.support-ticket-card__reply p{color:var(--color-text);white-space:pre-wrap;margin:6px 0 0;line-height:1.55}.support-admin-card__summary{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.support-admin-card__summary h2{margin:4px 0;font-size:1.08rem}.support-admin-card__badges,.support-admin-card__actions{flex-wrap:wrap;gap:8px;display:flex}.support-admin-card__badges{justify-content:flex-end}.support-admin-card__actions{justify-content:flex-start}.support-admin-card__meta{margin:0;display:grid}.support-admin-card__meta div{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);justify-content:space-between;gap:12px;padding:10px 12px;display:flex}.support-admin-card__meta dt{color:var(--color-text-muted);font-weight:700}.support-admin-card__meta dd{text-align:right;margin:0;font-weight:800}.support-admin-card__description{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);gap:8px;padding:12px;display:grid}.support-admin-card__description span{color:var(--color-text-muted);font-size:.86rem;font-weight:800}.support-admin-card__description p{color:var(--color-text);white-space:pre-wrap;margin:0;line-height:1.55}.segmented-control{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.details-list{gap:12px;margin:16px 0 0;display:grid}.details-list div{border-bottom:1px solid var(--color-border);justify-content:space-between;gap:16px;padding-bottom:10px;display:flex}.details-list dt{color:var(--color-text-muted);font-weight:700}.details-list dd{text-align:right;margin:0;font-weight:800}.section-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.section-heading h2{margin:4px 0 0;font-size:1.15rem}.due-dates-summary{margin-bottom:18px}.due-dates-period,.due-dates-split{font-size:1.2rem}.due-dates-columns{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.due-dates-column{align-content:start;gap:10px;display:grid}.due-dates-column h3{margin:0;font-size:1rem}.due-date-row{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;padding:12px;display:grid}.due-date-row>div{gap:4px;min-width:0;display:grid}.due-date-row>div:first-child{grid-column:1/-1}.due-date-row strong,.due-date-row span{overflow-wrap:break-word;min-width:0}.due-date-row span{color:var(--color-text-muted);font-size:.9rem}.due-date-row__actions{align-self:center;justify-items:end}.due-date-row__actions .button{min-height:34px;padding:0 10px;font-size:.86rem}.btc-asset-form{grid-template-columns:minmax(190px,1.4fr) minmax(150px,.8fr) minmax(150px,.8fr) minmax(150px,.8fr) minmax(90px,.4fr) auto;align-items:end;gap:12px;display:grid}.btc-balance-metric{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);padding:16px}.btc-balance-details dd{overflow-wrap:anywhere}@media (width<=1023px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.topbar__menu{display:inline-grid}.content{padding:22px}.due-dates-columns,.finance-dashboard{grid-template-columns:1fr}}@media (width<=720px){.topbar{min-height:60px;padding:0 12px}.topbar__title{display:none}.user-chip{max-width:120px}.content{padding:18px 14px 28px}.page-header{display:grid}.page-header__action,.page-header__action .button,.page-header__action a{width:100%}.month-filter{justify-content:space-between;width:100%}.month-filter input{min-width:0}.finance-dashboard__chart{min-height:240px}.breakdown-row{grid-template-columns:12px minmax(0,1fr)}.breakdown-row strong{grid-column:2}.list-card{grid-template-columns:1fr;align-items:start}.list-card .list-card__actions{justify-content:flex-start}.btc-asset-form{grid-template-columns:1fr}.due-date-row{grid-template-columns:1fr;align-items:start}.due-date-row__actions{justify-items:start}.auth-page{grid-template-columns:1fr;align-items:start;padding:24px 14px}.auth-page__intro{gap:12px}.auth-page__intro h1{font-size:2rem}.auth-card{padding:18px}.segmented-control .button{flex:110px}.support-admin-card__summary{display:grid}.support-admin-card__badges,.support-admin-card__actions,.support-admin-card__actions .button{width:100%}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}
