body.saas-locked > :not(.turf-saas-auth):not(script):not(style){visibility:hidden!important}
.turf-saas-auth{position:fixed;inset:0;z-index:4000;background:linear-gradient(145deg,#0e1922,#1d3d55);display:grid;place-items:center;padding:24px;font-family:var(--ui)}
.turf-saas-auth[hidden],.turf-saas-modal[hidden]{display:none!important}
.turf-saas-card{width:min(460px,100%);background:#fff;border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.3);padding:28px;color:#14222e}
.turf-saas-card h1{font:700 28px/1.1 var(--disp);margin:0 0 8px}.turf-saas-card>p{margin:0 0 22px;color:#5d7281}
.turf-saas-form{display:grid;gap:13px}.turf-saas-form label{display:grid;gap:6px;font-weight:650;font-size:13px}.turf-saas-form input,.turf-saas-form select{font:inherit;padding:11px 12px;border:1px solid #c2ceda;border-radius:9px;background:#fff;color:#14222e}
.turf-saas-field-help{display:block;margin:0;color:#526979;font:400 12px/1.45 var(--ui)}
.turf-saas-field-error{display:block;color:#9f2a20;font:600 12px/1.45 var(--ui)}
.turf-saas-field-error[hidden],.turf-saas-error[hidden]{display:none}
.turf-saas-form input[aria-invalid="true"]{border-color:#b73a30;box-shadow:0 0 0 2px rgba(183,58,48,.15)}
.turf-saas-form button,.turf-saas-button{font:650 14px var(--ui);padding:11px 15px;border:1px solid #164a85;border-radius:9px;background:#1d5fa8;color:#fff;cursor:pointer}.turf-saas-form button:disabled{opacity:.55;cursor:wait}
.turf-saas-link{border:0;background:none;color:#1d5fa8;font:600 13px var(--ui);padding:8px 0;cursor:pointer}.turf-saas-error{color:#9f2a20;background:#fbeae8;border:1px solid #eec3bd;border-radius:8px;padding:9px 11px;font-size:13px}
.turf-saas-form .turf-saas-link{justify-self:center;border:0;background:transparent;color:#1d5fa8;padding:8px 4px;text-decoration:underline;text-underline-offset:2px}
.turf-saas-legal{grid-column:1/-1;display:grid;gap:10px;border:1px solid #cbd9e4;border-radius:10px;background:#f5f9fc;padding:12px}
.turf-saas-legal-document{border:1px solid #d7e1e8;border-radius:8px;background:#fff;padding:8px 10px}
.turf-saas-legal-document summary{cursor:pointer;font-weight:700;color:#164a85}
.turf-saas-legal-document h2{margin:0;font:700 13px/1.4 var(--ui);color:#164a85}
.turf-saas-legal-open{display:inline-block;margin-top:4px;font-size:12px;font-weight:600;color:#164a85;text-decoration:underline}
.turf-saas-legal-consent a{color:#164a85;text-decoration:underline}
.turf-saas-legal-content{white-space:pre-wrap;overflow-wrap:anywhere;max-height:180px;overflow:auto;font:13px/1.5 var(--ui);color:#243744;margin:10px 0 0}
.turf-saas-legal-content:focus-visible{outline:3px solid #e9a847;outline-offset:2px}
.turf-saas-form .turf-saas-legal-consent,.turf-saas-legal-consent{display:flex;align-items:flex-start;gap:8px;line-height:1.4;font-weight:600;font-size:13px}
.turf-saas-form .turf-saas-legal-consent input,.turf-saas-legal-consent input{flex:none;width:18px;height:18px;margin:1px 0 0;padding:0}
.turf-saas-public-links{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:18px;font:600 13px var(--ui)}
.turf-saas-public-links a{color:#1d5fa8;text-decoration:underline;text-underline-offset:2px}
.turf-saas-public-links a:focus-visible{outline:3px solid #e9a847;outline-offset:3px}
.turf-saas-account-menu .turf-saas-public-links{margin:4px 0;padding:7px 9px;border-top:1px solid rgba(255,255,255,.2)}
.turf-saas-account-menu .turf-saas-public-links a{color:#dbeeff}
.turf-saas-account{position:fixed;z-index:3500;top:7px;right:14px;height:34px;display:flex;align-items:center;gap:8px;padding:0 6px;border-radius:9px;background:#172633;box-shadow:0 2px 12px rgba(0,0,0,.16)}.turf-saas-account select{max-width:220px;border:1px solid rgba(255,255,255,.2);border-radius:7px;background:#22343f;color:#fff;padding:7px 28px 7px 9px}.turf-saas-account button{border:1px solid rgba(255,255,255,.2);border-radius:7px;background:transparent;color:#fff;padding:7px 9px;cursor:pointer}.turf-saas-account small{color:#bed1de;max-width:160px;overflow:hidden;text-overflow:ellipsis}
.turf-saas-modal{position:fixed;inset:0;z-index:4100;background:rgba(8,18,25,.66);display:grid;place-items:center;padding:24px;font-family:var(--ui)}
.turf-saas-panel{width:min(1040px,100%);max-height:min(820px,92vh);overflow:auto;background:#f6f8fa;border-radius:16px;box-shadow:0 24px 80px rgba(0,0,0,.34);color:#14222e}
.turf-saas-reauth,.turf-saas-action-confirm{z-index:4200}
.turf-saas-reauth .turf-saas-panel,.turf-saas-action-confirm .turf-saas-panel{width:min(440px,100%);padding:24px;background:#fff}
.turf-saas-reauth h2,.turf-saas-action-confirm h2{margin:0 0 8px;font:700 22px var(--disp)}
.turf-saas-reauth .turf-saas-form{margin-top:16px}
.turf-saas-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
.turf-saas-panel-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:12px;background:#fff;border-bottom:1px solid #dce3ea;padding:18px 20px}.turf-saas-panel-head h2{margin:0;font:700 20px var(--disp)}.turf-saas-panel-head button{margin-left:auto}
.turf-saas-panel-body{padding:20px;display:grid;gap:18px}.turf-saas-section{background:#fff;border:1px solid #dce3ea;border-radius:12px;padding:16px}.turf-saas-section h3{margin:0 0 12px;font:700 15px var(--disp)}
.turf-saas-summary{color:#526979;line-height:1.5}.turf-billing-form{grid-template-columns:minmax(120px,180px) minmax(160px,220px) 1fr;align-items:end}.turf-billing-form .turf-saas-price{grid-column:1/-1;margin:0;padding:12px;background:#e8f1fa;border:1px solid #bdd6ee;border-radius:9px;color:#164a85;font-weight:750}.turf-saas-section>.turf-saas-button+.turf-saas-button{margin-left:8px}
.turf-saas-members{display:grid;gap:8px}.turf-saas-member{display:grid;grid-template-columns:minmax(180px,1fr) 130px 130px auto;gap:8px;align-items:center;border-top:1px solid #edf0f3;padding:10px 0}.turf-saas-member:first-child{border-top:0}.turf-saas-member strong,.turf-saas-member small{display:block}.turf-saas-member small{color:#69808f}.turf-saas-member select{padding:8px;border:1px solid #c2ceda;border-radius:7px;background:#fff}.turf-saas-member button{padding:8px 10px;border:1px solid #bdd6ee;border-radius:7px;background:#e8f1fa;color:#164a85;cursor:pointer}
.turf-saas-field-profile{display:flex;align-items:end;gap:10px;margin:0 0 12px 0;color:#536b7d;font-size:13px}.turf-saas-field-profile label{display:grid;gap:5px;flex:1;min-width:160px}.turf-saas-field-profile input{font:inherit;padding:9px 10px;border:1px solid #c2ceda;border-radius:7px}.turf-saas-field-profile button{font:650 13px var(--ui);padding:10px 12px;border:1px solid #164a85;border-radius:7px;background:#1d5fa8;color:#fff;cursor:pointer}
.turf-saas-permissions{display:grid;gap:8px}.turf-saas-permission{display:grid;grid-template-columns:minmax(190px,1fr) 120px 140px auto;gap:8px;align-items:center}.turf-saas-audit{display:grid;gap:6px}.turf-saas-audit div{font-size:13px;border-top:1px solid #edf0f3;padding:8px 0}.turf-saas-audit time{color:#69808f;margin-right:8px}
@media(max-width:760px){.turf-saas-account small{display:none}.turf-saas-account select{max-width:150px}.turf-saas-account{max-width:calc(100vw - 16px);overflow-x:auto}.turf-saas-member,.turf-saas-permission,.turf-billing-form{grid-template-columns:1fr 1fr}.turf-saas-member>span,.turf-saas-permission>span,.turf-billing-form .turf-saas-price{grid-column:1/-1}}
@media(max-width:760px){.turf-saas-field-profile{flex-wrap:wrap}.turf-saas-field-profile button{width:100%}}

/* A long organization name plus every owner action cannot share a narrow app
   bar. At constrained widths the same controls live in an explicit menu, so
   none are clipped, horizontally scrolled, or laid over the settings target. */
.turf-saas-account-toggle{display:none}
.turf-saas-account-menu{display:contents}
@media(max-width:1599px){
  .turf-saas-account{top:7px;right:calc(max(8px,env(safe-area-inset-right)) + 50px);height:auto;max-width:none;overflow:visible;padding:0;background:transparent;box-shadow:none}
  .turf-saas-account-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:38px;border:1px solid rgba(255,255,255,.24);border-radius:7px;background:#172633;color:#fff;padding:7px 10px;font:600 13px var(--ui);cursor:pointer;white-space:nowrap}
  .turf-saas-account-menu{display:none;position:fixed;z-index:3501;top:calc(var(--barh,52px) + 8px);right:max(8px,env(safe-area-inset-right));left:max(8px,env(safe-area-inset-left));max-height:calc(100dvh - var(--barh,52px) - 80px);overflow:auto;padding:10px;background:#172633;border:1px solid rgba(255,255,255,.18);border-radius:10px;box-shadow:0 16px 40px rgba(0,0,0,.28)}
  .turf-saas-account.is-open .turf-saas-account-menu{display:flex;flex-direction:column;align-items:stretch;gap:8px}
  .turf-saas-account-menu select,.turf-saas-account-menu button{width:100%;max-width:none;min-height:44px;text-align:left}
  .turf-saas-account-menu small{display:block;max-width:none;white-space:normal;overflow-wrap:anywhere}
}

/* Authentication and account panels must remain reachable when a short phone
   keyboard or a small landscape viewport leaves less room than their content. */
.turf-saas-auth,.turf-saas-modal{overflow-y:auto;padding:calc(24px + env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left))}
.turf-saas-auth{align-items:start}
.turf-saas-modal{align-items:start}
.turf-saas-panel{max-height:calc(100dvh - 48px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
@media(min-height:700px){.turf-saas-auth,.turf-saas-modal{align-items:center}}
@media(pointer:coarse){
  .turf-saas-form button,.turf-saas-button,.turf-saas-link,.turf-saas-account-toggle{min-height:44px}
}

/* The compact account trigger is a primary phone control even when a browser
   reports a fine or unknown pointer. */
@media(max-width:750px){.turf-saas-account-toggle{min-height:44px}}

/* Account button must be visible on the white workspace header (it was white text on white). */
.turf-saas-account .turf-saas-account-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 14px;border:1.5px solid #1c6b39;border-radius:8px;background:#1c6b39;color:#fff;font:600 14px var(--ui);cursor:pointer}

/* Destructive and secondary buttons look different from the main action. */
.turf-saas-form button.turf-saas-secondary,.turf-saas-button.turf-saas-secondary{background:#fff;color:#15231b;border-color:#c2ceda}
.turf-saas-form button.turf-saas-danger,.turf-saas-button.turf-saas-danger{background:#a3271d;border-color:#7d1d15;color:#fff}
.turf-saas-form button.turf-saas-danger-quiet,.turf-saas-button.turf-saas-danger-quiet{background:#fff;color:#a3271d;border-color:#a3271d}

/* Account health banner (trial ending, payment failed, read-only) */
.turf-saas-health{position:fixed;top:0;left:0;right:0;z-index:3000;display:flex;gap:12px;align-items:center;flex-wrap:wrap;min-height:48px;padding:8px 150px 8px 16px;font:600 14px/1.35 var(--ui);background:#fbefd2;color:#3a2a00;border-bottom:1px solid #e0c277}
.turf-saas-health--bad{background:#fbe3e0;color:#5a120c;border-bottom-color:#e0a39d}
.turf-saas-health .turf-saas-button{padding:7px 12px}
.turf-has-banner #turfWorkspaceScreen.screen.on{top:48px}
@media(max-width:760px){.turf-saas-health{padding-right:96px}.turf-has-banner #turfWorkspaceScreen.screen.on{top:84px}}
/* Owners see only this until the email is confirmed. */
.turf-saas-verify{background:#f1f5f2;z-index:4200}
.turf-saas-verify .turf-saas-panel{width:min(460px,100%);padding:28px;display:grid;gap:14px;background:#fff;border-radius:16px;box-shadow:0 10px 40px rgba(0,0,0,.12)}
.turf-saas-verify h2{margin:0;font:700 26px/1.15 var(--ui)}
.turf-saas-verify .turf-saas-dialog-actions{display:flex;gap:10px;flex-wrap:wrap}
/* "Use TurfIQ in your Claude app" (L3): copyable setup lines that wrap instead of scrolling the page. */
.turf-claude h4{margin:14px 0 6px;font-size:.95rem}.turf-claude-code{display:flex;gap:8px;align-items:flex-start;margin:4px 0 8px}
.turf-claude-code pre{flex:1;min-width:0;margin:0;padding:10px 12px;border-radius:8px;background:#f1f4f2;color:#15231b;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;word-break:break-all}
@media (prefers-color-scheme:dark){.turf-claude-code pre{background:#1e2a23;color:#e6efe8}}
