:where(small){font-size:max(14px,.875em)}
:root{--ink:#111;--paper:#ffffff;--white:#fff;--muted:#777;--line:#dddcd6;--green:#b8ff5a;--green2:#438e00}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.app-top{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(16px,5vw,65px);background:rgba(247,247,244,.94);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.app-logo{display:flex;align-items:center;gap:10px;font-weight:850;font-size:14px}.app-logo i{width:29px;height:29px;border-radius:50%;background:#111;color:var(--green);display:grid;place-items:center;font-style:normal}.app-top nav{display:flex;align-items:center;gap:22px;font-size:14px;font-weight:800}.mode{background:#B8FF5A;border:1px solid #B8FF5A;border-radius:100px;padding:6px 9px;font-size:14px;color:#6d5c15}.btn{border:0;border-radius:100px;padding:12px 17px;font-size:14px;font-weight:850;cursor:pointer}.btn.primary{background:var(--green)}.btn.dark{background:#111;color:#fff}.btn.line{background:#fff;border:1px solid var(--line)}.autosave{display:flex;align-items:center;gap:6px;font-size:14px;color:#777}.autosave i{width:7px;height:7px;background:var(--green2);border-radius:50%}.portal{max-width:1200px;margin:auto;padding:45px 20px 120px}.portal-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:35px}.eyebrow{font-size:14px;letter-spacing:.16em;font-weight:900;color:#888}.portal-head h1{font-size:clamp(35px,5vw,60px);letter-spacing:-.055em;margin:6px 0}.portal-head p{color:#777}.portal-grid{display:grid;grid-template-columns:1fr 330px;gap:12px}.card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:22px}.card h2{font-size:20px;margin:4px 0 18px}.card>small{font-size:14px;letter-spacing:.14em;color:#999;font-weight:900}.progress{height:6px;background:#eee;border-radius:8px;overflow:hidden}.progress i{display:block;height:100%;background:var(--green2)}.stage-row{display:grid;grid-template-columns:repeat(5,1fr);margin:30px 0}.stage{text-align:center;position:relative;font-size:14px;color:#999}.stage:before{content:"";display:block;width:24px;height:24px;margin:0 auto 8px;background:#eee;border:1px solid #ddd;border-radius:50%;position:relative;z-index:2}.stage:after{content:"";position:absolute;height:1px;background:#ddd;left:-50%;right:50%;top:12px}.stage:first-child:after{display:none}.stage.done:before{content:"✓";display:grid;place-items:center;background:#111;color:#fff}.stage.current:before{background:var(--green);border-color:var(--green2);box-shadow:0 0 0 5px rgba(184,255,90,.2)}.stage.done:after,.stage.current:after{background:#111}.timeline{border-left:1px solid #ddd;margin-left:8px}.event{padding:0 0 25px 25px;position:relative}.event:before{content:"";position:absolute;left:-5px;top:3px;width:9px;height:9px;border-radius:50%;background:#111}.event:first-child:before{background:var(--green2)}.event time{font-size:14px;color:#999}.event h3{font-size:14px;margin:5px 0}.event p{font-size:14px;color:#777;margin:0}.side-stack{display:grid;gap:12px;align-content:start}.money{font-size:33px;color:var(--green2);font-weight:900;letter-spacing:-.05em}.info-list{display:grid}.info-list div{display:flex;justify-content:space-between;gap:15px;padding:11px 0;border-bottom:1px solid #eee;font-size:14px}.info-list span{color:#888}.message-list{max-height:280px;overflow:auto;display:grid;gap:9px;margin-bottom:12px}.message{padding:11px;border-radius:11px;background:#f0f0ed;max-width:85%;font-size:14px}.message.mine{margin-left:auto;background:#111;color:#fff}.message small{display:block;color:#999;margin-top:5px}.compose{display:flex;gap:6px}.compose input{flex:1;border:1px solid var(--line);border-radius:100px;padding:11px}.file{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #eee;font-size:14px}.approval{border:1px solid #B8FF5A;background:#fff9df;border-radius:11px;padding:14px;font-size:14px}.approval .actions{display:flex;gap:6px;margin-top:12px}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-story{background:#111;color:#fff;padding:clamp(35px,8vw,100px);display:flex;flex-direction:column;justify-content:space-between}.login-story h1{font-size:clamp(55px,8vw,110px);line-height:.85;letter-spacing:-.05em}.login-story h1 span{color:#777}.login-story p{color:#999;max-width:500px}.login-card-wrap{display:grid;place-items:center;padding:25px}.login-card{width:min(420px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px}.login-card h2{font-size:29px;letter-spacing:-.04em;margin:8px 0}.login-card>p{color:#777;font-size:14px}.login-card label{display:block;font-size:14px;font-weight:800;color:#777;margin-top:22px}.login-card input{display:block;width:100%;border:1px solid var(--line);border-radius:9px;padding:13px;margin-top:7px}.login-card .btn{width:100%;margin-top:10px}.divider{display:flex;align-items:center;gap:10px;color:#aaa;font-size:14px;margin:20px 0}.divider:before,.divider:after{content:"";height:1px;background:#ddd;flex:1}.security-note{background:#f3f3f0;border-radius:10px;padding:13px;margin-top:20px;font-size:14px;color:#777}.updates{max-width:850px;margin:auto;padding:80px 20px 140px}.updates h1{font-size:clamp(60px,10vw,130px);line-height:.85;letter-spacing:-.05em}.feed-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:45px 0}.feed-metrics div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:17px}.feed-metrics b{display:block;font-size:24px}.feed{border-top:1px solid var(--line)}.feed-item{display:grid;grid-template-columns:120px 1fr;gap:30px;padding:32px 0;border-bottom:1px solid var(--line)}.feed-item time{font:800 14px monospace;color:#999}.feed-item h2{font-size:25px;margin:0 0 8px}.feed-item p{color:#666;font-size:14px}.feed-tag{font-size:14px;font-weight:900;color:var(--green2)}
@media(max-width:750px){.app-top nav a:not(.btn){display:none}.mode{display:none}.portal{padding-top:25px}.portal-head{display:block}.portal-grid{grid-template-columns:1fr}.stage-row{overflow-x:auto}.stage{min-width:80px}.login-wrap{grid-template-columns:1fr}.login-story{min-height:280px}.login-story h1{font-size:60px}.feed-metrics{grid-template-columns:1fr}.feed-item{grid-template-columns:1fr;gap:8px}}
.demo-accounts{display:grid;gap:7px;padding:14px;background:#111;color:#fff;border-radius:11px;margin:18px 0}.demo-accounts>b{font-size:14px}.demo-accounts button{border:1px solid #444;background:#222;color:#fff;border-radius:8px;padding:9px;text-align:left;font-size:14px;cursor:pointer}.demo-accounts button:hover{border-color:var(--green);color:var(--green)}.demo-accounts small{color:#777;font-size:14px}.login-card button:disabled{opacity:.45;cursor:not-allowed}
.project-switcher{display:flex;align-items:center;gap:8px;font-size:14px;color:#777}.project-switcher select{max-width:240px;border:1px solid #ddd;border-radius:8px;background:#fff;padding:8px;font:inherit;color:#111}
/* Readability and usability pass */
body{font-size:16px;line-height:1.5}.app-logo{font-size:15px}.app-top nav{font-size:14px}.mode,.eyebrow,.card>small{font-size:14px}.btn{min-height:44px;font-size:14px}.autosave{font-size:14px}.portal-head p,.card p{font-size:14px}.stage{font-size:14px}.event time{font-size:14px}.event h3{font-size:15px}.event p,.message,.approval{font-size:14px}.info-list div,.file{font-size:14px}.compose input{min-height:44px;font-size:14px}.login-card>p{font-size:14px}.login-card label{font-size:14px}.login-card input{min-height:46px;font-size:15px}.divider,.security-note{font-size:14px}.demo-accounts>b,.demo-accounts button,.demo-accounts small{font-size:14px}.demo-accounts button{min-height:44px}.project-switcher{font-size:14px}.project-switcher select{min-height:44px;font-size:14px}.form-error{padding:10px 12px;border-radius:8px;background:#ffe9e5;color:#8f2016;font-size:14px;font-weight:700}.char-count{display:block;text-align:right;color:#777;font-size:14px;margin-top:4px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--green2);outline-offset:2px}
.agreement-copy{margin-top:18px;padding-top:12px;border-top:1px solid var(--line)}.agreement-copy h3{font-size:14px;margin:12px 0 3px}.agreement-copy p{font-size:14px;color:#666;margin:0;white-space:pre-wrap}

/* Desktop client/login action readability */
@media(min-width:751px){.btn,.login-card .btn{font-size:14px;font-weight:600}}

/* One consistent desktop CTA label scale */
@media(min-width:751px){.btn,.login-card .btn,.app-top button{font-size:14px;font-weight:600}}

/* Account access refinements */
.login-card label{font-weight:400;color:#555}
.login-password{display:flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;margin-top:7px;background:#fff}
.login-password input{flex:1;border:0!important;border-radius:0!important;margin:0!important;min-width:0}
.login-password button{border:0;border-left:1px solid var(--line);background:#f4f4f1;padding:0 14px;color:#333;cursor:pointer;font-size:14px}
.form-status{padding:10px 12px;border-radius:8px;background:#eef8e4;color:#285600;font-size:14px}

/* Familiar account touch targets */
.app-logo{min-height:44px}.login-card>a:last-child{display:flex!important;align-items:center;justify-content:center;min-height:44px}

/* Client dialogs replace browser prompts with a familiar focused workflow */
.client-dialog{border:0;padding:0;background:transparent;width:min(92vw,520px)}
.client-dialog::backdrop{background:rgba(0,0,0,.58);backdrop-filter:blur(4px)}
.client-dialog-card{background:#fff;border-radius:18px;padding:28px;box-shadow:0 24px 80px rgba(0,0,0,.25)}
.client-dialog-card h2{font-size:28px;margin:6px 0 8px}.client-dialog-card>p{color:#666;font-size:14px}.client-dialog-card label{display:grid;gap:8px;margin-top:20px;font-size:14px;color:#555}.client-dialog-card textarea{width:100%;resize:vertical;border:1px solid var(--line);border-radius:10px;padding:12px;min-height:130px}.client-dialog-card .actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.portal-notice{position:fixed;left:50%;bottom:24px;z-index:100;transform:translate(-50%,20px);opacity:0;background:#111;color:#fff;border-radius:100px;padding:12px 18px;font-size:14px;transition:.2s;pointer-events:none}.portal-notice.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:600px){.client-dialog-card{padding:22px}.client-dialog-card .actions{flex-direction:column}.client-dialog-card .actions .btn{width:100%}}
@media(max-width:750px){
  .app-logo{white-space:nowrap;line-height:1.1}.app-top{padding-inline:12px}.app-top nav{gap:8px}.app-top .autosave{display:none}
  .portal-grid,.portal-grid>div,.side-stack,.card{min-width:0}.stage-row{width:100%;max-width:100%;overflow-x:auto}
  .portal-head .project-switcher[hidden]{display:none}
  .portal-head{display:grid;gap:14px;align-items:start}.portal-head #requestChange{justify-self:start}
}

/* Client workspace primary actions and conversation */
.portal-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.portal-actions .btn{display:inline-flex;align-items:center;justify-content:center;text-align:center}.portal-actions+.project-switcher{margin-left:14px}#projectMessagesCard{scroll-margin-top:84px}.compose button{flex:0 0 auto}
@media(max-width:750px){.portal-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;margin:18px 0 12px}.portal-actions .btn{width:100%}.portal-actions+.project-switcher{margin-left:0}.compose{align-items:stretch}.compose input{min-width:0}.compose button{padding-inline:18px}}
@media(max-width:380px){.portal-actions{grid-template-columns:1fr}.compose{display:grid;grid-template-columns:1fr}.compose button{width:100%}}

/* Client-facing body copy stays regular; bold is reserved for headings and key status. */
body{font-weight:400}.app-top nav{font-weight:500}.app-logo{font-weight:650}.btn{font-weight:600}.eyebrow,.card>small{font-weight:650}.info-list b,.file b,.message small,.event time{font-weight:500}.card p,.message,.approval,.info-list,.timeline{font-weight:400}.stage{font-weight:500}.project-switcher{font-weight:400}
.request-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:13px 0;border-bottom:1px solid #eee}.request-row:last-child{border-bottom:0}.request-row b{display:block;font-size:14px;font-weight:500}.request-row small{display:block;margin-top:5px;color:#777}.request-status{flex:0 0 auto;border-radius:100px;padding:5px 8px;background:#eee;font-size:14px;text-transform:capitalize}.request-status.resolved{background:#eaffd1;color:#356b00}.request-status.reviewing{background:#B8FF5A;color:#725800}
.pay-box{display:grid;gap:12px;margin-top:14px}.pay-box p{margin:0;font-size:14px;color:#555}.pay-box .btn{width:100%}.pay-box .btn:disabled{opacity:.45;cursor:not-allowed}.bank-alt summary{font-size:14px;font-weight:700;cursor:pointer;min-height:44px;display:flex;align-items:center}.pay-msg[data-state=bad]{color:#8f2016}.pay-msg[data-state=ok]{color:#111}.pay-fine{font-size:14px;color:#777;margin-top:10px}

.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;margin:14px 0 6px;border-radius:999px;background:#f0f0ec}.auth-tabs button{font:inherit;font-size:15px;font-weight:700;border:0;border-radius:999px;background:none;padding:11px 8px;cursor:pointer;color:#555;transition:background .2s,color .2s}.auth-tabs button[aria-selected=true]{background:#111;color:#fff}
#googleLogin{display:flex;align-items:center;justify-content:center;gap:10px}
