.loading-state{display:flex;align-items:center;justify-content:center;gap:12px;min-height:140px;padding:24px;color:#526d69;font-size:15px;text-align:center}.is-loading:not(#auth-submit)::before{content:'';display:inline-block;width:15px;height:15px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:loading-spin .8s linear infinite;vertical-align:middle;margin-right:8px}.app-loading-detail{color:#637974}.org-dialog{max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain}dialog:not([open]){display:none}.org-row>div,.page-heading>div,.topbar>div{min-width:0}.org-actions{max-width:100%}.org-row,.client-row{overflow-wrap:anywhere}.workspace-content section,.card,fieldset{min-width:0}.account-controls{min-width:0;max-width:100%;flex-wrap:wrap}.account-controls #account-email{overflow-wrap:anywhere;max-width:320px}.sidebar .tab{min-height:44px}.secondary,.primary,.text-button,.auth-support-button{min-height:44px}svg{max-width:100%;height:auto}.client-permission-fieldset{min-width:0}.loading-state .loading-spinner{width:22px;height:22px}.estimate[aria-busy=true]{border-color:#cbdcd7}#client-calc-status{min-height:24px;display:flex;align-items:center;gap:10px}#client-calc-status.is-loading:before{color:#096c60;margin:0}.sheet-preview svg,.packing-preview svg{display:block;width:100%}.formula-row textarea{resize:vertical}.auth-card,.org-dialog{overflow-wrap:anywhere}*{scrollbar-width:thin;scrollbar-color:#a6c4bc transparent}*:focus-visible{scroll-margin:90px 0 40px}button,a,input,select,textarea{touch-action:manipulation}
@media(max-width:760px){.account-controls{width:100%;justify-content:space-between;margin:0;gap:8px}.account-controls #account-email{max-width:calc(100% - 100px);font-size:14px}.topbar .brand{flex:1}.org-toolbar{flex-wrap:wrap}.page-heading .org-toolbar button{flex:1}.clients-toolbar form{flex-wrap:wrap}.clients-toolbar input{flex:1;min-width:150px}.client-actions{gap:6px}.client-actions button{flex:1}.client-permissions{grid-template-columns:1fr 1fr}.org-dialog{padding:20px;max-height:calc(100dvh - 24px)}.client-dialog .field-grid{grid-template-columns:1fr}.admin-summary span{overflow-wrap:anywhere}.subtabs{flex-wrap:wrap}.save-bar{flex-wrap:wrap}.save-bar>div{flex:1;min-width:150px}.new-formula{flex-wrap:wrap}.rate-row{min-width:0}.template-settings .field-grid{grid-template-columns:1fr}}
@media(max-width:360px){.unit-toggle button{padding-inline:9px}.admin-summary{grid-template-columns:1fr}.client-permissions{grid-template-columns:1fr}.review-buttons{flex-direction:column}.review-buttons button{width:100%}.three{gap:6px}.card{padding-inline:12px}.auth-card{padding-inline:20px}}
@media(prefers-reduced-motion:reduce){.is-loading::before{animation:none!important}}
body:has(#app-loading:not([hidden])) main,body:has(#app-loading:not([hidden])) #auth-screen,body:has(#app-loading:not([hidden])) .site-footer,body:has(#app-loading:not([hidden])) #account-controls{display:none!important}
.rate-row:not(.one),.rate-header:not(.one){grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,.8fr)}.rate-row.one,.rate-header.one{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.rate-row>span,.rate-header>span{overflow-wrap:anywhere}.network-status{margin:0;padding:10px 20px;background:#fff3db;color:#775500;font-size:14px;text-align:center}.org-toolbar button{max-width:100%}.status-pill{overflow-wrap:anywhere}.page-heading h1{overflow-wrap:anywhere}.subtabs button{min-height:44px}.client-row .client-actions{width:100%}.loading-state{min-height:160px}

.organization-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:16px}.organization-choice{text-align:left;display:grid;gap:12px;margin:0;padding:24px;color:#24454c;min-height:130px;cursor:pointer}.organization-choice:hover{border-color:#096c60;background:#f0f8f5}.organization-choice strong{font-size:20px;overflow-wrap:anywhere}.organization-choice span{font-size:14px;color:#637974}.workspace-label{display:block;font-size:12px;letter-spacing:.08em;color:#637974;margin-bottom:5px}.client-active-organization{align-items:center}.client-active-organization strong{display:block;font-size:19px;overflow-wrap:anywhere}.client-active-organization>div{min-width:0;flex:1}.client-active-organization button{flex-shrink:0}@media(max-width:540px){.client-active-organization{align-items:flex-start}.client-active-organization button{width:100%}.organization-choice{padding:20px}}
.bottom-navigation{display:none}@media(max-width:760px){.shell{padding-bottom:calc(106px + env(safe-area-inset-bottom,0px))}.sidebar-toggle{display:none}.bottom-navigation{position:fixed;inset:auto 0 0;z-index:45;display:flex;align-items:stretch;justify-content:space-around;background:#fff;border-top:1px solid #dce5e7;box-shadow:0 -4px 20px #18372e0a;padding:5px 8px calc(5px + env(safe-area-inset-bottom,0px));gap:2px}.bottom-nav-item{border:0;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;flex:1;min-width:0;min-height:62px;padding:7px 2px;color:#637974;font:600 14px system-ui;line-height:1.3;border-radius:10px}.bottom-nav-item svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.bottom-nav-item[aria-current=page]{color:#096c60;background:#e5f2ef}.bottom-nav-item:focus-visible{outline:2px solid #096c60;outline-offset:-2px}.bottom-navigation.keyboard-open{display:none}.mobile-estimate{display:none!important}.order-chat{scroll-margin-top:16px}.sidebar.tabs{padding-bottom:calc(30px + env(safe-area-inset-bottom,0px))}}
/* Keep mobile scroll boundaries inside the app instead of pulling the page. */
html,body{overscroll-behavior-y:none}
.client-avatar,.client-card-code{display:none}.client-identity>div{min-width:0}.client-contact p{display:inline}.client-contact p+p:before{content:' · '}.client-contact p>span{display:none}
button,.organization-choice,.order-row{transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .12s ease}button:active:not(:disabled){transform:scale(.98)}input,select,textarea{transition:border-color .16s ease,box-shadow .16s ease}dialog[open]{animation:surface-enter .16s ease-out}.workspace-content>section:not([hidden]){animation:surface-enter .18s ease-out}.chat-enter{animation:message-enter .16s ease-out}.chat-bubble.unread-start:before{content:'Unread updates';display:block;color:#096c60;font-size:12px;font-weight:700;margin-bottom:10px;border-bottom:1px solid #badbd2;padding-bottom:8px}
@keyframes surface-enter{from{opacity:.6;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes message-enter{from{opacity:.5;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:760px){
 #clients-view .clients-card{padding:12px;background:transparent;border:0;box-shadow:none}#clients-list{display:grid;gap:12px}.client-row{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding:16px;background:#fff;border:1px solid #dce7e3;border-radius:16px;box-shadow:0 3px 12px #17382e06}.client-identity{display:flex;align-items:center;gap:10px}.client-avatar{display:grid;place-items:center;flex-shrink:0;width:38px;height:38px;border-radius:12px;background:#e5f2ef;color:#096c60;font-size:18px;font-weight:700}.client-card-code{display:block;margin-top:3px;font-size:11px;color:#637974}.client-row h2{font-size:16px;line-height:1.35;margin:0}.client-main>p{margin-top:10px;font-size:13px}.client-contact{display:grid;gap:4px;margin-top:7px}.client-contact p{display:block;font-size:13px;line-height:1.5;margin:0}.client-contact p+p:before{content:none}.client-contact p>span{display:inline-block;min-width:44px;font-size:11px;color:#637974}.client-location{grid-column:1;grid-row:auto;font-size:12px;gap:4px}.client-location:has(span:empty):not(:has(small)){display:none}.client-row .client-actions{grid-column:1;grid-row:auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;gap:6px;border-top:1px solid #e8eeeb;padding-top:12px;margin-top:2px}.client-actions .secondary,.client-actions .client-delete{min-height:44px;padding:8px 3px;font-size:12px;border-radius:9px}.client-actions .client-delete{background:#fff5f4}.clients-toolbar input{min-width:0!important;width:100%}.clients-toolbar form{gap:8px}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.bottom-nav-item{position:relative}.bottom-nav-badge{position:absolute;top:2px;right:calc(50% - 24px);min-width:17px;height:17px;padding:1px 4px;border-radius:9px;background:#bd6412;color:#fff;font-size:10px;line-height:15px;font-weight:700}

/* Shared modal language, including legacy forms and new confirmations. */
body dialog{box-sizing:border-box;border:1px solid #d5e3de;border-radius:18px;padding:24px;background:#fff;color:#24454c;font:inherit;box-shadow:0 20px 70px #17382e30;width:min(560px,calc(100vw - 32px));max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain;overflow-wrap:anywhere}
body dialog::backdrop{background:#13292380;backdrop-filter:blur(3px)}
body dialog h2{font-size:22px;line-height:1.3;margin:0 0 16px}body dialog p{line-height:1.6}body dialog form{min-width:0}body dialog input,body dialog select,body dialog textarea{box-sizing:border-box;max-width:100%;min-width:0;font-size:16px}
body dialog .review-buttons,body dialog .order-actions{display:flex;flex-wrap:wrap;align-items:stretch;gap:10px;margin-top:22px}body dialog .review-buttons button,body dialog .order-actions button{min-height:44px;white-space:normal;line-height:1.4;flex:1 1 140px;margin:0;padding:11px 16px}
body dialog .primary.danger-action,body dialog .primary.decline-button{background:#ad3434;border-color:#ad3434;color:white}.app-confirm-dialog{width:min(480px,calc(100vw - 32px))}#app-confirm-message{white-space:pre-line}
/* Brief feedback, never an artificial wait or a moving layout. */
.nav-group summary,.settings-section,.subtabs button,.bottom-nav-item{transition:background-color .14s ease,color .14s ease,border-color .14s ease}
details[open]>:not(summary){animation:surface-enter .14s ease-out}.status-pill{transition:background-color .16s ease,color .16s ease}.card:focus-within{border-color:#abc9c0}.loading-state{animation:loading-reveal .15s ease-out}
@keyframes loading-reveal{from{opacity:0}to{opacity:1}}
@media(hover:hover){button:not(:disabled):hover{filter:brightness(.98)}.organization-choice:hover,.order-row:hover{box-shadow:0 4px 14px #17382e0b}}
@media(max-width:600px){body dialog{padding:20px;width:calc(100vw - 24px);max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);border-radius:16px}body dialog h2{font-size:20px}body dialog .field-grid.two,body dialog .field-grid.three{grid-template-columns:minmax(0,1fr)}body dialog .review-buttons,body dialog .order-actions{display:grid;grid-template-columns:minmax(0,1fr)}body dialog .review-buttons button,body dialog .order-actions button{width:100%;min-width:0}.page-heading{flex-wrap:wrap}.page-heading>div{flex:1 1 220px}.page-heading>button{max-width:100%;white-space:normal}.field-grid>*{min-width:0}}
@media(prefers-reduced-motion:reduce){details[open]>:not(summary),.loading-state{animation:none!important}.nav-group summary,.settings-section,.status-pill,.subtabs button,.bottom-nav-item{transition:none!important}}

@keyframes loading-spin{to{transform:rotate(360deg)}}
.signout-progress{display:flex;align-items:center;gap:12px;padding:16px;margin:16px 0;border:1px solid #cbdcd7;border-radius:12px;background:#edf6f3;color:#096c60;font-size:16px;line-height:1.5}.signout-progress[hidden]{display:none}.signout-spinner{flex:none;width:24px;height:24px;border:3px solid #cbdcd7;border-top-color:#096c60;border-radius:50%;animation:loading-spin .8s linear infinite}#signout-dialog[aria-busy=true]{cursor:progress}#signout-confirm{min-width:150px}@media(max-width:540px){#signout-dialog .review-buttons{display:grid;grid-template-columns:minmax(0,1fr)}#signout-dialog .review-buttons button{width:100%}}@media(prefers-reduced-motion:reduce){.signout-spinner{animation:none}}
