:root{--met-teal:#063f42;--met-teal-2:#075c60;--met-cyan:#08bec7;--met-blue:#087fb8;--met-purple:#6533c8;--met-purple-2:#8450e4;--met-bg:#f4f7f9;--met-card:#fff;--met-text:#153437;--met-muted:#6c7d80;--met-line:#e3eaec;--sidebar:260px;--shadow:0 14px 35px rgba(6,63,66,.09)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--met-bg);color:var(--met-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;min-height:100vh}a{text-decoration:none}.min-w-0{min-width:0}.eyebrow{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;font-weight:800;color:var(--met-cyan);margin-bottom:.35rem}.app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);padding:1.2rem;background:linear-gradient(180deg,#053c3f,#032e31);color:#fff;flex-direction:column;z-index:1030}.brand-lockup{display:flex;align-items:center;gap:.8rem;color:#fff;padding:.3rem}.brand-lockup img{width:54px;height:54px;object-fit:contain;background:#fff;border-radius:18px}.brand-lockup strong,.brand-lockup span{display:block}.brand-lockup strong{font-size:1.25rem}.brand-lockup span{font-size:.76rem;color:#b7d7d8}.sidebar-nav{display:flex;flex-direction:column;gap:.35rem;margin-top:2rem}.sidebar-nav a{display:flex;align-items:center;gap:.85rem;color:#cce1e1;padding:.78rem .9rem;border-radius:14px;font-weight:700}.sidebar-nav a i{font-size:1.1rem}.sidebar-nav a.active{background:linear-gradient(135deg,rgba(8,190,199,.25),rgba(101,51,200,.27));color:#fff}.sidebar-nav a.disabled{opacity:.46;pointer-events:none}.sidebar-section{font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:#6ea1a3;margin:1rem .9rem .3rem}.sidebar-user{display:flex;align-items:center;gap:.7rem;padding:.9rem;border-top:1px solid rgba(255,255,255,.1)}.sidebar-user strong,.sidebar-user span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user span{font-size:.72rem;color:#a9c5c7}.avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(135deg,var(--met-cyan),var(--met-purple));color:#fff;font-weight:800;flex:none}.app-shell{min-height:100vh;margin-left:var(--sidebar)}.app-topbar{min-height:88px;padding:1rem clamp(1rem,3vw,2.5rem);display:flex;align-items:center;justify-content:space-between;background:rgba(244,247,249,.9);backdrop-filter:blur(14px);position:sticky;top:0;z-index:1020;border-bottom:1px solid rgba(227,234,236,.8)}.app-topbar h1{font-size:1.5rem;margin:0}.profile-button{border:0;background:#fff;border-radius:16px;padding:.4rem .55rem;display:flex;align-items:center;gap:.5rem;box-shadow:0 8px 22px rgba(6,63,66,.08)}.app-content{padding:clamp(1rem,3vw,2.5rem);padding-bottom:2.5rem}.flash-stack{position:fixed;right:1rem;top:1rem;z-index:2000;max-width:420px}.welcome-banner{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:clamp(1.4rem,4vw,2.4rem);border-radius:26px;background:linear-gradient(135deg,var(--met-teal),#086970 58%,var(--met-purple));color:#fff;box-shadow:var(--shadow);overflow:hidden}.welcome-banner h2{font-size:clamp(1.65rem,4vw,2.5rem);margin:.1rem 0 .5rem}.welcome-banner p{max-width:700px;margin:0;color:#d6ebec}.banner-mark{font-size:4rem;opacity:.2;transform:rotate(-8deg)}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-top:1rem}.metric-card,.content-card{background:var(--met-card);border:1px solid var(--met-line);border-radius:22px;box-shadow:0 10px 26px rgba(6,63,66,.055)}.metric-card{padding:1.2rem}.metric-card>span,.metric-card>strong,.metric-card>small{display:block}.metric-card>span{font-size:.82rem;color:var(--met-muted);margin-top:.9rem}.metric-card>strong{font-size:1.65rem;margin:.12rem 0}.metric-card>small{color:#8a989a;font-size:.72rem}.metric-icon{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;color:#fff;font-size:1.2rem}.metric-icon.teal{background:var(--met-teal)}.metric-icon.cyan{background:var(--met-cyan)}.metric-icon.purple{background:var(--met-purple)}.metric-icon.blue{background:var(--met-blue)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.8fr);gap:1rem;margin-top:1rem}.content-card{padding:1.3rem}.narrow-card{max-width:680px;margin:auto}.content-card h2,.content-card h3{margin:.1rem 0}.card-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.status-chip{font-size:.7rem;font-weight:800;padding:.4rem .65rem;border-radius:999px;background:#e7faf9;color:var(--met-teal)}.empty-visual{min-height:260px;display:grid;place-items:center;text-align:center;color:var(--met-muted)}.bars{height:120px;display:flex;align-items:end;gap:10px}.bars span{display:block;width:22px;border-radius:7px 7px 2px 2px;background:linear-gradient(180deg,var(--met-cyan),var(--met-purple))}.bars span:nth-child(1){height:42%}.bars span:nth-child(2){height:66%}.bars span:nth-child(3){height:52%}.bars span:nth-child(4){height:88%}.bars span:nth-child(5){height:70%}.bars span:nth-child(6){height:100%}.status-list{display:grid;gap:.8rem;margin-top:1.25rem}.status-list div{display:flex;align-items:center;gap:.7rem;padding:.72rem;border-radius:13px;background:#f7fafb}.status-list i{color:var(--met-cyan)}.mobile-nav{position:fixed;left:0;right:0;bottom:0;height:72px;background:#fff;border-top:1px solid var(--met-line);display:grid;grid-template-columns:repeat(5,1fr);z-index:1040;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -8px 24px rgba(6,63,66,.08)}.mobile-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;color:#758789;font-size:.65rem;font-weight:700}.mobile-nav a i{font-size:1.18rem}.mobile-nav a.active{color:var(--met-teal)}.mobile-nav a.disabled{opacity:.45;pointer-events:none}.mobile-nav .add-action i{width:44px;height:44px;margin-top:-23px;border-radius:16px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--met-cyan),var(--met-purple));box-shadow:0 8px 20px rgba(101,51,200,.3)}.guest-shell{margin:0}.auth-page{background:#fff}.auth-page .app-content{padding:0}.auth-layout{display:grid;grid-template-columns:1.05fr .95fr;min-height:100vh}.auth-brand-panel{position:relative;display:grid;align-items:end;padding:clamp(2rem,6vw,5rem);background:linear-gradient(155deg,rgba(3,46,49,.93),rgba(5,95,99,.9),rgba(101,51,200,.88)),url('../img/met-logo.png') center/cover;color:#fff}.auth-brand-panel:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 75% 20%,rgba(8,190,199,.32),transparent 34%)}.auth-brand-copy{position:relative;z-index:1;max-width:620px}.auth-logo{width:110px;height:110px;border-radius:28px;background:#fff;object-fit:contain;padding:.3rem;box-shadow:0 18px 40px rgba(0,0,0,.2)}.brand-pill{display:inline-flex;margin-top:1.5rem;padding:.45rem .75rem;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:rgba(255,255,255,.1);font-size:.75rem;font-weight:800}.auth-brand-copy h1{font-size:clamp(2.2rem,5vw,4.7rem);line-height:1.02;margin:1.2rem 0}.auth-brand-copy p{font-size:1.05rem;color:#d8eeee;max-width:560px}.auth-form-panel{display:grid;place-items:center;padding:clamp(1rem,5vw,4rem)}.auth-card{width:min(100%,460px)}.auth-card h2{font-size:2rem;margin:.2rem 0}.mobile-login-logo{width:92px;height:92px;object-fit:contain}.form-label{font-size:.82rem;font-weight:800}.form-control{min-height:50px;border-radius:14px;border:1px solid #d7e2e4}.form-control:focus{border-color:var(--met-cyan);box-shadow:0 0 0 .22rem rgba(8,190,199,.13)}.input-icon{position:relative}.input-icon i{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:#7f9294}.input-icon .form-control{padding-left:2.8rem}.btn{border-radius:13px;font-weight:800;padding:.76rem 1rem}.btn-met{color:#fff;background:linear-gradient(135deg,var(--met-teal),var(--met-purple));border:0;box-shadow:0 10px 24px rgba(6,63,66,.18)}.btn-met:hover{color:#fff;filter:brightness(1.06)}.field-error{color:#b42318;font-size:.75rem;margin-top:.35rem}.secure-note{display:flex;align-items:flex-start;gap:.6rem;margin-top:1.2rem;padding:1rem;border-radius:14px;background:#f0fbfb;color:#547174;font-size:.78rem}.secure-note i{color:var(--met-cyan)}.error-wrap{min-height:calc(100vh - 5rem);display:grid;place-items:center}.error-card{text-align:center;max-width:520px}.error-card img{width:110px;height:110px;object-fit:contain}.error-code{display:block;font-size:4rem;font-weight:900;background:linear-gradient(135deg,var(--met-cyan),var(--met-purple));-webkit-background-clip:text;color:transparent}.error-card p{color:var(--met-muted)}
@media(max-width:1199.98px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:991.98px){.app-shell{margin:0}.app-content{padding-bottom:96px}.auth-layout{grid-template-columns:1fr}.auth-brand-panel{display:none}.auth-form-panel{min-height:100vh;background:linear-gradient(180deg,#f3fbfb,#fff 45%)}.dashboard-grid{grid-template-columns:1fr}.app-topbar{min-height:76px}.banner-mark{font-size:3rem}}
@media(max-width:575.98px){.app-content{padding:1rem 1rem 96px}.app-topbar{padding:.75rem 1rem}.app-topbar .eyebrow{display:none}.app-topbar h1{font-size:1.2rem}.welcome-banner{border-radius:21px}.welcome-banner p{font-size:.84rem}.banner-mark{display:none}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.metric-card{padding:1rem}.metric-card>strong{font-size:1.3rem}.content-card{border-radius:18px}.flash-stack{left:1rem;right:1rem}.auth-form-panel{padding:1.25rem}.auth-card h2{font-size:1.7rem}}
@media(max-width:380px){.metric-grid{grid-template-columns:1fr}.mobile-nav a span{font-size:.58rem}}
.met-footer{padding:1.25rem 1rem 1.5rem;text-align:center;color:var(--met-muted);font-size:.78rem;line-height:1.65;background:transparent}.met-footer strong{color:var(--met-teal)}.met-footer a{color:var(--met-teal);font-weight:800}.met-footer a:hover{color:var(--met-purple)}.auth-page .met-footer{position:absolute;left:50%;right:0;bottom:.65rem;z-index:5;padding:.5rem 1rem;font-size:.72rem}.auth-page .guest-shell{position:relative;min-height:100vh}.met-footer-authenticated{padding-bottom:1.6rem}
@media(max-width:991.98px){.auth-page .met-footer{position:relative;left:auto;right:auto;bottom:auto;margin-top:-5.5rem;padding:1rem 1rem 1.6rem}.met-footer-authenticated{padding-bottom:6.5rem}}
.page-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.section-title{margin:0}.compact-metrics{grid-template-columns:minmax(240px,340px);margin-bottom:1rem}.filter-card{margin-bottom:1rem}.filter-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:.8rem;align-items:end}.filter-grid label{font-size:.75rem;font-weight:800;margin-bottom:.35rem}.filter-buttons{display:flex;gap:.5rem}.expense-timeline{display:grid;gap:.75rem}.expense-row{display:flex;gap:1rem;background:#fff;border:1px solid var(--met-line);border-radius:18px;padding:1rem;box-shadow:0 8px 24px rgba(6,63,66,.05)}.expense-icon,.category-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:#e8fbfb;color:var(--met-teal);flex:0 0 auto}.expense-main{min-width:0;flex:1}.expense-top{display:flex;justify-content:space-between;gap:1rem}.expense-top strong,.expense-top span{display:block}.expense-top span{font-size:.78rem;color:var(--met-muted);margin-top:.15rem}.expense-amount{font-size:1.1rem;color:var(--met-purple);white-space:nowrap}.expense-meta{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.65rem;font-size:.72rem;color:var(--met-muted)}.expense-meta a{margin-left:auto;font-weight:800;color:var(--met-teal)}.empty-state{text-align:center;padding:3rem 1rem}.empty-state>i{font-size:2.4rem;color:var(--met-cyan)}.pagination-wrap{display:flex;justify-content:center;gap:.45rem;margin-top:1.25rem}.page-pill{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#fff;color:var(--met-teal);font-weight:800}.page-pill.active{background:var(--met-teal);color:#fff}.form-page{max-width:920px;margin:auto}.expense-form{padding:clamp(1rem,3vw,2rem)}.form-intro{display:flex;gap:1rem;align-items:center;margin-bottom:1.5rem}.form-intro h2,.form-intro p{margin:0}.form-intro p{color:var(--met-muted);font-size:.86rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.span-2{grid-column:span 2}.form-select{min-height:50px;border-radius:14px;border-color:#d7e2e4}.input-group-text{border-radius:14px 0 0 14px;background:#edf7f7;border-color:#d7e2e4}.form-hint{color:var(--met-muted);font-size:.72rem}.sticky-form-actions{display:flex;justify-content:flex-end;gap:.65rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--met-line)}.btn-outline-met{border:1px solid var(--met-teal);color:var(--met-teal)}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:1rem}.detail-header{display:flex;justify-content:space-between;gap:1rem}.detail-header h2{margin:.1rem 0 .7rem}.detail-amount{font-size:2rem;color:var(--met-purple)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.5rem 0}.detail-grid div{padding:1rem;background:#f7fafb;border-radius:14px}.detail-grid dt{font-size:.7rem;text-transform:uppercase;color:var(--met-muted)}.detail-grid dd{margin:.25rem 0 0;font-weight:800}.notes-box,.receipt-preview{display:block;padding:1rem;border-radius:14px;background:#f0fbfb;margin-top:1rem}.receipt-preview{display:flex;align-items:center;gap:.7rem;color:var(--met-teal);font-weight:800}.receipt-preview i:last-child{margin-left:auto}.category-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:1rem}.category-list{display:grid;gap:.6rem}.category-list>div{display:grid;grid-template-columns:44px 1fr auto auto;align-items:center;gap:.7rem;padding:.7rem;border:1px solid var(--met-line);border-radius:14px}.status-dot{font-size:.68rem;font-weight:800;color:#8a9697}.status-dot.active{color:#0b8b65}.mini-expense-list{display:grid}.mini-expense-list>a{display:grid;grid-template-columns:44px 1fr auto;gap:.7rem;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--met-line);color:var(--met-text)}.mini-expense-list small{display:block;color:var(--met-muted)}.mini-expense-list b{color:var(--met-purple)}.empty-visual.compact{min-height:220px}.empty-visual.compact i{font-size:2rem}
@media(max-width:991.98px){.filter-grid{grid-template-columns:1fr 1fr}.filter-grid>div:first-child,.filter-buttons{grid-column:span 2}.detail-layout,.category-layout{grid-template-columns:1fr}.action-card{order:-1}.page-actions{align-items:flex-start}}
@media(max-width:575.98px){.page-actions{flex-direction:column}.page-actions .d-flex{width:100%}.page-actions .btn{flex:1}.filter-grid{grid-template-columns:1fr}.filter-grid>div:first-child,.filter-buttons{grid-column:auto}.expense-row{padding:.85rem;gap:.7rem}.expense-icon{width:38px;height:38px}.expense-top{align-items:flex-start}.expense-meta a{width:100%;margin-left:0}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.sticky-form-actions{position:sticky;bottom:76px;background:#fff;margin:1rem -1rem -1rem;padding:1rem;z-index:5;display:grid;grid-template-columns:1fr 1fr}.sticky-form-actions .btn-met{grid-column:span 2;order:-1}.detail-header{display:block}.detail-amount{display:block;margin-top:1rem}.detail-grid{grid-template-columns:1fr}.category-list>div{grid-template-columns:40px 1fr auto}.category-list form{grid-column:2/4}.auth-page .met-footer{margin-top:-4.2rem}}

/* Login viewport fit — keeps the complete sign-in screen and footer in one view. */
.auth-page{
  height:100dvh;
  min-height:100dvh;
  overflow:hidden;
}
.auth-page .guest-shell{
  height:100dvh;
  min-height:0;
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  margin:0;
  overflow:hidden;
}
.auth-page .app-content{
  min-height:0;
  height:auto;
  overflow:hidden;
}
.auth-page .auth-layout{
  height:100%;
  min-height:0;
  grid-template-columns:minmax(0,1.05fr) minmax(430px,.95fr);
}
.auth-page .auth-brand-panel{
  min-width:0;
  min-height:0;
  align-items:center;
  padding:clamp(1.25rem,3.5vh,2.75rem) clamp(1.5rem,4vw,4rem);
  overflow:hidden;
}
.auth-page .auth-brand-copy{max-width:590px}
.auth-page .auth-logo{
  width:clamp(68px,11vh,96px);
  height:clamp(68px,11vh,96px);
  border-radius:22px;
}
.auth-page .brand-pill{
  margin-top:clamp(.55rem,1.8vh,1rem);
  padding:.36rem .68rem;
  font-size:clamp(.62rem,1.35vh,.73rem);
}
.auth-page .auth-brand-copy h1{
  font-size:clamp(2rem,5.7vh,3.7rem);
  line-height:1.03;
  margin:clamp(.55rem,1.8vh,1rem) 0 clamp(.35rem,1vh,.65rem);
  max-width:620px;
}
.auth-page .auth-brand-copy p{
  margin:0;
  font-size:clamp(.82rem,1.8vh,1rem);
  line-height:1.45;
}
.auth-page .auth-form-panel{
  min-width:0;
  min-height:0;
  padding:clamp(1rem,3vh,2.25rem) clamp(1.5rem,5vw,4.5rem);
  overflow:hidden;
}
.auth-page .auth-card{width:min(100%,460px)}
.auth-page .auth-card h2{
  font-size:clamp(1.65rem,3.6vh,2rem);
  line-height:1.1;
  margin:.15rem 0;
}
.auth-page .auth-card .text-secondary.mb-4{margin-bottom:clamp(.8rem,2.4vh,1.5rem)!important}
.auth-page .auth-card .mb-3{margin-bottom:clamp(.65rem,1.8vh,1rem)!important}
.auth-page .auth-card .form-check.mb-4{margin-bottom:clamp(.8rem,2.2vh,1.35rem)!important}
.auth-page .form-control{min-height:clamp(44px,6.5vh,51px)}
.auth-page .btn{padding:clamp(.62rem,1.7vh,.78rem) 1rem}
.auth-page .met-footer{
  position:static;
  inset:auto;
  margin:0;
  padding:clamp(.38rem,1vh,.62rem) 1rem clamp(.45rem,1.15vh,.72rem);
  background:#fff;
  border-top:1px solid var(--met-line);
  font-size:clamp(.62rem,1.28vh,.72rem);
  line-height:1.35;
  z-index:auto;
}

@media(max-width:991.98px){
  .auth-page .guest-shell{grid-template-rows:minmax(0,1fr) auto}
  .auth-page .auth-layout{grid-template-columns:1fr}
  .auth-page .auth-brand-panel{display:none}
  .auth-page .auth-form-panel{
    height:100%;
    min-height:0;
    padding:clamp(.75rem,2.5vh,1.5rem) clamp(1rem,6vw,2.5rem);
    background:linear-gradient(180deg,#f3fbfb,#fff 48%);
  }
  .auth-page .auth-card{width:min(100%,440px)}
  .auth-page .mobile-login-logo{
    width:clamp(62px,12vh,88px);
    height:clamp(62px,12vh,88px);
  }
  .auth-page .auth-card .d-lg-none.mb-4{margin-bottom:clamp(.45rem,1.6vh,1rem)!important}
  .auth-page .met-footer{margin:0;position:static}
}

@media(max-width:575.98px){
  .auth-page .auth-form-panel{padding:.65rem 1rem}
  .auth-page .auth-card h2{font-size:1.55rem}
  .auth-page .eyebrow{font-size:.6rem;margin-bottom:.2rem}
  .auth-page .auth-card .text-secondary{font-size:.82rem}
  .auth-page .form-label{font-size:.76rem;margin-bottom:.28rem}
  .auth-page .form-control{min-height:43px;font-size:.9rem}
  .auth-page .form-check-label{font-size:.82rem}
  .auth-page .met-footer{margin:0;padding:.35rem .7rem .45rem;font-size:.61rem;line-height:1.28}
}

@media(max-height:650px) and (min-width:992px){
  .auth-page .auth-brand-panel{padding:1rem 2rem}
  .auth-page .auth-logo{width:64px;height:64px;border-radius:18px}
  .auth-page .brand-pill{margin-top:.45rem;font-size:.61rem}
  .auth-page .auth-brand-copy h1{font-size:clamp(1.8rem,5.5vh,2.7rem);margin:.5rem 0 .3rem}
  .auth-page .auth-brand-copy p{font-size:.78rem}
  .auth-page .auth-form-panel{padding:.8rem 2.5rem}
  .auth-page .auth-card h2{font-size:1.55rem}
  .auth-page .auth-card .text-secondary.mb-4{margin-bottom:.65rem!important;font-size:.82rem}
  .auth-page .auth-card .mb-3{margin-bottom:.55rem!important}
  .auth-page .auth-card .form-check.mb-4{margin-bottom:.65rem!important}
  .auth-page .form-control{min-height:42px}
  .auth-page .btn{padding:.58rem 1rem}
  .auth-page .met-footer{padding:.32rem 1rem .4rem;font-size:.62rem;line-height:1.25}
}

@media(max-height:590px) and (max-width:991.98px){
  .auth-page .mobile-login-logo{width:54px;height:54px}
  .auth-page .auth-card .d-lg-none.mb-4{margin-bottom:.3rem!important}
  .auth-page .auth-card h2{font-size:1.4rem}
  .auth-page .auth-card .text-secondary.mb-4{margin-bottom:.45rem!important;font-size:.76rem}
  .auth-page .auth-card .mb-3{margin-bottom:.42rem!important}
  .auth-page .auth-card .form-check.mb-4{margin-bottom:.48rem!important}
  .auth-page .form-control{min-height:40px}
  .auth-page .btn{padding:.5rem .8rem}
}

/* Phase 3: project management. Login styles above remain unchanged. */
.project-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1rem}
.project-card{display:block;background:#fff;border:1px solid var(--met-line);border-radius:22px;padding:1.2rem;color:inherit;text-decoration:none;box-shadow:0 10px 30px rgba(6,63,66,.06);transition:.2s ease;min-width:0}
.project-card:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(6,63,66,.11);color:inherit}
.project-card-head,.card-heading,.project-money,.category-total-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.project-type-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(0,196,203,.16),rgba(105,52,203,.15));color:var(--met-teal)}
.project-card h3{font-size:1.05rem;margin:.9rem 0 .2rem;overflow-wrap:anywhere}.project-card p{font-size:.78rem;color:var(--met-muted);margin:0 0 1rem;overflow-wrap:anywhere}
.project-money>div{display:flex;flex-direction:column;min-width:0}.project-money span{font-size:.68rem;color:var(--met-muted);text-transform:uppercase;letter-spacing:.06em}.project-money strong{font-size:.95rem;overflow-wrap:anywhere}
.progress.thin{height:7px;margin:.9rem 0 .4rem;background:#edf5f5}.progress.thin .progress-bar{background:linear-gradient(90deg,var(--met-teal),#6b34ca)}
.status-badge{font-size:.68rem;font-weight:700;padding:.35rem .6rem;border-radius:999px;background:#eef7f7;color:var(--met-teal);white-space:nowrap}.status-active{background:#e8f8f1;color:#147a50}.status-completed{background:#eee8ff;color:#5e35b1}.status-on-hold{background:#fff4dc;color:#9a6800}.status-cancelled{background:#ffe9ec;color:#b3263e}
.responsive-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.responsive-form-grid .span-2{grid-column:1/-1}
.project-detail-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:1rem}.detail-list{margin:0}.detail-list>div{display:grid;grid-template-columns:150px 1fr;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--met-line)}.detail-list>div:last-child{border-bottom:0}.detail-list dt{color:var(--met-muted);font-size:.78rem}.detail-list dd{margin:0;overflow-wrap:anywhere}
.category-total-row{padding:.8rem 0;border-bottom:1px solid var(--met-line)}.category-total-row:last-child{border-bottom:0}.detail-amount{font-size:2.2rem;font-weight:800;color:var(--met-teal);margin-bottom:1rem}.receipt-preview{display:flex;align-items:center;gap:.75rem;padding:1rem;border-radius:16px;background:#f3fafa;text-decoration:none;color:var(--met-teal)}.receipt-preview i{font-size:1.6rem}
@media(max-width:1100px){.project-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767.98px){.project-card-grid{grid-template-columns:1fr}.responsive-form-grid{grid-template-columns:1fr}.responsive-form-grid .span-2{grid-column:auto}.project-detail-grid{grid-template-columns:1fr}.detail-list>div{grid-template-columns:1fr;gap:.2rem}.project-card{border-radius:18px;padding:1rem}.project-money{gap:.5rem}.project-money strong{font-size:.88rem}}

/* Phase 4: budgets and responsive insights */
.page-actions-wrap{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem}.page-actions{display:flex;gap:.65rem;flex-wrap:wrap}.btn-outline-met{border:1px solid #087f82;color:#07575a;background:#fff}.btn-outline-met:hover{background:#e9fbfb;color:#06474a}.budget-filter-card{margin-bottom:1.25rem}.compact-filter-form{display:flex;align-items:flex-end;gap:.75rem}.compact-filter-form>div{min-width:220px}.compact-filter-form label,.form-field label{display:block;font-weight:700;font-size:.84rem;margin-bottom:.4rem;color:#073f43}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;margin:1rem 0 .8rem}.section-heading h3{margin:0}.section-heading a{font-weight:700;color:#5d2ab6;text-decoration:none}.mt-section{margin-top:1.8rem}.budget-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.budget-card{background:#fff;border:1px solid rgba(5,87,90,.1);border-radius:18px;padding:1rem;box-shadow:0 10px 28px rgba(1,48,51,.06);color:inherit;text-decoration:none}.budget-card-link:hover{transform:translateY(-2px);box-shadow:0 14px 35px rgba(1,48,51,.11)}.budget-card-top{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start}.budget-card-top>div{display:flex;flex-direction:column;min-width:0}.budget-label{font-size:.92rem;font-weight:800;color:#073f43;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.budget-card strong{font-size:1.35rem;color:#052f32}.budget-card small{color:#687b7d}.status-chip.budget-success{background:#e7f8f1;color:#13775b}.status-chip.budget-info{background:#e8f8fb;color:#087d87}.status-chip.budget-warning{background:#fff3d8;color:#9a6500}.status-chip.budget-danger{background:#ffe6e8;color:#b32636}.budget-progress{height:9px;background:#edf3f3;border-radius:999px;overflow:hidden;margin:1rem 0}.budget-progress span{display:block;height:100%;border-radius:inherit}.progress-success{background:#13a77a}.progress-info{background:#03bfc1}.progress-warning{background:#f0a928}.progress-danger{background:#d64052}.budget-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}.budget-stats span{font-size:.72rem;color:#738285;display:flex;flex-direction:column}.budget-stats b{font-size:.84rem;color:#143f42}.btn-link-danger{border:0;background:transparent;color:#b32636;font-size:.8rem;padding:.75rem 0 0}.wide{grid-column:1/-1}.form-page-shell{max-width:860px;margin:0 auto}.responsive-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.full-width{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:.65rem;margin-top:1.25rem}.welcome-actions{display:flex;gap:.6rem;flex-wrap:wrap}.btn-glass{color:#fff;border:1px solid rgba(255,255,255,.55);background:rgba(255,255,255,.12)}.btn-glass:hover{background:#fff;color:#07575a}.budget-alert-strip{display:flex;align-items:center;gap:1rem;background:#fff;border:1px solid rgba(5,87,90,.1);border-radius:16px;padding:.75rem 1rem;margin:1rem 0;overflow:hidden}.alert-strip-title{display:flex;align-items:center;gap:.45rem;font-weight:800;white-space:nowrap;color:#6b3a00}.alert-strip-items{display:flex;gap:.5rem;overflow:auto;padding-bottom:2px}.alert-pill{display:flex;align-items:center;gap:.4rem;border-radius:999px;padding:.45rem .75rem;white-space:nowrap;text-decoration:none;font-size:.78rem}.alert-pill strong{color:inherit}.alert-info{background:#e8f8fb;color:#087d87}.alert-warning{background:#fff3d8;color:#8b5b00}.alert-danger{background:#ffe6e8;color:#a91e31}.dashboard-grid-charts{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-wrap{height:260px;position:relative}.insight-list{display:grid;gap:.25rem}.insight-list>div{display:flex;justify-content:space-between;align-items:center;padding:.85rem 0;border-bottom:1px solid #edf2f2}.insight-list>div:last-child{border-bottom:0}.insight-list span{display:flex;align-items:center;gap:.55rem;color:#586f71}.insight-list i{color:#6f36cf}.insight-list strong{color:#073f43}
@media(max-width:991.98px){.budget-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-actions-wrap{align-items:flex-start}.dashboard-grid-charts{grid-template-columns:1fr 1fr}}
@media(max-width:767.98px){.page-actions-wrap{display:block}.page-actions{margin-top:.85rem}.page-actions .btn{flex:1}.budget-card-grid{grid-template-columns:1fr}.compact-filter-form{align-items:stretch}.compact-filter-form>div{min-width:0;flex:1}.dashboard-grid-charts{grid-template-columns:1fr}.budget-alert-strip{align-items:flex-start;flex-direction:column}.responsive-form-grid{grid-template-columns:1fr}.full-width{grid-column:auto}.budget-stats{gap:.2rem}.chart-wrap{height:230px}}
@media(max-width:480px){.page-actions{display:grid;grid-template-columns:1fr}.compact-filter-form{display:grid;grid-template-columns:1fr}.compact-filter-form .btn{width:100%}.budget-card{padding:.9rem}.budget-card strong{font-size:1.18rem}.budget-stats span{font-size:.68rem}.welcome-actions{display:grid;grid-template-columns:1fr}.welcome-actions .btn{width:100%}.form-actions{position:sticky;bottom:82px;background:#fff;padding:.75rem 0;z-index:2}.chart-wrap{height:210px}}

/* Phase 5: responsive reports and exports. Existing forms and login fields remain unchanged. */
.report-banner{margin-bottom:1rem}.report-filter-card{padding:1rem}.report-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem;align-items:end}.report-filter-grid label{display:block;font-size:.78rem;font-weight:800;color:var(--met-teal);margin-bottom:.35rem}.report-search{grid-column:span 2}.report-filter-actions{display:flex;gap:.55rem}.report-filter-actions .btn{flex:1}.report-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:1.4rem 0 .8rem}.report-toolbar>div:first-child{display:flex;flex-direction:column}.report-toolbar span{font-size:.76rem;color:var(--met-muted)}.report-export-actions{display:flex;gap:.5rem;flex-wrap:wrap}.report-export-actions .btn{display:flex;align-items:center;gap:.4rem}.report-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:1rem}.report-table-card{overflow:hidden}.report-table{font-size:.79rem}.report-table thead th{background:#073f43;color:#fff;border:0;padding:.8rem;white-space:nowrap}.report-table tbody td{padding:.78rem;border-color:#edf2f2}.report-table tfoot td{padding:.85rem;background:#f1ecff;font-weight:800;color:#4c249b}.report-area{display:inline-flex;padding:.3rem .55rem;border-radius:999px;font-size:.66rem;font-weight:800}.report-area.household{background:#e5f8f5;color:#08715e}.report-area.project{background:#efe9ff;color:#5d2ab6}.amount-cell{font-weight:800;color:#073f43;white-space:nowrap}.report-summary-card{padding:1rem;height:max-content}.report-category-list>div{display:flex;justify-content:space-between;gap:.75rem;padding:.75rem 0;border-bottom:1px solid #edf2f2}.report-category-list>div:last-child{border-bottom:0}.report-category-list span{font-size:.78rem;color:#5f7375}.report-category-list strong{font-size:.82rem;color:#073f43;white-space:nowrap}.empty-report{text-align:center;padding:3rem 1rem}.empty-report i{font-size:2.4rem;color:#7d51d8}.empty-report h3{font-size:1.15rem;margin:.8rem 0 .3rem}.empty-report p{color:var(--met-muted)}
@media(max-width:1199.98px){.report-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.report-search{grid-column:span 2}.report-layout{grid-template-columns:1fr}.report-summary-card{order:-1}.report-category-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1rem}}
@media(max-width:767.98px){.report-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-search{grid-column:1/-1}.report-filter-actions{grid-column:1/-1}.report-toolbar{align-items:flex-start;flex-direction:column}.report-export-actions{width:100%;display:grid;grid-template-columns:repeat(4,1fr)}.report-export-actions .btn{justify-content:center}.report-table-card{background:transparent;border:0;box-shadow:none}.report-table,.report-table tbody,.report-table tr,.report-table td{display:block;width:100%}.report-table thead,.report-table tfoot{display:none}.report-table tbody{display:grid;gap:.75rem}.report-table tbody tr{background:#fff;border:1px solid var(--met-line);border-radius:16px;padding:.6rem .8rem;box-shadow:0 8px 22px rgba(6,63,66,.05)}.report-table tbody td{display:grid;grid-template-columns:110px minmax(0,1fr);gap:.5rem;text-align:left!important;border:0;padding:.35rem 0;overflow-wrap:anywhere}.report-table tbody td::before{content:attr(data-label);font-size:.68rem;font-weight:800;color:#789; text-transform:uppercase;letter-spacing:.04em}.report-category-list{grid-template-columns:1fr}.report-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.report-filter-grid{grid-template-columns:1fr}.report-search,.report-filter-actions{grid-column:auto}.report-export-actions{grid-template-columns:repeat(2,1fr)}.report-export-actions .btn{min-height:44px}.report-metrics{grid-template-columns:1fr}.report-table tbody td{grid-template-columns:92px minmax(0,1fr)}.report-toolbar{margin-top:1rem}}

/* Login-only refinement: preserve the existing two-panel design without a page footer. */
.auth-page .guest-shell{
  min-height:100svh;
  height:100svh;
  display:block;
  overflow:hidden;
}
.auth-page .app-content{
  height:100%;
  min-height:0;
}
.auth-page .auth-layout{
  height:100%;
  min-height:0;
}
.auth-page .auth-brand-copy h1{
  font-size:clamp(2rem,4.25vw,4rem);
  line-height:1.04;
  margin:clamp(.7rem,2vh,1.05rem) 0 clamp(.35rem,1vh,.7rem);
}
.auth-page .auth-brand-copy p{
  font-size:clamp(.82rem,1.2vw,1rem);
  line-height:1.5;
  margin-bottom:0;
}
.auth-page .auth-logo{
  width:clamp(74px,8vw,104px);
  height:clamp(74px,8vw,104px);
}
.auth-page .brand-pill{
  margin-top:clamp(.65rem,1.5vh,1rem);
  font-size:clamp(.62rem,.75vw,.72rem);
}
.auth-page .auth-form-panel{
  min-height:0;
  overflow:hidden;
}
.auth-page .auth-card h2{
  font-size:clamp(1.55rem,2.25vw,2rem);
}
.login-powered-by{
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:.25rem .4rem;
  margin-top:clamp(.65rem,1.8vh,1rem);
  color:var(--met-muted);
  font-size:clamp(.65rem,1vw,.74rem);
  line-height:1.35;
  text-align:center;
}
.login-powered-by strong{color:var(--met-teal)}
.login-powered-by a{color:var(--met-teal);font-weight:800;white-space:nowrap}
.login-powered-by a:hover{color:var(--met-purple)}

@media(max-width:991.98px){
  .auth-page .guest-shell{overflow:auto}
  .auth-page .auth-layout{min-height:100svh;height:auto}
  .auth-page .auth-form-panel{min-height:100svh}
}

@media(max-height:760px) and (min-width:992px){
  .auth-page .auth-brand-panel{padding:clamp(1.25rem,4vh,2.5rem) clamp(2rem,5vw,4rem)}
  .auth-page .auth-form-panel{padding:clamp(.8rem,3vh,1.8rem) clamp(2rem,5vw,4rem)}
  .auth-page .auth-brand-copy h1{font-size:clamp(2rem,5.7vh,3.35rem)}
  .auth-page .auth-card .text-secondary.mb-4{margin-bottom:.8rem!important}
  .auth-page .auth-card .mb-3{margin-bottom:.7rem!important}
  .auth-page .auth-card .form-check.mb-4{margin-bottom:.8rem!important}
}

/* Phase 6: administration, activity and backups. Existing forms remain unchanged. */
.admin-filter{display:flex;gap:.75rem;align-items:center;margin:1rem 0}.admin-filter .form-control{flex:1}.admin-filter .form-select{max-width:220px}.admin-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.user-admin-card{padding:1rem}.user-card-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.75rem;align-items:center}.user-card-head>div{display:flex;flex-direction:column;min-width:0}.user-card-head strong,.user-card-head span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-card-head>div span{font-size:.76rem;color:var(--met-muted)}.user-admin-card dl{margin:1rem 0;display:grid;gap:.55rem}.user-admin-card dl div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid #edf2f2;padding-bottom:.45rem}.user-admin-card dt{font-size:.7rem;text-transform:uppercase;color:#789}.user-admin-card dd{margin:0;font-size:.78rem;text-align:right;overflow-wrap:anywhere}.user-card-actions{display:flex;justify-content:flex-end;gap:.5rem}.activity-list{padding:.5rem 1rem}.activity-list article{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.75rem;padding:1rem 0;border-bottom:1px solid #edf2f2}.activity-list article:last-child{border-bottom:0}.activity-icon,.backup-icon{width:42px;height:42px;border-radius:13px;background:#e8f8fb;color:#087d87;display:grid;place-items:center}.activity-list p{margin:.18rem 0;color:#5e7173;font-size:.82rem}.activity-list small{color:#899899}.pagination-wrap{display:flex;justify-content:center;gap:.35rem;margin-top:1rem}.backup-note{display:flex;gap:.8rem;align-items:center;padding:1rem;border:1px solid #bdebe7;background:#effbf9;border-radius:16px;margin:1rem 0}.backup-note i{font-size:1.45rem;color:#0b8d78}.backup-note div{display:flex;flex-direction:column}.backup-note span{font-size:.8rem;color:#5e7173}.backup-list article{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:.75rem;align-items:center;padding:.9rem 0;border-bottom:1px solid #edf2f2}.backup-list article:last-child{border-bottom:0}.backup-list article>div{display:flex;flex-direction:column;min-width:0}.backup-list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.backup-list small{color:#7d8d8f}.btn-outline-met{border-color:#0b7d82;color:#0b6b70}.btn-outline-met:hover{background:#0b6b70;color:#fff}
@media(max-width:1199.98px){.admin-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767.98px){.admin-card-grid{grid-template-columns:1fr}.admin-filter{display:grid;grid-template-columns:1fr}.admin-filter .form-select{max-width:none}.backup-list article{grid-template-columns:auto minmax(0,1fr) auto}.backup-list article .btn{grid-column:2/-1;justify-self:start}.user-card-actions .btn{min-height:40px}.activity-list{padding:.25rem .85rem}}
@media(max-width:480px){.user-card-head{grid-template-columns:auto minmax(0,1fr)}.user-card-head>.status-chip{grid-column:2;justify-self:start}.user-card-actions{display:grid;grid-template-columns:1fr 1fr}.user-card-actions form,.user-card-actions button,.user-card-actions a{width:100%}.backup-list article{grid-template-columns:auto minmax(0,1fr)}.backup-list article>.status-chip{grid-column:2;justify-self:start}.backup-list article .btn{grid-column:2}.page-actions-wrap>form .btn{width:100%}}

/* Phase 7: global search and smart notifications. */
.topbar-actions{display:flex;align-items:center;gap:.65rem}.topbar-search{height:42px;min-width:240px;align-items:center;gap:.55rem;padding:0 .85rem;border:1px solid #dfeaea;border-radius:14px;background:#fff}.topbar-search i{color:#7a9092}.topbar-search input{width:100%;border:0;outline:0;background:transparent;font-size:.84rem;color:var(--met-ink)}.notification-button{position:relative;width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:#fff;border:1px solid #dfeaea;color:var(--met-teal);text-decoration:none}.notification-button:hover{background:#eefafa;color:var(--met-purple)}.notification-button span{position:absolute;top:-5px;right:-5px;min-width:19px;height:19px;padding:0 4px;border-radius:10px;background:#6d35c7;color:#fff;font-size:.62rem;font-weight:800;display:grid;place-items:center;border:2px solid #fff}.global-search-page{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7rem}.global-search-page>i{font-size:1.1rem;color:#758b8d}.global-search-page input{height:46px;border:0;outline:0;background:#f3f8f8;border-radius:13px;padding:0 1rem;min-width:0}.result-section{margin-top:1rem;padding:0}.result-section h3{display:flex;align-items:center;gap:.55rem;font-size:.92rem;margin:0;padding:1rem 1.1rem;border-bottom:1px solid #edf2f2}.search-result-list>a{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.9rem 1.1rem;border-bottom:1px solid #edf2f2;color:inherit;text-decoration:none}.search-result-list>a:last-child{border-bottom:0}.search-result-list>a:hover{background:#f7fbfb}.result-icon{width:40px;height:40px;border-radius:12px;background:#eaf8f8;color:#087c82;display:grid;place-items:center}.search-result-list>a>span:nth-child(2){display:flex;flex-direction:column;min-width:0}.search-result-list strong,.search-result-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-list small{font-size:.74rem;color:#758789;margin-top:.15rem}.search-result-list b{font-size:.83rem;color:var(--met-teal);white-space:nowrap}.notification-list{padding:.35rem 1rem}.notification-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.8rem;padding:1rem .2rem;border-bottom:1px solid #edf2f2}.notification-item:last-child{border-bottom:0}.notification-item.unread{background:linear-gradient(90deg,rgba(0,190,196,.06),transparent);border-radius:12px;padding-left:.65rem;padding-right:.65rem}.notification-icon{width:43px;height:43px;border-radius:13px;display:grid;place-items:center;font-size:1.05rem}.notification-icon.info{background:#e9f7fb;color:#167ca0}.notification-icon.warning{background:#fff4d9;color:#aa7100}.notification-icon.danger{background:#ffe8eb;color:#bd2944}.notification-item>div{min-width:0}.notification-item p{margin:.18rem 0;color:#5f7274;font-size:.81rem}.notification-item small{color:#89989a;font-size:.7rem}.empty-state{text-align:center;padding:2.5rem 1rem}.empty-state>i{font-size:2rem;color:#83a0a2}.empty-state h3{font-size:1rem;margin:.65rem 0 .25rem}.empty-state p{color:#758789;font-size:.82rem;margin:0}
@media(max-width:767.98px){.app-topbar{align-items:center}.topbar-actions{gap:.45rem}.notification-button,.profile-button{width:40px;height:40px}.global-search-page{grid-template-columns:auto minmax(0,1fr)}.global-search-page .btn{grid-column:1/-1;width:100%}.search-result-list>a{grid-template-columns:auto minmax(0,1fr)}.search-result-list>a>b,.search-result-list>a>.status-chip{grid-column:2;justify-self:start}.notification-list{padding:.2rem .75rem}.notification-item{grid-template-columns:auto minmax(0,1fr)}.notification-item form{grid-column:2}.notification-item form .btn{min-height:38px}.search-page-card{padding:.85rem}}
@media(max-width:420px){.app-topbar .eyebrow{display:none}.app-topbar h1{font-size:1.15rem}.notification-button,.profile-button{width:38px;height:38px}.search-result-list>a{padding:.8rem}.result-icon{width:38px;height:38px}}

/* Phase 9: saved and recurring expense templates. Existing expense forms remain unchanged. */
.template-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1rem 0}.template-summary>div{display:flex;flex-direction:column;padding:.35rem .75rem;border-right:1px solid #e7eeee}.template-summary>div:last-child{border-right:0}.template-summary span{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--met-muted)}.template-summary strong{font-size:1.45rem;color:var(--met-teal)}.template-filter{display:grid;grid-template-columns:minmax(0,1fr) 220px auto;gap:.75rem;align-items:end;margin-bottom:1rem}.template-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.template-card{background:#fff;border:1px solid rgba(5,87,90,.1);border-radius:20px;padding:1rem;box-shadow:0 10px 28px rgba(1,48,51,.06)}.template-card.inactive{opacity:.72}.template-card-head{display:flex;justify-content:space-between;gap:.5rem;align-items:center}.template-type{display:inline-flex;align-items:center;gap:.4rem;font-size:.72rem;font-weight:800;border-radius:999px;padding:.35rem .65rem}.template-type.household{background:#e9f9f7;color:#08786f}.template-type.project{background:#f0eaff;color:#6334b4}.template-card h3{font-size:1rem;margin:1rem 0 .25rem;color:var(--met-teal)}.template-card>p{font-size:.8rem;color:var(--met-muted);min-height:2.4em;margin-bottom:.6rem}.template-amount{font-size:1.6rem;font-weight:900;color:var(--met-teal);margin-bottom:.75rem}.template-card dl{display:grid;gap:.45rem;margin:0 0 1rem}.template-card dl div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid #edf2f2;padding-bottom:.4rem}.template-card dt{font-size:.69rem;text-transform:uppercase;color:#819092}.template-card dd{margin:0;font-size:.76rem;font-weight:700;text-align:right;overflow-wrap:anywhere}.template-actions{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:.45rem}.template-actions form:first-child .btn{width:100%}.template-actions .btn{min-height:42px}.template-actions form{margin:0}
@media(max-width:1199.98px){.template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767.98px){.template-grid{grid-template-columns:1fr}.template-filter{grid-template-columns:1fr}.template-filter .btn{width:100%}.template-summary{gap:.25rem}.template-summary>div{padding:.25rem .5rem}.template-summary strong{font-size:1.15rem}.template-card>p{min-height:0}}
@media(max-width:420px){.template-summary{grid-template-columns:1fr 1fr}.template-summary>div{border-right:0;border-bottom:1px solid #e7eeee}.template-summary>div:last-child{grid-column:1/-1;border-bottom:0}.template-actions{grid-template-columns:1fr repeat(3,44px)}}

/* Phase 10: bulk expense import */
.import-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;margin-bottom:1.5rem}.import-intro h2{max-width:720px}.import-card{overflow:hidden}.import-dropzone{display:flex;min-height:245px;border:2px dashed rgba(12,115,121,.28);border-radius:22px;background:linear-gradient(145deg,rgba(39,196,203,.06),rgba(111,60,178,.05));align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:1.5rem;cursor:pointer;transition:.2s ease}.import-dropzone:hover{border-color:var(--met-primary,#087f84);transform:translateY(-2px)}.import-dropzone>i{font-size:2.4rem;margin-bottom:.65rem}.import-dropzone strong{font-size:1.05rem}.import-dropzone span{font-size:.86rem;opacity:.7;margin-bottom:1rem}.import-dropzone .form-control{max-width:430px}.import-guide{display:grid;gap:.75rem}.import-guide div{display:flex;justify-content:space-between;gap:1rem;padding:.85rem 0;border-bottom:1px solid rgba(0,0,0,.07)}.import-guide div:last-child{border-bottom:0}.import-guide strong{font-size:.9rem}.import-guide span{text-align:right;font-size:.82rem;opacity:.72}.feature-icon{font-size:1.7rem}.empty-state.compact{min-height:130px}
@media(max-width:767.98px){.import-intro{display:block}.import-intro .btn{width:100%;margin-top:1rem}.import-dropzone{min-height:210px}.import-guide div{display:block}.import-guide span{display:block;text-align:left;margin-top:.2rem}}

/* Phase 12: read-only spending trends and comparison centre. */
.trends-heading{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end}.trends-heading p{margin-bottom:0}.trend-period-form{width:190px}.trend-period-form label{display:block;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--met-muted);margin-bottom:.35rem}.trend-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:1rem 0}.metric-card{background:#fff;border:1px solid rgba(5,87,90,.1);border-radius:20px;padding:1rem;display:flex;flex-direction:column;box-shadow:0 10px 28px rgba(1,48,51,.05)}.metric-card>span{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--met-muted)}.metric-card>strong{font-size:1.45rem;color:var(--met-teal);margin:.35rem 0}.metric-card>small{font-size:.73rem;color:#7a8d8f}.trend-up{color:#bd2944!important}.trend-down{color:#0b8d78!important}.trend-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:1rem}.trend-chart-wrap{height:340px}.trend-breakdown-card{align-self:stretch}.trend-area-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-top:1.2rem}.trend-area-row span{display:flex;align-items:center;gap:.5rem;font-size:.82rem}.trend-area-row strong{font-size:.9rem}.trend-progress{height:10px;border-radius:999px;background:#eaf2f2;overflow:hidden;margin-top:.55rem}.trend-progress span{display:block;height:100%;background:#07979d;border-radius:999px}.trend-progress.project span{background:#6d35c7}.trend-list-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}.ranked-list>div{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.7rem;align-items:center;padding:.78rem 0;border-bottom:1px solid #edf2f2}.ranked-list>div:last-child{border-bottom:0}.rank-number{width:28px;height:28px;border-radius:9px;background:#edf8f8;color:#087c82;display:grid;place-items:center;font-size:.72rem;font-weight:900}.rank-name{font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranked-list strong{font-size:.8rem;color:var(--met-teal);white-space:nowrap}
@media(max-width:1199.98px){.trend-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767.98px){.trends-heading{display:block}.trend-period-form{width:100%;margin-top:1rem}.trend-layout,.trend-list-grid{grid-template-columns:1fr}.trend-chart-wrap{height:290px}.trend-summary-grid{gap:.65rem}}
@media(max-width:420px){.trend-summary-grid{grid-template-columns:1fr}.metric-card>strong{font-size:1.25rem}.ranked-list>div{grid-template-columns:auto minmax(0,1fr)}.ranked-list strong{grid-column:2}}

/* Phase 13: Expense calendar */
.calendar-page{display:grid;gap:1.25rem}.calendar-month-nav{display:flex;align-items:center;gap:.5rem}.calendar-filters{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.4fr) auto;gap:1rem;align-items:end}.calendar-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.calendar-summary-grid article{background:#fff;border:1px solid rgba(5,68,72,.1);border-radius:18px;padding:1rem 1.1rem;box-shadow:0 8px 24px rgba(5,43,46,.05)}.calendar-summary-grid span{display:block;color:#657579;font-size:.82rem;margin-bottom:.3rem}.calendar-summary-grid strong{font-size:1.35rem;color:#063f42}.expense-calendar-card{background:#fff;border:1px solid rgba(5,68,72,.1);border-radius:22px;overflow:hidden;box-shadow:0 12px 34px rgba(5,43,46,.06)}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-weekdays{background:#f3f8f8;border-bottom:1px solid rgba(5,68,72,.1)}.calendar-weekdays span{padding:.75rem;text-align:center;font-size:.76rem;font-weight:700;color:#527074}.calendar-day{position:relative;min-height:108px;padding:.7rem;border-right:1px solid #edf1f1;border-bottom:1px solid #edf1f1;text-decoration:none;color:#173b3e;transition:.18s ease}.calendar-day:nth-child(7n){border-right:0}.calendar-day:hover{background:#f2fbfb;color:#173b3e}.calendar-day.outside{background:#fafcfc;color:#a6b1b2}.calendar-day.selected{background:rgba(34,199,203,.12);box-shadow:inset 0 0 0 2px #19aeb3}.day-number{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border-radius:50%;font-weight:700}.calendar-day.selected .day-number{background:#087b80;color:#fff}.day-total{display:block;margin-top:.7rem;font-size:.84rem;font-weight:800;color:#087b80}.calendar-day small{display:block;font-size:.68rem;color:#7c8d90}.calendar-day-details{background:#fff;border:1px solid rgba(5,68,72,.1);border-radius:22px;padding:1.2rem;box-shadow:0 12px 34px rgba(5,43,46,.06)}.calendar-expense-row{display:grid;grid-template-columns:auto 1fr auto;gap:.85rem;align-items:center;padding:.9rem 0;border-top:1px solid #edf1f1;text-decoration:none;color:#173b3e}.calendar-expense-row:first-of-type{border-top:0}.calendar-expense-row:hover strong{color:#087b80}.calendar-expense-row small{display:block;color:#718184;margin-top:.15rem}.calendar-expense-row b{white-space:nowrap}.expense-kind{width:40px;height:40px;border-radius:13px;display:grid;place-items:center}.expense-kind.household{background:rgba(34,199,203,.14);color:#087b80}.expense-kind.project{background:rgba(100,69,190,.12);color:#6743bd}
@media(max-width:767.98px){.calendar-filters{grid-template-columns:1fr}.calendar-summary-grid{grid-template-columns:1fr}.calendar-weekdays span{padding:.55rem .2rem;font-size:.65rem}.calendar-day{min-height:72px;padding:.35rem}.day-number{width:23px;height:23px;font-size:.75rem}.day-total{margin-top:.35rem;font-size:.63rem}.calendar-day small{display:none}.expense-calendar-card{border-radius:16px}.calendar-expense-row{grid-template-columns:auto minmax(0,1fr);}.calendar-expense-row b{grid-column:2}.calendar-month-nav{width:100%;justify-content:space-between}}

/* Phase 13: Expense calendar */
.calendar-page{display:grid;gap:1.25rem}.calendar-month-nav{display:flex;align-items:center;gap:.5rem}.calendar-filters{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.4fr) auto;gap:1rem;align-items:end}.calendar-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.calendar-summary-grid article{background:#fff;border:1px solid rgba(5,68,72,.1);border-radius:18px;padding:1rem 1.1rem;box-shadow:0 8px 24px rgba(5,43,46,.05)}.calendar-summary-grid span{display:block;color:#657579;font-size:.82rem;margin-bottom:.3rem}.calendar-summary-grid strong{font-size:1.35rem;color:#063f42}.expense-calendar-card{background:#fff;border:1px solid rgba(5,68,72,.1);border-radius:22px;overflow:hidden;box-shadow:0 12px 34px rgba(5,43,46,.06)}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-weekdays{background:#f3f8f8;border-bottom:1px solid rgba(5,68,72,.1)}.calendar-weekdays span{padding:.75rem;text-align:center;font-size:.76rem;font-weight:700;color:#527074}.calendar-day{position:relative;min-height:108px;padding:.7rem;border-right:1px solid #edf1f1;border-bottom:1px solid #edf1f1;text-decoration:none;color:#173b3e;transition:.18s ease}.calendar-day:nth-child(7n){border-right:0}.calendar-day:hover{background:#f2fbfb;color:#173b3e}.calendar-day.outside{background:#fafcfc;color:#a6b1b2}.calendar-day.selected{background:rgba(34,199,203,.12);box-shadow:inset 0 0 0 2px #19aeb3}.day-number{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border-radius:50%;font-weight:700}.calendar-day.selected .day-number{background:#087b80;color:#fff}.day-total{display:block;margin-top:.7rem;font-size:.84rem;font-weight:800;color:#087b80}.calendar-day small{display:block;font-size:.68rem;color:#7c8d90}.calendar-day-details{background:#fff;border:1px solid rgba(5,68,72,.1);border-radius:22px;padding:1.2rem;box-shadow:0 12px 34px rgba(5,43,46,.06)}.calendar-expense-row{display:grid;grid-template-columns:auto 1fr auto;gap:.85rem;align-items:center;padding:.9rem 0;border-top:1px solid #edf1f1;text-decoration:none;color:#173b3e}.calendar-expense-row:first-of-type{border-top:0}.calendar-expense-row:hover strong{color:#087b80}.calendar-expense-row small{display:block;color:#718184;margin-top:.15rem}.calendar-expense-row b{white-space:nowrap}.expense-kind{width:40px;height:40px;border-radius:13px;display:grid;place-items:center}.expense-kind.household{background:rgba(34,199,203,.14);color:#087b80}.expense-kind.project{background:rgba(100,69,190,.12);color:#6743bd}
@media(max-width:767.98px){.calendar-filters{grid-template-columns:1fr}.calendar-summary-grid{grid-template-columns:1fr}.calendar-weekdays span{padding:.55rem .2rem;font-size:.65rem}.calendar-day{min-height:72px;padding:.35rem}.day-number{width:23px;height:23px;font-size:.75rem}.day-total{margin-top:.35rem;font-size:.63rem}.calendar-day small{display:none}.expense-calendar-card{border-radius:16px}.calendar-expense-row{grid-template-columns:auto minmax(0,1fr)}.calendar-expense-row b{grid-column:2}.calendar-month-nav{width:100%;justify-content:space-between}}

/* Phase 14: read-only Supplier Spend Centre. */
.supplier-page{display:grid;gap:1.1rem}.supplier-filter-grid{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(3,minmax(150px,1fr)) auto;gap:.8rem;align-items:end}.supplier-filter-actions{display:flex;gap:.5rem}.supplier-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.supplier-summary-grid article{background:#fff;border:1px solid rgba(5,68,72,.1);border-radius:18px;padding:1rem 1.1rem;box-shadow:0 8px 24px rgba(5,43,46,.05);display:flex;flex-direction:column}.supplier-summary-grid span{font-size:.76rem;color:#657579}.supplier-summary-grid strong{font-size:1.3rem;color:#063f42;margin:.25rem 0}.supplier-summary-grid small{font-size:.7rem;color:#849295}.supplier-data-note{display:flex;gap:.65rem;align-items:flex-start;background:#eefafa;color:#27676a;border:1px solid rgba(8,127,130,.15);border-radius:14px;padding:.8rem 1rem;font-size:.8rem}.supplier-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.8fr);gap:1rem}.supplier-ranking-list{display:grid}.supplier-ranking-row{display:grid;grid-template-columns:auto minmax(170px,1fr) minmax(220px,.9fr) auto;gap:.8rem;align-items:center;padding:.9rem 0;border-top:1px solid #edf2f2}.supplier-ranking-row:first-child{border-top:0}.supplier-rank{width:30px;height:30px;border-radius:10px;background:#edf8f8;color:#087c82;display:grid;place-items:center;font-weight:900;font-size:.75rem}.supplier-name-block{min-width:0}.supplier-name-block strong{display:block;color:#063f42;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.supplier-name-block small{font-size:.7rem;color:#7a8b8d}.supplier-split{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.supplier-split span{font-size:.66rem;color:#7a8b8d}.supplier-split b{display:block;color:#31585b;font-size:.75rem}.supplier-total{white-space:nowrap;color:#063f42}.supplier-transaction-list{display:grid}.supplier-transaction-list a{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.65rem;align-items:center;padding:.78rem 0;border-top:1px solid #edf2f2;text-decoration:none;color:#173b3e}.supplier-transaction-list a:first-child{border-top:0}.supplier-transaction-list strong{display:block;font-size:.8rem}.supplier-transaction-list small{display:block;color:#748588;font-size:.68rem;line-height:1.45}.supplier-transaction-list b{white-space:nowrap;font-size:.78rem}.supplier-recent-card{align-self:start}
@media(max-width:1199.98px){.supplier-filter-grid{grid-template-columns:repeat(3,1fr)}.supplier-search-field{grid-column:span 2}.supplier-filter-actions{grid-column:3}.supplier-summary-grid{grid-template-columns:repeat(2,1fr)}.supplier-layout{grid-template-columns:1fr}.supplier-recent-card{order:-1}}
@media(max-width:767.98px){.supplier-filter-grid{grid-template-columns:1fr}.supplier-search-field,.supplier-filter-actions{grid-column:auto}.supplier-filter-actions .btn{flex:1}.supplier-summary-grid{grid-template-columns:1fr 1fr;gap:.65rem}.supplier-ranking-row{grid-template-columns:auto minmax(0,1fr) auto}.supplier-split{grid-column:2/-1}.supplier-transaction-list a{grid-template-columns:auto minmax(0,1fr)}.supplier-transaction-list b{grid-column:2}}
@media(max-width:420px){.supplier-summary-grid{grid-template-columns:1fr}.supplier-ranking-row{grid-template-columns:auto minmax(0,1fr)}.supplier-total{grid-column:2}.supplier-split{grid-column:2}}


/* Phase 15: read-only Category Spend Centre. */
.category-spend-page{display:grid;gap:1.1rem}.category-filter-grid{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(3,minmax(150px,1fr)) auto;gap:.8rem;align-items:end}.category-filter-actions{display:flex;gap:.5rem}.category-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.category-summary-grid article{background:#fff;border:1px solid rgba(5,68,72,.1);border-radius:18px;padding:1rem 1.1rem;box-shadow:0 8px 24px rgba(5,43,46,.05);display:flex;flex-direction:column;min-width:0}.category-summary-grid span{font-size:.76rem;color:#657579}.category-summary-grid strong{font-size:1.25rem;color:#063f42;margin:.25rem 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-summary-grid small{font-size:.7rem;color:#849295}.category-spend-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.8fr);gap:1rem}.category-ranking-list{display:grid}.category-ranking-row{display:grid;grid-template-columns:auto minmax(160px,1fr) minmax(150px,.8fr) minmax(190px,.8fr) auto;gap:.75rem;align-items:center;padding:.9rem 0;border-top:1px solid #edf2f2}.category-ranking-row:first-child{border-top:0}.category-rank{width:30px;height:30px;border-radius:10px;background:#edf8f8;color:#087c82;display:grid;place-items:center;font-weight:900;font-size:.75rem}.category-name-block{min-width:0}.category-name-block strong{display:block;color:#063f42;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-name-block small{font-size:.69rem;color:#7a8b8d}.category-progress>span{height:7px;background:#eaf1f1;border-radius:99px;overflow:hidden;display:block}.category-progress i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#12aeb4,#6c48bd)}.category-progress small{display:block;font-size:.64rem;color:#7a8b8d;margin-top:.25rem}.category-split{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}.category-split span{font-size:.64rem;color:#7a8b8d}.category-split b{display:block;color:#31585b;font-size:.73rem}.category-total{white-space:nowrap;color:#063f42}.category-transaction-list{display:grid}.category-transaction-list a{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.65rem;align-items:center;padding:.78rem 0;border-top:1px solid #edf2f2;text-decoration:none;color:#173b3e}.category-transaction-list a:first-child{border-top:0}.category-transaction-list strong{display:block;font-size:.8rem}.category-transaction-list small{display:block;color:#748588;font-size:.68rem;line-height:1.45}.category-transaction-list b{white-space:nowrap;font-size:.78rem}.category-recent-card{align-self:start}
@media(max-width:1199.98px){.category-filter-grid{grid-template-columns:repeat(3,1fr)}.category-search-field{grid-column:span 2}.category-filter-actions{grid-column:3}.category-summary-grid{grid-template-columns:repeat(2,1fr)}.category-spend-layout{grid-template-columns:1fr}.category-recent-card{order:-1}.category-ranking-row{grid-template-columns:auto minmax(150px,1fr) minmax(140px,.8fr) auto}.category-split{grid-column:2/4}}
@media(max-width:767.98px){.category-filter-grid{grid-template-columns:1fr}.category-search-field,.category-filter-actions{grid-column:auto}.category-filter-actions .btn{flex:1}.category-summary-grid{grid-template-columns:1fr 1fr;gap:.65rem}.category-ranking-row{grid-template-columns:auto minmax(0,1fr) auto}.category-progress,.category-split{grid-column:2/-1}.category-transaction-list a{grid-template-columns:auto minmax(0,1fr)}.category-transaction-list b{grid-column:2}}
@media(max-width:420px){.category-summary-grid{grid-template-columns:1fr}.category-ranking-row{grid-template-columns:auto minmax(0,1fr)}.category-total{grid-column:2}.category-progress,.category-split{grid-column:2}}

/* Phase 16: Dashboard Intelligence */
.executive-welcome{margin-bottom:1rem}.executive-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.metric-primary{background:linear-gradient(145deg,rgba(7,87,90,.05),rgba(3,191,193,.08));border-color:rgba(3,191,193,.24)}.kpi-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.7rem;margin-bottom:1rem}.kpi-strip a{display:flex;align-items:center;gap:.65rem;padding:.85rem;border:1px solid var(--border-color,#e6ecec);background:#fff;border-radius:14px;color:inherit;text-decoration:none;min-width:0}.kpi-strip i{font-size:1.2rem;color:#07575a}.kpi-strip span{font-size:.78rem;line-height:1.25}.kpi-strip b{display:block;font-size:1.05rem}.kpi-strip .danger{border-color:rgba(220,53,69,.3);background:rgba(220,53,69,.04)}.kpi-strip .warning{border-color:rgba(255,193,7,.35);background:rgba(255,193,7,.06)}.dashboard-grid-wide{grid-template-columns:minmax(0,1.7fr) minmax(280px,.8fr)}.chart-card-wide{min-width:0}.chart-wrap-tall{height:330px}.insight-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:1rem 0}.insight-highlight{background:#fff;border:1px solid var(--border-color,#e6ecec);border-radius:16px;padding:1rem;display:grid;grid-template-columns:auto 1fr;column-gap:.75rem;align-items:center}.insight-highlight i{grid-row:1/4;width:42px;height:42px;border-radius:12px;background:rgba(7,87,90,.08);display:grid;place-items:center;color:#07575a;font-size:1.15rem}.insight-highlight span,.insight-highlight small{color:#6c757d;font-size:.76rem}.insight-highlight strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.95rem}.dashboard-grid-thirds{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-feed{display:flex;flex-direction:column}.dashboard-feed a{display:flex;gap:.75rem;align-items:flex-start;padding:.82rem 0;border-bottom:1px solid #edf1f1;color:inherit;text-decoration:none}.dashboard-feed a:last-child{border-bottom:0}.dashboard-feed i{color:#07575a}.dashboard-feed span{min-width:0;flex:1}.dashboard-feed strong,.dashboard-feed small{display:block}.dashboard-feed strong{font-size:.88rem}.dashboard-feed small{font-size:.75rem;color:#6c757d;margin-top:.15rem}.dashboard-feed b{font-size:.78rem;white-space:nowrap}.feed-empty{padding:1.4rem 0;color:#6c757d;font-size:.85rem}.quick-action-panel{display:flex;justify-content:space-between;gap:1rem;align-items:center;background:#fff;border:1px solid var(--border-color,#e6ecec);border-radius:18px;padding:1rem 1.2rem;margin-top:1rem}.quick-action-panel h3{margin:0}.quick-action-grid{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.6rem}.quick-action-grid a{display:flex;align-items:center;gap:.45rem;padding:.7rem .85rem;border-radius:11px;background:rgba(7,87,90,.06);color:#07575a;text-decoration:none;font-size:.82rem;font-weight:600}.quick-action-grid a:hover{background:rgba(7,87,90,.12)}
@media(max-width:1200px){.executive-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-grid-thirds{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-feed-grid article:last-child{grid-column:1/-1}.insight-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.dashboard-grid-wide,.dashboard-grid-thirds{grid-template-columns:1fr}.dashboard-feed-grid article:last-child{grid-column:auto}.quick-action-panel{align-items:flex-start;flex-direction:column}.quick-action-grid{justify-content:flex-start}}
@media(max-width:600px){.executive-metrics,.insight-card-grid{grid-template-columns:1fr}.kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-strip a{padding:.75rem}.chart-wrap-tall{height:260px}.quick-action-grid{display:grid;grid-template-columns:1fr 1fr;width:100%}.quick-action-grid a{justify-content:center;text-align:center}.executive-welcome .welcome-actions{display:grid;grid-template-columns:1fr}.executive-welcome .welcome-actions .btn{width:100%}}

/* Phase 17: expense approvals */
.approval-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.approval-summary a{text-decoration:none;color:inherit;display:flex;justify-content:space-between;align-items:center}.approval-summary span{color:var(--bs-secondary-color)}.approval-summary strong{font-size:1.8rem}.approval-list{display:grid;gap:.85rem}.approval-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:1rem;align-items:center;padding:1rem;border:1px solid rgba(6,63,66,.12);border-radius:16px}.approval-main h3{font-size:1rem;margin:.45rem 0 .2rem}.approval-main p{margin:0;color:var(--bs-secondary-color);font-size:.88rem}.approval-amount{font-size:1.1rem}.approval-actions{display:flex;gap:.45rem;align-items:center}.approval-actions form{margin:0}.approval-status{display:inline-flex;align-items:center;padding:.28rem .65rem;border-radius:999px;font-size:.76rem;font-weight:700}.approval-pending{background:#fff3cd;color:#7a5a00}.approval-approved{background:#d1e7dd;color:#0f5132}.approval-rejected{background:#f8d7da;color:#842029}.approval-draft{background:#e9ecef;color:#495057}.approval-detail{display:flex;flex-direction:column;gap:.35rem}.approval-detail small{color:var(--bs-secondary-color)}
@media(max-width:767.98px){.approval-summary{grid-template-columns:1fr}.approval-row{grid-template-columns:1fr}.approval-actions{flex-wrap:wrap}.approval-amount{order:2}.approval-actions{order:3}}
/* Phase 18: Assets & Equipment */
.asset-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.asset-card{display:block;background:#fff;border:1px solid rgba(6,63,66,.12);border-radius:18px;padding:1.1rem;color:inherit;text-decoration:none;box-shadow:0 8px 24px rgba(6,63,66,.06);transition:.2s ease}.asset-card:hover{transform:translateY(-2px);border-color:rgba(9,171,184,.45)}.asset-card h3{font-size:1.05rem;margin:.35rem 0}.asset-card p{color:#6b7280;margin:0}.asset-code{display:inline-flex;font-size:.76rem;font-weight:800;letter-spacing:.08em;color:#0b8791;text-transform:uppercase}.status-pill{height:max-content;padding:.35rem .65rem;border-radius:999px;background:#edfafa;color:#075f65;font-size:.75rem;font-weight:700}.asset-meta{display:grid;gap:.45rem;margin-top:1rem;padding-top:.85rem;border-top:1px solid #edf2f2}.asset-meta span{display:flex;align-items:center;gap:.5rem;color:#667085;font-size:.86rem}.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1rem}.detail-grid div{padding:.85rem;background:#f7faf9;border-radius:12px}.detail-grid span,.maintenance-item span{display:block;color:#6b7280;font-size:.8rem}.detail-grid strong{display:block;margin-top:.2rem}.maintenance-list{display:grid;gap:.75rem}.maintenance-item{display:flex;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid #e5eeee;border-radius:14px}.maintenance-item p{margin:.25rem 0}.empty-inline{padding:1rem;border-radius:12px;background:#f7faf9;color:#667085}@media(max-width:767.98px){.detail-grid{grid-template-columns:1fr 1fr}.maintenance-item{flex-direction:column}.maintenance-item .text-end{text-align:left!important}}@media(max-width:479.98px){.detail-grid{grid-template-columns:1fr}.asset-grid{grid-template-columns:1fr}}


/* Phase 19: Tax & VAT Centre */
.tax-hero{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:linear-gradient(135deg,#063f42,#0c7c82);color:#fff}.tax-hero h2{margin:.2rem 0 .35rem}.tax-hero p{margin:0;max-width:760px;color:rgba(255,255,255,.82)}.tax-hero .eyebrow{color:#8ef1f0}.tax-notice{display:flex;gap:.7rem;align-items:flex-start;padding:.85rem 1rem;margin:1rem 0;border:1px solid rgba(108,72,189,.22);background:rgba(108,72,189,.06);border-radius:14px;color:#49357f;font-size:.84rem}.tax-filter-grid{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(5,minmax(135px,1fr)) auto;gap:.75rem;align-items:end;margin-bottom:1rem}.tax-filter-grid label>span{display:block;font-size:.72rem;font-weight:700;color:#526669;margin-bottom:.32rem}.tax-filter-actions{display:flex;gap:.45rem}.tax-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.tax-summary-grid article span,.tax-summary-grid article small{display:block;color:#6b7c7e;font-size:.76rem}.tax-summary-grid article strong{display:block;color:#063f42;font-size:1.55rem;margin:.2rem 0}.tax-record-list{display:grid}.tax-record-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(150px,.65fr) auto auto;gap:1rem;align-items:center;padding:1rem 0;border-top:1px solid #edf2f2}.tax-record-row:first-child{border-top:0}.tax-record-main>div{display:flex;gap:.5rem;align-items:center}.tax-record-main small{color:#7b8c8e}.tax-record-main h4{font-size:.94rem;margin:.38rem 0 .16rem;color:#173f42}.tax-record-main p{margin:0;color:#758587;font-size:.78rem}.expense-type-badge{display:inline-flex;padding:.23rem .52rem;border-radius:999px;font-size:.68rem;font-weight:800}.expense-type-badge.household{background:#e4f7f4;color:#08756f}.expense-type-badge.project{background:#eee9fb;color:#6846ad}.tax-treatment span,.tax-treatment small{display:block}.tax-treatment span{font-weight:700;color:#31585b;font-size:.82rem}.tax-treatment small{color:#7a8b8d;font-size:.7rem;margin-top:.2rem}.tax-gross{color:#063f42;white-space:nowrap}.tax-classify-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}.tax-expense-preview{padding:1rem;border-radius:16px;background:linear-gradient(145deg,#f1fbfa,#f7f4ff)}.tax-expense-preview>span{font-size:.72rem;font-weight:800;text-transform:uppercase;color:#087c82}.tax-expense-preview h2{font-size:1.2rem;margin:.55rem 0}.tax-expense-preview strong{display:block;font-size:1.8rem;color:#063f42}.tax-expense-preview p{margin:.4rem 0 0;color:#6d7e80}.tax-guidance{display:flex;gap:.65rem;align-items:flex-start;padding:.8rem;margin:1rem 0;background:#f6faf9;border-radius:12px;color:#5f7072;font-size:.78rem}
@media(max-width:1300px){.tax-filter-grid{grid-template-columns:repeat(4,1fr)}.tax-search-field{grid-column:span 2}.tax-filter-actions{grid-column:4}.tax-summary-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.tax-record-row{grid-template-columns:minmax(0,1fr) auto}.tax-treatment{grid-column:1}.tax-classify-grid{grid-template-columns:1fr}}
@media(max-width:767.98px){.tax-hero{align-items:flex-start;flex-direction:column}.tax-filter-grid{grid-template-columns:1fr 1fr}.tax-search-field{grid-column:1/-1}.tax-filter-actions{grid-column:1/-1}.tax-filter-actions .btn{flex:1}.tax-record-row{grid-template-columns:1fr}.tax-treatment{grid-column:auto}.tax-gross{font-size:1rem}.tax-record-row .btn{width:100%}}
@media(max-width:460px){.tax-filter-grid,.tax-summary-grid{grid-template-columns:1fr}}

/* MET v1.0 RC1: accessibility, interaction consistency, and resilient layouts. */
.skip-link{position:fixed;left:1rem;top:-5rem;z-index:2000;padding:.7rem 1rem;border-radius:10px;background:#fff;color:var(--met-teal);font-weight:800;box-shadow:0 8px 28px rgba(0,0,0,.2);transition:top .15s ease}.skip-link:focus{top:1rem}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid rgba(15,174,185,.45);outline-offset:2px}
.app-content:focus{outline:none}
.btn,.form-control,.form-select{min-height:42px}
.btn-sm{min-height:36px}
.table-responsive{border-radius:14px}
.error-wrap{min-height:60vh;display:grid;place-items:center;padding:2rem 1rem}.error-card{width:min(100%,520px);padding:clamp(1.4rem,4vw,2.5rem);text-align:center;background:#fff;border:1px solid #e4eded;border-radius:22px;box-shadow:0 18px 50px rgba(6,63,66,.09)}.error-card img{width:76px;height:76px;object-fit:contain}.error-code{display:block;margin-top:.9rem;color:var(--met-purple);font-size:.78rem;font-weight:900;letter-spacing:.14em}.error-card h1{margin:.45rem 0;font-size:clamp(1.55rem,4vw,2.25rem)}.error-card p{color:var(--met-muted);margin:0 auto 1.2rem;max-width:38ch}
@media(max-width:575.98px){.page-actions,.page-actions-wrap{gap:.5rem}.page-actions>.btn,.page-actions-wrap>.btn{flex:1 1 auto}.met-footer-authenticated{padding-bottom:calc(5.5rem + env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
