/* UPIO guest auth panel styles. Externalized from PHP runtime. */
.fi-auth-overlay{position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:10010;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;pointer-events:none;}
.fi-auth-overlay.open{opacity:1;visibility:visible;pointer-events:auto;}
.fi-auth-panel{position:fixed;top:0;right:-440px;width:400px;max-width:100%;height:100vh;background:#fff;z-index:10011;transition:right .35s cubic-bezier(.4,0,.2,1);overflow-y:auto;overflow-x:hidden;box-shadow:-6px 0 40px rgba(36,59,83,.13);}
.fi-auth-panel.open{right:0;}
@media(max-width:640px){.fi-auth-panel{top:auto;bottom:-100%;right:0;width:100%;height:auto;max-height:92vh;border-radius:12px 20px 0 0;transition:bottom .35s cubic-bezier(.4,0,.2,1);box-shadow:0 -6px 40px rgba(36,59,83,.13);}.fi-auth-panel.open{bottom:0;right:0;}}
.fi-auth-panel-inner{padding:28px 28px 48px;}
.fi-auth-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;}
.fi-auth-brand{display:flex;align-items:center;gap:8px;font-weight:900;color:var(--fi-ink);}
.fi-auth-brand-mark{width:30px;height:30px;border-radius:9px;background:var(--fi-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:900;flex-shrink:0;}
.fi-auth-close{width:32px;height:32px;border-radius:8px;border:1px solid var(--fi-line);background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--fi-muted);font-size:1rem;transition:background .15s;line-height:1;}
.fi-auth-close:hover{background:#EEF8FF;}
.fi-auth-ctx{background:#F6FFF9;border:1px solid #D9EBDD;border-radius:12px;padding:13px 15px;margin-bottom:20px;display:flex;align-items:flex-start;gap:10px;}
.fi-auth-ctx-icon{font-size:1.05rem;flex-shrink:0;line-height:1.4;}
.fi-auth-ctx-msg{margin:0;font-size:.82rem;line-height:1.65;color:var(--fi-ink);font-weight:600;word-break:keep-all;}
.fi-auth-tabs{display:flex;gap:4px;background:#F5F6FA;padding:4px;border-radius:10px;margin-bottom:20px;}
.fi-auth-tab{flex:1;padding:8px 0;border:none;background:transparent;border-radius:7px;font-size:.82rem;font-weight:700;color:var(--fi-muted);cursor:pointer;transition:background .15s,color .15s;font-family:inherit;}
.fi-auth-tab.active{background:#fff;color:var(--fi-ink);box-shadow:0 1px 4px rgba(36,59,83,.1);}
.fi-auth-form{display:flex;flex-direction:column;gap:13px;}
.fi-auth-field{display:flex;flex-direction:column;gap:5px;}
.fi-auth-field label{font-size:.76rem;font-weight:700;color:var(--fi-ink);}
.fi-auth-field label small{font-weight:400;color:var(--fi-muted);}
.fi-auth-field input{padding:11px 14px;border:1.5px solid #D9EBDD;border-radius:9px;font-size:.88rem;font-family:inherit;transition:border-color .15s;outline:none;width:100%;box-sizing:border-box;}
.fi-auth-field input:focus{border-color:var(--fi-primary);}
.fi-auth-field input::placeholder{color:#B8B4AD;}.fi-auth-hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}.fi-auth-safe{margin:2px 0 0;color:#8A8174;font-size:.7rem;line-height:1.55;text-align:center;word-break:keep-all;}
.fi-auth-check{display:flex;align-items:center;gap:8px;font-size:.78rem;color:var(--fi-muted);cursor:pointer;}
.fi-auth-check input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--fi-primary);}
.fi-auth-check.required span{color:var(--fi-ink);font-weight:700;line-height:1.5;}
.fi-auth-check a{color:var(--fi-primary);text-decoration:underline;text-underline-offset:2px;}
.fi-auth-submit{padding:13px;background:var(--fi-primary);color:#fff;border:none;border-radius:9px;font-size:.9rem;font-weight:900;cursor:pointer;font-family:inherit;transition:background .15s,transform .12s;margin-top:2px;}
.fi-auth-submit:hover{background:#EEF8FF;transform:translateY(-1px);}
.fi-auth-submit:disabled{opacity:.6;cursor:not-allowed;transform:none;}
.fi-auth-terms{margin:4px 0 0;font-size:.7rem;color:#9CA3AF;text-align:center;}
.fi-auth-terms a{color:inherit;text-decoration:underline;}
.fi-auth-link{background:none;border:none;padding:8px 0;font-size:.8rem;color:var(--fi-muted);cursor:pointer;font-family:inherit;text-align:left;text-decoration:underline;display:block;}
.fi-auth-link:hover{color:var(--fi-ink);}
.fi-auth-forgot-desc{font-size:.82rem;color:var(--fi-muted);line-height:1.7;margin:0 0 16px;word-break:keep-all;}
.fi-auth-msg{padding:10px 14px;border-radius:8px;font-size:.8rem;font-weight:600;line-height:1.5;word-break:keep-all;}
.fi-auth-msg.error{background:#FEF2F2;color:#DC2626;}
.fi-auth-msg.success{background:#F0FDF4;color:#16A34A;}
.fi-auth-divider{display:flex;align-items:center;gap:10px;margin:20px 0 12px;font-size:.72rem;color:#9CA3AF;font-weight:700;text-transform:uppercase;letter-spacing:.05em;}
.fi-auth-divider::before,.fi-auth-divider::after{content:"";flex:1;height:1px;background:#D9EBDD;}
.fi-auth-benefits ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;}
.fi-auth-benefits li{font-size:.8rem;color:var(--fi-ink);line-height:1.4;}
/* 비밀번호 보기 토글 */
.fi-auth-pw-wrap{position:relative;display:flex;align-items:center;}
.fi-auth-pw-wrap input{flex:1;padding-right:40px!important;}
.fi-auth-pw-toggle{position:absolute;right:10px;background:none;border:none;cursor:pointer;color:#9CA3AF;padding:4px;font-size:.9rem;line-height:1;flex-shrink:0;transition:color .15s;}
.fi-auth-pw-toggle:hover{color:var(--fi-ink);}
/* 비밀번호 강도 미터 */
.fi-pw-strength-wrap{margin-top:5px;}
.fi-pw-strength-bar-bg{height:4px;border-radius:999px;background:#D9EBDD;overflow:hidden;}
.fi-pw-strength-bar{height:100%;border-radius:999px;width:0;transition:width .3s,background-color .3s;}
.fi-pw-strength-label{font-size:.68rem;margin-top:3px;font-weight:700;min-height:1em;}
/* 온보딩 패널 */
.fi-auth-onb{animation:gateSlideUp .3s ease;}
.fi-auth-onb-title{font-size:1.1rem;font-weight:900;text-align:center;margin:0 0 5px;letter-spacing:-.02em;}
.fi-auth-onb-sub{font-size:.82rem;color:var(--fi-muted,#697386);text-align:center;margin:0 0 20px;line-height:1.5;word-break:keep-all;}
.fi-auth-onb-label{font-size:.76rem;font-weight:700;color:var(--fi-ink);margin-bottom:8px;}
.fi-auth-onb-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:20px;}
.fi-auth-onb-group{margin-bottom:16px;}
.fi-auth-onb-group:last-of-type{margin-bottom:20px;}
.fi-auth-onb-chip{padding:11px 8px;border-radius:10px;border:1.5px solid #D9EBDD;background:#fff;font-size:.82rem;font-weight:700;cursor:pointer;text-align:center;transition:all .15s;font-family:inherit;color:var(--fi-ink);line-height:1.3;}
.fi-auth-onb-chip.selected{border-color:var(--fi-primary,#0f3460);background:#F0F5FF;color:var(--fi-primary,#0f3460);}
.fi-auth-onb-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.fi-auth-onb-select{width:100%;min-height:42px;border:1.5px solid #D9EBDD;border-radius:10px;background:#fff;padding:9px 10px;color:var(--fi-ink);font:inherit;font-size:.82rem;font-weight:700;}
.fi-auth-onb-preview{border:1px solid #CFEADC;background:#F7FFF9;border-radius:12px;padding:12px 14px;margin:0 0 18px;}
.fi-auth-onb-preview b{display:block;font-size:.78rem;color:#0F6B5C;margin-bottom:7px;font-weight:950;}
.fi-auth-onb-preview ul{margin:0;padding:0;list-style:none;display:grid;gap:5px;}
.fi-auth-onb-preview li{font-size:.76rem;color:var(--fi-ink);font-weight:750;line-height:1.35;}
.fi-auth-onb-done{display:block;width:100%;padding:13px;background:var(--fi-primary,#0f3460);color:#fff;border:none;border-radius:9px;font-size:.9rem;font-weight:900;cursor:pointer;font-family:inherit;transition:background .15s;}
.fi-auth-onb-done:hover{background:#EEF8FF;}
.fi-auth-onb-skip{background:none;border:none;font-size:.76rem;color:var(--fi-muted,#697386);cursor:pointer;font-family:inherit;text-decoration:underline;display:block;margin:10px auto 0;width:100%;text-align:center;}
@media(max-width:420px){.fi-auth-onb-grid,.fi-auth-onb-row{grid-template-columns:1fr;}}
