:root{--v32-navy:#071522;--v32-gold:#e6b83f;--v32-border:#e5e7eb;--v32-muted:#64748b}
.v32-auth-overlay{position:fixed;inset:0;z-index:100000;background:#f5f7fa;display:grid;grid-template-columns:minmax(320px,42%) 1fr;direction:rtl;font-family:Vazirmatn,Vazir,Tahoma,sans-serif;color:#10202e;overflow:auto}
.v32-auth-visual{background:linear-gradient(145deg,#06111d,#123047);color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh}.v32-auth-brand{font-size:22px;font-weight:900}.v32-auth-visual h1{font-size:42px;line-height:1.55;margin:24px 0 12px}.v32-auth-visual h1 em{color:var(--v32-gold);font-style:normal}.v32-auth-visual p{color:#cbd5e1;line-height:2;max-width:600px}.v32-auth-visual ul{list-style:none;padding:0;display:grid;gap:12px}.v32-auth-visual li:before{content:'✓';color:var(--v32-gold);margin-left:8px}
.v32-auth-main{display:flex;align-items:center;justify-content:center;padding:32px}.v32-auth-card{width:min(100%,540px);background:#fff;border:1px solid var(--v32-border);border-radius:26px;padding:30px;box-shadow:0 20px 60px rgba(15,23,42,.09)}.v32-auth-card h2{margin:0 0 8px;font-size:26px}.v32-auth-card>p{color:var(--v32-muted);margin:0 0 22px;line-height:1.8}.v32-tabs,.v32-role-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:18px}.v32-tabs button,.v32-role-grid button{font:inherit;border:1px solid var(--v32-border);background:#f8fafc;border-radius:13px;padding:11px;cursor:pointer}.v32-tabs button.active,.v32-role-grid button.active{background:#fff9e8;border-color:var(--v32-gold);box-shadow:0 0 0 3px rgba(230,184,63,.12)}.v32-role-grid button{text-align:right;min-height:85px;display:flex;flex-direction:column;gap:4px}.v32-role-grid small{color:var(--v32-muted)}
.v32-field{display:block;margin-bottom:13px}.v32-field span{display:block;font-weight:700;font-size:13px;margin-bottom:7px}.v32-field input,.v32-field select,.v32-field textarea{width:100%;box-sizing:border-box;border:1px solid var(--v32-border);border-radius:12px;padding:12px 13px;font:inherit;outline:none;background:#fff}.v32-field input:focus,.v32-field select:focus,.v32-field textarea:focus{border-color:var(--v32-gold);box-shadow:0 0 0 3px rgba(230,184,63,.12)}.v32-error{background:#fff1f2;color:#b42318;border:1px solid #fecdd3;border-radius:12px;padding:10px 12px;margin:10px 0;font-size:13px}.v32-submit{width:100%;border:0;background:var(--v32-gold);color:#17200c;border-radius:13px;padding:13px;font:inherit;font-weight:900;cursor:pointer}.v32-submit:disabled{opacity:.55}.v32-link-row{display:flex;justify-content:space-between;gap:10px;margin:12px 0}.v32-link-row button{border:0;background:transparent;color:#8a6500;font:inherit;cursor:pointer}.v32-code{font-size:29px!important;text-align:center!important;direction:ltr;letter-spacing:9px}
.v32-admin-launch{position:fixed;z-index:9000;left:22px;bottom:22px;border:0;border-radius:15px;padding:12px 16px;background:#e6b83f;color:#13202a;font:700 14px Vazirmatn,Vazir,Tahoma;box-shadow:0 10px 30px rgba(0,0,0,.22);cursor:pointer}.v32-admin-sms{position:fixed;inset:0;z-index:100001;background:#f4f6f8;overflow:auto;direction:rtl;font-family:Vazirmatn,Vazir,Tahoma,sans-serif;color:#152535}.v32-admin-head{position:sticky;top:0;z-index:5;background:#071522;color:#fff;padding:18px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px}.v32-admin-head h1{font-size:22px;margin:0}.v32-admin-head p{margin:5px 0 0;color:#b9c6d1}.v32-admin-head button{border:1px solid #ffffff35;background:#ffffff10;color:#fff;border-radius:10px;padding:9px 13px;font:inherit;cursor:pointer}.v32-admin-container{max-width:1450px;margin:auto;padding:24px}.v32-admin-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(270px,.8fr);gap:18px}.v32-card{background:#fff;border:1px solid var(--v32-border);border-radius:18px;padding:20px;margin-bottom:18px}.v32-card h2{font-size:18px;margin:0 0 5px}.v32-card>p{color:var(--v32-muted);line-height:1.8}.v32-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.v32-switch{display:flex;align-items:center;gap:8px;margin:14px 0;font-weight:800}.v32-events{display:grid;gap:10px}.v32-event{border:1px solid var(--v32-border);border-radius:14px;padding:14px}.v32-event summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:900}.v32-event-body{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.v32-event-body .wide{grid-column:1/-1}.v32-actions{display:flex;gap:10px;flex-wrap:wrap}.v32-btn{border:0;border-radius:11px;padding:10px 14px;font:inherit;font-weight:800;cursor:pointer;background:#e6b83f}.v32-btn.secondary{background:#eef2f6}.v32-stat{display:grid;grid-template-columns:1fr 1fr;gap:10px}.v32-stat div{background:#f8fafc;border-radius:13px;padding:13px}.v32-stat strong{display:block;font-size:25px;margin-top:5px}.v32-log{font-size:12px;border-bottom:1px solid #eef2f7;padding:10px 0}.v32-log b{display:flex;justify-content:space-between;gap:10px}.v32-log small{display:block;color:var(--v32-muted);margin-top:4px}.v32-toast{position:fixed;left:25px;top:80px;z-index:100005;background:#0f172a;color:#fff;border-radius:12px;padding:11px 15px;box-shadow:0 10px 30px #0003}.v32-owner-province{display:block!important}
@media(max-width:900px){.v32-auth-overlay{grid-template-columns:1fr}.v32-auth-visual{display:none}.v32-auth-main{min-height:100vh;padding:18px}.v32-admin-grid{grid-template-columns:1fr}.v32-form-grid,.v32-event-body{grid-template-columns:1fr}.v32-event-body .wide{grid-column:auto}.v32-admin-head{align-items:flex-start}.v32-admin-container{padding:14px}}
html,body{max-width:100%;overflow-x:hidden}.v32-auth-overlay{width:100%;max-width:100%;min-width:0;overflow-x:hidden}.v32-auth-overlay>*{min-width:0;max-width:100%}.v32-auth-main,.v32-auth-visual,.v32-auth-card{box-sizing:border-box;min-width:0;max-width:100%}.v32-security-note{margin:0 0 16px;padding:11px 12px;border:1px solid #dbeafe;border-radius:12px;background:#eff6ff;color:#1d4f91;font-size:12px;line-height:1.8}.v32-remember{display:flex;align-items:center;gap:8px;margin:4px 0 12px;font-size:12px;color:var(--v32-muted)}.v32-remember input{width:16px;height:16px;accent-color:var(--v32-gold)}
@media(max-width:1100px){.v32-auth-overlay{grid-template-columns:1fr}.v32-auth-visual{display:none}}

.v32-passwordless-hidden{display:none!important}

/* Viewport overflow guard: fixed overlays must never exceed the layout viewport. */
html,body,#user-app,#owner-app,#admin-app{inline-size:100%;max-inline-size:100%;overflow-x:clip!important}
.v32-auth-overlay{inset:0!important;inline-size:auto!important;width:auto!important;max-inline-size:100%!important;grid-template-columns:minmax(0,42fr) minmax(0,58fr);overflow-x:clip!important}
.v32-auth-overlay,.v32-auth-overlay *,.v32-auth-overlay *::before,.v32-auth-overlay *::after{box-sizing:border-box}
.v32-auth-main,.v32-auth-visual,.v32-auth-card{inline-size:auto;overflow-wrap:anywhere}
.v32-auth-main{overflow-x:clip;padding-inline:clamp(16px,3vw,32px)}
.v32-auth-visual{padding-inline:clamp(24px,4vw,64px)}
@media(max-width:1100px){.v32-auth-overlay{grid-template-columns:minmax(0,1fr)}.v32-auth-main{inline-size:100%}}
