*{box-sizing:border-box} [hidden]{display:none!important}
:root{--ink:#19251f;--muted:#5b685e;--line:#dde3d9;--bg:#f4f5ef;--white:#fff;--sage:#dbe7d7;--forest:#21392e;--deep:#15291f;--error:#9b3028}
html{font-family:"DM Sans",Inter,system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5}
body{margin:0} a{color:inherit} button,input,select,textarea{font:inherit;color:inherit} button,a,select{-webkit-tap-highlight-color:transparent}
button{cursor:pointer;border:0} button:disabled{opacity:.55;cursor:wait} button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #56836a;outline-offset:3px}
.shell{width:min(1120px,calc(100% - 48px));margin-inline:auto}
.top{color:#f4f8f0;background:var(--deep);border-bottom:1px solid #31453a}
.mast{height:75px;display:flex;justify-content:space-between;align-items:center;gap:20px}
.brand{display:inline-flex;gap:13px;align-items:center;text-decoration:none;font-weight:650;line-height:1.1;letter-spacing:-.025em}
.monogram{border:1px solid #78907d;color:white;width:40px;height:40px;display:grid;place-content:center;grid-auto-flow:column;align-items:end;font-size:19px;letter-spacing:-.1em}
.monogram span{color:#a8ce9d}.mast-right{display:flex;gap:16px;align-items:center}.portal-label,.eyebrow{font-size:.7rem;letter-spacing:.14em;font-weight:750}
.mode{background:#344b3f;padding:5px 11px;border-radius:99px;font-size:.75rem;font-weight:650}
#root{min-height:65vh;padding-top:33px}.loading{padding:36px 0;color:var(--muted)}
.crumb{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px;color:var(--muted);font-size:.83rem}
.crumb a{text-decoration:none}.crumb a:hover{text-decoration:underline}.crumb-actions{display:flex;gap:8px}
.hero{background:var(--forest);color:white;border-radius:18px;overflow:hidden;position:relative;padding:36px 40px;isolation:isolate;display:flex;justify-content:space-between;gap:24px;align-items:flex-end}
.hero::after{content:"";position:absolute;z-index:-1;inset:0;background:repeating-linear-gradient(140deg,transparent 0 29px,#dbe7d714 30px 31px,transparent 32px 60px);mask-image:linear-gradient(90deg,transparent 45%,#000)}
.hero .eyebrow{color:#c0d1bf;margin:0 0 10px}.hero p:last-child{margin-bottom:0}.hero h1{font-size:clamp(2.2rem,5vw,4.2rem);line-height:1.02;letter-spacing:-.075em;margin:0;font-weight:680;overflow-wrap:anywhere}.hero .sub{color:#d6e2d5;margin-top:14px}
.tabs{display:flex;gap:8px;overflow:auto;padding:20px 0 15px;border-bottom:1px solid var(--line);margin-bottom:22px}.tab{border-radius:8px;padding:8px 13px;white-space:nowrap;font-size:.88rem;background:transparent;color:var(--muted);font-weight:650}
.tab.active{background:#e1ebdf;color:#213e2f}.tab:hover{background:#e7ebe2}
.grid{display:grid;grid-template-columns:minmax(0,1.62fr) minmax(0,1fr);gap:18px;align-items:start}.stack{display:grid;gap:18px}
.card{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:21px 23px;min-width:0}.card h2{font-size:1.13rem;letter-spacing:-.035em;margin:0}.head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.head .eyebrow{color:var(--muted)}
.row{display:flex;gap:13px;align-items:flex-start;min-width:0;padding:14px 0;border-bottom:1px solid #e7ebe3}.row:last-child{border-bottom:0;padding-bottom:3px}.row-main{flex:1;min-width:0;overflow-wrap:anywhere}.row h3{font-size:.95rem;margin:0;font-weight:710}.row p,.empty,.muted{color:var(--muted)}.row p{white-space:pre-wrap;font-size:.84rem;margin:4px 0 0}.row p.meta{font-size:.75rem;margin-top:3px}.row time{display:block;color:var(--muted);font-size:.74rem;margin-bottom:3px}.row-side{display:grid;justify-items:end;gap:5px}.badge{background:#e9eee8;color:#435a4b;border-radius:99px;padding:4px 8px;font-size:.68rem;font-weight:720;white-space:nowrap}.badge.complete,.badge.resolved{background:#e1efe2;color:#275e3c}.badge.in-progress{background:#dfebe2;color:#244d38}.badge.delayed,.badge.open{background:#f7ecd9;color:#795016}
.date{display:grid;place-items:center;min-width:46px;padding:4px 5px 6px;background:#edf2e9;border-radius:8px;line-height:1.13;color:#365345}.date span{font-size:.64rem;text-transform:uppercase;font-weight:700;letter-spacing:.05em}.date strong{font-size:1.13rem}.date.tbd{font-size:.72rem;font-weight:750;padding:12px 4px}
.primary,.secondary,.danger{border-radius:8px;padding:8px 12px;font-size:.83rem;font-weight:720;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.primary{background:var(--forest);color:white}.primary:hover{background:#315343}.hero .primary{background:#edf4e9;color:var(--deep)}.secondary{background:#edf1e9;color:#2d4839}.secondary:hover{background:#dce7d9}.danger{background:#f9eae8;color:var(--error)}.text-button{background:transparent;color:#345c46;padding:2px 0;font-size:.77rem;font-weight:720}.text-button:hover{text-decoration:underline}.empty{font-size:.91rem;margin:16px 0 3px}.aside-note{font-size:.85rem;color:var(--muted);margin-bottom:6px}
.project-list{display:grid;gap:12px;margin-top:18px}.project-link{display:block;text-decoration:none}.project-link:hover{border-color:#73977e}.project-link p{margin:5px 0 0}
.footer{border-top:1px solid var(--line);margin-top:32px;padding:18px 0 26px;display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:.76rem}
dialog{border:1px solid var(--line);border-radius:16px;color:var(--ink);width:min(470px,calc(100% - 24px));padding:20px 23px;max-height:90dvh;box-shadow:0 18px 70px #15291f35} dialog::backdrop{background:#0a1b1280}
.form-top,.form-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px}.form-top h2{margin:0;font-size:1.23rem}.form-bottom{margin-top:18px}.form-bottom .primary{margin-left:auto}
.icon{background:#edf1e9;border-radius:50%;width:32px;height:32px;font-size:1.2rem;line-height:1}
label{display:grid;gap:5px;margin-top:12px;font-size:.84rem;font-weight:650}
input,textarea,select{width:100%;min-width:0;border:1px solid #b7c5ba;border-radius:7px;background:white;padding:8px 9px;font-weight:450}textarea{min-height:94px;resize:vertical}
#form-error,.error{color:var(--error);font-size:.88rem}#toast{position:fixed;right:18px;bottom:18px;max-width:calc(100% - 36px);background:var(--deep);color:white;padding:10px 15px;border-radius:8px;font-size:.88rem}#toast:empty{display:none}
@media(max-width:720px){.shell{width:calc(100% - 28px)}.grid{grid-template-columns:1fr}.hero{padding:28px 22px;align-items:flex-start;flex-direction:column}.mast{height:64px}.portal-label{display:none}#root{padding-top:20px}.card{padding:17px}.footer{margin-top:23px}.crumb{flex-wrap:wrap}}
@media(max-width:400px){.row{gap:8px}.date{min-width:37px}.card{padding-inline:12px}.row .badge{white-space:normal;text-align:center}.row-side{max-width:95px}}
.auth-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:20px;align-items:stretch}
.auth-layout .hero{align-items:center}
.auth-layout .card{padding:27px}
.auth-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:17px}
@media(max-width:720px){.auth-layout{grid-template-columns:1fr;gap:14px}.auth-layout .card{padding:19px}}
@font-face{font-family:Quicksand;src:url('/brand/Quicksand.ttf') format('truetype');font-weight:300 700;font-display:swap}
:root{--ink:#202d25;--muted:#536055;--line:#dcded2;--bg:#f5f4ed;--white:#fffef9;--forest:#284536;--deep:#20392d}
html{font-family:Quicksand,Arial,sans-serif}
.top{background:#284536;color:#f5f4ed;border-color:#617466}
.mast{height:94px}
.wordmark{display:block;font-size:25px;line-height:1.2;letter-spacing:.15em;font-weight:400;white-space:nowrap;text-decoration:none}
.wordmark span{display:block;font-size:10px;letter-spacing:.49em;margin-top:8px;text-align:center}
.hero,.card,.tab,.primary,.secondary,.danger,.date{border-radius:4px}
.hero h1{letter-spacing:-.055em;font-weight:550}
.hero::after{background:linear-gradient(150deg,transparent 50%,#c1cead36)}
.card h2{letter-spacing:-.025em;font-weight:650}
.auth-layout{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:0;border:1px solid var(--line)}
.auth-layout .card{border:0;padding:clamp(26px,4.4vw,64px);border-radius:0;align-content:center}
.auth-layout .card h2{font-size:clamp(1.5rem,2.9vw,2.4rem);font-weight:550;line-height:1.15}
.auth-photo{min-height:449px;display:flex;align-items:end;padding:clamp(24px,4vw,50px);background:linear-gradient(180deg,transparent 20%,#13251ce8 100%),url('/brand/west-coast-interior-concept.webp') center center/cover;color:#fffef5}
.auth-photo h1{font-size:clamp(2.4rem,5.7vw,4.8rem);letter-spacing:-.055em;font-weight:550;line-height:1;margin:0}
.auth-photo p{margin:10px 0 0;color:#f3f3e9}
@media(max-width:720px){.mast{height:76px}.wordmark{font-size:21px;letter-spacing:.12em}.wordmark span{font-size:8px;letter-spacing:.46em}.auth-layout{grid-template-columns:1fr}.auth-photo{min-height:229px}.mast-right{gap:7px}.mast-right .mode{display:none}}
@media(max-width:390px){.wordmark{font-size:17px}.wordmark span{font-size:7px}.mast-right .secondary{padding:6px 8px}}
