/* --- FONTS --- */
h1, h2, h3 {
  font-family: 'Playfair Display', serif;
  font-weight: 600; 
}

body, p, span, button, label, input, select, textarea {
  font-family: 'Open Sans', sans-serif;
  font-weight: 400; 
}

#app{
    margin-top: 15px;
}

/* --- THEME & COLOR DEFINITIONS --- */
:root {
  --font-sans: 'Open Sans', sans-serif;
  --font-serif: 'Playfair Display', serif;
  --text-color: #E5E7EB;
  --subtle-text: #9CA3AF;
  --bg-color: #111827;
  --card-bg: #1F2937;
  --border-color: #374151;
  --primary-accent: #c19f09e0;
  --input-bg: rgba(255, 255, 255, 0.05);
  --dynamic-color: transparent; /* Fallback */
}

html.light {
  --text-color: #1F2937;
  --subtle-text: #4B5563;
  --bg-color: #fdf6e3; /* Parchment bg */
  --card-bg: #eee8d5; /* Parchment card */
  --border-color: #93a1a1;
  --primary-accent: #cb4b16; /* Solarized Orange */
  --input-bg: rgba(0, 0, 0, 0.03);
}

/* --- BASE STYLES --- */
body {
  font-family: var(--font-sans);
  background-color: var(--bg-color);
  color: var(--text-color);
  transition: background-color 0.3s, color 0.3s;
  /* FOUC fix */
  opacity: 0;
  transition: opacity 0.5s ease-in-out;
}

.card {
  background-color: var(--card-bg);
  border: 1px solid var(--border-color);
  transition: background-color 0.3s, border-color 0.3s;
}

/* --- DYNAMIC COLOR STYLES --- */
.reading-result-card {
    background-color: var(--dynamic-color);
    border-left: 4px solid var(--dynamic-color);
    border-color: var(--dynamic-color);
}
.reading-result-card h3 {
    color: white;
    text-shadow: 1px 1px 10px rgba(0,0,0,0.3);
    padding: 10px;
    padding-bottom: 0px;
}
#oracle-interpretation-text,#interpretation-text {
  margin-left: -4px;
}

/* --- UI COMPONENTS --- */
.oracle-label {
    border: 2px solid var(--border-color);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 140px;
}
.oracle-input:checked + .oracle-label {
    border-color: var(--primary-accent);
    box-shadow: 0 0 10px var(--primary-accent);
}

.hexagram-line {
  height: 10px;
  background: var(--text-color);
  margin: 8px 0;
  border-radius: 2px;
}
.hexagram-line.yin {
  background: transparent;
  display: flex;
  justify-content: space-between;
}
.hexagram-line.yin div {
  width: 45%;
  height: 100%;
  background: var(--text-color);
  border-radius: 2px;
}

.spinner {
    width: 16px; height: 16px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}
@keyframes spin {
  to { transform: rotate(360deg); }
}

#interpretation-nav {
    justify-content: center;
}

.interp-nav-btn {
    border: 1px solid var(--border-color);
    opacity: 0;
    transform: translateY(10px);
    transition: all 0.3s ease-out;
}
.interp-nav-btn.visible {
    opacity: 1;
    transform: translateY(0);
}
.interp-nav-btn.active, .interp-nav-btn:hover {
    background-color: var(--primary-accent);
    color: white;
    border-color: var(--primary-accent);
}

.fade-in-up {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}
.fade-in-up.visible {
    opacity: 1;
    transform: translateY(0);
}

/* --- NEW & UPDATED STYLES --- */
/* Readings List Actions */
.reading-item-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    opacity: 1;
    transition: opacity 0.2s ease-in-out;
}
.reading-item:hover .reading-item-actions {
    opacity: 1;
}
.action-btn {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.25rem;
    color: var(--subtle-text);
    font-size: 1rem;
    line-height: 1;
}
.action-btn:hover {
    color: var(--text-color);
}
.delete-reading-btn:hover {
    color: #ef4444;
}

/* Oracle Gallery Info Button */
.oracle-info-btn {
    position: absolute;
    top: 0.25rem;
    left: 0.25rem;
    background-color: rgba(0,0,0,0.5);
    color: white;
    border: 1px solid white;
    border-radius: 50%;
    width: 20px;
    height: 20px;
    font-size: 12px;
    font-weight: bold;
    line-height: 18px;
    cursor: pointer;
}

/* Onboarding */
.onboarding-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: var(--border-color);
    transition: background-color 0.3s;
}
.onboarding-dot.active {
    background-color: var(--primary-accent);
}

/* Pro Badge */
.pro-badge {
    background-color: #b58900;
    color: white;
    font-size: 0.75rem;
    font-weight: bold;
    padding: 0.25rem 0.5rem;
    border-radius: 9999px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}


/* --- OVERRIDES & UTILITIES --- */
#readings-sidebar, #settings-modal .card, #share-modal .card, #oracle-detail-modal .card, #first-ai-modal .card {
    background-color: var(--bg-color);
}
textarea, input[type="text"], input[type="search"], select {
    background-color: var(--input-bg);
    border-color: var(--border-color);
    color: var(--text-color);
}
select:disabled {
    opacity: 0.7;
    background-color: rgba(128, 128, 128, 0.1);
}




/* --- OVERRIDES & UTILITIES --- */
#readings-sidebar, #settings-modal .card, #share-modal .card, #oracle-detail-modal .card, #first-ai-modal .card {
    background-color: var(--bg-color);
}
textarea, input[type="text"], input[type="search"], select {
    background-color: var(--input-bg);
    border-color: var(--border-color);
    color: var(--text-color);
}
select:disabled {
    opacity: 0.7;
    background-color: rgba(128, 128, 128, 0.1);
}
