/* ==========================================================================
   pis-theme.css — one look for every page of the Planning Information System.
   Colours come from the SDO Nueva Ecija logo:
     green ring #187848 · sun gold #f0c419 · red rays #d02030 · torch brown #905430
   Load this LAST in <head> (after Bootstrap and the page's own CSS).
   ========================================================================== */
:root{
  --pis-green-900:#0c4529; --pis-green-800:#125f39; --pis-green-700:#187848; --pis-green-600:#1f8f57;
  --pis-green-500:#2fa56a; --pis-green-100:#e3f2ea; --pis-green-50:#f2f8f5;
  --pis-gold:#f0c419; --pis-gold-600:#d9ad06; --pis-gold-100:#fdf6d3; --pis-gold-800:#7a5f00;
  --pis-red:#d02030; --pis-red-700:#a8182a; --pis-red-100:#fbe5e7;
  --pis-brown:#905430;
  --pis-ink:#1f2a24; --pis-muted:#5f6f66; --pis-line:#e3e8e5; --pis-bg:#f4f6f5; --pis-surface:#fff;
  --sidebar-width:264px;
  --pis-radius:12px; --pis-radius-sm:8px;
  --pis-shadow:0 1px 2px rgba(16,40,26,.05),0 2px 10px rgba(16,40,26,.05);
  --pis-shadow-lg:0 10px 30px rgba(16,40,26,.12);
  --pis-brand-grad:linear-gradient(135deg,#125f39 0%,#187848 100%);
  --pis-font:"Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;

  /* older page variables now point at the logo colours */
  --primary-green:#187848; --light-green:#1f8f57; --dark-green:#0c4529; --hover-green:#125f39;
  --pg:#187848; --lg:#1f8f57; --hg:#125f39; --primary:#187848; --primary-hover:#125f39;

  /* Bootstrap 5.3 */
  --bs-primary:#187848; --bs-primary-rgb:24,120,72;
  --bs-success:#187848; --bs-success-rgb:24,120,72;
  --bs-danger:#d02030;  --bs-danger-rgb:208,32,48;
  --bs-warning:#f0c419; --bs-warning-rgb:240,196,25;
  --bs-link-color:#187848; --bs-link-color-rgb:24,120,72;
  --bs-link-hover-color:#0c4529; --bs-link-hover-color-rgb:12,69,41;
  --bs-primary-text-emphasis:#0c4529; --bs-primary-bg-subtle:#e3f2ea; --bs-primary-border-subtle:#b5dcc6;
  --bs-success-text-emphasis:#0c4529; --bs-success-bg-subtle:#e3f2ea; --bs-success-border-subtle:#b5dcc6;
  --bs-body-font-family:var(--pis-font); --bs-body-color:#1f2a24; --bs-body-bg:#f4f6f5;
  --bs-border-color:#dfe5e1; --bs-border-radius:.5rem;
  --bs-focus-ring-color:rgba(24,120,72,.25);
}

/* ── Base ──────────────────────────────────────────────────────────────── */
html,body{font-family:var(--pis-font);}
body{background-color:var(--pis-bg)!important;color:var(--pis-ink);-webkit-font-smoothing:antialiased;}
/* logo colour ribbon across the very top of every page */
body::before{content:"";position:fixed;top:0;left:0;right:0;height:3px;z-index:10050;pointer-events:none;
  background:linear-gradient(90deg,var(--pis-green-700) 0 62%,var(--pis-gold) 62% 84%,var(--pis-red) 84% 100%);}
@media print{body::before{display:none;}}
a{color:var(--pis-green-700);}
a:hover{color:var(--pis-green-900);}
::selection{background:#cfe8da;}
::-webkit-scrollbar{width:9px;height:9px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:#c4d3ca;border-radius:9px;border:2px solid transparent;background-clip:padding-box;}
::-webkit-scrollbar-thumb:hover{background:#9db7a7;background-clip:padding-box;}

/* ── App shell ─────────────────────────────────────────────────────────── */
.main-content{background:var(--pis-bg)!important;min-height:100vh;}
.top-bar{background:#fff!important;border-bottom:1px solid var(--pis-line);box-shadow:0 1px 0 rgba(16,40,26,.02)!important;
  min-height:58px;padding-top:.55rem!important;padding-bottom:.55rem!important;position:sticky;top:0;z-index:900;}
.top-bar h1,.top-bar h2,.top-bar h3,.top-bar h4,.top-bar h5,.top-bar h6,.top-bar .pis-title{
  color:var(--pis-ink)!important;font-size:1.02rem!important;font-weight:700!important;letter-spacing:-.005em;margin:0;display:flex;align-items:center;}
.top-bar h6 > i:first-child,.top-bar h5 > i:first-child,.top-bar .pis-title > i:first-child{
  color:var(--pis-green-700)!important;background:var(--pis-green-100);width:32px;height:32px;border-radius:9px;
  display:inline-flex;align-items:center;justify-content:center;font-size:.98rem;margin-right:.6rem!important;flex:0 0 32px;}
.top-bar #logos{height:30px!important;align-items:center;}
.top-bar #logos img{height:28px;width:auto;}
.top-bar #sidebarToggle{border:1px solid var(--pis-line);border-radius:8px;color:var(--pis-green-800);background:#fff;}

/* division pages load the top bar outside .main-content: keep it clear of the sidebar */
@media (min-width:769px){
  body:has(#sidebar-container) #topbar-container{margin-left:var(--sidebar-width);}
  body:has(#sidebar-container) .main-content #topbar-container{margin-left:0;}
  body:has(#sidebar-container) .main-content{margin-left:var(--sidebar-width)!important;}
}
@media (max-width:768px){body:has(#sidebar-container) .main-content{margin-left:0!important;}}

/* page titles inside the content */
.main-content h1,.main-content .h1{font-size:1.55rem;}
.main-content h2,.main-content .h2{font-size:1.38rem;}
.main-content h1,.main-content h2,.main-content .h1,.main-content .h2{font-weight:700;color:var(--pis-ink);letter-spacing:-.01em;}
.main-content h1 > i:first-child,.main-content h2 > i:first-child,.main-content h3 > i:first-child{color:var(--pis-green-700);}

/* ── Colour utilities ──────────────────────────────────────────────────── */
.text-primary,.text-success{color:var(--pis-green-700)!important;}
.text-danger{color:var(--pis-red)!important;}
.text-info{color:#0f6b74!important;}
.bg-primary,.bg-success{background-color:var(--pis-green-700)!important;}
.bg-danger{background-color:var(--pis-red)!important;}
.bg-warning{background-color:var(--pis-gold)!important;color:#3d3000!important;}
.bg-info{background-color:#167f86!important;}
.bg-dark{background-color:var(--pis-green-900)!important;}
.border-primary,.border-success{border-color:var(--pis-green-700)!important;}
.text-bg-primary,.text-bg-success{background-color:var(--pis-green-700)!important;color:#fff!important;}
.alert-primary,.alert-success{--bs-alert-color:#0c4529;--bs-alert-bg:#e8f4ed;--bs-alert-border-color:#c3e1cf;}
.alert-info{--bs-alert-color:#0d4f55;--bs-alert-bg:#e7f4f5;--bs-alert-border-color:#bfe0e3;}
.alert-warning{--bs-alert-color:#5c4700;--bs-alert-bg:#fdf6d3;--bs-alert-border-color:#f2e19a;}
.alert-danger{--bs-alert-color:#7d1320;--bs-alert-bg:#fbe8ea;--bs-alert-border-color:#f2c4c9;}
.alert{border-radius:10px;}

/* ── Buttons ───────────────────────────────────────────────────────────── */
.btn{border-radius:8px;font-weight:500;}
.btn-primary,.btn-success{--bs-btn-bg:#187848;--bs-btn-border-color:#187848;--bs-btn-color:#fff;
  --bs-btn-hover-bg:#125f39;--bs-btn-hover-border-color:#125f39;--bs-btn-hover-color:#fff;
  --bs-btn-active-bg:#0c4529;--bs-btn-active-border-color:#0c4529;--bs-btn-focus-shadow-rgb:24,120,72;
  --bs-btn-disabled-bg:#7fb497;--bs-btn-disabled-border-color:#7fb497;}
.btn-outline-primary,.btn-outline-success{--bs-btn-color:#187848;--bs-btn-border-color:#187848;--bs-btn-hover-bg:#187848;
  --bs-btn-hover-border-color:#187848;--bs-btn-hover-color:#fff;--bs-btn-active-bg:#125f39;--bs-btn-active-border-color:#125f39;
  --bs-btn-focus-shadow-rgb:24,120,72;--bs-btn-disabled-color:#187848;--bs-btn-disabled-border-color:#187848;}
.btn-danger{--bs-btn-bg:#d02030;--bs-btn-border-color:#d02030;--bs-btn-hover-bg:#a8182a;--bs-btn-hover-border-color:#a8182a;
  --bs-btn-active-bg:#8f1423;--bs-btn-active-border-color:#8f1423;}
.btn-outline-danger{--bs-btn-color:#d02030;--bs-btn-border-color:#d02030;--bs-btn-hover-bg:#d02030;--bs-btn-hover-border-color:#d02030;
  --bs-btn-active-bg:#a8182a;--bs-btn-active-border-color:#a8182a;}
.btn-warning{--bs-btn-bg:#f0c419;--bs-btn-border-color:#f0c419;--bs-btn-color:#3d3000;--bs-btn-hover-bg:#d9ad06;
  --bs-btn-hover-border-color:#d9ad06;--bs-btn-hover-color:#2b2200;--bs-btn-active-bg:#c79e05;--bs-btn-active-border-color:#c79e05;}
.btn-outline-warning{--bs-btn-color:#8a6d00;--bs-btn-border-color:#e0b60e;--bs-btn-hover-bg:#f0c419;--bs-btn-hover-border-color:#f0c419;
  --bs-btn-hover-color:#2b2200;}
.btn-info{--bs-btn-bg:#167f86;--bs-btn-border-color:#167f86;--bs-btn-color:#fff;--bs-btn-hover-bg:#0f6b71;
  --bs-btn-hover-border-color:#0f6b71;--bs-btn-hover-color:#fff;}
.btn-outline-info{--bs-btn-color:#167f86;--bs-btn-border-color:#167f86;--bs-btn-hover-bg:#167f86;--bs-btn-hover-border-color:#167f86;}
.btn-outline-secondary{--bs-btn-color:#4b5a52;--bs-btn-border-color:#cfd8d3;--bs-btn-hover-bg:#f0f4f1;--bs-btn-hover-color:#1f2a24;
  --bs-btn-hover-border-color:#b8c5bd;--bs-btn-active-bg:#e6ece8;--bs-btn-active-color:#1f2a24;}
.btn-link{--bs-btn-color:#187848;--bs-btn-hover-color:#0c4529;}

/* ── Cards / panels ────────────────────────────────────────────────────── */
.card{--bs-card-border-color:var(--pis-line);--bs-card-border-radius:var(--pis-radius);--bs-card-inner-border-radius:calc(var(--pis-radius) - 1px);
  --bs-card-cap-bg:#f8faf9;border-color:var(--pis-line);box-shadow:var(--pis-shadow);}
.card-header{font-weight:600;color:var(--pis-ink);border-bottom-color:var(--pis-line);}
/* coloured card / modal headers all use the brand green */
.card-header.text-white,.card-header[style*="gradient"],
.card-header:is(.bg-primary,.bg-success,.bg-info,.bg-dark,.bg-secondary),
.modal-header:is(.bg-primary,.bg-success,.bg-info,.bg-dark,.bg-secondary),.modal-header[style*="gradient"],
.admin-card-header,.card2-h,.ev-head,.cat-head,.section-header-green{
  background:var(--pis-brand-grad)!important;color:#fff!important;border-bottom:0!important;}
.card-header.text-white .text-muted,.card-header[style*="gradient"] .text-muted{color:rgba(255,255,255,.75)!important;}
.modal-content{border:0;border-radius:14px;box-shadow:var(--pis-shadow-lg);overflow:hidden;}
.modal-header{border-bottom-color:var(--pis-line);}
.modal-title{font-weight:700;}
.modal-footer{background:#f8faf9;border-top-color:var(--pis-line);}

/* ── Tables ────────────────────────────────────────────────────────────── */
.table{--bs-table-hover-bg:#f2f8f5;--bs-table-striped-bg:#f8fbf9;border-color:var(--pis-line);}
.table > thead > tr > th{
  background:#eef5f1!important;color:var(--pis-green-900)!important;font-size:.74rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.04em;border-bottom:2px solid var(--pis-green-700)!important;border-top:0;vertical-align:middle;white-space:normal;}
.table > thead > tr > th *{color:inherit;}
.main-content .table > tbody > tr > td{border-color:#edf1ee;vertical-align:middle;}

/* ── Forms ─────────────────────────────────────────────────────────────── */
.form-control,.form-select{border-color:#d6dfda;border-radius:8px;}
.form-control:focus,.form-select:focus{border-color:#4fa877!important;box-shadow:0 0 0 .2rem rgba(24,120,72,.18)!important;}
.form-check-input:checked{background-color:var(--pis-green-700);border-color:var(--pis-green-700);}
.form-check-input:focus{border-color:#4fa877;box-shadow:0 0 0 .2rem rgba(24,120,72,.18);}
.form-switch .form-check-input:focus{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%234fa877'/%3e%3c/svg%3e");}
.form-label,label.form-label{font-weight:600;color:#33433a;font-size:.86rem;}
.form-range::-webkit-slider-thumb{background:var(--pis-green-700);}
.input-group-text{background:#f2f6f3;border-color:#d6dfda;color:var(--pis-muted);}

/* ── Navs, pagination, progress, badges, dropdowns ─────────────────────── */
.nav-tabs{--bs-nav-tabs-link-active-color:#0c4529;--bs-nav-tabs-link-active-border-color:#dfe5e1 #dfe5e1 #fff;}
.main-content .nav-tabs .nav-link{color:var(--pis-muted);font-weight:500;}
.main-content .nav-tabs .nav-link:hover{color:var(--pis-green-800);}
.main-content .nav-tabs .nav-link.active{color:var(--pis-green-900);font-weight:600;box-shadow:inset 0 -3px 0 var(--pis-green-700);}
.nav-pills{--bs-nav-pills-link-active-bg:#187848;}
.main-content .nav-pills .nav-link{color:var(--pis-muted);}
.main-content .nav-pills .nav-link.active{background:var(--pis-green-700);color:#fff;}
.pagination{--bs-pagination-color:#187848;--bs-pagination-hover-color:#0c4529;--bs-pagination-active-bg:#187848;
  --bs-pagination-active-border-color:#187848;--bs-pagination-focus-box-shadow:0 0 0 .2rem rgba(24,120,72,.2);}
.progress-bar{background-color:var(--pis-green-700);}
.dropdown-menu{--bs-dropdown-link-active-bg:#187848;border-color:var(--pis-line);border-radius:10px;box-shadow:var(--pis-shadow-lg);}
.list-group{--bs-list-group-active-bg:#187848;--bs-list-group-active-border-color:#187848;}
.badge{font-weight:600;letter-spacing:.01em;}
.spinner-border.text-primary,.spinner-border.text-success{color:var(--pis-green-700)!important;}

/* ── SweetAlert2 ───────────────────────────────────────────────────────── */
/* above the open mobile menu (z-index 10000), so dialogs opened from the menu can be clicked */
.swal2-container{z-index:10100!important;}
div.swal2-popup{border-radius:14px;font-family:var(--pis-font);}
div.swal2-popup .swal2-title{color:var(--pis-ink);}
div.swal2-popup .swal2-actions button.swal2-styled.swal2-confirm{background-color:var(--pis-green-700);}
div.swal2-popup .swal2-actions button.swal2-styled.swal2-confirm[style*="rgb(48, 133, 214)"],
div.swal2-popup .swal2-actions button.swal2-styled.swal2-confirm[style*="rgb(46, 125, 50)"],
div.swal2-popup .swal2-actions button.swal2-styled.swal2-confirm[style*="rgb(13, 110, 253)"]{background-color:var(--pis-green-700)!important;}
div.swal2-popup .swal2-actions button.swal2-styled.swal2-confirm[style*="rgb(221, 51, 51)"],
div.swal2-popup .swal2-actions button.swal2-styled.swal2-confirm[style*="rgb(220, 53, 69)"]{background-color:var(--pis-red)!important;}
div.swal2-popup .swal2-actions button.swal2-styled{border-radius:8px;}
div.swal2-popup .swal2-actions button.swal2-styled:focus{box-shadow:0 0 0 3px rgba(24,120,72,.3);}
div.swal2-popup .swal2-icon.swal2-success{border-color:#7fc59d;color:#187848;}
div.swal2-popup .swal2-icon.swal2-success [class^=swal2-success-line]{background-color:#187848;}
div.swal2-popup .swal2-icon.swal2-success .swal2-success-ring{border-color:rgba(24,120,72,.3);}
div.swal2-popup .swal2-icon.swal2-warning{border-color:#e9be16;color:#c99a06;}
div.swal2-popup .swal2-icon.swal2-error{border-color:#e8838c;}
div.swal2-popup .swal2-icon.swal2-error [class^=swal2-x-mark-line]{background-color:var(--pis-red);}
div.swal2-popup .swal2-timer-progress-bar{background:var(--pis-gold);}

/* ── Sidebar (division and School Access use the same one) ─────────────── */
.sidebar.pis-sb{width:var(--sidebar-width,260px);position:fixed;top:0;left:0;height:100vh;z-index:1000;background:#fff;
  border-right:1px solid #e3e9e5;box-shadow:2px 0 14px rgba(16,40,26,.05);display:flex;flex-direction:column;overflow:hidden;
  font-family:var(--pis-font);transition:transform .25s ease;}
.pis-sb *{box-sizing:border-box;}
.pis-sb .sb-head{background:linear-gradient(150deg,#0c4529 0%,#125f39 45%,#187848 100%);color:#fff;padding:15px 14px 13px;flex:0 0 auto;
  border-bottom:3px solid var(--pis-gold);position:relative;}
.pis-sb .sb-brand{display:flex;align-items:center;gap:9px;margin-bottom:13px;white-space:nowrap;overflow:hidden;color:#fff;text-decoration:none;}
.pis-sb .sb-brand img{width:30px;height:30px;border-radius:50%;background:#fff;padding:1px;flex:0 0 30px;box-shadow:0 0 0 2px rgba(240,196,25,.55);}
.pis-sb .sb-brand-t{display:flex;flex-direction:column;line-height:1.1;overflow:hidden;}
.pis-sb .sb-brand-t b{font-size:.8rem;font-weight:700;letter-spacing:.01em;overflow:hidden;text-overflow:ellipsis;}
.pis-sb .sb-brand-t small{font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;opacity:.78;font-weight:600;overflow:hidden;text-overflow:ellipsis;}
.pis-sb .sb-user{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff;border-radius:10px;padding:7px;margin:0 -2px;
  background:rgba(255,255,255,.08);}
.pis-sb .sb-user:hover{background:rgba(255,255,255,.15);color:#fff;}
.pis-sb .sb-avatar{width:40px;height:40px;border-radius:50%;flex:0 0 40px;object-fit:cover;border:2px solid rgba(255,255,255,.6);
  background:#fdf6d3;color:#0c4529;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.92rem;}
.pis-sb .sb-name{font-weight:700;font-size:.9rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:165px;}
.pis-sb .sb-role{display:inline-block;margin-top:3px;font-size:.75rem;font-weight:700;background:var(--pis-gold);color:#3d3000;border-radius:999px;padding:1px 8px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:165px;}
.pis-sb .sb-nav{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;padding:8px 10px 10px;-webkit-overflow-scrolling:touch;scrollbar-width:thin;}
.pis-sb .sb-group{margin-top:10px;}
.pis-sb .sb-group:first-child{margin-top:2px;}
.pis-sb .sb-label{font-size:.75rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#839389;padding:6px 10px 4px;}
.pis-sb a.sb-link{display:flex;align-items:center;gap:10px;min-height:36px;padding:7px 10px;margin:1px 0;border-radius:8px;transform:none;
  color:#2b3a31;text-decoration:none;font-size:.86rem;font-weight:500;line-height:1.2;position:relative;background:transparent;}
.pis-sb a.sb-link i{font-size:1.02rem;width:20px;text-align:center;color:#62756a;flex:0 0 20px;}
.pis-sb a.sb-link:hover{background:#f0f6f2;color:#0c4529;transform:none;}
.pis-sb a.sb-link:hover i{color:#187848;}
.pis-sb a.sb-link.active{background:#e3f2ea;color:#0c4529;font-weight:600;}
.pis-sb a.sb-link.active::before{content:"";position:absolute;left:-10px;top:7px;bottom:7px;width:3px;border-radius:0 3px 3px 0;background:#187848;}
.pis-sb a.sb-link.active i{color:#187848;}
.pis-sb .sb-badge{margin-left:auto;font-size:.68rem;font-weight:700;border-radius:999px;padding:1px 7px;line-height:1.5;}
.pis-sb .sb-foot{flex:0 0 auto;border-top:1px solid #edf1ee;padding:8px 10px 10px;background:#fafcfb;}
.pis-sb a.sb-link.sb-logout,.pis-sb a.sb-link.sb-logout i{color:#b81c2b;}
.pis-sb a.sb-link.sb-logout:hover{background:#fbe8ea;color:#8f1423;}
@media (max-width:768px){
  .sidebar.pis-sb{transform:translateX(-100%);width:min(280px,86vw);}
  .sidebar.pis-sb.show{transform:translateX(0);z-index:10000;box-shadow:4px 0 24px rgba(0,0,0,.18);}
}
@media print{.sidebar.pis-sb{display:none;}.top-bar{position:static;}}

/* ── Sign-in and account pages ─────────────────────────────────────────── */
body.pis-auth{background:radial-gradient(1200px 600px at 10% -10%,#dff0e6 0%,rgba(223,240,230,0) 60%),
  radial-gradient(900px 500px at 110% 110%,#fbf1c6 0%,rgba(251,241,198,0) 55%),#f4f6f5!important;background-attachment:fixed!important;}
body.pis-auth .main-content,body.pis-auth .auth-wrap,body.pis-auth section,body.pis-auth .container-fluid,body.pis-auth .login-container{
  background-image:none!important;background-color:transparent!important;}
body.pis-auth .card,body.pis-auth .auth-card,body.pis-auth .login-card{border:1px solid var(--pis-line)!important;border-radius:16px!important;
  box-shadow:0 18px 50px rgba(12,69,41,.12)!important;border-top:4px solid var(--pis-green-700)!important;}
body.pis-auth h1,body.pis-auth h2,body.pis-auth h3,body.pis-auth .card-title{color:var(--pis-green-900)!important;}

/* ---- Bottom action bar for School Access forms (replaces the floating Save button,
        which used to cover fields). guard.js shows it only when its button is visible. ---- */
.save-bar{position:fixed;left:var(--sidebar-width,264px);right:0;bottom:0;z-index:500;display:none;justify-content:flex-end;align-items:center;gap:12px;
  padding:10px 24px;background:rgba(255,255,255,.97);border-top:1px solid #e3e8e5;box-shadow:0 -4px 14px rgba(16,40,26,.06);backdrop-filter:blur(4px)}
.save-bar.on{display:flex}
.save-bar .save-fab{position:static!important;right:auto!important;bottom:auto!important;transform:none!important;box-shadow:none!important;
  min-height:44px;padding:.55rem 1.4rem!important;border-radius:10px!important;font-weight:700}
body.has-save-bar .main-content{padding-bottom:84px}
@media (max-width:768px){.save-bar{left:0;padding:8px 12px}.save-bar .save-fab{flex:1}}

/* ---- Phones: one-line page titles; secondary header text hidden (it is shown in the page) ---- */
@media (max-width:576px){
  .main-content > .top-bar{gap:8px;padding-left:12px!important;padding-right:12px!important;flex-wrap:nowrap}
  .main-content > .top-bar > h6,.main-content > .top-bar > div:has(> h6){flex:1 1 auto;min-width:0}
  .main-content > .top-bar h6{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:1rem}
  .main-content > .top-bar > span.text-muted,.main-content > .top-bar #roleBadge,.main-content > .top-bar .top-school,
  .main-content > .top-bar #topSchoolLabel,.main-content > .top-bar #currentDateTime{display:none!important}
  .main-content > .top-bar .btn:not(#sidebarToggle){white-space:nowrap;flex:0 0 auto}
  /* header buttons: icon only on phones (the text stays for screen readers) */
  .main-content > .top-bar .btn:not(#sidebarToggle):has(> i.bi){font-size:0;min-width:42px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:0}
  .main-content > .top-bar .btn:not(#sidebarToggle):has(> i.bi) > i.bi{font-size:1.1rem;margin:0!important}
  /* big green intro boxes: shorter, so the form starts on the first screen */
  .fe-hero,.ev-hero{padding:1rem 1.1rem!important;margin-bottom:1rem!important}
  .fe-hero h4,.ev-hero h4{font-size:1.1rem}
  .fe-hero p,.ev-hero p{font-size:.85rem}
}

/* ---- School Access: comfortable tap targets ---- */
.main-content .section-card .form-check{min-height:40px;display:flex;align-items:center;gap:.45rem;padding-left:0}
.main-content .section-card .form-check .form-check-input{float:none;margin:0;width:1.2em;height:1.2em}
.main-content .section-card .form-check .form-check-label{cursor:pointer;padding:6px 0}
@media (max-width:576px){
  .main-content .btn-sm{min-height:40px;padding-top:.45rem;padding-bottom:.45rem}
  .main-content .form-control-sm,.main-content .form-select-sm{min-height:40px}
}
.main-content > .top-bar .badge{font-size:.75rem}
.assign-table th{font-size:.75rem}
