/* ---------- existing styles (keep as-is) ---------- */
.studentview-hero {
    position: relative;
    height: 240px;
    background: linear-gradient(135deg,#2d7dff 0%, #1662ff 100%);
    border-top-left-radius: 0.5rem;
    border-top-right-radius: 0.5rem;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
}

.studentview-hero .hours-badge {
    position:absolute;
    top:12px;
    right:12px;
    background:#12304f;
    color:#bfe6ff;
    padding:6px 10px;
    border-radius:20px;
    font-weight:700;
    box-shadow:0 2px 6px rgba(0,0,0,0.15);
    font-size:0.9rem;
}

.studentview-hero .icon svg {
    width:60px;
    height:60px;
    opacity:0.95;
}

.studentview-hero .level-pill {
    position: absolute;
    bottom: 45px;
    left: 50%;
    transform: translateX(-50%);
    background: #a7c3f791;
    padding: 4px 12px;
    border-radius: 20px;
    color: #fff;
    font-weight: 600;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
    font-size: 12px;
}

.course-card .card-body { padding:0; width: 100%;}

.course-title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 1px;
}

.course-title-row .bookmark svg { display:block; }

.stats-row .stat-value { font-size:1.25rem; font-weight:700; }
.stats-row .stat-label { font-size:0.85rem; color:#6c757d; }

@media (max-width:767.98px) {
    .studentview-hero { height:240px; }
    .studentview-hero .icon svg { width:56px; height:56px; }
}

.course-title-row .badge.bg-secondary {
    background-color: #fff !important;
    mix-blend-mode: normal !important;
    color: #000;
    border: 1px solid #ccc;
}
/* make the bookmark clearly clickable and ensure SVG doesn't block the event */
.bookmark {
    cursor: pointer;
    z-index: 20;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* make the SVG itself pass the pointer to parent; this ensures the .bookmark receives click */
.bookmark svg, .bookmark svg * {
    pointer-events: none;
}

/* Toast container + toast styles */
.sv-toast-container {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 12000;
  display: flex;
  flex-direction: column;
  gap: 10px;
  pointer-events: none; /* let clicks pass through except on toasts */
}

.sv-toast {
  pointer-events: auto;
  min-width: 200px;
  max-width: 360px;
  padding: 10px 14px;
  border-radius: 8px;
  color: #fff;
  box-shadow: 0 6px 18px rgba(11,30,60,0.18);
  font-size: 0.95rem;
  opacity: 0;
  transform: translateY(-6px);
  transition: opacity 220ms ease, transform 220ms ease;
}

.sv-toast.show {
  opacity: 1;
  transform: translateY(0);
}

.sv-toast.success { background: #2ecc71; }   /* green */
.sv-toast.info    { background: #3498db; }   /* blue */
.sv-toast.warn    { background: #f39c12; }   /* orange */
.sv-toast.error   { background: #e74c3c; }   /* red */

.sv-toast .sv-toast-close {
  float: right;
  margin-left: 8px;
  background: transparent;
  border: 0;
  color: rgba(255,255,255,0.9);
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
}

.main-area-bg:not(.pagelayout-login) div[role="main"]{
    background: inherit;
    padding: 0px;
    border-radius: inherit;
    box-shadow: inherit;
}
.container-fluid{
    padding-left: 0px;
}

/* ---------- NEW: Resume card + hide header/tabs + auxiliary styles ---------- */

/* container for the whole course page */
.studentview-coursepage {
    padding: 16px 12px;
}

/* prominent resume card at top */
.studentview-resume-card {
    border-radius: 0.75rem;
    padding: 18px;
    background: linear-gradient(90deg, #f8fbff 0%, #ffffff 100%);
    display: flex;
    align-items: center;
    gap: 18px;
    transition: transform 160ms ease, box-shadow 160ms ease;
    width: 100%;
    box-shadow: 0 6px 18px rgba(18,48,79,0.04);
    border: 1px solid rgba(22,98,255,0.04);
}
.studentview-resume-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(18,48,79,0.06);
}

/* left icon */
.resume-icon {
    width: 64px;
    height: 64px;
    min-width: 64px;
    min-height: 64px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #eef6ff;
    color: #1662ff;
    font-size: 22px;
    box-shadow: 0 4px 14px rgba(22,98,255,0.06);
}

/* title + subtitle area */
.studentview-resume-card .fw-bold {
    font-size: 1.1rem;
    margin-bottom: 4px;
}
.studentview-resume-card .text-muted {
    font-size: 0.92rem;
    color: #6c757d;
}

/* push button to right on wide screens */
.studentview-resume-card .resume-action {
    margin-left: auto;
}

/* Resume button */
.studentview-resume-card .resume-action .btn {
    min-width: 110px;
    padding: 8px 16px;
    border-radius: 12px;
}

/* small screens: stack content */
@media (max-width: 575.98px) {
    .studentview-resume-card {
        flex-direction: column;
        align-items: stretch;
        text-align: left;
        gap: 12px;
    }
    .studentview-resume-card .resume-action {
        margin-left: 0;
    }
    .resume-icon {
        width: 56px;
        height: 56px;
        min-width: 56px;
        min-height: 56px;
    }
    .studentview-resume-card .btn {
        width: 100%;
    }
}

/* small utility: show a subtle "Resume available" badge on course-card if resumeurl present */
.resume-pill {
    display: inline-block;
    background: rgba(23,125,255,0.12);
    color: #1662ff;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 600;
    margin-left: 6px;
    border: 1px solid rgba(22,98,255,0.06);
}

/* keep toast / bookmark behavior unaffected (z-index safety) */
.studentview-resume-card { z-index: 1; }

/* ===== Hide default course header area + tabs only on local/studentview view page =====
   This targets body class .page-local_studentview-view. If your theme uses a different body class,
   replace it with the actual body class (inspect <body class="..."> on the view page).
*/
.page-local_studentview-view .course-header,
.page-local_studentview-view #page-header,
.page-local_studentview-view .course-content .nav-tabs,
.page-local_studentview-view .course-content .nav,
.page-local_studentview-view .course-content .course-navigation,
.page-local_studentview-view .course-header .course-header-actions {
    display: none !important;
}

/* also remove top spacing produced by header removal */
.page-local_studentview-view #region-main .container {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* If your body class differs, change .page-local_studentview-view to the correct one.
   (For example .page-local-studentview-view or .page-local-local_studentview-view). */

/* Section list UI (parent-section cards) */
.section-card {
    border-radius: 0.6rem;
    padding: 0;
    overflow: hidden;
}
.section-card .card-body {
    padding: 16px;
}

/* Arrow button on right */
.section-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    border: 1px solid rgba(22,98,255,0.12);
    text-decoration: none;
    background: #fff;
    box-shadow: 0 6px 18px rgba(18,48,79,0.03);
    color: #1662ff;
    font-size: 20px;
}
.section-arrow:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(18,48,79,0.06);
}

/* make progress bar look slightly rounded and thin like screenshot */
.section-card .progress {
    background: #f1f3f5;
    border-radius: 999px;
    height: 10px;
    overflow: hidden;
}
.section-card .progress-bar {
    background: linear-gradient(90deg,#2d7dff 0%, #1fb0a9 100%);
    box-shadow: none;
}

/* responsive: compress info on small screens */
@media (max-width: 575.98px) {
    .section-card .card-body {
        flex-direction: column;
        gap: 10px;
    }
    .section-card .text-end {
        text-align: left;
    }
    .section-arrow {
        width: 100%;
        height: 40px;
        border-radius: 8px;
    }
}

/* Schedule - List view styles */
.local-schedule-page h1 { font-size: 2rem; font-weight:700; margin-bottom:0.25rem; }

.schedule-item { align-items: center; }
.si-icon .icon-circle {
    width:48px; height:48px; border-radius:10px; display:flex; align-items:center; justify-content:center;
    background:#eff6ff; color:#1662ff; font-size:18px; box-shadow:0 6px 18px rgba(22,98,255,0.04);
}
.si-body .fw-bold { font-size:1.05rem; }
.si-actions { min-width:220px; }

.badge.live-now {
    display:inline-block; background:#ff6b6b; color:white; padding:6px 10px; border-radius:14px; font-weight:700;
    font-size:0.75rem; margin-right:6px;
}

.tag-badge {
    display:inline-block; background:#f6f7fb; color:#3a3f47; padding:6px 10px; border-radius:14px; font-size:0.78rem;
}

/* Responsive */
@media (max-width:767.98px) {
    .si-actions { min-width: 0; display:flex; flex-direction:column; gap:6px; align-items:flex-end; }
    .si-actions .badge.live-now { margin-bottom:6px; }
}

.section-arrow { width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center; border-radius:10px; border:1px solid rgba(22,98,255,0.12); color:#1662ff; background:#fff; text-decoration:none; }
.section-card.section-open .section-arrow { transform: rotate(90deg); transition: transform 180ms ease; }
.section-children-placeholder { display:none; padding: 8px 0 14px 0; }
.section-children-inner { background: #fff; border-radius: 8px; padding: 8px; box-shadow: 0 6px 18px rgba(18,48,79,0.03); }
.child-section { margin-bottom: 10px; border-radius:6px; overflow:hidden; }
.child-modules .list-group-item { border:0; border-bottom: 1px solid #f1f2f4; padding: 14px 16px; }
.sv-loader { padding: 20px; text-align:center; color:#6c757d; }

/* Schedule list visuals */
.local-schedule-page .schedule-item { background: #fff; border: 1px solid #eef3f8; }
.local-schedule-page .schedule-item .icon-circle {
  width:48px;height:48px;border-radius:10px;background:#f6f9ff;display:flex;align-items:center;justify-content:center;
  box-shadow:0 1px 0 rgba(34,36,38,.03); font-size:18px;
}
.local-schedule-page .schedule-item .si-body .fw-bold { font-size:16px; }
.local-schedule-page .si-actions .badge { font-weight:600; padding:6px 10px; border-radius:999px; }

/* LIVE item highlight */
.local-schedule-page .live-item { background: #e9f9ee; border: 2px solid #39b54a; }
.local-schedule-page .live-now-badge { background:#f8d7da; color:#9c2b2b; border-radius:12px; padding:6px 10px; font-weight:700; }

/* Tag badge default and variants */
.tag-badge { background:#eef2f5; color:#2e3a43; border-radius:999px; padding:6px 10px; font-size:0.8rem; }
.tag-exam { background:#fbe8e8 !important; color:#b12a2a !important; }
.tag-office { background:#e9f9ee !important; color:#117a37 !important; }
.tag-live { background:#e8f4ff !important; color:#0b66d6 !important; }
.tag-assignment { background:#fff6e6 !important; color:#b76b00 !important; }

/* Buttons spacing */
.local-schedule-page .si-actions a.btn { min-width: 90px; }

/* Minor responsive adjustments */
@media (max-width: 700px) {
  .local-schedule-page .si-actions { text-align: right; }
  .local-schedule-page .si-actions .btn { display:block; margin-top:6px; }
}

/* Assignments page styles */
.sv-top-counts { gap: 1rem; }
.sv-count { text-align: center; }
.sv-label { font-size: 0.8rem; color: #666; }
.sv-assignment-card { border-radius: 8px; }
.sv-assignment-card.sv-overdue {
    border-left: 6px solid #f44336; /* thick left border in red */
    border-top: 1px solid #f5c6cb;
    border-right: 1px solid #f5c6cb;
    border-bottom: 1px solid #f5c6cb;
    border-radius: 8px;
    box-shadow: 0px 2px 4px rgba(245, 198, 203, 0.4);
}
.sv-assignment-card.sv-pending {
    border-left: 6px solid #ffeb3b; /* thick yellow left border */
    border-top: 1px solid #fff8c6;
    border-right: 1px solid #fff8c6;
    border-bottom: 1px solid #fff8c6;
    border-radius: 8px;
    box-shadow: 0px 2px 4px rgba(255, 235, 59, 0.4);
}
.sv-assignment-card .badge-status { background: #ffd54f; color: #fff; margin-left: .5rem; }

.sv-assignments-page .nav-link:hover, .sv-assignments-page .nav-link:focus {
    text-decoration: none;
    cursor: pointer;
}