/* 변수 설정 (라이트 모드 기본) */
:root {
    --bg-body: #f9f9f9;
    --bg-container: #ffffff;
    --text-main: #333333;
    --text-sub: #555555;
    --border-color: #e1e4e8;
    --table-header: #4A90E2;
    --table-even: #fafafa;
    --switch-bg: #ccc;
    --bg-fortune: #fff5f8;
    --border-fortune: #ffccd5;
    --text-fortune: #444;
    --footer-grad-end: #eceef1; 
    --border-color: #e1e4e8;
}

/* 다크 모드 색상 */
body.dark-mode {
    --bg-body: #121212;
    --bg-container: #1e1e1e;
    --text-main: #e0e0e0;
    --text-sub: #b0b0b0;
    --border-color: #333333;
    --table-header: #1a5fb4;
    --table-even: #252525;
    --switch-bg: #4A90E2;
    --bg-fortune: #2d1a1e;
    --border-fortune: #5a2a35;
    --text-fortune: #e0e0e0;
}

/* 부드러운 스크롤 */
html {
    scroll-behavior: smooth;
}

/* 기본 레이아웃 및 폰트 */
body { 
    font-family: 'Malgun Gothic', sans-serif; 
    margin: 20px; 
    background-color: var(--bg-body);
    color: var(--text-main);
    transition: background-color 0.3s, color 0.3s;
}

.container { 
    max-width: 850px; 
    margin: auto; 
    background: var(--bg-container); 
    padding: 20px; 
    border-radius: 10px; 
    box-shadow: 0 0 10px rgba(0,0,0,0.1); 
}

h1 { 
    text-align: center;
    color: var(--text-main);
    margin-bottom: 30px; 
}

hr {
    border: 0;
    border-top: 1px solid var(--border-color);
    margin: 20px 0;
}

.site-footer {
    width: auto;
    /* body 마진 상쇄하여 하단 꽉 채움 */
    margin: 120px -20px -20px -20px; 
    padding: 100px 20px;
    
    /* [라이트 모드] 도트 패턴 제거 + 세기 강화된 블루 그라데이션만 유지 */
    background-color: var(--bg-body);
    background-image: linear-gradient(to bottom, 
        var(--bg-body) 0%, 
        #e2e8f0 40%,   /* 중간 지점부터 색 변화 시작 */
        #b3c8e2 100%   /* 하단 끝 진한 블루 */
    );
    
    /* 배경 사이즈를 하나(그라데이션용)로 통일 */
    background-size: 100% 100%;
    background-repeat: no-repeat;
    
    border-top: 1px solid var(--border-color);
    text-align: center;
    color: var(--text-main);
}

/* [다크 모드]는 기존 요청대로 도트 없이 블루톤 유지 */
body.dark-mode .site-footer {
    background-image: linear-gradient(to bottom, #1e293b 0%, #0f172a 100%); 
    background-size: auto;
    border-top: 1px solid #1e293b;
    color: #f1f5f9;
}

/* 푸터 내부 텍스트 및 시간 요소 조정 */
body.dark-mode .footer-info {
    color: #94a3b8;
}

body.dark-mode .footer-time {
    background: #1e293b;
    color: #38bdf8;
    border-color: #334155;
}

.footer-container {
    max-width: 850px;
    margin: 0 auto;
}

.footer-info {
    font-size: 0.85em;
    line-height: 1.8;
    color: var(--text-sub);
    opacity: 0.8;
}

.footer-copyright {
    font-size: 1.2em;
    font-weight: 800;
    letter-spacing: -0.5px;
    margin-bottom: 15px;
    color: var(--text-main);
}

.footer-author {
    font-weight: 400;
    font-size: 0.8em;
    color: var(--table-header); /* 포인트 컬러 */
    margin-left: 5px;
}

.footer-info {
    font-size: 0.9em;
    line-height: 1.7;
    color: var(--text-sub);
    margin-bottom: 25px;
    word-break: keep-all;
    text-align: center;
}

.footer-info strong {
    color: #e53e3e; /* 경고 의미를 담은 붉은 계열 (라이트모드 기준) */
    font-weight: 600;
}

.footer-meta {
    font-size: 0.85em;
    color: #888;
    margin-bottom: 20px;
}

.footer-meta .separator {
    margin: 0 10px;
    color: var(--border-color);
}

/* 다크모드 대응 */
body.dark-mode .footer-info strong {
    color: #fc8181; /* 다크모드에서 잘 보이는 연한 빨강 */
}

body.dark-mode .footer-meta {
    color: #666;
}

/* 반응형 공통 */
@media screen and (max-width: 600px) {
    .container { padding: 10px; }
    h1 { font-size: 1.4em; }
    
    .site-footer {
        margin-top: 60px; /* 모바일에서는 여백을 조금 줄임 */
        padding: 40px 20px;
        margin-left: -20px; /* 좌우 마진 상쇄 유지 */
        margin-right: -20px;
        margin-bottom: -20px;
    }
    .footer-info { font-size: 0.8em; line-height: 1.6; }
    .footer-copyright { font-size: 1.1em; }
}