/* =====================================================================
   EDUHUNT ACADEMY SIX PORTALS
   V2.2.233 R5 — COLORFUL MEANINGFUL ICONS + MOBILE BOTTOM FONT
   2026-08-29

   UI ONLY.
   No API, permission, authentication, database, route, calculation,
   upload, exam, result, OMR, book, test-key or role logic is changed.
   ===================================================================== */

/* ---------------------------------------------------------------------
   1. NEVER ALLOW MODULE ICON SVGs TO FALL BACK TO SOLID BLACK FILLS.
      All existing EduHunt SVGs are line icons, so explicitly use the
      surrounding semantic colour as the stroke.
   --------------------------------------------------------------------- */
body[data-portal-role] :is(
  .nav-link,
  .quick-card,
  .kpi-card,
  .principal-hub-item,
  .student-hub-item,
  .role-bottom-nav button,
  .principal-bottom-nav button,
  .student-bottom-nav button,
  .button,
  .notice,
  .empty-state,
  .eduhunt-library-nav-button,
  .eduhunt-library-card-icon
) svg,
body[data-portal-role] :is(.kpi-icon,.principal-hub-emoji,.student-hub-icon) svg,
body[data-portal-role] svg.eduhunt-library-svg {
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:2.15!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  opacity:1!important;
  visibility:visible!important;
}

/* Keep icon colour separate from text colour. */
body[data-portal-role] [data-module] > svg,
body[data-portal-role] [data-module] :is(.kpi-icon,.principal-hub-emoji,.student-hub-icon) > svg,
body[data-portal-role] [data-eduhunt-library-module] > svg,
body[data-portal-role] [data-eduhunt-library-module] :is(.kpi-icon,.principal-hub-emoji,.student-hub-icon) > svg {
  color:var(--eh-icon-color,#55e7ff)!important;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.22))!important;
}

/* Tile icon trays receive a matching soft tint, without changing card layout. */
body[data-portal-role] [data-module] :is(.kpi-icon,.principal-hub-emoji,.student-hub-icon),
body[data-portal-role] [data-eduhunt-library-module] :is(.kpi-icon,.principal-hub-emoji,.student-hub-icon) {
  color:var(--eh-icon-color,#55e7ff)!important;
  background:var(--eh-icon-soft,rgba(85,231,255,.16))!important;
  border-color:color-mix(in srgb,var(--eh-icon-color,#55e7ff) 40%,transparent)!important;
}

/* KPI cards without data-module already provide --kpi-color. */
body[data-portal-role] .kpi-card .kpi-icon {
  color:var(--kpi-color,var(--eh-icon-color,#55e7ff))!important;
}
body[data-portal-role] .kpi-card .kpi-icon > svg {
  color:inherit!important;
}

/* ---------------------------------------------------------------------
   2. SEMANTIC MODULE COLOURS.
      Same meaning = same colour across Super Admin, Operator,
      Coordinator, Principal, Teacher and Student portals.
   --------------------------------------------------------------------- */
body[data-portal-role] :is([data-module="dashboard"]){--eh-icon-color:#ffd34e;--eh-icon-soft:rgba(255,211,78,.17)}

body[data-portal-role] :is(
  [data-module="schools"],[data-module="assigned-schools"],[data-module="school-admins"],
  [data-module="students"],[data-module="student-names-status"],[data-module="student-removal"]
){--eh-icon-color:#49d7ff;--eh-icon-soft:rgba(73,215,255,.16)}

body[data-portal-role] :is(
  [data-module="staff"],[data-module="teachers"],[data-module="eduhunt-staff"],
  [data-module="academic-directory"]
){--eh-icon-color:#5be7c4;--eh-icon-soft:rgba(91,231,196,.16)}

body[data-portal-role] :is(
  [data-module="credentials"],[data-module="profile"]
){--eh-icon-color:#a98cff;--eh-icon-soft:rgba(169,140,255,.17)}

body[data-portal-role] :is(
  [data-module="exam-monitoring"],[data-module="test-patterns"],[data-module="exam-syllabus"],
  [data-module="schedule"],[data-module="micro-schedules"],[data-module="micro-schedule-upload"],
  [data-module="coordinator-hub-exams"]
){--eh-icon-color:#ff9c4a;--eh-icon-soft:rgba(255,156,74,.17)}

body[data-portal-role] :is(
  [data-module="omr-bubbling"],[data-module="omr-guide"],[data-module="omr-status"]
){--eh-icon-color:#72e89a;--eh-icon-soft:rgba(114,232,154,.16)}

body[data-portal-role] :is(
  [data-module="test-keys"],[data-module="downloads-test-keys"],[data-module="key-approval"],
  [data-module="key-objection-format"]
){--eh-icon-color:#f8cf52;--eh-icon-soft:rgba(248,207,82,.17)}

body[data-portal-role] :is(
  [data-module="results"],[data-module="student-results"],[data-module="result-analysis"],
  [data-module="result-upload"],[data-module="sa-result-upload"],[data-module="reports"],
  [data-module="branch-reports"],[data-module="visitor-analytics"]
){--eh-icon-color:#ff7aa8;--eh-icon-soft:rgba(255,122,168,.17)}

body[data-portal-role] :is(
  [data-module="assignments"],[data-module="assignment-upload"]
){--eh-icon-color:#c58cff;--eh-icon-soft:rgba(197,140,255,.18)}

body[data-portal-role] :is(
  [data-module="downloads"],[data-module="downloads-assignments"],[data-module="attendance-sheets"],
  [data-module="deliverables"],[data-module="coordinator-hub-downloads"]
){--eh-icon-color:#55e7ff;--eh-icon-soft:rgba(85,231,255,.16)}

body[data-portal-role] :is(
  [data-module="books"],[data-module="book-delivery"],[data-module="reference-books"]
){--eh-icon-color:#70e28b;--eh-icon-soft:rgba(112,226,139,.17)}

body[data-portal-role] :is(
  [data-module="resources"],[data-module="videos"]
){--eh-icon-color:#55ddd4;--eh-icon-soft:rgba(85,221,212,.17)}

body[data-portal-role] :is(
  [data-module="teaching-progress"],[data-module="today-tasks"],[data-module="coordinator-hub-today"]
){--eh-icon-color:#89e85b;--eh-icon-soft:rgba(137,232,91,.17)}

body[data-portal-role] :is(
  [data-module="phone-followup"],[data-module="welcome-message"],[data-module="announcements"]
){--eh-icon-color:#59dfc2;--eh-icon-soft:rgba(89,223,194,.17)}

body[data-portal-role] :is(
  [data-module="upload-logs"],[data-module="history"]
){--eh-icon-color:#67a8ff;--eh-icon-soft:rgba(103,168,255,.17)}

body[data-portal-role] :is(
  [data-module="print-address"]
){--eh-icon-color:#ffb45d;--eh-icon-soft:rgba(255,180,93,.17)}

body[data-portal-role] :is(
  [data-module="settings"]
){--eh-icon-color:#7ac8ff;--eh-icon-soft:rgba(122,200,255,.17)}

body[data-portal-role] :is(
  [data-module="medals"]
){--eh-icon-color:#ffd34e;--eh-icon-soft:rgba(255,211,78,.18)}

body[data-portal-role] :is(
  [data-module="coordinator-hub-schools"]
){--eh-icon-color:#49d7ff;--eh-icon-soft:rgba(73,215,255,.16)}

/* Academic Library additions are injected by academic-library-v2236.js. */
body[data-portal-role] [data-eduhunt-library-module="library-books"]{
  --eh-icon-color:#77e38f;--eh-icon-soft:rgba(119,227,143,.18)
}
body[data-portal-role] [data-eduhunt-library-module="library-materials"]{
  --eh-icon-color:#55e7ff;--eh-icon-soft:rgba(85,231,255,.18)
}
body[data-portal-role] [data-eduhunt-library-module="library-solutions"]{
  --eh-icon-color:#ff9a62;--eh-icon-soft:rgba(255,154,98,.18)
}

/* Library SVGs in Principal/Student hub: explicit colour fixes the black icon issue. */
body[data-portal-role] [data-eduhunt-library-module="library-books"] svg.eduhunt-library-svg{color:#77e38f!important}
body[data-portal-role] [data-eduhunt-library-module="library-materials"] svg.eduhunt-library-svg{color:#55e7ff!important}
body[data-portal-role] [data-eduhunt-library-module="library-solutions"] svg.eduhunt-library-svg{color:#ff9a62!important}

/* ---------------------------------------------------------------------
   3. GROUP / SIDEBAR TOGGLE ICONS ALSO GET MEANINGFUL COLOURS.
   --------------------------------------------------------------------- */
body[data-portal-role="PRINCIPAL"] [data-principal-sidebar-group="people"] > svg{color:#55e7ff!important}
body[data-portal-role="PRINCIPAL"] [data-principal-sidebar-group="exams"] > svg{color:#ff9c4a!important}
body[data-portal-role="PRINCIPAL"] [data-principal-sidebar-group="downloads"] > svg{color:#c58cff!important}

body[data-portal-role="STUDENT"] [data-student-sidebar-group="exams"] > svg{color:#ff9c4a!important}
body[data-portal-role="STUDENT"] [data-student-sidebar-group="learning"] > svg{color:#72e89a!important}
body[data-portal-role="STUDENT"] [data-student-sidebar-group="downloads"] > svg{color:#55e7ff!important}

body[data-portal-role="ACADEMIC_COORDINATOR"] [data-coordinator-sidebar-group="today"] > svg{color:#89e85b!important}
body[data-portal-role="ACADEMIC_COORDINATOR"] [data-coordinator-sidebar-group="schools"] > svg{color:#49d7ff!important}
body[data-portal-role="ACADEMIC_COORDINATOR"] [data-coordinator-sidebar-group="exams"] > svg{color:#ff9c4a!important}
body[data-portal-role="ACADEMIC_COORDINATOR"] [data-coordinator-sidebar-group="downloads"] > svg{color:#c58cff!important}

/* Bright but restrained glow makes the icon readable on dark portal surfaces. */
body[data-portal-role] .sidebar-nav .nav-link > svg,
body[data-portal-role] .sidebar-nav .eduhunt-library-nav-button > svg{
  filter:drop-shadow(0 1px 3px currentColor)!important;
}

/* ---------------------------------------------------------------------
   4. PRINCIPAL BOTTOM NAV — LARGER FONT + FIVE DISTINCT COLOUR ICONS.
   Text remains clean; only the icon receives the semantic colour.
   --------------------------------------------------------------------- */
@media screen and (max-width:1024px){
  body[data-portal-role="PRINCIPAL"] .principal-bottom-nav,
  html.eh-force-mobile body[data-portal-role="PRINCIPAL"] .principal-bottom-nav{
    height:calc(88px + env(safe-area-inset-bottom))!important;
    min-height:88px!important;
    padding-top:7px!important;
  }

  body[data-portal-role="PRINCIPAL"] .principal-bottom-nav button span,
  html.eh-force-mobile body[data-portal-role="PRINCIPAL"] .principal-bottom-nav button span{
    font-size:clamp(11.5px,2.8vw,13px)!important;
    line-height:1.1!important;
    font-weight:950!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }

  body[data-portal-role="PRINCIPAL"] .principal-bottom-nav button i,
  html.eh-force-mobile body[data-portal-role="PRINCIPAL"] .principal-bottom-nav button i{
    width:30px!important;height:30px!important;
  }
  body[data-portal-role="PRINCIPAL"] .principal-bottom-nav button i svg,
  html.eh-force-mobile body[data-portal-role="PRINCIPAL"] .principal-bottom-nav button i svg{
    width:25px!important;height:25px!important;
    fill:none!important;stroke:currentColor!important;
  }

  body[data-portal-role="PRINCIPAL"] .principal-bottom-nav [data-principal-nav="home"] i{color:#ffd34e!important}
  body[data-portal-role="PRINCIPAL"] .principal-bottom-nav [data-principal-nav="people"] i{color:#55e7ff!important}
  body[data-portal-role="PRINCIPAL"] .principal-bottom-nav [data-principal-nav="exams"] i{color:#ff8b58!important}
  body[data-portal-role="PRINCIPAL"] .principal-bottom-nav [data-principal-nav="resources"] i{color:#c58cff!important}
  body[data-portal-role="PRINCIPAL"] .principal-bottom-nav [data-principal-nav="profile"] i{color:#55e9b3!important}

  body[data-portal-role="PRINCIPAL"] .principal-bottom-nav button.active i{
    filter:drop-shadow(0 0 7px currentColor)!important;
  }
  body[data-portal-role="PRINCIPAL"] #content,
  html.eh-force-mobile body[data-portal-role="PRINCIPAL"] #content{
    padding-bottom:calc(104px + env(safe-area-inset-bottom))!important;
  }
}

/* ---------------------------------------------------------------------
   5. ACADEMIC COORDINATOR SIX-BUTTON BOTTOM NAV — LARGER LABELS.
      Existing six buttons and functionality are untouched.
   --------------------------------------------------------------------- */
@media screen and (max-width:1024px){
  body[data-portal-role="ACADEMIC_COORDINATOR"] #roleBottomNav,
  html.eh-force-mobile body[data-portal-role="ACADEMIC_COORDINATOR"] #roleBottomNav{
    height:calc(94px + env(safe-area-inset-bottom))!important;
    min-height:94px!important;
    padding-top:7px!important;
  }

  body[data-portal-role="ACADEMIC_COORDINATOR"] #roleBottomNav button span,
  html.eh-force-mobile body[data-portal-role="ACADEMIC_COORDINATOR"] #roleBottomNav button span{
    font-size:clamp(10px,2.45vw,11px)!important;
    line-height:1.08!important;
    font-weight:950!important;
    letter-spacing:-.01em!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }

  body[data-portal-role="ACADEMIC_COORDINATOR"] #roleBottomNav button i,
  html.eh-force-mobile body[data-portal-role="ACADEMIC_COORDINATOR"] #roleBottomNav button i{
    font-size:22px!important;
    line-height:1!important;
  }

  body[data-portal-role="ACADEMIC_COORDINATOR"] .content,
  html.eh-force-mobile body[data-portal-role="ACADEMIC_COORDINATOR"] .content{
    padding-bottom:calc(112px + env(safe-area-inset-bottom))!important;
  }
}

/* Very narrow phones: preserve six Coordinator buttons without clipping. */
@media screen and (max-width:380px){
  body[data-portal-role="ACADEMIC_COORDINATOR"] #roleBottomNav button span,
  html.eh-force-mobile body[data-portal-role="ACADEMIC_COORDINATOR"] #roleBottomNav button span{
    font-size:9.5px!important;
  }
}

/* ---------------------------------------------------------------------
   6. OTHER PORTAL BOTTOM NAVIGATION ICONS.
      Existing emoji icons remain untouched and therefore stay multicolour.
      Student already has five semantic colours; reinforce SVG safety only.
   --------------------------------------------------------------------- */
@media screen and (max-width:1024px){
  body[data-portal-role="STUDENT"] .student-bottom-nav button i svg{
    fill:none!important;stroke:currentColor!important;
  }
}

/* Print: decorative navigation/icon treatment is irrelevant. */
@media print{
  body[data-portal-role] :is(.role-bottom-nav,.principal-bottom-nav,.student-bottom-nav){display:none!important}
  body[data-portal-role] svg{filter:none!important}
}
