.shell{min-height:100dvh}aside{height:100dvh}.form-error{color:#a64a43;font-size:12px;white-space:pre-wrap}.loading{padding:30px;color:#7a877f}.page-actions{display:flex;gap:9px;flex-wrap:wrap}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 13px}.photo-list{display:grid;gap:10px;margin:12px 0}.photo-item{display:flex;align-items:center;gap:12px;border:1px solid #dce5d4;padding:10px;border-radius:8px}.photo-item img{width:65px;height:85px;object-fit:contain}.photo-item .grow{flex:1}.photo-item button{margin:3px}.app-select{max-width:540px;margin:0 0 22px}.record-list{display:grid;gap:13px}.record-list .card{min-width:0;overflow-wrap:anywhere}.record-list .row{flex-wrap:wrap}.action-box{margin-top:15px;display:flex;gap:8px;flex-wrap:wrap}.auth-status{white-space:pre-wrap;margin:12px 0;font-size:12px}.install-note{font-size:11px;margin-top:18px;color:#78846f}.local-label{background:#fff1dc;color:#8d652c;text-align:center;padding:7px;font-size:11px}.permission-choice{font-size:12px}.chat-messages{display:flex;flex-direction:column;gap:12px;max-height:50dvh;overflow-y:auto;padding:15px 0}.sync-line{font-size:10px;color:#71816b;margin-top:5px}.modal .btn{white-space:normal}.hidden{display:none!important}.form-grid .full{grid-column:1/-1}.record-date{font-size:11px;color:#7a877f}.body-note{margin:12px 0;font-size:12px}.finance-metrics .metric{min-width:0}.uploading{opacity:.65;pointer-events:none}.denominations{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
@media(max-width:760px){.shell aside{height:calc(67px + env(safe-area-inset-bottom))}.form-grid{grid-template-columns:1fr}.heading>.page-actions{margin-top:7px}.heading:has(>.page-actions){flex-direction:column;align-items:flex-start}.topbar .badge{display:none}.main>main{padding-bottom:110px}.authbox .field input{font-size:16px}.composer input{font-size:16px}.record-list h3{font-size:14px}.record-list .btn{font-size:11px}.form-grid .full{grid-column:auto}.photo-item button{padding:8px}.photo-item img{width:55px;height:75px}}

.clock-controls{grid-template-columns:repeat(2,minmax(0,1fr));max-width:320px}.leaflet-container{font-family:inherit;touch-action:none}.leaflet-control-attribution{font-size:9px!important}

/* Keep authentication usable even when a shared theme declaration fails. */
.auth{min-height:100dvh;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);background:#f5f6f1;color:#203c33}
.authart{background:#123e34;color:#fff;padding:clamp(32px,5vw,80px);gap:0;justify-content:center}
.authart:after{pointer-events:none}
.authart .brand{padding-bottom:30px;font-size:22px;gap:12px;position:relative;z-index:1}
.authart .brand>svg,.authbox .brand>svg{width:32px;height:32px;flex:none}
.authart h1{font-size:clamp(30px,3.2vw,48px);max-width:560px;color:#fff;position:relative;z-index:1}
.authart p{color:#d8e5db;font-size:14px;max-width:470px;margin:20px 0 26px;position:relative;z-index:1}
.auth-cover{position:relative;z-index:1;width:100%;max-width:560px}
.auth-cover img{display:block;width:100%;height:auto;border-radius:20px}
.authform{min-width:0;padding:40px clamp(24px,5vw,80px)}
.authbox{max-width:400px;background:#fff;padding:32px;border:1px solid #dce4d8;border-radius:20px;box-shadow:0 12px 45px #123e3409}
.authbox h2{color:#173e34;font-size:28px}
.authbox>p,.authbox .hint,.authbox .install-note{color:#596b60}
.authbox .field input{background:#fff;border:1px solid #aebfb3;color:#203c33;min-height:48px}
.authbox .field input:focus{outline:3px solid #d8edb7;border-color:#123e34}
.authbox .btn.primary{background:#123e34;border:1px solid #123e34;color:#fff;min-height:48px;font-size:15px}
.authbox .btn.primary:hover{background:#205b49}
.authbox .textlink{color:#285b42;font-size:13px;min-height:32px;text-underline-offset:4px}
.authbox .auth-status{padding:12px;background:#edf5e5;border-radius:8px;color:#285b42}

/* Readable type across account, work, finance and staff screens. */
.map-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.map-actions .btn{flex:1;min-width:150px}.address-results{display:grid;gap:7px;margin-bottom:10px}.address-results:empty{display:none}.address-results .workspacechoice{font-size:14px;text-align:left;white-space:normal;overflow-wrap:anywhere}
:root{--muted:#586b60}
body{font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;font-size:16px;font-weight:500;line-height:1.65}
button,input,select,textarea{font-family:inherit}
h1,h2,h3,.brand{font-weight:750}
h1{font-size:32px;letter-spacing:-.7px}h2{font-size:23px}h3{font-size:18px}
small,.small,.hint,.note,.body-note,.install-note,.form-error,.auth-status,.record-date,.sync-line{font-size:14px;line-height:1.6;font-weight:500}
label,.field label,.finance-filters>label{font-size:14px;font-weight:650;color:#345345}
input,select,textarea,.finance-filters input,.finance-filters select{font-size:16px;font-weight:500}
.btn,.btn.small,.modal .btn,.record-list .btn,.invoice-card .btn{font-size:14px;font-weight:650;min-height:42px;white-space:normal}
.textlink,.authbox .textlink{font-size:14px;font-weight:650}
.nav{font-size:15px;font-weight:600}.nav.active{font-weight:750}
.workspace b,.profile b{font-size:15px;font-weight:700}
.workspace small,.profile small,.topbar .crumb{font-size:13px;font-weight:500}
.eyebrow,.finance-metrics .eyebrow{font-size:12px;font-weight:700;letter-spacing:1px}
.heading p,.worktile p,.person .details,.notice p,.store-numbers,.bubble{font-size:15px;font-weight:500}
.worktile h3,.invoice-card h3{font-size:18px;font-weight:700}
.metric .value,.finance-metrics .value{font-weight:750;letter-spacing:-.5px}
.metric .caption,.finance-metrics .caption,.person .email,.thread small{font-size:13px;font-weight:500}
.tag,.clock-tag,.communication-tabs button,.tile-open{font-size:13px;font-weight:650}
table{font-size:15px}th{font-size:13px;font-weight:700}td{font-weight:500}
.authart p{font-size:16px;font-weight:500}.authart h1{font-weight:750}
.authbox>p,.authbox .hint,.authbox .install-note{font-size:14px;font-weight:500}
.authbox .field input{font-size:16px;font-weight:500}
.authbox .btn.primary{font-size:16px;font-weight:700}
.authbox .field{margin-bottom:18px}
.authbox .install-note{margin-top:20px}
@media(max-width:760px){
 body{font-size:16px}h1{font-size:28px}h2{font-size:22px}h3{font-size:17px}
 .authart h1{font-size:24px}.authbox h2{font-size:26px}
 .nav{font-size:12px;font-weight:650;line-height:1.35;padding:7px 1px}
 .mobileworkspace b{font-size:16px;font-weight:700}.mobileworkspace small{font-size:12px}
 .btn,.btn.small,.modal .btn,.record-list .btn,.invoice-card .btn,.heading>.row .btn{font-size:14px;font-weight:650;min-height:44px}
 .worktile h3{font-size:17px}.worktile p,.heading p,.invoice-card .hint{font-size:14px}
 .finance-metrics .eyebrow{font-size:11px;letter-spacing:.5px}.finance-metrics .caption{font-size:12px}
 .finance-metrics .value{font-size:23px}.tag{font-size:12px}
 .permission-choice,.form-error{font-size:14px}.modalhead h2{font-size:22px}
 .authbox{padding:24px 20px}.authbox>p{margin-bottom:22px}
}
@media(max-width:760px){.auth{display:block}.authart{display:flex;padding:24px 22px 20px}.authart .brand{padding:0 0 14px;font-size:19px}.authart h1{font-size:27px;max-width:340px;letter-spacing:-.7px}.authart p{display:none}.auth-cover{position:absolute;right:14px;bottom:14px;width:116px;opacity:.85}.authart h1{padding-right:100px;font-size:24px}.authart .brand>svg{width:25px;height:25px}.authform{padding:22px 18px 32px}.authbox{max-width:440px;padding:24px 20px}.authbox .mobilebrand{display:none}.authbox h2{font-size:25px}.authbox .field input{font-size:16px}.authbox>.install-note{margin-bottom:0}}
