*{box-sizing:border-box}:root{color:#493b39;font-synthesis:none;--ink:#493b39;--deep:#3d302f;--taupe:#8d786d;--paper:#f4f1ed;--white:#fff;--line:#d9d0ca;--soft:#eae5e1;--good:#59705d;--warn:#9a6f45;--bad:#8a514f;background:#f4f1ed;font-family:DM Sans,Helvetica Neue,Arial,sans-serif}body{background:var(--paper);min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.eyebrow{letter-spacing:.15em;color:#836f65;margin:0 0 .55rem;font-size:.7rem;font-weight:700}.login-shell{background:var(--paper);grid-template-columns:minmax(19rem,.8fr) minmax(24rem,1.2fr);min-height:100vh;display:grid}.login-brand{background:var(--deep);color:#fff;flex-direction:column;justify-content:space-between;padding:3rem;display:flex}.login-brand img{filter:brightness(0)invert();width:min(19rem,90%)}.login-brand p{text-transform:uppercase;letter-spacing:.15em;font-size:.74rem}.login-panel{align-self:center;width:min(26rem,100% - 3rem);margin:auto}.login-panel h1,.view-heading h2,.dialog h2{font-family:Georgia,Times New Roman,serif;font-weight:400;line-height:1.05}.login-panel h1{letter-spacing:-.04em;margin:.15rem 0 1rem;font-size:clamp(2.5rem,6vw,4.7rem)}.intro{color:#6d5d58;max-width:23rem;margin-bottom:3rem;line-height:1.6}.login-panel form,.lead-form{gap:1rem;display:grid}.login-panel label,.lead-form label{letter-spacing:.05em;text-transform:uppercase;gap:.45rem;font-size:.75rem;font-weight:700;display:grid}.login-panel input,.lead-form input,.lead-form select,.lead-form textarea{text-transform:none;letter-spacing:0;background:0 0;border:0;border-bottom:1px solid #78645f;outline:none;width:100%;padding:.8rem .15rem;font-size:1rem}.lead-form textarea{border:1px solid var(--line);resize:vertical;padding:.8rem}.login-panel input:focus-visible,.lead-form input:focus-visible,.lead-form select:focus-visible,.lead-form textarea:focus-visible,button:focus-visible{outline-offset:3px;outline:2px solid #8d786d}.primary{background:var(--deep);color:#fff;border:0;min-height:2.8rem;padding:.7rem 1rem;font-weight:700}.primary:disabled{opacity:.55}.text-action{background:0 0;border:0;padding:.35rem;text-decoration:underline}.code-note{margin:0 0 .5rem;font-size:.9rem;line-height:1.5}.error{color:#8b3937;margin:0;font-size:.86rem}.portal-shell{min-height:100vh}.portal-header{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;height:5rem;padding:0 clamp(1rem,4vw,3rem);display:flex}.portal-header img{width:14rem;max-height:3rem}.portal-header div{align-items:center;gap:1rem;font-size:.82rem;display:flex}.portal-header button{background:0 0;border:0;text-decoration:underline}.portal-nav{border-bottom:1px solid var(--line);background:#fff;gap:1.75rem;padding:0 clamp(1rem,4vw,3rem);display:flex;overflow-x:auto}.portal-nav button{white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;height:3.15rem;font-size:.78rem;font-weight:700}.portal-nav button.active{border-color:var(--deep)}.workspace{max-width:86rem;margin:0 auto;padding:clamp(1.25rem,4vw,3.5rem)}.view-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.5rem;padding-bottom:1.3rem;display:flex}.view-heading h2{margin:0;font-size:clamp(2rem,5vw,3.6rem)}.view-heading>p,.view-heading>span{color:#7d6d67;font-size:.75rem}.metric-ledger{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);margin-bottom:2rem;display:grid}.metric{border-right:1px solid var(--line);gap:.28rem;min-width:0;padding:1.2rem 1.2rem 1.1rem 0;display:grid}.metric+.metric{padding-left:1.2rem}.metric:last-child{border-right:0}.metric span{text-transform:uppercase;letter-spacing:.08em;color:#796862;font-size:.72rem}.metric strong{font-variant-numeric:tabular-nums;font-family:Georgia,serif;font-size:clamp(1.65rem,4vw,2.4rem);font-weight:400}.metric small{color:#786964;font-size:.75rem}.two-column{grid-template-columns:1.2fr .8fr;gap:1.5rem;display:grid}.panel{border:1px solid var(--line);background:#fff;padding:1.25rem}.panel-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:start;padding-bottom:.8rem;display:flex}.panel-heading h3{margin:0;font-family:Georgia,serif;font-size:1.6rem;font-weight:400}.panel-heading>span{font-family:Georgia,serif;font-size:1.7rem}.lead-row{border:0;border-bottom:1px solid var(--line);text-align:left;background:0 0;grid-template-columns:.55rem 1fr auto;align-items:center;gap:.8rem;width:100%;padding:1rem .1rem;display:grid}.lead-row:hover{background:#faf8f6}.status-mark{background:#8d786d;border-radius:50%;width:.45rem;height:.45rem}.status-new{background:#9a6f45}.status-booked,.status-consultation{background:#6c758d}.status-converted{background:#59705d}.status-lost{background:#8a514f}.lead-main,.lead-side{gap:.2rem;display:grid}.lead-main strong,.lead-side strong{font-size:.88rem}.lead-main small,.lead-side small{color:#7d6d67;font-size:.72rem}.lead-side{text-align:right}.cost-lines{grid-template-columns:repeat(3,1fr);display:grid}.cost-lines .metric{padding:.9rem .7rem}.cost-lines .metric+.metric{padding-left:.7rem}.cost-lines .metric strong{font-size:1.35rem}.boundary{color:#7d6d67;border-top:1px solid var(--line);margin:1rem 0 0;padding-top:1rem;font-size:.75rem;line-height:1.55}.filter-row{gap:.5rem;padding:.2rem 0 1rem;display:flex;overflow-x:auto}.filter-row button{border:1px solid var(--line);white-space:nowrap;background:0 0;padding:.55rem .75rem;font-size:.72rem}.filter-row button.active{background:var(--deep);border-color:var(--deep);color:#fff}.lead-list{border-top:1px solid var(--line)}.lead-list .lead-row{grid-template-columns:.55rem 1fr minmax(8rem,auto);padding:1rem .5rem}.dialog-backdrop{z-index:20;background:#261d1c73;justify-content:flex-end;display:flex;position:fixed;inset:0}.dialog{background:var(--paper);width:min(34rem,100%);height:100%;padding:clamp(1.2rem,4vw,2.5rem);position:relative;overflow:auto}.close{background:0 0;border:0;font-size:2rem;line-height:1;position:absolute;top:1rem;right:1rem}.dialog h2{margin:.2rem 2rem 1rem 0;font-size:2.5rem}.contact-line{flex-wrap:wrap;gap:.8rem;font-size:.8rem;display:flex}.contact-line a{color:inherit}.source-truth{flex-wrap:wrap;gap:.5rem;margin:1.4rem 0;display:flex}.source-truth span{border:1px solid var(--line);padding:.45rem .55rem;font-size:.7rem}.lead-form{border-top:1px solid var(--line);padding-top:1.2rem}.campaign-ledger{border-top:1px solid var(--line)}.campaign-head,.campaign-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(14rem,1fr) 5rem 7rem 7rem;align-items:center;gap:1rem;padding:.9rem .5rem;display:grid}.campaign-head{text-transform:uppercase;letter-spacing:.08em;font-size:.68rem}.campaign-row{font-size:.82rem}.campaign-row strong{font-weight:600}.campaign-row span{font-variant-numeric:tabular-nums}.wide{max-width:50rem}.loading,.empty{color:#7b6c67;padding:2rem 0}.banner{border:1px solid #c99;padding:.75rem}.compact{margin-bottom:1.25rem}@media (width<=760px){.login-shell{grid-template-columns:1fr}.login-brand{justify-content:center;min-height:8rem;padding:1.4rem}.login-brand img{width:13rem}.login-brand p{display:none}.login-panel{padding:2.5rem 0}.login-panel h1{font-size:3rem}.portal-header{height:4.25rem}.portal-header img{width:10.5rem}.portal-header span{display:none}.portal-nav{gap:1.2rem}.workspace{padding:1.35rem 1rem 4rem}.view-heading{flex-direction:column;align-items:start}.view-heading h2{font-size:2.45rem}.metric-ledger{grid-template-columns:repeat(2,1fr)}.metric:nth-child(2){border-right:0}.metric:nth-child(-n+2){border-bottom:1px solid var(--line)}.metric:nth-child(3){padding-left:0}.two-column,.cost-lines{grid-template-columns:1fr}.cost-lines .metric{border-right:0;border-bottom:1px solid var(--line);padding:.8rem 0}.cost-lines .metric+.metric{padding-left:0}.campaign-head{display:none}.campaign-row{grid-template-columns:1fr repeat(3,auto);gap:.6rem;padding:.9rem 0}.campaign-row strong{grid-column:1/-1}.dialog{padding-top:3.5rem}.lead-list .lead-row{grid-template-columns:.55rem 1fr auto}.source-truth{gap:.35rem}}@media (prefers-reduced-motion:no-preference){.dialog{animation:.18s ease-out slide}@keyframes slide{0%{opacity:.7;transform:translate(2rem)}to{opacity:1;transform:none}}}
