    /* ─── Reset & Base ──────────────────────────────────────────── */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; font-family: 'Share Tech', sans-serif; }
    input, button, select, textarea, option { font-family: 'Share Tech', sans-serif !important; }

    /* ─── Dark theme (default) ─── */
    :root, [data-theme="dark"] {
      --green:   #239F40;
      --green-dk:#1a7a30;
      --red:     #C8102E;
      --bg:      #0F1A10;
      --card:    #1C2A1D;
      --gold:    #D4A017;
      --border:  rgba(255,255,255,0.08);
      --border-focus: rgba(35,159,64,0.6);
      --text:    #E8F0E9;
      --muted:   #7A9B7D;
      --topbar-h: 56px;
      --bottomnav-h: 64px;
      --footer-h: 36px;
      --shadow:  rgba(0,0,0,0.3);
      --input-bg: rgba(255,255,255,0.05);
      --overlay-bg: rgba(0,0,0,0.6);
    }

    /* ─── Light theme ─── */
    [data-theme="light"] {
      --bg:      #F4F6F5;
      --card:    #FFFFFF;
      --border:  rgba(0,0,0,0.10);
      --border-focus: rgba(35,159,64,0.5);
      --text:    #1A1A1A;
      --muted:   #5A6B5C;
      --shadow:  rgba(0,0,0,0.08);
      --input-bg: rgba(0,0,0,0.04);
      --overlay-bg: rgba(0,0,0,0.35);
    }
    /* Light mode overrides for elements with hardcoded dark colours */
    [data-theme="light"] .field-input,
    [data-theme="light"] .field-select {
      background: var(--input-bg) !important;
      color: var(--text) !important;
      border-color: var(--border) !important;
    }
    [data-theme="light"] .btn-ghost {
      color: var(--text);
      border-color: var(--border);
    }
    [data-theme="light"] .btn-ghost:hover {
      background: rgba(0,0,0,0.04);
    }
    [data-theme="light"] #bottomnav {
      background: var(--card);
      box-shadow: 0 -1px 8px var(--shadow);
    }
    [data-theme="light"] .nav-item.active .nav-label {
      color: var(--green);
    }
    [data-theme="light"] .event-card,
    [data-theme="light"] .alert-card {
      background: var(--card);
      box-shadow: 0 1px 4px var(--shadow);
    }
    [data-theme="light"] .profile-avatar {
      color: #fff;
    }
    [data-theme="light"] .toggle-btn {
      background: var(--input-bg);
      color: var(--text);
      border-color: var(--border);
    }
    [data-theme="light"] .toggle-btn.selected {
      color: #fff;
    }
    [data-theme="light"] #topbar {
      box-shadow: 0 1px 4px var(--shadow);
    }
    [data-theme="light"] .home-role-badge {
      color: var(--green);
    }
    [data-theme="light"] .poster-upload-area {
      border-color: var(--border);
      background: var(--input-bg);
    }

    html, body {
      height: 100%;
      background: var(--bg);
      color: var(--text);
      font-family: 'Share Tech', sans-serif;
      font-size: 15px;
      line-height: 1.5;
      -webkit-font-smoothing: antialiased;
      overscroll-behavior: none;
    }

    /* ─── App Shell ─────────────────────────────────────────────── */
    #app {
      display: flex;
      flex-direction: column;
      height: 100dvh;
      width: 100%;
      position: relative;
      overflow: hidden;
    }

    /* ─── Top Bar ───────────────────────────────────────────────── */
    #topbar {
      flex-shrink: 0;
      height: var(--topbar-h);
      background: var(--card);
      border-bottom: 1px solid var(--border);
      display: flex;
      align-items: center;
      padding: 0 12px;
      gap: 8px;
      position: relative;
      z-index: 100;
    }

    #btn-back {
      width: 36px; height: 36px;
      background: none; border: none;
      color: var(--muted); cursor: pointer;
      border-radius: 8px;
      display: flex; align-items: center; justify-content: center;
      font-size: 20px;
      transition: color 0.15s, background 0.15s;
      flex-shrink: 0;
    }
    #btn-back:hover { color: var(--text); background: rgba(255,255,255,0.06); }
    #btn-back.hidden { visibility: hidden; pointer-events: none; }

    #logo {
      flex: 1; text-align: center;
      font-family: 'Share Tech', sans-serif;
      font-size: 22px; font-weight: 700;
      letter-spacing: 0.06em; color: var(--green);
      user-select: none;
    }

    .topbar-actions { display: flex; align-items: center; gap: 4px; flex-shrink: 0; }

    .topbar-btn {
      width: 36px; height: 36px;
      background: none; border: none;
      color: var(--muted); cursor: pointer;
      border-radius: 8px;
      display: flex; align-items: center; justify-content: center;
      font-size: 18px; position: relative;
      transition: color 0.15s, background 0.15s;
    }
    .topbar-btn:hover { color: var(--text); background: rgba(255,255,255,0.06); }

    #bell-badge {
      position: absolute; top: 5px; right: 5px;
      width: 8px; height: 8px;
      background: var(--red); border-radius: 50%;
      border: 1.5px solid var(--card); display: none;
    }
    #bell-badge.visible { display: block; }

    /* ─── Screen Container ──────────────────────────────────────── */
    #screens {
      flex: 1; overflow-y: auto; overflow-x: hidden;
      -webkit-overflow-scrolling: touch; scrollbar-width: none;
    }
    #screens::-webkit-scrollbar { display: none; }

    .screen { display: none; min-height: 100%; padding: 16px 16px 8px; }
    .screen.active { display: block; }

    /* ─── Bottom Nav ────────────────────────────────────────────── */
    #bottomnav {
      flex-shrink: 0; height: var(--bottomnav-h);
      background: var(--card); border-top: 1px solid var(--border);
      display: flex; align-items: stretch;
      position: relative; z-index: 100;
    }

    .tab {
      flex: 1; background: none; border: none; color: var(--muted);
      cursor: pointer; display: flex; flex-direction: column;
      align-items: center; justify-content: center; gap: 3px;
      font-family: 'Share Tech', sans-serif; font-size: 10px;
      font-weight: 500; letter-spacing: 0.02em;
      position: relative; transition: color 0.15s; padding: 8px 2px;
    }
    .tab:hover { color: var(--text); }
    .tab.active { color: var(--green); }
    .tab-icon { font-size: 20px; line-height: 1; }
    .tab-label { line-height: 1; }
    .tab.active::after {
      content: ''; position: absolute;
      bottom: 0; left: 20%; right: 20%;
      height: 3px; background: var(--green);
      border-radius: 3px 3px 0 0;
    }
    #tab-dashboard { display: none; }
    body.show-dashboard #tab-dashboard { display: flex; }

    /* ─── Privacy Footer ────────────────────────────────────────── */
    #privacy-footer {
      flex-shrink: 0; height: var(--footer-h);
      background: var(--bg); border-top: 1px solid var(--border);
      display: flex; align-items: center; justify-content: center;
      padding: 0 16px;
    }
    #privacy-footer p { font-size: 10px; color: var(--muted); text-align: center; letter-spacing: 0.01em; }

    /* ─── Cards ─────────────────────────────────────────────────── */
    .card {
      background: var(--card); border: 1px solid var(--border);
      border-radius: 12px; padding: 16px;
      transition: transform 0.18s ease, box-shadow 0.18s ease;
    }
    .card:hover { transform: translateY(-2px); box-shadow: 0 6px 24px rgba(0,0,0,0.35); }

    /* ─── Buttons ───────────────────────────────────────────────── */
    .btn {
      display: inline-flex; align-items: center; justify-content: center;
      gap: 6px; padding: 10px 20px; border-radius: 8px; border: none;
      font-family: 'Share Tech', sans-serif; font-size: 14px; font-weight: 600;
      cursor: pointer; transition: opacity 0.15s, transform 0.1s;
    }
    .btn:active { transform: scale(0.97); }
    .btn-primary { background: var(--green); color: #fff; }
    .btn-primary:hover { opacity: 0.88; }
    .btn-danger  { background: var(--red); color: #fff; }
    .btn-danger:hover { opacity: 0.88; }
    .btn-ghost { background: rgba(255,255,255,0.06); color: var(--text); border: 1px solid var(--border); }
    .btn-ghost:hover { background: rgba(255,255,255,0.10); }
    .w-full { width: 100%; }

    /* ─── Topbar user chip / login btn ─────────────────────────── */
    #topbar-user-chip {
      display: flex; align-items: center; gap: 5px;
      padding: 5px 10px; border-radius: 20px; border: 1px solid var(--border);
      background: rgba(35,159,64,0.10); color: var(--green);
      font-family: 'Share Tech', sans-serif; font-size: 12px; font-weight: 600;
      cursor: pointer; white-space: nowrap; transition: background 0.15s;
    }
    #topbar-user-chip:hover { background: rgba(35,159,64,0.18); }
    body.guest #topbar-user-chip {
      background: rgba(255,255,255,0.05); color: var(--muted); border-color: var(--border);
    }

    /* ─── Auth-gate modal (slide-up bottom sheet) ───────────────── */
    #auth-gate-overlay {
      position: fixed; inset: 0; z-index: 700;
      background: rgba(0,0,0,0.55); display: flex; align-items: flex-end;
      opacity: 0; pointer-events: none; transition: opacity 0.22s ease;
    }
    #auth-gate-overlay.open { opacity: 1; pointer-events: all; }
    .auth-gate-box {
      width: 100%; background: var(--card);
      border-radius: 20px 20px 0 0; padding: 20px 20px 32px;
      display: flex; flex-direction: column; gap: 14px;
      transform: translateY(100%); transition: transform 0.28s cubic-bezier(0.32,0.72,0,1);
    }
    #auth-gate-overlay.open .auth-gate-box { transform: translateY(0); }
    .auth-gate-handle {
      width: 40px; height: 4px; border-radius: 2px;
      background: rgba(255,255,255,0.15); margin: 0 auto 4px;
    }
    .auth-gate-icon  { font-size: 32px; text-align: center; }
    .auth-gate-title { font-family: 'Share Tech', sans-serif; font-size: 18px; color: var(--text); text-align: center; }
    .auth-gate-msg   { font-size: 13px; color: var(--muted); text-align: center; line-height: 1.6; }
    .auth-gate-skip  {
      background: none; border: none; color: var(--muted);
      font-family: 'Share Tech', sans-serif; font-size: 13px; cursor: pointer;
      text-align: center; padding: 4px; text-decoration: underline dotted;
    }
    .auth-gate-skip:hover { color: var(--text); }

    /* ─── Placeholder screen ────────────────────────────────────── */
    .placeholder-wrap {
      display: flex; flex-direction: column;
      align-items: center; justify-content: center;
      min-height: 55vh; gap: 12px; text-align: center;
    }
    .placeholder-icon { font-size: 52px; opacity: 0.3; }
    .placeholder-title { font-family: 'Share Tech', sans-serif; font-size: 20px; color: var(--muted); }
    .placeholder-sub { font-size: 13px; color: var(--muted); max-width: 240px; }

    /* ─── Home screen ───────────────────────────────────────────── */
    #screen-home { padding: 0 0 8px; }

    /* Welcome banner */
    .home-welcome {
      padding: 18px 16px 14px;
      background: linear-gradient(135deg, rgba(35,159,64,0.14) 0%, transparent 70%);
      border-bottom: 1px solid var(--border);
      display: flex; align-items: center; justify-content: space-between; gap: 10px;
    }
    .home-greeting {
      font-family: 'Share Tech', sans-serif;
      font-size: 18px; color: var(--text); line-height: 1.2;
    }
    .home-greeting span { color: var(--green); }
    .home-role-badge {
      display: inline-flex; align-items: center; gap: 5px; flex-shrink: 0;
      padding: 4px 10px; border-radius: 20px; border: 1px solid var(--border);
      background: rgba(35,159,64,0.12); font-size: 11px; color: var(--green);
      font-weight: 600; letter-spacing: 0.04em;
    }

    /* Filter bar */
    .home-filters {
      padding: 10px 16px; display: flex; flex-direction: column; gap: 8px;
      border-bottom: 1px solid var(--border);
    }
    .home-filter-select {
      padding: 8px 12px; border-radius: 8px;
      background: rgba(255,255,255,0.04); border: 1px solid var(--border);
      color: var(--text); font-family: 'Share Tech', sans-serif; font-size: 13px;
      outline: none; cursor: pointer; -webkit-appearance: none; appearance: none;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%237A9B7D'/%3E%3C/svg%3E");
      background-repeat: no-repeat; background-position: right 12px center;
      padding-right: 30px;
    }
    .home-filter-select option { background: #1a2e1b; }
    .home-filter-pills { display: flex; gap: 6px; flex-wrap: wrap; }
    .filter-pill {
      padding: 5px 12px; border-radius: 16px; border: 1px solid var(--border);
      background: transparent; color: var(--muted);
      font-family: 'Share Tech', sans-serif; font-size: 12px; font-weight: 500;
      cursor: pointer; transition: all 0.15s; white-space: nowrap;
    }
    .filter-pill:hover { border-color: var(--green); color: var(--text); }
    .filter-pill.active {
      background: rgba(35,159,64,0.18); border-color: var(--green);
      color: var(--green); font-weight: 600;
    }

    /* Event list */
    .home-events-list {
      padding: 12px 16px 16px;
      display: flex; flex-direction: column; gap: 12px;
    }
    .home-events-empty {
      text-align: center; padding: 40px 20px;
      color: var(--muted); font-size: 14px;
    }
    .home-events-empty .empty-icon { font-size: 40px; margin-bottom: 8px; opacity: 0.4; }

    /* Event card */
    @keyframes fadeSlideIn {
      from { opacity: 0; transform: translateY(10px); }
      to   { opacity: 1; transform: translateY(0); }
    }

    .event-card {
      padding: 0; overflow: hidden;
      opacity: 0; animation: fadeSlideIn 0.3s ease forwards;
    }
    .event-card-body { padding: 14px 16px 12px; }
    .event-card-foot {
      padding: 10px 16px 12px;
      border-top: 1px solid var(--border);
      display: flex; gap: 8px; align-items: center;
    }

    /* Type badge */
    .event-type-badge {
      display: inline-flex; align-items: center; gap: 4px;
      font-size: 11px; font-weight: 600; letter-spacing: 0.04em;
      padding: 3px 8px; border-radius: 10px; margin-bottom: 8px;
    }
    .event-type-badge[data-type="national"] {
      background: rgba(200,16,46,0.15); color: #e8697e;
    }
    .event-type-badge[data-type="regional"] {
      background: rgba(35,159,64,0.15); color: #5dc96e;
    }
    .event-type-badge[data-type="local"] {
      background: rgba(74,159,212,0.15); color: #7bbfe8;
    }

    .event-name {
      font-family: 'Share Tech', sans-serif;
      font-size: 16px; font-weight: 600; color: var(--text);
      margin-bottom: 8px; line-height: 1.3;
    }
    .event-meta-row {
      display: flex; align-items: flex-start; gap: 6px;
      font-size: 12px; color: var(--muted); margin-bottom: 4px; line-height: 1.4;
    }
    .event-meta-row .meta-icon { flex-shrink: 0; }
    .event-stats {
      display: flex; gap: 14px; margin-top: 10px; padding-top: 10px;
      border-top: 1px solid var(--border);
    }
    .event-stat { font-size: 12px; color: var(--muted); display: flex; align-items: center; gap: 4px; }
    .event-stat strong { color: var(--text); font-weight: 600; }

    /* Attending state */
    .btn-attending {
      background: rgba(35,159,64,0.15) !important;
      color: var(--green) !important;
      border: 1px solid rgba(35,159,64,0.4) !important;
    }

    /* ════════════════════════════════════════════════════════════
       AUTH OVERLAYS (Splash + Register)
       position:absolute so they cover the whole app shell
    ════════════════════════════════════════════════════════════ */
    .auth-overlay {
      position: absolute; inset: 0; z-index: 500;
      overflow-y: auto; overflow-x: hidden;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      display: none; flex-direction: column;
    }
    .auth-overlay::-webkit-scrollbar { display: none; }
    .auth-overlay.active { display: flex; }

    /* ─── Splash Screen ─────────────────────────────────────────── */
    #screen-splash {
      background: linear-gradient(160deg, #0d2e12 0%, #153a1a 35%, #0F1A10 65%);
      min-height: 100%;
    }

    .splash-hero {
      display: flex; flex-direction: column;
      align-items: center; text-align: center;
      padding: 56px 24px 32px; gap: 0;
      /* diagonal green accent */
      background: linear-gradient(155deg,
        rgba(35,159,64,0.22) 0%,
        rgba(35,159,64,0.08) 40%,
        transparent 65%);
    }

    /* ── CSS-drawn raised fist ── */
    .fist-wrap {
      position: relative; width: 72px; height: 88px;
      margin-bottom: 24px; filter: drop-shadow(0 4px 16px rgba(35,159,64,0.4));
    }
    .fist-fingers {
      position: absolute; top: 0; left: 8px; right: 8px;
      height: 38px; display: flex; gap: 3px; align-items: flex-end;
    }
    .fist-finger {
      flex: 1; background: var(--green);
      border-radius: 5px 5px 2px 2px;
    }
    .fist-finger.f-index  { height: 34px; }
    .fist-finger.f-middle { height: 38px; }
    .fist-finger.f-ring   { height: 35px; }
    .fist-finger.f-pinky  { height: 26px; }

    .fist-knuckle-bar {
      position: absolute; top: 34px; left: 8px; right: 8px;
      height: 6px; background: var(--green-dk);
      border-radius: 0;
    }

    .fist-palm {
      position: absolute; bottom: 0; left: 6px; right: 6px;
      height: 52px; background: var(--green);
      border-radius: 4px 4px 12px 12px;
    }
    /* slight palm highlight */
    .fist-palm::after {
      content: ''; position: absolute;
      top: 0; left: 15%; right: 15%; height: 2px;
      background: rgba(255,255,255,0.15); border-radius: 1px;
    }

    .fist-thumb {
      position: absolute; top: 30px; left: 0;
      width: 14px; height: 30px;
      background: var(--green); border-radius: 7px 2px 2px 7px;
    }

    .splash-logo {
      font-family: 'Share Tech', sans-serif;
      font-size: 38px; font-weight: 700;
      letter-spacing: 0.1em; color: #fff;
      text-shadow: 0 2px 16px rgba(35,159,64,0.5);
      margin-bottom: 8px;
    }
    .splash-tagline {
      font-size: 15px; color: rgba(232,240,233,0.6);
      letter-spacing: 0.04em; font-style: italic;
    }

    .splash-form-card {
      background: var(--card); border: 1px solid var(--border);
      border-radius: 20px 20px 0 0;
      padding: 28px 20px 40px;
      margin-top: auto; flex: 1;
      display: flex; flex-direction: column; gap: 12px;
    }

    .splash-divider {
      display: flex; align-items: center; gap: 12px;
      margin: 4px 0;
    }
    .splash-divider::before,
    .splash-divider::after {
      content: ''; flex: 1; height: 1px; background: var(--border);
    }
    .splash-divider span { font-size: 12px; color: var(--muted); }

    /* ─── Google Sign-In button container ───────────────────────── */
    .google-btn-wrap {
      display: flex; justify-content: center; align-items: center;
      min-height: 44px;
    }
    /* iframe injected by GSI — force full width */
    .google-btn-wrap iframe { width: 100% !important; }

    /* ─── Shared Form Styles ────────────────────────────────────── */
    .field-group { display: flex; flex-direction: column; gap: 4px; }

    .field-label {
      font-size: 13px; font-weight: 600; color: var(--text);
      display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
    }
    .field-hint { font-size: 11px; color: var(--muted); font-weight: 400; }

    .field-input {
      width: 100%; padding: 11px 14px;
      background: rgba(255,255,255,0.04);
      border: 1px solid var(--border);
      border-radius: 8px;
      color: var(--text); font-family: 'Share Tech', sans-serif; font-size: 14px;
      outline: none; transition: border-color 0.15s, background 0.15s;
      -webkit-appearance: none; appearance: none;
    }
    .field-input::placeholder { color: var(--muted); }
    .field-input:focus {
      border-color: var(--border-focus);
      background: rgba(35,159,64,0.06);
    }
    .field-input.error { border-color: var(--red) !important; }
    .field-input.error:focus { background: rgba(200,16,46,0.06); }

    .field-select { cursor: pointer; }
    .field-select option { background: #1a2e1b; color: var(--text); }

    .field-error {
      font-size: 12px; color: var(--red); min-height: 16px;
      display: none;
    }
    .field-error.visible { display: block; }

    /* ─── Password toggle ───────────────────────────────────────── */
    .password-wrap { position: relative; }
    .password-wrap .field-input { padding-right: 44px; }
    .password-toggle {
      position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
      background: none; border: none; cursor: pointer;
      font-size: 16px; padding: 4px; color: var(--muted);
      line-height: 1;
    }
    .password-toggle:hover { color: var(--text); }

    /* ─── Register Screen ───────────────────────────────────────── */
    #screen-register {
      background: var(--bg);
      flex-direction: column;
    }

    .auth-topbar {
      flex-shrink: 0; height: 52px;
      background: var(--card); border-bottom: 1px solid var(--border);
      display: flex; align-items: center; padding: 0 12px; gap: 8px;
    }
    .auth-back-btn {
      background: none; border: none; color: var(--muted);
      font-family: 'Share Tech', sans-serif; font-size: 14px; font-weight: 500;
      cursor: pointer; padding: 6px 8px; border-radius: 8px;
      transition: color 0.15s, background 0.15s;
      white-space: nowrap;
    }
    .auth-back-btn:hover { color: var(--text); background: rgba(255,255,255,0.06); }
    .auth-topbar-title {
      flex: 1; text-align: center;
      font-family: 'Share Tech', sans-serif; font-size: 18px; color: var(--text);
    }

    .reg-body {
      padding: 20px 16px 48px;
      display: flex; flex-direction: column; gap: 20px;
    }

    .form-section {
      display: flex; flex-direction: column; gap: 14px;
    }
    .form-section-label {
      font-size: 10px; font-weight: 600; letter-spacing: 0.1em;
      color: var(--green); padding-bottom: 6px;
      border-bottom: 1px solid rgba(35,159,64,0.2);
    }

    /* ─── Multi-select toggle buttons ──────────────────────────── */
    .toggle-group { display: flex; gap: 8px; flex-wrap: wrap; }
    .toggle-btn {
      padding: 7px 16px; border-radius: 20px;
      border: 1px solid var(--border);
      background: transparent; color: var(--muted);
      font-family: 'Share Tech', sans-serif; font-size: 13px; font-weight: 500;
      cursor: pointer; transition: all 0.15s;
    }
    .toggle-btn:hover { border-color: var(--green); color: var(--text); }
    .toggle-btn.selected {
      background: rgba(35,159,64,0.18); border-color: var(--green);
      color: var(--green); font-weight: 600;
    }

    /* ─── Checkbox group ────────────────────────────────────────── */
    .checkbox-group { display: flex; flex-direction: column; gap: 10px; }
    .checkbox-item {
      display: flex; align-items: center; gap: 10px;
      cursor: pointer; font-size: 14px; color: var(--text);
    }
    .checkbox-item input[type="checkbox"] {
      width: 18px; height: 18px; flex-shrink: 0;
      appearance: none; -webkit-appearance: none;
      border: 1.5px solid var(--border); border-radius: 4px;
      background: rgba(255,255,255,0.04); cursor: pointer;
      position: relative; transition: all 0.15s;
    }
    .checkbox-item input[type="checkbox"]:checked {
      background: var(--green); border-color: var(--green);
    }
    .checkbox-item input[type="checkbox"]:checked::after {
      content: ''; position: absolute;
      left: 4px; top: 1px; width: 7px; height: 11px;
      border: 2px solid #fff; border-top: none; border-left: none;
      transform: rotate(40deg);
    }
    .checkbox-item input[type="checkbox"].error { border-color: var(--red); }

    /* ─── GDPR details ──────────────────────────────────────────── */
    .gdpr-wrap { display: flex; flex-direction: column; gap: 10px; }
    .gdpr-details {
      background: rgba(35,159,64,0.06);
      border: 1px solid rgba(35,159,64,0.2);
      border-radius: 8px; overflow: hidden;
    }
    .gdpr-details summary {
      padding: 10px 14px; font-size: 13px; color: var(--green);
      cursor: pointer; list-style: none; font-weight: 600;
      display: flex; align-items: center; gap: 6px;
    }
    .gdpr-details summary::before { content: '▶'; font-size: 9px; transition: transform 0.2s; }
    .gdpr-details[open] summary::before { transform: rotate(90deg); }
    .gdpr-details p {
      padding: 0 14px 12px; font-size: 12px; color: var(--muted); line-height: 1.6;
    }

    /* ─── Login form in splash ──────────────────────────────────── */
    #login-form { display: flex; flex-direction: column; gap: 12px; }

    /* ════════════════════════════════════════════════════════════
       MAP SCREEN
    ════════════════════════════════════════════════════════════ */
    #screen-map {
      padding: 0;
      height: 100%;
      min-height: unset;
      overflow: hidden;
      position: relative;
    }
    #screen-map.active {
      display: flex !important;
      flex-direction: column;
    }
    #map-container {
      flex: 1; position: relative; min-height: 0;
    }
    #google-map { position: absolute; inset: 0; width: 100%; height: 100%; }

    /* ── Google Maps InfoWindow theme ── */
    .gm-style-iw { background: var(--card) !important; color: var(--text) !important;
      border: 1px solid var(--border) !important; border-radius: 12px !important;
      box-shadow: 0 8px 32px rgba(0,0,0,0.6) !important; padding: 0 !important; }
    .gm-style-iw-d { overflow: auto !important; padding: 0 !important; }
    .gm-style-iw-tc::after { display: none !important; }
    .gm-ui-hover-effect { top: 2px !important; right: 2px !important; }
    .gm-ui-hover-effect > span { background-color: var(--muted) !important; }
    .gm-style .gm-style-cc, .gm-style .gmnoprint { opacity: 0.6; }

    /* ── Map popup content ── */
    .map-popup { padding: 14px 30px 13px 14px; max-width: 270px; font-family: 'Share Tech', sans-serif; }
    .map-popup-name {
      font-family: 'Share Tech', sans-serif;
      font-size: 15px; font-weight: 600; color: var(--text);
      margin: 6px 0 8px; line-height: 1.3;
    }
    .map-popup-meta { font-size: 12px; color: var(--muted); margin-bottom: 3px; }
    .map-popup-actions { display: flex; gap: 7px; margin-top: 11px; }

    /* ── Marker icon ── */
    .map-marker-icon { background: none !important; border: none !important; }

    /* ── Map legend ── */
    .map-legend {
      position: absolute; bottom: 28px; left: 10px; z-index: 400;
      background: rgba(15,26,16,0.88); backdrop-filter: blur(8px);
      border: 1px solid var(--border); border-radius: 8px;
      padding: 8px 11px; display: flex; flex-direction: column; gap: 7px;
      pointer-events: none;
    }
    .map-legend-item {
      display: flex; align-items: center; gap: 7px;
      font-family: 'Share Tech', sans-serif; font-size: 11px; color: var(--text);
    }
    .map-legend-dot {
      width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0;
      border: 2px solid #fff; box-shadow: 0 1px 4px rgba(0,0,0,0.5);
    }

    /* ── Map filter button ── */
    .map-filter-btn {
      position: absolute; top: 12px; right: 48px; z-index: 400;
      background: rgba(15,26,16,0.88); backdrop-filter: blur(8px);
      border: 1px solid var(--border); border-radius: 8px;
      color: var(--text); font-family: 'Share Tech', sans-serif;
      font-size: 13px; font-weight: 600; padding: 7px 12px;
      cursor: pointer; display: flex; align-items: center; gap: 6px;
      transition: background 0.15s;
    }
    .map-filter-btn:hover { background: var(--card); }
    .map-filter-active-dot {
      width: 7px; height: 7px; border-radius: 50%;
      background: var(--green); display: none; flex-shrink: 0;
    }
    .map-filter-active-dot.visible { display: block; }

    /* ── Filter drawer backdrop ── */
    .map-filter-overlay {
      position: absolute; inset: 0; z-index: 600;
      background: rgba(0,0,0,0.45); backdrop-filter: blur(2px);
      opacity: 0; pointer-events: none;
      transition: opacity 0.25s;
    }
    .map-filter-overlay.open { opacity: 1; pointer-events: auto; }

    /* ── Filter drawer ── */
    .map-filter-drawer {
      position: absolute; bottom: 0; left: 0; right: 0; z-index: 700;
      background: var(--card);
      border-radius: 16px 16px 0 0;
      border-top: 1px solid var(--border);
      padding: 0 16px 36px;
      transform: translateY(100%);
      transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
      max-height: 78%;
      overflow-y: auto;
    }
    .map-filter-drawer.open { transform: translateY(0); }
    .drawer-handle {
      width: 36px; height: 4px; border-radius: 2px;
      background: rgba(255,255,255,0.14); margin: 10px auto 16px;
    }
    .drawer-header {
      display: flex; align-items: center; justify-content: space-between;
      padding-bottom: 14px; border-bottom: 1px solid var(--border); margin-bottom: 18px;
    }
    .drawer-title {
      font-family: 'Share Tech', sans-serif; font-size: 17px; color: var(--text);
    }
    .drawer-close {
      background: none; border: none; color: var(--muted); font-size: 20px;
      cursor: pointer; padding: 2px 6px; border-radius: 6px; line-height: 1;
      transition: color 0.15s, background 0.15s;
    }
    .drawer-close:hover { color: var(--text); background: rgba(255,255,255,0.06); }
    .drawer-section { margin-bottom: 20px; }
    .drawer-section-label {
      font-size: 10px; font-weight: 600; letter-spacing: 0.1em;
      color: var(--green); margin-bottom: 10px;
    }

    /* ── Toggle switch ── */
    .toggle-row {
      display: flex; align-items: center; justify-content: space-between;
      cursor: pointer; font-size: 14px; color: var(--text); gap: 12px;
    }
    .toggle-switch { position: relative; width: 42px; height: 24px; flex-shrink: 0; }
    .toggle-switch input { opacity: 0; width: 0; height: 0; position: absolute; }
    .toggle-track {
      position: absolute; inset: 0; border-radius: 12px;
      background: rgba(255,255,255,0.12);
      border: 1px solid var(--border);
      transition: background 0.2s, border-color 0.2s; cursor: pointer;
    }
    .toggle-switch input:checked + .toggle-track {
      background: rgba(35,159,64,0.35); border-color: rgba(35,159,64,0.5);
    }
    .toggle-thumb {
      position: absolute; top: 3px; left: 3px;
      width: 16px; height: 16px; border-radius: 50%;
      background: var(--muted); transition: transform 0.2s, background 0.2s;
      pointer-events: none;
    }
    .toggle-switch input:checked + .toggle-track .toggle-thumb {
      transform: translateX(18px); background: var(--green);
    }

    /* ════════════════════════════════════════════════════════════
       EVENT DETAIL SCREEN
    ════════════════════════════════════════════════════════════ */
    #screen-event-detail { padding: 0; }

    /* Poster */
    .ed-poster {
      height: 210px; flex-shrink: 0;
      background: linear-gradient(135deg, #0d2e12 0%, #1a5c28 45%, #239F40 100%);
      display: flex; align-items: center; justify-content: center;
      overflow: hidden; position: relative;
    }
    .ed-poster img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
    .ed-poster-initials {
      font-family: 'Share Tech', sans-serif;
      font-size: 52px; font-weight: 700; letter-spacing: 0.14em;
      color: rgba(255,255,255,0.2); position: relative; z-index: 1;
    }
    .ed-poster::after {
      content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 70px;
      background: linear-gradient(to top, var(--bg), transparent); z-index: 2;
    }

    /* Content wrapper */
    .ed-content { padding: 18px 16px 48px; display: flex; flex-direction: column; gap: 16px; }

    .ed-name {
      font-family: 'Share Tech', sans-serif;
      font-size: 26px; font-weight: 700; color: var(--text); line-height: 1.2; margin-top: 2px;
    }
    .ed-meta-list { display: flex; flex-direction: column; gap: 7px; }
    .ed-meta-row {
      display: flex; align-items: flex-start; gap: 8px;
      font-size: 13px; color: var(--muted); line-height: 1.4;
    }
    .ed-meta-row .meta-icon { flex-shrink: 0; }
    .ed-desc { font-size: 14px; color: var(--text); line-height: 1.65; opacity: 0.85; }

    /* Dos / Don'ts */
    .ed-rules { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
    .ed-rules-col {
      background: rgba(255,255,255,0.03);
      border: 1px solid var(--border); border-radius: 10px; padding: 12px 10px;
    }
    .ed-rules-label {
      font-size: 10px; font-weight: 700; letter-spacing: 0.1em; margin-bottom: 10px;
    }
    .ed-dos   .ed-rules-label { color: var(--green); }
    .ed-donts .ed-rules-label { color: var(--red); }
    .ed-rules-col ul { list-style: none; display: flex; flex-direction: column; gap: 8px; }
    .ed-rules-col li {
      font-size: 12px; color: var(--text); display: flex;
      align-items: flex-start; gap: 5px; line-height: 1.4;
    }
    .do-tick    { color: var(--green); font-weight: 700; flex-shrink: 0; }
    .dont-cross { color: var(--red);   font-weight: 700; flex-shrink: 0; }

    /* Counts */
    .ed-counts {
      font-size: 13px; color: var(--muted); text-align: center;
      padding: 10px 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border);
    }

    /* Action buttons */
    .ed-actions { display: flex; flex-direction: column; gap: 10px; }

    /* Share bar */
    .ed-share-label {
      font-size: 10px; font-weight: 700; letter-spacing: 0.1em;
      color: var(--muted); text-transform: uppercase;
    }
    .share-bar {
      display: flex; gap: 8px;
      overflow-x: auto; padding-bottom: 4px; scrollbar-width: none;
    }
    .share-bar::-webkit-scrollbar { display: none; }
    .share-btn {
      flex-shrink: 0; display: flex; flex-direction: column;
      align-items: center; gap: 5px;
      background: var(--card); border: 1px solid var(--border);
      border-radius: 10px; padding: 11px 13px; cursor: pointer;
      min-width: 66px; transition: all 0.15s;
    }
    .share-btn:hover { background: rgba(255,255,255,0.08); }
    .share-icon { font-size: 20px; line-height: 1; }
    .share-label-txt {
      font-size: 10px; color: var(--muted);
      white-space: nowrap; font-family: 'Share Tech', sans-serif;
    }
    .share-btn-wa {
      background: rgba(37,211,102,0.1); border-color: rgba(37,211,102,0.22);
    }
    .share-btn-wa:hover { background: rgba(37,211,102,0.18); }
    .share-btn-wa .share-label-txt { color: #25D366; }

    /* ════════════════════════════════════════════════════════════
       MODAL OVERLAYS (shared pattern)
    ════════════════════════════════════════════════════════════ */
    @keyframes fadeOverlay { from { opacity:0 } to { opacity:1 } }
    .modal-overlay {
      position: absolute; inset: 0; z-index: 800;
      background: var(--overlay-bg); backdrop-filter: blur(3px);
      opacity: 0; pointer-events: none; transition: opacity 0.22s ease;
    }
    .modal-overlay.open { opacity: 1; pointer-events: auto; }

    /* Bottom-sheet drawer (share sheet + contacts) */
    .modal-drawer {
      position: absolute; bottom: 0; left: 0; right: 0;
      background: var(--card); border-radius: 16px 16px 0 0;
      border-top: 1px solid var(--border);
      padding: 0 16px 40px;
      transform: translateY(100%);
      transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
      max-height: 80%; overflow-y: auto;
    }
    .modal-drawer.open { transform: translateY(0); }

    /* Confirmation modal — centred card */
    .confirm-modal-box {
      position: absolute; top: 50%; left: 50%;
      transform: translate(-50%, -50%) scale(0.88);
      background: var(--card); border: 1px solid var(--border);
      border-radius: 16px; padding: 28px 24px;
      text-align: center; max-width: 300px; width: 88%;
      transition: transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1);
    }
    .modal-overlay.open .confirm-modal-box {
      transform: translate(-50%, -50%) scale(1);
    }
    .confirm-icon {
      width: 56px; height: 56px; border-radius: 50%;
      background: rgba(35,159,64,0.15); border: 2px solid rgba(35,159,64,0.4);
      display: flex; align-items: center; justify-content: center;
      font-size: 26px; color: var(--green); margin: 0 auto 14px;
    }
    .confirm-text {
      font-size: 14px; color: var(--text); line-height: 1.6; margin-bottom: 20px;
    }

    /* Contacts modal */
    .contacts-search-wrap { position: relative; margin-bottom: 14px; }
    .contacts-search-icon {
      position: absolute; left: 11px; top: 50%; transform: translateY(-50%);
      font-size: 14px; pointer-events: none; color: var(--muted);
    }
    .contacts-search {
      width: 100%; padding: 9px 12px 9px 33px;
      background: rgba(255,255,255,0.05); border: 1px solid var(--border);
      border-radius: 8px; color: var(--text);
      font-family: 'Share Tech', sans-serif; font-size: 13px; outline: none;
    }
    .contacts-search::placeholder { color: var(--muted); }
    .contacts-search:focus { border-color: var(--border-focus); }
    .contacts-list { display: flex; flex-direction: column; }
    .contact-row {
      display: flex; align-items: center; gap: 12px;
      padding: 11px 0; border-bottom: 1px solid var(--border);
    }
    .contact-row:last-child { border-bottom: none; }
    .contact-avatar {
      width: 38px; height: 38px; border-radius: 50%; flex-shrink: 0;
      background: linear-gradient(135deg, var(--green-dk), var(--green));
      display: flex; align-items: center; justify-content: center;
      font-size: 12px; font-weight: 700; color: #fff; letter-spacing: 0.02em;
    }
    .contact-info { flex: 1; min-width: 0; }
    .contact-handle { font-size: 13px; font-weight: 600; color: var(--text); }
    .contact-region { font-size: 11px; color: var(--muted); }
    .contact-send-btn {
      background: rgba(255,255,255,0.06); border: 1px solid var(--border);
      border-radius: 6px; padding: 6px 12px; cursor: pointer; flex-shrink: 0;
      font-family: 'Share Tech', sans-serif; font-size: 12px; font-weight: 600;
      color: var(--text); transition: all 0.15s; white-space: nowrap;
    }
    .contact-send-btn:hover { background: rgba(255,255,255,0.1); }
    .contact-send-btn:disabled { cursor: default; opacity: 0.9; }
    .contact-send-btn.sent { color: var(--green); border-color: rgba(35,159,64,0.4); }

    /* ════════════════════════════════════════════════════════════
       DASHBOARD SCREEN (Part 6)
    ════════════════════════════════════════════════════════════ */
    #screen-dashboard { padding: 0; }

    .dash-header {
      padding: 16px 16px 12px;
      display: flex; align-items: center; justify-content: space-between;
      border-bottom: 1px solid var(--border);
    }
    .dash-title { font-family: 'Share Tech', sans-serif; font-size: 20px; color: var(--text); }

    .dash-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .dash-table { width: 100%; border-collapse: collapse; font-size: 12px; min-width: 540px; }
    .dash-table th {
      background: rgba(255,255,255,0.04); color: var(--muted);
      font-size: 10px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase;
      padding: 9px 10px; text-align: left; border-bottom: 1px solid var(--border); white-space: nowrap;
    }
    .dash-table td {
      padding: 10px 10px; border-bottom: 1px solid var(--border);
      color: var(--text); vertical-align: middle;
    }
    .dash-table tr:last-child td { border-bottom: none; }
    .dash-table tr:hover td { background: rgba(255,255,255,0.02); }
    .dash-td-name { max-width: 130px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .dash-td-date { white-space: nowrap; color: var(--muted); font-size: 11px; }
    .dash-td-actions { display: flex; gap: 4px; }

    .status-badge {
      display: inline-block; padding: 3px 8px; border-radius: 10px;
      font-size: 10px; font-weight: 700; letter-spacing: 0.04em; white-space: nowrap;
    }
    .status-badge.draft    { background: rgba(122,155,125,0.15); color: var(--muted); }
    .status-badge.pending  { background: rgba(212,160,23,0.18);  color: var(--gold);  }
    .status-badge.approved { background: rgba(35,159,64,0.18);   color: #5dc96e;      }
    .status-badge.declined { background: rgba(200,16,46,0.15);   color: #e8697e;      }

    .dash-count-btn {
      cursor: pointer; color: var(--green); font-weight: 600;
      text-decoration: underline; text-decoration-style: dotted;
    }
    .dash-count-btn:hover { color: #5dc96e; }

    .dash-action-btn {
      background: rgba(255,255,255,0.06); border: 1px solid var(--border);
      border-radius: 6px; padding: 5px 8px; cursor: pointer;
      font-size: 13px; line-height: 1; transition: background 0.15s;
    }
    .dash-action-btn:hover { background: rgba(255,255,255,0.12); }
    .dash-action-btn.delete-btn { color: var(--red); }
    .dash-action-btn.delete-btn:hover { background: rgba(200,16,46,0.12); }

    /* ════════════════════════════════════════════════════════════
       EVENT FORM SCREEN (Part 6)
    ════════════════════════════════════════════════════════════ */
    #screen-event-form { padding: 0; }
    .ef-topbar { padding: 14px 16px 12px; border-bottom: 1px solid var(--border); }
    .ef-title  { font-family: 'Share Tech', sans-serif; font-size: 18px; color: var(--text); }
    .ef-body   { padding: 20px 16px 48px; display: flex; flex-direction: column; gap: 20px; }
    .ef-section { display: flex; flex-direction: column; gap: 12px; }
    .ef-section-label {
      font-size: 10px; font-weight: 600; letter-spacing: 0.1em;
      color: var(--green); padding-bottom: 6px; border-bottom: 1px solid rgba(35,159,64,0.2);
    }

    .dynamic-list { display: flex; flex-direction: column; gap: 6px; }
    .dynamic-row  { display: flex; gap: 8px; align-items: center; }
    .dynamic-row .field-input { flex: 1; }
    .dynamic-row-remove {
      background: rgba(200,16,46,0.1); border: 1px solid rgba(200,16,46,0.25);
      color: var(--red); border-radius: 6px; padding: 6px 9px;
      cursor: pointer; font-size: 11px; flex-shrink: 0; line-height: 1; transition: background 0.15s;
    }
    .dynamic-row-remove:hover { background: rgba(200,16,46,0.22); }

    .add-row-btn {
      display: flex; align-items: center; gap: 6px;
      background: rgba(255,255,255,0.04); border: 1px dashed var(--border);
      border-radius: 8px; padding: 8px 14px; cursor: pointer; width: 100%;
      font-family: 'Share Tech', sans-serif; font-size: 13px; color: var(--muted); transition: all 0.15s;
    }
    .add-row-btn:hover { border-color: var(--green); color: var(--green); background: rgba(35,159,64,0.06); }

    .poster-upload-area {
      height: 140px; border: 2px dashed var(--border); border-radius: 12px;
      display: flex; flex-direction: column; align-items: center; justify-content: center;
      cursor: pointer; gap: 8px; transition: all 0.15s; overflow: hidden;
      position: relative; background-size: cover; background-position: center;
    }
    .poster-upload-area:hover { border-color: var(--green); }
    .poster-upload-area.has-poster { border-style: solid; }
    .poster-upload-label { font-size: 13px; color: var(--muted); pointer-events: none; }
    .poster-upload-icon  { font-size: 28px; opacity: 0.35; pointer-events: none; }
    .poster-upload-area.has-poster .poster-upload-label,
    .poster-upload-area.has-poster .poster-upload-icon { display: none; }
    .poster-change-hint {
      position: absolute; inset: 0; background: rgba(0,0,0,0.45);
      display: flex; align-items: center; justify-content: center;
      font-size: 12px; color: #fff; opacity: 0; transition: opacity 0.2s; pointer-events: none;
    }
    .poster-upload-area.has-poster:hover .poster-change-hint { opacity: 1; }
    .ef-submit-row { display: flex; flex-direction: column; gap: 8px; }

    /* ════════════════════════════════════════════════════════════
       ATTENDEES MODAL (Part 6)
    ════════════════════════════════════════════════════════════ */
    .att-modal-box {
      position: absolute; inset: 0; background: var(--bg);
      display: flex; flex-direction: column;
      transform: translateY(100%);
      transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
    }
    .modal-overlay.open .att-modal-box { transform: translateY(0); }

    .att-modal-header {
      flex-shrink: 0; padding: 14px 16px;
      display: flex; align-items: center; gap: 10px;
      border-bottom: 1px solid var(--border); background: var(--card);
    }
    .att-modal-title  { flex: 1; display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
    .att-modal-type   { font-family: 'Share Tech', sans-serif; font-size: 17px; color: var(--text); }
    .att-modal-evname { font-size: 13px; color: var(--muted); }
    .att-modal-close  {
      background: none; border: none; color: var(--muted); font-size: 20px;
      cursor: pointer; padding: 2px 6px; border-radius: 6px; line-height: 1;
    }
    .att-modal-close:hover { color: var(--text); }

    .att-confidential {
      padding: 8px 16px; background: rgba(200,16,46,0.1);
      border-bottom: 1px solid rgba(200,16,46,0.2);
      font-size: 11px; color: #e8697e; font-weight: 600; text-align: center; flex-shrink: 0;
    }
    .att-modal-body  { flex: 1; overflow-y: auto; }
    .att-table-scroll { overflow-x: auto; }
    .att-table { width: 100%; border-collapse: collapse; font-size: 12px; min-width: 460px; }
    .att-table th {
      background: rgba(255,255,255,0.04); color: var(--muted);
      font-size: 10px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase;
      padding: 9px 12px; text-align: left; border-bottom: 1px solid var(--border);
      position: sticky; top: 0; z-index: 1;
    }
    .att-table td { padding: 10px 12px; border-bottom: 1px solid var(--border); color: var(--text); }
    .att-table tr:last-child td { border-bottom: none; }
    .att-modal-foot {
      flex-shrink: 0; padding: 12px 16px; border-top: 1px solid var(--border); background: var(--card);
    }

    /* ════════════════════════════════════════════════════════════
       ADMIN SCREEN (Part 7)
    ════════════════════════════════════════════════════════════ */
    #screen-admin { padding: 0; }
    #tab-admin { display: none; }
    body.show-admin #tab-admin { display: flex; }

    .admin-header {
      padding: 16px 16px 12px;
      display: flex; align-items: center; justify-content: space-between;
      border-bottom: 1px solid var(--border);
    }
    .admin-header-title { font-family: 'Share Tech', sans-serif; font-size: 20px; color: var(--text); }
    .admin-badge {
      font-size: 11px; color: var(--red); font-weight: 700;
      background: rgba(200,16,46,0.1); padding: 3px 9px; border-radius: 10px;
      border: 1px solid rgba(200,16,46,0.25);
    }
    .admin-section {
      padding: 16px 16px 20px; border-bottom: 1px solid var(--border);
      display: flex; flex-direction: column; gap: 12px;
    }
    .admin-section:last-child { border-bottom: none; }
    .admin-section-title {
      font-size: 10px; font-weight: 700; letter-spacing: 0.1em; color: var(--green); text-transform: uppercase;
    }
    .approval-card {
      background: var(--card); border: 1px solid var(--border);
      border-radius: 10px; padding: 14px; display: flex; flex-direction: column; gap: 8px;
    }
    .role-req-badge {
      display: inline-flex; align-items: center; gap: 4px; padding: 3px 9px;
      border-radius: 10px; font-size: 11px; font-weight: 700; letter-spacing: 0.05em;
      background: rgba(212,160,23,0.15); color: var(--gold); border: 1px solid rgba(212,160,23,0.3);
    }
    .role-req-reason {
      font-size: 12px; color: var(--muted); font-style: italic;
      border-left: 2px solid var(--border); padding-left: 8px; margin-top: 2px;
    }
    .approval-card-head  { display: flex; align-items: center; justify-content: space-between; }
    .approval-organiser  { font-size: 11px; color: var(--muted); }
    .approval-name  { font-family: 'Share Tech', sans-serif; font-size: 15px; color: var(--text); line-height: 1.3; }
    .approval-meta  { font-size: 12px; color: var(--muted); }
    .approval-actions { display: flex; gap: 8px; }

    .kv-row { display: grid; grid-template-columns: 1fr 1fr auto; gap: 8px; align-items: center; }

    .bc-sent-msg { font-size: 13px; color: var(--green); font-weight: 600; padding: 8px 0; text-align: center; }

    .admin-user-search-wrap { position: relative; }
    .admin-user-search-icon {
      position: absolute; left: 11px; top: 50%; transform: translateY(-50%);
      font-size: 14px; pointer-events: none; color: var(--muted);
    }
    .admin-user-search {
      width: 100%; padding: 9px 12px 9px 33px;
      background: rgba(255,255,255,0.05); border: 1px solid var(--border);
      border-radius: 8px; color: var(--text);
      font-family: 'Share Tech', sans-serif; font-size: 13px; outline: none;
    }
    .admin-user-search:focus { border-color: var(--border-focus); }
    .masked-contact { letter-spacing: 0.05em; }
    .reveal-btn {
      background: none; border: none; cursor: pointer;
      font-size: 13px; padding: 1px 4px; vertical-align: middle; color: var(--muted);
    }
    .reveal-btn:hover { color: var(--text); }

    /* ════════════════════════════════════════════════════════════
       BROADCAST MODALS (Part 7)
    ════════════════════════════════════════════════════════════ */
    .bc-modal-inner {
      position: absolute; top: 50%; left: 50%;
      transform: translate(-50%, -50%) scale(0.88);
      background: var(--card); border: 1px solid var(--border);
      border-radius: 16px; width: 88%; max-width: 320px; overflow: hidden;
      transition: transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1);
    }
    .modal-overlay.open .bc-modal-inner { transform: translate(-50%, -50%) scale(1); }

    .bc-email-header {
      background: var(--green); padding: 14px 16px;
      display: flex; align-items: center; justify-content: space-between;
    }
    .bc-email-logo  { font-family: 'Share Tech', sans-serif; font-size: 18px; color: #fff; font-weight: 700; letter-spacing: 0.1em; }
    .bc-email-close { background: none; border: none; color: rgba(255,255,255,0.8); font-size: 18px; cursor: pointer; }
    .bc-email-close:hover { color: #fff; }
    .bc-email-body  { padding: 20px 16px 22px; display: flex; flex-direction: column; gap: 10px; }
    .bc-email-title { font-family: 'Share Tech', sans-serif; font-size: 17px; color: var(--text); }
    .bc-email-msg   { font-size: 13px; color: var(--muted); line-height: 1.65; }

    .bc-wa-screen {
      padding: 16px; background: #0d1b0f; display: flex; flex-direction: column; gap: 14px;
    }
    .bc-wa-header {
      display: flex; align-items: center; justify-content: space-between;
      padding-bottom: 10px; border-bottom: 1px solid var(--border);
    }
    .bc-wa-label  { font-size: 13px; color: #25D366; font-weight: 600; }
    .bc-wa-close  { background: none; border: none; color: var(--muted); font-size: 18px; cursor: pointer; }
    .bc-wa-bubble {
      background: rgba(37,211,102,0.14); border: 1px solid rgba(37,211,102,0.24);
      border-radius: 0 12px 12px 12px; padding: 10px 14px; max-width: 88%; align-self: flex-start;
    }
    .bc-wa-number { font-size: 10px; color: #25D366; margin-bottom: 4px; font-weight: 600; }
    .bc-wa-text   { font-size: 13px; color: var(--text); line-height: 1.5; white-space: pre-wrap; }
    .bc-wa-time   { font-size: 10px; color: var(--muted); display: block; text-align: right; margin-top: 4px; }

    /* ════════════════════════════════════════════════════════════
       PART 9 POLISH — New screens + btn-secondary
    ════════════════════════════════════════════════════════════ */

    /* Secondary button — green outline */
    .btn-secondary {
      background: transparent; color: var(--green);
      border: 1.5px solid var(--green);
    }
    .btn-secondary:hover { background: rgba(35,159,64,0.08); }

    /* ── Events screen ──────────────────────────────────────────── */
    #screen-events { padding: 0; }

    /* ── Alerts screen ──────────────────────────────────────────── */
    #screen-alerts { padding: 0; }
    .alerts-header {
      padding: 16px 16px 12px;
      display: flex; align-items: center; justify-content: space-between;
      border-bottom: 1px solid var(--border);
    }
    .alerts-title { font-family: 'Share Tech', sans-serif; font-size: 20px; color: var(--text); }
    .alerts-clear-btn {
      background: none; border: none; color: var(--muted); font-size: 12px;
      font-family: 'Share Tech', sans-serif; cursor: pointer; padding: 4px 8px;
      border-radius: 6px; transition: color 0.15s;
    }
    .alerts-clear-btn:hover { color: var(--text); }
    .alert-item {
      display: flex; gap: 12px; padding: 14px 16px;
      border-bottom: 1px solid var(--border); align-items: flex-start;
      animation: fadeSlideIn 0.28s ease forwards;
    }
    .alert-item.unread { background: rgba(35,159,64,0.05); }
    .alert-dot {
      width: 7px; height: 7px; border-radius: 50%;
      background: var(--green); flex-shrink: 0; margin-top: 5px;
    }
    .alert-dot.read { background: transparent; }
    .alert-body  { flex: 1; min-width: 0; }
    .alert-title { font-size: 14px; font-weight: 600; color: var(--text); margin-bottom: 3px; }
    .alert-msg   { font-size: 12px; color: var(--muted); line-height: 1.45; }
    .alert-time  { font-size: 10px; color: var(--muted); margin-top: 4px; }

    /* ── Profile screen ─────────────────────────────────────────── */
    #screen-profile { padding: 0; }
    .profile-hero {
      padding: 28px 16px 22px;
      display: flex; flex-direction: column; align-items: center; gap: 10px;
      background: linear-gradient(135deg, rgba(35,159,64,0.13) 0%, transparent 70%);
      border-bottom: 1px solid var(--border); text-align: center;
    }
    .profile-avatar {
      width: 72px; height: 72px; border-radius: 50%;
      background: linear-gradient(135deg, var(--green-dk), var(--green));
      display: flex; align-items: center; justify-content: center;
      font-size: 26px; font-weight: 700; color: #fff; letter-spacing: 0.04em;
      overflow: hidden; position: relative;
    }
    .profile-avatar img {
      width: 100%; height: 100%; object-fit: cover; border-radius: 50%;
    }
    .profile-avatar-wrap { position: relative; cursor: pointer; }
    .profile-avatar-edit {
      position: absolute; bottom: 0; right: 0;
      width: 26px; height: 26px; border-radius: 50%;
      background: var(--green); border: 2px solid var(--card);
      display: flex; align-items: center; justify-content: center;
      font-size: 13px; color: #fff; cursor: pointer;
    }
    .pfp-upload-area {
      width: 80px; height: 80px; border-radius: 50%; margin: 0 auto;
      border: 2px dashed var(--border); display: flex; align-items: center;
      justify-content: center; cursor: pointer; overflow: hidden;
      background: var(--bg-secondary, rgba(255,255,255,0.04));
      position: relative; transition: border-color 0.2s;
    }
    .pfp-upload-area:hover { border-color: var(--green); }
    .pfp-upload-area img {
      width: 100%; height: 100%; object-fit: cover; border-radius: 50%;
    }
    .pfp-upload-area .pfp-placeholder { font-size: 28px; color: var(--muted); }
    .profile-handle { font-family: 'Share Tech', sans-serif; font-size: 22px; color: var(--text); }
    .profile-section {
      padding: 16px; border-bottom: 1px solid var(--border);
      display: flex; flex-direction: column; gap: 10px;
    }
    .profile-section:last-child { border-bottom: none; }
    .profile-section-label {
      font-size: 10px; font-weight: 700; letter-spacing: 0.1em;
      color: var(--green); text-transform: uppercase;
    }
    .profile-row {
      display: flex; align-items: center; justify-content: space-between;
      font-size: 14px; color: var(--text); padding: 6px 0;
      border-bottom: 1px solid var(--border);
    }
    .profile-row:last-child { border-bottom: none; }
    .profile-row-label { color: var(--muted); font-size: 13px; }
    .profile-gdpr {
      background: rgba(35,159,64,0.06); border: 1px solid rgba(35,159,64,0.18);
      border-radius: 8px; padding: 12px 14px;
      font-size: 12px; color: var(--muted); line-height: 1.6; text-align: center;
    }

    /* ── Admin edit-user modal ──────────────────────────────────── */
    #admin-edit-user-overlay {
      position: fixed; inset: 0; z-index: 650;
      background: var(--overlay-bg);
      display: flex; align-items: flex-end;
      opacity: 0; pointer-events: none;
      transition: opacity 0.22s ease;
    }
    #admin-edit-user-overlay.open { opacity: 1; pointer-events: all; }
    .admin-edit-user-box {
      width: 100%; background: var(--card);
      border-radius: 20px 20px 0 0;
      max-height: 92dvh; display: flex; flex-direction: column;
      transform: translateY(100%);
      transition: transform 0.28s cubic-bezier(0.32,0.72,0,1);
    }
    #admin-edit-user-overlay.open .admin-edit-user-box { transform: translateY(0); }

    /* ── Role request status chip ───────────────────────────────── */
    .role-req-status {
      display: inline-flex; align-items: center; gap: 5px;
      padding: 4px 10px; border-radius: 12px; font-size: 12px; font-weight: 600;
    }
    .role-req-status.pending  { background: rgba(212,160,23,0.15); color: var(--gold); }
    .role-req-status.approved { background: rgba(35,159,64,0.15);  color: var(--green); }
    .role-req-status.declined { background: rgba(200,16,46,0.15);  color: #e8697e; }

    /* ── Edit profile modal ─────────────────────────────────────── */
    #edit-profile-overlay {
      position: fixed; inset: 0; z-index: 600;
      background: var(--overlay-bg);
      display: flex; align-items: flex-end;
      opacity: 0; pointer-events: none;
      transition: opacity 0.22s ease;
    }
    #edit-profile-overlay.open { opacity: 1; pointer-events: all; }
    .edit-profile-box {
      width: 100%; background: var(--card);
      border-radius: 20px 20px 0 0;
      max-height: 92dvh; display: flex; flex-direction: column;
      transform: translateY(100%);
      transition: transform 0.28s cubic-bezier(0.32,0.72,0,1);
    }
    #edit-profile-overlay.open .edit-profile-box { transform: translateY(0); }
    .edit-profile-header {
      flex-shrink: 0; padding: 14px 16px 12px;
      border-bottom: 1px solid var(--border);
      display: flex; align-items: center; justify-content: space-between;
    }
    .edit-profile-title { font-family: 'Share Tech', sans-serif; font-size: 18px; color: var(--text); }
    .edit-profile-close {
      background: none; border: none; color: var(--muted);
      font-size: 22px; cursor: pointer; line-height: 1; padding: 4px;
    }
    .edit-profile-close:hover { color: var(--text); }
    .edit-profile-body {
      flex: 1; overflow-y: auto; padding: 16px;
      display: flex; flex-direction: column; gap: 4px;
      scrollbar-width: none;
    }
    .edit-profile-body::-webkit-scrollbar { display: none; }
    .edit-section-label {
      font-size: 10px; font-weight: 700; letter-spacing: 0.1em;
      color: var(--green); text-transform: uppercase;
      margin: 12px 0 6px;
    }
    .edit-section-label:first-child { margin-top: 0; }
    .edit-profile-footer {
      flex-shrink: 0; padding: 12px 16px 20px;
      border-top: 1px solid var(--border);
      display: flex; gap: 10px;
    }

    /* ── Settings screen ────────────────────────────────────────── */
    #screen-settings { padding: 0; }
    .settings-header {
      padding: 16px 16px 12px; border-bottom: 1px solid var(--border);
    }
    .settings-title { font-family: 'Share Tech', sans-serif; font-size: 20px; color: var(--text); }
    .settings-section {
      padding: 16px; border-bottom: 1px solid var(--border);
      display: flex; flex-direction: column; gap: 10px;
    }
    .settings-section:last-child { border-bottom: none; }
    .settings-section-label {
      font-size: 10px; font-weight: 700; letter-spacing: 0.1em;
      color: var(--green); text-transform: uppercase;
    }
    .settings-row {
      display: flex; align-items: center; justify-content: space-between;
      font-size: 14px; color: var(--text); padding: 8px 0;
      border-bottom: 1px solid var(--border);
    }
    .settings-row:last-child { border-bottom: none; }
    .settings-row-label { color: var(--muted); font-size: 13px; flex: 1; }
    .settings-row-value { font-size: 13px; color: var(--text); }
    .dev-role-pills { display: flex; gap: 6px; flex-wrap: wrap; }
    .dev-role-btn {
      padding: 5px 12px; border-radius: 16px;
      border: 1px solid var(--border); background: transparent;
      color: var(--muted); font-family: 'Share Tech', sans-serif; font-size: 12px;
      cursor: pointer; transition: all 0.15s;
    }
    .dev-role-btn:hover { border-color: var(--green); color: var(--green); }
    .dev-role-btn.active {
      background: rgba(35,159,64,0.15); border-color: var(--green);
      color: var(--green); font-weight: 600;
    }
