/* ==========================================================================
   0. 폰트 설정 (Pretendard)
   ========================================================================== */
@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css");

/* 전체 페이지 기본 폰트 적용 */
body, html, .font-sans {
    font-family: "Pretendard Variable", 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;
}

/* ==========================================================================
   1. 사이드바 네비게이션 (Sidebar Navigation)
   ========================================================================== */
.btn-side {
    width: 100%;
    text-align: left;
    padding: 0.875rem 1.25rem; /* px-5 py-3.5 */
    border-radius: 0.75rem; /* rounded-xl */
    font-size: 0.875rem; /* text-sm */
    font-weight: 500; /* font-medium */
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    position: relative;
    overflow: hidden;
    margin-bottom: 0.25rem; /* mb-1 */
    border: none;
    cursor: pointer;
}

/* 비활성 상태 (OFF) */
.btn-side-off {
    color: #64748b; /* text-slate-500 */
    background-color: transparent;
}

.btn-side-off:hover {
    background-color: #f8fafc; /* hover:bg-slate-50 */
    color: #0f172a; /* hover:text-slate-900 */
}

.btn-side-off i {
    color: #94a3b8; /* text-slate-400 */
    opacity: 0.7;
}

/* 활성 상태 (ON) */
.btn-side-on {
    background-color: #eef2ff; /* bg-indigo-50 */
    color: #4338ca; /* text-indigo-700 */
    font-weight: 700; /* font-bold */
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); /* shadow-sm */
}

.btn-side-on i {
    color: #4f46e5; /* text-indigo-600 */
    transform: scale(1.1);
}

/* 활성 상태일 때 왼쪽 강조 라인 */
.btn-side-on::before {
    content: '';
    position: absolute;
    left: 0;
    top: 25%;
    bottom: 25%;
    width: 4px;
    background-color: #4f46e5; /* bg-indigo-600 */
    border-top-right-radius: 9999px;
    border-bottom-right-radius: 9999px;
}

/* ==========================================================================
   2. 폼 요소 (Form Elements)
   ========================================================================== */
.form-input {
    width: 100%;
    border: 1px solid #e2e8f0; /* slate-200 */
    border-radius: 0.75rem; /* rounded-xl */
    padding: 0.6rem 1rem;
    font-size: 0.8rem; /* text-xs */
    font-weight: 600;
    color: #334155; /* slate-700 */
    background-color: #ffffff;
    transition: all 0.2s;
    outline: none;
}

.form-input:focus {
    border-color: #6366f1; /* indigo-500 */
    box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);
}

.form-label {
    display: block;
    font-size: 0.7rem; /* text-[11px] */
    font-weight: 700;
    color: #64748b; /* slate-500 */
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.4rem;
}

/* 커스텀 라디오 카드 스타일 */
.radio-card-input:checked + .radio-card {
    border-color: #6366f1;
    background-color: #eef2ff; /* indigo-50 */
    color: #4338ca; /* indigo-700 */
}

.radio-card-input:checked + .radio-card.amber {
    border-color: #f59e0b;
    background-color: #fffbeb; /* amber-50 */
    color: #b45309; /* amber-700 */
}

/* 에디터 툴바 버튼 */
.editor-toolbar-btn {
    padding: 0.4rem 0.6rem;
    border-radius: 0.5rem;
    color: #64748b;
    transition: all 0.2s;
}

.editor-toolbar-btn:hover {
    background-color: #f1f5f9;
    color: #334155;
}

/* ==========================================================================
   3. 카드 및 유틸리티 (Cards & Utilities)
   ========================================================================== */
.card-hover-effect {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.card-hover-effect:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    border-color: #6366f1;
}

.no-scrollbar::-webkit-scrollbar {
    display: none;
}

/* ==========================================================================
   4. 애니메이션 (Animations)
   ========================================================================== */
.animate-fade-in {
    animation: fadeIn 0.3s ease-out forwards;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.modal-enter {
    animation: modalIn 0.2s ease-out forwards;
}

@keyframes modalIn {
    from {
        opacity: 0;
        transform: scale(0.95);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* 스탠다드 에디션 모던 라이트 테마 커스텀 */
.ag-theme-quartz {
    font-family: "Pretendard Variable", Pretendard, sans-serif !important;
    --ag-font-family: "Pretendard Variable", Pretendard, sans-serif !important;
}

/* 그리드 내부의 커스텀 렌더러 수직 정렬을 위한 스타일 */
.ag-cell-wrapper {
    display: flex;
    align-items: center;
    height: 100%;
}

.toastui-editor-defaultUI {
    border: 1px solid #e2e8f0 !important;
    border-radius: 0.75rem !important;
}

.toastui-editor-defaultUI-toolbar {
    background-color: #f8fafc !important;
    border-bottom: 1px solid #e2e8f0 !important;
    border-radius: 0.75rem 0.75rem 0 0 !important;
}