:root{--pink-50: #fff0f5;--pink-100: #ffd6e8;--pink-200: #ffb3d4;--pink-300: #ff85b8;--pink-400: #ff5c9e;--pink-500: #ff3384;--pink-600: #e6006d;--color-bg: #fff5f9;--color-surface: #ffffff;--color-primary: #ff5c9e;--color-primary-hover: #ff3384;--color-text: #2d1b2e;--color-text-secondary: #6b4a6f;--color-text-muted: #a07ba5;--color-border: #ffd6e8;--color-error: #e63946;--color-error-bg: #fff0f0;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 28px;--radius-full: 9999px;--shadow-sm: 0 2px 8px rgba(255, 92, 158, .1);--shadow-md: 0 4px 20px rgba(255, 92, 158, .15);--shadow-card: 0 4px 24px rgba(0, 0, 0, .06), 0 1px 4px rgba(255, 92, 158, .08);font-family:Noto Sans KR,system-ui,-apple-system,sans-serif;line-height:1.6;color:var(--color-text)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{min-height:100vh;background-color:var(--color-bg);background-image:radial-gradient(ellipse at 0% 0%,rgba(255,179,212,.22) 0%,transparent 55%),radial-gradient(ellipse at 100% 100%,rgba(255,133,184,.15) 0%,transparent 55%);background-attachment:fixed}a{color:var(--color-primary);text-decoration:none;font-weight:500;transition:color .2s}a:hover{color:var(--color-primary-hover)}.layout{max-width:480px;margin:0 auto;padding:2rem 1.25rem;min-height:100vh;display:flex;flex-direction:column;gap:1rem}.layout.center{justify-content:center}.card{background:var(--color-surface);border-radius:var(--radius-xl);padding:2rem;box-shadow:var(--shadow-card);border:1px solid rgba(255,214,232,.7)}.card-sm{background:var(--color-surface);border-radius:var(--radius-lg);padding:1.1rem 1.25rem;box-shadow:var(--shadow-card);border:1px solid rgba(255,214,232,.7)}button{font:inherit;font-weight:600;cursor:pointer;border:none;border-radius:var(--radius-full);padding:.75rem 1.75rem;background:linear-gradient(135deg,var(--pink-300) 0%,var(--pink-500) 100%);color:#fff;letter-spacing:.02em;transition:transform .15s ease,box-shadow .15s ease;box-shadow:0 4px 14px #ff5c9e59;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;white-space:nowrap}button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #ff5c9e73}button:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #ff5c9e4d}button.secondary{background:#fff;color:var(--color-text-secondary);border:1.5px solid var(--color-border);box-shadow:var(--shadow-sm)}button.secondary:hover:not(:disabled){background:var(--pink-50);border-color:var(--pink-300);color:var(--color-primary);box-shadow:var(--shadow-md)}button.full{width:100%}button:disabled{opacity:.5;cursor:not-allowed;transform:none}input,select,textarea{font:inherit;width:100%;padding:.75rem 1rem;border:1.5px solid var(--color-border);border-radius:var(--radius-md);background:#fff;color:var(--color-text);outline:none;transition:border-color .2s ease,box-shadow .2s ease;-moz-appearance:none;appearance:none;-webkit-appearance:none}input:focus,select:focus,textarea:focus{border-color:var(--pink-400);box-shadow:0 0 0 3px #ff5c9e1f}input::placeholder{color:var(--color-text-muted)}label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.4rem;color:var(--color-text-secondary)}.field{margin-bottom:1.1rem}.muted{color:var(--color-text-muted);font-size:.9rem;line-height:1.7}.error{color:var(--color-error);font-size:.875rem;background:var(--color-error-bg);border:1px solid rgba(230,57,70,.2);border-radius:var(--radius-sm);padding:.6rem .875rem;margin-bottom:1rem}.badge{display:inline-flex;align-items:center;padding:.2rem .65rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.badge-pass{background:#e8f5e9;color:#2e7d32}.badge-pending{background:var(--pink-50);color:var(--color-primary)}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:2.5rem;height:2.5rem;border:3px solid var(--pink-100);border-top-color:var(--pink-400);border-radius:50%;animation:spin .75s linear infinite;margin:0 auto}@keyframes float{0%,to{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-10px) rotate(4deg)}}.float{animation:float 3.2s ease-in-out infinite;display:inline-block}@media(max-width:480px){.layout{padding:1.25rem .9rem;gap:.75rem}.card{padding:1.4rem 1.25rem;border-radius:var(--radius-lg)}.card-sm{padding:.9rem 1rem}button{min-height:44px;padding:.7rem 1.4rem}input,select,textarea{font-size:16px;min-height:44px}h1{font-size:1.4rem}}@media(max-width:360px){.layout{padding:1rem .75rem}}@media(min-width:640px){.layout{padding:3rem 1.25rem}}
