/* --- Hoàng kim / cổ học điền palette --- */
:root {
    --gold-royal: #d4af37;
    --gold-rich: #e8c547;
    --gold-soft: #c9a227;
    --gold-dim: #8b6914;
    --parchment: #e4d4b0;
    --parchment-muted: #a8946e;
    --royal-deep: #141b2e;
    --royal-edge: rgba(94, 120, 180, 0.12);
    /** Tiếng Việt: serif trang trí + serif đầy glyph; sans cho nhãn nhỏ lục cung */
    --font-heading-viet: 'Playfair Display', 'Noto Serif', Georgia, 'Times New Roman', serif;
    --font-body-viet: 'Quicksand', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

/* Cuộn: đổi màu theo vàng kim + nâu khung */
::-webkit-scrollbar {
    width: 7px;
}
::-webkit-scrollbar-track {
    background: linear-gradient(180deg, #0d0f16 0%, #12151f 100%);
}
::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, #e5ab10 0%, #8b5a06 100%);
    border-radius: 4px;
    box-shadow: 0 0 6px rgba(229, 171, 16, 0.35);
}

/* Nền: nhiều lớp — kim quang, bronze góc, xanh imperial rất nhạt */
.mystic-gradient {
    background-color: #090b10;
    background-image:
        radial-gradient(ellipse 115% 70% at 50% -15%, rgba(232, 197, 71, 0.11), transparent 52%),
        radial-gradient(ellipse 55% 45% at 100% 0%, rgba(184, 140, 50, 0.07), transparent 45%),
        radial-gradient(ellipse 45% 40% at 0% 15%, rgba(90, 110, 180, 0.06), transparent 42%),
        radial-gradient(ellipse 85% 60% at 100% 100%, rgba(120, 70, 20, 0.06), transparent 48%),
        radial-gradient(circle at 48% 50%, rgba(40, 48, 70, 0.35) 0%, #090b10 72%);
    background-attachment: fixed;
}

/* Header / thanh công cụ hoàng kim */
.imperial-toolbar {
    background: linear-gradient(185deg,
        rgba(32, 28, 42, 0.88) 0%,
        rgba(14, 15, 22, 0.94) 55%,
        rgba(26, 32, 48, 0.86) 100%);
    border-bottom: 1px solid rgba(212, 175, 55, 0.26);
    box-shadow:
        0 1px 0 rgba(255, 240, 200, 0.06),
        0 8px 32px rgba(0, 0, 0, 0.35);
}

/* Logo + nút toolbar: không phụ thuộc Tailwind JIT (tránh tiệp màu thanh đầu trang) */
.header-brand-symbol {
    color: #fff2d6;
    font-size: clamp(1.35rem, 4vw, 1.625rem);
    filter:
        drop-shadow(0 0 12px rgba(229, 171, 16, 0.55))
        drop-shadow(0 2px 5px rgba(0, 0, 0, 0.75));
}

.header-wordmark {
    font-family: 'Cinzel Decorative', serif;
    color: #f8edd0;
    text-shadow:
        0 0 18px rgba(212, 175, 55, 0.5),
        0 2px 8px rgba(0, 0, 0, 0.65);
}

.header-toolbar-action {
    color: #fbf3dc;
    background: rgba(18, 20, 32, 0.92);
    border: 1px solid rgba(212, 175, 55, 0.5);
    box-shadow:
        inset 0 1px 0 rgba(255, 240, 200, 0.08),
        0 2px 12px rgba(0, 0, 0, 0.4);
}

.header-toolbar-action:hover {
    color: #fffdf5;
    background: rgba(36, 32, 24, 0.95);
    border-color: rgba(255, 224, 150, 0.65);
}

.header-toolbar-action .header-toolbar-action__glyph {
    color: #f0c852;
}

.header-toolbar-action--icon-only {
    color: #f0c852;
}

.header-toolbar-action--icon-only:hover {
    color: #ffe9a8;
}

.header-toolbar-action:focus-visible {
    outline: 2px solid rgba(255, 224, 140, 0.85);
    outline-offset: 2px;
}

/* Thẻ nội dung hai cột — viền kim, trong ấm, viền sáng mờ */
.imperial-panel {
    position: relative;
    overflow: hidden;
    border-radius: 1.5rem;
    border: 1px solid rgba(212, 175, 55, 0.26);
    background:
        linear-gradient(168deg,
            rgba(72, 80, 100, 0.18) 0%,
            rgba(18, 19, 28, 0.94) 42%,
            rgba(42, 36, 24, 0.12) 100%),
        linear-gradient(125deg,
            rgba(212, 175, 55, 0.05) 0%,
            transparent 38%);
    box-shadow:
        inset 0 1px 0 rgba(253, 237, 170, 0.08),
        inset 0 -1px 0 rgba(0, 0, 0, 0.25),
        0 0 0 1px rgba(0, 0, 0, 0.42),
        0 26px 60px rgba(0, 0, 0, 0.45),
        0 0 100px rgba(212, 175, 55, 0.04);
}

.imperial-panel::before {
    content: '';
    pointer-events: none;
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: radial-gradient(ellipse 100% 45% at 50% -5%, rgba(245, 220, 150, 0.09), transparent 55%);
    opacity: 1;
}

.imperial-corner-tl {
    border-color: rgba(229, 171, 16, 0.32) !important;
}
.imperial-corner-br {
    border-color: rgba(212, 175, 55, 0.22) !important;
}

/* Góc trang trí viền góc với highlight vàng nhạt */
.decor-corner {
    border-color: rgba(232, 200, 100, 0.28);
    box-shadow: 0 0 12px rgba(229, 171, 16, 0.08);
}

/* Tiêu đề nhỏ: parchment + vàng kim */
.epigraph-gold {
    color: rgba(246, 230, 180, 0.78);
    text-shadow: 0 0 18px rgba(212, 175, 55, 0.25);
}

.heading-imperial {
    font-family: var(--font-heading-viet);
    background: linear-gradient(178deg,
        #fff8e8 0%,
        #f5d887 42%,
        #d8a832 76%,
        #a67c1a 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.45))
        drop-shadow(0 0 24px rgba(212, 175, 55, 0.22));
}

.body-parchment {
    color: rgba(220, 205, 170, 0.88);
}

/* Tiêu đề khối (panel phải, modal): cùng dòng serif với "Lục Cung Âm – Dương" + Noto Serif */
.title-viet {
    font-family: var(--font-heading-viet);
}

/* Thơ / trích ngụ — Noto serif nghiêng: đủ dấu, vẫn cổ học */
.poem-viet {
    font-family: var(--font-heading-viet);
    font-style: italic;
}

/* Nhãn ô hỏi quẻ: màu tương phản cố định (không phụ Tailwind CDN) */
.form-field-label {
    color: #ede4cf;
}

/* Phần mô tả / label input */
.input-imperial-select {
    background: linear-gradient(180deg,
        rgba(20, 22, 32, 0.92),
        rgba(12, 14, 22, 0.95)) !important;
    border: 1px solid rgba(212, 175, 55, 0.42) !important;
    border-radius: 0.75rem;
    color-scheme: dark;
    accent-color: #e5ab10;
    color: rgba(246, 240, 225, 0.98);
}

/* Danh sách xổ của <select> — nhiều trình duyệt chỉ nhận màu đơn, vẫn rõ trên Win/macOS */
.input-imperial-select option,
.input-imperial-select optgroup {
    background-color: #282a38;
    color: #fdf6ea;
}

.input-imperial-select option:hover,
.input-imperial-select option:focus {
    background-color: #3d3528;
}

.input-imperial-select option:checked,
.input-imperial-select option:checked:hover {
    background-color: #4a4318;
    color: #fffef8;
}

.input-imperial-text {
    background: rgba(14, 16, 24, 0.88);
    border: 1px solid rgba(199, 138, 8, 0.32);
    color: rgba(246, 240, 225, 0.98);
    box-shadow: inset 0 0 24px rgba(0, 0, 0, 0.25),
        0 0 20px rgba(212, 175, 55, 0.04);
}

.input-imperial-text::placeholder {
    color: rgba(206, 196, 170, 0.55);
}

/* Tiêu đề phụ (tháng / ngày / giờ) — luôn rõ */
.form-metadata-label {
    color: #c9bba0;
}

/* Ô hiển thị “câu hỏi” sau khi gieo — nền phẳng, chữ sáng */
.result-question-chip {
    background: rgba(14, 16, 24, 0.88);
    color: rgba(236, 228, 205, 0.95);
    border: 1px solid rgba(212, 175, 55, 0.26);
    border-left-width: 4px;
    border-left-color: rgba(229, 171, 16, 0.88);
}

.blurb-imperial {
    background: linear-gradient(135deg,
        rgba(30, 40, 62, 0.35),
        rgba(26, 30, 40, 0.55)),
        rgba(212, 175, 55, 0.04);
    border: 1px solid rgba(199, 138, 8, 0.2);
}

.sync-strip {
    background: linear-gradient(90deg,
        rgba(212, 175, 55, 0.08),
        rgba(94, 120, 180, 0.06),
        rgba(212, 175, 55, 0.06));
    border-color: rgba(184, 140, 50, 0.22);
}

.btn-imperial-main {
    background: linear-gradient(95deg,
        #daa520,
        #c78a08,
        #a36706,
        #8b5912);
    box-shadow: 0 4px 20px rgba(212, 175, 55, 0.32),
        inset 0 1px 0 rgba(255, 237, 192, 0.35),
        inset 0 -2px 0 rgba(0, 0, 0, 0.22);
}

.btn-imperial-main:hover {
    filter: brightness(1.06);
}

.btn-imperial-ghost {
    color: #f8ebd0;
    background: rgba(14, 16, 24, 0.82);
    border: 1px solid rgba(212, 175, 55, 0.45);
    box-shadow: inset 0 1px 0 rgba(255, 240, 200, 0.06);
}

.btn-imperial-ghost:hover {
    color: #fffdf5;
    background: rgba(212, 175, 55, 0.12);
    border-color: rgba(255, 224, 150, 0.55);
}

.btn-imperial-ghost i.fa-solid {
    color: #f2c54c;
}

/* Footer */
.imperial-footer {
    background: linear-gradient(180deg,
        rgba(16, 18, 28, 0.95),
        rgba(12, 12, 18, 1));
    border-top: 1px solid rgba(199, 138, 8, 0.2);
}

.imperial-modal {
    border: 1px solid rgba(212, 175, 55, 0.32);
    background: linear-gradient(165deg,
        rgba(42, 48, 64, 0.55) 0%,
        rgba(24, 26, 36, 0.97) 50%,
        rgba(26, 32, 48, 0.9) 100%);
    box-shadow:
        0 0 0 1px rgba(0, 0, 0, 0.35),
        0 30px 80px rgba(0, 0, 0, 0.55),
        0 0 70px rgba(212, 175, 55, 0.08);
}

@keyframes float {
    0% { transform: translateY(0px) rotate(0deg); opacity: 0.8; }
    50% { transform: translateY(-10px) rotate(2deg); opacity: 1; }
    100% { transform: translateY(0px) rotate(0deg); opacity: 0.8; }
}
.animate-float {
    animation: float 6s ease-in-out infinite;
}

@keyframes pulse-gold {
    0%, 100% { box-shadow: 0 0 0 0 rgba(229, 171, 16, 0.45); }
    50% { box-shadow: 0 0 28px 10px rgba(229, 171, 16, 0.2); }
}

.liu-cung-disk.pulse-active {
    animation: pulse-gold 2s ease-in-out infinite;
}

@keyframes spin-slow-reverse {
    from { transform: rotate(360deg); }
    to { transform: rotate(0deg); }
}
.animate-spin-slow-reverse {
    animation: spin-slow-reverse 26s linear infinite;
}

.liu-six-ring {
    isolation: isolate;
}

.liu-cung-marker {
    position: absolute;
    left: 50%;
    top: 50%;
    --ring-r: clamp(92px, 26.5vw, 126px);
    transform: translate(
        calc(-50% + cos(var(--gate-angle)) * var(--ring-r)),
        calc(-50% + sin(var(--gate-angle)) * var(--ring-r))
    );
    box-sizing: border-box;
}

/* Sáu cung: không dùng màu utility Tailwind (tránh JIT thiếu → chữ đen trùng nền) */
.liu-cung-disk {
    border: 2px solid rgba(224, 190, 80, 0.85);
    background: radial-gradient(ellipse 130% 120% at 30% 12%, rgb(72, 60, 88) 0%, rgb(34, 32, 48) 55%, rgb(18, 20, 32) 100%);
    box-shadow:
        inset 0 1px 1px rgba(255, 240, 200, 0.14),
        0 4px 16px rgba(0, 0, 0, 0.5),
        0 0 0 1px rgba(0, 0, 0, 0.35);
}

.liu-cung-disk:not(.is-lit) .liu-cung-name {
    font-family: var(--font-body-viet);
    color: #fff4d8;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.75);
}

.liu-cung-disk:not(.is-lit) .liu-cung-num {
    font-family: var(--font-heading-viet);
    color: #f5c942;
    text-shadow:
        0 0 8px rgba(229, 171, 16, 0.45),
        0 1px 2px rgba(0, 0, 0, 0.8);
}

.liu-cung-name {
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    font-size: 9px;
    line-height: 1.1;
}

@media (min-width: 640px) {
    .liu-cung-name {
        font-size: 10px;
    }
}

#gate-6 .liu-cung-name {
    font-size: 7.5px;
    letter-spacing: 0.04em;
}

@media (min-width: 640px) {
    #gate-6 .liu-cung-name {
        font-size: 8.5px;
    }
}

.liu-cung-disk.is-lit {
    border-color: rgba(255, 246, 220, 0.95);
    background: radial-gradient(ellipse 120% 115% at 45% 15%, rgb(251, 200, 80) 0%, rgb(196, 120, 32) 38%, rgb(58, 40, 16) 100%);
    box-shadow:
        inset 0 0 18px rgba(255, 255, 220, 0.35),
        0 0 26px rgba(229, 171, 16, 0.45),
        0 0 0 1px rgba(40, 28, 8, 0.5);
}

.liu-cung-disk.is-lit .liu-cung-name,
.liu-cung-disk.is-lit .liu-cung-num {
    color: #1f140a;
    text-shadow: 0 0 14px rgba(255, 250, 220, 0.55);
}

.gold-border-glow {
    border: 1px solid rgba(229, 171, 16, 0.35);
    box-shadow:
        0 0 20px rgba(229, 171, 16, 0.12),
        inset 0 1px 0 rgba(253, 237, 170, 0.05);
}

.gold-text-glow {
    text-shadow:
        0 0 10px rgba(229, 171, 16, 0.55),
        0 0 24px rgba(212, 175, 55, 0.2);
}

/* Thẻ kết quả rải rác: viền ấm thay chỉ xám */
.result-card-soft {
    background: linear-gradient(145deg, rgba(32, 36, 48, 0.6), rgba(18, 20, 28, 0.75));
    border: 1px solid rgba(199, 138, 8, 0.16);
}

/* Nhãn dòng trong panel kết quả (CDN thiếu text-gold-* → chữ trùng nền) */
.result-line-label {
    color: #ffecc8;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.55);
}

.result-line-label i.fa-solid {
    color: #f0c852;
}

.result-chip-badge {
    display: inline-block;
    font-size: 10px;
    line-height: 1.35;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 700;
    color: #fff0c8;
    background: rgba(36, 32, 20, 0.75);
    border: 1px solid rgba(212, 175, 55, 0.45);
    border-radius: 9999px;
    padding: 0.35rem 0.85rem;
    box-shadow: inset 0 1px 0 rgba(255, 240, 200, 0.1);
}

.result-question-lead {
    color: #f2d074;
    font-weight: 700;
}

.action-link-gold {
    color: #f0cf6a;
    font-weight: 600;
}

.action-link-gold:hover {
    color: #fff3c4;
}

.panel-accent-heading {
    color: #fcd87a;
    font-weight: 700;
}

.panel-accent-heading i.fa-solid {
    color: #f5c942;
}

.inline-accent-gold {
    color: #fae5a8;
    font-weight: 600;
}

.modal-title-accent {
    color: #f5dd9a;
    text-shadow: 0 0 16px rgba(212, 175, 55, 0.22);
}

.modal-close-btn {
    color: #b8ae9a;
}

.modal-close-btn:hover {
    color: #f5d78a;
}

.result-llm-foot {
    color: rgba(188, 178, 158, 0.92) !important;
}

.loader-yin-symbol {
    color: #f0cf6a;
    filter: drop-shadow(0 0 14px rgba(229, 171, 16, 0.42));
}

.history-que-name {
    color: #fce8a8;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
}

.history-que-footer {
    color: #e8bc6a;
}

.poem-scroll {
    background: linear-gradient(175deg,
        rgba(24, 22, 32, 0.95),
        rgba(36, 32, 24, 0.35)),
        radial-gradient(ellipse at top, rgba(212, 175, 55, 0.07), transparent 60%);
    border: 1px solid rgba(199, 138, 8, 0.22);
    color: rgba(254, 245, 220, 0.95);
}

.poem-scroll .fa-quote-left,
.poem-scroll .fa-quote-right {
    color: rgba(229, 188, 96, 0.42) !important;
}

@keyframes spin-slow {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
.animate-spin-slow {
    animation: spin-slow 20s linear infinite;
}

/* --- Tab Lục Nhâm / Xâm --- */
.mode-tab {
    color: rgba(212, 205, 182, 0.88);
}
.mode-tab:hover {
    color: #fff6e0;
    background: rgba(212, 175, 55, 0.08);
}
.mode-tab-active {
    color: #1a1206 !important;
    background: linear-gradient(175deg, var(--gold-rich) 0%, var(--gold-soft) 52%, #b8860b 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 250, 230, 0.45),
        0 2px 14px rgba(212, 175, 55, 0.25);
}

/* Bát quái trang trí (conic — 8 vạch) */
.cham-pa-kua-ring {
    background: radial-gradient(circle at 50% 50%, rgba(40, 36, 28, 0.5) 0%, #0a090d 72%);
}

.cham-pa-kua-conic {
    background: conic-gradient(
        from -22.5deg,
        rgba(232, 197, 71, 0.14) 0deg,
        rgba(58, 46, 32, 0.55) 22.5deg,
        rgba(232, 197, 71, 0.1) 45deg,
        rgba(52, 48, 62, 0.5) 67.5deg,
        rgba(232, 197, 71, 0.12) 90deg,
        rgba(58, 46, 32, 0.52) 112.5deg,
        rgba(232, 197, 71, 0.1) 135deg,
        rgba(52, 48, 62, 0.48) 157.5deg,
        rgba(232, 197, 71, 0.11) 180deg,
        rgba(58, 46, 32, 0.5) 202.5deg,
        rgba(232, 197, 71, 0.1) 225deg,
        rgba(52, 48, 62, 0.48) 247.5deg,
        rgba(232, 197, 71, 0.12) 270deg,
        rgba(58, 46, 32, 0.52) 292.5deg,
        rgba(232, 197, 71, 0.1) 315deg,
        rgba(52, 48, 62, 0.46) 337.5deg,
        rgba(232, 197, 71, 0.14) 360deg
    );
}

/* Ngũ hành nhãn nhỏ */
.wuxing-node {
    border: 1px solid rgba(212, 175, 55, 0.35);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}
.wuxing-kim { background: linear-gradient(160deg, #e8eaf0 0%, #9096a8 88%); color: #1e2028; border-color: rgba(255, 255, 255, 0.38); }
.wuxing-moc { background: linear-gradient(165deg, #1e4d3a 0%, #153228 94%); color: #c8ebe0; }
.wuxing-thuy { background: linear-gradient(165deg, #1a3f5f 0%, #0f2940 94%); color: #d2eafd; }
.wuxing-hoa { background: linear-gradient(165deg, #c23b2a 0%, #681a13 94%); color: #ffeae6; }
.wuxing-tho { background: linear-gradient(165deg, #6b5838 0%, #352a18 94%); color: #f6e9d2; }

/* Ống thần trúc — lắc */
@keyframes cham-tube-shake {
    0%, 100% { transform: translateY(0) rotate(-1deg); }
    35% { transform: translateY(6px) rotate(4deg); }
    68% { transform: translateY(-4px) rotate(-3deg); }
}
.cham-tube-animate {
    animation: cham-tube-shake 2.8s ease-in-out infinite;
    transform-origin: 50% 40%;
}

.rotate-shake-inline {
    animation: cham-tube-shake 3s ease-in-out infinite;
    display: inline-block;
}

/* Màu nhãn lá (theo luck) */
.cham-luck-daicat {
    background: linear-gradient(90deg, #14532d, #047857);
    color: #ecfdf5;
    border: 1px solid rgba(52, 211, 153, 0.45);
}
.cham-luck-tieucat {
    background: linear-gradient(90deg, #134e4a, #115e59);
    color: #ccfbf1;
    border: 1px solid rgba(45, 212, 191, 0.35);
}
.cham-luck-binh {
    background: linear-gradient(90deg, #713f12, #92400e);
    color: #fffbeb;
    border: 1px solid rgba(251, 191, 36, 0.4);
}
.cham-luck-nhe {
    background: linear-gradient(90deg, #7c2d12, #9a3412);
    color: #fff7ed;
    border: 1px solid rgba(251, 146, 60, 0.4);
}
.cham-luck-daihung {
    background: linear-gradient(90deg, #7f1d1d, #991b1b);
    color: #fef2f2;
    border: 1px solid rgba(248, 113, 113, 0.45);
}
/* Cột kết quả xâm: không cắt nội dung dài (`.imperial-panel` mặc định `overflow:hidden`) */
.imperial-panel.cham-result-column {
    overflow-x: clip;
    overflow-y: visible;
}

.imperial-panel.cham-form-panel {
    overflow-x: clip;
    overflow-y: visible;
}

.cham-result-panel {
    min-height: 0;
}

.cham-llm-block .cham-llm-prose {
    overflow-wrap: anywhere;
    word-break: break-word;
}

.cham-result-panel > :last-child {
    margin-bottom: 0;
}
