:root{--primary: #FF6B35;--primary-hover: #E85A25;--primary-light: #FFF5F0;--primary-border: #FFD4C2;--success: #10B981;--success-light: #D1FAE5;--warning: #F59E0B;--warning-light: #FEF3C7;--danger: #EF4444;--danger-light: #FEE2E2;--purple: #8B5CF6;--purple-light: #EDE9FE;--gray-900: #111827;--gray-700: #374151;--gray-600: #4B5563;--gray-500: #6B7280;--gray-400: #9CA3AF;--gray-200: #E5E7EB;--gray-100: #F3F4F6;--gray-50: #F9FAFB;--bg: #FAFAF9;--card: #FFFFFF;--white: #FFFFFF;--shadow-xs: 0 1px 2px rgba(0,0,0,.05);--shadow-sm: 0 1px 4px rgba(0,0,0,.08);--shadow: 0 4px 12px rgba(0,0,0,.08);--shadow-md: 0 6px 20px rgba(0,0,0,.1);--shadow-lg: 0 12px 40px rgba(0,0,0,.12);--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--container: 1140px;--header-h: 64px}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:-apple-system,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,sans-serif;background:var(--bg);color:var(--gray-900);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{text-decoration:none;color:inherit}button{cursor:pointer;font-family:inherit;border:none}input,select,textarea{font-family:inherit}img{max-width:100%}.app-wrapper{display:flex;flex-direction:column;min-height:100vh}.main-content{flex:1;padding-top:var(--header-h)}.container{max-width:var(--container);margin:0 auto;padding:0 20px}.page{padding:40px 0 80px}h1{font-size:2rem;font-weight:800;line-height:1.25}h2{font-size:1.5rem;font-weight:700;line-height:1.3}h3{font-size:1.15rem;font-weight:700}h4{font-size:1rem;font-weight:600}.text-sm{font-size:.85rem}.text-xs{font-size:.75rem}.text-muted{color:var(--gray-500)}.text-primary{color:var(--primary)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.btn{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border-radius:var(--radius);font-size:.9rem;font-weight:600;transition:all .15s ease;border:2px solid transparent;white-space:nowrap}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #ff6b3559}.btn-outline{background:transparent;color:var(--primary);border-color:var(--primary)}.btn-outline:hover{background:var(--primary-light)}.btn-ghost{background:transparent;color:var(--gray-700);border-color:var(--gray-200)}.btn-ghost:hover{background:var(--gray-100);border-color:var(--gray-300)}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:#0ea572}.btn-sm{padding:6px 14px;font-size:.8rem;border-radius:var(--radius-sm)}.btn-lg{padding:14px 28px;font-size:1rem;border-radius:var(--radius-lg)}.btn-block{width:100%;justify-content:center}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--radius-full);font-size:.72rem;font-weight:700;white-space:nowrap}.badge-category{background:var(--gray-100);color:var(--gray-700)}.badge-hot{background:#fee2e2;color:#dc2626}.badge-new{background:var(--success-light);color:#059669}.badge-verified{background:var(--success-light);color:var(--success)}.badge-premium{background:var(--warning-light);color:#b45309}.badge-challenge{background:var(--purple-light);color:var(--purple)}.badge-primary{background:var(--primary-light);color:var(--primary)}.card{background:var(--card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow .2s ease,transform .2s ease}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-body{padding:20px}.form-group{margin-bottom:16px}.form-label{display:block;font-size:.85rem;font-weight:600;color:var(--gray-700);margin-bottom:6px}.form-input{width:100%;padding:11px 14px;border:1.5px solid var(--gray-200);border-radius:var(--radius);font-size:.9rem;color:var(--gray-900);background:var(--white);transition:border-color .15s,box-shadow .15s;outline:none}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #ff6b3526}.form-input::placeholder{color:var(--gray-400)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.section-title{font-size:1.25rem;font-weight:800;color:var(--gray-900)}.section-title span{color:var(--primary)}.section-link{font-size:.85rem;color:var(--gray-500);display:flex;align-items:center;gap:4px;transition:color .15s}.section-link:hover{color:var(--primary)}.divider{height:1px;background:var(--gray-200);margin:24px 0}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-6{gap:24px}.flex-wrap{flex-wrap:wrap}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.mb-2{margin-bottom:8px}.mb-4{margin-bottom:16px}.w-full{width:100%}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--gray-100)}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:3px}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes slideIn{0%{transform:translate(-10px);opacity:0}to{transform:translate(0);opacity:1}}.fade-in{animation:fadeIn .3s ease forwards}.alert{padding:14px 18px;border-radius:var(--radius);font-size:.88rem;font-weight:500;display:flex;align-items:center;gap:10px}.alert-info{background:#eff6ff;color:#1d4ed8;border:1px solid #BFDBFE}.alert-warning{background:var(--warning-light);color:#92400e;border:1px solid #FDE68A}.alert-success{background:var(--success-light);color:#065f46;border:1px solid #A7F3D0}.tabs{display:flex;border-bottom:2px solid var(--gray-200);gap:0;overflow-x:auto}.tab-btn{padding:12px 20px;font-size:.9rem;font-weight:600;color:var(--gray-500);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s}.tab-btn:hover{color:var(--gray-900)}.tab-btn.active{color:var(--primary);border-bottom-color:var(--primary)}.progress-bar{height:8px;background:var(--gray-200);border-radius:var(--radius-full);overflow:hidden}.progress-fill{height:100%;border-radius:var(--radius-full);background:var(--primary);transition:width .5s ease}.empty-state{text-align:center;padding:60px 20px;color:var(--gray-500)}.empty-state .icon{font-size:3rem;margin-bottom:12px}.empty-state h3{font-size:1.1rem;color:var(--gray-700);margin-bottom:8px}.empty-state p{font-size:.875rem}
