/* =========================================
   FIX: Restore 3D Flip (Strict Mode)
   ========================================= */

/* 1. Container Settings */
#formula-flashcard-card,
#acupoint-flashcard-card {
    perspective: 1000px;
    /* Ensure perspective exists */
}

#formula-flashcard-card .flashcard-inner,
#acupoint-flashcard-card .flashcard-inner {
    transition: transform 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275) !important;
    /* Restore animation */
    transform-style: preserve-3d !important;
    position: relative;
    width: 100%;
    height: 100%;
}

/* 2. Sides Configuration */
#formula-flashcard-card .flashcard-front,
#formula-flashcard-card .flashcard-back,
#acupoint-flashcard-card .flashcard-front,
#acupoint-flashcard-card .flashcard-back {
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-backface-visibility: hidden !important;
    backface-visibility: hidden !important;
    top: 0;
    left: 0;
}

/* 3. Front State (Default) */
#formula-flashcard-card .flashcard-front,
#acupoint-flashcard-card .flashcard-front {
    transform: rotateY(0deg) !important;
    z-index: 2;
    background-color: #fffef9;
    /* Ensure BG opacity */
}

/* 4. Back State (Initial - Rotated 180) */
#formula-flashcard-card .flashcard-back,
#acupoint-flashcard-card .flashcard-back {
    transform: rotateY(180deg) !important;
    /* CRITICAL: Must be rotated initially */
    z-index: 1;
    display: flex !important;
    /* Ensure content layout */
    visibility: visible !important;
    background-color: #fcfcfc !important;
    color: #333 !important;
}

/* 5. Flipped State */
/* 
   CRITICAL FIX: 
   main.css has a rule: .flashcard.flipped { transform: rotateY(180deg); }
   This causes the OUTER container to rotate.
   Our .flashcard-inner ALSO rotates 180deg.
   180 + 180 = 360deg -> Back to front!
   We must DISABLE the outer rotation to fix the double-rotation bug.
*/
#formula-flashcard-card.flipped,
#acupoint-flashcard-card.flipped {
    transform: none !important;
}

#formula-flashcard-card.flipped .flashcard-inner,
#acupoint-flashcard-card.flipped .flashcard-inner {
    transform: rotateY(180deg) !important;
}

/* Optional: Fix z-index after flip to prevent bleeding on some browsers */
#formula-flashcard-card.flipped .flashcard-back,
#acupoint-flashcard-card.flipped .flashcard-back {
    z-index: 10;
}

/* 导航箭头按钮样式 */
.nav-arrow-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0, 0, 0, 0.05);
    border: none;
    font-size: 2.5rem;
    color: #ccc;
    cursor: pointer;
    padding: 30px 10px;
    z-index: 100;
    transition: all 0.2s;
    border-radius: 8px;
    user-select: none;
}

.nav-arrow-btn:hover {
    background: rgba(0, 0, 0, 0.1);
    color: var(--crimson-dark);
}

.nav-arrow-btn.prev {
    left: -60px;
}

.nav-arrow-btn.next {
    right: -60px;
}

/* 移动端适配 */
@media (max-width: 900px) {
    .nav-arrow-btn {
        background: rgba(255, 255, 255, 0.6);
        padding: 15px 5px;
        font-size: 1.8rem;
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    }

    .nav-arrow-btn.prev {
        left: -10px;
    }

    .nav-arrow-btn.next {
        right: -10px;
    }
}

/* =========================================
   Acupoint Typography Beautification
   ========================================= */
.acupoint-info-block {
    width: 100%;
    margin-bottom: 1.2rem;
    text-align: left;
    /* Enforce left alignment */
}

.acupoint-label {
    display: block;
    font-size: 0.85em;
    font-weight: 600;
    color: #9ca3af;
    /* Cool Gray 400 */
    margin-bottom: 4px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    border-bottom: 1px solid #f3f4f6;
    padding-bottom: 2px;
}

.acupoint-content {
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
    color: #374151;
    /* Gray 700 */
    line-height: 1.6;
    font-weight: 400;
}

.acupoint-content.indications {
    color: #b91c1c;
    /* Red 700 - Professional Dark Red */
}

.acupoint-content li {
    margin-bottom: 4px;
    list-style-type: disc;
    margin-left: 1.2em;
}

.acupoint-content p {
    margin: 0;
}

/* Container Spacing */
#acupoint-flashcard-card .flashcard-back {
    align-items: flex-start !important;
    /* Top align content */
    justify-content: center !important;
    /* Vertically center the block if possible, or start */
}

/* =========================================
   Subject Button Colors
   ========================================= */
/* Acupoint - Teal/Pine Green Distinction */
.subject-btn[data-subject="acupoint"].active {
    background-color: #319795 !important;
    /* Teal 600 */
    border-color: #319795 !important;
    box-shadow: 0 4px 10px rgba(49, 151, 149, 0.3) !important;
    color: #fff !important;
    /* Ensure white text */
}

.subject-btn[data-subject="acupoint"]:hover {
    color: #319795;
    border-color: #319795;
}

/* Formula - Amber/Paper */
.subject-btn[data-subject="formula"].active {
    background-color: #d69e2e !important;
    /* Amber 600 */
    border-color: #d69e2e !important;
    box-shadow: 0 4px 10px rgba(214, 158, 46, 0.3) !important;
    color: #fff !important;
    /* Ensure white text */
}

.subject-btn[data-subject="formula"]:hover {
    color: #d69e2e;
    border-color: #d69e2e;
}

/* Emergency - Urgent Red */
.subject-btn[data-subject="emergency"].active {
    background-color: #e53e3e !important;
    /* Red 600 */
    border-color: #e53e3e !important;
    box-shadow: 0 4px 10px rgba(229, 62, 62, 0.3) !important;
    color: #fff !important;
}

.subject-btn[data-subject="emergency"]:hover {
    color: #e53e3e;
    border-color: #e53e3e;
}

/* =========================================
   Dark Mode Patches (Overrides for above strict rules)
   ========================================= */
[data-theme="dark"] #formula-flashcard-card .flashcard-front,
[data-theme="dark"] #acupoint-flashcard-card .flashcard-front,
[data-theme="dark"] #formula-flashcard-card .flashcard-back,
[data-theme="dark"] #acupoint-flashcard-card .flashcard-back {
    background-color: #2a2a2a !important;
    color: #f0f0f0 !important;
    border-color: #444 !important;
}

[data-theme="dark"] .acupoint-content {
    color: #e5e7eb !important;
    /* Gray 200 */
}

[data-theme="dark"] .acupoint-content.indications {
    color: #fca5a5 !important;
    /* Red 300 - Light Red for dark mode */
}

[data-theme="dark"] .acupoint-label {
    color: #9ca3af !important;
    /* Keep Gray 400 or make lighter */
    border-bottom-color: #444 !important;
}

/* =========================================
   Recall Prompt Dark Mode Fix
   ========================================= */
[data-theme="dark"] .recall-prompt,
[data-theme="dark"] #recall-prompt,
[data-theme="dark"] #formula-recall-prompt,
[data-theme="dark"] #acupoint-recall-prompt {
    background-color: #2a2a2a !important;
    background: #2a2a2a !important;
    border: 2px dashed #b7791f !important;
    /* Darker amber border */
    color: #e0e0e0 !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
}

[data-theme="dark"] .recall-prompt p,
[data-theme="dark"] #recall-prompt p,
[data-theme="dark"] #formula-recall-prompt p,
[data-theme="dark"] #acupoint-recall-prompt p {
    color: #e0e0e0 !important;
    text-shadow: none !important;
}

/* =========================================
   UI Polish & Fixes (Button Clean-up)
   ========================================= */
/* Remove faint red edge/shadow from buttons */
#btn-start-flashcard,
.recall-prompt .btn,
#btn-ready-recall {
    box-shadow: none !important;
    -webkit-box-shadow: none !important;
}

/* Fix Back Button Text Color (Light Mode Visibility) */
#btn-reset-flashcard {
    color: #ffffff !important;
    /* Force white text */
    font-weight: 600;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
    /* Slight shadow for readability */
}