.hub-body { min-height: 100vh; }
.hub-body.is-easter-egg-wiggling { animation: hub-easter-egg-wiggle 1s ease-in-out infinite; }
@keyframes hub-easter-egg-wiggle {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(0) scale(1); }
  8% { transform: translate3d(-16px, 9px, 0) rotate(-1.2deg) scale(.99); }
  17% { transform: translate3d(13px, -14px, 0) rotate(1.4deg) scale(1.01); }
  27% { transform: translate3d(-10px, -17px, 0) rotate(-1.5deg) scale(1); }
  38% { transform: translate3d(18px, 12px, 0) rotate(1.3deg) scale(.99); }
  49% { transform: translate3d(-14px, 16px, 0) rotate(-1.4deg) scale(1.01); }
  61% { transform: translate3d(10px, -12px, 0) rotate(1.5deg) scale(1); }
  73% { transform: translate3d(-18px, -7px, 0) rotate(-1.2deg) scale(.99); }
  85% { transform: translate3d(15px, 15px, 0) rotate(1.4deg) scale(1.01); }
}
@media (prefers-reduced-motion: reduce) {
  .hub-body.is-easter-egg-wiggling { animation: none; }
}
.hub-sidebar { position: fixed; z-index: 30; inset: 0 auto 0 0; width: 264px; display: flex; flex-direction: column; padding: 28px 18px 20px; border-right: 1px solid var(--line); background: rgba(17,16,15,.94); backdrop-filter: blur(18px); }
.hub-brand { display: flex; align-items: center; justify-content: flex-start; min-height: 76px; margin: 0 0 30px; }
.hub-brand-logo { display: block; width: 100%; max-width: 228px; max-height: 76px; object-fit: contain; object-position: left center; filter: drop-shadow(0 5px 13px rgba(255,35,157,.12)); }
.hub-nav-label { padding: 0 12px 10px; color: var(--muted); font-size: .69rem; font-weight: 800; letter-spacing: .15em; }
.hub-nav { display: grid; gap: 6px; }
.hub-nav a, .hub-sidebar-bottom > a { display: flex; align-items: center; gap: 12px; min-height: 46px; padding: 10px 12px; border: 1px solid transparent; border-radius: var(--radius); color: var(--muted); font-weight: 700; transition: 180ms ease; }
.hub-nav a > i:first-child { width: 20px; text-align: center; }
.hub-nav a:hover, .hub-nav a:focus-visible, .hub-nav a.is-active, .hub-sidebar-bottom > a:hover { color: var(--text); border-color: rgba(255,73,198,.35); background: rgba(255,73,198,.1); outline: none; }
.hub-sidebar-bottom { display: grid; gap: 14px; margin-top: auto; }
.hub-user { position: relative; display: flex; align-items: center; gap: 8px; padding: 12px 5px 0; border-top: 1px solid var(--line); font-size: .9rem; font-weight: 700; }
.hub-user img { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; background: var(--panel-strong); }
.hub-user > span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hub-user button { display: grid; place-items: center; flex: 0 0 36px; height: 36px; margin-left: auto; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); color: var(--muted); cursor: pointer; }
.hub-user button:hover { color: var(--text); border-color: var(--pink); }
.hub-notifications { position: relative; flex: 0 0 auto; }
.hub-user .hub-notification-toggle, .hub-user .hub-user-logout { margin: 0; }
.hub-notification-toggle { position: relative; }
.hub-notification-dot { position: absolute; top: 5px; right: 5px; width: 9px; height: 9px; border: 2px solid var(--panel); border-radius: 50%; background: #ff5f6d; }
.hub-notification-panel { position: fixed; z-index: 60; right: 24px; bottom: 24px; width: min(380px, calc(100vw - 32px)); max-height: min(65vh, 520px); overflow: auto; padding: 15px; border: 1px solid var(--line); border-radius: 12px; background: #211d1e; box-shadow: var(--shadow); }
.hub-notification-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.hub-notification-heading strong { font-size: .95rem; }
.hub-notification-actions { display: flex; align-items: center; gap: 6px; }
.hub-notification-heading button { flex: 0 0 auto; min-height: auto; width: auto; height: auto; margin: 0; padding: 5px 8px; border: 0; background: transparent; color: var(--pink); font: inherit; font-size: .75rem; }
.hub-notification-heading button:disabled, .hub-notification-delete:disabled { opacity: .45; cursor: default; }
.hub-notification-empty { margin: 14px 0 2px; color: var(--muted); font-size: .84rem; }
.hub-notification-list { display: grid; gap: 8px; margin: 10px 0 0; padding: 0; list-style: none; }
.hub-notification-item { padding: 10px; border: 1px solid rgba(255,255,255,.08); border-radius: 8px; background: rgba(255,255,255,.025); }
.hub-notification-item.is-unread { border-color: rgba(255,73,198,.3); background: rgba(255,73,198,.06); }
.hub-notification-item-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.hub-notification-delete { flex: 0 0 auto; display: grid; place-items: center; width: 28px; height: 28px; margin: -5px -5px 0 0; border: 0; border-radius: 6px; background: transparent; color: var(--muted); cursor: pointer; }
.hub-notification-delete:hover { background: rgba(255,95,109,.12); color: #ff7580; }
.hub-notification-item strong { display: block; font-size: .83rem; }
.hub-notification-item p { margin: 4px 0; color: var(--muted); font-size: .8rem; line-height: 1.4; white-space: pre-wrap; overflow-wrap: anywhere; }
.hub-notification-item time { color: var(--muted); font-size: .7rem; }
.hub-main { min-height: 100vh; margin-left: 264px; display: flex; flex: 1 0 auto; flex-direction: column; }
.hub-topbar { position: sticky; z-index: 10; top: 0; min-height: 70px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 12px clamp(22px, 5vw, 72px); border-bottom: 1px solid var(--line); background: rgba(17,16,15,.78); backdrop-filter: blur(18px); }
.hub-topbar .eyebrow { font-size: .68rem; }
.hub-breadcrumb { color: var(--muted); font-size: .9rem; }
.hub-access { display: inline-flex; align-items: center; gap: 8px; color: var(--green); font-size: .82rem; font-weight: 700; }
.hub-content { width: min(1100px, 100%); margin: 0 auto; padding: clamp(34px, 5vw, 68px) clamp(22px, 5vw, 72px) 22px; display: flex; flex: 1 0 auto; flex-direction: column; }
.hub-welcome { margin-bottom: 30px; }
.hub-welcome h1 { margin: 8px 0 8px; font-size: clamp(2.1rem, 4vw, 3.25rem); letter-spacing: -.045em; }
.hub-welcome p, .hub-login-card p { margin: 0; color: var(--muted); }
.hub-status { margin: 18px 0; color: var(--muted); }
.hub-status:empty { display: none; }
.hub-status.is-error { color: var(--amber); }
.hub-login-card { max-width: 550px; margin: 46px auto; padding: clamp(26px, 5vw, 48px); border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(145deg, rgba(45,39,40,.9), rgba(35,31,32,.82)); box-shadow: var(--shadow); text-align: center; }
.hub-login-icon { width: 64px; height: 64px; display: grid; place-items: center; margin: 0 auto 18px; border: 1px solid rgba(255,73,198,.35); border-radius: 18px; background: rgba(255,73,198,.1); color: var(--pink); font-size: 1.8rem; }
.hub-login-card h2 { margin: 8px 0 10px; font-size: 1.8rem; }
.hub-login-card p { margin-bottom: 24px; }
.hub-summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.hub-summary-card { min-height: 156px; display: flex; align-items: flex-start; gap: 14px; padding: 22px 18px; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(145deg, rgba(45,39,40,.8), rgba(35,31,32,.75)); box-shadow: 0 12px 34px rgba(0,0,0,.15); transition: 180ms ease; }
.hub-summary-card:hover, .hub-links-grid a:hover { transform: translateY(-2px); border-color: rgba(255,73,198,.42); background-color: rgba(255,73,198,.06); }
.hub-summary-icon { flex: 0 0 42px; width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; background: rgba(255,73,198,.12); color: var(--pink); }
.hub-summary-copy { display: grid; gap: 5px; }
.hub-summary-copy strong { font-size: 1rem; }
.hub-summary-copy span { color: var(--muted); font-size: .84rem; line-height: 1.45; }
.hub-card-arrow { margin: 4px 0 0 auto; color: var(--muted); font-size: .8rem; }
.hub-section { margin-top: 52px; }
.hub-section-heading { display: flex; align-items: end; justify-content: space-between; margin-bottom: 17px; }
.hub-section-heading h2 { margin: 5px 0 0; font-size: 1.65rem; }
.hub-links-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.hub-links-grid a { min-width: 0; display: flex; align-items: center; gap: 12px; padding: 16px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); transition: 180ms ease; }
.hub-links-grid a > i:first-child { color: var(--pink); font-size: 1.15rem; }
.hub-links-grid a > i:last-child { margin-left: auto; color: var(--muted); font-size: .8rem; }
.hub-links-grid a span { min-width: 0; display: grid; gap: 3px; }
.hub-links-grid strong, .hub-links-grid small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hub-links-grid small { color: var(--muted); font-size: .78rem; }
.hub-access-pending { display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: center; gap: 13px; margin: 0 0 18px; padding: 15px 17px; border: 1px solid rgba(240,220,145,.28); border-radius: var(--radius); background: linear-gradient(125deg, rgba(240,220,145,.1), rgba(35,31,32,.8)); }
.hub-access-pending[hidden] { display: none; }
.hub-access-pending-icon { display: grid; width: 40px; height: 40px; place-items: center; border: 1px solid rgba(240,220,145,.28); border-radius: 11px; background: rgba(240,220,145,.1); color: #f0dc91; }
.hub-access-pending strong { color: var(--text); font-size: .94rem; }
.hub-access-pending p { margin: 4px 0 0; color: var(--muted); font-size: .84rem; line-height: 1.5; }
.hub-profile-icon { width: 46px; height: 46px; flex: 0 0 46px; display: grid; place-items: center; border-radius: 13px; background: rgba(255,73,198,.12); color: var(--pink); font-size: 1.15rem; }
.hub-profile-status { display: inline-flex; align-items: center; gap: 7px; margin-left: auto; color: var(--green); font-size: .82rem; font-weight: 700; white-space: nowrap; }
.hub-profile-status.is-not-authorized { color: #ff7373; }
.hub-team-section { margin-top: 12px; }
.hub-archived-section { margin-top: 34px; }
.hub-archived-section .hub-section-heading { align-items: center; margin-bottom: 12px; }
.hub-blacklist-section { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--line); }
.hub-blacklist-section .hub-section-heading { align-items: center; margin-bottom: 12px; }
.hub-blacklist-section .btn { min-height: 42px; padding: 9px 13px; white-space: nowrap; }
.hub-blacklist-count { display: inline-flex; min-width: 24px; align-items: center; justify-content: center; margin-left: 5px; padding: 2px 7px; border-radius: 99px; background: rgba(255,255,255,.08); color: var(--muted); font-size: .78rem; vertical-align: middle; }
.hub-archive-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 10px; background: rgba(35,31,32,.55); }
.hub-archive-table { width: 100%; min-width: 760px; border-collapse: collapse; font-size: .84rem; line-height: 1.45; }
.hub-archive-table th, .hub-archive-table td { padding: 11px 13px; border-bottom: 1px solid rgba(255,255,255,.07); text-align: left; vertical-align: top; }
.hub-archive-table th { color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.hub-archive-table td { overflow-wrap: anywhere; }
.hub-archive-table tbody tr:last-child td { border-bottom: 0; }
.hub-archive-table td:last-child { width: 58px; white-space: nowrap; }
.hub-archive-dialog { width: min(560px, calc(100% - 24px)); }
.hub-archive-dialog-copy { margin: 0 0 16px; color: var(--muted); }
.hub-archive-dialog-copy strong { color: var(--text); }
.hub-archive-reason { display: grid; gap: 6px; color: var(--muted); font-size: .83rem; font-weight: 700; }
.hub-archive-reason textarea { width: 100%; min-height: 100px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 7px; background: #151313; color: var(--text); font: inherit; resize: vertical; }
.hub-archive-reason textarea:focus { border-color: var(--pink); outline: 2px solid rgba(255,73,198,.16); }
.hub-activity-section { margin-top: 12px; }
.hub-activity-count { color: var(--muted); font-size: .82rem; }
.hub-activity-search { display: flex; align-items: center; gap: 10px; max-width: 520px; min-height: 46px; margin: 16px 0 22px; padding: 0 13px; border: 1px solid var(--line); border-radius: 8px; background: rgba(17,16,15,.7); color: var(--muted); }
.hub-activity-search:focus-within { border-color: var(--pink); outline: 2px solid rgba(255,73,198,.16); }
.hub-activity-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--text); font: inherit; }
.hub-activity-search input::placeholder { color: var(--muted); }
.hub-inactive-section { margin: 0 0 30px; padding: 18px; border: 1px solid rgba(255,195,105,.3); border-radius: var(--radius); background: linear-gradient(145deg, rgba(255,195,105,.07), rgba(35,31,32,.62)); }
.hub-inactive-section[hidden] { display: none; }
.hub-inactive-section .hub-section-heading { align-items: center; margin-bottom: 14px; }
.hub-inactive-section h3, .hub-activity-all-heading h3 { margin: 5px 0 0; font-size: 1.2rem; }
.hub-inactive-section .hub-activity-card { border-color: rgba(255,195,105,.2); }
.hub-activity-all-heading { margin: 22px 0 14px; }
.hub-activity-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); grid-auto-rows: 1fr; align-items: stretch; gap: 14px; }
.hub-activity-card { min-width: 0; min-height: 190px; display: flex; flex-direction: column; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(145deg, rgba(45,39,40,.8), rgba(35,31,32,.75)); box-shadow: 0 9px 26px rgba(0,0,0,.14); }
.hub-activity-card.is-inactive-one-month, .hub-inactive-section .hub-activity-card.is-inactive-one-month { border-color: rgba(255,165,65,.82); box-shadow: 0 0 0 1px rgba(255,165,65,.2), 0 0 18px rgba(255,145,35,.24), 0 9px 26px rgba(0,0,0,.14); }
.hub-activity-card.is-inactive-two-months { border-color: rgba(255,76,82,.9); box-shadow: 0 0 0 1px rgba(255,76,82,.26), 0 0 20px rgba(255,57,65,.34), 0 9px 26px rgba(0,0,0,.14); }
.hub-activity-card.is-on-vacation, .hub-inactive-section .hub-activity-card.is-on-vacation { border-color: rgba(105,185,255,.9); box-shadow: 0 0 0 1px rgba(105,185,255,.24), 0 0 20px rgba(72,156,255,.28), 0 9px 26px rgba(0,0,0,.14); }
.hub-activity-card-heading { display: flex; align-items: center; gap: 12px; }
.hub-activity-status-ok, .hub-activity-status-vacation, .hub-activity-status-warning, .hub-activity-status-inactive { flex: 0 0 auto; margin-left: auto; font-size: 1.2rem; }
.hub-activity-status-ok { color: var(--green); filter: drop-shadow(0 0 6px rgba(100,220,160,.42)); }
.hub-activity-status-vacation { color: #78bdff; filter: drop-shadow(0 0 6px rgba(105,185,255,.5)); }
.hub-activity-status-warning { color: #ffc369; filter: drop-shadow(0 0 6px rgba(255,165,65,.5)); }
.hub-activity-status-inactive { color: #ff777d; filter: drop-shadow(0 0 6px rgba(255,76,82,.5)); }
.hub-activity-avatar { width: 48px; height: 48px; flex: 0 0 48px; border: 1px solid var(--line); border-radius: 50%; background: var(--panel-strong); object-fit: cover; }
.hub-activity-identity { min-width: 0; display: grid; gap: 4px; }
.hub-activity-identity strong { display: block; overflow: hidden; white-space: nowrap; }
.hub-activity-identity strong > span { display: inline-block; white-space: nowrap; }
.hub-activity-identity strong.is-scrolling > span { animation: hub-activity-name-scroll var(--activity-name-duration) ease-in-out .6s infinite alternate; }
@keyframes hub-activity-name-scroll { to { transform: translateX(var(--activity-name-distance)); } }
.hub-activity-rank { width: fit-content; max-width: 100%; padding: 4px 8px; border: 1px solid rgba(255,73,198,.28); border-radius: 99px; background: rgba(255,73,198,.08); color: var(--pink); font-size: .74rem; font-weight: 750; overflow-wrap: anywhere; }
.hub-activity-last-tour { display: grid; gap: 5px; margin-top: auto; padding-top: 18px; }
.hub-activity-last-tour > span { color: var(--muted); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.hub-activity-last-tour > strong, .hub-activity-last-tour > a { font-size: .9rem; }
.hub-activity-vacation { display: grid; gap: 5px; padding-top: 10px; }
.hub-activity-vacation > span { color: var(--muted); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.hub-activity-vacation > strong { font-size: .9rem; }
.hub-activity-last-tour > a, .hub-activity-profile { color: var(--pink); text-decoration: underline; text-underline-offset: 3px; }
.hub-activity-profile { display: inline-block; align-self: flex-start; margin-top: 12px; font-size: .78rem; }
.hub-activity-actions { display: flex; align-items: flex-start; justify-content: flex-start; gap: 8px 6px; margin-top: 14px; }
.hub-activity-actions .hub-account-platform { min-width: 78px; padding: 5px 3px; }
.hub-activity-actions .hub-account-platform img, .hub-activity-actions .hub-account-platform > i { width: 34px; height: 34px; display: grid; place-items: center; object-fit: contain; }
.hub-activity-actions .hub-account-platform > i { font-size: 1.45rem; }
.hub-activity-actions .hub-account-platform strong { font-size: .72rem; }
.hub-activity-actions .hub-account-platform small { font-size: .65rem; }
.hub-account-platform-button { border: 0; background: transparent; font: inherit; cursor: pointer; }
.hub-activity-actions .hub-account-platform-button:hover, .hub-activity-actions .hub-account-platform-button:focus-visible { color: var(--pink); transform: translateY(-2px); }
.hub-activity-actions .hub-account-platform-button:focus-visible { outline: 2px solid rgba(255,73,198,.55); outline-offset: 2px; }
.hub-activity-actions .hub-activity-profile { margin-top: 0; }
.hub-convoy-section { margin-top: 32px; }
.hub-convoy-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); align-items: stretch; gap: 14px; }
.hub-convoy-card { min-width: 0; display: flex; flex-direction: column; gap: 15px; padding: 19px; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(145deg, rgba(45,39,40,.8), rgba(35,31,32,.75)); box-shadow: 0 9px 26px rgba(0,0,0,.14); }
.hub-convoy-card h3 { margin: 0; font-size: 1.08rem; line-height: 1.4; overflow-wrap: anywhere; }
.hub-convoy-details { display: grid; gap: 9px; color: var(--muted); font-size: .84rem; }
.hub-convoy-details > span { display: flex; align-items: flex-start; gap: 9px; }
.hub-convoy-details i { width: 16px; margin-top: 3px; color: var(--pink); text-align: center; }
.hub-convoy-crew { display: grid; gap: 6px; padding: 12px; border: 1px solid rgba(255,73,198,.2); border-radius: 9px; background: rgba(255,73,198,.055); font-size: .8rem; }
.hub-convoy-crew ul { display: grid; gap: 4px; margin: 0; padding-left: 18px; color: var(--muted); }
.hub-points-event[hidden], #convoy-archive-view[hidden], #convoy-current-view[hidden], #convoy-attending-view[hidden] { display: none !important; }
.hub-convoy-link { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; color: var(--pink); font-size: .84rem; font-weight: 750; text-decoration: underline; text-underline-offset: 3px; }
.hub-convoy-link:hover { color: var(--text); }
.hub-dashboard { margin: 8px 0 38px; }
.hub-dashboard-heading { margin-bottom: 16px; }
.hub-dashboard-heading h2 { margin: 4px 0 0; font-size: 1.55rem; }
.hub-stat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.hub-stat-card { display: flex; align-items: center; gap: 14px; min-height: 100px; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(145deg, rgba(45,39,40,.8), rgba(35,31,32,.75)); }
.hub-stat-icon, .hub-dashboard-link-icon { width: 44px; height: 44px; flex: 0 0 44px; display: grid; place-items: center; border-radius: 12px; background: rgba(255,73,198,.12); color: var(--pink); font-size: 1.1rem; }
.hub-stat-card > div { display: grid; gap: 2px; }
.hub-stat-card > div > span { color: var(--muted); font-size: .8rem; }
.hub-stat-card strong { font-size: 1.55rem; line-height: 1.1; }
.hub-dashboard-link { display: flex; align-items: center; gap: 14px; margin-top: 14px; padding: 16px 18px; border: 1px solid rgba(255,73,198,.28); border-radius: var(--radius); background: rgba(255,73,198,.055); transition: 180ms ease; }
.hub-dashboard-link:hover { border-color: rgba(255,73,198,.6); background: rgba(255,73,198,.1); }
.hub-dashboard-link > span:nth-child(2) { display: grid; gap: 3px; }
.hub-dashboard-link small { color: var(--muted); font-size: .82rem; }
.hub-dashboard-link > i:last-child { margin-left: auto; color: var(--pink); }
.hub-team-toolbar { display: grid; grid-template-columns: minmax(220px, 1fr) auto; align-items: center; gap: 14px; margin-bottom: 16px; }
.hub-platform-counts { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin: 0 0 14px; }
.hub-platform-count { min-width: 0; display: grid; grid-template-columns: 30px 1fr auto; grid-template-rows: auto auto; align-items: center; column-gap: 10px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: linear-gradient(145deg, rgba(45,39,40,.8), rgba(35,31,32,.75)); }
.hub-platform-count img { grid-row: 1 / span 2; width: 26px; height: 26px; object-fit: contain; }
.hub-platform-count > span { overflow: hidden; color: var(--muted); font-size: .78rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.hub-platform-count > strong { grid-column: 3; grid-row: 1 / span 2; font-size: 1.35rem; line-height: 1; }
.hub-platform-count > small { color: var(--muted); font-size: .68rem; }
.hub-convoy-actions { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); gap: 10px; }
.hub-convoy-actions > .btn { width: 100%; min-height: 44px; padding: 10px 12px; gap: 8px; text-align: center; white-space: nowrap; }
.hub-team-view-switch { display: inline-flex; gap: 3px; padding: 4px; border: 1px solid var(--line); border-radius: 10px; background: rgba(35,31,32,.9); }
.hub-team-view-switch button { display: inline-flex; align-items: center; gap: 7px; min-height: 34px; padding: 6px 10px; border: 1px solid transparent; border-radius: 7px; background: transparent; color: var(--muted); font: inherit; font-size: .8rem; font-weight: 700; white-space: nowrap; cursor: pointer; }
.hub-team-view-switch button:hover, .hub-team-view-switch button:focus-visible { color: var(--text); outline: none; }
.hub-team-view-switch button.is-active { border-color: rgba(255,73,198,.3); background: rgba(255,73,198,.12); color: var(--text); }
.hub-team-view-switch button span { min-width: 20px; padding: 1px 5px; border-radius: 99px; background: rgba(255,255,255,.08); color: inherit; font-size: .7rem; text-align: center; }
.hub-search { min-width: min(360px, 100%); min-height: 44px; display: flex; align-items: center; gap: 10px; padding: 0 14px; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(35,31,32,.9); color: var(--muted); }
.hub-search:focus-within { border-color: rgba(255,73,198,.6); }
.hub-search input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--text); font: inherit; }
.hub-search input::placeholder { color: #a99d97; }
.hub-team-notice { min-height: 1.4em; margin: 0 0 8px; color: var(--muted); font-size: .88rem; }
.hub-team-notice.is-error { color: var(--amber); }
.hub-tmp-sync { min-height: 1.3em; margin: 0 0 5px; color: var(--muted); font-size: .78rem; line-height: 1.5; }
.hub-tmp-sync.is-stale { color: var(--amber); }
.hub-nickname-cell { white-space: nowrap; }
.hub-discord-profile { color: var(--pink); font-variant-numeric: tabular-nums; text-decoration: underline; text-decoration-color: rgba(255,73,198,.45); text-underline-offset: 3px; }
.hub-discord-profile:hover { color: var(--text); }
.hub-discord-name { min-width: 0; display: grid; gap: 2px; }
.hub-discord-name strong { overflow-wrap: anywhere; }
.hub-discord-name small { color: var(--muted); font-size: .75rem; }
.hub-platform-list { display: flex; align-items: center; gap: 6px; }
.hub-platform-item { position: relative; width: 28px; height: 28px; flex: 0 0 28px; display: grid; place-items: center; border-radius: 7px; color: var(--text); }
.hub-platform-item[href] { cursor: pointer; }
.hub-platform-item.is-clickable { cursor: pointer; }
.hub-platform-item[href]:hover { background: rgba(255,255,255,.08); }
.hub-platform-item.is-clickable:hover, .hub-platform-item.is-clickable:focus-visible { background: rgba(255,255,255,.08); outline: 2px solid rgba(255,73,198,.55); outline-offset: 2px; }
.hub-platform-item.is-empty .hub-platform-logo { opacity: .38; }
.hub-platform-missing-dot { position: absolute; top: -2px; right: -2px; width: 9px; height: 9px; border: 1px solid #211d1e; border-radius: 50%; background: #ff4f5e; box-shadow: 0 0 7px 2px rgba(255,79,94,.75); animation: hub-platform-dot-pulse 1.6s ease-out infinite; }
.hub-platform-duplicate-dot { position: absolute; top: -2px; right: -2px; width: 9px; height: 9px; border: 1px solid #211d1e; border-radius: 50%; background: #39a9ff; box-shadow: 0 0 7px 2px rgba(57,169,255,.78); animation: hub-platform-duplicate-pulse 1.6s ease-out infinite; }
@keyframes hub-platform-dot-pulse { 0% { box-shadow: 0 0 0 0 rgba(255,79,94,.72); } 70% { box-shadow: 0 0 0 6px rgba(255,79,94,0); } 100% { box-shadow: 0 0 0 0 rgba(255,79,94,0); } }
@keyframes hub-platform-duplicate-pulse { 0% { box-shadow: 0 0 0 0 rgba(57,169,255,.78); } 70% { box-shadow: 0 0 0 6px rgba(57,169,255,0); } 100% { box-shadow: 0 0 0 0 rgba(57,169,255,0); } }
.hub-platform-logo { width: 22px; height: 22px; display: block; object-fit: contain; }
.hub-tmp-indicator { display: inline-block; width: 9px; height: 9px; margin: 0 9px 1px 0; border-radius: 50%; vertical-align: middle; box-shadow: 0 0 0 2px rgba(255,255,255,.07); }
.hub-tmp-indicator.is-active { background: #47d889; box-shadow: 0 0 8px rgba(71,216,137,.48); }
.hub-tmp-indicator.is-inactive { background: #ff5b62; box-shadow: 0 0 8px rgba(255,91,98,.42); }
.hub-tmp-indicator.is-unknown { background: #85828a; }
.hub-team-table td.hub-ban-cell { display: flex; flex-flow: row wrap; align-items: center; gap: 6px !important; }
.hub-ban-count { width: fit-content; min-width: 28px; padding: 3px 9px; border: 1px solid transparent; border-radius: 999px; font-weight: 800; text-align: center; font-variant-numeric: tabular-nums; }
.hub-ban-count.is-clear { border-color: rgba(71,216,137,.34); background: rgba(71,216,137,.1); color: #47d889; }
.hub-ban-count.is-banned { border-color: rgba(255,91,98,.38); background: rgba(255,91,98,.1); color: #ff737a; }
.hub-ban-count.is-unknown { border-color: var(--line); color: var(--muted); }
.hub-ban-status { font-weight: 750; }
.hub-ban-status.is-clear { color: #47d889; }
.hub-ban-status.is-banned { color: #ff737a; }
.hub-ban-detected { flex-basis: 100%; color: #ff9298; font-size: .72rem; font-variant-numeric: tabular-nums; }
.hub-vacation-form-card { margin-top: 8px; padding: clamp(20px, 3vw, 30px); border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(145deg, rgba(45,39,40,.8), rgba(35,31,32,.75)); }
.hub-vacation-form-card .hub-section-heading { margin-bottom: 18px; }
.hub-vacation-form-card .hub-section-heading h2 { margin: 5px 0 0; font-size: 1.45rem; }
.hub-vacation-form-card form > .btn { margin-top: 12px; }
.hub-vacation-list { display: grid; gap: 12px; }
.hub-vacation-card { padding: 19px; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(145deg, rgba(45,39,40,.75), rgba(35,31,32,.72)); }
.hub-vacation-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.hub-vacation-card-title h3 { margin: 0; font-size: 1.08rem; }
.hub-vacation-card-title p { margin: 4px 0 0; color: var(--muted); font-size: .85rem; }
.hub-vacation-status { flex: 0 0 auto; padding: 5px 9px; border: 1px solid var(--line); border-radius: 99px; color: var(--muted); font-size: .75rem; font-weight: 800; }
.hub-vacation-status.is-approved { border-color: rgba(100,220,160,.35); color: var(--green); background: rgba(100,220,160,.08); }
.hub-vacation-status.is-rejected { border-color: rgba(255,115,115,.35); color: #ff9292; background: rgba(255,115,115,.08); }
.hub-vacation-status.is-pending { border-color: rgba(255,195,105,.35); color: var(--amber); background: rgba(255,195,105,.08); }
.hub-vacation-status.is-ended { border-color: rgba(110,185,255,.35); color: #8ecaff; background: rgba(110,185,255,.08); }
.hub-vacation-reason { margin: 14px 0 7px; color: var(--text); white-space: pre-wrap; overflow-wrap: anywhere; }
.hub-vacation-meta { display: block; margin-top: 5px; color: var(--muted); font-size: .78rem; }
.hub-vacation-review-note { margin: 12px 0 0; padding: 10px 12px; border-left: 2px solid var(--pink); background: rgba(255,73,198,.06); color: var(--muted); font-size: .86rem; white-space: pre-wrap; }
.hub-vacation-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 16px; }
.hub-vacation-delete:hover { border-color: rgba(255,115,115,.55); color: #ff9292; }
.hub-manager-badge { display: inline-flex; align-items: center; gap: 7px; padding: 8px 11px; border: 1px solid rgba(255,73,198,.32); border-radius: 99px; background: rgba(255,73,198,.08); color: var(--pink); font-size: .78rem; font-weight: 800; }
.hub-vacation-empty { margin: 0; padding: 26px; border: 1px dashed var(--line); border-radius: var(--radius); color: var(--muted); text-align: center; }
.hub-table-wrap { width: 100%; max-height: none; overflow: visible; border: 0; border-radius: 0; background: transparent; }
.hub-team-table { display: block; width: 100%; min-width: 0; border-collapse: separate; border-spacing: 0; font-size: .84rem; line-height: 1.45; }
.hub-team-table thead { display: none; }
.hub-team-table tbody { display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; gap: 9px; }
.hub-team-table tbody tr { min-width: 0; width: 100%; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-content: start; padding: 8px 14px; border: 1px solid rgba(255,255,255,.09); border-radius: 12px; background: linear-gradient(145deg, rgba(42,36,38,.98), rgba(27,24,25,.98)); box-shadow: 0 9px 26px rgba(0,0,0,.16); transition: border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease; }
.hub-team-table tbody tr:hover { transform: translateY(-2px); border-color: rgba(255,73,198,.32); box-shadow: 0 13px 32px rgba(0,0,0,.23); }
.hub-team-table td { min-width: 0; max-width: none; display: grid; align-content: start; gap: 5px; padding: 8px 10px; border: 0; color: #d0c8cd; text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.hub-team-table td::before { content: attr(data-label); color: #a99da4; font-size: .66rem; font-weight: 800; letter-spacing: .065em; line-height: 1.25; text-transform: uppercase; }
.hub-team-table td:first-child { color: var(--text); font-weight: 750; }
.hub-team-table td:first-child::before { color: var(--pink); }
.hub-team-table td.hub-nickname-cell { grid-template-columns: 9px minmax(0, 1fr); align-items: center; column-gap: 10px; padding-bottom: 12px; border-bottom: 1px solid rgba(255,255,255,.08); }
.hub-team-table td.hub-nickname-cell::before { grid-column: 1 / -1; }
.hub-team-table td.hub-nickname-cell .hub-tmp-indicator { margin-right: 0; }
.hub-team-table td.hub-nickname-cell, .hub-team-table td[data-label="Bemerkung"], .hub-team-table td[data-label="Plattform-Profile"], .hub-team-table td[data-label="Verwarnung / Abmahnung"], .hub-team-table td.hub-row-actions { grid-column: 1 / -1; }
.hub-team-table td.hub-nickname-cell { grid-template-columns: 9px minmax(0, 1fr); column-gap: 10px; }
.hub-team-table .hub-platform-open { justify-self: start; flex-wrap: wrap; }
.hub-team-table .hub-row-actions { display: flex; align-items: center; justify-content: flex-end; gap: 7px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.08); }
.hub-team-table .hub-row-actions::before { margin-right: auto; }
.hub-team-table .hub-table-action { width: 34px; height: 34px; margin: 0; border-radius: 8px; }
.hub-team-empty { margin: 0; padding: 30px; border: 1px solid var(--line); border-top: 0; border-radius: 0 0 var(--radius) var(--radius); color: var(--muted); text-align: center; }
.hub-row-actions { white-space: nowrap; }
.hub-table-action { width: 34px; height: 34px; margin-right: 5px; border: 1px solid var(--line); border-radius: 7px; background: var(--panel); color: var(--muted); cursor: pointer; }
.hub-table-action:hover { border-color: var(--pink); color: var(--text); }
.hub-table-action:disabled { opacity: .38; cursor: not-allowed; }
.hub-table-action.is-danger:hover { border-color: #ff7373; color: #ff9292; }
.hub-table-action.is-archive:hover { border-color: var(--amber); color: var(--amber); }
.hub-convoy-actions[hidden], .hub-platform-counts[hidden], .hub-team-section[hidden], .hub-archived-section[hidden] { display: none !important; }
.hub-blacklist-table { width: 100%; border-collapse: separate; border-spacing: 0 8px; font-size: .84rem; line-height: 1.45; }
.hub-blacklist-table thead { display: none; }
.hub-blacklist-table tbody { display: grid; gap: 9px; }
.hub-blacklist-table tbody tr { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .65fr) minmax(0, 1.1fr) minmax(0, 1.1fr) minmax(0, 1.3fr) auto; align-items: center; gap: 12px; padding: 10px 14px; border: 1px solid rgba(255,255,255,.09); border-radius: 12px; background: linear-gradient(145deg, rgba(42,36,38,.98), rgba(27,24,25,.98)); }
.hub-blacklist-table td { min-width: 0; color: #d0c8cd; overflow-wrap: anywhere; }
.hub-blacklist-table td:first-child { font-weight: 800; }
.hub-blacklist-table td:first-child a { color: var(--text); text-decoration-color: rgba(255,73,198,.5); }
.hub-blacklist-table td.hub-row-actions { display: flex; justify-content: flex-end; gap: 6px; }
.hub-blacklist-table td.hub-row-actions::before { content: none; }
.hub-blacklist-identity { display: grid; grid-template-columns: max-content minmax(0, 1fr); align-items: center; gap: 10px; }
.hub-blacklist-label { display: inline-flex; align-items: center; gap: 7px; min-height: 29px; padding: 4px 10px 4px 8px; border: 1px solid currentColor; border-radius: 7px; font-size: .7rem; font-weight: 850; letter-spacing: .01em; line-height: 1.2; white-space: nowrap; box-shadow: inset 0 1px rgba(255,255,255,.08); }
.hub-blacklist-label::before { content: ""; width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 15%, transparent); }
.hub-blacklist-label.is-discord { color: #ff6673; background: linear-gradient(135deg, rgba(255,102,115,.2), rgba(255,102,115,.08)); }
.hub-blacklist-label.is-application { color: #f0dc91; background: linear-gradient(135deg, rgba(240,220,145,.2), rgba(240,220,145,.08)); }
.hub-blacklist-label.is-driver { color: #a6df4b; background: linear-gradient(135deg, rgba(166,223,75,.2), rgba(166,223,75,.08)); }
.hub-blacklist-label.is-information { color: #f4f0f3; background: linear-gradient(135deg, rgba(244,240,243,.15), rgba(244,240,243,.05)); }
.hub-blacklist-name-details { display: grid; min-width: 0; gap: 3px; }
.hub-blacklist-name-details strong { color: var(--text); font-size: .9rem; line-height: 1.25; }
.hub-blacklist-name-details small { color: var(--muted); font-size: .74rem; }
.hub-blacklist-tmp-lookup { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; }
.hub-blacklist-tmp-lookup .btn { min-height: 42px; padding: 8px 11px; white-space: nowrap; }
.hub-blacklist-lookup-status { min-height: 1.3em; margin: 0; color: var(--muted); font-size: .8rem; }
.hub-form-grid input[readonly] { color: #c3b8bf; background: #1b1819; }
.hub-member-dialog { width: min(760px, calc(100% - 24px)); max-height: 90vh; overflow: auto; padding: clamp(20px, 4vw, 34px); border: 1px solid var(--line); border-radius: 10px; background: #211d1e; color: var(--text); box-shadow: var(--shadow); }
.hub-spedv-dialog { width: min(400px, calc(100% - 24px)); }
.hub-points-dialog { width: min(680px, calc(100% - 24px)); }
.hub-points-history-dialog { width: min(760px, calc(100% - 24px)); }
.hub-logbook-dialog { width: min(640px, calc(100% - 24px)); max-height: 90vh; overflow: auto; }
.hub-logbook-copy { margin: -8px 0 16px; color: var(--muted); font-size: .85rem; }
.hub-logbook-calendar-wrap { position: relative; }
.hub-logbook-cutoff { position: absolute; z-index: 1; inset: 0; display: grid; align-content: center; justify-items: center; gap: 4px; padding: 18px; border: 1px solid rgba(255,195,105,.38); border-radius: 8px; background: rgba(21,19,19,.86); color: var(--amber); text-align: center; backdrop-filter: blur(3px); pointer-events: none; }
.hub-logbook-cutoff[hidden] { display: none; }
.hub-logbook-cutoff strong { font-size: 1.15rem; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.hub-logbook-cutoff span { color: var(--muted); font-size: .8rem; font-weight: 650; }
.hub-logbook-controls { display: grid; grid-template-columns: 42px minmax(0, 1fr) 42px; align-items: center; gap: 12px; margin-bottom: 14px; text-align: center; }
.hub-logbook-controls > strong { text-transform: capitalize; }
.hub-logbook-controls .hub-dialog-close { min-height: 40px; }
.hub-logbook-legend { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-bottom: 12px; color: var(--muted); font-size: .78rem; }
.hub-logbook-legend > span { display: inline-flex; align-items: center; gap: 7px; }
.hub-logbook-legend > span::before { width: 11px; height: 11px; border-radius: 3px; background: rgba(255,255,255,.07); content: ""; }
.hub-logbook-legend > .is-driven::before { background: rgba(100,220,160,.25); box-shadow: inset 0 0 0 1px rgba(100,220,160,.6); }
.hub-logbook-legend > .is-untracked::before { background: repeating-linear-gradient(135deg, rgba(255,195,105,.18) 0 2px, rgba(255,255,255,.025) 2px 4px); box-shadow: inset 0 0 0 1px rgba(255,195,105,.28); }
.hub-logbook-weekdays, .hub-logbook-calendar { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.hub-logbook-weekdays { margin-bottom: 6px; color: var(--muted); font-size: .72rem; font-weight: 800; text-align: center; }
.hub-logbook-day { min-height: 58px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; border: 1px solid var(--line); border-radius: 7px; background: rgba(255,255,255,.025); }
.hub-logbook-day strong { font-size: .9rem; }
.hub-logbook-day small { color: var(--muted); font-size: .72rem; line-height: 1; }
.hub-logbook-day.is-driven { border-color: rgba(100,220,160,.38); background: rgba(100,220,160,.1); }
.hub-logbook-day.is-driven small { color: var(--green); font-weight: 900; }
.hub-logbook-day.is-empty small { opacity: .55; }
.hub-logbook-day.is-untracked { border-color: rgba(255,195,105,.18); background: repeating-linear-gradient(135deg, rgba(255,195,105,.07) 0 5px, rgba(255,255,255,.015) 5px 10px); }
.hub-logbook-day.is-untracked strong, .hub-logbook-day.is-untracked small { opacity: .55; }
.hub-logbook-day.is-blank { visibility: hidden; border-color: transparent; background: transparent; }
.hub-points-explainer { margin: -6px 0 18px; color: var(--muted); }
.hub-points-explainer strong { color: var(--pink); }
.hub-points-event { display: grid; gap: 6px; margin-bottom: 18px; color: var(--muted); font-size: .83rem; font-weight: 700; }
.hub-points-event input, .hub-points-event select { width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 7px; background: #151313; color: var(--text); font: inherit; }
.hub-points-event input:focus, .hub-points-event select:focus { border-color: var(--pink); outline: 2px solid rgba(255,73,198,.16); }
.hub-points-event-lookup { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 9px; }
.hub-points-event-lookup .btn { min-height: 42px; padding: 9px 13px; white-space: nowrap; }
.hub-points-event-preview { margin: -7px 0 18px; color: var(--muted); font-size: .84rem; }
.hub-points-picker-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 9px; font-size: .88rem; }
.hub-points-picker-heading label { display: inline-flex; align-items: center; gap: 7px; color: var(--muted); font-size: .8rem; cursor: pointer; }
.hub-points-picker-heading input, .hub-points-member input { width: 18px; height: 18px; flex: 0 0 18px; accent-color: var(--pink); }
.hub-points-search { margin-bottom: 10px; }
.hub-points-member-list { display: grid; max-height: min(38vh, 330px); overflow: auto; border: 1px solid var(--line); border-radius: 8px; background: rgba(17,16,15,.7); }
.hub-points-member { display: flex; align-items: center; gap: 11px; min-width: 0; padding: 10px 12px; border-bottom: 1px solid rgba(255,255,255,.07); cursor: pointer; }
.hub-points-member:last-child { border-bottom: 0; }
.hub-points-member:hover { background: rgba(255,73,198,.06); }
.hub-points-member-identity { min-width: 0; display: grid; gap: 2px; }
.hub-points-member-identity strong { overflow-wrap: anywhere; font-size: .88rem; }
.hub-points-member-identity small { color: var(--muted); font-size: .72rem; }
.hub-points-member-total { margin-left: auto; color: var(--muted); font-size: .75rem; white-space: nowrap; }
.hub-points-bulk-list { display: grid; max-height: min(58vh, 520px); overflow: auto; border: 1px solid var(--line); border-radius: 8px; background: rgba(17,16,15,.7); }
.hub-points-bulk-search { margin-bottom: 10px; }
.hub-points-bulk-row[hidden] { display: none; }
.hub-points-bulk-empty { margin: 0 0 9px; color: var(--muted); font-size: .82rem; }
.hub-points-bulk-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(110px, 150px); align-items: center; gap: 14px; padding: 10px 12px; border-bottom: 1px solid rgba(255,255,255,.07); }
.hub-points-bulk-row:last-child { border-bottom: 0; }
.hub-points-bulk-identity { display: grid; gap: 3px; min-width: 0; }
.hub-points-bulk-identity strong { overflow-wrap: anywhere; font-size: .88rem; }
.hub-points-bulk-identity small { color: var(--muted); font-size: .72rem; }
.hub-points-bulk-row input { width: 100%; min-height: 38px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 7px; background: #151313; color: var(--text); font: inherit; text-align: right; }
.hub-points-bulk-row input:focus { border-color: var(--pink); outline: 2px solid rgba(255,73,198,.16); }
.hub-points-selected { margin: 8px 0 0; color: var(--muted); font-size: .8rem; text-align: right; }
.hub-points-history-list { display: grid; gap: 9px; max-height: 60vh; overflow: auto; }
.hub-points-history-entry { padding: 13px 15px; border: 1px solid var(--line); border-radius: 8px; background: rgba(17,16,15,.55); }
.hub-points-history-entry-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.hub-points-history-entry-heading strong { min-width: 0; flex: 1; overflow-wrap: anywhere; }
.hub-points-history-entry-actions { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 9px; }
.hub-points-history-entry-actions > span { flex: 0 0 auto; padding: 4px 8px; border: 1px solid rgba(100,220,160,.26); border-radius: 99px; background: rgba(100,220,160,.07); color: var(--green); font-size: .76rem; font-weight: 800; white-space: nowrap; }
.hub-points-history-entry-actions > span.is-reversed { border-color: var(--line); background: rgba(255,255,255,.035); color: var(--muted); }
.hub-points-history-entry p { margin: 6px 0 2px; color: var(--muted); font-size: .82rem; }
.hub-points-history-edit-note { padding-left: 9px; border-left: 2px solid rgba(255,73,198,.55); font-size: .74rem !important; }
.hub-points-history-entry time { color: var(--muted); font-size: .72rem; }
.hub-points-history-reversal { color: var(--amber) !important; }
.hub-points-history-undo { display: inline-flex; align-items: center; gap: 6px; min-height: 30px; padding: 5px 8px; border: 1px solid rgba(255,195,105,.28); border-radius: 7px; background: rgba(255,195,105,.055); color: var(--amber); font: inherit; font-size: .72rem; font-weight: 750; white-space: nowrap; cursor: pointer; transition: background 150ms ease, border-color 150ms ease; }
.hub-points-history-undo:hover { border-color: rgba(255,195,105,.65); background: rgba(255,195,105,.14); }
.hub-points-history-undo:disabled { opacity: .5; cursor: default; }
.hub-points-history-edit { display: inline-flex; align-items: center; gap: 6px; min-height: 30px; padding: 5px 8px; border: 1px solid rgba(255,73,198,.26); border-radius: 7px; background: rgba(255,73,198,.055); color: var(--pink); font: inherit; font-size: .72rem; font-weight: 750; white-space: nowrap; cursor: pointer; transition: background 150ms ease, border-color 150ms ease; }
.hub-points-history-edit:hover { border-color: rgba(255,73,198,.65); background: rgba(255,73,198,.13); }
.hub-points-history-empty { padding: 26px; border: 1px dashed var(--line); border-radius: 8px; color: var(--muted); text-align: center; }
@media (max-width: 520px) { .hub-points-history-entry-heading { align-items: flex-start; flex-direction: column; } .hub-points-history-entry-actions { align-self: flex-end; } }
.hub-spedv-username { margin: 0; padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: rgba(17,16,15,.72); font-size: 1.05rem; font-weight: 700; overflow-wrap: anywhere; }
.hub-member-dialog::backdrop { background: rgba(8,7,8,.76); backdrop-filter: blur(4px); }
.hub-dialog-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 22px; }
.hub-dialog-heading h2 { margin: 5px 0 0; font-size: 1.55rem; }
.hub-dialog-close { flex: 0 0 40px; height: 40px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); color: var(--text); cursor: pointer; }
.hub-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.hub-form-grid > label:not(.hub-check) { display: grid; gap: 6px; color: var(--muted); font-size: .83rem; font-weight: 700; }
.hub-form-grid input:not([type="checkbox"]), .hub-form-grid textarea, .hub-form-grid select { width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 7px; background: #151313; color: var(--text); font: inherit; }
.hub-form-grid textarea { resize: vertical; }
.hub-form-grid input:focus, .hub-form-grid textarea:focus, .hub-form-grid select:focus { border-color: var(--pink); outline: 2px solid rgba(255,73,198,.16); }
.hub-form-wide { grid-column: 1 / -1; }
.hub-check { display: inline-flex; align-items: center; gap: 10px; min-height: 42px; padding: 8px 11px; border: 1px solid var(--line); border-radius: 7px; background: #151313; color: var(--text); font-size: .9rem; }
.hub-check input { width: 18px; height: 18px; accent-color: var(--pink); }
.hub-form-error { min-height: 1.4em; margin: 12px 0 0; color: #ff9b9b; font-size: .9rem; }
.hub-dialog-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 10px; }
.hub-footer { display: flex; gap: 18px; margin-top: auto; padding-top: 32px; border-top: 1px solid var(--line); color: var(--muted); font-size: .8rem; }
.hub-footer span { margin-right: auto; }
.hub-footer a:hover { color: var(--text); }
body[data-hub-page="team"] .hub-content { width: 100%; max-width: none; padding-right: clamp(18px, 2vw, 36px); padding-left: clamp(18px, 2vw, 36px); }
@media (max-width: 1050px) { .hub-summary-grid, .hub-links-grid { grid-template-columns: 1fr; } .hub-summary-card { min-height: 0; align-items: center; } }
@media (max-width: 680px) {
  .hub-sidebar { position: sticky; inset: 0 0 auto; width: 100%; min-height: 64px; flex-direction: row; align-items: center; gap: 12px; padding: 8px 14px; border-right: 0; border-bottom: 1px solid var(--line); }
  .hub-brand { flex: 0 1 180px; width: 180px; min-width: 120px; min-height: 48px; margin: 0; }
  .hub-brand-logo { max-height: 54px; }
  .hub-nav-label { display: none; }
  .hub-nav { display: flex; flex: 1; justify-content: flex-end; gap: 3px; overflow-x: auto; }
  .hub-nav a { justify-content: center; min-height: 42px; padding: 8px; font-size: .8rem; white-space: nowrap; }
  .hub-nav a > i:first-child { width: auto; }
  .hub-sidebar-bottom { flex: 0 0 auto; margin: 0; }
  .hub-user { gap: 5px; padding: 0; border: 0; }
  .hub-user img { width: 32px; height: 32px; }
  .hub-user > span { display: none; }
  .hub-user button { flex-basis: 32px; width: 32px; height: 32px; }
  .hub-notification-panel { top: 72px; right: 12px; bottom: auto; max-height: calc(100vh - 88px); max-height: calc(100svh - 88px); }
  .hub-main { min-height: calc(100vh - 64px); min-height: calc(100svh - 64px); margin-left: 0; }
  .hub-topbar { position: static; min-height: 56px; padding: 10px 18px; }
  .hub-access { font-size: .75rem; }
  .hub-content { padding: 34px 18px 20px; }
  .hub-footer { margin-top: auto; flex-wrap: wrap; }
  .hub-profile-status { margin-left: auto; }
  .hub-team-toolbar { grid-template-columns: 1fr; align-items: stretch; }
  .hub-platform-counts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .hub-platform-count { padding: 10px; }
  .hub-convoy-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hub-search { min-width: 0; }
  .hub-team-toolbar .btn { justify-content: center; white-space: normal; line-height: 1.25; }
  .hub-team-view-switch { display: grid; grid-template-columns: 1fr 1fr; }
  .hub-team-view-switch button { justify-content: center; white-space: normal; }
  .hub-team-table tbody tr { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hub-stat-grid { grid-template-columns: 1fr; gap: 9px; }
  .hub-stat-card { min-height: 78px; }
  .hub-activity-grid { grid-template-columns: 1fr; }
  .hub-convoy-grid { grid-template-columns: 1fr; }
}
@media (max-width: 380px) { .hub-nav a { font-size: 0; } .hub-nav a > i:first-child { font-size: 1rem; } .hub-brand { flex-basis: 124px; width: 124px; min-width: 124px; } .hub-brand-logo { max-height: 42px; } }
@media (max-width: 760px) { .hub-blacklist-table tbody tr { grid-template-columns: minmax(0, 1fr); gap: 4px; padding: 10px; } .hub-blacklist-table td { display: grid; gap: 5px; padding: 7px 4px; } .hub-blacklist-table td::before { content: attr(data-label); color: #a99da4; font-size: .66rem; font-weight: 800; letter-spacing: .065em; text-transform: uppercase; } .hub-blacklist-table td.hub-row-actions { display: flex; padding-top: 10px; border-top: 1px solid rgba(255,255,255,.08); } .hub-blacklist-identity { grid-template-columns: 1fr; align-items: start; gap: 7px; } }
@media (max-width: 520px) { .hub-blacklist-tmp-lookup { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .hub-form-grid { grid-template-columns: 1fr; } .hub-form-wide { grid-column: auto; } .hub-dialog-actions { flex-direction: column-reverse; } .hub-dialog-actions .btn { justify-content: center; } .hub-convoy-actions { grid-template-columns: 1fr; } }
.hub-audit-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) minmax(170px, 220px) auto; align-items: end; gap: 12px; margin-bottom: 12px; }
.hub-audit-toolbar .hub-search { width: 100%; }
.hub-audit-type-label { display: grid; gap: 5px; color: var(--muted); font-size: .72rem; font-weight: 800; }
.hub-audit-type-label select { min-height: 44px; padding: 8px 11px; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(35,31,32,.9); color: var(--text); font: inherit; }
.hub-audit-status { min-height: 1.4em; margin: 0 0 10px; color: var(--muted); font-size: .82rem; }
.hub-audit-list { display: grid; gap: 10px; }
.hub-audit-entry { display: grid; gap: 11px; padding: 15px; border: 1px solid var(--line); border-left: 3px solid rgba(255,255,255,.22); border-radius: 10px; background: linear-gradient(145deg, rgba(42,36,38,.88), rgba(27,24,25,.9)); }
.hub-audit-entry.is-login { border-left-color: #70d9a1; }
.hub-audit-entry.is-page_view { border-left-color: #81b9ff; }
.hub-audit-entry.is-change { border-left-color: #f0dc91; }
.hub-audit-entry-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.hub-audit-entry-heading time { color: var(--muted); font-size: .76rem; }
.hub-audit-type-badge { padding: 4px 9px; border: 1px solid rgba(255,255,255,.12); border-radius: 99px; background: rgba(255,255,255,.05); color: #ded6db; font-size: .69rem; font-weight: 800; }
.hub-audit-entry.is-login .hub-audit-type-badge { border-color: rgba(112,217,161,.28); background: rgba(112,217,161,.08); color: #70d9a1; }
.hub-audit-entry.is-page_view .hub-audit-type-badge { border-color: rgba(129,185,255,.28); background: rgba(129,185,255,.08); color: #9cc9ff; }
.hub-audit-entry.is-change .hub-audit-type-badge { border-color: rgba(240,220,145,.28); background: rgba(240,220,145,.08); color: #f0dc91; }
.hub-audit-entry-title { color: var(--text); font-size: .92rem; }
.hub-audit-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 18px; }
.hub-audit-details > div { display: grid; min-width: 0; gap: 2px; }
.hub-audit-detail-label { color: var(--muted); font-size: .65rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.hub-audit-detail-value { color: #d9d1d6; font-size: .76rem; overflow-wrap: anywhere; }
.hub-audit-empty { margin: 0; padding: 30px; border: 1px solid var(--line); border-radius: 10px; color: var(--muted); text-align: center; }
.hub-audit-more-wrap { display: flex; justify-content: center; margin-top: 14px; }
@media (max-width: 760px) { .hub-audit-toolbar { grid-template-columns: 1fr; } .hub-audit-details { grid-template-columns: 1fr; } .hub-audit-entry-heading { align-items: flex-start; flex-direction: column; gap: 7px; } }
body[data-hub-page="account"] .hub-content { width: min(900px, 100%); }
.hub-account-summary { display: flex; align-items: center; gap: 14px; padding: 8px 0 22px; border-bottom: 1px solid var(--line); }
.hub-account-summary-copy { display: grid; min-width: 0; gap: 3px; }
.hub-account-summary-copy .eyebrow { margin-bottom: 2px; }
.hub-account-summary-copy strong { font-size: 1rem; }
.hub-account-summary-copy p { margin: 0; color: var(--muted); font-size: .88rem; }
.hub-account-team { margin-top: 28px; }
.hub-account-team .hub-section-heading { margin-bottom: 8px; }
.hub-account-data { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 0; }
.hub-account-data > div { padding: 10px 18px; border: 0; border-left: 1px solid var(--line); border-radius: 0; background: transparent; }
.hub-account-data > div:first-child { padding-left: 0; border-left: 0; }
.hub-account-data dt { margin-bottom: 7px; color: var(--muted); font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.hub-account-data dd { margin: 0; color: var(--text); overflow-wrap: anywhere; white-space: pre-wrap; font-size: .95rem; font-weight: 650; }
.hub-account-platform-section { display: grid; gap: 16px; margin-top: 26px; text-align: center; }
.hub-account-platform-section > strong { color: var(--muted); font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; }
.hub-account-platforms { display: flex; flex-wrap: wrap; justify-content: center; gap: 18px 22px; }
.hub-activity-section .hub-activity-actions { flex-wrap: nowrap; justify-content: space-between; gap: 4px; }
.hub-account-platform { display: grid; justify-items: center; gap: 7px; min-width: 106px; padding: 5px 8px; border-radius: 9px; color: var(--text); text-decoration: none; text-align: center; transition: color 160ms ease, transform 160ms ease; }
.hub-account-platform[href]:hover { color: var(--pink); transform: translateY(-2px); }
.hub-account-platform img { width: 34px; height: 34px; object-fit: contain; }
.hub-account-platform > span { display: grid; gap: 3px; }
.hub-account-platform strong { font-size: .8rem; }
.hub-account-platform small { color: var(--muted); font-size: .7rem; overflow-wrap: anywhere; }
.hub-account-platform-empty { color: var(--muted); font-size: .84rem; }
@media (max-width: 520px) {
  .hub-account-data { grid-template-columns: 1fr; }
  .hub-account-data > div, .hub-account-data > div:first-child { padding: 12px 0; border-left: 0; border-bottom: 1px solid var(--line); }
  .hub-account-data > div:last-child { border-bottom: 0; }
  .hub-account-summary { flex-wrap: wrap; }
  .hub-account-summary-copy { flex: 1; }
  .hub-profile-status { margin-left: 54px; }
}
@media (max-width: 520px) { .hub-team-table tbody tr { grid-template-columns: minmax(0, 1fr); padding: 8px; } }

/* Keep sidebar links and account controls consistent at every viewport size. */
.hub-nav a { box-sizing: border-box; width: 100%; height: 46px; min-height: 46px; overflow: hidden; white-space: nowrap; }
.hub-user { min-width: 0; }
.hub-user img { flex: 0 0 36px; width: 36px; height: 36px; }
.hub-user button { box-sizing: border-box; flex: 0 0 38px; width: 38px; height: 38px; padding: 0; margin: 0; }
.hub-notifications { flex: 0 0 38px; width: 38px; height: 38px; }
.hub-notifications .hub-notification-toggle { width: 38px; height: 38px; }
@media (max-width: 680px) {
  .hub-sidebar { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto auto; align-items: center; gap: 8px 12px; min-height: 0; }
  .hub-brand { grid-column: 1; grid-row: 1; flex: 0 1 180px; width: 180px; min-width: 120px; }
  .hub-sidebar-bottom { grid-column: 2; grid-row: 1; flex: none; }
  .hub-nav { grid-column: 1 / -1; grid-row: 2; display: flex; width: 100%; min-width: 0; justify-content: flex-start; gap: 5px; }
  .hub-nav a { flex: 0 0 auto; width: auto; height: 46px; min-height: 46px; }
  .hub-user { gap: 6px; }
  .hub-user img { width: 36px; height: 36px; }
  .hub-user button, .hub-notifications, .hub-notifications .hub-notification-toggle { width: 38px; height: 38px; flex-basis: 38px; }
  .hub-notification-panel { top: 118px; right: 12px; bottom: auto; max-height: calc(100vh - 134px); max-height: calc(100svh - 134px); }
  .hub-main { min-height: calc(100vh - 118px); min-height: calc(100svh - 118px); }
}
@media (max-width: 380px) {
  .hub-brand { flex-basis: 124px; width: 124px; min-width: 124px; }
  .hub-nav a { min-width: 44px; justify-content: center; }
}
@media (min-width: 1051px) {
  body[data-hub-page="team"] .hub-table-wrap { overflow-x: auto; }
  body[data-hub-page="team"] .hub-team-table { min-width: 1100px; }
  body[data-hub-page="team"] .hub-team-table tbody tr { grid-template-columns: repeat(11, minmax(0, 1fr)); grid-template-rows: auto auto; padding: 5px 10px; }
  body[data-hub-page="team"] .hub-team-table tbody tr > td { padding: 5px 7px; gap: 3px; }
  body[data-hub-page="team"] .hub-team-table tbody tr > td.hub-nickname-cell { grid-column: 1 / span 2; grid-row: 1; }
  body[data-hub-page="team"] .hub-team-table tbody tr > td[data-label="Vorname"] { grid-column: 3; grid-row: 1; }
  body[data-hub-page="team"] .hub-team-table tbody tr > td[data-label="Rolle"] { grid-column: 4 / span 2; grid-row: 1; }
  body[data-hub-page="team"] .hub-team-table tbody tr > td[data-label="Discord / Profil"] { grid-column: 6; grid-row: 1; }
  body[data-hub-page="team"] .hub-team-table tbody tr > td[data-label="Einstellung"] { grid-column: 7; grid-row: 1; }
  body[data-hub-page="team"] .hub-team-table tbody tr > td[data-label="Plattform-Profile"] { grid-column: 8 / span 2; grid-row: 1; }
  body[data-hub-page="team"] .hub-team-table tbody tr > td[data-label="Urlaub"] { grid-column: 10 / span 2; grid-row: 1; padding-left: 16px; }
  body[data-hub-page="team"] .hub-team-table tbody tr > td[data-label="Bemerkung"] { grid-column: 1 / span 2; grid-row: 2; }
  body[data-hub-page="team"] .hub-team-table tbody tr > td[data-label="Konvoi-Punkte"] { grid-column: 3; grid-row: 2; }
  body[data-hub-page="team"] .hub-team-table tbody tr > td[data-label="Verwarnung / Abmahnung"] { grid-column: 4 / span 2; grid-row: 2; }
  body[data-hub-page="team"] .hub-team-table tbody tr > td.hub-ban-cell { grid-column: 6 / span 2; grid-row: 2; }
  body[data-hub-page="team"] .hub-team-table tbody tr > td.hub-row-actions { grid-column: 8 / span 4; grid-row: 2; }
  body[data-hub-page="team"] .hub-former-team-table tbody tr > td.hub-nickname-cell { grid-column: 1 / span 2; grid-row: 1; }
  body[data-hub-page="team"] .hub-former-team-table tbody tr > td[data-label="Vorname"] { grid-column: 3; grid-row: 1; }
  body[data-hub-page="team"] .hub-former-team-table tbody tr > td[data-label="Rolle"] { grid-column: 4 / span 2; grid-row: 1; }
  body[data-hub-page="team"] .hub-former-team-table tbody tr > td[data-label="Discord / Profil"] { grid-column: 6; grid-row: 1; }
  body[data-hub-page="team"] .hub-former-team-table tbody tr > td[data-label="Einstellung"] { grid-column: 7; grid-row: 1; }
  body[data-hub-page="team"] .hub-former-team-table tbody tr > td[data-label="Plattform-Profile"] { grid-column: 8 / span 2; grid-row: 1; }
  body[data-hub-page="team"] .hub-former-team-table tbody tr > td[data-label="Archiviert am"] { grid-column: 10 / span 2; grid-row: 1; }
  body[data-hub-page="team"] .hub-former-team-table tbody tr > td[data-label="Grund"] { grid-column: 1 / span 7; grid-row: 2; }
  body[data-hub-page="team"] .hub-former-team-table tbody tr > td.hub-row-actions { grid-column: 8 / span 4; grid-row: 2; }
}
