@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css');

* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'Pretendard', sans-serif; background: #fcfcfc; color: #111; line-height: 1.6; }
.elms-font { font-family: 'Elms Sans', sans-serif; font-weight: 300; }

/* Navbar */
.navbar { display: flex; justify-content: space-between; align-items: center; padding: 1.2rem 8%; border-bottom: 1px solid #f0f0f0; background: rgba(255,255,255,0.9); backdrop-filter: blur(15px); position: sticky; top:0; z-index:1000; }
.logo { font-size: 1.6rem; color: #000; text-decoration: none; font-weight: 700; letter-spacing: -1px; }
.nav-links { list-style: none; display: flex; gap: 2.5rem; }
.nav-links a { text-decoration: none; color: #666; font-size: 0.95rem; font-weight: 500; transition: 0.2s; }
.nav-links a:hover { color: #000; }

/* Button */
.btn-pill { padding: 10px 24px; border: 1px solid #000; border-radius: 50px; background: transparent; cursor: pointer; transition: 0.3s; font-size: 0.9rem; font-weight: 600; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; color: #000; white-space: nowrap; }
.btn-pill:hover { background: #000; color: #fff; }
.btn-black { background: #000 !important; color: #fff !important; }

/* Modal (요청사항: 테두리 회색으로 변경) */
.custom-modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.4); backdrop-filter: blur(5px); display: none; justify-content: center; align-items: center; z-index: 9999; opacity: 0; transition: opacity 0.3s; }
.custom-modal.active { display: flex; opacity: 1; }
.modal-box { 
    background: #fff; padding: 40px; border-radius: 30px; 
    width: 90%; max-width: 450px; text-align: center; 
    transform: translateY(20px); transition: transform 0.3s; 
    border: 2px solid #bbb; /* [수정] 테두리 색상 회색으로 변경 */
    box-shadow: none; 
}
.custom-modal.active .modal-box { transform: translateY(0); }
.modal-btns { display: flex; gap: 10px; margin-top: 25px; }

/* Survey Card & Dashboard */
.q-card { background: #fff; border: 1px solid #eee; padding: 25px; border-radius: 20px; margin-bottom: 15px; position: relative; }
.dash-card { background: #fff; border: 1px solid #ddd; border-radius: 20px; padding: 30px; margin-bottom: 20px; display: flex; justify-content: space-between; align-items: center; transition: 0.2s; }
.dash-card:hover { border-color: #000; }

/* Vote Result Styles */
.vote-result-item { margin-top: 15px; padding: 10px; background: #f9f9f9; border-radius: 10px; }
.vote-bar-bg { width: 100%; height: 10px; background: #eee; border-radius: 5px; margin-top: 5px; overflow: hidden; }
.vote-bar-fill { height: 100%; background: #aaa; width: 0; transition: width 1s; }
.vote-bar-fill.winner { background: #000; }
.winner-badge { display: inline-block; background: #000; color: #fff; padding: 4px 12px; border-radius: 20px; font-size: 0.8rem; margin-bottom: 5px; font-weight: bold; }

/* Inputs */
input[type="text"], input[type="password"], input[type="number"], select { width: 100%; padding: 14px; border-radius: 12px; border: 1px solid #eee; background: #f9f9f9; outline: none; margin-top: 8px; font-family: inherit; }
input:focus, select:focus { border-color: #000; background: #fff; }

/* Mobile Optimization */
@media (max-width: 768px) {
    .navbar { padding: 1rem 5%; flex-wrap: wrap; }
    .nav-links { display: none; }
    .dash-card { flex-direction: column; align-items: flex-start; gap: 20px; padding: 20px; }
    .dash-card > div:last-child { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
    .dash-card > div:last-child button { width: 100%; font-size: 0.8rem; padding: 8px 0; }
    body > div { padding: 80px 5% !important; margin: 0 !important; }
    h1 { font-size: 2rem !important; }
    h2 { font-size: 1.8rem !important; }
    .btn-pill { width: 100%; text-align: center; }
}