body { 
    background-color: #fff4e6; 
    background-image: radial-gradient(#d1d5db 2px, transparent 2px);
    background-size: 30px 30px;
    overflow-x: hidden; 
}

.neo-border {
    border: 4px solid #222f3e;
    border-radius: 16px;
}

.neo-shadow {
    box-shadow: 6px 6px 0px #222f3e;
}

.neo-btn {
    border: 4px solid #222f3e;
    border-radius: 12px;
    box-shadow: 6px 6px 0px #222f3e;
    transition: all 0.15s ease-out;
    cursor: pointer;
    font-weight: 900;
}

.neo-btn:active, .neo-btn.is-pressed {
    transform: translate(6px, 6px);
    box-shadow: 0px 0px 0px #222f3e;
}

.neo-card {
    border: 4px solid #222f3e;
    border-radius: 24px;
    box-shadow: 8px 8px 0px #222f3e;
    background-color: white;
}

/* 滾動條樣式 */
::-webkit-scrollbar { width: 12px; }
::-webkit-scrollbar-track { background: #fff4e6; border-left: 3px solid #222f3e; }
::-webkit-scrollbar-thumb { background: #ff6b6b; border: 3px solid #222f3e; border-radius: 10px; }

/* 地圖彈窗自定義 */
.leaflet-popup-content-wrapper {
    border: 3px solid #222f3e;
    border-radius: 12px;
    box-shadow: 4px 4px 0px #222f3e;
    font-family: 'Noto Sans TC', sans-serif;
    font-weight: bold;
}
.leaflet-popup-tip { border-top: 3px solid #222f3e; border-left: 3px solid #222f3e; }
.custom-map-icon { background: transparent; border: none; }

/* 動畫過渡 */
.v-enter-active, .v-leave-active { transition: opacity 0.3s ease, transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
.v-enter-from { opacity: 0; transform: scale(0.95) translateY(10px); }
.v-leave-to { opacity: 0; transform: scale(0.95) translateY(-10px); }

.modal-enter-active, .modal-leave-active { transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); }
.modal-enter-from, .modal-leave-to { opacity: 0; transform: scale(0.7) translateY(30px) rotate(-5deg); }
