:root{--bg: #f4f5fb;--card: #fff;--text: #2f2b3d;--muted: #6f6b7d;--border: #e6e6f0;--primary: #696cff;--primary-hover: #5e61e6;--danger-bg: #ffe2e0;--danger: #ff3e1d;--radius: 12px;--font: "Noto Sans KR", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box}html,body,#app{min-height:100%}body{margin:0;font-family:var(--font);color:var(--text);background:radial-gradient(circle at 12% 18%,rgb(105 108 255 / 8%),transparent 40%),radial-gradient(circle at 88% 78%,rgb(105 108 255 / 10%),transparent 42%),var(--bg)}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.auth-shell{display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:1.5rem}.auth-shell--wide{align-items:flex-start;padding-top:2.5rem;padding-bottom:3rem}.auth-card{width:min(100%,420px);padding:2rem 1.75rem 1.75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);box-shadow:0 4px 24px #2f2b3d0f}.auth-card--register{width:min(100%,560px);padding:2rem 2rem 1.75rem}.auth-card--stub{text-align:center}.brand{margin:0 0 1.25rem;font-size:1.125rem;font-weight:700;letter-spacing:-.02em;text-transform:lowercase}.brand--logo{display:inline-flex;align-items:center;text-decoration:none;text-transform:none}.brand--logo img{display:block;width:auto;height:28px}h1{margin:0 0 .35rem;font-size:1.5rem;font-weight:700}.lead{margin:0 0 1.5rem;color:var(--muted);font-size:.925rem;line-height:1.45}.field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem;font-size:.85rem;font-weight:500}.field input{width:100%;padding:.7rem .85rem;border:1px solid var(--border);border-radius:8px;font:inherit;color:inherit;background:#fff}.field input:focus{outline:2px solid rgb(105 108 255 / 35%);border-color:var(--primary)}.field input[aria-invalid=true]{border-color:#d32f2f}.field__error{color:#d32f2f;font-size:.78rem;font-weight:500}.field small:not(.field__error){color:var(--muted);font-weight:400;font-size:.78rem;line-height:1.4}.req{margin-left:.25rem;color:#c62828;font-style:normal;font-size:.75rem;font-weight:600}.opt{margin-left:.25rem;color:var(--muted);font-style:normal;font-size:.75rem;font-weight:500}.reg-head{margin-bottom:1.25rem}.reg-eyebrow{margin:.75rem 0 .35rem;color:var(--primary);font-size:.8rem;font-weight:700;letter-spacing:.02em}.reg-section{margin:0 0 1.35rem;padding-top:.25rem}.reg-section-title{margin:0 0 .45rem;font-size:1rem;font-weight:700}.reg-hint,.reg-note{margin:0 0 1rem;color:var(--muted);font-size:.82rem;line-height:1.5}.reg-benefits{margin:0 0 1.5rem;padding:1rem 1.1rem;border:1px solid var(--border);border-radius:10px;background:#f8f9ff}.reg-benefit-list{list-style:none;margin:0 0 .75rem;padding:0;display:flex;flex-direction:column;gap:.75rem}.reg-benefit-list li{padding:.15rem 0}.reg-benefit-list p{margin:.15rem 0 0;color:var(--muted);font-size:.8rem;line-height:1.4}.agree-box{padding:.85rem 1rem;border:1px solid var(--border);border-radius:10px;background:#fff}.check--all{font-size:.95rem}.agree-divider{margin:.65rem 0;border:0;border-top:1px solid var(--border)}.agree-box .check{margin:.55rem 0;align-items:flex-start;font-weight:400;line-height:1.45}.agree-box .check a{margin-left:.35rem;font-size:.8rem}.reg-foot-note{margin:1rem 0 0;color:var(--muted);font-size:.85rem;line-height:1.5;text-align:center}.field__row{display:flex;gap:.5rem}.field__row input{flex:1}.ghost{flex-shrink:0;padding:0 .75rem;border:1px solid var(--border);border-radius:8px;background:#fafafa;font:inherit;font-size:.8rem;cursor:pointer}.check{display:flex;align-items:center;gap:.45rem;margin:.25rem 0 1.25rem;font-size:.9rem;color:var(--muted)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;width:100%;padding:.8rem 1rem;border:0;border-radius:8px;background:var(--primary);color:#fff;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}.btn-primary:hover{background:var(--primary-hover);text-decoration:none}.btn-primary:disabled{opacity:.65;cursor:not-allowed}.alert{margin:0 0 1rem;padding:.65rem .75rem;border-radius:8px;font-size:.875rem}.alert--error{background:var(--danger-bg);color:var(--danger)}.footer-links{display:flex;justify-content:center;gap:.5rem;margin:1.25rem 0 0;color:var(--muted);font-size:.875rem}.alert--ok{background:#e8fadf;color:#3a8b1f}.mypage-shell{min-height:100dvh}.mypage-top{border-bottom:1px solid var(--border);background:#fff}.mypage-top__inner{display:flex;align-items:center;justify-content:space-between;max-width:720px;margin:0 auto;padding:.9rem 1.25rem}.mypage-top .brand{margin:0}.mypage-top .brand--logo img{height:26px}.avatar-row{display:flex;gap:1rem;align-items:center;margin-bottom:1.25rem}.avatar-preview{width:72px;height:72px;border-radius:50%;background:#e8eaf6 center/cover no-repeat;display:flex;align-items:center;justify-content:center;font-weight:700;color:#3949ab;flex-shrink:0;border:1px solid var(--border)}.avatar-actions small{display:block;margin-top:.35rem;color:var(--muted)}.service-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.service-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border:1px solid var(--border);border-radius:10px;background:#fafbff}.service-item p{margin:.2rem 0 0;color:var(--muted);font-size:.85rem}.mypage-top__actions{display:flex;gap:.75rem;align-items:center}.link-btn{border:0;background:transparent;color:var(--primary);font:inherit;font-size:.875rem;cursor:pointer;text-decoration:none;padding:0}.mypage-main{max-width:720px;margin:0 auto;padding:1.75rem 1.25rem 3rem}.mypage-main h1{margin:0 0 .35rem;font-size:1.5rem}.mypage-main .lead{margin-bottom:1.25rem}.tabs{display:flex;gap:.5rem;margin-bottom:1rem}.tabs button{border:1px solid var(--border);border-radius:999px;background:#fff;padding:.45rem .9rem;font:inherit;font-size:.875rem;cursor:pointer;color:var(--muted)}.tabs button.active{border-color:var(--primary);color:var(--primary);background:#696cff14;font-weight:600}.panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:1.35rem 1.25rem;box-shadow:0 4px 24px #2f2b3d0d}.panel h2{margin:0 0 1rem;font-size:1.1rem}.panel .field small{color:var(--muted);font-weight:400}.panel .field input:disabled{background:#f5f5f9;color:var(--muted)}.meta{margin:0 0 1.25rem;color:var(--muted);font-size:.85rem}.panel .btn-primary{width:auto;min-width:8rem}
