@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@1,600&display=swap');
:root{--ink:#17201d;--muted:#68716d;--line:#dfe4e1;--paper:#f3f5f2;--white:#fff;--green:#165c48;--green2:#0e4939;--mint:#dcece6;--gold:#b88a43;--red:#9c413f;--shadow:0 12px 35px rgba(25,45,37,.07)}
*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',system-ui,sans-serif;line-height:1.5}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1{font-size:2.25rem;line-height:1.15;letter-spacing:-.04em;margin-bottom:.5rem}h2{font-size:1.12rem;letter-spacing:-.015em;margin-bottom:.3rem}.eyebrow{text-transform:uppercase;color:var(--green);font-size:.7rem;font-weight:700;letter-spacing:.14em;display:block;margin-bottom:.65rem}
.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:#132a24;color:#e8f0ed;padding:30px 18px 20px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:12px;padding:0 10px}.brand-mark{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#d6b575;color:#16352c;font-family:Georgia,serif;font-size:1.25rem;font-weight:bold;box-shadow:inset 0 0 0 3px rgba(255,255,255,.3)}.brand-mark.large{width:52px;height:52px;font-size:1.65rem;margin-bottom:28px}.brand b{display:block;font-size:.92rem}.brand small{display:block;color:#9fb3ac;font-size:.67rem;letter-spacing:.07em;text-transform:uppercase}.sidebar nav{margin-top:52px;display:flex;flex-direction:column;gap:5px}.sidebar nav a{padding:11px 12px;border-radius:7px;color:#b7c6c1;font-size:.88rem;display:flex;align-items:center;gap:12px}.sidebar nav a span{font-size:1.15rem;width:18px;text-align:center}.sidebar nav a:hover,.sidebar nav a.active{background:rgba(255,255,255,.08);color:#fff}.sidebar nav a.active{box-shadow:inset 3px 0 #d5b06c}.sidebar nav em{font-style:normal;margin-left:auto;background:#d6b575;color:#132a24;border-radius:20px;min-width:20px;padding:1px 6px;text-align:center;font-size:.7rem;font-weight:700}.sidebar-user{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding:20px 7px 0;display:flex;align-items:center;gap:10px}.avatar{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:var(--mint);color:var(--green);font-size:.7rem;font-weight:700;flex:none}.sidebar-user b,.sidebar-user small{display:block;font-size:.73rem;max-width:125px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user small{color:#91a59e;font-size:.65rem}.sidebar-user form{margin-left:auto}.sidebar-user button{border:0;background:none;color:#9db0a9;font-size:1.1rem}.main{margin-left:248px;width:calc(100% - 248px)}.content{padding:46px clamp(30px,4vw,68px) 70px;max-width:1500px;margin:auto}.mobile-head{display:none}
.page-title{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:30px}.page-title p{color:var(--muted);margin-bottom:0}.page-title.compact{align-items:center}.back{color:var(--muted);font-size:.8rem;display:inline-block;margin-bottom:20px}.btn{border:1px solid transparent;padding:10px 17px;border-radius:6px;font-size:.82rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn.primary{background:var(--green);color:white}.btn.primary:hover{background:var(--green2)}.btn.secondary{background:#edf3f0;color:var(--green);border-color:#d6e3de}.btn.ghost{background:white;border-color:var(--line);color:var(--ink)}.btn.danger{background:#fff;color:var(--red);border-color:#dfc3c1}.btn.wide{width:100%}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.stats a{background:white;border:1px solid var(--line);border-radius:8px;padding:19px 20px;box-shadow:0 3px 10px rgba(30,50,43,.025);transition:.15s}.stats a:hover{border-color:#a9beb6;transform:translateY(-1px)}.stats span,.stats small{display:block;color:var(--muted);font-size:.7rem}.stats span{font-weight:600;color:#49534f}.stats b{font-size:1.75rem;line-height:1.4;letter-spacing:-.04em}.panel{background:white;border:1px solid var(--line);border-radius:9px;box-shadow:var(--shadow)}.panel-head{padding:21px 24px 16px;display:flex;align-items:center;justify-content:space-between;gap:20px}.panel-head h2,.panel-head p{margin:0}.panel-head p{font-size:.72rem;color:var(--muted)}.search{position:relative}.search input{width:230px;padding:9px 38px 9px 12px;border:1px solid var(--line);border-radius:5px;background:#fafbf9;font-size:.78rem}.search button{position:absolute;right:2px;top:2px;border:0;background:transparent;padding:7px 10px;color:var(--muted)}.tabs{display:flex;padding:0 24px;border-bottom:1px solid var(--line);gap:26px}.tabs a{font-size:.74rem;color:var(--muted);padding:7px 1px 12px;border-bottom:2px solid transparent}.tabs a.active{color:var(--green);border-color:var(--green);font-weight:600}.list-head,.customer-row{display:grid;grid-template-columns:minmax(210px,1.3fr) minmax(145px,.75fr) minmax(240px,1.6fr) 120px 22px;gap:20px;align-items:center}.list-head{padding:12px 24px;color:#89908d;text-transform:uppercase;letter-spacing:.06em;font-size:.61rem;background:#fafbfa}.customer-row{padding:16px 24px;border-top:1px solid #edf0ee;font-size:.78rem;transition:.15s}.customer-row:hover{background:#f8faf8}.customer-name{display:flex;align-items:center;gap:12px}.customer-name>i{width:35px;height:35px;border-radius:50%;background:#e6eeea;display:grid;place-items:center;color:var(--green);font-size:.65rem;font-style:normal;font-weight:700}.customer-name b{font-size:.83rem}.customer-name small{display:block;color:var(--muted);font-weight:400;font-size:.68rem;margin-top:2px}.summary{color:#4e5753;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status{font-style:normal;display:inline-block;padding:4px 8px;border-radius:20px;font-size:.65rem;font-weight:600;white-space:nowrap}.status.approved{color:#24604d;background:#e3f0eb}.status.pending{color:#866126;background:#f6eddd}.status.declined{color:#8a4544;background:#f4e5e4}.status.big{font-size:.73rem;padding:7px 12px}.arrow{font-style:normal;color:#84918c;font-size:1.05rem}.empty{text-align:center;padding:60px 20px;color:var(--muted)}.empty span{display:block;font-size:2rem;color:#93a39d}.empty h3{color:var(--ink);margin:10px 0 5px}.empty.small{padding:30px}
label{display:block;font-size:.74rem;font-weight:600;color:#434d49;margin-bottom:18px}label small{font-weight:400;color:var(--muted);margin-left:5px}input,select,textarea{display:block;width:100%;margin-top:7px;border:1px solid #cfd7d3;border-radius:5px;padding:10px 11px;background:white;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:#4f8a76;box-shadow:0 0 0 3px rgba(39,112,87,.1)}textarea{resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-panel{padding:30px;max-width:830px}.form-panel hr{border:0;border-top:1px solid var(--line);margin:16px 0 26px}.form-panel h2{margin-bottom:20px}.form-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:20px}.check{display:flex;align-items:center;gap:8px;font-weight:400}.check input{display:inline;width:auto;margin:0}.flash{padding:11px 15px;border-radius:6px;margin:0 0 18px;font-size:.78rem;transition:.3s}.flash-success{background:#deeee8;color:#195541;border:1px solid #c5dfd5}.flash-error{background:#f5e4e3;color:#873d3b;border:1px solid #e5c8c6}.flash.fade{opacity:0;transform:translateY(-5px)}
.approval-box{background:#173b31;color:white;border-radius:9px;padding:28px 30px;margin-bottom:22px;display:grid;grid-template-columns:.8fr 1.2fr;gap:45px}.approval-box .eyebrow{color:#dfc180}.approval-box p{color:#bdcdc8;font-size:.82rem}.approval-box label{color:#e6edeb}.approval-box textarea{background:#fff}.approval-box form>div{display:flex;justify-content:flex-end;gap:10px}.decision-note{background:#fff9ee;border:1px solid #ead8b6;border-radius:7px;padding:17px 20px;margin-bottom:20px;font-size:.8rem}.decision-note p{margin:4px 0}.decision-note small{color:var(--muted)}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:20px}.detail-grid>div{display:flex;flex-direction:column;gap:20px}.composer{padding:24px}.composer textarea{margin-bottom:12px}.composer form>div{display:flex;justify-content:space-between;align-items:center}.composer small{color:var(--muted);font-size:.7rem}.timeline article{display:flex;gap:14px;padding:20px 24px;border-top:1px solid #edf0ee}.timeline article>div{width:100%}.timeline header{display:flex;justify-content:space-between;gap:20px;font-size:.76rem}.timeline time{color:var(--muted);font-size:.68rem}.timeline article p{font-size:.82rem;line-height:1.65;margin:8px 0 0;color:#3c4642;white-space:normal}.side-card{padding:22px;margin-bottom:20px}.side-card>p{font-size:.72rem;color:var(--muted)}.side-card textarea{font-size:.78rem}.facts dl{margin:18px 0 0}.facts dt{color:var(--muted);font-size:.68rem}.facts dd{margin:2px 0 15px;font-size:.8rem;font-weight:600}.admin-grid{display:grid;grid-template-columns:minmax(350px,.75fr) 1.25fr;gap:20px}.admin-grid .form-panel{padding:25px}.user-list>div{display:flex;align-items:center;gap:12px;padding:14px 22px;border-top:1px solid var(--line)}.user-list p{margin:0}.user-list b,.user-list small{display:block;font-size:.78rem}.user-list small{color:var(--muted);font-size:.68rem}.user-list em{font-size:.68rem;font-style:normal;color:var(--muted);margin-left:auto}.notification-list>a{display:flex;align-items:center;gap:15px;padding:18px 22px;border-bottom:1px solid var(--line)}.notification-list>a:last-child{border:0}.notification-list>a.unread{background:#f5faf8}.notification-list>a>i{width:7px;height:7px;border-radius:50%;background:transparent}.notification-list>a.unread>i{background:var(--gold)}.notification-list>a>div{flex:1}.notification-list b,.notification-list small{display:block;font-size:.78rem}.notification-list small{color:var(--muted);font-size:.68rem;margin-top:3px}
.auth{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr}.auth-brand{background:#143b30;color:white;padding:clamp(45px,8vw,110px);display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.auth-brand:after{content:'';position:absolute;width:420px;height:420px;border:1px solid rgba(214,181,117,.2);border-radius:50%;right:-210px;top:15%}.auth-brand h1{font-size:clamp(3rem,5vw,5.7rem);line-height:.95;letter-spacing:-.06em;max-width:650px}.auth-brand h1 i{font-family:'Playfair Display',Georgia,serif;color:#dfc180;font-weight:600}.auth-brand p{color:#b7cac4;max-width:430px;font-size:1rem;margin-top:25px}.auth-brand>small{position:absolute;bottom:35px;left:clamp(45px,8vw,110px);color:#86a098;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase}.auth-form{background:#f4f5f2;display:grid;place-items:center;padding:30px}.auth-box{width:min(410px,100%)}.auth-box h2{font-size:1.65rem}.auth-box>p{color:var(--muted);font-size:.82rem;margin-bottom:28px}
@media(max-width:1000px){.stats{grid-template-columns:1fr 1fr}.list-head{display:none}.customer-row{grid-template-columns:1fr 160px 110px}.customer-row .summary{grid-column:1/3;grid-row:2}.customer-row>.arrow{grid-column:3;grid-row:1/3;justify-self:end}.detail-grid,.admin-grid{grid-template-columns:1fr}.detail-grid>aside{display:grid;grid-template-columns:1fr 1fr;gap:20px}.side-card{margin:0}.approval-box{grid-template-columns:1fr;gap:15px}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.2s;box-shadow:10px 0 35px rgba(0,0,0,.2)}.sidebar.open{transform:none}.main{margin:0;width:100%}.mobile-head{height:64px;padding:12px 18px;display:flex;align-items:center;justify-content:space-between;background:#132a24;color:white}.mobile-head button{background:transparent;border:1px solid #567168;color:white;border-radius:5px;padding:6px 10px}.content{padding:28px 17px 50px}.page-title{align-items:flex-start;flex-direction:column}.page-title h1{font-size:1.8rem}.stats{grid-template-columns:1fr 1fr}.stats a{padding:14px}.panel-head{align-items:flex-start;flex-direction:column}.search,.search input{width:100%}.customer-row{grid-template-columns:1fr 95px;padding:15px}.customer-row>span:nth-of-type(2){display:none}.customer-row .summary{grid-column:1/2}.customer-row>span:nth-of-type(4){grid-column:2;grid-row:1;justify-self:end}.customer-row>.arrow{display:none}.form-row{grid-template-columns:1fr;gap:0}.form-panel{padding:20px}.detail-grid>aside{grid-template-columns:1fr}.composer form>div{align-items:flex-start;flex-direction:column;gap:12px}.composer .btn{width:100%}.timeline header{flex-direction:column;gap:2px}.approval-box{padding:22px}.approval-box form>div{flex-direction:column-reverse}.approval-box .btn{width:100%}.auth{grid-template-columns:1fr}.auth-brand{display:none}.auth-form{min-height:100vh}.tabs{overflow:auto}.admin-grid{display:block}.admin-grid>section{margin-bottom:20px}}
@media(max-width:430px){.stats{grid-template-columns:1fr}.customer-row{grid-template-columns:1fr}.customer-row>span:nth-of-type(4){grid-column:1;grid-row:3;justify-self:start}.summary{white-space:normal}.form-actions{flex-direction:column-reverse}.form-actions .btn{width:100%}}
.password-panel{display:grid;grid-template-columns:.65fr 1.35fr;gap:35px;padding:24px;margin-bottom:20px}.password-panel p{font-size:.74rem;color:var(--muted);margin:0}.password-panel label{margin-bottom:12px}.password-panel .btn{float:right}@media(max-width:760px){.password-panel{grid-template-columns:1fr;gap:18px}}
.auth-simple{display:block;background:#f3f5f2;padding:24px}.auth-simple .auth-form{min-height:calc(100vh - 48px);background:transparent}.auth-simple .auth-box{background:#fff;border:1px solid var(--line);border-radius:9px;padding:34px;box-shadow:var(--shadow)}.auth-simple .auth-box h1{text-align:center;font-size:1.8rem;margin-bottom:30px}.auth-simple .auth-box>p{text-align:center;margin-top:-20px}
.contact-date-card{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:20px 24px;margin-bottom:20px}.contact-date-card h2,.contact-date-card p{margin:0}.contact-date-card p{font-size:.72rem;color:var(--muted)}.contact-date-card form{display:flex;align-items:flex-end;gap:10px}.contact-date-card label{margin:0;min-width:180px}@media(max-width:760px){.contact-date-card,.contact-date-card form{align-items:stretch;flex-direction:column}.contact-date-card .btn{width:100%}}
.next-contact-card{border-left:3px solid var(--gold)}
.auth-link{display:block;text-align:center;color:var(--green);font-size:.76rem;margin-top:18px}.auth-link:hover{text-decoration:underline}.auth-simple .auth-box h2{text-align:center;margin:-18px 0 22px}.auth-simple .auth-box h2+p{text-align:center}
.facts{position:relative}.edit-pencil{position:absolute;right:16px;top:15px;width:32px;height:32px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--green);font-size:1rem}.edit-pencil:hover{background:var(--mint)}.inline-assignment{border-top:1px solid var(--line);padding-top:16px;margin-top:8px}.inline-assignment label{margin-bottom:10px}.save-toast{position:fixed;right:24px;bottom:24px;z-index:100;background:#173b31;color:white;padding:12px 18px;border-radius:7px;box-shadow:0 12px 35px rgba(0,0,0,.2);font-size:.8rem}.save-toast.error{background:#873d3b}@media(max-width:760px){.save-toast{left:17px;right:17px;bottom:17px;text-align:center}}
.savings-stats>div{background:white;border:1px solid var(--line);border-radius:8px;padding:19px 20px;box-shadow:0 3px 10px rgba(30,50,43,.025)}.savings-stats span,.savings-stats small{display:block;color:var(--muted);font-size:.7rem}.savings-stats span{font-weight:600;color:#49534f}.savings-stats b{font-size:1.45rem;line-height:1.6;letter-spacing:-.04em}.savings-breakdown{margin-bottom:20px}.savings-table>div,.savings-table>a{display:grid;grid-template-columns:1.3fr 1fr 180px;gap:20px;align-items:center;padding:15px 24px;border-top:1px solid #edf0ee;font-size:.78rem}.savings-table>a:hover{background:#f8faf8}.savings-table strong{text-align:right;color:var(--green);font-size:.85rem}.savings-table .savings-head{background:#fafbfa;color:#89908d;text-transform:uppercase;letter-spacing:.06em;font-size:.61rem}.savings-table .savings-head span:last-child{text-align:right}.savings-card{border-left:3px solid var(--green)}@media(max-width:760px){.savings-table>div,.savings-table>a{grid-template-columns:1fr auto;padding:14px 18px}.savings-table>div span,.savings-table>a span{grid-column:1}.savings-table strong{grid-column:2;grid-row:1/3}.savings-table .savings-head{display:none}}
