/* Standard shared portal skin hook for future skins */
.bms-standard-skin {
}

html, body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

body.bms-portal-template {
  margin: 0;
  background: #f8fafc;
}

body.bms-portal-template,
body.bms-portal-template #page,
body.bms-portal-template .site,
body.bms-portal-template .site-content,
body.bms-portal-template .entry-content,
body.bms-portal-template .content-area,
body.bms-portal-template .site-main {
  min-height: 100vh;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
}

.bms-portal-page {
  min-height: 100vh;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
}

.bms-portal-shell {
  min-height: 100vh;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  overflow-x: hidden;
}

#bms-portal-root {
  min-height: 100vh;
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

#bms-portal-root,
#bms-portal-root * {
  box-sizing: border-box;
}

#bms-portal-root img,
#bms-portal-root video,
#bms-portal-root canvas,
#bms-portal-root svg,
#bms-portal-root iframe {
  max-width: 100%;
}

#bms-portal-root input,
#bms-portal-root select,
#bms-portal-root textarea,
#bms-portal-root button {
  max-width: 100%;
}

#bms-portal-root table {
  width: 100%;
}

#bms-portal-root .overflow-x-auto {
  -webkit-overflow-scrolling: touch;
}

.bms-portal-shell--guest {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.bms-loading {
  width: min(100%, 460px);
  padding: 24px;
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 30px rgba(0, 0, 0, .05);
}

.bms-loading p {
  margin: 0 0 10px;
}

.bms-login-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 16px;
  border-radius: 10px;
  background: #ea580c;
  color: #fff;
  text-decoration: none;
  font-weight: 600;
}

@media (max-width: 991px) {
  body.bms-portal-template {
    font-size: 16px;
  }

  #bms-portal-root {
    min-height: 100dvh;
  }
}

@media (max-width: 767px) {
  .bms-portal-shell--guest {
    padding: 16px;
  }

  .bms-loading {
    width: 100%;
    padding: 18px;
    border-radius: 14px;
  }

  #bms-portal-root {
    min-height: 100dvh;
  }
}


/* B12-inspired shared portal skin */
.bms-b12-skin {
  --b12-ink: #0f172a;
  --b12-muted: #667085;
  --b12-bg: #f6f8fc;
  --b12-surface: #ffffff;
  --b12-surface-soft: #fbfcfe;
  --b12-border: #e7ebf3;
  --b12-shadow: 0 16px 42px rgba(15, 23, 42, 0.08);
  --b12-shadow-soft: 0 8px 20px rgba(15, 23, 42, 0.06);
  --b12-accent: #ef8d4e;
  --b12-accent-strong: #e56f22;
  --b12-accent-soft: #fff3eb;
  --b12-green: #17b26a;
  --b12-green-soft: #ecfdf3;
  --b12-radius-lg: 24px;
  --b12-radius-md: 18px;
}

.bms-admin-portal-shell.bms-b12-skin {
  --bms-bg: var(--b12-bg) !important;
  --bms-surface: var(--b12-surface) !important;
  --bms-surface-soft: var(--b12-surface-soft) !important;
  --bms-border: var(--b12-border) !important;
  --bms-border-strong: #d8dfeb !important;
  --bms-text: var(--b12-ink) !important;
  --bms-muted: var(--b12-muted) !important;
  --bms-primary: var(--b12-accent) !important;
  --bms-primary-dark: var(--b12-accent-strong) !important;
  --bms-shadow: var(--b12-shadow) !important;
  background:
    radial-gradient(circle at top left, rgba(239,141,78,0.08), transparent 28%),
    linear-gradient(180deg, #fbfcff 0%, #f6f8fc 48%, #f2f5fb 100%) !important;
  color: var(--b12-ink) !important;
  font-size: 16px !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-admin-portal-layout {
  grid-template-columns: minmax(260px, 284px) minmax(0, 1fr) !important;
  gap: 0 !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-admin-sidebar {
  background: rgba(255,255,255,0.92) !important;
  color: var(--b12-ink) !important;
  border-right: 1px solid var(--b12-border) !important;
  box-shadow: 16px 0 48px rgba(15,23,42,0.04) !important;
  padding: 22px 18px !important;
  gap: 14px !important;
  backdrop-filter: blur(16px) !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-admin-brand {
  background: linear-gradient(180deg, #fff7f1 0%, #fff 100%) !important;
  border: 1px solid #fde2d1 !important;
  box-shadow: var(--b12-shadow-soft) !important;
  padding: 16px !important;
  border-radius: var(--b12-radius-lg) !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-admin-brand-mark {
  width: 56px !important;
  height: 56px !important;
  border-radius: 18px !important;
  background: linear-gradient(135deg, var(--b12-accent) 0%, var(--b12-accent-strong) 100%) !important;
  box-shadow: 0 12px 28px rgba(239,141,78,0.28) !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-admin-brand h2 {
  font-size: 1.03rem !important;
  font-weight: 800 !important;
  color: var(--b12-ink) !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-admin-menu {
  gap: 8px !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-admin-menu a {
  color: #344054 !important;
  background: transparent !important;
  border: 1px solid transparent !important;
  border-radius: 16px !important;
  padding: 14px 16px !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  min-height: 52px !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-admin-menu a.is-active,
.bms-admin-portal-shell.bms-b12-skin .bms-admin-menu a:hover {
  color: var(--b12-accent-strong) !important;
  background: linear-gradient(180deg, #fff6f0 0%, #fff 100%) !important;
  border-color: #ffd6bc !important;
  box-shadow: 0 10px 24px rgba(239,141,78,0.14) !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-admin-sidebar-footer a {
  border-radius: 16px !important;
  background: linear-gradient(135deg, var(--b12-accent) 0%, var(--b12-accent-strong) 100%) !important;
  color: #fff !important;
  box-shadow: 0 14px 30px rgba(239,141,78,0.24) !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-admin-main {
  padding: clamp(18px, 2vw, 32px) !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-admin-topbar {
  align-items: center !important;
  background: rgba(255,255,255,0.8) !important;
  border: 1px solid rgba(231,235,243,0.9) !important;
  border-radius: 24px !important;
  padding: 16px 18px !important;
  box-shadow: var(--b12-shadow-soft) !important;
  backdrop-filter: blur(14px) !important;
  margin-bottom: 18px !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-admin-topbar h1 {
  font-size: clamp(1.65rem, 2vw, 2.1rem) !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-admin-topbar p {
  font-size: 0.98rem !important;
  color: var(--b12-muted) !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-admin-pill {
  background: var(--b12-accent-soft) !important;
  border-color: #ffd9c4 !important;
  color: var(--b12-accent-strong) !important;
  box-shadow: none !important;
  min-height: 46px !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-admin-mobile-toggle,
.bms-admin-portal-shell.bms-b12-skin .bms-admin-mobile-close {
  border-color: #ffd9c4 !important;
  color: var(--b12-accent-strong) !important;
  background: #fff7f1 !important;
  box-shadow: none !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-card {
  border: 1px solid rgba(231,235,243,0.9) !important;
  border-radius: 24px !important;
  padding: 22px !important;
  box-shadow: var(--b12-shadow) !important;
  background: rgba(255,255,255,0.98) !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-card h3,
.bms-admin-portal-shell.bms-b12-skin .bms-card h4 {
  color: var(--b12-ink) !important;
  letter-spacing: -0.01em !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-stat strong {
  font-size: 2.15rem !important;
  color: var(--b12-ink) !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-stat span {
  font-size: 0.98rem !important;
  color: var(--b12-muted) !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-form-grid {
  gap: 18px !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-form-field label {
  font-size: 0.95rem !important;
  color: #344054 !important;
  margin-bottom: 8px !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-form-field input,
.bms-admin-portal-shell.bms-b12-skin .bms-form-field select,
.bms-admin-portal-shell.bms-b12-skin .bms-form-field textarea {
  border: 1px solid #d8dfeb !important;
  border-radius: 18px !important;
  min-height: 54px !important;
  padding: 14px 16px !important;
  background: #fbfcff !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.8) !important;
  font-size: 1rem !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-form-field textarea {
  min-height: 150px !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-form-field input:focus,
.bms-admin-portal-shell.bms-b12-skin .bms-form-field select:focus,
.bms-admin-portal-shell.bms-b12-skin .bms-form-field textarea:focus {
  border-color: #ffb98f !important;
  box-shadow: 0 0 0 4px rgba(239,141,78,0.14) !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-inline-checks {
  gap: 10px !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-inline-checks label {
  border-radius: 999px !important;
  padding: 10px 14px !important;
  border-color: #d8dfeb !important;
  background: #fff !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-button,
.bms-admin-portal-shell.bms-b12-skin .bms-submit-button {
  background: linear-gradient(135deg, var(--b12-accent) 0%, var(--b12-accent-strong) 100%) !important;
  box-shadow: 0 14px 30px rgba(239,141,78,0.24) !important;
  border-radius: 18px !important;
  min-height: 52px !important;
  padding: 14px 18px !important;
  font-size: 1rem !important;
  font-weight: 800 !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-button.alt {
  background: linear-gradient(135deg, #101828 0%, #1d2939 100%) !important;
  box-shadow: 0 14px 30px rgba(16,24,40,0.18) !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-button.ghost {
  background: #fff !important;
  border: 1px solid #d8dfeb !important;
  color: var(--b12-ink) !important;
  box-shadow: none !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-mini-item,
.bms-admin-portal-shell.bms-b12-skin .bms-thread-card,
.bms-admin-portal-shell.bms-b12-skin .bms-bubble,
.bms-admin-portal-shell.bms-b12-skin .bms-helper-note {
  border-radius: 20px !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-mini-item {
  border-color: var(--b12-border) !important;
  background: linear-gradient(180deg, #fbfcff 0%, #fff 100%) !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-helper-note {
  background: #fff7f1 !important;
  border-color: #ffd9c4 !important;
  color: #b54708 !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-table-wrap {
  border: 1px solid var(--b12-border) !important;
  border-radius: 22px !important;
  background: #fff !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-table {
  min-width: 680px !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-table th {
  background: #fff7f1 !important;
  color: #8c5a3c !important;
  font-size: 0.78rem !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-table th,
.bms-admin-portal-shell.bms-b12-skin .bms-table td {
  padding: 15px 14px !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-status {
  background: var(--b12-green-soft) !important;
  color: #027a48 !important;
  border: 1px solid #abefc6 !important;
}

.bms-admin-portal-shell.bms-b12-skin .bms-empty {
  border-radius: 20px !important;
  background: #fbfcff !important;
  border-color: #d8dfeb !important;
}

.bms-parent-shell.bms-b12-skin {
  background:
    radial-gradient(circle at top right, rgba(239,141,78,0.11), transparent 32%),
    linear-gradient(180deg, #fff9f5 0%, #f6f8fc 34%, #f3f5fa 100%) !important;
  color: var(--b12-ink) !important;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

.bms-parent-shell.bms-b12-skin .bms-parent-topbar {
  background: rgba(255,255,255,0.92) !important;
  border-bottom: 1px solid rgba(231,235,243,0.9) !important;
  box-shadow: 0 8px 24px rgba(15,23,42,0.06) !important;
  backdrop-filter: blur(12px) !important;
}

.bms-parent-shell.bms-b12-skin .bms-parent-topbar-title {
  color: var(--b12-ink) !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em !important;
}

.bms-parent-shell.bms-b12-skin .bms-icon-button {
  background: #fff7f1 !important;
  color: var(--b12-accent-strong) !important;
  border-radius: 14px !important;
  box-shadow: 0 8px 20px rgba(239,141,78,0.12) !important;
}

.bms-parent-shell.bms-b12-skin .bms-bell-badge {
  background: var(--b12-green) !important;
}

.bms-parent-shell.bms-b12-skin .bms-parent-content {
  padding: 20px 16px 28px !important;
}

.bms-parent-shell.bms-b12-skin .bms-parent-section-head h2,
.bms-parent-shell.bms-b12-skin .bms-filter-row h3,
.bms-parent-shell.bms-b12-skin .bms-parent-card h3 {
  color: var(--b12-ink) !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em !important;
}

.bms-parent-shell.bms-b12-skin .bms-profile-avatar {
  border-radius: 24px !important;
  box-shadow: var(--b12-shadow-soft) !important;
}

.bms-parent-shell.bms-b12-skin .bms-profile-avatar span {
  border-radius: 18px !important;
  background: linear-gradient(135deg, var(--b12-accent) 0%, var(--b12-accent-strong) 100%) !important;
}

.bms-parent-shell.bms-b12-skin .bms-type-filter,
.bms-parent-shell.bms-b12-skin .bms-submit-button {
  border-radius: 16px !important;
}

.bms-parent-shell.bms-b12-skin .bms-type-filter {
  background: rgba(255,255,255,0.92) !important;
  box-shadow: var(--b12-shadow-soft) !important;
  font-size: 0.85rem !important;
}

.bms-parent-shell.bms-b12-skin .bms-type-filter.is-active,
.bms-parent-shell.bms-b12-skin .bms-type-filter[data-type="announcement"].is-active,
.bms-parent-shell.bms-b12-skin .bms-type-filter[data-type="message"].is-active {
  background: linear-gradient(135deg, var(--b12-accent) 0%, var(--b12-accent-strong) 100%) !important;
  color: #fff !important;
}

.bms-parent-shell.bms-b12-skin .bms-feed-card,
.bms-parent-shell.bms-b12-skin .bms-parent-card,
.bms-parent-shell.bms-b12-skin .bms-notification-item,
.bms-parent-shell.bms-b12-skin .bms-message-thread,
.bms-parent-shell.bms-b12-skin .bms-message-bubble {
  border-radius: 24px !important;
}

.bms-parent-shell.bms-b12-skin .bms-feed-card,
.bms-parent-shell.bms-b12-skin .bms-parent-card {
  box-shadow: var(--b12-shadow) !important;
  border: 1px solid rgba(231,235,243,0.9) !important;
}

.bms-parent-shell.bms-b12-skin .bms-feed-card.is-unread,
.bms-parent-shell.bms-b12-skin .bms-message-bubble.is-unread,
.bms-parent-shell.bms-b12-skin .bms-notification-item.is-unread {
  border-color: #abefc6 !important;
  background: #f6fff9 !important;
}

.bms-parent-shell.bms-b12-skin .bms-feed-title,
.bms-parent-shell.bms-b12-skin .bms-notification-title {
  color: var(--b12-ink) !important;
  font-weight: 800 !important;
}

.bms-parent-shell.bms-b12-skin .bms-feed-badge {
  border-radius: 999px !important;
  padding: 8px 12px !important;
  font-size: 0.8rem !important;
}

.bms-parent-shell.bms-b12-skin .bms-feed-badge--assignment {
  background: #fff3eb !important;
  color: #b54708 !important;
}

.bms-parent-shell.bms-b12-skin .bms-feed-badge--announcement {
  background: #eef4ff !important;
  color: #1d4ed8 !important;
}

.bms-parent-shell.bms-b12-skin .bms-feed-badge--message {
  background: #f4f3ff !important;
  color: #5925dc !important;
}

.bms-parent-shell.bms-b12-skin .bms-parent-drawer,
.bms-parent-shell.bms-b12-skin .bms-notification-panel {
  background: rgba(255,255,255,0.96) !important;
  backdrop-filter: blur(14px) !important;
}

.bms-parent-shell.bms-b12-skin .bms-parent-bottom-nav {
  background: rgba(255,255,255,0.95) !important;
  border-top: 1px solid rgba(231,235,243,0.9) !important;
  box-shadow: 0 -8px 24px rgba(15,23,42,0.05) !important;
}

.bms-parent-shell.bms-b12-skin .bms-parent-bottom-nav button,
.bms-parent-shell.bms-b12-skin .bms-parent-bottom-nav a {
  color: var(--b12-muted) !important;
  font-weight: 700 !important;
}

.bms-parent-shell.bms-b12-skin .bms-parent-bottom-nav .is-active {
  color: var(--b12-accent-strong) !important;
}

.bms-parent-shell.bms-b12-skin .bms-field-grid input,
.bms-parent-shell.bms-b12-skin .bms-field-grid select,
.bms-parent-shell.bms-b12-skin .bms-field-grid textarea {
  border: 1px solid #d8dfeb !important;
  border-radius: 18px !important;
  min-height: 52px !important;
  background: #fbfcff !important;
  font-size: 1rem !important;
}

.bms-parent-shell.bms-b12-skin .bms-submit-button {
  background: linear-gradient(135deg, var(--b12-accent) 0%, var(--b12-accent-strong) 100%) !important;
  box-shadow: 0 14px 30px rgba(239,141,78,0.24) !important;
  min-height: 52px !important;
  padding: 14px 18px !important;
}

@media (max-width: 1200px) {
  .bms-admin-portal-shell.bms-b12-skin .bms-admin-sidebar {
    width: min(86vw, 300px) !important;
  }
}

@media (max-width: 680px) {
  .bms-admin-portal-shell.bms-b12-skin {
    font-size: 16px !important;
  }

  .bms-admin-portal-shell.bms-b12-skin .bms-card {
    padding: 18px !important;
    border-radius: 20px !important;
  }

  .bms-parent-shell.bms-b12-skin .bms-parent-content {
    padding: 18px 14px 26px !important;
  }
}
