:root {
  --platform-navy: #07111d;
  --platform-navy-soft: #102335;
  --platform-blue: #2f7f98;
  --platform-paper: #f4f5f2;
  --platform-ink: #17232c;
  --platform-muted: #63717b;
  --platform-gold: #cfb991;
  --platform-line: #d8ddde;
}

body { color: var(--platform-ink); background: #e7ebeb; font-family: "Avenir Next", "Segoe UI", Helvetica, Arial, sans-serif; }
.skin-blue .main-header .logo, .skin-blue .main-header .navbar { background: var(--platform-navy); }
.skin-blue .main-header .logo:hover, .skin-blue .main-header .navbar .sidebar-toggle:hover { background: var(--platform-navy-soft); }
.main-header .navbar .sidebar-toggle::before { content: none !important; }
.main-header .navbar .sidebar-toggle { width: 50px; height: 50px; display: grid; place-items: center; padding: 0; }
.sidebar-toggle-icon { width: 19px; display: grid; gap: 4px; }
.sidebar-toggle-icon > span { display: block; height: 2px; background: currentColor; }
.main-header .logo { width: 230px; max-width: none; max-height: none; margin: 0; font-size: 18px; letter-spacing: -.02em; }
.main-header .logo .platform-logo { width: 112px; height: auto; margin: 0 auto; }
.main-header .logo .logo-mini .platform-logo { width: 42px; }
.skin-blue .main-sidebar { background: #091521; }
.skin-blue .sidebar-menu > li.header { background: #07111d; color: #738894; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.skin-blue .sidebar-menu > li > a { border-left: 3px solid transparent; color: #bdc9d0; }
.skin-blue .sidebar-menu > li:hover > a, .skin-blue .sidebar-menu > li.active > a { border-left-color: var(--platform-gold); background: #102335; color: #fff; }
.content-wrapper { background: var(--platform-paper); }
.content { padding: clamp(20px, 3vw, 38px); }
.main-footer { border-top: 1px solid var(--platform-line); color: var(--platform-muted); }
.main-footer a { color: #315f71; }

.account-toggle { min-height: 50px; display: flex !important; align-items: center; gap: 9px; }
.account-caret { margin-left: 2px; color: #8ca0ac; }
.account-avatar { width: 28px; height: 28px; flex: 0 0 28px; display: inline-grid; place-items: center; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; background: #315d70; color: #fff; font-size: 12px; font-weight: 800; line-height: 1; }
.account-avatar-large { width: 78px; height: 78px; margin: 0 auto 8px; border-color: rgba(255,255,255,.42); font-size: 27px; }
.navbar-nav > .user-menu .user-image { width: 28px; height: 28px; margin-top: -4px; object-fit: cover; }
.navbar-nav > .user-menu > .dropdown-menu > li.user-header { height: auto; min-height: 170px; padding: 22px 18px; background: var(--platform-navy-soft); }
.navbar-nav > .user-menu > .dropdown-menu > li.user-header > img { width: 78px; height: 78px; object-fit: cover; }
.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p { margin: 8px 0 0; font-size: 15px; }
.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p > small { margin-top: 4px; color: #a8b9c3; }
.navbar-nav > .user-menu > .dropdown-menu > .user-footer { background: #f5f6f4; }
.user-panel { display: flex; align-items: center; min-height: 76px; }
.user-panel > .image > img { width: 40px; height: 40px; object-fit: cover; }
.user-panel > .image .account-avatar { width: 40px; height: 40px; font-size: 15px; }
.user-panel > .info { position: static; padding: 0 0 0 12px; }
.user-panel > .info > p { margin: 0 0 2px; color: #fff; font-size: 13px; }
.user-panel > .info > span { color: #8397a3; font-size: 11px; }
.user-panel > .info > span > i { margin-right: 5px; font-size: 8px; }
.sidebar-menu > li.guest-access-note { width: calc(100% - 28px); box-sizing: border-box; margin: 8px 14px 20px; padding: 14px; overflow: visible; border: 1px solid rgba(255,255,255,.12); color: #91a4af; white-space: normal; }
.guest-access-note p { margin: 0 0 10px; overflow-wrap: anywhere; font-size: 12px; line-height: 1.5; white-space: normal; }
.guest-access-note a { display: inline !important; padding: 0 !important; color: #e3c989 !important; font-size: 11px; font-weight: 700; }

.platform-page-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 28px; padding-bottom: 22px; border-bottom: 1px solid var(--platform-line); }
.platform-page-heading h1 { margin: 3px 0 5px; color: var(--platform-ink); font-size: clamp(30px, 4vw, 48px); line-height: 1; letter-spacing: -.045em; }
.platform-page-heading p:not(.platform-kicker) { max-width: 690px; margin: 0; color: var(--platform-muted); }
.platform-kicker { margin: 0; color: #58707c; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.platform-text-link { flex-shrink: 0; border-bottom: 1px solid currentColor; padding-bottom: 3px; color: #315f71; font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.platform-button { min-height: 42px; border: 1px solid var(--platform-ink); border-radius: 0; background: transparent; padding: 9px 14px; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.platform-button:disabled { border-color: #cbd1d2; color: #9ba5a8; cursor: not-allowed; }
.platform-button-danger:not(:disabled) { border-color: #9b443f; color: #8a3833; cursor: pointer; }

.guest-dashboard { max-width: 1180px; margin: 0 auto; }
.guest-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 32px; align-items: end; margin-bottom: 28px; padding: clamp(26px, 5vw, 54px); background: var(--platform-navy); color: #fff; }
.guest-hero h1 { margin: 7px 0 12px; font-size: clamp(34px, 5vw, 58px); line-height: .95; letter-spacing: -.05em; }
.guest-hero p:not(.platform-kicker) { max-width: 670px; margin: 0; color: #b8c6cf; font-size: 16px; }
.guest-pill { align-self: start; border: 1px solid rgba(255,255,255,.2); padding: 8px 11px; color: var(--platform-gold); font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.guest-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 22px; }
.guest-primary-action { display: inline-flex; min-height: 44px; align-items: center; background: var(--platform-gold); color: var(--platform-ink); padding: 10px 15px; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.guest-secondary-action { color: #d2dce1; font-size: 12px; text-decoration: underline; text-underline-offset: 4px; }
.guest-tasks { scroll-margin-top: 18px; border: 1px solid var(--platform-line); background: #fff; }
.guest-tasks-header { display: flex; justify-content: space-between; align-items: end; gap: 18px; padding: 20px 22px; border-bottom: 1px solid var(--platform-line); }
.guest-tasks-header h2 { margin: 3px 0 0; font-size: 23px; }
.guest-tasks-header span { color: var(--platform-muted); font-size: 12px; }
.guest-task-list { margin: 0; padding: 0; list-style: none; }
.guest-task-list li { display: grid; grid-template-columns: 1fr auto; gap: 18px; align-items: center; padding: 18px 22px; border-bottom: 1px solid var(--platform-line); }
.guest-task-list li:last-child { border-bottom: 0; }
.guest-task-list h3 { margin: 0 0 4px; font-size: 17px; }
.guest-task-list p { margin: 0; color: var(--platform-muted); font-size: 13px; }
.guest-task-list a { color: #315f71; font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.guest-empty { margin: 0; padding: 24px 22px; color: var(--platform-muted); }

.access-state { min-height: 58vh; display: grid; place-items: center; }
.access-state-card { width: min(100%, 680px); border: 1px solid var(--platform-line); background: #fff; padding: clamp(28px, 6vw, 58px); text-align: center; }
.access-state-icon { width: 62px; height: 62px; display: grid; place-items: center; margin: 0 auto 20px; border: 1px solid #bdc8ca; border-radius: 50%; color: #456c7d; font-size: 22px; }
.access-state h1 { margin: 0 0 12px; font-size: clamp(30px, 5vw, 46px); letter-spacing: -.045em; }
.access-state p { max-width: 510px; margin: 0 auto; color: var(--platform-muted); }
.access-state-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 24px; }

.map-workspace, .map-results { border: 1px solid var(--platform-line); background: #fff; }
.map-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 18px 20px; border-bottom: 1px solid var(--platform-line); }
.map-toolbar h2, .map-results h2 { margin: 0; font-size: 20px; }
.map-toolbar p { margin: 4px 0 0; color: var(--platform-muted); font-size: 12px; }
.map-instructions { padding: 11px 20px; border-bottom: 1px solid var(--platform-line); background: #f6f7f5; color: #596a73; font-size: 12px; }
.map-instructions i { margin-right: 7px; color: var(--platform-blue); }
.map-canvas { width: 100%; height: clamp(430px, 62vh, 700px); background: #d8dedd; }
.map-results { margin-top: 22px; }
.map-results-heading { display: flex; justify-content: space-between; align-items: end; gap: 18px; padding: 20px; border-bottom: 1px solid var(--platform-line); }
.map-results-heading > span { color: var(--platform-muted); font-size: 12px; }
.map-empty { margin: 0; padding: 26px 20px; color: var(--platform-muted); }
.map-result-item { border-bottom: 1px solid var(--platform-line); padding: 0 20px; }
.map-result-item:last-child { border-bottom: 0; }
.map-result-item summary { padding: 16px 0; color: #284f60; cursor: pointer; font-weight: 700; }
.map-result-item ul { margin: 0 0 18px; color: var(--platform-muted); }
.leaflet-container { font-family: inherit; }
.leaflet-bar a { color: var(--platform-ink); }

#my_task_table .box-body,
#other_task_table .box-body {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

#my_task_table .dataTable,
#other_task_table .dataTable { width: 100% !important; }

@media (max-width: 767px) {
  .main-header .logo { width: 100%; }
  .content { padding: 18px 14px; }
  .account-caret { display: none; }
  .platform-page-heading, .map-toolbar, .map-results-heading { align-items: flex-start; flex-direction: column; }
  .guest-hero { grid-template-columns: 1fr; }
  .guest-pill { grid-row: 1; }
  .guest-task-list li { grid-template-columns: 1fr; }
  .map-canvas { height: 58vh; min-height: 390px; }
  #my_task_table .dataTables_wrapper,
  #other_task_table .dataTables_wrapper { min-width: 680px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
