/* Approved owner login screen (b967dd5 glass login). Interior lives in studio.css. */
.auth-ambient{display:none}
body.auth-view{min-height:100vh;min-height:100dvh;overflow:hidden;background:#0A0A0A;color:#fff;display:grid;place-items:center;padding:clamp(16px,4vw,48px);font-variant-numeric:lining-nums tabular-nums}
body.auth-view .auth-ambient{display:block;position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.auth-dot-grid{position:absolute;inset:0;background-image:radial-gradient(#1A1A1A 1px,transparent 1px);background-size:28px 28px;-webkit-mask-image:radial-gradient(ellipse 60% 60% at 50% 45%,#000 20%,transparent 100%);mask-image:radial-gradient(ellipse 60% 60% at 50% 45%,#000 20%,transparent 100%)}
.auth-glow{position:absolute;display:block;border-radius:50%;filter:blur(40px);will-change:transform}
.auth-glow-green{width:52vmax;height:52vmax;left:-10vmax;top:-18vmax;background:radial-gradient(circle,rgba(30,182,136,.26),transparent 62%);animation:auth-drift 14s ease-in-out infinite}
.auth-glow-white{width:44vmax;height:44vmax;right:-14vmax;bottom:-16vmax;background:radial-gradient(circle,rgba(255,255,255,.10),transparent 62%);animation:auth-drift2 18s ease-in-out infinite}
body.auth-view>.skip,body.auth-view>.rail,body.auth-view .topbar,body.auth-view .workspace>footer,body.auth-view>.dock,body.auth-view>#toast{display:none!important}
body.auth-view .workspace{position:relative;z-index:1;margin:0;width:100%;max-width:none;min-height:0;display:block}
body.auth-view main{width:100%;max-width:none;padding:0;display:grid;place-items:center;outline:none}

.login-card{width:100%;max-width:380px;padding:clamp(24px,4vw,32px) clamp(20px,4vw,28px);border-radius:24px;background:linear-gradient(160deg,rgba(255,255,255,.075),rgba(255,255,255,.025) 45%,rgba(255,255,255,.04));border:1px solid rgba(255,255,255,.10);box-shadow:inset 0 1px 0 rgba(255,255,255,.14),inset 0 -1px 0 rgba(0,0,0,.4),0 40px 90px -30px rgba(0,0,0,.9);-webkit-backdrop-filter:blur(28px) saturate(140%);backdrop-filter:blur(28px) saturate(140%);min-width:0}
.login-stack{display:flex;flex-direction:column;gap:22px}
.login-heading{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.login-logo{width:40px;height:40px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(145deg,#1EB688,#15805F);box-shadow:0 8px 24px -8px rgba(30,182,136,.6)}
.login-logo img{width:26px;height:26px;display:block}
.login-copy{display:grid;gap:8px}.login-copy h1{font-size:clamp(21px,2.6vw,24px);font-weight:600;line-height:1.3;letter-spacing:-.01em;color:#fff;text-wrap:balance}.login-copy p{font-size:13.5px;font-weight:300;line-height:1.7;color:#8A8A8A;text-wrap:pretty}
.auth-sequence{display:flex;flex-direction:column;gap:22px}.phone-area{order:1;margin:0}.login-divider{order:2}.passkey-area{order:3}.phone-step{display:grid;gap:22px}.phone-control{display:grid;gap:6px}
.phone-input{width:100%;height:52px;min-height:52px;padding:0 16px;margin:0;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);color:#fff;font-size:18px;font-weight:500;letter-spacing:.06em;text-align:center;caret-color:#1EB688;outline:none;transition:border-color .2s,box-shadow .2s,background .2s}
.phone-input::placeholder{color:rgba(255,255,255,.22);opacity:1}.phone-input:focus{border-color:rgba(255,255,255,.22);box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 0 0 4px rgba(255,255,255,.05);outline:none}.phone-input.is-valid{border-color:#1EB688}.phone-input.is-valid:focus{box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 0 0 4px rgba(30,182,136,.14)}.phone-input.is-error{border-color:rgba(248,113,113,.5)}.phone-input.is-error:focus{box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 0 0 4px rgba(248,113,113,.10)}
.field-error,.passkey-error{margin:0;display:flex;align-items:center;gap:6px;color:#F87171;font-size:12.5px;line-height:1.5;animation:auth-fade-rise .3s cubic-bezier(.2,.7,.2,1)}.field-error svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;flex:0 0 auto}
.confirm-button,.passkey-button{width:100%;height:50px;min-height:50px;margin:0;border-radius:14px;transition:transform .2s,background .25s,border-color .25s,filter .2s,opacity .2s;outline:none}
.confirm-button{border:0;background:linear-gradient(180deg,#27C996,#1EB688);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 10px 30px -10px rgba(30,182,136,.7);color:#062419;font-size:15px;font-weight:600;opacity:.45;display:flex;align-items:center;justify-content:center;gap:9px}.confirm-button.is-ready,.confirm-button.is-loading{opacity:1}.confirm-button:hover{border-color:transparent;filter:brightness(1.06);transform:translateY(-1px)}.confirm-button:active,.passkey-button:active{transform:scale(.99)}.confirm-button:focus-visible,.passkey-button:focus-visible,.text-button:focus-visible{outline:0;box-shadow:0 0 0 4px rgba(30,182,136,.16)}
.auth-spinner{display:inline-block;width:18px;height:18px;border:2px solid rgba(6,34,15,.25);border-top-color:#062419;border-radius:50%;animation:auth-spin .7s linear infinite}.auth-spinner.small{width:14px;height:14px;border-color:#2A2A2A;border-top-color:#1EB688}
.login-divider{display:flex;align-items:center;gap:14px;color:#525252;font-size:12px}.login-divider span{height:1px;flex:1;background:rgba(255,255,255,.10)}.login-divider small{font-size:12px;line-height:1.4;color:#525252}
.passkey-area{display:grid;gap:9px}.passkey-button{display:flex;align-items:center;justify-content:center;gap:10px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.14);color:#E5E5E5;font-size:15px;font-weight:500}.passkey-button img{width:22px;height:22px;filter:brightness(0) invert(.9)}.passkey-button bdi{font-weight:600}.passkey-button:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.25);transform:translateY(-1px)}.passkey-button.is-busy{pointer-events:none}.passkey-busy-mark{position:relative;width:22px;height:22px;display:grid;place-items:center}.passkey-busy-mark::before{content:"";position:absolute;inset:0;border:1.5px solid #1EB688;border-radius:50%;animation:auth-ring 1.2s ease-out infinite}.passkey-busy-mark::after{content:"";width:8px;height:8px;border-radius:50%;background:#1EB688}.passkey-caption{display:none;margin:0;color:#666;font-size:12.5px;line-height:1.6;text-align:center}.passkey-error{justify-content:center;text-align:center}
.login-card.is-passkey-first .phone-area{order:3}.login-card.is-passkey-first .login-divider{order:2}.login-card.is-passkey-first .passkey-area{order:1}.login-card.is-passkey-first .passkey-button{border-color:#1EB688;background:rgba(30,182,136,.10)}.login-card.is-passkey-first .passkey-caption{display:block}

.otp-step{display:grid;gap:22px;animation:auth-fade-rise .6s cubic-bezier(.2,.7,.2,1)}.phone-summary{height:52px;padding:0 16px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);display:flex;align-items:center;justify-content:space-between;gap:12px}.summary-number{display:flex;align-items:center;gap:9px;min-width:0}.summary-number bdi{color:#F5F5F5;font-size:17px;font-weight:500;letter-spacing:.04em;white-space:nowrap}.summary-check{width:18px;height:18px;border-radius:50%;background:#1EB688;display:grid;place-items:center;flex:0 0 auto}.summary-check svg{width:12px;height:12px;fill:none;stroke:#062419;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}.text-button{min-height:44px;padding:0 4px;border:0;background:transparent;color:#1EB688;font-size:13px;font-weight:500;border-radius:8px}.text-button:hover{color:#27C996;border-color:transparent}
.otp-block{display:grid;gap:12px}.otp-block>label{margin:0;color:#A3A3A3;font-size:13px;line-height:1.5}.otp-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.otp-digit{width:100%;aspect-ratio:1/1;min-height:48px;max-height:58px;padding:0;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);color:#fff;font-size:20px;font-weight:500;text-align:center;caret-color:#1EB688;outline:none;transition:transform .2s,border-color .2s,background .2s;animation:auth-rise .5s cubic-bezier(.2,.7,.2,1) both}.otp-digit:nth-child(2){animation-delay:60ms}.otp-digit:nth-child(3){animation-delay:120ms}.otp-digit:nth-child(4){animation-delay:180ms}.otp-digit:nth-child(5){animation-delay:240ms}.otp-digit:nth-child(6){animation-delay:300ms}.otp-digit.is-filled{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.22)}.otp-digit:focus{border-color:#1EB688;background:rgba(30,182,136,.10);transform:translateY(-2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 0 0 4px rgba(30,182,136,.10);outline:none}.otp-grid.is-shaking{animation:auth-shake .45s cubic-bezier(.36,.07,.19,.97)}
.otp-status{min-height:22px;display:flex;align-items:center;gap:6px;color:#666;font-size:13px;font-weight:300;line-height:1.5}.otp-status .latin-digits{color:#8A8A8A}.otp-status.is-error{color:#F87171}.otp-status .status-alert{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8}.otp-status button{min-height:44px;padding:0 3px;margin:-11px 0;border:0;background:transparent;color:#1EB688;font-size:13px;font-weight:500}

.auth-success{padding:16px 0 8px;display:flex;flex-direction:column;align-items:center;gap:22px;text-align:center;animation:auth-fade-rise .6s cubic-bezier(.2,.7,.2,1)}.auth-success h2{font-size:24px;font-weight:600;line-height:1.4;color:#fff}.success-mark{position:relative;width:88px;height:88px;display:grid;place-items:center}.success-ring{position:absolute;width:72px;height:72px;border:1px solid rgba(30,182,136,.5);border-radius:50%;animation:auth-ring 1.6s ease-out infinite}.success-circle{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#1EB688,#15805F);box-shadow:0 16px 40px -12px rgba(30,182,136,.7);animation:auth-pop .5s cubic-bezier(.2,.7,.2,1)}.success-circle svg{width:34px;height:34px;fill:none;stroke:#062419;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.success-circle path{stroke-dasharray:24;stroke-dashoffset:24;animation:auth-draw .5s .3s ease-out forwards}.local-enrollment{margin-top:22px;padding-top:16px;border-top:1px solid rgba(255,255,255,.10);font-size:13px;color:#8A8A8A}.local-enrollment summary{color:#A3A3A3}
.auth-rise{animation:auth-rise .7s cubic-bezier(.2,.7,.2,1) both}.auth-rise-1{animation-delay:0ms}.auth-rise-2{animation-delay:120ms}.auth-rise-4{animation-delay:320ms}.auth-rise-5{animation-delay:400ms}.latin-digits{font-family:OwnerLatin,"Plus Jakarta Sans",sans-serif;font-variant-numeric:lining-nums tabular-nums}
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.login-card{background:rgba(15,15,15,.92)}}
@media(max-height:700px){.login-stack,.auth-sequence{gap:16px}body.auth-view{overflow:auto}.login-card{margin-block:auto}}
@media(max-width:430px){body.auth-view{padding:16px}.login-card{max-width:380px}.otp-grid{gap:7px}.otp-digit{min-height:46px;border-radius:12px}}
@media(prefers-reduced-motion:reduce){.auth-glow,.auth-rise,.otp-step,.otp-digit,.otp-grid.is-shaking,.auth-success,.success-ring,.success-circle,.success-circle path,.auth-spinner,.passkey-busy-mark::before{animation:none!important}.phone-input,.confirm-button,.passkey-button,.otp-digit{transition:none!important;transform:none!important}}
@keyframes auth-rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes auth-fade-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes auth-drift{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(6%,-8%) scale(1.12)}}@keyframes auth-drift2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-8%,6%) scale(.9)}}@keyframes auth-shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-7px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(3px)}}@keyframes auth-spin{to{transform:rotate(360deg)}}@keyframes auth-pop{0%{transform:scale(.6);opacity:0}70%{transform:scale(1.06);opacity:1}100%{transform:scale(1)}}@keyframes auth-ring{0%{transform:scale(.8);opacity:.7}100%{transform:scale(1.6);opacity:0}}@keyframes auth-draw{to{stroke-dashoffset:0}}
