@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=DM+Sans:wght@400;450;500;550;600;650;700&display=swap');
:root{--ink:#183c30;--muted:#738277;--line:#dce3d9;--paper:#f6f7f2;--bronze:var(--terracotta);--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px var(--sans)}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit;background:white;border:1px solid var(--line);padding:10px 15px;border-radius:9px;line-height:1.4}button:hover{border-color:#96ad9b;background:#f0f4ed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--terracotta);outline-offset:3px}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h2{font-size:18px;font-weight:600}h3{font-size:14px}p{line-height:1.7}small{font-size:11px}em{font-weight:400;color:var(--terracotta)}aside{width:236px;position:fixed;inset:0 auto 0 0;background:linear-gradient(155deg,#1b392d,#0a2017);padding:30px 16px 20px;color:#edf2e9;display:flex;flex-direction:column;z-index:30}.brand{display:flex;gap:10px;align-items:center;padding:0 6px 42px;font:17px var(--serif);letter-spacing:1.5px}.brand img{width:45px;height:45px;object-fit:contain;border-radius:50%}.brand small{display:block;font:8px var(--sans);letter-spacing:2px;color:var(--terracotta);margin-top:8px}.nav-label{font-size:9px;letter-spacing:1.7px;color:#88a08e;padding:0 14px 15px}nav{display:grid;gap:5px}nav a{padding:12px 14px;border-radius:10px;display:flex;align-items:center;gap:13px;font-size:13px;color:#c3d2c6}nav a b{width:21px;font-size:17px;font-weight:400;color:#9eb49f}nav a.active{background:#ffffff0c;color:white;box-shadow:inset 3px 0 var(--terracotta)}nav a:hover{background:#ffffff0a}.sidebar-foot{margin-top:auto;display:flex;align-items:center;gap:11px;padding:20px 6px 0;border-top:1px solid #ffffff15}.sidebar-foot strong{font-size:12px}.sidebar-foot small{display:block;color:#9eb49f;margin-top:5px}.avatar{width:40px;height:42px;flex-shrink:0;display:grid;place-items:center;border-radius:12px;background:linear-gradient(125deg,#8f594f,var(--terracotta) 48%,#93594e);color:white;font-weight:600;font-size:12px}.shell{margin-left:236px}.top{height:76px;padding:0 36px;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:11px}.prototype{font-size:8px;letter-spacing:1.3px;border:1px solid var(--line);padding:7px 10px;border-radius:20px}.menu{display:none}main{padding:0 36px;max-width:1510px;margin:auto}.hero{padding:32px 36px;border-radius:22px;background:linear-gradient(115deg,#1b3b2d,#0b2018);color:#f7f6ef;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.eyebrow{font-size:9px;letter-spacing:2px;color:var(--bronze);font-weight:600;text-transform:uppercase;display:block;margin-bottom:13px}.hero h1{font:500 clamp(32px,3.2vw,49px)/1.12 var(--serif);margin:0 0 12px}.hero p{margin:0;color:#bdcec0;font-size:12px;max-width:650px}.primary{background:var(--ink);border-color:var(--ink);color:white}.primary:hover{background:#2c5140;color:white}.hero .primary{background:var(--terracotta-dark);border-color:var(--terracotta-dark);white-space:nowrap}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:25px}.stat{padding:21px 22px;background:white;border:1px solid var(--line);border-radius:14px}.stat small{font-size:9px;letter-spacing:1px;color:var(--muted);text-transform:uppercase}.stat strong{display:block;font-size:29px;font-weight:500;margin:12px 0 8px}.stat span{font-size:11px;color:var(--muted)}.grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(285px,1fr);gap:22px}.panel{border:1px solid var(--line);border-radius:17px;background:#fff;padding:25px;margin-bottom:22px;min-width:0}.head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:22px}.head h2{margin:0}.head small{display:block;color:var(--muted);margin-top:7px}.link{border:0;padding:3px 0;background:transparent;color:var(--terracotta-dark);font-size:11px;white-space:nowrap}.row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;border-top:1px solid var(--line)}.row:first-of-type{border-top:0}.row p{font-size:12px;color:var(--muted);margin:5px 0 0}.row strong{font-size:13px}.row>div{min-width:0}.muted{color:var(--muted);font-size:12px}.tag{font-size:10px;padding:5px 9px;background:#edf3e8;border-radius:6px;display:inline-block;white-space:nowrap}.tag.warm{background:#faf0e2;color:#956b36}.tag.rose{background:#f9ece6;color:var(--terracotta-dark)}.tags{display:flex;gap:7px;flex-wrap:wrap}.time{font-size:12px;font-weight:600;border:1px solid var(--line);padding:9px;border-radius:8px;min-width:54px;text-align:center}.person{display:flex;align-items:center;gap:12px}.person .avatar{background:#e7eddf;color:#426149}.progress{height:5px;background:#e9eee5;border-radius:10px;overflow:hidden;margin:13px 0}.progress span{display:block;height:100%;background:#6b8b61;transition:width .25s}.notice{padding:13px 16px;background:#f3f5ec;border:1px solid #e1e6d8;border-radius:9px;font-size:12px;line-height:1.7;margin-bottom:20px}.tabs{display:flex;gap:5px;margin:0 0 23px;border-bottom:1px solid var(--line);overflow:auto}.tabs button{border:0;background:transparent;border-radius:0;padding:13px 15px;color:var(--muted);white-space:nowrap}.tabs button.active{color:var(--ink);box-shadow:inset 0 -2px var(--bronze)}.toolbar{display:flex;align-items:center;gap:12px;margin:0 0 20px;flex-wrap:wrap}input,select,textarea{padding:11px 13px;border:1px solid var(--line);border-radius:9px;color:var(--ink);background:#fff;max-width:100%}input[type=search]{flex:1;min-width:180px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;font-size:9px;color:var(--muted);letter-spacing:.7px;font-weight:500;padding:12px 10px;border-bottom:1px solid var(--line)}td{padding:18px 10px;border-bottom:1px solid #edf0e9}td small{display:block;color:var(--muted);margin-top:5px}.money{text-align:right;white-space:nowrap}.back{display:inline-block;color:var(--terracotta-dark);font-size:12px;margin-bottom:15px}.client-heading{display:flex;gap:15px;align-items:center;margin-bottom:23px}.client-heading h1{font:500 39px var(--serif);margin:0 0 5px}.client-heading p{margin:0;color:var(--muted);font-size:12px}.client-heading .avatar{width:58px;height:62px;font:22px var(--serif)}.right{margin-left:auto}.summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.summary p{font-size:11px;color:var(--muted);margin:0 0 7px}.summary strong{font-size:13px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.project{cursor:pointer;transition:transform .15s}.project:hover{transform:translateY(-2px);border-color:#a4b89c}.project h2{font:500 29px var(--serif);margin:10px 0}.project p{font-size:12px;color:var(--muted)}.module{padding:17px 0;border-top:1px solid var(--line)}.module-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.checks{display:flex;gap:15px;flex-wrap:wrap;margin-top:13px}.checks label{font-size:11px;display:flex;gap:7px;align-items:center;cursor:pointer}.checks input{accent-color:#355d44;width:16px;height:16px}.module small{display:block;margin-top:10px;color:var(--muted);line-height:1.6}.steps{padding:0;list-style:none;margin:0}.steps li{padding:14px 0;display:flex;gap:12px;border-bottom:1px solid var(--line)}.steps b{font:italic 23px var(--serif);color:var(--bronze)}.steps strong{display:block;font-size:12px;margin-bottom:5px}.steps small{color:var(--muted)}.empty{padding:30px;text-align:center;color:var(--muted)}.amount{font:500 39px var(--serif)}.expense{color:#976950}.legend{font-size:10px;color:var(--muted);line-height:1.8}.field{display:grid;gap:7px;margin-bottom:16px;font-size:12px}.field textarea{min-height:100px}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:15px}footer{padding:25px 36px;font-size:9px;color:#8b978d;display:flex;justify-content:space-between;gap:15px}dialog{border:1px solid var(--line);border-radius:20px;width:650px;max-width:calc(100% - 28px);padding:28px;color:var(--ink);max-height:90vh}dialog::backdrop{background:#08201899}dialog h2{font:500 30px var(--serif)}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.report h1{font:36px var(--serif)}.report h3{margin-top:25px}.report li{margin:10px 0;line-height:1.6;font-size:12px}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#163c2c;color:white;padding:13px 20px;border-radius:10px;z-index:100;box-shadow:0 5px 30px #0002;font-size:12px}button[disabled]{opacity:.5;cursor:default}[hidden]{display:none!important}@media(max-width:1100px){aside{width:210px}.shell{margin-left:210px}main{padding:0 22px}.top{padding:0 22px}.hero{padding:27px}.grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){aside{transform:translateX(-100%);width:236px;transition:transform .2s}.menu-open aside{transform:none;box-shadow:0 0 0 100vmax #09261988}.shell{margin:0}.menu{display:block;padding:6px 10px}.top{height:64px;gap:10px;padding:0 16px}.prototype{font-size:7px;padding:6px}.top>#crumb{display:none}main{padding:0 16px}.hero{padding:24px;display:block}.hero button{margin-top:18px}.hero h1{font-size:35px}.panel{padding:19px}.stat{padding:17px}.stat strong{font-size:25px}.project-grid,.twocol{grid-template-columns:1fr}.summary{grid-template-columns:1fr 1fr}.head{flex-wrap:wrap}.row{gap:10px}.client-heading{flex-wrap:wrap}.client-heading h1{font-size:31px}.client-heading .right{margin-left:0}.checks{gap:10px}.checks label{font-size:10px}footer{padding:20px 16px;display:block}footer span{display:block;margin-top:7px}.row .tags{max-width:110px}body{overflow-x:clip}}@media print{body>*{display:none!important}dialog[open]{display:block!important;position:static;max-height:none;width:100%;max-width:none;border:0}.dialog-actions{display:none!important}dialog::backdrop{display:none}}
.form-error{color:#a34735;font-size:12px;line-height:1.6}.summary.four{grid-template-columns:repeat(4,minmax(0,1fr))}.summary.four strong{font-size:17px}.chart-legend{display:flex;gap:20px;font-size:11px;color:var(--muted);margin-bottom:20px}.chart-legend span{display:flex;gap:7px;align-items:center}.chart-legend i{width:9px;height:9px;border-radius:3px}.income-dot,.income-bar{background:#53764f}.expense-dot,.expense-bar{background:var(--terracotta)}.evolution{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:15px}.month-bar{text-align:left;padding:20px;border:1px solid var(--line);background:#fbfcf9}.month-bar>strong{display:block;text-transform:capitalize;margin-bottom:18px}.month-bar small{display:block;font-size:10px;color:var(--muted);margin:7px 0 14px}.month-bar p{font-size:11px;line-height:1.8}.month-bar p b{display:block;font-size:17px}.bar-track{height:9px;border-radius:8px;background:#e9ede5;overflow:hidden}.bar-track span{height:100%;display:block;border-radius:8px}.toolbar label{display:flex;align-items:center;gap:8px;font-size:12px}@media(max-width:1000px){.summary.four{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:450px){.summary.four{grid-template-columns:1fr}.toolbar label{width:100%;justify-content:space-between}.toolbar label select{max-width:70%}.head .toolbar{width:100%}.head .toolbar button{flex:1}}
/* Compact navigation: group related pages without relocating their content. */
#sidebar{padding:24px 14px 18px}.brand{padding-bottom:28px}.nav-label{padding-bottom:10px}#nav{display:block;overflow-y:auto;min-height:0;scrollbar-width:thin}#nav>a,#nav .nav-group-toggle{min-height:42px;margin:3px 0;padding:10px 12px;font-size:12px}.nav-group-toggle{display:flex;align-items:center;gap:13px;width:100%;text-align:left;background:transparent;color:#c3d2c6;border:0;border-radius:9px}.nav-group-toggle>b{width:21px;font-size:17px;font-weight:400;color:#9eb49f}.nav-group-toggle>span:not(.nav-chevron){flex:1}.nav-group-toggle:hover{background:#ffffff0a}.nav-group-toggle.group-current{color:#f5eee4}.nav-chevron{margin-left:auto;font-size:14px;transition:transform .15s}.nav-group-toggle[aria-expanded=true] .nav-chevron{transform:rotate(180deg)}.nav-submenu{margin:0 0 8px 22px;padding:2px 0 2px 12px;border-left:1px solid #ffffff18}#nav .nav-child{padding:9px 12px;min-height:35px;font-size:11px;margin:2px 0;line-height:1.5;gap:0}.nav-utility{margin-top:20px;padding-top:12px;border-top:1px solid #ffffff12}.nav-utility a{font-size:11px;color:#98afa0;padding:9px 12px}.sidebar-foot{flex-shrink:0;margin-top:auto;padding-top:16px}.nav-utility a.active{color:white}
#nav{display:flex;flex-direction:column;flex:1;gap:0}.nav-main>a{min-height:42px;margin:3px 0;padding:10px 12px;font-size:12px}.sidebar-icon{width:19px;height:19px;flex:0 0 19px;color:#a4b8a6}.nav-chevron{display:flex;align-items:center}.nav-chevron .sidebar-icon{width:15px;height:15px;flex-basis:15px}#nav a.active .sidebar-icon,.nav-group-toggle.group-current>.sidebar-icon{color:var(--terracotta)}#nav .nav-utility{margin-top:auto;padding-top:12px;padding-bottom:8px}.sidebar-foot{margin-top:0}.nav-main{padding-bottom:22px}
.quote-copy{white-space:pre-line;font-size:13px;line-height:1.8;overflow-wrap:anywhere}.quote-stage{font-size:13px;padding:6px 0;line-height:1.6}.quote-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px;margin-top:22px;background:#f3f6ef;border-radius:12px}.quote-actions p{margin:6px 0 0}.project-step{display:flex;gap:12px;align-items:center;font-size:13px}.project-step input{accent-color:#3b6749}@media(max-width:700px){.quote-actions{align-items:flex-start;flex-direction:column}}

.locked>.shell,.locked>aside{display:none}.login-card{max-width:460px;margin:8vh auto;padding:32px;background:#fff;border-radius:24px}.login-card h1{font-size:38px}.login-card[hidden]{display:none}.save-error{color:#9d392d!important}.prototype{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.private-note{white-space:pre-wrap}@media(max-width:600px){.login-card{margin:20px}.top{flex-wrap:wrap;height:auto;gap:12px}.prototype{font-size:9px}}
.locked{min-height:100vh;background:#f3f4ef;display:grid;place-items:center;padding:34px}.locked .login-card{display:grid;grid-template-columns:1.05fr 1fr;width:min(100%,1000px);max-width:1000px;min-height:620px;margin:0;padding:0;overflow:hidden;border:1px solid #dde3d8;border-radius:26px;box-shadow:0 24px 80px #173e2e0b}.login-identity{background:radial-gradient(ellipse at 0% 0%,#254b3b,transparent 72%),#0b2018;color:#f7f5ed;padding:46px;display:flex;flex-direction:column;justify-content:space-between}.login-brand{display:flex;align-items:center;gap:14px}.login-brand img{width:64px;height:64px;object-fit:cover;border-radius:50%}.login-brand>span{font-family:'Cormorant Garamond',Georgia,serif;font-size:24px;letter-spacing:.12em}.login-brand small{display:block;font-family:'DM Sans',sans-serif;font-size:9px;letter-spacing:.24em;margin-top:4px;color:var(--terracotta)}.login-intro .eyebrow{color:var(--terracotta)}.login-card .login-intro h1{font-family:'Cormorant Garamond',Georgia,serif;font-size:54px;font-weight:400;line-height:1.1;letter-spacing:-.02em;color:#fff;margin:24px 0}.login-intro h1 em{color:var(--terracotta);font-weight:400}.login-intro p{font-size:14px;line-height:1.9;color:#c7d5cb}.login-signature{font-size:11px;letter-spacing:.04em;color:#9cac9e;padding-top:36px}.login-access{padding:52px 46px;align-self:center}.login-access .eyebrow{color:var(--terracotta-dark)}.login-access h2{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;font-size:38px;line-height:1.12;margin:13px 0 14px}.login-access h2 em{color:var(--terracotta-dark)}.login-description{color:#6d8075;font-size:12px;line-height:1.6;margin-bottom:25px}.google-button{display:flex;width:100%;align-items:center;justify-content:center;gap:12px;height:47px;background:#fff;border-color:#d5dfd2}.login-divider{display:flex;align-items:center;gap:12px;color:#87918a;font-size:10px;margin:23px 0}.login-divider:before,.login-divider:after{content:'';height:1px;background:#e4e8df;flex:1}.login-access .field{font-size:11px;margin:0 0 18px}.login-access input{height:46px;background:#fafbf7}.login-submit{width:100%;display:flex;align-items:center;justify-content:space-between;height:47px;margin-top:8px}.login-submit span{font-size:20px;font-weight:400}.login-footnote{display:block;text-align:center;font-size:10px;color:#7f8b83;margin-top:24px}.login-access #auth-error{font-size:12px;line-height:1.6;color:#9e4c3b}.login-card[hidden]{display:none!important}@media(max-width:700px){.locked{padding:18px}.locked .login-card{grid-template-columns:1fr;min-height:0}.login-identity{padding:27px 28px}.login-brand img{width:45px;height:45px}.login-brand>span{font-size:20px}.login-intro .eyebrow,.login-intro p,.login-signature{display:none}.login-card .login-intro h1{font-size:36px;margin:24px 0 0}.login-access{padding:30px 28px}.login-access h2{font-size:33px}.login-description{margin-bottom:20px}}
/* Balance the simplified sign-in identity panel. */
.login-identity{justify-content:flex-start}
.login-brand{justify-content:center}
.login-intro{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;padding-bottom:64px}
.login-card .login-intro h1{margin:0}
@media(max-width:700px){.login-intro{padding-bottom:0;margin-top:28px}.login-card .login-intro h1{margin:0}}
.login-submit{justify-content:center}
/* One entrance sequence; fixed text layout prevents typing from moving the form. */
.login-type-word{display:inline-block;white-space:nowrap}
.login-type-letter{opacity:0;animation:login-type-in 1ms step-end forwards}
.login-falling{display:inline-block;opacity:0;animation:login-fall-bounce 950ms 1050ms both;transform-origin:center bottom}
@keyframes login-type-in{to{opacity:1}}
@keyframes login-fall-bounce{0%{opacity:0;transform:translateY(-42px)}42%{opacity:1;transform:translateY(0)}62%{transform:translateY(-13px)}79%{transform:translateY(0)}90%{transform:translateY(-4px)}100%{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.login-type-letter,.login-falling{animation:none;opacity:1;transform:none}}

/* Secondary actions remain legible on the dark banner. */
.hero button:not(.primary){background:transparent;color:#f7f6ef;border-color:#ffffff45;white-space:nowrap}
.hero button:not(.primary):hover{background:#ffffff12;border-color:#ffffff80}

.shell{padding-top:24px}
.sidebar-logout{background:transparent;color:#c3d2c6;border:0;text-align:left;font-size:12px;margin-top:12px;padding:8px 6px}
.sidebar-logout:hover{background:#ffffff0a;color:#fff}
#save-status.save-error{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);z-index:90;max-width:calc(100vw - 32px);margin:0;padding:12px 18px;background:#fff3ef;color:#8b3f30;border:1px solid var(--terracotta);border-radius:10px}
@media(max-width:700px){.shell{padding-top:16px}.hero .menu{margin:0 0 14px;padding:6px 10px;width:auto}}

/* Compact navigation with a quiet scrollbar when the viewport is short. */
#nav{scrollbar-color:#6e887866 transparent;overscroll-behavior:contain}
#nav::-webkit-scrollbar{width:4px}
#nav::-webkit-scrollbar-track{background:transparent}
#nav::-webkit-scrollbar-thumb{background:#6e887866;border-radius:6px}
#nav:hover{scrollbar-color:#8da893 transparent}
#nav .nav-main,#nav .nav-utility{flex-shrink:0}
#nav .nav-main{padding-bottom:12px}
#nav .nav-submenu{margin-left:17px;padding-left:9px}
#nav .nav-child{padding:8px 9px;line-height:1.4}
#sidebar>.brand,#sidebar>.nav-label,.sidebar-logout{flex-shrink:0}
@media(max-height:850px){#sidebar{padding-top:18px;padding-bottom:12px}#sidebar .brand{padding-bottom:18px}#nav .nav-main>a,#nav .nav-group-toggle{min-height:38px;padding-top:8px;padding-bottom:8px;margin:1px 0}#nav .nav-child{min-height:31px;padding-top:6px;padding-bottom:6px}#nav .nav-submenu{margin-bottom:5px}.sidebar-foot{padding-top:12px}.sidebar-logout{margin-top:6px;padding-top:6px;padding-bottom:6px}}

/* Brand terracotta accents, shared by section banners and identity. */
:root{--terracotta:#b09088;--terracotta-dark:#9a7870;--bronze:var(--terracotta)}
.hero h1 em,.hero .eyebrow{color:var(--terracotta)}
.brand small,.login-brand small,.login-card .login-intro h1 em{color:var(--terracotta)}

/* Same rose palette and action gradient as the MB Strategy system. */
.primary,.hero .primary{background:linear-gradient(135deg,#9a7870,#ccb0a8);border-color:transparent;color:#172c23;font-weight:600;box-shadow:inset 0 1px 0 #ffffff25}
.primary:hover,.hero .primary:hover{background:linear-gradient(135deg,#a5847c,#d4bab3);color:#172c23}

/* Login retains the green MB Strategy identity. */
.login-submit.primary{background:linear-gradient(135deg,#1a3528,#0d1f1a 60%,#060e0b);border-color:#163026;color:#fff}
.login-submit.primary:hover{background:linear-gradient(135deg,#254b39,#17372b 60%,#0b2018);color:#fff}
