:root{--primary: #4F6AFF;--primary-hover: #3D55E0;--primary-light: #EEF1FF;--primary-dark: #2A3BAF;--primary-gradient: linear-gradient(135deg, #4F6AFF 0%, #6C5CE7 100%);--secondary: #FF9F43;--secondary-hover: #E68A2E;--secondary-light: #FFF3E0;--secondary-gradient: linear-gradient(135deg, #FF9F43 0%, #FECA57 100%);--success: #00D68F;--success-dark: #00B87C;--success-light: #E6FBF3;--warning: #FFAA00;--warning-light: #FFF8E1;--danger: #FF4757;--danger-hover: #E03E4D;--danger-light: #FFF0F0;--info: #18DCFF;--info-light: #E3FFFE;--gray-50: #F8FAFD;--gray-100: #F1F4F9;--gray-200: #E3E8F0;--gray-300: #CBD2DE;--gray-400: #94A3B8;--gray-500: #64748B;--gray-600: #475569;--gray-700: #334155;--gray-800: #1E293B;--gray-900: #0F172A;--white: #FFFFFF;--bg-page: #F0F3F9;--bg-card: #FFFFFF;--bg-header: linear-gradient(135deg, #1E293B 0%, #334155 40%, #4F6AFF 100%);--bg-glass: rgba(255, 255, 255, .7);--bg-glass-dark: rgba(30, 41, 59, .85);--font-family: "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-family-number: "Poppins", var(--font-family);--font-size-xs: .75rem;--font-size-sm: .8125rem;--font-size-base: .9375rem;--font-size-lg: 1.0625rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--font-size-4xl: 2.5rem;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--radius-xs: 6px;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 28px;--radius-full: 9999px;--touch-min: 48px;--touch-target: 56px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .1);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .12);--shadow-glow: 0 0 20px rgba(79, 106, 255, .15);--shadow-card: 0 2px 8px rgba(0, 0, 0, .04), 0 0 1px rgba(0, 0, 0, .08);--shadow-card-hover: 0 8px 24px rgba(79, 106, 255, .12), 0 2px 8px rgba(0, 0, 0, .06);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--transition-spring: .5s cubic-bezier(.34, 1.56, .64, 1);--z-base: 1;--z-header: 100;--z-dropdown: 200;--z-modal-backdrop: 900;--z-modal: 1000;--z-toast: 1100}@media (prefers-reduced-motion: reduce){:root{--transition-fast: 0ms;--transition-normal: 0ms;--transition-slow: 0ms;--transition-spring: 0ms}}@media (prefers-contrast: high){:root{--primary: #1d4ed8;--primary-hover: #1e3a8a;--gray-400: #6b7280;--gray-500: #4b5563;--shadow-sm: 0 0 0 1px rgba(0, 0, 0, .3);--shadow-md: 0 0 0 2px rgba(0, 0, 0, .3);--shadow-card: 0 0 0 1px rgba(0, 0, 0, .3)}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%;-webkit-user-select:none;user-select:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);background-color:var(--bg-page);color:var(--gray-800);line-height:1.6;overflow-x:hidden;overscroll-behavior:none;letter-spacing:-.01em}input,textarea,select{-webkit-user-select:text;user-select:text}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);min-height:var(--touch-min);padding:12px 24px;border:none;border-radius:var(--radius-sm);font-family:var(--font-family);font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:all var(--transition-fast);-webkit-tap-highlight-color:rgba(0,0,0,.1);position:relative;overflow:hidden}.btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at var(--ripple-x, 50%) var(--ripple-y, 50%),rgba(255,255,255,.3) 0%,transparent 60%);opacity:0;transition:opacity .4s}.btn:active:after{opacity:1;transition:opacity 0s}.btn-sm{min-height:36px;padding:8px 16px;font-size:var(--font-size-sm);border-radius:var(--radius-xs)}.btn-lg{min-height:var(--touch-target);padding:16px 32px;font-size:var(--font-size-lg);border-radius:var(--radius-md)}.btn-primary{background:var(--primary-gradient);color:var(--white);box-shadow:0 2px 8px #4f6aff4d}.btn-primary:hover{box-shadow:0 4px 16px #4f6aff66;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0);box-shadow:0 1px 4px #4f6aff4d}.btn-secondary{background:var(--gray-100);color:var(--gray-700);border:1px solid var(--gray-200)}.btn-secondary:hover{background:var(--gray-200);border-color:var(--gray-300)}.btn-success{background:linear-gradient(135deg,#00d68f,#00b87c);color:var(--white);box-shadow:0 2px 8px #00d68f4d}.btn-success:hover{box-shadow:0 4px 16px #00d68f66;transform:translateY(-1px)}.btn-danger{background:linear-gradient(135deg,#ff4757,#e03e4d);color:var(--white);box-shadow:0 2px 8px #ff475740}.btn-danger:hover{box-shadow:0 4px 16px #ff475759;transform:translateY(-1px)}.btn-outline{background:transparent;border:2px solid var(--primary);color:var(--primary)}.btn-outline:hover{background:var(--primary);color:var(--white);box-shadow:0 4px 12px #4f6aff4d}.btn-ghost{background:transparent;color:var(--gray-600)}.btn-ghost:hover{background:var(--gray-100);color:var(--gray-800)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important;box-shadow:none!important}.form-group{margin-bottom:var(--spacing-md)}.form-label{display:block;margin-bottom:6px;font-size:var(--font-size-sm);font-weight:600;color:var(--gray-600);letter-spacing:.01em}.form-label.required:after{content:" *";color:var(--danger);font-weight:700}.form-hint{display:block;font-size:11px;font-weight:400;color:var(--gray-400);margin-top:2px}.form-input,.form-select,.form-textarea{width:100%;min-height:var(--touch-min);padding:12px 16px;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);font-family:var(--font-family);font-size:var(--font-size-base);color:var(--gray-800);background:var(--white);transition:all var(--transition-fast)}.form-input:hover,.form-select:hover,.form-textarea:hover{border-color:var(--gray-300)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #4f6aff1f}.form-input::placeholder{color:var(--gray-400)}.form-input.error,.form-select.error{border-color:var(--danger);box-shadow:0 0 0 3px #ff47571a}.form-error-text{color:var(--danger);font-size:var(--font-size-xs);margin-top:var(--spacing-xs)}.form-row{display:flex;gap:var(--spacing-md)}.form-row>.form-group{flex:1}.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--spacing-md)}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0f172a80;display:none;align-items:center;justify-content:center;z-index:var(--z-modal-backdrop);padding:var(--spacing-lg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.modal-overlay.active{display:flex;animation:fadeIn var(--transition-normal)}.modal{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl),0 0 0 1px #0000000a;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;z-index:var(--z-modal);animation:modalSlideUp var(--transition-normal)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px var(--spacing-lg);border-bottom:1px solid var(--gray-100)}.modal-title{font-size:var(--font-size-xl);font-weight:700;color:var(--gray-800);display:flex;align-items:center;gap:var(--spacing-sm)}.modal-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:var(--gray-100);border-radius:var(--radius-full);font-size:1.25rem;color:var(--gray-500);cursor:pointer;transition:all var(--transition-fast)}.modal-close:hover{background:var(--gray-200);color:var(--gray-700);transform:rotate(90deg)}.modal-body{padding:var(--spacing-lg)}.modal-footer{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--gray-100);background:var(--gray-50);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.toast-container{position:fixed;top:var(--spacing-lg);right:var(--spacing-lg);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--spacing-sm)}.toast{display:flex;align-items:center;gap:var(--spacing-md);padding:16px 24px;border-radius:var(--radius-lg);box-shadow:0 8px 32px #00000040;font-size:1rem;font-weight:600;min-width:340px;max-width:480px;animation:toastSlideIn var(--transition-normal);letter-spacing:-.01em;line-height:1.4}.toast-success{background:#059669;color:#fff;border:none;border-left:5px solid #34d399}.toast-error{background:#dc2626;color:#fff;border:none;border-left:5px solid #fca5a5}.toast-warning{background:#d97706;color:#fff;border:none;border-left:5px solid #fcd34d}.toast-info{background:#2563eb;color:#fff;border:none;border-left:5px solid #93c5fd}.toast.removing{animation:toastSlideOut var(--transition-normal) forwards}.card{background:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-card);border:1px solid rgba(0,0,0,.04);overflow:hidden;transition:all var(--transition-fast)}.card:hover{box-shadow:var(--shadow-card-hover)}.card-header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--gray-100);background:var(--gray-50)}.card-body{padding:var(--spacing-lg)}.badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.02em}.badge-primary{background:var(--primary-light);color:var(--primary-dark)}.badge-success{background:var(--success-light);color:#047857}.badge-danger{background:var(--danger-light);color:#b91c1c}.badge-warning{background:var(--warning-light);color:#92400e}.data-table{width:100%;border-collapse:collapse}.data-table thead{background:var(--gray-50)}.data-table th{padding:var(--spacing-md);text-align:left;font-size:var(--font-size-sm);font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.04em;border-bottom:2px solid var(--gray-200)}.data-table td{padding:var(--spacing-md);border-bottom:1px solid var(--gray-100);font-size:var(--font-size-sm)}.data-table tbody tr{transition:background var(--transition-fast)}.data-table tbody tr:hover{background:var(--gray-50)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);text-align:center;color:var(--gray-400)}.empty-state-icon{font-size:3rem;margin-bottom:var(--spacing-md);opacity:.5}.empty-state-text{font-size:var(--font-size-lg);font-weight:600;color:var(--gray-500)}.empty-state-sub{font-size:var(--font-size-sm);margin-top:var(--spacing-xs);color:var(--gray-400)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}.checkbox-group{display:flex;align-items:center;gap:var(--spacing-sm);min-height:var(--touch-min);cursor:pointer}.checkbox-group input[type=checkbox]{width:22px;height:22px;accent-color:var(--primary);cursor:pointer;border-radius:var(--radius-xs)}.checkbox-group label{font-size:var(--font-size-base);cursor:pointer;color:var(--gray-700)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes toastSlideIn{0%{opacity:0;transform:translate(80px) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes toastSlideOut{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(80px) scale(.95)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes breathe{0%,to{box-shadow:0 0 #00d68f66}50%{box-shadow:0 0 0 8px #00d68f00}}.hidden{display:none!important}.text-center{text-align:center}.text-right{text-align:right}.font-bold{font-weight:700}.text-sm{font-size:var(--font-size-sm)}.text-danger{color:var(--danger)}.text-success{color:var(--success)}.text-muted{color:var(--gray-400)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mb-md{margin-bottom:var(--spacing-md)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.flex{display:flex}.flex-between{display:flex;justify-content:space-between;align-items:center}.flex-center{display:flex;align-items:center;justify-content:center}.flex-wrap{flex-wrap:wrap}.login-error{color:#dc2626;font-size:var(--font-size-sm);background:#dc262614;padding:8px 12px;border-radius:var(--radius-md);border-left:3px solid #DC2626;margin-top:var(--spacing-sm)}
