[hidden]{display:none!important}
.auth-control{display:flex;align-items:center;gap:8px;min-width:0}
.auth-status{max-width:155px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#718078;font-size:12px;font-weight:650}
.auth-modal-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:18px;background:rgba(18,34,26,.56);backdrop-filter:blur(4px)}
.auth-modal{position:relative;width:min(100%,440px);max-height:min(92vh,760px);overflow:auto;padding:30px;border:1px solid #e4eae2;border-radius:20px;background:#fff;box-shadow:0 24px 80px rgba(14,35,24,.25)}
.auth-modal-close{position:absolute;top:14px;right:15px;width:34px;height:34px;border:0;border-radius:10px;background:#f1f4ef;color:#52645a;font-size:23px;line-height:1}
.auth-modal-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#245b3b;color:#fff;font-weight:800;font-size:18px;box-shadow:0 6px 15px rgba(26,73,56,.16)}
.auth-eyebrow{margin:18px 0 7px;color:#6d8977;font-size:12px;font-weight:800;letter-spacing:1.6px}
.auth-modal h2{margin:0;color:#21362a;font-size:25px;letter-spacing:-.6px}
.auth-modal-lede{margin:9px 0 22px;color:#718078;font-size:13px;line-height:1.55}
.auth-field{display:grid;gap:7px;margin:0 0 14px;color:#415449;font-size:12px;font-weight:700}
.auth-field input{width:100%;min-height:44px;padding:0 12px;border:1px solid #dce4db;border-radius:10px;background:#fbfcfa;color:#25372c;font-size:14px}
.auth-field input:focus{border-color:#73a383;outline:3px solid rgba(65,130,92,.14)}
.auth-signup-hint{margin:2px 0 13px;color:#65766a;font-size:12px;line-height:1.5}
.auth-submit{width:100%;min-height:44px;justify-content:center;margin-top:2px}
.auth-mode-toggle{display:block;margin:13px auto 0;padding:4px 8px;border:0;background:transparent;color:#326548;font-size:12px;font-weight:700}
.auth-message{min-height:18px;margin:12px 0 0;color:#416a50;font-size:12px;line-height:1.45}
.auth-message.error{color:#a54337}
.auth-privacy-note{margin:14px 0 0;padding-top:13px;border-top:1px solid #edf0ec;color:#7a877e;font-size:12px;line-height:1.55}
body.auth-modal-open{overflow:hidden}
@media(max-width:1050px){.auth-status{display:none}.auth-control{gap:5px}}
@media(max-width:760px){.auth-control .button{padding:8px 9px;font-size:12px;white-space:nowrap}.auth-modal{padding:25px 21px;border-radius:16px}.auth-modal h2{font-size:22px}}

/* Access starts closed; verified Supabase state reveals workspace tools. */
body:not(.estimatra-signed-in) .nav-link:not([data-view="home"]):not([data-view="forum"]):not([data-view="partners"]):not([data-view="templates"]):not([data-view="toolghos"]),
body:not(.estimatra-signed-in) .sidebar .nav-group-label:not(.public-nav-label),
body:not(.estimatra-signed-in) .workspace-switcher,
body:not(.estimatra-signed-in) .source-card,
body:not(.estimatra-signed-in) .project-picker,
body:not(.estimatra-signed-in) .storage-indicator,
body:not(.estimatra-signed-in) .avatar-small,
body:not(.estimatra-signed-in) #view-draft,
body:not(.estimatra-signed-in) #view-catalog,
body:not(.estimatra-signed-in) #view-calculator,
body:not(.estimatra-signed-in) #view-admin,
body:not(.estimatra-is-admin) .admin-nav-link,
body:not(.estimatra-is-admin) .admin-nav-label,
body:not(.estimatra-is-admin) #view-admin{display:none!important}
.auth-google-button{display:flex;align-items:center;justify-content:center;gap:11px;width:100%;min-height:46px;padding:10px 15px;border:1px solid #dce4db;border-radius:10px;background:#fff;color:#2a3a30;font-size:13px;font-weight:700;transition:border-color .15s,background .15s}
.auth-google-button:hover:not(:disabled){background:#f8faf6;border-color:#8cad94}
.auth-google-button:disabled{opacity:.64;cursor:not-allowed}
.auth-provider-note{margin:9px 0 0;color:#6e7f72;font-size:12px;line-height:1.5;text-align:center}
.auth-provider-note.pending{color:#8a6c3d}
.auth-divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:#91a095;font-size:12px;text-transform:uppercase;letter-spacing:.7px}
.auth-divider:before,.auth-divider:after{content:"";height:1px;flex:1;background:#e9eee7}
@media(max-width:1050px){.mobile-bottom-nav[data-guest="true"]{grid-template-columns:repeat(5,minmax(0,1fr))}.mobile-bottom-nav[data-guest="false"]{grid-template-columns:repeat(5,minmax(0,1fr))}}
