/* ==========================================================================
   BillzFlow — shared stylesheet
   --------------------------------------------------------------------------
   Every page links this via includes/head.php. No page carries an inline
   <style> block any more — this file is the whole design system.

   Structure:
     1. Tokens, reset, and base layout          (hand-written)
     2. Shared components                       — rules that were byte-identical
                                                  across pages, hoisted once
     3. Navigation                              — moved out of includes/nav.php
     4. Page-scoped blocks (.page-<name> ...)   — rules that genuinely differed
                                                  between pages, kept exact

   Every <body> carries a .page-<name> class. That is what lets section 4
   target one page without colliding with another: .page-bills .container is
   more specific than .container, so each page keeps precisely the styling it
   had before this was consolidated.

   Cache-busted with ?v=APP_VERSION, so bumping the version in config.php
   pushes new CSS the same way it pushes a new service worker.
   ========================================================================== */

:root {
    --dark:        #0f172a;
    --card:        #1e293b;
    --border:      #334155;
    --blue:        #38bdf8;
    --blue-light:  #7dd3fc;
    --gray:        #94a3b8;
    --gray-dim:    #64748b;
    --light:       #f1f5f9;
    --green:       #4ade80;
    --red:         #f87171;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
    font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
    background: var(--dark);
    color: var(--light);
    min-height: 100vh;
}

/* The two centred auth pages put the flex box on <body> itself. */
body.page-login,
body.page-register {
    display: flex;
    justify-content: center;
    align-items: center;
}

/* ── Layout ──
   Each page's <body> carries a .page-<name> class, which is how the widths
   below (and the page-scoped rules further down this file) target one page
   without a naming collision. */
.container { max-width: 700px; margin: 0 auto; padding: 30px 24px; }
.container.narrow { max-width: 600px; }
.container.wide   { max-width: 800px; }

.page-add-bill      .container,
.page-edit-bill     .container,
.page-edit-debt     .container,
.page-edit-instance .container { max-width: 600px; }

.page-dashboard .container { max-width: 800px; }
.page-settings  .container { max-width: 700px; }
.page-bills     .container,
.page-debt      .container { max-width: 1100px; }

.page-header    { margin-bottom: 30px; }
.page-header h2 { font-size: 1.8rem; color: var(--light); }
.page-header p  { color: var(--gray); margin-top: 4px; }

.section {
    background: var(--card);
    border-radius: 12px;
    border: 1px solid var(--border);
    padding: 24px;
    margin-bottom: 20px;
}
.section h3 {
    font-size: 1rem;
    font-weight: 700;
    color: var(--light);
    margin-bottom: 20px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border);
}

/* ── Centered auth pages (login, register, reset) ── */
.auth-wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    padding: 24px;
}
.auth-box {
    background: var(--card);
    padding: 40px;
    border-radius: 16px;
    width: 100%;
    max-width: 400px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
}
.logo   { text-align: center; margin-bottom: 30px; }
.logo h1 { font-size: 2rem; color: var(--blue); font-weight: 700; }
.logo p  { color: var(--gray); font-size: 0.9rem; margin-top: 4px; }

.auth-link {
    text-align: center;
    margin-top: 20px;
    color: var(--gray);
    font-size: 0.85rem;
}
.auth-link a       { color: var(--blue); text-decoration: none; }
.auth-link a:hover { text-decoration: underline; }

/* ── Forms ── */
.form-group { margin-bottom: 16px; }

label {
    display: block;
    margin-bottom: 6px;
    color: var(--gray);
    font-size: 0.85rem;
}

input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="url"],
input[type="date"],
select,
textarea {
    width: 100%;
    padding: 12px 16px;
    background: var(--dark);
    border: 1px solid var(--border);
    border-radius: 8px;
    color: var(--light);
    font-size: 1rem;
    font-family: inherit;
    transition: border-color 0.2s;
}
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--blue); }

.hint { color: var(--gray-dim); font-size: 0.8rem; margin-top: 6px; }

/* ── Buttons ── */
.btn {
    padding: 12px 24px;
    background: var(--blue);
    color: var(--dark);
    border: none;
    border-radius: 8px;
    font-size: 0.95rem;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit;
    transition: background 0.2s;
}
.btn:hover { background: var(--blue-light); }
.btn.full  { width: 100%; padding: 14px; font-size: 1rem; }

.btn-danger {
    padding: 12px 24px;
    background: transparent;
    color: var(--red);
    border: 1px solid var(--red);
    border-radius: 8px;
    font-size: 0.95rem;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit;
    text-decoration: none;
    display: inline-block;
    transition: all 0.2s;
}
.btn-danger:hover { background: #dc2626; color: #fff; }

/* ── Messages ── */
.error, .success {
    padding: 10px 16px;
    border-radius: 8px;
    margin-bottom: 20px;
    font-size: 0.9rem;
    color: #fff;
}
.error   { background: #dc2626; }
.success { background: #16a34a; }

/* ── Misc ── */
.version { text-align: center; margin-top: 40px; color: var(--border); font-size: 0.75rem; }

/* ==========================================================================
   SHARED COMPONENTS — identical on every page that used them.
   31 rules that were previously duplicated across the site.
   ========================================================================== */

* {
    margin:0;padding:0;box-sizing:border-box;
}
label {
    display:block;margin-bottom:6px;color:#94a3b8;font-size:0.85rem;
}
input, select, textarea {
    width:100%;padding:12px 16px;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#f1f5f9;font-size:1rem;transition:border-color 0.2s;font-family:inherit;
}
input:focus, select:focus, textarea:focus {
    outline:none;border-color:#38bdf8;
}
select option {
    background:#1e293b;
}
textarea {
    resize:vertical;height:80px;
}
.btn:hover {
    background:#7dd3fc;
}
.btn-back {
    display:inline-block;margin-bottom:20px;color:#94a3b8;text-decoration:none;font-size:0.9rem;
}
.btn-back:hover {
    color:#38bdf8;
}
.error {
    background:#dc2626;color:white;padding:10px 16px;border-radius:8px;margin-bottom:20px;font-size:0.9rem;
}
.success {
    background:#16a34a;color:white;padding:10px 16px;border-radius:8px;margin-bottom:20px;font-size:0.9rem;
}
.debt-fields {
    display:none;background:rgba(56,189,248,0.05);border:1px solid rgba(56,189,248,0.2);border-radius:10px;padding:16px;margin-bottom:20px;
}
.debt-fields.visible {
    display:block;
}
.debt-fields-header {
    font-size:0.85rem;font-weight:700;color:#38bdf8;margin-bottom:14px;
}
.hint {
    color:#64748b;font-size:0.8rem;margin-top:6px;
}
.search-form {
    display:flex;gap:10px;align-items:center;margin-bottom:18px;
}
.search-form input {
    flex:1;padding:12px 16px;background:#1e293b;border:1px solid #334155;border-radius:10px;color:#f1f5f9;font-size:0.95rem;font-family:inherit;transition:border-color 0.2s;
}
.search-form input::placeholder {
    color:#64748b;
}
.search-form input:focus {
    outline:none;border-color:#38bdf8;
}
.search-clear {
    color:#94a3b8;text-decoration:none;padding:10px 14px;border-radius:8px;font-size:0.9rem;font-weight:600;background:#1e293b;border:1px solid #334155;transition:all 0.2s;
}
.search-clear:hover {
    color:#f1f5f9;border-color:#475569;
}
.search-info {
    background:rgba(56,189,248,0.06);border:1px solid rgba(56,189,248,0.25);color:#94a3b8;padding:10px 14px;border-radius:8px;margin-bottom:14px;font-size:0.9rem;
}
.search-info strong {
    color:#38bdf8;
}
.btn-add:hover {
    background:#7dd3fc;
}
.btn-delete:hover {
    background:#dc2626;color:white;
}
input:focus {
    outline:none;border-color:#38bdf8;
}
.checkbox-row input[type="checkbox"] {
    width:18px;height:18px;cursor:pointer;accent-color:#38bdf8;
}
.checkbox-row label {
    margin:0;color:#f1f5f9;cursor:pointer;font-size:0.95rem;
}
.logo {
    text-align:center;margin-bottom:30px;
}
.logo h1 {
    font-size:2rem;color:#38bdf8;font-weight:700;
}
.logo p {
    color:#94a3b8;font-size:0.9rem;margin-top:4px;
}

/* ==========================================================================
   NAVIGATION — moved out of includes/nav.php
   ========================================================================== */
/* ── TOP NAV ── */
.top-nav {
    background: #1e293b;
    padding: 16px 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #334155;
    position: sticky;
    top: 0;
    z-index: 50;
}
.nav-logo {
    font-size: 1.4rem;
    font-weight: 800;
    color: #38bdf8;
    letter-spacing: -0.02em;
}
.nav-links { display: flex; gap: 8px; align-items: center; }
.nav-links a {
    color: #94a3b8;
    text-decoration: none;
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 0.9rem;
    font-weight: 600;
    transition: all 0.2s;
}
.nav-links a:hover  { color: #f1f5f9; background: #334155; }
.nav-links a.active { color: #38bdf8; background: rgba(56,189,248,0.1); }

/* ── BOTTOM NAV (mobile) ── */
.bottom-nav { display: none; }

@media (max-width: 768px) {
    .top-nav .nav-links { display: none; }
    .top-nav            { justify-content: center; padding: 14px 24px; }
    .bottom-nav {
        display: flex;
        position: fixed;
        bottom: 0; left: 0; right: 0;
        background: #1e293b;
        border-top: 1px solid #334155;
        padding: 8px 0 max(8px, env(safe-area-inset-bottom));
        justify-content: space-around;
        z-index: 100;
    }
    .bottom-tab {
        flex: 1;
        text-align: center;
        padding: 10px 4px;
        color: #94a3b8;
        text-decoration: none;
        font-size: 0.7rem;
        font-weight: 600;
        transition: color 0.2s;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 4px;
    }
    .bottom-tab.active { color: #38bdf8; }
    .bottom-label { font-size: 0.85rem; font-weight: 700; }
    body { padding-bottom: 70px; }
}


/* ── page: add-bill ─────────────────────────────────────────────── */
.page-add-bill .page-header {
    margin-bottom:30px;
}
.page-add-bill .page-header h2 {
    font-size:1.8rem;color:#f1f5f9;
}
.page-add-bill .page-header p {
    color:#94a3b8;margin-top:4px;
}
.page-add-bill .form-box {
    background:#1e293b;padding:30px;border-radius:12px;border:1px solid #334155;
}
.page-add-bill .form-group {
    margin-bottom:20px;
}
.page-add-bill .form-row {
    display:grid;grid-template-columns:1fr 1fr;gap:16px;
}
.page-add-bill .btn {
    width:100%;padding:14px;background:#38bdf8;color:#0f172a;border:none;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:background 0.2s;margin-top:10px;
}
.page-add-bill .version {
    text-align:center;margin-top:40px;color:#334155;font-size:0.75rem;
}

/* ── page: bills ─────────────────────────────────────────────── */
.page-bills .page-header {
    margin-bottom:30px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;
}
.page-bills .page-header h2 {
    font-size:1.8rem;color:#f1f5f9;
}
.page-bills .page-header p {
    color:#94a3b8;margin-top:4px;
}
.page-bills .btn-add {
    display:inline-block;padding:12px 24px;background:#38bdf8;color:#0f172a;border-radius:8px;text-decoration:none;font-weight:700;font-size:0.95rem;transition:background 0.2s;white-space:nowrap;
}
.page-bills .bills-table {
    background:#1e293b;border-radius:12px;border:1px solid #334155;overflow-x:auto;-webkit-overflow-scrolling:touch;
}
.page-bills .bills-table table {
    width:100%;min-width:500px;border-collapse:collapse;
}
.page-bills .bills-table th {
    background:#0f172a;padding:14px 20px;text-align:left;color:#94a3b8;font-size:0.8rem;text-transform:uppercase;letter-spacing:0.05em;
}
.page-bills .bills-table td {
    padding:16px 20px;border-top:1px solid #334155;font-size:0.95rem;
}
.page-bills .bills-table tr:hover td {
    background:#0f172a;
}
.page-bills .category-badge {
    display:inline-block;padding:3px 10px;border-radius:20px;font-size:0.75rem;font-weight:600;background:#0f172a;color:#94a3b8;border:1px solid #334155;
}
.page-bills .category-badge.cc {
    background:rgba(56,189,248,0.1);color:#38bdf8;border-color:rgba(56,189,248,0.3);
}
.page-bills .category-badge.loan {
    background:rgba(167,139,250,0.1);color:#a78bfa;border-color:rgba(167,139,250,0.3);
}
.page-bills .freq-badge {
    display:inline-block;padding:3px 10px;border-radius:20px;font-size:0.75rem;font-weight:600;background:rgba(71,85,105,0.3);color:#94a3b8;border:1px solid #334155;
}
.page-bills .empty-state {
    text-align:center;padding:60px 20px;color:#94a3b8;
}
.page-bills .empty-state p {
    margin-bottom:20px;
}
.page-bills .bill-count {
    display:inline-block;background:#334155;color:#94a3b8;padding:3px 10px;border-radius:20px;font-size:0.8rem;margin-left:10px;vertical-align:middle;
}
.page-bills .version {
    text-align:center;margin-top:40px;color:#334155;font-size:0.75rem;
}

/* ── page: dashboard ─────────────────────────────────────────────── */
.page-dashboard .page-header {
    margin-bottom:24px;
}
.page-dashboard .page-header h2 {
    font-size:1.6rem;color:#f1f5f9;font-weight:800;
}
.page-dashboard .page-header p {
    color:#94a3b8;margin-top:4px;font-size:0.9rem;
}
.page-dashboard .bill-list {
    display:flex;flex-direction:column;gap:10px;
}
.page-dashboard .bill-item {
    background:#1e293b;border:1px solid #334155;border-radius:12px;padding:16px 20px;display:flex;align-items:center;gap:16px;transition:border-color 0.2s;
}
.page-dashboard .bill-item:hover {
    border-color:#475569;
}
.page-dashboard .bill-item.overdue {
    border-left:3px solid #ef4444;
}
.page-dashboard .bill-item.today {
    border-left:3px solid #f59e0b;
}
.page-dashboard .bill-item.soon {
    border-left:3px solid #fcd34d;
}
.page-dashboard .bill-item.paid {
    opacity:0.5;
}
.page-dashboard .bill-date {
    text-align:center;min-width:52px;
}
.page-dashboard .bill-date .month {
    font-size:0.7rem;text-transform:uppercase;letter-spacing:0.08em;color:#94a3b8;font-weight:600;
}
.page-dashboard .bill-date .day {
    font-size:1.6rem;font-weight:800;color:#f1f5f9;line-height:1;
}
.page-dashboard .bill-item.overdue .bill-date .day {
    color:#ef4444;
}
.page-dashboard .bill-item.today   .bill-date .day {
    color:#f59e0b;
}
.page-dashboard .bill-item.soon    .bill-date .day {
    color:#fcd34d;
}
.page-dashboard .bill-item.paid    .bill-date .day {
    color:#4ade80;
}
.page-dashboard .bill-divider {
    width:1px;height:40px;background:#334155;flex-shrink:0;
}
.page-dashboard .bill-info {
    flex:1;min-width:0;
}
.page-dashboard .bill-name {
    font-weight:700;font-size:1rem;color:#f1f5f9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.page-dashboard .bill-meta {
    font-size:0.8rem;color:#94a3b8;margin-top:3px;
}
.page-dashboard .bill-badge {
    font-size:0.7rem;font-weight:700;padding:3px 8px;border-radius:20px;white-space:nowrap;flex-shrink:0;
}
.page-dashboard .badge-overdue {
    background:#7f1d1d;color:#fca5a5;
}
.page-dashboard .badge-today {
    background:#78350f;color:#fcd34d;
}
.page-dashboard .badge-soon {
    background:#713f12;color:#fde68a;
}
.page-dashboard .badge-upcoming {
    background:#1e3a5f;color:#93c5fd;
}
.page-dashboard .badge-paid {
    background:#14532d;color:#86efac;
}
.page-dashboard .bill-amount {
    font-size:1.1rem;font-weight:800;color:#f1f5f9;white-space:nowrap;flex-shrink:0;
}
.page-dashboard .bill-actions {
    display:flex;gap:8px;flex-shrink:0;
}
.page-dashboard .bill-actions a, .page-dashboard .bill-actions button {
    font-size:0.8rem;font-weight:600;text-decoration:none;padding:6px 12px;border-radius:6px;transition:all 0.2s;white-space:nowrap;cursor:pointer;border:1px solid transparent;font-family:inherit;
}
.page-dashboard .btn-pay-now {
    background:rgba(56,189,248,0.1);color:#38bdf8;border:1px solid rgba(56,189,248,0.3);
}
.page-dashboard .btn-pay-now:hover {
    background:#38bdf8;color:#0f172a;
}
.page-dashboard .btn-mark-paid {
    background:rgba(74,222,128,0.1);color:#4ade80;border:1px solid rgba(74,222,128,0.3);
}
.page-dashboard .btn-mark-paid:hover {
    background:#4ade80;color:#0f172a;
}
.page-dashboard .btn-mark-unpaid {
    background:rgba(248,113,113,0.1);color:#f87171;border:1px solid rgba(248,113,113,0.3);
}
.page-dashboard .btn-mark-unpaid:hover {
    background:#f87171;color:white;
}
.page-dashboard .btn-edit-instance {
    background:rgba(148,163,184,0.1);color:#94a3b8;border:1px solid rgba(148,163,184,0.3);
}
.page-dashboard .btn-edit-instance:hover {
    background:#94a3b8;color:#0f172a;
}
.page-dashboard .empty-state {
    text-align:center;padding:80px 20px;color:#94a3b8;
}
.page-dashboard .empty-state h3 {
    font-size:1.2rem;margin-bottom:8px;color:#f1f5f9;
}
.page-dashboard .empty-state p {
    margin-bottom:24px;
}
.page-dashboard .btn-add {
    display:inline-block;padding:12px 24px;background:#38bdf8;color:#0f172a;border-radius:8px;text-decoration:none;font-weight:700;font-size:0.95rem;transition:background 0.2s;
}
.page-dashboard .section-divider {
    font-size:0.75rem;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;color:#475569;padding:8px 0 4px;
}
.page-dashboard .version {
    text-align:center;margin-top:40px;color:#334155;font-size:0.75rem;
}
.page-dashboard .inline-form {
    display:inline;margin:0;padding:0;
}
@media (max-width: 640px) {
    .page-dashboard .container {
        padding:20px 14px;
    }
    .page-dashboard .bill-item {
        display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"date info amount" "date badge badge" "acts acts acts";gap:6px 14px;padding:14px 16px;
    }
    .page-dashboard .bill-date {
        grid-area:date;min-width:auto;
    }
    .page-dashboard .bill-divider {
        display:none;
    }
    .page-dashboard .bill-info {
        grid-area:info;min-width:0;
    }
    .page-dashboard .bill-name {
        font-size:0.98rem;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.2;
    }
    .page-dashboard .bill-meta {
        font-size:0.78rem;
    }
    .page-dashboard .bill-badge {
        grid-area:badge;justify-self:start;
    }
    .page-dashboard .bill-amount {
        grid-area:amount;font-size:1.1rem;justify-self:end;align-self:start;
    }
    .page-dashboard .bill-actions {
        grid-area:acts;width:100%;justify-content:flex-end;margin-top:6px;padding-top:10px;border-top:1px solid #334155;gap:6px;
    }
    .page-dashboard .bill-actions a, .page-dashboard .bill-actions button {
        font-size:0.78rem;padding:7px 10px;
    }
}

/* ── page: debt ─────────────────────────────────────────────── */
.page-debt .page-header {
    margin-bottom:30px;
}
.page-debt .page-header h2 {
    font-size:1.8rem;color:#f1f5f9;
}
.page-debt .page-header p {
    color:#94a3b8;margin-top:4px;
}
.page-debt .cards {
    display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:30px;
}
.page-debt .card {
    background:#1e293b;padding:24px;border-radius:12px;border:1px solid #334155;
}
.page-debt .card h3 {
    color:#94a3b8;font-size:0.85rem;text-transform:uppercase;letter-spacing:0.05em;margin-bottom:8px;
}
.page-debt .card .amount {
    font-size:2rem;font-weight:700;color:#f87171;
}
.page-debt .card.good .amount {
    color:#4ade80;
}
.page-debt .card.info .amount {
    color:#38bdf8;
}
.page-debt .form-box {
    background:#1e293b;padding:30px;border-radius:12px;border:1px solid #334155;margin-bottom:30px;
}
.page-debt .form-box h3 {
    font-size:1.1rem;margin-bottom:20px;color:#f1f5f9;
}
.page-debt .form-row {
    display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;align-items:end;
}
.page-debt .form-group {
    margin-bottom:0;
}
.page-debt input, .page-debt select {
    width:100%;padding:12px 16px;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#f1f5f9;font-size:1rem;transition:border-color 0.2s;font-family:inherit;
}
.page-debt input:focus, .page-debt select:focus {
    outline:none;border-color:#38bdf8;
}
.page-debt .btn {
    padding:12px 24px;background:#38bdf8;color:#0f172a;border:none;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:background 0.2s;white-space:nowrap;font-family:inherit;
}
.page-debt .section-title {
    font-size:1.2rem;font-weight:700;margin-bottom:16px;color:#f1f5f9;display:flex;align-items:center;gap:10px;
}
.page-debt .snowball-label {
    background:#38bdf8;color:#0f172a;padding:2px 10px;border-radius:20px;font-size:0.75rem;font-weight:700;
}
.page-debt .debt-card {
    background:#1e293b;border-radius:12px;border:1px solid #334155;padding:24px;margin-bottom:16px;position:relative;
}
.page-debt .debt-card.first {
    border-color:#38bdf8;box-shadow:0 0 20px rgba(56,189,248,0.1);
}
.page-debt .debt-card-header {
    display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;gap:16px;flex-wrap:wrap;
}
.page-debt .debt-name {
    font-size:1.1rem;font-weight:700;color:#f1f5f9;
}
.page-debt .debt-meta {
    color:#94a3b8;font-size:0.85rem;margin-top:4px;
}
.page-debt .debt-actions {
    display:flex;align-items:center;gap:12px;flex-wrap:wrap;
}
.page-debt .debt-actions a, .page-debt .debt-actions button {
    background:none;border:none;padding:0;color:#94a3b8;text-decoration:none;font-size:0.85rem;font-weight:600;cursor:pointer;transition:color 0.2s;font-family:inherit;
}
.page-debt .debt-actions a:hover, .page-debt .debt-actions button:hover {
    color:#38bdf8;
}
.page-debt .debt-actions .payoff {
    color:#4ade80;
}
.page-debt .debt-actions .payoff:hover {
    color:#86efac;
}
.page-debt .debt-actions .delete {
    color:#f87171;
}
.page-debt .debt-actions .delete:hover {
    color:#fca5a5;
}
.page-debt .debt-actions .pay-now {
    color:#4ade80;font-weight:700;
}
.page-debt .debt-actions form {
    display:inline;margin:0;padding:0;
}
.page-debt .debt-stats {
    display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:16px;margin-bottom:16px;
}
.page-debt .debt-stat h4 {
    color:#94a3b8;font-size:0.75rem;text-transform:uppercase;letter-spacing:0.05em;margin-bottom:4px;
}
.page-debt .debt-stat p {
    font-size:1.1rem;font-weight:700;color:#f1f5f9;
}
.page-debt .debt-stat p.highlight {
    color:#38bdf8;
}
.page-debt .progress-label {
    display:flex;justify-content:space-between;margin-bottom:6px;font-size:0.8rem;color:#94a3b8;
}
.page-debt .progress-bar {
    background:#0f172a;border-radius:99px;height:8px;overflow:hidden;
}
.page-debt .progress-fill {
    height:100%;border-radius:99px;background:linear-gradient(90deg,#38bdf8,#818cf8);transition:width 0.3s;
}
.page-debt .debt-card.first .progress-fill {
    background:linear-gradient(90deg,#38bdf8,#4ade80);
}
.page-debt .attack-badge {
    position:absolute;top:16px;right:16px;background:#38bdf8;color:#0f172a;padding:4px 12px;border-radius:20px;font-size:0.75rem;font-weight:700;
}
.page-debt .paid-off-section {
    margin-top:40px;
}
.page-debt .paid-off-card {
    background:#14532d22;border:1px solid #14532d;border-radius:12px;padding:16px 24px;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center;
}
.page-debt .paid-off-card h4 {
    color:#4ade80;
}
.page-debt .paid-off-card p {
    color:#94a3b8;font-size:0.85rem;
}
.page-debt .empty-state {
    text-align:center;padding:60px 20px;color:#94a3b8;
}
.page-debt .version {
    text-align:center;margin-top:40px;color:#334155;font-size:0.75rem;
}

/* ── page: edit-bill ─────────────────────────────────────────────── */
.page-edit-bill .page-header {
    margin-bottom:30px;
}
.page-edit-bill .page-header h2 {
    font-size:1.8rem;color:#f1f5f9;
}
.page-edit-bill .page-header p {
    color:#94a3b8;margin-top:4px;
}
.page-edit-bill .form-box {
    background:#1e293b;padding:30px;border-radius:12px;border:1px solid #334155;
}
.page-edit-bill .form-group {
    margin-bottom:20px;
}
.page-edit-bill .form-row {
    display:grid;grid-template-columns:1fr 1fr;gap:16px;
}
.page-edit-bill .scope-selector {
    background:#0f172a;border:1px solid #334155;border-radius:10px;padding:16px;margin-bottom:20px;
}
.page-edit-bill .scope-selector h4 {
    font-size:0.85rem;color:#94a3b8;margin-bottom:12px;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;
}
.page-edit-bill .scope-option {
    display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;cursor:pointer;transition:background 0.2s;margin-bottom:6px;
}
.page-edit-bill .scope-option:last-child {
    margin-bottom:0;
}
.page-edit-bill .scope-option:hover {
    background:#1e293b;
}
.page-edit-bill .scope-option input[type="radio"] {
    width:auto;accent-color:#38bdf8;flex-shrink:0;
}
.page-edit-bill .scope-option strong {
    color:#f1f5f9;font-size:0.95rem;
}
.page-edit-bill .btn {
    width:100%;padding:14px;background:#38bdf8;color:#0f172a;border:none;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:background 0.2s;margin-top:10px;
}
.page-edit-bill .btn-delete {
    width:100%;padding:14px;background:transparent;color:#f87171;border:1px solid #f87171;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:all 0.2s;margin-top:10px;font-family:inherit;
}
.page-edit-bill .divider {
    border:none;border-top:1px solid #334155;margin:4px 0 20px;
}
.page-edit-bill .version {
    text-align:center;margin-top:40px;color:#334155;font-size:0.75rem;
}

/* ── page: edit-debt ─────────────────────────────────────────────── */
.page-edit-debt .page-header {
    margin-bottom:30px;
}
.page-edit-debt .page-header h2 {
    font-size:1.8rem;color:#f1f5f9;
}
.page-edit-debt .page-header p {
    color:#94a3b8;margin-top:4px;
}
.page-edit-debt .form-box {
    background:#1e293b;padding:30px;border-radius:12px;border:1px solid #334155;
}
.page-edit-debt .form-group {
    margin-bottom:20px;
}
.page-edit-debt input {
    width:100%;padding:12px 16px;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#f1f5f9;font-size:1rem;transition:border-color 0.2s;font-family:inherit;
}
.page-edit-debt .form-row {
    display:grid;grid-template-columns:1fr 1fr;gap:16px;
}
.page-edit-debt .btn {
    width:100%;padding:14px;background:#38bdf8;color:#0f172a;border:none;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:background 0.2s;margin-top:10px;
}
.page-edit-debt .version {
    text-align:center;margin-top:40px;color:#334155;font-size:0.75rem;
}

/* ── page: edit-instance ─────────────────────────────────────────────── */
.page-edit-instance .page-header {
    margin-bottom:30px;
}
.page-edit-instance .page-header h2 {
    font-size:1.8rem;color:#f1f5f9;
}
.page-edit-instance .page-header p {
    color:#94a3b8;margin-top:4px;
}
.page-edit-instance .payment-info {
    background:rgba(56,189,248,0.05);border:1px solid rgba(56,189,248,0.2);border-radius:10px;padding:16px 20px;margin-bottom:24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;
}
.page-edit-instance .payment-info h3 {
    font-size:1.1rem;font-weight:700;color:#f1f5f9;
}
.page-edit-instance .payment-info p {
    color:#94a3b8;font-size:0.85rem;margin-top:4px;
}
.page-edit-instance .payment-date {
    font-size:1.5rem;font-weight:800;color:#38bdf8;
}
.page-edit-instance .form-box {
    background:#1e293b;padding:30px;border-radius:12px;border:1px solid #334155;
}
.page-edit-instance .form-group {
    margin-bottom:20px;
}
.page-edit-instance input[type="number"], .page-edit-instance input[type="text"], .page-edit-instance input[type="date"], .page-edit-instance textarea {
    width:100%;padding:12px 16px;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#f1f5f9;font-size:1rem;transition:border-color 0.2s;font-family:inherit;
}
.page-edit-instance input:focus, .page-edit-instance textarea:focus {
    outline:none;border-color:#38bdf8;
}
.page-edit-instance .form-row {
    display:grid;grid-template-columns:1fr 1fr;gap:16px;
}
.page-edit-instance .checkbox-row {
    display:flex;align-items:center;gap:12px;padding:12px 16px;background:#0f172a;border:1px solid #334155;border-radius:8px;cursor:pointer;
}
.page-edit-instance .btn {
    width:100%;padding:14px;background:#38bdf8;color:#0f172a;border:none;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:background 0.2s;margin-top:10px;font-family:inherit;
}
.page-edit-instance .btn-future {
    display:block;width:100%;padding:14px;background:transparent;color:#94a3b8;border:1px solid #334155;border-radius:8px;font-size:0.95rem;font-weight:600;cursor:pointer;transition:all 0.2s;margin-top:10px;text-align:center;text-decoration:none;
}
.page-edit-instance .btn-future:hover {
    border-color:#38bdf8;color:#38bdf8;
}
.page-edit-instance .btn-delete {
    display:block;width:100%;padding:14px;background:transparent;color:#f87171;border:1px solid #f87171;border-radius:8px;font-size:0.95rem;font-weight:700;cursor:pointer;transition:all 0.2s;margin-top:10px;font-family:inherit;
}
.page-edit-instance .version {
    text-align:center;margin-top:40px;color:#334155;font-size:0.75rem;
}
.page-edit-instance /* Conflict panel */
        .conflict-box {
    background:rgba(252,211,77,0.07);border:1px solid rgba(252,211,77,0.4);border-radius:12px;padding:24px;margin-bottom:20px;
}
.page-edit-instance .conflict-box h3 {
    color:#fcd34d;font-size:1.05rem;margin-bottom:10px;display:flex;align-items:center;gap:8px;
}
.page-edit-instance .conflict-box p {
    color:#cbd5e1;font-size:0.92rem;line-height:1.5;margin-bottom:6px;
}
.page-edit-instance .conflict-detail {
    background:#0f172a;border:1px solid #334155;border-radius:8px;padding:12px 16px;margin:14px 0;font-size:0.9rem;color:#cbd5e1;
}
.page-edit-instance .conflict-detail strong {
    color:#f1f5f9;
}
.page-edit-instance .conflict-paid-warning {
    background:rgba(248,113,113,0.08);border:1px solid rgba(248,113,113,0.4);border-radius:8px;padding:12px 16px;margin:14px 0;font-size:0.9rem;color:#fca5a5;
}
.page-edit-instance .conflict-actions {
    display:flex;gap:12px;margin-top:16px;flex-wrap:wrap;
}
.page-edit-instance .conflict-actions form {
    flex:1;min-width:200px;margin:0;
}
.page-edit-instance .btn-replace {
    width:100%;padding:14px;background:#f59e0b;color:#0f172a;border:none;border-radius:8px;font-size:0.95rem;font-weight:700;cursor:pointer;transition:background 0.2s;font-family:inherit;
}
.page-edit-instance .btn-replace:hover {
    background:#fbbf24;
}
.page-edit-instance .btn-cancel {
    display:block;width:100%;padding:14px;background:transparent;color:#94a3b8;border:1px solid #334155;border-radius:8px;font-size:0.95rem;font-weight:600;text-decoration:none;text-align:center;transition:all 0.2s;box-sizing:border-box;
}
.page-edit-instance .btn-cancel:hover {
    border-color:#94a3b8;color:#f1f5f9;
}

/* ── page: login ─────────────────────────────────────────────── */
.page-login .login-box {
    background:#1e293b;padding:40px;border-radius:16px;width:100%;max-width:400px;box-shadow:0 20px 60px rgba(0,0,0,0.4);
}
.page-login .form-group {
    margin-bottom:20px;
}
.page-login input {
    width:100%;padding:12px 16px;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#f1f5f9;font-size:1rem;transition:border-color 0.2s;
}
.page-login .btn {
    width:100%;padding:14px;background:#38bdf8;color:#0f172a;border:none;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:background 0.2s;
}
.page-login .register-link {
    text-align:center;margin-top:20px;color:#94a3b8;font-size:0.85rem;
}
.page-login .register-link a {
    color:#38bdf8;text-decoration:none;
}
.page-login .register-link a:hover {
    text-decoration:underline;
}

/* ── page: register ─────────────────────────────────────────────── */
.page-register .register-box {
    background:#1e293b;padding:40px;border-radius:16px;width:100%;max-width:400px;box-shadow:0 20px 60px rgba(0,0,0,0.4);
}
.page-register .form-group {
    margin-bottom:20px;
}
.page-register input {
    width:100%;padding:12px 16px;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#f1f5f9;font-size:1rem;transition:border-color 0.2s;
}
.page-register .btn {
    width:100%;padding:14px;background:#38bdf8;color:#0f172a;border:none;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:background 0.2s;
}
.page-register .login-link {
    text-align:center;margin-top:20px;color:#94a3b8;font-size:0.85rem;
}
.page-register .login-link a {
    color:#38bdf8;text-decoration:none;
}
.page-register .login-link a:hover {
    text-decoration:underline;
}
.page-register .version {
    text-align:center;margin-top:20px;color:#334155;font-size:0.75rem;
}

/* ── page: settings ─────────────────────────────────────────────── */
.page-settings .page-header {
    margin-bottom:30px;
}
.page-settings .page-header h2 {
    font-size:1.8rem;color:#f1f5f9;
}
.page-settings .page-header p {
    color:#94a3b8;margin-top:4px;
}
.page-settings .cards {
    display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-bottom:30px;
}
.page-settings .card {
    background:#1e293b;padding:20px;border-radius:12px;border:1px solid #334155;text-align:center;
}
.page-settings .card h3 {
    color:#94a3b8;font-size:0.75rem;text-transform:uppercase;letter-spacing:0.05em;margin-bottom:8px;
}
.page-settings .card .number {
    font-size:2rem;font-weight:700;color:#38bdf8;
}
.page-settings .card .number.green {
    color:#4ade80;
}
.page-settings .section {
    background:#1e293b;border-radius:12px;border:1px solid #334155;padding:24px;margin-bottom:20px;
}
.page-settings .section h3 {
    font-size:1rem;font-weight:700;color:#f1f5f9;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid #334155;
}
.page-settings .info-row {
    display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #1e293b;
}
.page-settings .info-row:last-child {
    border-bottom:none;
}
.page-settings .info-label {
    color:#94a3b8;font-size:0.85rem;
}
.page-settings .info-value {
    color:#f1f5f9;font-weight:600;
}
.page-settings .form-group {
    margin-bottom:16px;
}
.page-settings input[type="text"], .page-settings input[type="email"], .page-settings input[type="password"], .page-settings input[type="number"] {
    width:100%;padding:12px 16px;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#f1f5f9;font-size:1rem;transition:border-color 0.2s;font-family:inherit;
}
.page-settings .checkbox-row {
    display:flex;align-items:center;gap:12px;margin-top:8px;padding:12px 16px;background:#0f172a;border:1px solid #334155;border-radius:8px;cursor:pointer;
}
.page-settings .btn {
    padding:12px 24px;background:#38bdf8;color:#0f172a;border:none;border-radius:8px;font-size:0.95rem;font-weight:700;cursor:pointer;transition:background 0.2s;font-family:inherit;
}
.page-settings .btn-danger {
    padding:12px 24px;background:transparent;color:#f87171;border:1px solid #f87171;border-radius:8px;font-size:0.95rem;font-weight:700;cursor:pointer;transition:all 0.2s;text-decoration:none;display:inline-block;
}
.page-settings .btn-danger:hover {
    background:#dc2626;color:white;
}
.page-settings .version-badge {
    display:inline-block;background:#334155;color:#94a3b8;padding:4px 12px;border-radius:20px;font-size:0.8rem;
}
.page-settings .version {
    text-align:center;margin-top:40px;color:#334155;font-size:0.75rem;
}

/* ==========================================================================
   LEGAL / DOCUMENT PAGES — privacy.php and terms.php
   These share almost all their styling. Scoped rather than hoisted because
   they reuse class names that mean something else in the app shell.
   ========================================================================== */

.page-privacy *,
.page-terms * {
    margin:0;padding:0;box-sizing:border-box;
}
.page-privacy :root,
.page-terms :root {
    --dark:#0f172a;--card:#1e293b;--border:#334155;--blue:#38bdf8;--gray:#94a3b8;--light:#f1f5f9;
}
body.page-privacy,
body.page-terms {
    font-family:'Segoe UI',system-ui,sans-serif;background:var(--dark);color:var(--light);line-height:1.7;
}
.page-privacy nav,
.page-terms nav {
    background:rgba(15,23,42,0.95);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);padding:16px 24px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100;
}
.page-privacy .nav-logo,
.page-terms .nav-logo {
    font-size:1.4rem;font-weight:800;color:var(--blue);text-decoration:none;
}
.page-privacy .nav-logo span,
.page-terms .nav-logo span {
    color:var(--light);
}
.page-privacy .nav-login,
.page-terms .nav-login {
    padding:8px 20px;background:transparent;border:1px solid var(--blue);color:var(--blue);border-radius:8px;text-decoration:none;font-size:0.9rem;font-weight:600;transition:all 0.2s;
}
.page-privacy .nav-login:hover,
.page-terms .nav-login:hover {
    background:var(--blue);color:var(--dark);
}
.page-privacy .container,
.page-terms .container {
    max-width:800px;margin:0 auto;padding:60px 24px;
}
.page-privacy .page-header,
.page-terms .page-header {
    margin-bottom:40px;padding-bottom:24px;border-bottom:1px solid var(--border);
}
.page-privacy .page-header h1,
.page-terms .page-header h1 {
    font-size:2rem;font-weight:800;margin-bottom:8px;
}
.page-privacy .page-header p,
.page-terms .page-header p {
    color:var(--gray);font-size:0.9rem;
}
.page-privacy .section,
.page-terms .section {
    margin-bottom:40px;
}
.page-privacy .section h2,
.page-terms .section h2 {
    font-size:1.1rem;font-weight:700;color:var(--blue);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border);
}
.page-privacy .section p,
.page-terms .section p {
    color:var(--gray);margin-bottom:12px;font-size:0.95rem;
}
.page-privacy .section ul,
.page-terms .section ul {
    list-style:none;margin-bottom:12px;
}
.page-privacy .section ul li,
.page-terms .section ul li {
    color:var(--gray);font-size:0.95rem;padding:4px 0 4px 20px;position:relative;
}
.page-privacy .section ul li::before,
.page-terms .section ul li::before {
    content:'→';position:absolute;left:0;color:var(--blue);font-size:0.85rem;
}
.page-privacy .section strong,
.page-terms .section strong {
    color:var(--light);
}
.page-privacy .highlight-box,
.page-terms .highlight-box {
    background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px 24px;margin-bottom:16px;
}
.page-privacy .highlight-box p,
.page-terms .highlight-box p {
    margin:0;font-size:0.9rem;
}
.page-privacy .contact-box,
.page-terms .contact-box {
    background:rgba(56,189,248,0.05);border:1px solid rgba(56,189,248,0.2);border-radius:12px;padding:24px;margin-top:40px;text-align:center;
}
.page-privacy .contact-box h3,
.page-terms .contact-box h3 {
    font-size:1rem;font-weight:700;margin-bottom:8px;
}
.page-privacy .contact-box p,
.page-terms .contact-box p {
    color:var(--gray);font-size:0.9rem;margin:0;
}
.page-privacy .contact-box strong,
.page-terms .contact-box strong {
    color:var(--light);
}
.page-privacy footer,
.page-terms footer {
    background:var(--card);border-top:1px solid var(--border);padding:24px;text-align:center;
}
.page-privacy footer p,
.page-terms footer p {
    color:var(--gray);font-size:0.8rem;margin-bottom:8px;
}
.page-privacy footer a,
.page-terms footer a {
    color:var(--blue);text-decoration:none;margin:0 12px;font-size:0.85rem;
}
.page-privacy footer a:hover,
.page-terms footer a:hover {
    text-decoration:underline;
}
.page-terms .warning-box {
    background:rgba(250,204,21,0.05);border:1px solid rgba(250,204,21,0.3);border-radius:12px;padding:20px 24px;margin-bottom:16px;
}
.page-terms .warning-box p {
    margin:0;font-size:0.9rem;color:var(--gray);
}
.page-terms .warning-box strong {
    color:#fcd34d;
}

/* ── page: accounts / add-account / edit-account ──────────────────
   The bank-account pages. Numbers are set in a monospace-ish tabular
   font so digits line up column-to-column and a transposed pair is
   easier to spot against the real thing. */
.page-accounts     .container,
.page-add-account  .container,
.page-edit-account .container { max-width: 640px; }

/* ── the unlock bar ── */
.page-accounts .vault-bar {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 18px 24px;
    margin-bottom: 20px;
}
.page-accounts .vault-bar.unlocked {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    background: rgba(56, 189, 248, 0.06);
    border-color: rgba(56, 189, 248, 0.35);
}
.page-accounts .vault-state {
    color: var(--blue);
    font-weight: 700;
    font-size: 0.9rem;
    margin-right: 8px;
}
.page-accounts .vault-note { color: var(--gray); font-size: 0.85rem; }

.page-accounts .vault-row { display: flex; gap: 10px; align-items: center; }
.page-accounts .vault-row input { flex: 1; }
.page-accounts .vault-row .btn { white-space: nowrap; }

.page-accounts .btn-lock {
    padding: 8px 16px;
    background: transparent;
    color: var(--gray);
    border: 1px solid var(--border);
    border-radius: 8px;
    font-size: 0.85rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: all 0.2s;
}
.page-accounts .btn-lock:hover { color: var(--light); border-color: #475569; }

/* ── one saved account ── */
.page-accounts .acct-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--border);
}
.page-accounts .acct-nick { font-size: 1.05rem; font-weight: 700; color: var(--light); }
.page-accounts .acct-sub  { color: var(--gray); font-size: 0.85rem; margin-top: 2px; }
.page-accounts .acct-edit {
    color: var(--gray);
    text-decoration: none;
    font-size: 0.85rem;
    font-weight: 600;
    white-space: nowrap;
}
.page-accounts .acct-edit:hover { color: var(--blue); }

.page-accounts .acct-field {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
}
.page-accounts .acct-field + .acct-field { border-top: 1px solid #1e293b; }
.page-accounts .acct-label {
    color: var(--gray);
    font-size: 0.85rem;
    width: 74px;
    flex-shrink: 0;
}
.page-accounts .acct-value {
    color: var(--light);
    font-weight: 600;
    font-size: 1.05rem;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.04em;
    flex: 1;
    /* Long account numbers wrap rather than pushing Copy off a phone screen. */
    word-break: break-all;
}
.page-accounts .acct-value.masked    { color: var(--gray-dim); letter-spacing: 0.1em; }
.page-accounts .acct-value.error-text { color: var(--red); font-size: 0.9rem; letter-spacing: 0; }

.page-accounts .btn-copy {
    padding: 6px 14px;
    background: transparent;
    color: var(--blue);
    border: 1px solid rgba(56, 189, 248, 0.35);
    border-radius: 8px;
    font-size: 0.8rem;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.2s;
}
.page-accounts .btn-copy:hover   { background: rgba(56, 189, 248, 0.12); }
.page-accounts .btn-copy.copied  { color: var(--green); border-color: rgba(74, 222, 128, 0.5); }

.page-accounts .empty-state    { text-align: center; }
.page-accounts .empty-state h3 { border-bottom: none; padding-bottom: 0; margin-bottom: 10px; }
.page-accounts .empty-state p  { color: var(--gray); font-size: 0.9rem; margin-bottom: 20px; }
.page-accounts .empty-state .btn { text-decoration: none; display: inline-block; }

.page-accounts > .container > .btn { text-decoration: none; display: inline-block; }

/* ── the add/edit forms ── */
.page-add-account  .form-row,
.page-edit-account .form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.page-edit-account .section.danger { border-color: #7f1d1d; }
.page-edit-account .section.danger h3 { color: var(--red); border-bottom-color: #7f1d1d; }

@media (max-width: 520px) {
    .page-add-account  .form-row,
    .page-edit-account .form-row { grid-template-columns: 1fr; }

    .page-accounts .acct-field { flex-wrap: wrap; }
    .page-accounts .acct-label { width: 100%; }
}
