/* 공통 폰트 설정 */
* {
    font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, system-ui, Roboto, 'Helvetica Neue', 'Segoe UI', 'Apple SD Gothic Neo', 'Noto Sans KR', 'Malgun Gothic', 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', sans-serif !important;
}

/* 텍스트 줄임 처리 */
.line-clamp-1 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; }
.line-clamp-2 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.line-clamp-3 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }

/* 그라데이션 배경 */
.bg-gradient-to-br {
    background: linear-gradient(to bottom right, #f8fafc, #dbeafe, #e0e7ff) !important;
}

/* 체크박스 완전 숨김 */
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* 그레인 텍스처 */
body::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.015'/%3E%3C/svg%3E");
    pointer-events: none;
    z-index: 1;
}

.content-wrapper {
    position: relative;
    z-index: 2;
}

/* 글래스모피즘 효과 */
.glass-effect {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
    z-index: 10;
}

.glass-card {
    background: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.4);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

/* 플랫 카드 스타일 */
.flat-card {
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(226, 232, 240, 0.8);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    transition: all 0.2s ease;
}

.flat-card:hover {
    border-color: rgba(99, 102, 241, 0.3);
    box-shadow: 0 2px 8px rgba(99, 102, 241, 0.1);
}

.gradient-text {
    background: linear-gradient(135deg, #1e293b 0%, #475569 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* 폼 컨트롤 */
.large-input {
    width: 100%;
    padding: 16px;
    border: 2px solid #e2e8f0;
    border-radius: 12px;
    font-size: 1rem;
    transition: all 0.2s ease;
    outline: none;
    background: white;
}
.large-input:focus {
    border-color: #6366f1;
    box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);
}

.large-select {
    width: 100%;
    padding: 16px;
    border: 2px solid #e2e8f0;
    border-radius: 12px;
    font-size: 1rem;
    min-height: 56px;
    background: white;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2394a3b8'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
    background-size: 20px;
}

.form-label {
    display: block;
    font-weight: 600;
    font-size: 1rem;
    color: #334155;
    margin-bottom: 0.5rem;
}

/* 버튼 */
.large-button {
    padding: 18px 36px;
    border-radius: 12px;
    font-weight: 600;
    font-size: 1rem;
    cursor: pointer;
    transition: all 0.2s ease;
    border: 2px solid transparent;
}
.large-button-primary {
    background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
    color: white;
}
.large-button-primary:hover {
    opacity: 0.9;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);
}
.large-button-secondary {
    background: white;
    border-color: #e2e8f0;
    color: #334155;
}
.large-button-secondary:hover {
    border-color: #cbd5e1;
    background: #f8fafc;
}
.large-button-danger {
    background: #ef4444;
    color: white;
}
.large-button-danger:hover {
    background: #dc2626;
}

/* 알림 */
.alert-success { background: #ecfdf5; border: 1px solid #a7f3d0; color: #065f46; padding: 1rem; border-radius: 8px; }
.alert-error { background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; padding: 1rem; border-radius: 8px; }
.alert-warning { background: #fffbeb; border: 1px solid #fed7aa; color: #92400e; padding: 1rem; border-radius: 8px; }
.alert-info { background: #eff6ff; border: 1px solid #bfdbfe; color: #1e40af; padding: 1rem; border-radius: 8px; }

/* 토글 스위치 */
.toggle-switch {
    width: 56px;
    height: 32px;
    border-radius: 32px;
    background: #e2e8f0;
    position: relative;
    cursor: pointer;
    transition: background 0.2s ease;
}
.toggle-switch.active {
    background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
}
.toggle-switch::after {
    content: '';
    position: absolute;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: white;
    top: 3px;
    left: 3px;
    transition: transform 0.2s ease;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
.toggle-switch.active::after {
    transform: translateX(24px);
}

/* 아이콘 컨테이너 */
.icon-blue { background: linear-gradient(135deg, #dbeafe, #bfdbfe); border: 1px solid rgba(59, 130, 246, 0.2); }
.icon-green { background: linear-gradient(135deg, #dcfce7, #bbf7d0); border: 1px solid rgba(34, 197, 94, 0.2); }
.icon-purple { background: linear-gradient(135deg, #f3e8ff, #e9d5ff); border: 1px solid rgba(168, 85, 247, 0.2); }

.icon-blue, .icon-green, .icon-purple {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* 메트릭 값 */
.metric-value {
    font-size: 2.25rem;
    font-weight: 800;
    color: #0f172a;
}
