:root { --bg-color: #1f2937; --bg-gradient: linear-gradient(135deg, #4f46e5, #7c3aed, #a855f7); --text-color: #e5e7eb; --box-color: rgba(17, 24, 39, 0.6); --border-color: #4b5563; --btn-color: #a855f7; --btn-hover: #7c3aed; --shadow-color: rgba(168, 85, 247, 0.4); } .light-mode { --bg-color: #f9fafb; --bg-gradient: linear-gradient(180deg, #ffffff 0%, #f3f4f6 100%); --text-color: #1f2937; --box-color: #ffffff; --border-color: #d1d5db; --btn-color: #6366f1; --btn-hover: #4f46e5; --shadow-color: rgba(99, 102, 241, 0.4); } body { margin: 0; font-family: Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Roboto, "Helvetica Neue", Segoe UI, Apple SD Gothic Neo, Noto Sans KR, Malgun Gothic, sans-serif; background: var(--bg-gradient); color: var(--text-color); animation: fadeIn 0.8s ease forwards; min-height: 100vh; } @keyframes fadeIn { to { opacity: 1; } } header { padding: 1rem 2rem; display: flex; justify-content: space-between; align-items: center; font-size: 1rem; font-weight: 700; color: var(--text-color); background: transparent; } .header-actions button { margin-left: 0.5rem; } .mode-toggle { background: none; border: 1px solid var(--border-color); color: var(--text-color); border-radius: 0.5rem; cursor: pointer; padding: 0.4rem 0.6rem; transition: all 0.25s ease; } .mode-toggle:hover { border-color: var(--btn-color); color: var(--btn-color); } .logout-btn { background: #ef4444; color: white; border: none; border-radius: 0.5rem; padding: 0.4rem 0.8rem; font-size: 0.85rem; cursor: pointer; transition: background-color 0.25s ease; } .logout-btn:hover { background: #b91c1c; } main { max-width: 800px; margin: 2rem auto; background: var(--box-color); border: 1px solid var(--border-color); border-radius: 1rem; padding: 2rem; box-shadow: 0 10px 25px var(--shadow-color); transition: background 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease; } main h2 { text-align: center; font-size: 1.75rem; margin-bottom: 1.5rem; color: var(--text-color); } .input-group { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 2rem; } .input-group input { flex: 1; padding: 0.75rem; border: 1px solid var(--border-color); border-radius: 0.75rem; background: var(--bg-color); color: var(--text-color); transition: background 0.3s ease, border-color 0.3s ease; } .input-group input::placeholder { color: var(--border-color); } .input-group input:focus { outline: none; border-color: var(--btn-color); background: var(--box-color); box-shadow: 0 0 8px var(--btn-color); } .input-group button { background: var(--btn-color); color: white; border: none; border-radius: 0.75rem; padding: 0.6rem 1rem; cursor: pointer; font-weight: 700; transition: background-color 0.3s ease, transform 0.3s ease; } .input-group button:hover { background: var(--btn-hover); transform: scale(1.05); } .password-section { margin-bottom: 2rem; } .password-section h3 { font-size: 1.2rem; margin-bottom: 0.75rem; color: var(--text-color); } .pw-inputs { display: flex; gap: 0.5rem; margin-bottom: 0.75rem; } .pw-inputs input { flex: 1; padding: 0.6rem; border: 1px solid var(--border-color); border-radius: 0.5rem; background: var(--bg-color); color: var(--text-color); transition: background 0.3s ease, border-color 0.3s ease; } .password-section button { background: var(--btn-color); color: white; border: none; border-radius: 0.75rem; padding: 0.6rem 1rem; cursor: pointer; font-weight: 700; transition: background-color 0.3s ease; } .password-section button:hover { background: var(--btn-hover); } .cards-section h3 { font-size: 1.2rem; margin-bottom: 0.75rem; color: var(--text-color); } .cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 1rem; } .card { background: var(--box-color); border: 1px solid var(--border-color); border-radius: 0.75rem; padding: 1rem; text-align: center; cursor: pointer; transition: transform 0.3s ease, background 0.3s ease; color: var(--text-color); box-shadow: 0 2px 8px var(--shadow-color); } .card:hover { transform: translateY(-5px); background: rgba(124, 58, 247, 0.1); } .card h4 { margin: 0.5rem 0; font-size: 1.1rem; } .card p { font-size: 0.9rem; } footer { text-align: center; padding: 1rem; font-size: 0.9rem; color: #8b8b8b; } /* 모바일 반응형 */ @media (max-width: 768px) { main { margin: 1rem; padding: 1rem; } .cards { grid-template-columns: 1fr; } } /* 아주 작은 화면 대응 */ @media (max-width: 480px) { main h2 { font-size: 1.5rem; } .cards-section h3 { font-size: 1rem; } .card h4 { font-size: 1rem; } .card p { font-size: 0.85rem; } }