/* Hamilton Country Music Club Portal - Master Style Sheet */

body { 
    background-color: #f3f4f6; 
    color: #111827; 
    font-family: system-ui, sans-serif; 
    padding: 24px; 
    margin: 0; 
}

.container { 
    max-width: 800px; 
    margin: 0 auto; 
}

/* Header Ribbon Configuration */
.ribbon { 
    background: #ffffff; 
    border: 1px solid #e5e7eb; 
    padding: 14px 20px; 
    display: flex; 
    justify-content: space-between; 
    align-items: center; 
    border-radius: 12px; 
    box-shadow: 0 1px 3px rgba(0,0,0,0.05); 
    margin-bottom: 24px; 
}

/* Button UI Tiers */
.btn { 
    padding: 6px 14px; 
    border-radius: 6px; 
    font-size: 13px; 
    font-weight: bold; 
    cursor: pointer; 
    text-decoration: none; 
    display: inline-block; 
    border: none; 
}
.btn-blue { background-color: #2563eb; color: #ffffff; }
.btn-green { background-color: #16a34a; color: #ffffff; }
.btn-red { background-color: #ef4444; color: #ffffff; }

/* Content Cards & Publishing Boxes */
.card { 
    background: #ffffff; 
    border: 1px solid #e5e7eb; 
    padding: 24px; 
    border-radius: 12px; 
    box-shadow: 0 1px 3px rgba(0,0,0,0.05); 
    margin-bottom: 20px; 
    position: relative; 
}

.post-title { 
    margin: 0 0 8px 0; 
    color: #1e3a8a; 
    font-size: 22px; 
    padding-right: 120px; 
}

.post-meta { 
    font-size: 12px; 
    color: #6b7280; 
    margin-bottom: 14px; 
}

.admin-box { 
    background: #fae8ff; 
    border: 1px solid #e9d5ff; 
    padding: 20px; 
    border-radius: 12px; 
    margin-bottom: 24px; 
}

/* Global Form Input Formats */
input[type="text"], 
input[type="email"], 
input[type="password"], 
textarea { 
    width: 100%; 
    padding: 10px; 
    border: 1px solid #d1d5db; 
    border-radius: 8px; 
    box-sizing: border-box; 
    margin-bottom: 12px; 
    background: #fff; 
    color: #000; 
    font-size: 14px; 
}

/* Layer Popup Window Modal Layouts */
.modal { 
    display: none; 
    position: fixed; 
    inset: 0; 
    background: rgba(0,0,0,0.5); 
    z-index: 10000; 
    align-items: center; 
    justify-content: center; 
    padding: 20px; 
}

.modal-content { 
    background: #ffffff; 
    border-radius: 16px; 
    box-shadow: 0 20px 25px -5px rgba(0,0,0,0.1); 
    width: 100%; 
    max-width: 420px; 
    padding: 24px; 
    position: relative; 
}

.close-btn { 
    position: absolute; 
    top: 12px; 
    right: 16px; 
    background: none; 
    border: none; 
    font-size: 22px; 
    font-weight: bold; 
    color: #9ca3af; 
    cursor: pointer; 
}

.tab-headers { 
    display: flex; 
    border-bottom: 1px solid #e5e7eb; 
    margin-bottom: 16px; 
    gap: 10px; 
}

.tab-link { 
    flex: 1; 
    text-align: center; 
    padding: 8px; 
    font-size: 14px; 
    font-weight: bold; 
    color: #6b7280; 
    cursor: pointer; 
    border-bottom: 2px solid transparent; 
}

.tab-link.active { 
    color: #2563eb; 
    border-bottom-color: #2563eb; 
}

.alert { 
    padding: 10px; 
    border-radius: 6px; 
    font-size: 12px; 
    font-weight: bold; 
    margin-bottom: 12px; 
}

.alert-error { background: #fee2e2; color: #b91c1c; border: 1px solid #fca5a5; }
.alert-success { background: #dcfce7; color: #15803d; border: 1px solid #86efac; }

/* Interactive Inline Message Discussion Layouts */
.comments-section { 
    border-top: 1px solid #f3f4f6; 
    margin-top: 20px; 
    padding-top: 20px; 
}

.comment-node { 
    background: #f9fafb; 
    padding: 12px 16px; 
    border-radius: 10px; 
    margin-bottom: 10px; 
    border: 1px solid #f3f4f6; 
}

.reply-node { 
    background: #f3f4f6; 
    padding: 10px 14px; 
    border-radius: 8px; 
    margin-bottom: 8px; 
    margin-left: 32px; 
    border-left: 3px solid #2563eb; 
}

.comment-author { 
    font-size: 13px; 
    font-weight: bold; 
    color: #374151; 
    margin-bottom: 4px; 
    display: flex; 
    justify-content: space-between; 
    align-items: center; 
}

.comment-text { 
    font-size: 14px; 
    margin: 0; 
    white-space: pre-wrap; 
    line-height: 1.5; 
}

.delete-badge { 
    font-size: 11px; 
    background: #fee2e2; 
    color: #b91c1c; 
    padding: 2px 6px; 
    border-radius: 4px; 
    text-decoration: none; 
    font-weight: bold; 
}

.reply-btn { 
    font-size: 11px; 
    color: #2563eb; 
    background: none; 
    border: none; 
    font-weight: bold; 
    cursor: pointer; 
    padding: 0; 
    margin-top: 6px; 
}

.comment-input-mini { 
    font-size: 13px !important; 
    padding: 6px 10px !important; 
    margin-bottom: 6px !important; 
}

.blog-image { 
    max-width: 100%; 
    height: auto; 
    border-radius: 8px; 
    margin-bottom: 16px; 
    display: block; 
    border: 1px solid #e5e7eb; 
}

/* NATIVE HARDWARE-ACCELERATED LOADING SPINNER ENGINE */
.loading-spinner-circle {
    width: 28px;
    height: 28px;
    border: 3px solid #cbd5e1;
    border-top-color: #2563eb;
    border-radius: 50%;
    display: inline-block;
    animation: rotatePortalLoader 0.75s linear infinite;
    vertical-align: middle;
    margin-right: 8px;
}

@keyframes rotatePortalLoader {
    to { transform: rotate(360deg); }
}

/* Share Action Badge Styling */
.share-badge {
    font-size: 11px;
    background: #e0f2fe;
    color: #0369a1;
    padding: 2px 6px;
    border-radius: 4px;
    text-decoration: none;
    font-weight: bold;
    cursor: pointer !important; /* FORCES YOUR MOUSE CURSOR TO BECOME A HAND POINTER ICON */
    border: none;
}
.share-badge:hover {
    background: #bae6fd;
}


/* ==========================================================================
   NATIVE BROWSER PRINT ENGINE RULES - Optimises ink and hides clutter
   ========================================================================== */
@media print {
    /* Hide all web components, panels, forms, and video frames completely on paper */
    body { 
        background: #ffffff !important; 
        color: #000000 !important; 
        padding: 0 !important; 
    }
    
    .ribbon, 
    .admin-box, 
    .comments-section, 
    #scrollLoaderIndicator, 
    .share-badge, 
    .delete-badge, 
    video, 
    button { 
        display: none !important; 
    }
    
    /* Force the cards to stretch cleanly across the page layout without borders or shadows */
    .card { 
        border: none !important; 
        box-shadow: none !important; 
        padding: 0 !important; 
        margin-bottom: 30px !important; 
        page-break-inside: avoid !important; /* Prevents an article text block from clipping in half across pages */
    }
    
    .post-title { 
        color: #000000 !important; 
        padding-right: 0 !important; 
        font-size: 24px !important; 
    }
}


