/* =========================
   NYHETER & KALENDER STYLES
   ========================= */

/* -------------------------
   NYHETER (NEWS)
   ------------------------- */
.news-container {
    width: 100%;
    margin: 0 auto;
}

.news-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    width: 100%;
}

.news-post {
    border-radius: 8px;
    padding: 20px;
    border: 1px solid var(--accent-a-30);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    width: 100%;
    max-width: 600px;
    box-sizing: border-box;
    margin-bottom: 20px;
}

.news-post:hover {
    /* transform: translateY(-2px); REMOVED - No movement on hover */
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3);
    border-color: var(--accent-a-60);
}

.news-post-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(227, 157, 5, 0.2);
}

.news-post-title {
    font-size: 20px;
    font-weight: 700;
    color: var(--accent);
    margin: 0;
}

.news-post-date {
    font-size: 14px;
    color: var(--text-muted);
    margin: 10px;
}

.news-post-content {
    color: var(--text-main);
    line-height: 1.6;
}

/* Tvinga rätt font och färg för att överskugga inline-styles från "smutsig" HTML */
.news-post-content * {
    font-family: var(--font-family-main, "Inter", system-ui, sans-serif) !important;
    background-color: transparent !important;
    color: inherit;
    font-size: inherit;
}

/* Undantag för rubriker som ska ha accentfärg */
.news-post-content h1,
.news-post-content h2,
.news-post-content h3,
.news-post-content h4,
.news-post-content h5,
.news-post-content h6 {
    color: var(--accent) !important;
    margin-top: 20px;
    margin-bottom: 10px;
    font-weight: 700 !important;
}

/* Specifikt för h2/h3 som används mest */
.news-post-content h2, .news-post-content h3 {
    font-size: 1.4em !important;
}

.news-post-content p {
    margin-bottom: 10px;
}

.news-post-content ul, .news-post-content ol {
    margin-left: 20px;
    margin-bottom: 10px;
    list-style-position: inside;
}

.news-post-content h2, .news-post-content h3 {
    color: var(--accent);
    margin-top: 20px;
    margin-bottom: 10px;
    font-size: 1.4em;
    font-weight: 700;
}

.news-post-actions {
    display: flex;
    gap: 10px;
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px solid var(--accent-a-20);
}

.format-btn {
    padding: 5px 10px;
    background: rgba(227, 157, 5, 0.2);
    border: 1px solid rgba(227, 157, 5, 0.3);
    color: #e39d05;
    border-radius: 4px;
    cursor: pointer;
    font-weight: bold;
}

.format-btn:hover {
    background: rgba(227, 157, 5, 0.3);
}

.edit-news-btn {
    padding: 5px 10px; 
    font-size: 12px;
}

.news-editor-container {
    background: rgba(0,0,0,0.7);
    padding: 20px;
    border-radius: 8px;
    border: 1px solid var(--accent);
    margin-bottom: 30px;
}

.news-editor-title {
    color: var(--accent);
    margin-bottom: 15px;
}

.news-editor-input {
    width: 100%;
    padding: 8px;
    border-radius: 4px;
    border: 1px solid var(--border-muted);
    background: var(--backdrop-dark);
    color: var(--text-main);
    margin-bottom: 15px;
    box-sizing: border-box;
}

.news-editor-content {
    min-height: 200px;
    border: 1px solid var(--border-muted);
    background: var(--backdrop-dark);
    color: var(--text-main);
    padding: 10px;
    border-radius: 4px;
    overflow-y: auto;
}

.news-editor-actions {
    display: flex;
    gap: 10px;
    margin-top: 15px;
}

.news-action-btn {
    flex: 1;
    padding: 8px;
    border-radius: 4px;
    cursor: pointer;
    border: none;
}

.news-action-btn-primary {
    background: var(--accent);
    color: white;
}

.news-action-btn-secondary {
    background: var(--gray-666);
    color: var(--text-main);
}

.news-action-btn-danger {
    background: var(--red-500);
    color: var(--text-main);
}

.news-list {
    display: grid;
    gap: 20px;
    margin-top: 20px;
}

/* -------------------------
   KALENDER (CALENDAR)
   ------------------------- */

.schedule-container {
    width: 100%;
    margin: 0 auto;
    padding: 0;
}

.schedule-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    flex-wrap: wrap;
    gap: 15px;
    width: 100%;
}

/* Layout Classes (Refactored from inline styles) */
.calendar-layout {
    display: flex;
    gap: 20px;
    align-items: flex-start;
    width: 100%;
}

.calendar-main-view {
    flex: 1;
    min-width: 0;
    max-width: 600px;
}

.upcoming-sidebar {
    flex: 0 0 250px;
}

.sidebar-title {
    margin-top: 0;
    margin-bottom: 15px;
}

/* Kalenderkontroller */
.calendar-controls {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 20px;
    border-radius: 8px;
    margin-bottom: 20px;
    border: 1px solid var(--accent-a-30);
    width: 100%;
    box-sizing: border-box;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.calendar-controls:hover {
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
    border-color: var(--accent-a-60);
}

.date-navigation {
    display: flex;
    align-items: center;
    gap: 15px;
    flex: 1;
    justify-content: center;
}

.current-date-display {
    text-align: center;
    color: var(--text-main);
    min-width: 250px;
    font-size: 16px;
    padding: 0 20px;
}

.nav-btn {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: var(--text-muted);
    width: 36px;
    height: 36px;
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
}

.nav-btn:hover {
    background: var(--accent-a-20);
    border-color: var(--accent);
    color: var(--accent);
    transform: translateY(-2px);
}

.nav-btn svg {
    width: 20px;
    height: 20px;
}

.today-btn {
    background: var(--accent-a-30);
    border: 1px solid var(--accent-a-50);
    color: var(--text-main);
    padding: 10px 20px;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 600;
    transition: all 0.2s ease;
    font-size: 14px;
}

.today-btn:hover {
    background: var(--accent-a-40);
    /* transform: translateY(-2px); REMOVED */
}

.calendar-container {
    border-radius: 8px;
    border: 1px solid var(--accent-a-30);
    overflow: hidden;
    width: 100%;
    height: calc(100vh - 300px);
    min-height: 500px;
    display: flex;
    flex-direction: column;
    transition: box-shadow 0.2s ease;
}

.calendar-container:hover {
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
    border-color: var(--accent-a-60);
}

.calendar-content {
    flex: 1;
    overflow: hidden;
    position: relative;
}

/* Ny layout för att undvika överlappning och fixa alignment */
.calendar-wrapper {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    position: relative;
}

.calendar-scroll-area {
    overflow: auto; /* Både X och Y scroll */
    height: 100%;
    position: relative;
    border-radius: 8px;
}

/* Gemensam grid-struktur */
.calendar-header-row,
.calendar-body-grid {
    display: grid;
    grid-template-columns: 60px repeat(7, 1fr);
    width: 100%;
}

.calendar-header-row {
    position: sticky;
    top: 0;
    z-index: 20;
    /* backdrop-filter gör att bakgrunden blir suddig och döljer innehåll bakom, 
       men behåller transparens-känslan */
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--accent-a-20);
}

/* Corner header (Tid) - Sticky både top och left */
.calendar-time-header {
    background: transparent; /* Låt radens bakgrund sköta jobbet */
    padding: 0 10px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--accent); 
    font-size: 12px; 
    font-weight: bold;
    box-sizing: border-box;
    border-right: 1px solid var(--accent-a-20);
    
    /* Sticky settings */
    position: sticky;
    left: 0;
    top: 0;
    z-index: 30;
    /* Egen bakgrund för hörnet så det täcker både uppåt och åt vänster */
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px); 
}

.calendar-day-header {
    background: transparent; /* Låt radens bakgrund sköta jobbet */
    padding: 0 10px;
    height: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--white); 
    font-size: 12px; 
    font-weight: bold; 
    box-sizing: border-box;
    border-right: 1px solid var(--accent-a-10);
}

.calendar-day-header.today {
    color: var(--accent);
}

.calendar-day-header .day-name {
    font-size: 11px; 
    color: var(--text-muted);
}

.calendar-day-header .day-date {
    font-size: 16px;
}

/* Time slot labels (07:00...) - Sticky left */
.calendar-time-slot-label {
    padding: 5px 10px; 
    color: var(--text-muted); 
    font-size: 11px; 
    border-right: 1px solid var(--accent-a-20);
    border-bottom: 1px solid var(--accent-a-10);
    min-height: 60px;
    
    /* Sticky settings */
    position: sticky;
    left: 0;
    z-index: 10;
    
    /* Bakgrund för att dölja scrollande content */
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.calendar-time-slot {
    background: transparent; 
    min-height: 60px; 
    border-bottom: 1px solid var(--accent-a-10);
    border-right: 1px solid var(--accent-a-10);
    position: relative;
    cursor: default;
    overflow: visible;
    padding: 0;
}

/* Städa upp gamla klasser som inte behövs */
.calendar-header-grid { display: none; }

/* Mobilanpassning */
@media (max-width: 992px) {
  .calendar-header-row,
  .calendar-body-grid {
    min-width: 600px; /* Tvinga scroll på små skärmar */
  }
}

.calendar-time-slot.interactive {
    cursor: pointer;
}

/* Event Styles */
.calendar-event-base {
    position: absolute;
    left: 2px;
    right: 2px;
    color: white;
    border-radius: 4px;
    padding: 4px 6px;
    overflow: hidden;
    z-index: 2;
    cursor: pointer;
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
    transition: transform 0.2s, box-shadow 0.2s;
}

.calendar-event-title {
    font-size: 11px; 
    font-weight: bold; 
    white-space: nowrap; 
    overflow: hidden; 
    text-overflow: ellipsis;
}

.calendar-event-time {
    font-size: 10px; 
    opacity: 0.9;
}

/* Event Types Colors */
.event-type-training { background-color: #4CAF50; border-left: 3px solid #388E3C; }
.event-type-match { background-color: #f44336; border-left: 3px solid #D32F2F; }
.event-type-meeting { background-color: #2196F3; border-left: 3px solid #1976D2; }
.event-type-other { background-color: #9C27B0; border-left: 3px solid #7B1FA2; }

/* Upcoming Events */
.upcoming-list-empty {
    color: var(--text-muted); 
    font-size: 14px; 
    text-align: center; 
    padding: 20px;
}

.upcoming-event-card {
    padding: 12px;
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.2s;
    margin-bottom: 8px;
    border: 2px solid transparent;
}

.upcoming-event-card:hover {
    background: rgba(255,255,255,0.1);
}

.upcoming-event-header {
    display: flex; 
    justify-content: space-between; 
    align-items: flex-start; 
    margin-bottom: 5px;
}

.upcoming-event-title {
    font-weight: bold; 
    color: white; 
    font-size: 14px;
}

.upcoming-event-pill {
    font-size: 11px; 
    color: white; 
    padding: 2px 6px; 
    border-radius: 10px;
}

.upcoming-event-meta {
    color: var(--text-muted); 
    font-size: 12px; 
    margin-bottom: 3px;
}

.upcoming-event-location {
    color: var(--accent); 
    font-size: 11px;
}

.upcoming-event-description {
    color: #ccc; 
    font-size: 12px; 
    margin-top: 5px; 
    display: -webkit-box; 
    -webkit-line-clamp: 2;
    line-clamp: 2; 
    -webkit-box-orient: vertical; 
    overflow: hidden;
}

/* Upcoming Event Pill Colors */
.event-pill-training { background-color: #4CAF50; }
.event-pill-match { background-color: #f44336; }
.event-pill-meeting { background-color: #2196F3; }
.event-pill-other { background-color: #9C27B0; }

/* Upcoming Event Card Border Colors */
.event-card-training { border-color: #4CAF50 !important; }
.event-card-match { border-color: #f44336 !important; }
.event-card-meeting { border-color: #2196F3 !important; }
.event-card-other { border-color: #9C27B0 !important; }

/* Event Editor */
#eventEditor {
    margin-top: 30px;
    background: rgba(0, 0, 0, 0.8);
    padding: 25px;
    border-radius: 8px;
    border: 1px solid var(--accent);
    width: 100%;
    box-sizing: border-box;
}

#eventEditor h3 {
    color: var(--accent);
    margin-bottom: 20px;
    font-size: 20px;
}

#eventEditor input,
#eventEditor select,
#eventEditor textarea {
    width: 100%;
    padding: 10px;
    border-radius: 4px;
    border: 1px solid var(--border-muted);
    background: var(--backdrop-dark);
    color: var(--text-main);
    margin-bottom: 15px;
    font-size: 14px;
    box-sizing: border-box;
}

#eventEditor textarea {
    min-height: 100px;
    resize: vertical;
}

/* Event Info Modal */
.event-info-modal {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 10000;
    pointer-events: auto;
    width: 90%;
    max-width: 450px;
}

.event-info-content {
    background: rgba(0,0,0,0.9);
    border-radius: 8px;
    border: 1px solid var(--accent);
    max-width: 400px;
    margin: 0 auto;
    padding: 20px;
}

.event-info-title {
    color: var(--accent);
    margin-bottom: 10px;
    font-size: 18px;
}

.event-info-row {
    color: #fff;
    margin-bottom: 5px;
    font-size: 14px;
}

.event-info-desc {
    color: #ccc;
    margin-top: 10px;
    font-size: 14px;
    line-height: 1.5;
}

.event-info-details {
    margin-bottom: 15px;
}

.event-info-close-btn {
    background: var(--accent);
    color: white;
    border: none;
    padding: 8px 16px;
    border-radius: 4px;
    cursor: pointer;
    font-size: 14px;
    margin-top: 15px;
    transition: background-color 0.2s;
}

.event-info-close-btn:hover {
    filter: brightness(0.9);
}

.event-info-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.7);
    z-index: 9999;
    cursor: pointer;
}

/* Scrollbar styling */
.calendar-container::-webkit-scrollbar,
.calendar-week-grid::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

.calendar-container::-webkit-scrollbar-track,
.calendar-week-grid::-webkit-scrollbar-track {
    background: var(--white-a-05);
    border-radius: 4px;
}

.calendar-container::-webkit-scrollbar-thumb,
.calendar-week-grid::-webkit-scrollbar-thumb {
    background: var(--accent-a-30);
    border-radius: 4px;
}

.calendar-container::-webkit-scrollbar-thumb:hover,
.calendar-week-grid::-webkit-scrollbar-thumb:hover {
    background: var(--accent-a-50);
}
