/* CFP — SEIMS-inspired custom CSS; no Bootstrap framework */
:root{--navy:#14284b;--navy2:#1d3967;--orange:#ef8b24;--orange-soft:#fff3e4;--green:#2e8b62;--ink:#172033;--muted:#68758a;--line:#dfe5ee;--paper:#f3f6fa;--shadow:0 8px 26px rgba(20,40,75,.07)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 Inter,"Segoe UI",Roboto,Arial,sans-serif}a{color:var(--navy2);text-decoration:none}a:hover{color:var(--orange)}button,input,select,textarea{font:inherit}h1,h2,h3,h4,h5,.h1,.h2,.h3,.h4,.h5{color:var(--navy);font-weight:750;letter-spacing:-.035em;line-height:1.2;margin-top:0}h1,.h1{font-size:clamp(1.65rem,3vw,2.15rem)}h2,.h2{font-size:1.45rem}h3,.h3{font-size:1.25rem}h4,.h4{font-size:1.1rem}h5,.h5{font-size:1rem}p{margin-top:0}
.container{width:min(100% - 30px,1140px);margin-inline:auto}.container-fluid{width:100%;margin-inline:auto}.px-3{padding-left:1rem;padding-right:1rem}.px-lg-4{padding-left:1.5rem;padding-right:1.5rem}.py-4{padding-top:1.5rem;padding-bottom:1.5rem}.app-main{max-width:1600px;min-height:calc(100vh - 125px);padding-top:26px!important;padding-bottom:36px!important}
.app-navbar{position:sticky;top:0;z-index:1000;background:var(--navy);color:#fff;border-bottom:3px solid var(--orange);box-shadow:0 5px 18px #14284b26}.app-navbar>.container-fluid{display:flex;align-items:center;gap:18px;min-height:68px}.navbar-brand{display:inline-flex;align-items:center;gap:10px;color:#fff;font-weight:800;letter-spacing:-.035em;font-size:1.2rem;white-space:nowrap}.navbar-brand:hover{color:#fff}.brand-dot{color:var(--orange)}.brand-mark{height:48px;width:48px;display:grid;place-items:center;border-radius:10px;background:#fff;color:var(--navy);font-size:1.35rem;border:2px solid #ffffff2e}.brand-mark-sm{height:36px;width:36px;border-radius:8px;font-size:1rem}.navbar-toggler{display:none;border:1px solid #ffffff44;background:transparent;color:#fff;border-radius:8px;padding:8px 10px}.navbar-toggler-icon{display:block;width:20px;height:14px;border-top:2px solid #fff;border-bottom:2px solid #fff;position:relative}.navbar-toggler-icon:after{content:"";position:absolute;left:0;right:0;top:5px;border-top:2px solid #fff}.navbar-collapse{display:flex;align-items:center;flex:1;min-width:0}.navbar-nav{display:flex;align-items:center;gap:3px;list-style:none;padding:0;margin:0;flex:1}.nav-item{margin:0}.nav-link{display:inline-flex;align-items:center;gap:7px;padding:10px 11px;border-radius:7px;color:#e4ebf5;font-size:.86rem;font-weight:650;white-space:nowrap}.nav-link:hover,.nav-link:focus{color:#fff;background:#ffffff18}.header-actions{display:flex;align-items:center;gap:14px;white-space:nowrap}.header-actions .small{color:#d7e0ef!important}
.eyebrow{font-size:.69rem;font-weight:800;letter-spacing:.14em;color:var(--orange);text-transform:uppercase;margin-bottom:8px}.text-secondary{color:var(--muted)!important}.small,small{font-size:.82rem}.fw-semibold{font-weight:700}.text-primary{color:var(--navy2)!important}.text-success{color:#23764e!important}.text-danger{color:#b53b43!important}.text-warning{color:#ad6814!important}.text-center{text-align:center}.text-end{text-align:right}.text-nowrap{white-space:nowrap}.d-none{display:none!important}.d-flex{display:flex}.d-inline{display:inline}.flex-wrap{flex-wrap:wrap}.align-items-center{align-items:center}.align-items-start{align-items:flex-start}.align-self-center{align-self:center}.justify-content-between{justify-content:space-between}.justify-content-center{justify-content:center}.gap-2{gap:.5rem}.gap-3{gap:1rem}.me-auto{margin-right:auto}.me-1{margin-right:.25rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:1rem}.mb-4{margin-bottom:1.5rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:1rem}.mt-4{margin-top:1.5rem}.p-3{padding:1rem}.p-4{padding:1.5rem}.p-5{padding:3rem}.py-5{padding-top:3rem;padding-bottom:3rem}.h-100{height:100%}.w-100{width:100%}.rounded{border-radius:8px}.border{border:1px solid var(--line)}
.row{display:flex;flex-wrap:wrap;margin-left:-.5rem;margin-right:-.5rem;row-gap:1rem}.row>*{padding-left:.5rem;padding-right:.5rem;min-width:0}.g-3{row-gap:1rem}.g-4{row-gap:1.5rem}.col-12{width:100%}.col-6{width:50%}.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-lg-5,.col-lg-7,.col-lg-8,.col-xl-3,.col-xl-4{width:100%}
.metric-card,.panel{background:#fff;border:1px solid #dce3ed;border-radius:10px;box-shadow:var(--shadow)}.metric-card{padding:20px;position:relative;border-top:3px solid var(--orange)}.metric-card:after{content:"";position:absolute;right:0;top:0;width:70px;height:70px;background:linear-gradient(135deg,transparent 50%,#fff5e9 50%);pointer-events:none}.metric-icon{height:40px;width:40px;border-radius:9px;background:#edf2f8;display:grid;place-items:center;font-size:1.1rem;color:var(--navy)}.metric-value{font-size:clamp(1.25rem,2vw,1.8rem);font-weight:800;letter-spacing:-.045em;margin:14px 0 3px;color:var(--navy);font-variant-numeric:tabular-nums}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:20px 20px 14px;border-bottom:1px solid #edf0f5}.panel-heading h2{margin:0}.panel-heading p{margin:4px 0 0}
.table-responsive{width:100%;overflow-x:auto}.table{width:100%;border-collapse:collapse;color:var(--ink);vertical-align:middle}.table>:not(caption)>*>*{padding:13px 16px;border-bottom:1px solid #eef1f6;text-align:left}.table thead th{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:#64748b;background:#f7f9fc;white-space:nowrap}.table tbody tr:hover{background:#f9fbfe}.table tbody tr:last-child td{border-bottom:0}.table .text-end{text-align:right}.align-middle td,.align-middle th{vertical-align:middle}.progress{height:8px;background:#edf1f7;border-radius:99px;overflow:hidden}.progress-bar{height:100%;background:var(--green);border-radius:99px}
.form-control,.form-select{display:block;width:100%;min-height:43px;border:1px solid #cfd8e5;border-radius:7px;background:#fff;padding:9px 12px;color:var(--ink);outline:0}.form-control-sm{min-height:34px;padding:6px 9px;font-size:.84rem}.form-control:focus,.form-select:focus{border-color:var(--navy2);box-shadow:0 0 0 3px #1d39671c}.form-label{display:block;font-size:.84rem;font-weight:700;color:#334155;margin-bottom:6px}.form-text{font-size:.8rem;color:var(--muted)}.input-group{display:flex;width:100%}.input-group>.form-control{border-radius:7px 0 0 7px;min-width:0}.input-group>.btn{border-radius:0 7px 7px 0;white-space:nowrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:9px 14px;border:1px solid transparent;border-radius:7px;font-weight:700;font-size:.88rem;line-height:1.2;cursor:pointer;text-align:center;transition:background .15s,border-color .15s,transform .15s}.btn:hover{transform:translateY(-1px)}.btn-sm{min-height:33px;padding:7px 10px;font-size:.8rem}.btn-primary{background:var(--navy2);color:#fff;border-color:var(--navy2)}.btn-primary:hover{background:var(--navy);color:#fff}.btn-success{background:var(--green);color:#fff}.btn-outline-primary{background:#fff;border-color:var(--navy2);color:var(--navy2)}.btn-outline-primary:hover{background:var(--navy2);color:#fff}.btn-outline-secondary{background:#fff;border-color:#cbd5e1;color:#475569}.btn-outline-secondary:hover{background:#f1f5f9}.btn-danger{background:#b91c1c;color:#fff}.btn-outline-danger{background:#fff;border-color:#efc4c4;color:#b91c1c}
.alert{padding:13px 15px;border:1px solid transparent;border-radius:8px;margin-bottom:1rem}.alert-success{background:#eaf7f0;border-color:#c4e8d3;color:#246846}.alert-danger{background:#fff0f0;border-color:#f1cccc;color:#a72e35}.alert-info{background:#edf5ff;border-color:#cbdff8;color:#1d4779}.scope-tag{font-size:.7rem;font-weight:750;text-transform:uppercase;letter-spacing:.05em;color:var(--navy2);background:#edf3fa;border-radius:5px;padding:5px 8px}.sync-pill{display:inline-flex;gap:7px;align-items:center;border:1px solid var(--line);border-radius:7px;background:white;padding:8px 12px;font-size:.8rem;color:#475569}.sync-pill.online{color:#047857}.sync-pill.offline{color:#b45309}.invite-code{display:block;overflow-wrap:anywhere;background:#f6f8fb;border:1px dashed #bdc8d9;padding:10px;border-radius:7px;flex:1;color:var(--navy);font-weight:800;letter-spacing:.08em}.app-footer{border-top:1px solid var(--line);background:#fff;padding:16px 0;font-size:.78rem;color:#64748b}.app-footer .container-fluid{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}.auth-page{background:linear-gradient(135deg,#edf2f8,#f8fafc)}.auth-main{min-height:100vh;display:grid;place-items:center}.auth-wrap{width:100%;max-width:460px;margin:auto}.auth-card{background:#fff;border:1px solid var(--line);border-top:4px solid var(--orange);border-radius:12px;padding:clamp(24px,5vw,38px);box-shadow:0 20px 70px #0f172a17}.auth-card h1{font-weight:800;letter-spacing:-.04em}.auth-card a{font-weight:650;text-decoration:none}.auth-card .form-control{min-height:47px}
.chat-launcher{position:fixed;right:22px;bottom:22px;z-index:1100;width:58px;height:58px;border:0;border-radius:50%;background:var(--orange);color:#fff;box-shadow:0 8px 24px #14284b35;font-size:1.35rem;display:grid;place-items:center;cursor:pointer}.chat-launcher:hover{background:#d97812;transform:translateY(-2px)}.chat-launcher-label{position:fixed;right:91px;bottom:37px;z-index:1099;background:var(--navy);color:#fff;border-radius:6px;padding:7px 10px;font-size:.8rem;font-weight:700;box-shadow:var(--shadow)}
@media(min-width:768px){.col-md-2{width:16.6667%}.col-md-3{width:25%}.col-md-4{width:33.3333%}.col-md-5{width:41.6667%}.col-md-6{width:50%}.col-md-7{width:58.3333%}.col-lg-5{width:41.6667%}.col-lg-7{width:58.3333%}.col-lg-8{width:66.6667%}.col-xl-3{width:25%}.col-xl-4{width:33.3333%}.d-lg-inline{display:inline!important}}
@media(max-width:991px){.app-navbar>.container-fluid{flex-wrap:wrap;padding:10px 15px}.navbar-toggler{display:block;margin-left:auto}.navbar-collapse{display:none;flex-basis:100%;width:100%;flex-direction:column;align-items:stretch;padding:8px 0 3px}.navbar-collapse.show{display:flex}.navbar-nav{display:flex;flex-direction:column;align-items:stretch;width:100%}.nav-link{width:100%;padding:11px 12px}.header-actions{justify-content:space-between;padding:10px 2px 2px}.app-main{padding-left:15px!important;padding-right:15px!important}}
@media(max-width:575px){body{font-size:14px}.app-main{padding-top:18px!important;padding-bottom:28px!important}.panel-heading{padding:15px;align-items:flex-start;flex-wrap:wrap}.metric-card{padding:14px}.table>:not(caption)>*>*{padding:11px 12px}.row{margin-left:-.4rem;margin-right:-.4rem}.row>*{padding-left:.4rem;padding-right:.4rem}.chat-launcher{right:15px;bottom:15px;width:54px;height:54px}.chat-launcher-label{display:none}.app-footer .container-fluid{padding-inline:15px}.container-fluid.px-3{padding-left:15px;padding-right:15px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}


/* CACHE-BUSTED FIX: explicit navbar and responsive layout overrides */
html,body{min-height:100%;width:100%}
body{margin:0!important}
.app-navbar{display:block!important;background:#14284b!important;color:#fff!important;width:100%;min-height:68px}
.app-navbar ul.navbar-nav{display:flex!important;list-style:none!important;margin:0!important;padding:0!important}
.app-navbar ul.navbar-nav li{list-style:none!important;margin:0!important;padding:0!important}
.app-navbar .navbar-collapse{display:flex!important;align-items:center!important;flex:1 1 auto!important;min-width:0}
.app-navbar .navbar-toggler{display:none!important}
.app-navbar .navbar-brand{color:#fff!important;text-decoration:none!important}
.app-navbar .nav-link{color:#edf3fb!important;text-decoration:none!important}
.app-navbar .nav-link:hover,.app-navbar .nav-link:focus{background:#ffffff18!important;color:#fff!important}
.app-navbar .header-actions a{color:#14284b!important}
.app-main{display:block!important;background:#f3f6fa!important}
.metric-card{display:block!important;background:#fff!important;border:1px solid #dce3ed!important;border-top:3px solid #ef8b24!important;border-radius:10px!important;box-shadow:0 8px 26px rgba(20,40,75,.07)!important}
.panel{display:block!important;background:#fff!important;border:1px solid #dce3ed!important;border-radius:10px!important;box-shadow:0 8px 26px rgba(20,40,75,.07)!important}
.metric-icon{display:grid!important}
.btn-primary{background:#1d3967!important;color:#fff!important;border:1px solid #1d3967!important}
.btn-primary:hover{background:#14284b!important}
a{color:#1d3967}
a:hover{color:#ef8b24}
@media(max-width:991px){
 .app-navbar>.container-fluid{display:flex!important;flex-wrap:wrap!important;padding:10px 15px!important}
 .app-navbar .navbar-toggler{display:block!important;margin-left:auto!important}
 .app-navbar .navbar-collapse{display:none!important;flex:0 0 100%!important;width:100%!important;flex-direction:column!important;align-items:stretch!important}
 .app-navbar .navbar-collapse.show{display:flex!important}
 .app-navbar ul.navbar-nav{flex-direction:column!important;align-items:stretch!important;width:100%!important}
 .app-navbar .nav-link{display:flex!important;width:100%!important;padding:11px 12px!important}
 .app-navbar .header-actions{display:flex!important;justify-content:space-between!important;padding:10px 2px 2px!important}
}


/* Motivating finance dashboard accents */
.metric-income{background:linear-gradient(145deg,#fff 0%,#effbf4 100%)!important;border-top-color:#22a06b!important}
.metric-income .metric-icon{background:#dff7e9!important;color:#188354!important}
.metric-income .metric-value{color:#188354!important}
.metric-expense{background:linear-gradient(145deg,#fff 0%,#fff1f0 100%)!important;border-top-color:#ef6868!important}
.metric-expense .metric-icon{background:#ffe4e2!important;color:#c94747!important}
.metric-expense .metric-value{color:#bd3d3d!important}
.metric-personal{background:linear-gradient(145deg,#fff 0%,#eef4ff 100%)!important;border-top-color:#4b83e6!important}
.metric-personal .metric-icon{background:#e1ebff!important;color:#315fc2!important}
.metric-personal .metric-value{color:#244f9f!important}
.metric-spouse{background:linear-gradient(145deg,#fff 0%,#fff1f7 100%)!important;border-top-color:#e879a8!important}
.metric-spouse .metric-icon{background:#ffe0ee!important;color:#c3467c!important}
.metric-spouse .metric-value{color:#b83c70!important}
.balance-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 20px;border:1px solid #dfe5ee;border-radius:10px;background:linear-gradient(105deg,#fff7e9,#f2f7ff 55%,#fff0f6);box-shadow:0 8px 24px rgba(20,40,75,.05)}
.balance-toolbar strong{color:#14284b;font-size:1rem}.balance-toolbar .small{color:#68758a;margin-top:4px}
.balance-toggle{display:flex;align-items:center;gap:9px;font-size:.82rem;font-weight:750;color:#14284b;white-space:nowrap;cursor:pointer}
.balance-toggle input{position:absolute;opacity:0;width:1px;height:1px}
.toggle-track{width:39px;height:23px;border-radius:99px;background:#cbd5e1;position:relative;transition:background .2s}
.toggle-track:after{content:"";position:absolute;width:17px;height:17px;top:3px;left:3px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0002;transition:transform .2s}
.balance-toggle input:checked+.toggle-track{background:#2e8b62}
.balance-toggle input:checked+.toggle-track:after{transform:translateX(16px)}
.balance-toggle input:focus-visible+.toggle-track{outline:3px solid #ef8b2466;outline-offset:2px}
.combined-balance{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}
.combined-balance[hidden]{display:none!important}
.combined-balance>div{padding:17px 19px;background:#fff;border:1px solid #dfe5ee;border-radius:10px;box-shadow:0 6px 20px rgba(20,40,75,.05);display:flex;flex-direction:column;gap:7px}
.combined-balance>div:nth-child(1){border-top:3px solid #4b83e6}.combined-balance>div:nth-child(2){border-top:3px solid #ef8b24}.combined-balance>div:nth-child(3){border-top:3px solid #2e8b62}
.combined-balance .small{color:#68758a}.combined-balance strong{font-size:1.35rem;color:#14284b;font-variant-numeric:tabular-nums}
@media(max-width:575px){.balance-toolbar{padding:14px;align-items:flex-start}.balance-toggle{font-size:.76rem;gap:6px}.combined-balance{grid-template-columns:1fr}.combined-balance>div{padding:14px}}
