.dir-auth-section{padding-block:clamp(40px,7vw,88px);}
.dir-auth-shell{display:flex;justify-content:center;}
.dir-auth-card{position:relative;width:100%;max-width:460px;background:var(--surface-strong,#fff);color:var(--text,#18332f);border:1px solid var(--line,rgba(24,51,47,0.1));border-radius:var(--radius-lg,24px);box-shadow:var(--shadow,0 16px 45px rgba(24,51,47,0.08));padding:clamp(24px,4vw,38px);display:grid;gap:22px;}
.dir-auth-theme-toggle{position:absolute;top:16px;inset-inline-end:16px;z-index:2;}
.dir-auth-brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:inherit;justify-self:center;}
.dir-auth-brand__badge{width:42px;height:42px;border-radius:14px;background:var(--brand-soft,rgba(22,115,255,0.1));border:1px solid var(--brand-soft,rgba(22,115,255,0.1));position:relative;flex:none;}
.dir-auth-brand__badge::after{content:"";position:absolute;inset:12px;border-radius:6px;background:var(--brand,#1673ff);}
.dir-auth-brand__copy{display:grid;line-height:1.4;}
.dir-auth-brand__copy strong{font-size:16px;}
.dir-auth-brand__copy span{font-size:12px;color:var(--muted,#66807a);}
.dir-auth-heading{text-align:center;display:grid;gap:8px;}
.dir-auth-title{margin:0;font-size:clamp(20px,3vw,24px);}
.dir-auth-copy{margin:0;font-size:13px;line-height:1.8;color:var(--muted,#66807a);}
.dir-auth-form{display:grid;gap:18px;position:relative;}
.dir-auth-panel{display:grid;gap:16px;}
.dir-auth-panel[hidden]{display:none;}
.dir-auth-field{display:grid;gap:7px;}
.dir-auth-field label{font-size:13px;font-weight:600;}
.dir-auth-input{width:100%;padding:12px 14px;border:1px solid var(--line,rgba(24,51,47,0.14));border-radius:var(--radius-md,14px);background:var(--surface,#fff);color:var(--text,#18332f);font-size:14px;font-family:inherit;transition:border-color 160ms ease,box-shadow 160ms ease;}
.dir-auth-input::placeholder{color:var(--muted,#97a8a3);opacity:0.8;}
.dir-auth-input:focus{outline:none;border-color:var(--brand,#1673ff);box-shadow:0 0 0 3px var(--brand-soft,rgba(22,115,255,0.12));}
#dir-auth-identifier,#dir-auth-email,.dir-auth-pw .dir-auth-input{direction:ltr;text-align:start;}
.dir-auth-note{margin:0;font-size:11.5px;line-height:1.7;color:var(--muted,#66807a);}
.dir-auth-pw{position:relative;display:flex;align-items:center;}
.dir-auth-pw .dir-auth-input{padding-inline-end:46px;}
.dir-auth-pw__toggle{position:absolute;inset-inline-end:6px;top:50%;transform:translateY(-50%);background:transparent;border:0;cursor:pointer;padding:6px 9px;font-size:16px;line-height:1;color:var(--muted,#66807a);border-radius:8px;}
.dir-auth-pw__toggle:hover{background:var(--brand-soft,rgba(22,115,255,0.1));}
.dir-auth-result{display:grid;gap:6px;padding:14px 16px;border-radius:var(--radius-md,14px);background:var(--surface,rgba(255,255,255,0.9));border:1px solid var(--line,rgba(24,51,47,0.1));}
.dir-auth-result p{margin:0;font-size:12.5px;line-height:1.7;color:var(--muted,#66807a);}
.dir-auth-result strong{font-size:14px;}
.dir-auth-result--ok{border-color:rgba(19,138,82,0.32);background:rgba(19,138,82,0.07);}
.dir-auth-result--new{border-color:rgba(22,115,255,0.3);background:var(--brand-soft,rgba(22,115,255,0.08));}
.dir-auth-pill{justify-self:start;font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;}
.dir-auth-pill--ok{background:rgba(19,138,82,0.14);color:#138a52;}
.dir-auth-pill--new{background:var(--brand-soft,rgba(22,115,255,0.14));color:var(--brand,#1673ff);}
.dir-auth-check{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--muted,#66807a);cursor:pointer;}
.dir-auth-check input{width:16px;height:16px;accent-color:var(--brand,#1673ff);}
.dir-auth-actions{display:flex;gap:10px;}
.dir-auth-actions--stacked{flex-direction:column;}
.dir-auth-actions .dir-auth-btn{flex:1;}
.dir-auth-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 18px;border-radius:var(--radius-md,14px);border:1px solid transparent;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;text-decoration:none;transition:background 160ms ease,opacity 160ms ease,box-shadow 160ms ease;}
.dir-auth-btn--full{width:100%;}
.dir-auth-btn--primary{background:var(--brand,#1673ff);color:#fff;}
.dir-auth-btn--primary:hover{background:var(--brand-strong,#0f56bd);}
.dir-auth-btn--ghost{background:transparent;color:var(--text,#18332f);border-color:var(--line,rgba(24,51,47,0.16));}
.dir-auth-btn--ghost:hover{background:var(--brand-soft,rgba(22,115,255,0.08));}
.dir-auth-btn:disabled{opacity:0.6;cursor:progress;}
.dir-auth-spinner{display:none;width:15px;height:15px;border:2px solid rgba(255,255,255,0.45);border-top-color:#fff;border-radius:50%;animation:dir-auth-spin 700ms linear infinite;}
.dir-auth-btn--ghost .dir-auth-spinner{border-color:var(--line,rgba(24,51,47,0.2));border-top-color:var(--text,#18332f);}
.dir-auth-btn.is-loading .dir-auth-spinner{display:inline-block;}
@keyframes dir-auth-spin{to{transform:rotate(360deg);}
}
.dir-auth-feedback{margin:0;border-radius:var(--radius-md,12px);font-size:13px;line-height:1.6;max-height:0;overflow:hidden;padding:0 14px;transition:max-height 180ms ease,padding 180ms ease;}
.dir-auth-feedback:not(:empty){max-height:200px;padding:11px 14px;}
.dir-auth-feedback.is-error{background:rgba(195,69,69,0.1);color:#c34545;border:1px solid rgba(195,69,69,0.32);}
.dir-auth-feedback.is-success{background:rgba(19,138,82,0.1);color:#138a52;border:1px solid rgba(19,138,82,0.32);}
.dir-auth-feedback.is-info{background:var(--brand-soft,rgba(22,115,255,0.1));color:var(--brand,#1673ff);border:1px solid rgba(22,115,255,0.28);}
.dir-auth-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none;}
.dir-auth-modal{position:fixed;inset:0;z-index:120;display:none;}
.dir-auth-modal.is-open{display:block;}
.dir-auth-modal__backdrop{position:absolute;inset:0;background:rgba(10,24,22,0.55);backdrop-filter:blur(2px);}
.dir-auth-modal__dialog{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:clamp(16px,4vw,40px);overflow-y:auto;}
.dir-auth-modal .dir-auth-card{max-height:calc(100vh - 32px);overflow-y:auto;overflow-x: hidden;margin:auto;}
.dir-auth-modal__close{position:absolute;top:12px;inset-inline-end:12px;z-index:3;}