/* ==========================================================
   물타세 브랜드 테마
   - 부트스트랩 기본 색상(primary/success/warning 등) 대신
     사이트 고유 팔레트를 별도 유틸리티 클래스로 관리합니다.
   - 기존 페이지의 btn-outline-primary 등은 점진적으로
     아래 btn-brand / btn-outline-brand 로 교체해나갑니다.
   ========================================================== */

:root {
    --brand-navy: #16324F;       /* 헤더/푸터 다크 톤 */
    --brand-navy-dark: #0E1F33;  /* 네이비 hover/active */
    --brand-teal: #0E9594;       /* 메인 포인트 컬러 */
    --brand-teal-dark: #0B726E;  /* 틸 hover/active */
    --brand-teal-rgb: 14, 149, 148;
    --brand-amber: #F2A93B;      /* 강조/경고용 포인트 (가끔만 사용) */
    --brand-danger: #D64545;     /* 위험/숏 포지션 등 경고성 빨강 */
    --brand-danger-rgb: 214, 69, 69;
    --brand-bg: #F7F9FB;         /* 페이지 배경 */
    --brand-text-muted: #5B6B7A;
}

/* ---------- 레이아웃 공통 (기존 layout.html 인라인 style 이관) ---------- */
body {
    word-break: keep-all;
    -webkit-tap-highlight-color: transparent;
    padding-top: 107px; /* JS가 실제 높이 측정 후 정확한 값으로 즉시 덮어씁니다 (아래 fallback용) */
    background-color: var(--brand-bg) !important;
}

/* ---------- 상단 실시간 시세 티커 ---------- */
.market-ticker {
    position: fixed;
    top: 75px; /* JS가 네비바 실제 높이를 측정해서 정확한 값으로 덮어씁니다 (아래 fallback용) */
    left: 0;
    right: 0;
    z-index: 1025; /* 네비바(fixed-top, 1030)보다 아래 */
    height: 32px;
    line-height: 32px;
    background-color: var(--brand-navy-dark);
    overflow: hidden;
    white-space: nowrap;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.market-ticker-track {
    display: inline-flex;
    align-items: center;
    animation: market-ticker-rtl 90s linear infinite;
    will-change: transform;
}
@keyframes market-ticker-rtl {
    from { transform: translateX(0%); }
    to { transform: translateX(-50%); }
}
.ticker-item {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0 1.25rem;
    font-size: 0.78rem;
    color: #fff;
    white-space: nowrap;
}
.ticker-sparkline {
    display: inline-block;
    vertical-align: middle;
}
.ticker-up {
    color: #ff5c5c; /* 국내 관례: 상승 = 빨강 */
    font-weight: 700;
}
.ticker-down {
    color: #4d94ff; /* 하락 = 파랑 */
    font-weight: 700;
}

input, select, textarea {
    font-size: 16px !important;
}

.navbar-collapse {
    background-color: var(--brand-navy-dark);
    padding: 15px;
    border-radius: 1rem;
    margin-top: 10px;
    max-height: calc(100vh - var(--header-height, 122px) - 32px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;      /* Firefox */
    -ms-overflow-style: none;   /* 구형 Edge/IE */
}
.navbar-collapse::-webkit-scrollbar {
    display: none;              /* Chrome, Safari, 최신 Edge */
}

@media (max-width: 576px) {
    .container {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    .navbar .btn-sm.rounded-pill {
        padding-left: 0.55rem !important;
        padding-right: 0.55rem !important;
        font-size: 0.78rem;
    }

    .navbar .d-flex.align-items-center.gap-2 {
        gap: 0.4rem !important;
    }

    .navbar-brand {
        font-size: 1.05rem;
    }

    .btn-group {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }

    .btn-group > .btn {
        border-radius: 0.5rem !important;
        width: 100% !important;
        margin: 0 !important;
    }

    .input-group-text {
        font-size: 0.9rem !important;
        padding: 0 10px !important;
    }
}

@media (max-width: 768px) {
    .card-body {
        padding: 1.25rem !important;
    }
}

.navbar-toggler {
    padding: 8px 10px;
    border: none;
}

.hover-bg-opacity-20:hover {
    background-color: rgba(255, 255, 255, 0.2) !important;
    transform: translateY(-1px);
}

/* ---------- 버튼 ---------- */
.btn-brand {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--brand-teal);
    --bs-btn-border-color: var(--brand-teal);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--brand-teal-dark);
    --bs-btn-hover-border-color: var(--brand-teal-dark);
    --bs-btn-focus-shadow-rgb: var(--brand-teal-rgb);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--brand-teal-dark);
    --bs-btn-active-border-color: var(--brand-teal-dark);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--brand-teal);
    --bs-btn-disabled-border-color: var(--brand-teal);
}

.btn-outline-brand {
    --bs-btn-color: var(--brand-teal);
    --bs-btn-border-color: var(--brand-teal);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--brand-teal);
    --bs-btn-hover-border-color: var(--brand-teal);
    --bs-btn-focus-shadow-rgb: var(--brand-teal-rgb);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--brand-teal);
    --bs-btn-active-border-color: var(--brand-teal);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--brand-teal);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--brand-teal);
    --bs-gradient: none;
}

.btn-outline-brand-danger {
    --bs-btn-color: var(--brand-danger);
    --bs-btn-border-color: var(--brand-danger);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--brand-danger);
    --bs-btn-hover-border-color: var(--brand-danger);
    --bs-btn-focus-shadow-rgb: var(--brand-danger-rgb);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--brand-danger);
    --bs-btn-active-border-color: var(--brand-danger);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--brand-danger);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--brand-danger);
    --bs-gradient: none;
}

/* btn-group 안에서 서로 다른 색상의 아웃라인 버튼(LONG/SHORT 등)이 인접할 때
   부트스트랩이 테두리를 -1px씩 겹쳐 이어붙이면서(margin-left: -1px) 서로 다른
   색끼리 경계가 어색해지는 것을 방지 */
.btn-group > .btn-check + .btn-outline-brand,
.btn-group > .btn-check + .btn-outline-brand-danger {
    position: relative;
}
.btn-group > .btn-check:checked + .btn-outline-brand,
.btn-group > .btn-check:checked + .btn-outline-brand-danger {
    z-index: 2;
}

/* ---------- 텍스트/배경/테두리 유틸리티 ---------- */
.text-brand {
    color: var(--brand-teal) !important;
}

.text-brand-danger {
    color: var(--brand-danger) !important;
}

.bg-brand {
    background-color: var(--brand-teal) !important;
}

.bg-brand-danger {
    background-color: var(--brand-danger) !important;
}

.border-brand {
    border-color: var(--brand-teal) !important;
}

.bg-brand-navy {
    background-color: var(--brand-navy) !important;
}

.bg-brand-subtle {
    background-color: rgba(var(--brand-teal-rgb), 0.08) !important;
}

.badge-brand {
    background-color: rgba(var(--brand-teal-rgb), 0.12);
    color: var(--brand-teal-dark);
}

/* ---------- 네비게이션 바 ---------- */
.navbar .btn-outline-light:hover {
    border-color: var(--brand-teal) !important;
    background-color: rgba(var(--brand-teal-rgb), 0.15) !important;
}

.calc-menu-heading {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.75);
    margin-bottom: 0.5rem;
    padding-left: 0.5rem;
}

.calc-menu-link.active {
    background-color: rgba(var(--brand-teal-rgb), 0.18) !important;
    color: #fff !important;
    font-weight: 600;
    position: relative;
}

.calc-menu-link.active::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.4rem;
    bottom: 0.4rem;
    width: 3px;
    border-radius: 2px;
    background-color: var(--brand-teal);
}

/* ---------- 푸터 ---------- */
footer a:hover {
    color: var(--brand-teal) !important;
}

/* ---------- 예시 값 채우기 버튼 ---------- */
.btn-example {
    color: #fff !important;
    border: 1.5px solid var(--brand-amber) !important;
    background-color: var(--brand-amber) !important;
    font-weight: 700;
    box-shadow: 0 2px 8px rgba(242, 169, 59, 0.35);
}
.btn-example:hover,
.btn-example:focus {
    background-color: #d9911f !important;
    border-color: #d9911f !important;
    color: #fff !important;
}

/* ---------- 최근 계산 기록 칩 ---------- */
.recent-calc-chip {
    font-size: 0.8rem;
    border: 1px solid #dee2e6;
    background-color: #fff;
    color: var(--brand-navy);
    border-radius: 999px;
    padding: 0.35rem 0.8rem;
    cursor: pointer;
    transition: all 0.15s ease;
    white-space: nowrap;
}
.recent-calc-chip:hover {
    border-color: var(--brand-teal);
    background-color: rgba(var(--brand-teal-rgb), 0.08);
    color: var(--brand-teal-dark);
}
.recent-calc-chip .recent-calc-time {
    color: var(--brand-text-muted);
    font-size: 0.72rem;
    margin-left: 0.35rem;
}
/* ---------- 모바일 하단 고정 계산 버튼 ---------- */
@media (max-width: 767.98px) {
    .calc-action-row {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 1030;
        background-color: #fff;
        padding: 0.6rem 1rem calc(0.6rem + env(safe-area-inset-bottom));
        box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.12);
        margin: 0 !important;
        transition: transform 0.2s ease;
    }

    /* 푸터가 화면에 보이기 시작하면 버튼을 아래로 숨겨서 푸터를 가리지 않게 함 */
    .calc-action-row.calc-action-row-hidden {
        transform: translateY(120%);
    }

    /* 하단 고정 버튼에 콘텐츠가 가려지지 않도록 여유 공간 확보 */
    .calc-action-spacer {
        display: block;
        height: 64px;
    }

    /* 하단 고정 바 안의 버튼은 btn-lg/fs-5보다 작게 축소 */
    .calc-action-row .btn {
        font-size: 1rem !important;
        padding-top: 0.55rem !important;
        padding-bottom: 0.55rem !important;
    }
}

/* ---------- 가이드 목록 페이지네이션 ---------- */
.pagination .page-link {
    color: var(--brand-navy);
    border-color: #dee2e6;
}
.pagination .page-link:hover {
    color: var(--brand-teal-dark);
    background-color: rgba(var(--brand-teal-rgb), 0.08);
    border-color: var(--brand-teal);
}
.pagination .page-item.active .page-link {
    background-color: var(--brand-teal);
    border-color: var(--brand-teal);
    color: #fff;
}
.pagination .page-item.disabled .page-link {
    color: #adb5bd;
}