/* styles.css - Animal Crossing RPG Theme */

/* Import pixel fonts */
@import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&family=VT323&display=swap');

/* General styles */
:root {
    --primary-color: #4a90e2;
    --secondary-color: #2c3e50;
    --success-color: #2ecc71;
    --danger-color: #e74c3c;
    --warning-color: #f1c40f;
    --info-color: #3498db;
    --light-color: #ecf0f1;
    --dark-color: #2c3e50;
    --border-radius: 4px;
    --box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    line-height: 1.6;
    margin: 0;
    padding: 0;
    background-color: #f5f6fa;
    min-height: 100vh;
}

h1 {
    font-family: 'Press Start 2P', 'Courier New', Courier, monospace;
    font-size: 1.5em;
    margin-bottom: 30px;
    /* Color inherited from global CSS */
}

header {
    background-color: #AEEEEE; /* Pale Turquoise - like a clear sky */
    color: #2F4F4F; /* Dark Slate Gray - for contrast */
    padding: 20px 0;
    text-align: center;
    border-bottom: 3px solid #87CEEB; /* Sky Blue border */
    text-shadow: 1px 1px #E0FFFF; /* Light Cyan shadow */
}

header h1 {
    font-family: 'Press Start 2P', 'Courier New', Courier, monospace; /* Keep Press Start 2P for main title */
    font-size: 2.0em; /* Adjusted for Press Start 2P */
    /* Color inherited from global CSS */
    margin: 0;
}

/* General link styling */
a {
    color: #3CB371; /* Medium Sea Green */
    text-decoration: none; /* Remove underline by default */
    transition: color 0.2s;
}

a:hover {
    color: #2E8B57; /* Darker Sea Green on hover */
    text-decoration: underline; /* Add underline on hover for clarity */
}

nav {
    background-color: #B0E0E6; /* Powder Blue - lighter sky */
    padding: 10px 0;
    text-align: center;
    border-bottom: 2px solid #87CEEB; /* Sky Blue */
    font-family: 'Press Start 2P', 'Courier New', Courier, monospace; /* Keep Press Start 2P for nav for thematic consistency */
    font-size: 0.85em; /* Adjust nav font size for Press Start 2P */
}

nav a {
    color: #2F4F4F; /* Dark Slate Gray - Specific for nav links */
    margin: 0 15px;
    text-decoration: none;
    padding: 6px 10px;
    border: 1px solid transparent;
    border-radius: 4px; 
    transition: background-color 0.2s, color 0.2s;
}

nav a:hover, nav a.active {
    color: #FFFFFF; 
    background-color: #778899; 
    border: 1px solid #ADD8E6; 
    text-decoration: none; 
}

/* Layout */
.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
}

/* Tabs */
.tabs {
    display: flex;
    background-color: white;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    margin-bottom: 20px;
}

.tab {
    padding: 15px 25px;
    cursor: pointer;
    border: none;
    background: none;
    font-size: 16px;
    color: var(--secondary-color);
    transition: all 0.3s ease;
}

.tab:hover {
    background-color: var(--light-color);
}

.tab.active {
    background-color: var(--primary-color);
    color: white;
}

/* Cards */
.card {
    background-color: white;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    padding: 20px;
    margin-bottom: 20px;
}

/* Item cards */
.item-card {
    display: grid;
    grid-template-columns: 100px 1fr auto;
    gap: 20px;
    align-items: center;
    padding: 15px;
    background-color: white;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    margin-bottom: 15px;
}

.item-image img {
    width: 100px;
    height: 100px;
    object-fit: cover;
    border-radius: var(--border-radius);
}

.item-details h3 {
    margin: 0 0 10px 0;
    color: var(--secondary-color);
}

.item-type, .item-rarity {
    display: inline-block;
    padding: 4px 8px;
    border-radius: var(--border-radius);
    font-size: 14px;
    margin-right: 10px;
}

.item-type {
    background-color: var(--info-color);
    color: white;
}

.item-rarity {
    background-color: var(--warning-color);
    color: var(--dark-color);
}

/* Challenge cards */
.challenge-card {
    background-color: white;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    padding: 20px;
    margin-bottom: 15px;
}

.challenge-card h3 {
    margin: 0 0 10px 0;
    color: var(--secondary-color);
}

.challenge-difficulty {
    display: inline-block;
    padding: 4px 8px;
    border-radius: var(--border-radius);
    font-size: 14px;
    margin-bottom: 10px;
}

.challenge-reward {
    color: var(--success-color);
    font-weight: bold;
    margin-bottom: 10px;
}

/* Skill tree cards */
.skill-tree-card {
    background-color: white;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    padding: 20px;
    margin-bottom: 15px;
    border-left: 4px solid var(--primary-color);
}

.skill-tree-card h3 {
    margin: 0 0 10px 0;
    color: var(--secondary-color);
}

/* Forms */
.form-group {
    margin-bottom: 20px;
}

.form-group label {
    display: block;
    margin-bottom: 5px;
    color: var(--secondary-color);
    font-weight: 500;
}

.form-control {
    width: 100%;
    padding: 10px;
    border: 1px solid #ddd;
    border-radius: var(--border-radius);
    font-size: 16px;
}

.form-control:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.2);
}

/* Buttons */
.btn {
    padding: 10px 20px;
    border: none;
    border-radius: var(--border-radius);
    font-size: 16px;
    cursor: pointer;
    transition: all 0.3s ease;
}

.btn-primary {
    background-color: var(--primary-color);
    color: white;
}

.btn-secondary {
    background-color: var(--secondary-color);
    color: white;
}

.btn-success {
    background-color: var(--success-color);
    color: white;
}

.btn-danger {
    background-color: var(--danger-color);
    color: white;
}

.btn:hover {
    opacity: 0.9;
    transform: translateY(-1px);
}

/* Notifications */
.notification {
    position: fixed;
    top: 20px;
    right: 20px;
    padding: 15px 25px;
    border-radius: var(--border-radius);
    color: white;
    font-weight: 500;
    z-index: 1000;
    animation: slideIn 0.3s ease;
}

.notification.success {
    background-color: var(--success-color);
}

.notification.error {
    background-color: var(--danger-color);
}

.notification.info {
    background-color: var(--info-color);
}

.notification.warning {
    background-color: var(--warning-color);
    color: var(--dark-color);
}

@keyframes slideIn {
    from {
        transform: translateX(100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

/* Actions */
.item-actions, .challenge-actions, .skill-tree-actions {
    display: flex;
    gap: 10px;
}

.btn-edit {
    background-color: var(--info-color);
    color: white;
}

.btn-delete {
    background-color: var(--danger-color);
    color: white;
}

/* Currency section */
.currency-config {
    background-color: white;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    padding: 20px;
    margin-bottom: 20px;
}

.user-card {
    background-color: white;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    padding: 15px;
    margin-bottom: 15px;
}

.user-balance {
    color: var(--success-color);
    font-weight: bold;
    margin: 10px 0;
}

.transaction-card {
    background-color: white;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    padding: 15px;
    margin-bottom: 10px;
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 20px;
    align-items: center;
}

.transaction-amount {
    font-weight: bold;
}

.transaction-amount.positive {
    color: var(--success-color);
}

.transaction-amount.negative {
    color: var(--danger-color);
}

/* Responsive design */
@media (max-width: 768px) {
    .item-card {
        grid-template-columns: 1fr;
        text-align: center;
    }
    
    .item-image {
        margin: 0 auto;
    }
    
    .item-actions {
        justify-content: center;
    }
    
    .transaction-card {
        grid-template-columns: 1fr;
        text-align: center;
    }
    
    .tabs {
        flex-wrap: wrap;
    }
    
    .tab {
        flex: 1 1 auto;
        text-align: center;
    }
}

/* Quest page additions */
.slayer-face{display:inline-block;width:20px;height:20px;border-radius:50%;overflow:hidden;border:1px solid #87CEEB;margin-right:4px}
.slayer-face img{width:100%;height:100%;object-fit:cover;display:block}
.floating-picker{position:fixed; right:16px; bottom:16px; z-index:9999}
.floating-picker .picker-body{display:none; background:#112; color:#def; border:2px solid #87CEEB; border-radius:8px; padding:8px; max-height:50vh; overflow:auto; min-width:200px}
.floating-picker .picker-item{padding:6px 8px; border-bottom:1px dashed #345; cursor:pointer}
.floating-picker .picker-item.current{background:#274;}

/* General headings will use VT323 by default due to body style */
h1, h2, h3, h4 {
    /* Color inherited from global CSS */
    text-shadow: 1px 1px #F0FFF0; 
}
/* If you want specific headings to use Press Start 2P: */
h2 { 
    font-family: 'Press Start 2P', 'Courier New', Courier, monospace;
    font-size: 1.5em; /* Adjusted for Press Start 2P */
    margin-bottom: 12px; border-bottom: 2px solid #B0E0E6; padding-bottom: 5px;
    /* Color inherited from global CSS */
}
h3 { 
    font-family: 'Press Start 2P', 'Courier New', Courier, monospace;
    font-size: 1.2em; /* Adjusted for Press Start 2P */
    margin-bottom: 10px; 
    /* Color inherited from global CSS */
} 
h4 { 
    font-family: 'Press Start 2P', 'Courier New', Courier, monospace;
    font-size: 1.0em; /* Adjusted for Press Start 2P */
    margin-bottom: 8px; 
    /* Color inherited from global CSS */
}


table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    margin-top: 20px;
    border: 2px solid #98FB98; 
    border-radius: 6px; 
    overflow: hidden;
    font-size: 0.95em; /* Make table text slightly smaller if using VT323 */
}

th, td {
    border: 1px solid #AFEEEE; 
    padding: 10px 12px;
    text-align: left;
}

th {
    background-color: #B0E0E6; 
    color: #2F4F4F; 
    font-family: 'Press Start 2P', 'Courier New', Courier, monospace; /* Keep headers in Press Start 2P */
    font-size: 0.9em; /* Adjust for Press Start 2P */
}

td {
    background-color: #F5FFFA; 
}
#activityLogTable tr:nth-child(even) td { /* Specific to activity log, keep if needed */
    background-color: #F0FFFF; 
}


button,
input[type="submit"],
input[type="button"] {
    font-family: 'Press Start 2P', 'Courier New', Courier, monospace; /* Keep Press Start 2P for buttons */
    padding: 10px 15px;
    background-color: var(--accent); 
    color: var(--primary); 
    border: 2px solid var(--secondary); 
    border-top-color: #FFFACD;  
    border-left-color: #FFFACD;
    cursor: pointer;
    margin-right: 6px;
    text-shadow: 1px 1px #F0E68C; 
    font-size: 0.85em; /* Adjust for Press Start 2P */
    border-radius: 5px; 
    transition: background-color 0.2s, border-color 0.2s, color 0.2s;
}

button:hover,
input[type="submit"]:hover,
input[type="button"]:hover {
    background-color: #FFEEAA; 
    border-color: #B8860B; 
    border-top-color: #FFFFE0;
    border-left-color: #FFFFE0;
    color: #A0522D; 
}
button:active,
input[type="submit"]:active,
input[type="button"]:active {
    border-top-color: #DAA520;  
    border-left-color: #DAA520;
    border-bottom-color: #FFFACD; 
    border-right-color: #FFFACD;
    background-color: #F0E68C; 
}


button.delete {
    background-color: #FF6347; 
    color: #FFFFFF; 
    border-color: #CD5C5C; 
    border-top-color: #FFA07A; 
    border-left-color: #FFA07A;
    text-shadow: 1px 1px #B22222; 
}
button.delete:hover {
    background-color: #FF7F50; 
    border-color: #B22222; 
    border-top-color: #FFDAB9; 
    border-left-color: #FFDAB9;
}

form div {
    margin-bottom: 18px;
}

form label {
    display: block;
    margin-bottom: 6px;
    color: #3CB371; 
    font-size: 1em; /* Adjusted for VT323 body */
}

form input[type="text"],
form input[type="number"],
form input[type="email"],
form input[type="password"],
form textarea,
select {
    font-family: 'VT323', 'Courier New', Courier, monospace; /* Use VT323 for form inputs */
    width: calc(100% - 22px);
    padding: 10px;
    border: 2px solid #ADD8E6; 
    border-top-color: #E0FFFF; 
    border-left-color: #E0FFFF;
    background-color: #F0FFFF; 
    color: #556B2F; 
    box-sizing: border-box;
    font-size: 1.1em; /* VT323 can be slightly larger in inputs */
    border-radius: 5px; 
}
form input[type="checkbox"] {
    width: auto;
    vertical-align: middle;
    margin-right: 8px;
    transform: scale(1.3);
    margin-top: -2px;
    accent-color: #3CB371; 
}


.tab-content {
    display: none;
    padding: 20px;
    border: 2px solid #90EE90; 
    background-color: #FFFFFF; 
    border-top: none;
    border-radius: 0 0 6px 6px; 
}
.tab-content.active { display: block; }

/* Challenge Card Specifics */
.challenge-card.completed {
    background-color: #E0FFFF; 
    border-left: 5px solid #7FFFD4; 
}
.xp-details span, .skill-tree-info span {
    display: inline-block;
    margin-right: 10px;
    font-size: 0.95em; /* VT323 will be clearer */
    color: #2F4F4F; 
    background-color: #B0E0E6; 
    padding: 4px 8px;
    border: 1px solid #87CEEB; 
    border-radius: 4px; 
    margin-bottom: 5px;
}
.skill-tree-info {
    margin-bottom: 12px;
    font-size: 1.05em; /* VT323 */
}
.skill-tree-info strong {
    color: #556B2F; 
}


/* Message Styles */
#messages, #loginError, #userMessages { /* General message containers */
    padding: 12px 15px;
    margin-top: 15px;
    margin-bottom: 20px;
    border: 2px solid;
    text-align: center;
    border-radius: 5px; 
    font-size: 1.05em; /* VT323 for messages */
}
.success-message, #messages.success-message {
    color: #2E8B57; 
    background-color: #F0FFF0; 
    border-color: #98FB98; 
}
.error-message, #loginError.error-message, #messages.error-message, #userMessages.error-message { /* Ensure loginError gets styled if class is applied */
    color: #DC143C; 
    background-color: #FFF0F5; 
    border-color: #FFB6C1; 
}
#loginError:empty, #userMessages:empty { 
    display: none;
}


/* Management Sections */
.management-section {
    border-bottom: 2px solid #B0E0E6; 
    padding-bottom: 15px;
    margin-bottom: 20px;
}
/* .management-section h3 and h4 will use Press Start 2P from general h3/h4 styles */

/* Challenge Attribute Dynamic Rows */
#challengeAttributesContainer {
    border: 2px solid #B0E0E6; 
    background-color: #F0FFFF; 
    padding: 10px;
    border-radius: 5px; 
}
.challenge-attribute-entry {
    border-bottom: 1px solid #AFEEEE; 
    padding: 8px 0;
}
.challenge-attribute-entry:last-child {
    border-bottom: none;
}
.challenge-attribute-entry label {
    min-width: 130px; 
    color: #556B2F; 
    font-size: 1em; /* VT323 */
}
.challenge-attribute-entry button.remove-attr-btn { /* Will use Press Start 2P from general button style */
    background-color: #FF7F50; 
    color: #A0522D; 
    border-color: #FF6347; 
    border-top-color: #FFA07A; 
    border-left-color: #FFA07A;
    padding: 6px 10px;
    font-size: 0.75em; /* Adjust for Press Start 2P */
    text-shadow: 1px 1px #FFDAB9; 
}
.challenge-attribute-entry button.remove-attr-btn:hover {
    background-color: #FFA07A; 
    color: var(--primary); 
}

#addChallengeAttributeBtn { 
    /* background-color: #FFD700; */ 
}

/* Skill Tree Checkboxes */
#challengeSkillTreeCheckboxes {
    border: 2px solid #B0E0E6; 
    background-color: #F0FFFF; 
    padding: 12px;
    margin-bottom: 18px;
    max-height: 130px;
    overflow-y: auto;
    border-radius: 5px; 
}
#challengeSkillTreeCheckboxes div { margin-bottom: 4px; }
#challengeSkillTreeCheckboxes label { font-weight: normal; margin-left: 6px; color: #556B2F; font-size: 1.05em; /* VT323 */ }
#challengeSkillTreeCheckboxes input[type="checkbox"] { margin-right: 6px; vertical-align: middle; transform: scale(1.2); accent-color: #66CDAA;  }

/* Specifics from login_challenges.html for Animal Crossing Theme */
#bountyBoardArea { /* Updated Bounty Board Background */
    background-image: 
        linear-gradient(45deg, rgba(161, 136, 127, 0.3) 25%, transparent 25%, transparent 75%, rgba(161, 136, 127, 0.3) 75%, rgba(161, 136, 127, 0.3)), 
        linear-gradient(-45deg, rgba(161, 136, 127, 0.3) 25%, transparent 25%, transparent 75%, rgba(161, 136, 127, 0.3) 75%, rgba(161, 136, 127, 0.3));
    background-size: 6px 6px; /* Significantly smaller diamond pattern */
    background-color: #D2B48C; /* Base Tan/Light Wood color */
    padding: 20px; 
    border-radius: 8px;
    border: 3px solid #8B5A2B; /* Darker wood border */
    height: fit-content; 
    box-shadow: inset 0 0 10px rgba(0,0,0,0.3); 
}
#bountyBoardArea h3 { /* Will use Press Start 2P */
    color: #F0E6D2; 
    text-shadow: 1px 1px #5D4037; 
    text-align: center;
    margin-top: 0;
    border-bottom: 2px dashed #F0E6D2; 
    padding-bottom: 10px;
    font-size: 1.1em; /* Adjusted for Press Start 2P */
}
.bounty-item {
    background-color: #FAF0E0; 
    border: 1px solid #D2B48C; 
    padding: 10px;
    margin-bottom: 10px;
    border-radius: 5px;
    font-size: 1em; /* VT323 from body */
    color: #5D4037; 
}
.bounty-item h4 { /* Will use Press Start 2P */
    font-size: 0.9em; /* Adjusted for Press Start 2P */
    margin: 0 0 5px 0;
    /* Color inherited from global CSS */
}
.bounty-item button { /* Will use Press Start 2P from general button style */
    font-size: 0.7em; /* Adjust for Press Start 2P */
    padding: 4px 8px;
    margin-top: 5px;
}

#challengeFilters {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    margin-bottom: 20px;
    padding: 15px;
    background-color: #F0FFFF; 
    border: 1px solid #B0E0E6; 
    border-radius: 6px;
}
#challengeFilters input[type="search"],
#challengeFilters select {
    padding: 8px 10px;
    border-radius: 5px;
    border: 2px solid #ADD8E6; 
    background-color: #FFFFFF;
    color: #556B2F; 
    font-family: 'VT323', 'Courier New', Courier, monospace; 
    font-size: 1em; 
}
#challengeFilters input[type="search"] {
    flex-grow: 1; 
}

.challenge-card-summary h3 { /* Will use Press Start 2P */
    margin-bottom: 0; 
    font-size: 0.8em; /* Challenge titles made even smaller */
    line-height: 1.3;
}
.challenge-card.expanded {
    background-color: #E0FFFF; 
}
.pin-button { /* Will use Press Start 2P from general button style */
    margin-left: 10px;
    font-size: 0.7em !important; 
    padding: 4px 8px !important;
}
.challenge-card h3 span.repeatable-indicator { /* (R) span */
    font-family: 'VT323', 'Courier New', Courier, monospace; 
    font-size: 0.9em; 
    color: #66CDAA;
    font-weight: normal;
}
#challengesList:empty::after {
    content: "No challenges match your current filters.";
    display: block;
    text-align: center;
    padding: 20px;
    color: #556B2F;
    font-size: 1.05em; /* VT323 */
}
#bountyBoardList:empty::after, #completedChallengesList:empty::after {
    content: "Nothing here yet!"; /* Generic empty message */
    display: block;
    text-align: center;
    padding: 10px;
    font-size: 1em; /* VT323 from body */
    color: #778899; 
}
#welcomeMessage { /* Made welcome message bigger */
    font-family: 'Press Start 2P', 'Courier New', Courier, monospace; /* Use pixel font for welcome */
    font-size: 1.5em; /* Increased size */
    margin-bottom: 20px; 
    color: #2E8B57;
    text-align: center;
}

/* Residence Thumbnails (Village) */
.residence-thumbnail {
    width: 320px;
    height: 200px;
    margin: 10px;
    display: inline-block;
    position: relative;
    border-radius: 18px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.18);
    overflow: hidden;
    cursor: pointer;
    transition: transform 0.18s cubic-bezier(.4,2,.6,1), box-shadow 0.18s;
    border: 3px solid transparent;
}
.residence-thumbnail:hover {
    transform: scale(1.045) translateY(-4px);
    box-shadow: 0 8px 32px rgba(52,152,219,0.25);
    border-color: #3498db;
}
.residence-thumbnail::after {
    content: '';
    display: block;
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg,rgba(52,152,219,0.10) 0%,rgba(255,255,255,0.04) 100%);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.18s;
    border-radius: 18px;
    z-index: 3;
}
.residence-thumbnail:hover::after {
    opacity: 1;
}

.residence-thumbnail-house-name {
    font-family: 'Press Start 2P', 'VT323', 'Courier New', Courier, monospace;
    font-size: 0.85em;
    font-weight: bold;
    color: #fffbe6;
    background: linear-gradient(90deg, #e6b800 0%, #fffbe6 60%, #e6b800 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    text-fill-color: transparent;
    filter: drop-shadow(2px 2px 0 #3a2200) drop-shadow(-2px -2px 0 #3a2200);
    padding: 5px 12px 7px 12px;
    border-radius: 10px;
    background-color: rgba(30, 20, 0, 0.72);
    box-shadow: 0 2px 8px rgba(0,0,0,0.25);
    position: absolute;
    left: 50%;
    bottom: 12px;
    top: auto;
    transform: translateX(-50%);
    z-index: 4;
    letter-spacing: 1px;
    text-align: center;
    border: 2px solid #e6b800;
    max-width: 90%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.residence-thumbnail {
    margin: 10px !important;
    width: 320px;
    height: 200px;
}

@media (max-width: 900px) {
    .residence-thumbnail {
        width: 220px;
        height: 140px;
    }
    .residence-thumbnail-house-name {
        font-size: 0.75em;
        padding: 4px 8px 6px 8px;
    }
}

@media (max-width: 600px) {
    .residence-thumbnail {
        width: 98vw;
        height: 28vw;
        min-height: 90px;
        min-width: 160px;
        max-width: 99vw;
    }
    .residence-thumbnail-house-name {
        font-size: 0.7em;
        padding: 3px 6px 5px 6px;
        max-width: 96%;
    }
}

/* --- Retro styled buttons for Slay / Undo / general actions --- */
.action-button, .slay-button, .undo-slay-button {
    font-family: 'Press Start 2P', 'Courier New', Courier, monospace;
    border: 2px solid #DAA520;
    cursor: pointer;
    margin-right: 6px;
    text-shadow: 1px 1px #F0E68C;
    border-radius: 5px;
    transition: background-color 0.2s, border-color 0.2s, color 0.2s;
    font-size: 0.7em;
    padding: 4px 8px;
    margin-top: 5px;
    background-color: rgb(242, 229, 132);
    border-bottom-color: rgb(248, 236, 180);
    border-left-color: rgb(223, 177, 57);
    border-right-color: rgb(248, 236, 180);
    color: rgb(159, 81, 43);
    border-top-color: rgb(223, 177, 57);
}
.action-button:hover, .slay-button:hover, .undo-slay-button:hover {
    background-color: #FFEEAA;
    border-color: #B8860B;
    color: #A0522D;
}
/* Pin button: same style but slightly smaller */
.pin-button {
    font-family: 'Press Start 2P', 'Courier New', Courier, monospace;
    font-size: 0.6em !important;
    padding: 3px 6px !important;
    border: 2px solid #DAA520;
    background-color: rgb(242, 229, 132);
    color: rgb(159, 81, 43);
    text-shadow: 1px 1px #F0E68C;
    border-radius: 5px;
    transition: background-color 0.2s, border-color 0.2s, color 0.2s;
}
.pin-button:hover {
    background-color: #FFEEAA;
    border-color: #B8860B;
    color: #A0522D;
}

/* --- Retro Orange XP Bars (global) --- */
.xp-bar-container {
    position: relative;
    background: #1E1715;
    border: 2px solid #C04E26;
    border-radius: 4px;
    height: 48px; /* doubled height for better text fit */
    margin-top: 8px;
    overflow: hidden;
}
.xp-bar-fill {
    height: 100%;
    background: #FF8C00;
    border-radius: 2px;
    transition: width 0.3s ease;
}
.xp-bar-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: clamp(0.7em, 2vw, 1em); /* responsive font size */
    font-family: 'Press Start 2P', cursive;
    color: #F2E7D7;
    text-shadow: 1px 1px #000;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 98%;
}

/* === Compact / Mini XP Bars (shared) === */
/* Retro Attribute XP bar */
.mini-xp-bar-container {
    position: relative;
    background: #1E1715 !important;          /* deep brown */
    border: 2px solid #C04E26;    /* rusty border */
    height: 16px;
    border-radius: 3px;
    overflow: hidden;
    width: 100%;
}
.mini-xp-bar-fill {
    background: #FF8C00;          /* orange fill */
    height: 100%;
    transition: width 0.3s ease;
}
.mini-xp-bar-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-family: 'Press Start 2P', cursive;
    font-size: 0.55em;
    color: #F2E7D7;
    text-shadow: 1px 1px #000;
    pointer-events: none;
    white-space: nowrap;
}

/* --- Attribute Progress Row (shared across pages) --- */
.attribute-progress-item {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 4px 0;
}
.attribute-progress-item .attr-name {
    min-width: 90px;
    max-width: 120px;
    flex: 0 0 110px;
    text-align: left;
    padding-right: 8px;
}
.attribute-progress-item .mini-xp-bar-container {
    flex: 1 1 0%;
    margin-left: 0;
    width: auto;
}

/* Background panel for attribute sections */
#attributeProgressSection, .stats-panel {
    background: #713421 !important; /* ensure override over inline styles */
    border: 2px solid #8B2E15;
    border-radius: 6px;
    padding: 14px 18px;
}

/* Vanilla headings inside attribute panels */
#attributeProgressSection h2, .stats-panel h3 {
    --primary-color: #4a90e2;
    --secondary-color: #2c3e50;
    --success-color: #2ecc71;
    --danger-color: #e74c3c;
    --warning-color: #f1c40f;
    --info-color: #3498db;
    --light-color: #ecf0f1;
    --dark-color: #2c3e50;
    --border-radius: 4px;
    --box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    line-height: 1.6;
    text-shadow: 1px 1px #202120;
    font-family: 'Press Start 2P', 'Courier New', Courier, monospace;
    font-size: 1.2em;
    margin: 0 0 15px 0;
    color: #efecd6;
    text-align: center;
    border-bottom: 2px solid #b2f3fb;
    padding-bottom: 10px;
}

/* Stand-alone pets window (same retro panel) */
.pets-window {
    background: rgba(255, 255, 255, 0.95);
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 6px 15px rgba(0,0,0,0.1);
    border: 2px solid #B0E0E6;
    min-width: 50vw;
    margin-top: 20px;
}
.pets-window h3{
    margin:0;
    color:#2F4F4F;
    font-family:'Press Start 2P',monospace;
}
