@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--eco-green:#168c49;--eco-green-dark:#0d7138;--eco-navy:#102b45;--eco-orange:#f5a623;--eco-pink:#c54b9b;--ink:#172b42;--muted:#718096;--line:#e7edf3;--surface:#fff;--page:#f4f7fb;--shadow:0 8px 28px rgba(18,43,69,.055)}
*{box-sizing:border-box}body{font-family:'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);background:var(--page);font-size:14px}h1,h2,h3,h4,.stat-number{font-family:Manrope,'DM Sans',sans-serif;letter-spacing:-.025em}.portal-bg{min-height:100vh;background:radial-gradient(ellipse at 10% 0%,#eaf8ef 0,transparent 36%),var(--page)}.auth-card{max-width:480px;margin:4vh auto;background:#fff;padding:36px;border-radius:22px;box-shadow:0 24px 70px #122b4512;border:1px solid var(--line)}.auth-logo{width:100%;max-height:116px;object-fit:contain;margin-bottom:24px}.auth-card h1{font-size:1.65rem;font-weight:800;color:var(--eco-navy)}.auth-card .form-control{min-height:46px;border-radius:10px}.portal-shell{min-height:100vh}.portal-sidebar{background:linear-gradient(180deg,#142d47 0%,#10253c 100%);color:#fff;min-height:100vh;padding:20px 14px;position:relative}.portal-sidebar img{display:block;width:100%;height:90px;object-fit:contain;background:#fff;border-radius:14px;padding:8px;margin:0 0 24px;box-shadow:0 6px 18px #071b2c38}.portal-sidebar h6{padding:0 12px;margin-bottom:10px;letter-spacing:.12em;font-size:.68rem}.portal-sidebar a{display:flex;align-items:center;gap:9px;color:#d3dfeb;text-decoration:none;padding:11px 13px;border-radius:10px;margin:4px 0;font-weight:600;font-size:.88rem;transition:background .18s,color .18s}.portal-sidebar a:hover,.portal-sidebar a.active{background:linear-gradient(90deg,#208c50,#177a43);color:#fff;box-shadow:0 6px 15px #0b572c35}.portal-main{padding:30px 32px;min-width:0}.portal-main> .d-flex:first-child{padding:3px 2px 20px;border-bottom:1px solid var(--line);margin-bottom:24px!important}.portal-main h1{font-size:1.55rem;color:var(--eco-navy);font-weight:800}.portal-card{background:var(--surface);border:1px solid var(--line);border-radius:17px;padding:22px;box-shadow:var(--shadow);height:100%;min-width:0}.stat-number{font-size:2rem;font-weight:800;color:var(--eco-navy);margin-top:7px;line-height:1.15}.portal-card .text-secondary,.text-secondary{color:var(--muted)!important}.table-responsive{border-radius:12px}.table{vertical-align:middle;--bs-table-bg:transparent;margin-bottom:0}.table thead th{font-size:.72rem;text-transform:uppercase;letter-spacing:.065em;color:#8290a1;font-weight:700;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding-top:13px;padding-bottom:13px;border-color:#edf1f5}.table tbody tr:last-child td{border-bottom:0}.form-control,.form-select{border-color:#dce4ed;border-radius:9px;min-height:40px;font-size:.9rem}.form-control:focus,.form-select:focus{border-color:#58ad7a;box-shadow:0 0 0 .2rem #168c4914}.form-label{font-size:.8rem;font-weight:700;color:#4c5d70}.btn{font-weight:700;border-radius:9px;padding:.62rem .95rem}.btn-primary{background:var(--eco-green);border-color:var(--eco-green)}.btn-primary:hover{background:var(--eco-green-dark);border-color:var(--eco-green-dark)}.btn-outline-primary{color:var(--eco-green);border-color:#b9dfc7}.btn-outline-primary:hover{background:var(--eco-green);border-color:var(--eco-green)}.stage-pill{display:inline-flex;align-items:center;border-radius:30px;padding:5px 10px;background:#eaf7ef;color:#167340;font-size:.76rem;font-weight:700;white-space:nowrap}.stage-large{background:#fff;color:#167340;padding:9px 14px}.required-doc{font-size:.92rem}.navbar-brand img{height:56px;max-width:280px;object-fit:contain}.welcome-banner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 28px;border-radius:18px;color:#fff;background:radial-gradient(circle at 82% 10%,#36a967 0,transparent 30%),linear-gradient(115deg,#12324d,#145b45);box-shadow:0 14px 32px #12324d1a}.welcome-banner h2{font-size:1.65rem;font-weight:800;margin:7px 0 5px}.welcome-banner p{margin:0;color:#d3e5de}.eyebrow{font-size:.68rem;letter-spacing:.16em;font-weight:800;color:#b8e6c8}.banner-actions{display:flex;flex-wrap:wrap;gap:9px}.card-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px}.card-heading h2{font-size:1.02rem;font-weight:800;margin:0 0 5px;color:var(--eco-navy)}.card-heading p{font-size:.8rem;color:var(--muted);margin:0}.chart-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#eaf7ef;color:var(--eco-green);font-size:1.3rem;font-weight:800}.chart-wrap{height:245px;position:relative}.doughnut-wrap{height:205px;max-width:300px;margin:0 auto}.chart-total{border-top:1px solid var(--line);margin-top:16px;padding-top:14px;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:.82rem}.chart-total strong{font-size:1.25rem;color:var(--eco-navy);font-family:Manrope,sans-serif}.stage-legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:12px}.stage-legend span{font-size:.72rem;color:#6d7c8e;display:flex;align-items:center;gap:5px}.stage-legend i{width:7px;height:7px;border-radius:50%;background:var(--eco-green)}.stage-legend b{color:var(--ink)}.text-link{color:var(--eco-green);font-weight:700;text-decoration:none;font-size:.83rem}.text-link:hover{color:var(--eco-green-dark);text-decoration:underline}.action-row{display:flex;align-items:center;gap:12px;padding:13px 0;text-decoration:none;color:var(--ink);border-bottom:1px solid #edf1f5}.action-row:last-of-type{border-bottom:0}.action-row>span:nth-child(2){flex:1;display:grid;gap:3px}.action-row b{font-size:.84rem}.action-row small{font-size:.74rem;color:var(--muted)}.action-row>strong{color:#9aa7b5}.action-symbol{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:1.2rem;font-weight:800}.action-symbol.green{background:#e9f7ee;color:#168c49}.action-symbol.orange{background:#fff4df;color:#b97808}.action-symbol.blue{background:#eaf2ff;color:#346bd0}.followup-alert{display:flex;align-items:center;gap:9px;background:#fff8e9;border:1px solid #f7e6bf;border-radius:12px;padding:12px}.followup-alert div{flex:1;display:grid;gap:2px}.followup-alert b{font-size:.78rem;color:#78510c}.followup-alert small{font-size:.69rem;color:#94763b}.followup-alert a{font-size:.75rem;font-weight:800;color:#976309;text-decoration:none}.alert-dot{width:8px;height:8px;border-radius:50%;background:#f0a31b}.empty-state{text-align:center;padding:25px;color:var(--muted);font-size:.9rem}.section-title{font-size:1.05rem;font-weight:800;color:var(--eco-navy);margin-bottom:18px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.detail-item{display:grid;gap:5px;min-width:0}.detail-item small{font-size:.74rem;color:var(--muted)}.detail-item strong{font-size:.92rem;overflow-wrap:anywhere}.notes-block{background:#f7f9fc;border:1px solid var(--line);border-radius:10px;padding:14px;color:#516175;min-height:60px}.portal-card .border-bottom{border-color:var(--line)!important}
@media(max-width:991px){.portal-sidebar{min-height:auto;padding:14px}.portal-sidebar img{height:70px;max-width:250px}.portal-sidebar a{display:inline-flex;margin:3px;padding:9px 11px}.portal-main{padding:20px}.welcome-banner{align-items:flex-start;flex-direction:column}.banner-actions{width:100%}.banner-actions .btn{flex:1}.portal-main> .d-flex:first-child{gap:12px}}
@media(max-width:575px){.portal-main{padding:13px}.portal-card{padding:16px;border-radius:14px}.welcome-banner{padding:21px}.welcome-banner h2{font-size:1.35rem}.chart-wrap{height:220px}.doughnut-wrap{height:190px}.detail-grid{grid-template-columns:1fr}.auth-card{padding:24px;margin:2vh auto}.stat-number{font-size:1.65rem}}

/* V7 admin/customer polish: generous spacing, strong hierarchy, accessible controls */
:root{--eco-ink:#12263f;--eco-green:#168a48;--eco-orange:#ff693d;--eco-line:#e3eaf2;--eco-muted:#6c7b90}
body{font-size:14px;line-height:1.55;color:var(--eco-ink);background:#f4f7fb}
.portal-main{padding:clamp(18px,2.6vw,38px)!important}
.portal-sidebar{padding:18px 12px!important;background:linear-gradient(180deg,#142944 0%,#26334c 100%);min-height:100vh}
.portal-sidebar>img{display:block;width:100%;max-width:220px;height:78px;object-fit:contain;background:#fff;border-radius:12px;padding:8px;margin:0 auto 22px;border:0;box-shadow:0 8px 24px #07162a24}
.portal-sidebar a{display:flex;align-items:center;gap:10px;padding:11px 13px;margin:4px 0;border-radius:10px;color:#dce7f4;text-decoration:none;font-size:13px;font-weight:600;transition:background .18s ease,color .18s ease}
.portal-sidebar a:hover,.portal-sidebar a.active{background:rgba(255,255,255,.14);color:#fff}
.portal-card{background:#fff;border:1px solid var(--eco-line);border-radius:16px;padding:clamp(16px,2vw,26px);box-shadow:0 5px 22px rgba(18,38,63,.045);margin-bottom:18px}
.portal-card h2,.section-title{color:var(--eco-ink);font-weight:750;letter-spacing:-.02em}
.portal-main h1{letter-spacing:-.035em;color:var(--eco-ink)}
.form-label{font-weight:650;font-size:12px;color:#4b5e75;margin-bottom:6px}
.form-control,.form-select{border:1px solid #d6e0eb;border-radius:9px;min-height:42px;color:#20344c;background-color:#fff;font-size:13px}
.form-control:focus,.form-select:focus{border-color:#42a66d;box-shadow:0 0 0 .2rem rgba(22,138,72,.12)}
textarea.form-control{min-height:92px}
.btn{border-radius:9px;font-weight:650;padding:.62rem .95rem}
.btn-primary{background:#177d46;border-color:#177d46}.btn-primary:hover{background:#116638;border-color:#116638}
.btn-success{background:#168a48;border-color:#168a48}
.table{--bs-table-bg:transparent;vertical-align:middle;font-size:13px}
.table thead th{background:#f5f8fc;color:#52647a;font-size:11px;text-transform:uppercase;letter-spacing:.045em;font-weight:750;border-bottom:1px solid #e0e8f1;padding:12px 10px;white-space:nowrap}
.table tbody td{padding:13px 10px;border-color:#edf1f6}
.table tbody tr:hover{background:#f9fbfd}
.stat-number{font-size:clamp(26px,2.5vw,36px);font-weight:800;letter-spacing:-.04em;color:var(--eco-ink)}
.auth-card{max-width:460px;margin:5vh auto;background:#fff;border:1px solid var(--eco-line);border-radius:22px;padding:clamp(24px,4vw,40px);box-shadow:0 20px 60px rgba(18,38,63,.10)}
.auth-logo{display:block;width:min(100%,280px);height:80px;object-fit:contain;margin:0 auto 20px}
.auth-card h1{font-size:26px;font-weight:800;text-align:center;letter-spacing:-.035em;color:var(--eco-ink)}
.auth-card>p{text-align:center;margin-bottom:26px}
@media(max-width:767.98px){.portal-sidebar{min-height:auto}.portal-main{padding:16px!important}.portal-sidebar>img{max-width:190px;height:68px}.portal-sidebar a{display:inline-flex;margin:3px;padding:9px 10px}.table{min-width:720px}}


/* V8: clear information architecture, full-size readable admin controls */
html{font-size:16px}body{font-size:14px;line-height:1.55;zoom:1!important;-webkit-text-size-adjust:100%}
.portal-shell{display:flex;min-height:100vh}.container-fluid>.row{min-height:100vh;align-items:stretch}.portal-sidebar{width:250px;flex:0 0 250px;max-width:250px;position:sticky;top:0;height:100vh;overflow-y:auto;padding:20px 14px!important}.portal-main{width:calc(100% - 250px);flex:1;padding:28px clamp(20px,2.4vw,38px)!important;min-width:0}.portal-sidebar>img{height:88px;max-width:none;width:100%;object-fit:contain;padding:8px;background:#fff;border:0;outline:0;box-shadow:0 8px 24px #07162a24;margin-bottom:24px}.portal-sidebar a{font-size:13px;min-height:38px}.sidebar-group{margin:10px 0 14px;padding:5px 0 7px;border-bottom:1px solid rgba(255,255,255,.11)}.sidebar-group-title{padding:8px 12px 4px;color:#9eb2c9;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.12em}.portal-sidebar .sidebar-sub{padding:9px 12px 9px 22px;margin:3px 0;font-size:12.5px;color:#dce7f4}.portal-sidebar .sidebar-sub.active{background:#1c8b50;color:#fff}.portal-sidebar .sidebar-sub:hover{background:rgba(255,255,255,.13)}.section-switcher{display:flex;gap:8px;align-items:center;border-bottom:1px solid var(--eco-line);padding:0 0 14px}.section-switcher a{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;border:1px solid #dce5ef;border-radius:10px;text-decoration:none;font-weight:750;font-size:13px;color:#40536a;background:#fff}.section-switcher a.selected{background:#167d45;color:#fff;border-color:#167d45;box-shadow:0 5px 14px #167d4520}.portal-card{height:auto}.portal-main .table-responsive{width:100%;overflow-x:auto}.portal-main .table{min-width:760px}.portal-main .form-label{font-size:12px}.portal-main .form-control,.portal-main .form-select{min-height:42px;font-size:13px}.portal-main .btn{font-size:13px}.portal-main .card-heading{align-items:center}.portal-main .card-heading p{font-size:12px}.portal-main .badge{font-size:11px}.portal-main .table td{font-size:13px}.portal-main .table td .btn{white-space:nowrap}.portal-main .welcome-banner{min-height:150px}.portal-sidebar .text-uppercase{margin-top:8px}
.customer-layout{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:calc(100vh - 76px)}.customer-sidebar{background:linear-gradient(180deg,#142944,#10253c);color:#fff;padding:22px 14px;min-height:100%;}.customer-sidebar .customer-brand{display:block;background:#fff;border-radius:12px;padding:9px;margin-bottom:22px}.customer-sidebar .customer-brand img{width:100%;height:70px;object-fit:contain;display:block}.customer-sidebar .nav-caption{font-size:10px;text-transform:uppercase;letter-spacing:.13em;color:#9eb2c9;font-weight:800;padding:8px 12px}.customer-sidebar a{display:flex;gap:10px;align-items:center;padding:11px 12px;margin:4px 0;border-radius:9px;color:#dce7f4;text-decoration:none;font-weight:650;font-size:13px}.customer-sidebar a:hover,.customer-sidebar a.active{background:rgba(255,255,255,.15);color:#fff}.customer-main{min-width:0;padding:28px clamp(16px,3vw,42px);max-width:1500px;width:100%;margin:0 auto}.customer-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border-bottom:1px solid #e3eaf2;padding:12px clamp(16px,3vw,42px)}.customer-topbrand{display:flex;align-items:center;gap:14px}.customer-topbrand img{height:48px;max-width:210px;object-fit:contain}.customer-topbrand .brand-copy{border-left:1px solid #e1e8ef;padding-left:14px;font-size:12px;color:#6c7b90}.customer-main .portal-card{margin-bottom:18px}.customer-main h1{font-size:26px}.customer-main h2{font-size:17px}.auth-brandbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px clamp(18px,5vw,70px);background:#fff;border-bottom:1px solid #e3eaf2}.auth-brandbar img{width:220px;height:62px;object-fit:contain}.auth-brandbar .tagline{color:#52647a;font-size:13px;font-weight:650}.auth-card{margin:5vh auto!important}.auth-card:before{content:'CUSTOMER PORTAL';display:block;color:#168a48;font-size:11px;letter-spacing:.16em;font-weight:850;margin-bottom:10px}.auth-card .auth-logo{display:none}
@media(max-width:991px){.container-fluid>.row{display:flex;flex-direction:column}.portal-sidebar{position:relative;top:auto;width:100%;max-width:none;flex:0 0 auto;height:auto;min-height:0;overflow:visible}.portal-sidebar>img{width:210px;height:65px;margin:0 0 14px}.portal-sidebar a{display:inline-flex}.sidebar-group{display:inline-block;vertical-align:top;border:0;margin:0 6px 6px 0}.portal-main{width:100%;padding:22px!important}.customer-layout{grid-template-columns:1fr}.customer-sidebar{min-height:0}.customer-sidebar .customer-brand{max-width:220px}.customer-sidebar nav{display:flex;flex-wrap:wrap;gap:4px}.customer-sidebar a{display:inline-flex}.customer-main{padding:20px}.customer-topbrand .brand-copy{display:none}}
@media(max-width:575px){.portal-main{padding:14px!important}.portal-main h1{font-size:1.25rem}.section-switcher{position:sticky;top:0;background:#f4f7fb;z-index:10}.section-switcher a{flex:1;padding:10px 8px}.auth-brandbar{align-items:flex-start;flex-direction:column}.auth-brandbar img{width:190px;height:52px}.customer-topbar{align-items:flex-start}.customer-topbrand img{max-width:145px;height:38px}.customer-main h1{font-size:22px}}

/* V9 dashboard header refinement */
/* Admin sidebar: compact transparent logo, no white tile or shadow. */
.portal-sidebar>img{width:100%;max-width:174px;height:54px;object-fit:contain;padding:0;background:transparent;border:0;border-radius:0;outline:0;box-shadow:none;margin:2px auto 22px}
.portal-sidebar{padding-top:16px!important}
/* Overview title/date are consolidated into the welcome panel. */
.welcome-banner{align-items:center;min-height:126px;padding:22px 26px;gap:24px}
.welcome-copy{min-width:0;flex:1}
.welcome-copy h2{margin:0 0 6px;font-size:1.6rem}
.welcome-copy p{max-width:620px}
.welcome-tools{display:flex;flex-direction:column;align-items:flex-end;gap:12px;flex-shrink:0}
.welcome-datetime{display:inline-flex;align-items:center;padding:6px 10px;border:1px solid rgba(255,255,255,.22);border-radius:8px;background:rgba(5,24,35,.2);color:#fff;font-size:12px;font-weight:700;white-space:nowrap}
.welcome-tools .banner-actions{justify-content:flex-end}
/* Customer logo stays in the top header only; sidebar starts with navigation. */
.customer-sidebar .customer-brand{display:none!important}
.customer-sidebar{padding-top:24px}
@media(max-width:991px){.portal-sidebar>img{width:174px;max-width:174px;height:54px;margin:0 0 14px}.welcome-banner{align-items:flex-start}.welcome-tools{align-items:flex-start;width:100%}.welcome-tools .banner-actions{justify-content:flex-start}.welcome-datetime{white-space:normal}}
@media(max-width:575px){.welcome-banner{padding:19px}.welcome-copy h2{font-size:1.35rem}.welcome-tools .banner-actions{width:100%}.welcome-tools .banner-actions .btn{flex:1}}
