@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css");
:root{
  --dll-navy:#062a63;
  --dll-navy-dark:#031a3e;
  --dll-navy-2:#0d4a9b;
  --dll-red:#d90416;
  --dll-red-2:#ed1027;
  --dll-blue:#1265d8;
  --dll-bg:#f5f7fb;
  --dll-card:#ffffff;
  --dll-border:#dce3ef;
  --dll-text:#0b1d3a;
  --dll-muted:#65738a;
  --dll-green:#198754;
  --dll-yellow:#ffc107;
  --dll-orange:#f59f00;
  --dll-purple:#6f42c1;
  --dll-radius:22px;
  --dll-shadow:0 10px 24px rgba(6,42,99,.08);
  --dll-shadow-strong:0 16px 38px rgba(6,42,99,.14);
  --safe-bottom:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--dll-bg)!important;
  color:var(--dll-text);
  min-height:100vh;
  padding-bottom:calc(72px + var(--safe-bottom));
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
body.public-page{padding-bottom:0}
a{color:inherit}

/* Shared top navigation: visually matches calendar.php */
.app-topbar{
  background:radial-gradient(circle at top,#0d4a9b 0%,var(--dll-navy) 48%,var(--dll-navy-dark) 100%)!important;
  color:#fff;
  border-bottom:4px solid var(--dll-red);
  box-shadow:0 8px 24px rgba(0,0,0,.15);
  position:sticky;
  top:0;
  z-index:1030;
  padding:.35rem 0;
}
.app-brand{font-weight:900;letter-spacing:.01em;display:flex;align-items:center;gap:.7rem;min-width:0;}
.app-logo{height:42px;width:auto;filter:drop-shadow(0 3px 5px rgba(0,0,0,.25));}
.app-brand-text{min-width:0;line-height:1.05;}
.app-topbar .brand-title{font-size:1.05rem;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.app-brand-subtitle{font-size:.72rem;color:rgba(255,255,255,.72);line-height:1;margin-top:.15rem;}
.app-nav-toggle{border:0;background:rgba(255,255,255,.12);border-radius:14px;min-height:42px;min-width:42px;}
.app-topbar .nav-link{border-radius:999px;padding:.55rem .85rem!important;font-weight:800;color:rgba(255,255,255,.86)!important;}
.app-topbar .nav-link:hover{background:rgba(255,255,255,.12);color:#fff!important;}
.app-topbar .nav-link.active{background:linear-gradient(180deg,#ed1027,#b9000c);color:#fff!important;box-shadow:0 5px 12px rgba(217,4,22,.25);}
.app-user-pill{border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:.38rem .7rem;color:#fff;background:rgba(255,255,255,.08);font-weight:800;}

.app-page-title{display:flex;align-items:center;gap:.55rem;font-weight:900;color:var(--dll-navy);letter-spacing:-.02em;margin:0;}
.app-page-subtitle{color:var(--dll-muted);font-size:.93rem;}
.page-card,.app-card{background:#fff!important;border:1px solid rgba(6,42,99,.10)!important;border-radius:var(--dll-radius)!important;box-shadow:var(--dll-shadow)!important;}
.page-card{padding:1rem!important;}
.btn{border-radius:14px;font-weight:800;min-height:38px;}
.btn-primary,.btn-danger{background:linear-gradient(180deg,#ed1027,#b9000c);border-color:var(--dll-red);box-shadow:0 5px 12px rgba(217,4,22,.18);}
.btn-primary:hover,.btn-danger:hover{background:linear-gradient(180deg,#d90416,#a8000a);border-color:#a8000a;}
.btn-outline-primary{color:var(--dll-navy);border-color:#b8c5dc;background:#fff;}
.btn-outline-primary:hover{background:var(--dll-navy);border-color:var(--dll-navy);color:#fff;}
.form-control,.form-select,.select2-container--bootstrap-5 .select2-selection{border-radius:14px!important;border-color:#cbd5e1!important;min-height:40px;}
.form-control:focus,.form-select:focus{border-color:var(--dll-blue);box-shadow:0 0 0 .2rem rgba(18,101,216,.12);}
.form-switch .form-check-input:checked{background-color:var(--dll-navy);border-color:var(--dll-navy);}

/* Tables */
.table{--bs-table-striped-bg:#f8fbff;--bs-table-hover-bg:#eef5ff;}
table.dataTable thead th{background:var(--dll-navy)!important;color:#fff!important;border-color:#17376f!important;}
table.dataTable thead tr.filters th{background:#f6f8fc!important;color:var(--dll-text)!important;border-color:#dbe4f0!important;}
.dataTables_wrapper .dt-buttons .btn{margin-right:.35rem;margin-bottom:.35rem;}
.dataTables_filter input{border-radius:999px!important;}
.badge,.status-badge,.yesno-badge,.active-badge{border-radius:999px;padding:.42rem .62rem;font-weight:800;}
.status-scheduled{background-color:var(--dll-green)!important;color:#fff!important;}
.status-rescheduled{background-color:var(--dll-yellow)!important;color:#1f2937!important;}
.status-canceled,.status-cancelled{background-color:#dc3545!important;color:#fff!important;}
.long-cell,.notes-cell{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.import-status-card{background:#f8fbff!important;border:1px solid var(--dll-border)!important;border-radius:18px!important;box-shadow:var(--dll-shadow)!important;}
.status-pill-clickable{cursor:help;}

/* Modals */
.modal-content{border:0;border-radius:22px;box-shadow:0 25px 80px rgba(0,0,0,.25);}
.modal-header{background:radial-gradient(circle at top,#0d4a9b 0%,var(--dll-navy) 55%,var(--dll-navy-dark) 100%);color:#fff;border-bottom:3px solid var(--dll-red);border-radius:22px 22px 0 0;}
.modal-header .btn-close{filter:invert(1) grayscale(100%);opacity:.9;}
.modal-footer{background:#f8fbff;border-top:1px solid #e3eaf5;border-radius:0 0 22px 22px;}
.alert{border-radius:14px;}

/* Bottom navigation: exact match to calendar.php */
.mobile-bottom-nav,.app-mobile-bottom-nav{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:1050;
  padding:8px 8px calc(8px + var(--safe-bottom));
  background:linear-gradient(180deg,var(--dll-navy),var(--dll-navy-dark));
  border-top:3px solid var(--dll-red);
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:2px;
  box-shadow:none;
}
.mobile-bottom-nav a,.app-mobile-bottom-nav a{
  color:#fff;
  text-decoration:none;
  text-align:center;
  font-size:.72rem;
  font-weight:700;
  opacity:.9;
  line-height:1.1;
  min-width:0;
}
.mobile-bottom-nav a.active,.app-mobile-bottom-nav a.active{color:#ff3b4d;opacity:1;}
.mobile-bottom-nav a i,.app-mobile-bottom-nav a i{display:block;font-size:1.35rem;margin-bottom:2px;}
.mobile-bottom-nav a:hover,.app-mobile-bottom-nav a:hover{opacity:1;}

.app-stat-card{border-radius:18px;background:#fff;border:1px solid #e3eaf5;box-shadow:var(--dll-shadow);padding:1rem;}
.app-kpi{display:flex;align-items:center;gap:.75rem;}
.app-kpi-icon{height:42px;width:42px;border-radius:14px;display:grid;place-items:center;background:rgba(217,4,22,.10);color:var(--dll-red);font-weight:900;}
.login-shell{min-height:100vh;background:radial-gradient(circle at top,#0d4a9b 0%,var(--dll-navy) 46%,var(--dll-navy-dark) 100%);display:flex;align-items:center;justify-content:center;padding:1.25rem;}
.login-card{max-width:430px;width:100%;border-radius:26px;background:#fff;box-shadow:0 25px 80px rgba(0,0,0,.32);padding:1.25rem;border-bottom:4px solid var(--dll-red);}
.login-logo{max-width:210px;width:66%;height:auto;display:block;margin:.25rem auto 1rem;}
.login-title{text-align:center;font-weight:900;color:var(--dll-navy);letter-spacing:-.02em;text-transform:uppercase;}
.login-public-link{display:block;text-align:center;margin-top:1rem;font-weight:800;color:var(--dll-navy);}
.division-checkbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:.4rem .7rem;}
.division-checkbox-grid .form-check{background:#fff;border:1px solid #e3eaf5;border-radius:12px;padding:.45rem .65rem .45rem 2.2rem;}

@media (min-width:992px){
  body{padding-bottom:0;}
  .mobile-bottom-nav,.app-mobile-bottom-nav{display:none;}
  .page-card{padding:1.25rem!important;}
}
@media (max-width:767.98px){
  .container-fluid{padding-left:.75rem;padding-right:.75rem;}
  .page-card{border-radius:16px!important;padding:.85rem!important;}
  .app-topbar{margin-bottom:.75rem!important;}
  .app-logo{height:36px;}
  .app-topbar .brand-title{font-size:.92rem;}
  .app-brand-subtitle{display:none!important;}
  h2,.h2{font-size:1.45rem;}
  div.dataTables_wrapper div.dataTables_filter input{min-width:0!important;width:100%!important;}
  .dataTables_wrapper .row{gap:.4rem;}
  .modal-dialog{margin:.5rem;}
  .modal-footer{position:sticky;bottom:0;z-index:5;}
  .table-scroll-wrapper{border-radius:14px;overflow:hidden;}
}


/* Mobile modal usability fixes: keep forms scrollable and Save/Close reachable */
.modal {
  --bs-modal-margin: .5rem;
}
.modal-dialog-scrollable .modal-content {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.modal-dialog-scrollable .modal-body {
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}
.modal-header,
.modal-footer {
  flex-shrink: 0;
}
.select2-container {
  max-width: 100%;
}
.select2-dropdown {
  z-index: 2000;
}

@media (max-width: 767.98px){
  body.modal-open {
    overflow: hidden;
  }
  .modal-dialog,
  .modal-dialog.modal-lg,
  .modal-dialog.modal-xl {
    width: auto;
    max-width: none;
    margin: .35rem;
  }
  .modal-dialog-scrollable {
    height: calc(100dvh - .7rem);
    max-height: calc(100dvh - .7rem);
    display: flex;
    align-items: stretch;
  }
  .modal-dialog-scrollable .modal-content {
    width: 100%;
    max-height: calc(100dvh - .7rem) !important;
    height: auto;
  }
  .modal-dialog-scrollable .modal-body {
    flex: 1 1 auto;
    max-height: none !important;
    min-height: 0;
    padding-bottom: 1rem;
  }
  .modal-footer {
    position: sticky;
    bottom: 0;
    z-index: 10;
    padding-bottom: calc(.75rem + var(--safe-bottom));
  }
  .modal-footer .btn {
    min-height: 44px;
  }
  .division-checkbox-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .35rem;
  }
  .division-checkbox-grid .form-check {
    padding: .5rem .45rem .5rem 1.9rem;
    font-size: .92rem;
  }
}

@media (max-width: 390px){
  .division-checkbox-grid {
    grid-template-columns: 1fr;
  }
}
