/* ============================================
   WORLD ENTRIES — NPC, LOCATION, FACTION
   Obsidian Snippet + Publish Compatible
   Supports Light + Dark themes

   INSTALL:
   - Local (Obsidian app): .obsidian/snippets/world-entries.css
   - Published site: copy into publish.css in vault root
   ============================================ */


/* ============================================
   SHARED — Fonts
   ============================================ */

.callout-content {
    font-family: "Georgia", "Garamond" !important;
    font-size: 1em !important;
    padding: 3px 15px !important;
}
.callout-title {
    font-family: "Copperplate", "Garamond", "Georgia" !important;
    font-size: 1.3em !important;
}


/* ============================================
   MONSTER CALLOUTS
   Accent: Crimson — rgb(110, 19, 25)
   ============================================ */

.callout[data-callout^="monster"] {
    --callout-color: 110, 19, 25;
    --callout-icon: lucide-skull;
    border: 3px solid rgb(110, 19, 25) !important;
    border-radius: 8px;
}
.callout[data-callout="monster-actions"] {
    --callout-color: 110, 19, 25;
    --callout-icon: lucide-hand-fist;
    border: 2px solid #555555 !important;
    border-radius: 8px;
}
.callout[data-callout="monster-passive"] {
    --callout-color: 110, 19, 25;
    --callout-icon: lucide-hand;
    border: 2px solid #555555 !important;
    border-radius: 8px;
}

/* Monster Stats Table — shared structure */
.monster .markdown-rendered table,
.monster .callout-content table {
    border-collapse: separate;
    border: 1px solid rgb(110, 19, 25);
    border-radius: 8px;
    border-spacing: 0px;
}
.monster .markdown-rendered table th,
.monster .callout-content table th {
    font-family: "Georgia", "Garamond" !important;
    font-weight: normal;
    text-shadow: none;
}
.monster .callout-content table th:first-of-type {
    border-top-left-radius: 6px;
    background-color: transparent !important;
}
.monster .callout-content table th:last-of-type {
    border-top-right-radius: 6px;
}
.monster .callout-content table tr:last-child td:first-child {
    border-bottom-left-radius: 5px;
}
.monster .callout-content table tr:last-child td:last-child {
    border-bottom-right-radius: 5px;
}

/* Monster — Light */
.theme-light .callout[data-callout^="monster"] {
    background-color: rgba(255, 249, 217, 0.5) !important;
    color: #420004;
}
.theme-light .callout[data-callout="monster-actions"] {
    background-color: rgba(2, 55, 9, 0.5) !important;
    color: #cccccc;
}
.theme-light .callout[data-callout="monster-passive"] {
    background-color: rgba(1, 26, 65, 0.5) !important;
    color: #cccccc;
}
.theme-light .monster .callout-content table {
    --table-row-alt-background: rgba(110, 19, 25, 0.5);
    --table-row-background-hover: #6e1319;
    color: #ffffff;
}
.theme-light .monster .callout-content table th {
    color: #ffffff;
}

/* Monster — Dark */
.theme-dark .callout[data-callout^="monster"] {
    background-color: rgba(110, 19, 25, 0.15) !important;
    color: #f0d0d0;
}
.theme-dark .callout[data-callout="monster-actions"] {
    background-color: rgba(2, 55, 9, 0.3) !important;
    color: #d0e8d0;
}
.theme-dark .callout[data-callout="monster-passive"] {
    background-color: rgba(1, 26, 65, 0.3) !important;
    color: #d0d8f0;
}
.theme-dark .monster .callout-content table {
    --table-row-alt-background: rgba(110, 19, 25, 0.35);
    --table-row-background-hover: rgba(110, 19, 25, 0.5);
    color: #f0d0d0;
}
.theme-dark .monster .callout-content table th {
    color: #f0d0d0;
}


/* ============================================
   NPC CALLOUTS
   Accent: Warm Amber — rgb(160, 100, 20)
   ============================================ */

.callout[data-callout^="npc"] {
    --callout-color: 160, 100, 20;
    --callout-icon: lucide-user-round;
    border: 3px solid rgb(160, 100, 20) !important;
    border-radius: 8px;
}
.callout[data-callout="npc-romours"] {
    --callout-color: 160, 100, 20;
    --callout-icon: lucide-message-circle;
    border: 2px solid rgb(160, 100, 20) !important;
    border-radius: 6px;
}
.callout[data-callout="npc-stats"] {
    --callout-color: 160, 100, 20;
    --callout-icon: lucide-sword;
    border: 2px solid rgb(160, 100, 20) !important;
    border-radius: 6px;
}
.callout[data-callout="npc-secrets"] {
    --callout-color: 160, 100, 20;
    --callout-icon: lucide-eye-off;
    border: 2px dashed rgb(160, 100, 20) !important;
    border-radius: 6px;
}

/* NPC Stats Table — shared structure */
.npc-stats .markdown-rendered table,
.npc-stats .callout-content table {
    border-collapse: separate;
    border: 1px solid rgb(160, 100, 20);
    border-radius: 8px;
    border-spacing: 0px;
}
.npc-stats .markdown-rendered table th,
.npc-stats .callout-content table th {
    font-family: "Georgia", "Garamond" !important;
    font-weight: normal;
    text-shadow: none;
}
.npc-stats .callout-content table th:first-of-type {
    border-top-left-radius: 6px;
    background-color: transparent !important;
}
.npc-stats .callout-content table th:last-of-type {
    border-top-right-radius: 6px;
}
.npc-stats .callout-content table tr:last-child td:first-child {
    border-bottom-left-radius: 5px;
}
.npc-stats .callout-content table tr:last-child td:last-child {
    border-bottom-right-radius: 5px;
}

/* NPC — Light */
.theme-light .callout[data-callout^="npc"] {
    background-color: rgba(255, 240, 200, 0.5) !important;
    color: #3d2200;
}
.theme-light .callout[data-callout="npc-romours"] {
    background-color: rgba(255, 245, 215, 0.4) !important;
    color: #3d2200;
}
.theme-light .callout[data-callout="npc-stats"] {
    background-color: rgba(255, 230, 175, 0.4) !important;
    color: #3d2200;
}
.theme-light .callout[data-callout="npc-secrets"] {
    background-color: rgba(255, 220, 160, 0.3) !important;
    color: #3d2200;
}
.theme-light .npc-stats .callout-content table {
    --table-row-alt-background: rgba(160, 100, 20, 0.5);
    --table-row-background-hover: rgb(160, 100, 20);
    color: #ffffff;
}
.theme-light .npc-stats .callout-content table th {
    color: #ffffff;
}

/* NPC — Dark */
.theme-dark .callout[data-callout^="npc"] {
    background-color: rgba(160, 100, 20, 0.12) !important;
    color: #f0dcc0;
}
.theme-dark .callout[data-callout="npc-romours"] {
    background-color: rgba(160, 100, 20, 0.08) !important;
    color: #f0dcc0;
}
.theme-dark .callout[data-callout="npc-stats"] {
    background-color: rgba(160, 100, 20, 0.10) !important;
    color: #f0dcc0;
}
.theme-dark .callout[data-callout="npc-secrets"] {
    background-color: rgba(160, 100, 20, 0.06) !important;
    color: #e0cca8;
}
.theme-dark .npc-stats .callout-content table {
    --table-row-alt-background: rgba(160, 100, 20, 0.3);
    --table-row-background-hover: rgba(160, 100, 20, 0.45);
    color: #f0dcc0;
}
.theme-dark .npc-stats .callout-content table th {
    color: #f0dcc0;
}


/* ============================================
   LOCATION CALLOUTS
   Accent: Earthy Green — rgb(75, 105, 55)
   ============================================ */

.callout[data-callout^="location"] {
    --callout-color: 75, 105, 55;
    --callout-icon: lucide-map-pin;
    border: 3px solid rgb(75, 105, 55) !important;
    border-radius: 8px;
}
.callout[data-callout="location-notable"] {
    --callout-color: 75, 105, 55;
    --callout-icon: lucide-star;
    border: 2px solid rgb(75, 105, 55) !important;
    border-radius: 6px;
}
.callout[data-callout="location-hooks"] {
    --callout-color: 75, 105, 55;
    --callout-icon: lucide-eye-off;
    border: 2px dashed rgb(75, 105, 55) !important;
    border-radius: 6px;
}

/* Location — Light */
.theme-light .callout[data-callout^="location"] {
    background-color: rgba(220, 235, 210, 0.5) !important;
    color: #1a2e10;
}
.theme-light .callout[data-callout="location-notable"] {
    background-color: rgba(225, 240, 215, 0.4) !important;
    color: #1a2e10;
}
.theme-light .callout[data-callout="location-hooks"] {
    background-color: rgba(190, 215, 175, 0.3) !important;
    color: #1a2e10;
}

/* Location — Dark */
.theme-dark .callout[data-callout^="location"] {
    background-color: rgba(75, 105, 55, 0.12) !important;
    color: #c8e0b8;
}
.theme-dark .callout[data-callout="location-notable"] {
    background-color: rgba(75, 105, 55, 0.08) !important;
    color: #c8e0b8;
}
.theme-dark .callout[data-callout="location-hooks"] {
    background-color: rgba(75, 105, 55, 0.06) !important;
    color: #b0c8a0;
}


/* ============================================
   FACTION CALLOUTS
   Accent: Deep Indigo — rgb(60, 45, 130)
   ============================================ */

.callout[data-callout^="faction"] {
    --callout-color: 60, 45, 130;
    --callout-icon: lucide-shield;
    border: 3px solid rgb(60, 45, 130) !important;
    border-radius: 8px;
}
.callout[data-callout="faction-members"] {
    --callout-color: 60, 45, 130;
    --callout-icon: lucide-users;
    border: 2px solid rgb(60, 45, 130) !important;
    border-radius: 6px;
}
.callout[data-callout="faction-relations"] {
    --callout-color: 60, 45, 130;
    --callout-icon: lucide-eye-off;
    border: 2px dashed rgb(60, 45, 130) !important;
    border-radius: 6px;
}

/* Faction — Light */
.theme-light .callout[data-callout^="faction"] {
    background-color: rgba(215, 210, 245, 0.5) !important;
    color: #1a1040;
}
.theme-light .callout[data-callout="faction-members"] {
    background-color: rgba(220, 215, 248, 0.4) !important;
    color: #1a1040;
}
.theme-light .callout[data-callout="faction-relations"] {
    background-color: rgba(185, 175, 230, 0.3) !important;
    color: #1a1040;
}

/* Faction — Dark */
.theme-dark .callout[data-callout^="faction"] {
    background-color: rgba(60, 45, 130, 0.15) !important;
    color: #d0c8f0;
}
.theme-dark .callout[data-callout="faction-members"] {
    background-color: rgba(60, 45, 130, 0.10) !important;
    color: #d0c8f0;
}
.theme-dark .callout[data-callout="faction-relations"] {
    background-color: rgba(60, 45, 130, 0.08) !important;
    color: #c0b8e0;
}


/* ============================================
   ACTIONS / PASSIVE (shared sub-callouts)
   Used inside both monster and NPC stat blocks
   ============================================ */

.callout[data-callout^="actions"] {
    --callout-icon: lucide-hand-fist;
    border: 2px solid #555555 !important;
    border-radius: 8px;
}
.callout[data-callout^="passive"] {
    --callout-icon: lucide-hand;
    border: 2px solid #555555 !important;
    border-radius: 8px;
}

/* Actions/Passive — Light */
.theme-light .callout[data-callout^="actions"] {
    background-color: rgba(2, 55, 9, 0.5) !important;
    color: #cccccc;
}
.theme-light .callout[data-callout^="passive"] {
    background-color: rgba(1, 26, 65, 0.5) !important;
    color: #cccccc;
}

/* Actions/Passive — Dark */
.theme-dark .callout[data-callout^="actions"] {
    background-color: rgba(2, 55, 9, 0.25) !important;
    color: #d0e8d0;
}
.theme-dark .callout[data-callout^="passive"] {
    background-color: rgba(1, 26, 65, 0.25) !important;
    color: #d0d8f0;
}
