/* DofE app look: shell, navigation and shared controls.
 * Loaded after osm-events-admin.css and osm-events-frontend.css, so anything
 * here wins on equal specificity. Everything is scoped to .dofe-events-fe so
 * nothing leaks into the surrounding theme. */

@font-face {
    font-family: "Nunito Sans";
    font-style: normal;
    font-weight: 200 1000;
    font-display: swap;
    src: url("../fonts/nunito-sans-latin-wght-normal.woff2") format("woff2");
}

.dofe-events-fe {
    --dofe-accent: #7413dc;        /* Scout purple */
    --dofe-accent-dark: #5a0fb0;
    --dofe-accent-ink: #4a0d91;
    --dofe-accent-tint: #f1e8fc;
    --dofe-ground: #f5f4f8;
    --dofe-surface: #ffffff;
    --dofe-ink: #16202a;
    --dofe-muted: #55606b;
    --dofe-line: #dedfe6;
    --dofe-line-soft: #eeeef3;
    --dofe-danger: #a4262c;
    --dofe-radius: 14px;

    font-family: "Nunito Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
    font-size: 15px;
    line-height: 1.45;
    color: var(--dofe-ink);
    text-align: left;
    box-sizing: border-box;
}
.dofe-events-fe button,
.dofe-events-fe input,
.dofe-events-fe select,
.dofe-events-fe textarea { font-family: inherit; }

/* ---- Signed-in app: full-width band with a centred column ---- */
.dofe-events-fe.dofe-app {
    width: 100vw;
    max-width: none !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: 0 !important;
    background: var(--dofe-ground);
    padding: 0 0 56px;
    min-height: 70vh;
}
html:has(.dofe-app) { overflow-x: clip; }
.dofe-events-fe.dofe-app > .dofe-tab-panel,
.dofe-events-fe.dofe-app > .dofe-app-body {
    max-width: 1220px;
    margin: 0 auto;
    padding: 28px 24px 0;
    box-sizing: border-box;
}
/* Dark mode inverts the whole wrapper (see osm-events-admin.css), so the
   colours here are the pre-invert ones: white becomes black. */
.dofe-events-fe.dofe-app[data-dofe-theme="dark"] { background: #fff; --dofe-ground: #fff; --dofe-line: #9aa1ab; --dofe-line-soft: #c9ccd6; --dofe-accent: #a06ae8; --dofe-accent-dark: #b48cf0; --dofe-accent-ink: #6a2fb8; }
.dofe-events-fe.dofe-app[data-dofe-theme="dark"] .dofe-brand-mark svg { filter: none; }

/* ---- Shell ---- */
.dofe-shell {
    background: var(--dofe-surface);
    border-bottom: 1px solid var(--dofe-line);
}
.dofe-shell-bar,
.dofe-subnav {
    max-width: 1220px;
    margin: 0 auto;
    padding: 0 24px;
    box-sizing: border-box;
}
.dofe-shell-bar {
    display: flex;
    align-items: center;
    gap: 8px 24px;
    min-height: 64px;
    flex-wrap: wrap;
}
.dofe-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 800;
    font-size: 17px;
    white-space: nowrap;
    color: var(--dofe-ink);
}
.dofe-brand-mark {
    display: inline-flex;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: var(--dofe-accent);
    color: #fff;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

/* Main nav */
.dofe-events-fe .dofe-shell .dofe-tabs {
    display: flex;
    flex: 1 1 auto;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    border: 0;
    margin: 0;
    padding: 0;
    background: none;
    width: auto;
}
.dofe-events-fe .dofe-shell .dofe-tab-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: auto;
    min-height: 40px;
    margin: 0;
    padding: 8px 14px;
    border: 0 !important;
    border-radius: 8px;
    background: none !important;
    box-shadow: none;
    color: var(--dofe-ink) !important;
    font-family: inherit;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
    text-decoration: none;
    text-transform: none;
    letter-spacing: 0;
    white-space: nowrap;
    cursor: pointer;
}
.dofe-events-fe .dofe-shell .dofe-tab-btn:hover { background: #f1f1f5 !important; }
.dofe-events-fe .dofe-shell .dofe-tab-btn:focus-visible {
    outline: 2px solid var(--dofe-accent);
    outline-offset: 2px;
}
.dofe-events-fe .dofe-shell .dofe-tabs .dofe-tab-btn.is-active {
    background: var(--dofe-accent-tint) !important;
    color: var(--dofe-accent-ink) !important;
    font-weight: 700;
}
.dofe-nav-badge {
    padding: 0 7px;
    border-radius: 999px;
    background: #fff1d6;
    color: #7a4a00;
    font-size: 12px;
    font-weight: 800;
}

/* Account + log out */
.dofe-shell-account {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: auto;
}
.dofe-events-fe .dofe-shell .dofe-account-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    padding: 4px 14px 4px 4px;
    border: 1px solid var(--dofe-line) !important;
    border-radius: 999px;
    background: var(--dofe-surface) !important;
    font-size: 15px;
    font-weight: 600;
}
.dofe-events-fe .dofe-shell .dofe-account-btn.is-active {
    border-color: var(--dofe-accent) !important;
    background: var(--dofe-accent-tint) !important;
    color: var(--dofe-accent-ink) !important;
}
.dofe-avatar {
    display: inline-flex;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--dofe-ink);
    color: #fff;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 700;
    flex: 0 0 auto;
}
.dofe-events-fe .dofe-shell .dofe-events-fe-logout {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 0 14px;
    border: 1px solid #c9ccd6;
    border-radius: 10px;
    background: var(--dofe-surface);
    color: var(--dofe-ink);
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}
.dofe-events-fe .dofe-shell .dofe-events-fe-logout:hover { border-color: var(--dofe-ink); color: var(--dofe-ink); background: var(--dofe-surface); }

/* Sub-tabs: one row per group, only the open group shows */
.dofe-subnav { border-top: 1px solid var(--dofe-line-soft); max-width: none; padding: 0; }
.dofe-subnav[hidden] { display: none; }
.dofe-subnav-group {
    display: none;
    max-width: 1220px;
    margin: 0 auto;
    padding: 0 24px;
    box-sizing: border-box;
    gap: 4px 24px;
    flex-wrap: wrap;
}
.dofe-subnav-group.is-open,
.dofe-subnav-group.is-tour-open { display: flex; }
.dofe-events-fe .dofe-shell .dofe-subnav .dofe-tab-btn {
    min-height: 46px;
    padding: 12px 0;
    border-radius: 0;
    border-bottom: 3px solid transparent !important;
    color: var(--dofe-muted) !important;
    font-weight: 600;
}
.dofe-events-fe .dofe-shell .dofe-subnav .dofe-tab-btn:hover { background: none !important; color: var(--dofe-ink) !important; }
.dofe-events-fe .dofe-shell .dofe-subnav .dofe-tab-btn.is-active {
    background: none !important;
    color: var(--dofe-accent-ink) !important;
    font-weight: 700;
    border-bottom-color: var(--dofe-accent) !important;
}
.dofe-events-fe .dofe-shell .dofe-tab-btn.dofe-tour-highlight { padding-left: 10px; padding-right: 10px; }

@media (max-width: 780px) {
    .dofe-shell-bar { padding: 8px 16px 0; gap: 8px 12px; }
    .dofe-account-name { display: none; }
    .dofe-events-fe .dofe-shell .dofe-account-btn { padding: 4px; }
    /* Nav drops to its own row and scrolls sideways rather than stacking. */
    .dofe-events-fe .dofe-shell .dofe-tabs,
    .dofe-subnav-group {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    .dofe-events-fe .dofe-shell .dofe-tabs { order: 3; flex: 1 1 100%; width: 100%; padding-bottom: 8px; }
    .dofe-events-fe .dofe-shell .dofe-tabs::-webkit-scrollbar,
    .dofe-subnav-group::-webkit-scrollbar { display: none; }
    .dofe-subnav-group { padding: 0 16px; gap: 20px; }
    .dofe-events-fe.dofe-app > .dofe-tab-panel,
    .dofe-events-fe.dofe-app > .dofe-app-body { padding: 20px 16px 0; }
}

/* ---- Type ---- */
.dofe-events-fe.dofe-app h1,
.dofe-events-fe.dofe-app h2,
.dofe-events-fe.dofe-app h3,
.dofe-events-fe.dofe-app h4 {
    font-family: inherit;
    color: var(--dofe-ink);
    letter-spacing: -0.01em;
    line-height: 1.25;
    text-transform: none;
}
.dofe-events-fe.dofe-app .dofe-tab-panel h2 { font-size: 24px; font-weight: 800; margin: 0 0 6px; }
.dofe-events-fe.dofe-app .dofe-tab-panel h3 { font-size: 18px; font-weight: 800; }
.dofe-events-fe.dofe-app .dofe-tab-panel h4 { font-size: 15px; font-weight: 700; }
.dofe-events-fe.dofe-app p { font-size: inherit; line-height: 1.45; }
.dofe-events-fe.dofe-app .description { color: var(--dofe-muted); font-size: 14px; }
.dofe-events-fe.dofe-app a { color: var(--dofe-accent); }
.dofe-events-fe.dofe-app a:hover { color: var(--dofe-accent-dark); }

/* ---- Buttons ---- */
.dofe-events-fe.dofe-app .dofe-tab-panel.dofe-tab-panel.dofe-tab-panel .button,
.dofe-events-fe .dofe-modal-card .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 16px;
    border: 1px solid #c9ccd6;
    border-radius: 10px;
    background: var(--dofe-surface);
    color: var(--dofe-ink);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    text-transform: none;
    letter-spacing: 0;
    box-shadow: none;
    cursor: pointer;
}
.dofe-events-fe.dofe-app .dofe-tab-panel.dofe-tab-panel.dofe-tab-panel .button:hover,
.dofe-events-fe .dofe-modal-card .button:hover {
    background: var(--dofe-surface);
    border-color: var(--dofe-ink);
    color: var(--dofe-ink);
}
.dofe-events-fe.dofe-app .dofe-tab-panel.dofe-tab-panel.dofe-tab-panel .button-primary,
.dofe-events-fe .dofe-modal-card .button-primary {
    background: var(--dofe-accent);
    border-color: var(--dofe-accent);
    color: #fff;
}
.dofe-events-fe.dofe-app .dofe-tab-panel.dofe-tab-panel.dofe-tab-panel .button-primary:hover,
.dofe-events-fe .dofe-modal-card .button-primary:hover {
    background: var(--dofe-accent-dark);
    border-color: var(--dofe-accent-dark);
    color: #fff;
}
.dofe-events-fe.dofe-app .dofe-tab-panel.dofe-tab-panel.dofe-tab-panel .button-small { min-height: 32px; padding: 0 12px; font-size: 13px; border-radius: 8px; }
.dofe-events-fe.dofe-app .dofe-tab-panel.dofe-tab-panel.dofe-tab-panel .button[disabled],
.dofe-events-fe.dofe-app .dofe-tab-panel.dofe-tab-panel.dofe-tab-panel .button:disabled { opacity: .55; cursor: not-allowed; }
.dofe-events-fe.dofe-app .dofe-tab-panel.dofe-tab-panel.dofe-tab-panel .button-link-delete,
.dofe-events-fe.dofe-app .dofe-tab-panel.dofe-tab-panel.dofe-tab-panel .button-link-delete:hover {
    min-height: 0;
    padding: 4px 6px;
    border: 0;
    background: none;
    color: var(--dofe-danger);
    font-weight: 700;
    text-decoration: underline;
}
.dofe-events-fe.dofe-app .dofe-tab-panel.dofe-tab-panel.dofe-tab-panel .button:focus-visible,
.dofe-events-fe.dofe-app .dofe-tab-panel a:focus-visible,
.dofe-events-fe.dofe-app .dofe-tab-panel summary:focus-visible {
    outline: 2px solid var(--dofe-accent);
    outline-offset: 2px;
}

/* ---- Form fields ---- */
.dofe-events-fe.dofe-app .dofe-tab-panel input[type=text],
.dofe-events-fe.dofe-app .dofe-tab-panel input[type=email],
.dofe-events-fe.dofe-app .dofe-tab-panel input[type=password],
.dofe-events-fe.dofe-app .dofe-tab-panel input[type=search],
.dofe-events-fe.dofe-app .dofe-tab-panel input[type=number],
.dofe-events-fe.dofe-app .dofe-tab-panel input[type=date],
.dofe-events-fe.dofe-app .dofe-tab-panel input[type=time],
.dofe-events-fe.dofe-app .dofe-tab-panel input[type=url],
.dofe-events-fe.dofe-app .dofe-tab-panel input[type=tel],
.dofe-events-fe.dofe-app .dofe-tab-panel select,
.dofe-events-fe.dofe-app .dofe-tab-panel textarea {
    min-height: 40px;
    padding: 8px 12px;
    border: 1px solid #c9ccd6;
    border-radius: 8px;
    background: var(--dofe-surface);
    color: var(--dofe-ink);
    font-size: 15px;
    line-height: 1.3;
    box-shadow: none;
    box-sizing: border-box;
    max-width: 100%;
}
.dofe-events-fe.dofe-app .dofe-tab-panel input:focus,
.dofe-events-fe.dofe-app .dofe-tab-panel select:focus,
.dofe-events-fe.dofe-app .dofe-tab-panel textarea:focus {
    outline: 2px solid var(--dofe-accent);
    outline-offset: 0;
    border-color: var(--dofe-accent);
}
.dofe-events-fe.dofe-app input[type="checkbox"],
.dofe-events-fe.dofe-app input[type="radio"] { accent-color: var(--dofe-accent); }
.dofe-events-fe.dofe-app .dofe-tab-panel label { font-size: 14px; color: var(--dofe-ink); }

/* ---- Cards, tables, notices ---- */
.dofe-events-fe.dofe-app .dofe-tab-panel .postbox,
.dofe-events-fe.dofe-app .dofe-dash .dd-card,
.dofe-events-fe.dofe-app .dofe-dash .dd-team,
.dofe-events-fe.dofe-app .dofe-dash .dd-tile {
    border: 1px solid var(--dofe-line);
    border-radius: var(--dofe-radius);
    box-shadow: none;
    background: var(--dofe-surface);
}
.dofe-events-fe.dofe-app .dofe-dash .dd-tile { border-top: 1px solid var(--dofe-line); }
.dofe-events-fe.dofe-app .dofe-dash .dd-tile:hover { transform: none; box-shadow: none; border-color: var(--dofe-accent); }
.dofe-events-fe.dofe-app .dofe-dash .dd-tile-l { text-transform: none; letter-spacing: 0; font-size: 14px; color: var(--dofe-muted); }
.dofe-events-fe.dofe-app .dofe-dash .dd-tile-v { font-size: 30px; font-weight: 800; }
.dofe-events-fe.dofe-app .dofe-dash h2 { font-size: 28px !important; font-weight: 800 !important; color: var(--dofe-ink) !important; }
.dofe-events-fe.dofe-app .dofe-dash h3 { font-size: 18px !important; font-weight: 800 !important; color: var(--dofe-ink) !important; }
.dofe-events-fe.dofe-app .dofe-dash .dd-section-sub,
.dofe-events-fe.dofe-app .dofe-dash .dd-muted { color: var(--dofe-muted); }
.dofe-events-fe.dofe-app .dofe-dash .dd-attn { border-radius: 12px; box-shadow: none; }

.dofe-events-fe.dofe-app .dofe-tab-panel table.widefat,
.dofe-events-fe.dofe-app .dofe-tab-panel table.wp-list-table {
    border: 1px solid var(--dofe-line);
    border-radius: var(--dofe-radius);
    border-collapse: separate;
    border-spacing: 0;
    background: var(--dofe-surface);
}
.dofe-events-fe.dofe-app .dofe-tab-panel table.widefat th,
.dofe-events-fe.dofe-app .dofe-tab-panel table.widefat td {
    padding: 12px 16px;
    border: 0;
    border-bottom: 1px solid var(--dofe-line-soft);
    font-size: 14px;
    vertical-align: middle;
}
.dofe-events-fe.dofe-app .dofe-tab-panel table.widefat tbody tr:last-child td { border-bottom: 0; }
.dofe-events-fe.dofe-app .dofe-tab-panel table.widefat thead th {
    background: #f8f8fb;
    color: var(--dofe-muted);
    font-size: 13px;
    font-weight: 700;
    text-transform: none;
    letter-spacing: 0;
    border-bottom: 1px solid var(--dofe-line);
}
.dofe-events-fe.dofe-app .dofe-tab-panel table.widefat.striped tbody tr:nth-child(odd),
.dofe-events-fe.dofe-app .dofe-tab-panel table.striped tbody tr:nth-child(odd) { background: none; }
.dofe-events-fe.dofe-app .dofe-tab-panel table.widefat tbody tr:hover { background: #faf8fe; }

.dofe-events-fe.dofe-app .dofe-tab-panel .notice {
    border: 0;
    border-radius: 12px;
    padding: 12px 16px;
    background: var(--dofe-accent-tint);
    color: var(--dofe-accent-ink);
}
.dofe-events-fe.dofe-app .dofe-tab-panel .notice-success { background: #dff1e6; color: #14532d; }
.dofe-events-fe.dofe-app .dofe-tab-panel .notice-warning { background: #fff1d6; color: #7a4a00; }
.dofe-events-fe.dofe-app .dofe-tab-panel .notice-error { background: #fbe9ea; color: var(--dofe-danger); }

/* ---- Event cards ---- */
.dofe-events-fe.dofe-app .dofe-events-grid { gap: 20px; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); }
.dofe-events-fe.dofe-app .dofe-event-card {
    border-style: solid;
    border-width: 4px 1px 1px;
    border-right-color: var(--dofe-line);
    border-bottom-color: var(--dofe-line);
    border-left-color: var(--dofe-line);
    border-radius: var(--dofe-radius);
    box-shadow: none;
    padding: 18px 20px;
    background: var(--dofe-surface);
    color: var(--dofe-ink);
    text-decoration: none;
}
.dofe-events-fe.dofe-app .dofe-event-card:hover { box-shadow: 0 0 0 2px var(--dofe-accent); }
.dofe-events-fe.dofe-app .dofe-event-card h3 { font-size: 18px; font-weight: 800; margin: 0 0 8px; }
.dofe-events-fe.dofe-app .dofe-event-when { color: var(--dofe-ink); font-size: 14px; font-weight: 700; }
.dofe-events-fe.dofe-app .dofe-event-time,
.dofe-events-fe.dofe-app .dofe-event-where { color: #33404b; font-size: 14px; }
.dofe-events-fe.dofe-app .dofe-event-countdown { background: #e8ecef; color: #33404b; font-size: 13px; font-weight: 700; padding: 3px 10px; }
.dofe-events-fe.dofe-app .dofe-event-countdown.is-soon { background: #fff1d6; color: #7a4a00; }
.dofe-events-fe.dofe-app .dofe-event-counts { font-size: 14px; color: var(--dofe-muted); gap: 4px 16px; padding-top: 12px; border-top: 1px solid var(--dofe-line-soft); }
.dofe-events-fe.dofe-app .dofe-event-cta { color: var(--dofe-accent); font-size: 14px; font-weight: 700; }
.dofe-events-fe.dofe-app .dofe-events-section-title { font-size: 18px; font-weight: 800; text-transform: none; letter-spacing: 0; color: var(--dofe-ink); }
.dofe-events-fe.dofe-app .dofe-events-filter-btn { border-radius: 999px; font-weight: 700; background: var(--dofe-surface) !important; color: var(--dofe-ink) !important; border: 1px solid #c9ccd6; min-height: 36px; }
.dofe-events-fe.dofe-app .dofe-events-filter-btn.is-active { background: var(--dofe-accent) !important; border-color: var(--dofe-accent); color: #fff !important; }

/* Old standalone header (still used on a couple of simple pages) */
.dofe-events-fe.dofe-app > .dofe-events-fe-header { max-width: 1220px; margin: 0 auto; padding: 20px 24px 0; }

/* ---- Screens with their own inline styles: bring them onto the same look ---- */

/* Route card review filters */
.dofe-events-fe.dofe-app .rcr-filter { border-color: #c9ccd6; border-radius: 10px; }
.dofe-events-fe.dofe-app .rcr-filter-btn,
.dofe-events-fe.dofe-app .rcr-award-btn,
.dofe-events-fe.dofe-app .rcr-year-btn {
    background: var(--dofe-surface) !important;
    color: var(--dofe-ink) !important;
    font-size: 14px;
    font-weight: 700;
    min-height: 38px;
    padding: 0 14px;
}
.dofe-events-fe.dofe-app .rcr-year-btn { border: 1px solid #c9ccd6; border-radius: 999px; }
.dofe-events-fe.dofe-app .rcr-filter-btn + .rcr-filter-btn,
.dofe-events-fe.dofe-app .rcr-award-btn + .rcr-award-btn { border-left: 1px solid #c9ccd6; }
.dofe-events-fe.dofe-app .rcr-filter-btn.is-active,
.dofe-events-fe.dofe-app .rcr-award-btn.is-active,
.dofe-events-fe.dofe-app .rcr-year-btn.is-active {
    background: var(--dofe-accent) !important;
    border-color: var(--dofe-accent);
    color: #fff !important;
}

/* Kit */
.dofe-events-fe.dofe-app .qmm,
.dofe-events-fe.dofe-app .qw { font-family: inherit; color: var(--dofe-ink); max-width: none; }
.dofe-events-fe.dofe-app .qmm-header h2 { font-size: 24px; font-weight: 800; }
.dofe-events-fe.dofe-app .qmm-tab { color: var(--dofe-muted); font-weight: 600; }
.dofe-events-fe.dofe-app .qmm-tab:hover { color: var(--dofe-ink); }
.dofe-events-fe.dofe-app .qmm-tab.active { color: var(--dofe-accent-ink); font-weight: 700; border-bottom-color: var(--dofe-accent); }
.dofe-events-fe.dofe-app .qmm-btn { min-height: 38px; border-radius: 10px; font-weight: 700; }
.dofe-events-fe.dofe-app .qmm-btn-primary { background: var(--dofe-accent) !important; color: #fff !important; }
.dofe-events-fe.dofe-app .qmm-btn-primary:hover { background: var(--dofe-accent-dark) !important; }
.dofe-events-fe.dofe-app .qmm-card,
.dofe-events-fe.dofe-app .qmm-inv-card { border: 1px solid var(--dofe-line); border-radius: var(--dofe-radius); box-shadow: none; }

/* Leaders */
.dofe-events-fe.dofe-app .dofe-lead .btn {
    min-height: 40px;
    padding: 0 16px;
    border-radius: 10px;
    background: var(--dofe-accent) !important;
    color: #fff !important;
    font-size: 14px;
    font-weight: 700;
}
.dofe-events-fe.dofe-app .dofe-lead .btn:hover { background: var(--dofe-accent-dark) !important; }
.dofe-events-fe.dofe-app .dofe-lead .btn.sec { background: var(--dofe-surface) !important; color: var(--dofe-ink) !important; border: 1px solid #c9ccd6; }

/* Collapsible section bars (Teams, New starters) */
.dofe-events-fe.dofe-app .dofe-tab-panel details > summary { cursor: pointer; font-weight: 700; }

/* ---- Participant home: greeting and to-do list ---- */
.dofe-hero {
    display: flex;
    align-items: center;
    gap: 16px 32px;
    flex-wrap: wrap;
    padding: 26px 28px;
    margin: 0 0 24px;
    border-radius: 16px;
    background: var(--dofe-accent);
    color: #fff;
}
.dofe-hero-text { flex: 1 1 240px; }
.dofe-hero-kicker { font-size: 14px; font-weight: 700; }
.dofe-events-fe.dofe-app .dofe-dash .dofe-hero h2 { color: #fff !important; font-size: 30px !important; margin: 2px 0 0 !important; }
.dofe-hero-progress { flex: 0 1 340px; min-width: 220px; }
.dofe-hero-progress-label { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; font-weight: 700; }
.dofe-hero-bar { height: 10px; margin-top: 8px; border-radius: 999px; background: rgba(255, 255, 255, .3); overflow: hidden; }
.dofe-hero-bar > div { height: 100%; border-radius: 999px; background: #fff; }

.dofe-todo { display: flex; flex-direction: column; gap: 12px; margin: 12px 0 28px; }
.dofe-todo-row {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 20px;
    border: 1px solid var(--dofe-line);
    border-radius: var(--dofe-radius);
    background: var(--dofe-surface);
}
.dofe-todo-row.is-next { border: 2px solid var(--dofe-accent); padding: 15px 19px; }
.dofe-todo-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    flex: 0 0 auto;
    border: 2px solid #c9ccd6;
    border-radius: 50%;
    font-size: 15px;
    font-weight: 800;
}
.dofe-todo-row.is-done .dofe-todo-mark { border-color: #14532d; background: #dff1e6; color: #14532d; }
.dofe-todo-text { flex: 1 1 auto; min-width: 0; }
.dofe-todo-title { font-size: 16px; font-weight: 800; }
.dofe-todo-detail { font-size: 14px; color: var(--dofe-muted); }
.dofe-todo-detail.is-urgent { color: #7a4a00; font-weight: 700; }
.dofe-events-fe.dofe-app .dofe-todo-go {
    flex: 0 0 auto;
    min-height: 40px;
    padding: 0 16px;
    margin: 0;
    border: 1px solid #c9ccd6 !important;
    border-radius: 10px;
    background: var(--dofe-surface) !important;
    color: var(--dofe-ink) !important;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
}
.dofe-events-fe.dofe-app .dofe-todo-row.is-next .dofe-todo-go {
    border-color: var(--dofe-accent) !important;
    background: var(--dofe-accent) !important;
    color: #fff !important;
}
.dofe-events-fe.dofe-app .dofe-todo-go.is-active { /* never shown as a selected tab */ }
@media (max-width: 560px) {
    .dofe-hero { padding: 20px; }
    .dofe-todo-row { flex-wrap: wrap; }
    .dofe-todo-go { width: 100%; }
}

/* ---- Phone: main nav is one sideways-scrolling row ---- */
@media (max-width: 780px) {
    .dofe-events-fe .dofe-shell .dofe-tabs { flex-direction: row; border: 0; border-radius: 0; background: none; padding: 0 0 8px; margin: 0; }
    .dofe-events-fe .dofe-shell .dofe-tabs .dofe-tab-btn,
    .dofe-events-fe .dofe-shell .dofe-subnav .dofe-tab-btn { width: auto; flex: 0 0 auto; text-align: center; }
}

/* ---- Route card editor (its own page). Same look, and the full width of
   the window: the leg table needs the room on a laptop. The editor's own
   styles are printed inline after this file, hence the doubled class. ---- */
div.osm-dofe-app-shell.osm-dofe-app-shell {
    --dofe-bg: #f5f4f8;
    --dofe-text: #16202a;
    --dofe-muted: #55606b;
    --dofe-border: #dedfe6;
    --dofe-primary: #7413dc;
    --dofe-primary-dark: #5a0fb0;
    --dofe-accent: #f1e8fc;
    --dofe-shadow: none;
    width: 100vw;
    box-sizing: border-box;
    max-width: none !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: 0 !important;
    padding: 28px max(24px, calc(50vw - 720px)) 56px;
    background: #f5f4f8;
    font-family: "Nunito Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
    font-size: 15px;
    text-align: left;
}
html:has(.osm-dofe-app-shell) { overflow-x: clip; }
div.osm-dofe-app-shell.osm-dofe-app-shell button,
div.osm-dofe-app-shell.osm-dofe-app-shell input,
div.osm-dofe-app-shell.osm-dofe-app-shell select,
div.osm-dofe-app-shell.osm-dofe-app-shell textarea { font-family: inherit; }
div.osm-dofe-app-shell.osm-dofe-app-shell h1,
div.osm-dofe-app-shell.osm-dofe-app-shell h2,
div.osm-dofe-app-shell.osm-dofe-app-shell h3 { font-family: inherit; font-weight: 800; letter-spacing: -0.01em; color: #16202a; }
div.osm-dofe-app-shell.osm-dofe-app-shell .osm-dofe-kicker { background: #f1e8fc; color: #4a0d91; }
div.osm-dofe-app-shell.osm-dofe-app-shell .button {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    border-radius: 10px;
    border-color: #c9ccd6;
    background: #fff !important;
    color: #16202a !important;
    font-size: 14px;
}
div.osm-dofe-app-shell.osm-dofe-app-shell .button:hover { transform: none; border-color: #16202a; }
div.osm-dofe-app-shell.osm-dofe-app-shell .button-primary,
div.osm-dofe-app-shell.osm-dofe-app-shell .osm-dofe-primary-button {
    background: #7413dc !important;
    border-color: #7413dc;
    color: #fff !important;
    box-shadow: none;
}
div.osm-dofe-app-shell.osm-dofe-app-shell .button-primary:hover,
div.osm-dofe-app-shell.osm-dofe-app-shell .osm-dofe-primary-button:hover { background: #5a0fb0 !important; border-color: #5a0fb0; box-shadow: none; }
div.osm-dofe-app-shell.osm-dofe-app-shell input:focus,
div.osm-dofe-app-shell.osm-dofe-app-shell select:focus,
div.osm-dofe-app-shell.osm-dofe-app-shell textarea:focus { border-color: #7413dc; box-shadow: 0 0 0 3px rgba(116, 19, 220, .18); }
@media (max-width: 580px) {
    div.osm-dofe-app-shell.osm-dofe-app-shell { padding: 16px 12px 40px; }
}
div.osm-dofe-app-shell.osm-dofe-app-shell .osm-dofe-hero-card,
div.osm-dofe-app-shell.osm-dofe-app-shell .osm-dofe-panel,
div.osm-dofe-app-shell.osm-dofe-app-shell .osm-dofe-table-card,
div.osm-dofe-app-shell.osm-dofe-app-shell .osm-dofe-saved-card { border-radius: 14px; }
div.osm-dofe-app-shell.osm-dofe-app-shell .osm-dofe-hero-main { background: #fff; }
div.osm-dofe-app-shell.osm-dofe-app-shell .osm-dofe-stat-label { text-transform: none; letter-spacing: 0; font-size: 13px; }

/* ---- Event cards, second pass: pills, going bar, button-style action ---- */
.dofe-events-fe.dofe-app .dofe-event-card { display: flex; flex-direction: column; gap: 12px; border-width: 1px; border-top-color: var(--dofe-line); }
.dofe-events-fe.dofe-app .dofe-event-card[data-award] { border-top-color: var(--dofe-line); }
.dofe-events-fe.dofe-app .dofe-event-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.dofe-events-fe.dofe-app .dofe-event-countdown { margin: 0; }
.dofe-event-award { padding: 3px 10px; border-radius: 999px; font-size: 13px; font-weight: 700; background: #e8ecef; color: #33404b; }
.dofe-event-card[data-award="bronze"] .dofe-event-award { background: #f5e3d0; color: #6b3a0c; }
.dofe-event-card[data-award="gold"] .dofe-event-award { background: #fbeec2; color: #6b4d00; }
.dofe-events-fe.dofe-app .dofe-event-card h3 { margin: 0; font-size: 19px; }
.dofe-events-fe.dofe-app .dofe-event-when,
.dofe-events-fe.dofe-app .dofe-event-where { margin: 0; }
.dofe-event-going-label { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; }
.dofe-event-bar { height: 8px; margin-top: 5px; border-radius: 999px; background: #e6e7ee; overflow: hidden; }
.dofe-event-bar > div { height: 100%; border-radius: 999px; background: var(--dofe-accent); }
.dofe-event-bar.is-full > div { background: #7a4a00; }
.dofe-events-fe.dofe-app .dofe-event-counts { margin: 0; padding: 0; border: 0; }
.dofe-events-fe.dofe-app .dofe-event-count.is-invited strong { color: #7a4a00; }
.dofe-events-fe.dofe-app .dofe-event-count.is-no strong { color: var(--dofe-ink); }
.dofe-events-fe.dofe-app .dofe-event-cta {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    margin-top: auto;
    padding: 0 14px;
    border: 1px solid var(--dofe-ink);
    border-radius: 10px;
    color: var(--dofe-ink);
    font-size: 14px;
    font-weight: 700;
}
.dofe-events-fe.dofe-app .dofe-event-card:hover .dofe-event-cta { background: var(--dofe-accent); border-color: var(--dofe-accent); color: #fff; }
.dofe-events-fe.dofe-app .dofe-event-card-past { opacity: .8; }

/* ---- Status pills and person rows (Menus, and reusable elsewhere) ---- */
.dofe-pill-s {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: 999px;
    background: #e8ecef;
    color: #33404b;
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
}
.dofe-pill-s.is-wait { background: #fff1d6; color: #7a4a00; }
.dofe-pill-s.is-ok { background: #dff1e6; color: #14532d; }
.dofe-pill-s.is-off { background: #f1f1f5; color: var(--dofe-muted, #55606b); font-weight: 600; }
.dofe-pill-s.is-going { background: #dbe8fd; color: #1e3a8a; }
.dofe-pill-s.is-todo { background: #fde4e2; color: #8a1c1c; }
.dofe-avatar.dofe-avatar-soft { width: 32px; height: 32px; background: var(--dofe-accent-tint, #f1e8fc); color: var(--dofe-accent-ink, #4a0d91); font-size: 12px; }
.dofe-events-fe.dofe-app summary.dofe-person-row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    list-style: none;
    font-size: 15px;
}
.dofe-events-fe.dofe-app summary.dofe-person-row::-webkit-details-marker { display: none; }
.dofe-person-name { flex: 1 1 160px; color: var(--dofe-ink); }
.dofe-person-pills { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.dofe-events-fe.dofe-app .dofe-team-block > summary {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    font-size: 16px;
    font-weight: 800;
}
.dofe-team-name { flex: 1 1 auto; }
.dofe-team-award { color: var(--dofe-muted); font-weight: 400; }
.dofe-events-fe.dofe-app .dofe-tms-wrap { margin: 12px 0; }
.dofe-events-fe.dofe-app .dofe-tms-wrap > summary { font-size: 14px; color: var(--dofe-accent); }
.dofe-events-fe.dofe-app .dofe-tms { margin-top: 10px; background: #f8f8fb; border-color: var(--dofe-line); border-radius: 10px; }
.dofe-events-fe.dofe-app .dofe-menu-leader-item { border: 1px solid var(--dofe-line); border-radius: 12px; padding: 12px 16px; background: var(--dofe-surface); }

/* ---- Page header, card grid, meter, empty state (shared) ---- */
.dofe-page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin: 0 0 20px; }
.dofe-events-fe.dofe-app .dofe-tab-panel .dofe-page-head h2 { margin: 0; font-size: 28px; }
.dofe-events-fe.dofe-app .dofe-page-sub { margin: 4px 0 0; color: var(--dofe-muted); }
.dofe-card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr)); gap: 20px; }
.dofe-card {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 18px 20px;
    border: 1px solid var(--dofe-line);
    border-radius: var(--dofe-radius);
    background: var(--dofe-surface);
}
.dofe-events-fe.dofe-app .dofe-tab-panel .dofe-card h3 { margin: 0; font-size: 17px; }
.dofe-events-fe.dofe-app .dofe-card h3 a { color: var(--dofe-ink); text-decoration: none; }
.dofe-events-fe.dofe-app .dofe-card h3 a:hover { color: var(--dofe-accent); }
.dofe-events-fe.dofe-app .dofe-card-sub { margin: 0; color: var(--dofe-muted); font-size: 14px; }
.dofe-meter-label { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; }
.dofe-meter-bar { height: 8px; margin-top: 5px; border-radius: 999px; background: #e6e7ee; overflow: hidden; }
.dofe-meter-bar > div { height: 100%; border-radius: 999px; background: var(--dofe-accent); }
.dofe-card-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 12px; border-top: 1px solid var(--dofe-line-soft); }
.dofe-empty { padding: 32px 20px; border: 1px dashed #c9ccd6; border-radius: var(--dofe-radius); color: var(--dofe-muted); text-align: center; }

/* ---- Leaders ---- */
.dofe-person-cell { display: flex; align-items: center; gap: 12px; }
.dofe-person-cell .dofe-person-name { font-weight: 700; }
.dofe-person-sub { color: var(--dofe-muted, #55606b); font-size: 13px; }
.dofe-events-fe.dofe-app .dofe-lead table.lt td.areas-cell { max-width: 340px; }
.dofe-events-fe.dofe-app .dofe-lead .pill { background: var(--dofe-accent-tint); color: var(--dofe-accent-ink); border-radius: 999px; padding: 2px 9px; font-size: 12px; font-weight: 700; }
.dofe-events-fe.dofe-app .dofe-lead a.act { min-height: 32px; display: inline-flex; align-items: center; padding: 0 12px; border-radius: 8px; border-color: #c9ccd6; color: var(--dofe-ink); font-size: 13px; font-weight: 700; }
.dofe-events-fe.dofe-app .dofe-lead a.act.danger { color: var(--dofe-danger); border-color: #e3b5b8; }
.dofe-events-fe.dofe-app .dofe-lead .lcard { border-color: var(--dofe-line); border-radius: var(--dofe-radius); }

/* ---- Participant menu planner ---- */
.dofe-seg { display: inline-flex; gap: 4px; padding: 4px; margin: 0 0 18px; border-radius: 10px; background: #e6e7ee; }
.dofe-events-fe.dofe-app .dofe-seg-btn {
    min-height: 36px;
    padding: 0 16px;
    border: 0;
    border-radius: 7px;
    background: none !important;
    color: #33404b !important;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}
.dofe-events-fe.dofe-app .dofe-seg-btn.is-on { background: #fff !important; color: var(--dofe-ink) !important; font-weight: 700; }
.dofe-menu-wrap[data-show="practice"] .dofe-menu-section[data-type="assessed"],
.dofe-menu-wrap[data-show="assessed"] .dofe-menu-section[data-type="practice"] { display: none; }
.dofe-events-fe.dofe-app .dofe-tab-panel .dofe-menu-section-title { margin: 0 0 12px; }
.dofe-events-fe.dofe-app .dofe-tab-panel .dofe-menu-day-head { display: flex; justify-content: space-between; align-items: center; margin: 0 0 14px; font-size: 18px; font-weight: 800; }
.dofe-menu-day-sum { font-size: 14px; font-weight: 400; }
.dofe-menu-meals { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 18px; }
.dofe-events-fe.dofe-app .dofe-menu-day input[type=number] { padding-left: 8px; padding-right: 4px; }
.dofe-menu-actions {
    position: sticky;
    bottom: 12px;
    z-index: 5;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 16px;
    padding: 12px 16px;
    border: 1px solid var(--dofe-line);
    border-radius: var(--dofe-radius);
    background: var(--dofe-surface);
    box-shadow: 0 6px 20px rgba(22, 32, 42, .10);
}
.dofe-menu-actions-total { flex: 1 1 auto; font-size: 14px; color: var(--dofe-muted); }
.dofe-menu-actions-total strong { color: var(--dofe-ink); }

/* ---- Kit ---- */
.dofe-events-fe.dofe-app .qmm-header { border-bottom: 0; padding-bottom: 0; align-items: center; }
.dofe-events-fe.dofe-app .qmm-header h2 { font-size: 28px; }
.dofe-events-fe.dofe-app .qmm-stats { display: flex; gap: 12px; }
.dofe-events-fe.dofe-app .qmm-stat { min-width: 96px; padding: 10px 14px; border: 1px solid var(--dofe-line); border-radius: 12px; background: var(--dofe-surface); text-align: left; }
.dofe-events-fe.dofe-app .qmm-stat-n { font-size: 22px; font-weight: 800; line-height: 1.1; }
.dofe-events-fe.dofe-app .qmm-stat-l { font-size: 13px; color: var(--dofe-muted); text-transform: none; letter-spacing: 0; }
.dofe-events-fe.dofe-app .qmm-tabs { gap: 24px; border-bottom: 1px solid var(--dofe-line); }
.dofe-events-fe.dofe-app .qmm-tab { padding: 12px 0; font-size: 15px; display: inline-flex; align-items: center; gap: 6px; }
/* Participant "Borrow kit" */
.dofe-events-fe.dofe-app .dqk-wrap { --blue: #7413dc; }
.dofe-events-fe.dofe-app .dqk-add-btn {
    min-height: 36px;
    padding: 0 14px;
    border: 1px solid var(--dofe-accent);
    border-radius: 10px;
    background: var(--dofe-surface) !important;
    color: var(--dofe-accent) !important;
    font-size: 14px;
    font-weight: 700;
}
.dofe-events-fe.dofe-app .dqk-add-btn.added { background: var(--dofe-accent) !important; color: #fff !important; }
.dofe-events-fe.dofe-app .dqk-card { border: 1px solid var(--dofe-line); border-radius: var(--dofe-radius); box-shadow: none; }

/* ---- Site settings ---- */
.dofe-settings-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr)); gap: 20px; align-items: start; }
.dofe-events-fe.dofe-app .dofe-tab-panel .dofe-settings-card { margin: 0; padding: 18px 20px; }
.dofe-events-fe.dofe-app .dofe-settings-card input[type=email],
.dofe-events-fe.dofe-app .dofe-settings-card input[type=text] { width: 100%; }
.dofe-events-fe.dofe-app .rcr-head h2 { margin: 0 0 4px; }

/* ---- Consistency pass: page titles, counts, account screens ---- */
.dofe-events-fe.dofe-app .dofe-tab-panel h2.dofe-page-title,
.dofe-events-fe.dofe-app .dofe-tab-panel > h2:first-child { font-size: 28px; font-weight: 800; margin: 0 0 6px; text-transform: none; letter-spacing: -0.01em; color: var(--dofe-ink); }
.dofe-events-fe.dofe-app .dofe-tab-panel > h2:first-child { margin-bottom: 16px; }
.dofe-events-fe.dofe-app .osm-dofe-upl-count { min-width: 0; height: auto; padding: 3px 10px; background: #e8ecef; color: #33404b; font-size: 13px; }
.dofe-events-fe.dofe-app .dofe-events-section-count { background: var(--dofe-accent-tint); color: var(--dofe-accent-ink); }
.dofe-events-fe.dofe-app .osm-dofe-report-card-label { text-transform: none; letter-spacing: 0; font-size: 14px; color: var(--dofe-muted); }
.dofe-events-fe.dofe-app .osm-dofe-report-card-value { font-size: 30px; font-weight: 800; }
.dofe-events-fe.dofe-app .dofe-acct .acct-save {
    min-height: 44px;
    padding: 0 18px;
    border-radius: 10px;
    background: var(--dofe-accent) !important;
    color: #fff !important;
    font-size: 15px;
    font-weight: 700;
}
.dofe-events-fe.dofe-app .dofe-acct .acct-save:hover { background: var(--dofe-accent-dark) !important; }
.dofe-events-fe.dofe-app .dofe-acct .acct-card { border-color: var(--dofe-line); border-radius: var(--dofe-radius); }
.dofe-events-fe.dofe-app .dofe-acct .acct-card.acct-actions { border: 0; background: none; padding: 0; }
.dofe-events-fe.dofe-app .dofe-tab-panel[data-tab="account"] input[type=password] { width: 100%; max-width: 360px; }
.dofe-events-fe.dofe-app .dofe-tab-panel input[type=file] { font-size: 14px; margin: 8px 0; }
.dofe-events-fe.dofe-app .dim { color: var(--dofe-muted); }

/* ---- Sign-in pages (leader, participant, code step, set password) ---- */
.dofe-events-fe .dofe-auth-visual { background: linear-gradient(155deg, #2e0a5c 0%, #5c14b3 55%, #7413dc 100%); }
.dofe-events-fe .dofe-leader-login h2 { font-family: inherit; font-weight: 800; letter-spacing: -0.01em; }
.dofe-events-fe .dofe-leader-login input[type=text],
.dofe-events-fe .dofe-leader-login input[type=password] { min-height: 46px; border-radius: 8px; font-size: 16px; }
.dofe-events-fe .dofe-leader-login input:focus { outline: 2px solid #7413dc; outline-offset: 0; border-color: #7413dc; }
.dofe-events-fe .dofe-leader-login .button-primary,
.dofe-events-fe .dofe-leader-login button[type=submit] {
    min-height: 48px;
    width: 100%;
    border: 0;
    border-radius: 10px;
    background: #7413dc !important;
    color: #fff !important;
    font-family: inherit;
    font-size: 16px;
    font-weight: 700;
    box-shadow: none;
    cursor: pointer;
}
.dofe-events-fe .dofe-leader-login .button-primary:hover,
.dofe-events-fe .dofe-leader-login button[type=submit]:hover { background: #5a0fb0 !important; }
.dofe-events-fe .dofe-leader-login .dofe-auth-footnote { color: #55606b; font-size: 14px; }
.dofe-events-fe .dofe-auth-visual h3 { font-family: inherit; }

/* ---- Members table fills its box ---- */
.dofe-events-fe.dofe-app .dofe-tab-panel .dofe-mr-table-wrap { border: 1px solid var(--dofe-line); border-radius: var(--dofe-radius); background: var(--dofe-surface); }
.dofe-events-fe.dofe-app .dofe-tab-panel .dofe-mr-table-wrap .dofe-mr-table { width: 100%; }

/* ---- Tool sections that open in place (New starters) ---- */
.dofe-events-fe.dofe-app details.dofe-tool {
    margin: 0 0 10px;
    border: 1px solid var(--dofe-line);
    border-radius: 12px;
    background: var(--dofe-surface);
}
.dofe-events-fe.dofe-app details.dofe-tool > summary { padding: 12px 16px; font-size: 15px; font-weight: 700; }
.dofe-events-fe.dofe-app details.dofe-tool[open] > summary { border-bottom: 1px solid var(--dofe-line-soft); }
.dofe-events-fe.dofe-app details.dofe-tool > *:not(summary) { margin-left: 16px; margin-right: 16px; max-width: 640px; }
.dofe-events-fe.dofe-app details.dofe-tool > form { padding: 14px 0 16px; }
.dofe-events-fe.dofe-app .dofe-menu-day-bar { margin: -6px 0 14px; }
.dofe-events-fe.dofe-app .dofe-menu-note { margin: 0 0 14px; }
.dofe-events-fe .dofe-leader-login .dofe-err { padding: 10px 12px; border-radius: 8px; background: #fbe9ea; color: #a4262c; font-size: 14px; font-weight: 700; }

/* ---- Leader dashboard ---- */
.dofe-dash-cols { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 24px; align-items: start; margin-bottom: 28px; }
.dofe-panel { border: 1px solid var(--dofe-line); border-radius: var(--dofe-radius); background: var(--dofe-surface); overflow: hidden; }
.dofe-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 20px; }
.dofe-panel .dofe-panel-head { border-bottom: 1px solid var(--dofe-line-soft); }
.dofe-events-fe.dofe-app .dofe-dash .dofe-panel-head h3 { margin: 0 !important; }
.dofe-section-head { padding: 0; margin: 0 0 12px; }
.dofe-attn-row, .dofe-next-row { display: flex; align-items: center; gap: 14px; padding: 14px 20px; border-bottom: 1px solid var(--dofe-line-soft); }
.dofe-panel > :last-child { border-bottom: 0; }
.dofe-attn-icon { display: inline-flex; width: 36px; height: 36px; flex: 0 0 auto; align-items: center; justify-content: center; border-radius: 10px; background: #fff1d6; color: #7a4a00; }
.dofe-attn-text { flex: 1 1 auto; min-width: 0; }
.dofe-attn-title { font-weight: 700; }
.dofe-attn-detail { color: var(--dofe-muted); font-size: 14px; }
.dofe-date-chip { width: 48px; flex: 0 0 auto; padding: 5px 0; border-radius: 10px; background: var(--dofe-accent-tint); color: var(--dofe-accent-ink); text-align: center; line-height: 1.15; }
.dofe-date-chip > div:first-child { font-size: 11px; font-weight: 800; letter-spacing: .04em; }
.dofe-date-chip > div:last-child { font-size: 19px; font-weight: 800; }
.dofe-events-fe.dofe-app .dofe-dash .dofe-dash-btn {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    min-height: 38px;
    margin: 0;
    padding: 0 14px;
    border: 1px solid #c9ccd6;
    border-radius: 10px;
    background: var(--dofe-surface) !important;
    color: var(--dofe-ink) !important;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
}
.dofe-events-fe.dofe-app .dofe-dash .dofe-dash-btn:hover { border-color: var(--dofe-ink); background: var(--dofe-surface) !important; color: var(--dofe-ink) !important; }
.dofe-events-fe.dofe-app .dofe-dash .dofe-dash-btn.is-primary { min-height: 44px; padding: 0 18px; border-color: var(--dofe-accent); background: var(--dofe-accent) !important; color: #fff !important; }
.dofe-events-fe.dofe-app .dofe-dash .dofe-dash-btn.is-primary:hover { background: var(--dofe-accent-dark) !important; border-color: var(--dofe-accent-dark); }
.dofe-team-cards { margin-bottom: 28px; grid-template-columns: repeat(auto-fill, minmax(min(360px, 100%), 1fr)); }
.dofe-team-card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.dofe-events-fe.dofe-app .dofe-dash .dofe-team-card-head h4 { margin: 0 !important; font-size: 17px !important; font-weight: 800 !important; }
.dofe-team-card-note { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 10px 12px; border-radius: 10px; background: #fff1d6; color: #7a4a00; font-size: 14px; }
.dofe-meter-bar.is-done > div { background: #1f7a3f; }
.dofe-pill-s.dofe-award-bronze { background: #f5e3d0; color: #6b3a0c; }
.dofe-pill-s.dofe-award-gold { background: #fbeec2; color: #6b4d00; }
.dofe-events-fe.dofe-app .dofe-glance { grid-template-columns: repeat(auto-fit, minmax(min(150px, 100%), 1fr)); margin-bottom: 28px; }
.dofe-events-fe.dofe-app .dofe-glance .dd-tile-v { margin: 0; }
.dofe-events-fe.dofe-app .dofe-glance .dd-tile-l { margin: 4px 0 0; }
@media (max-width: 900px) { .dofe-dash-cols { grid-template-columns: 1fr; } }

/* ---- Teams: header, toolbar and team cards ---- */
.dofe-head-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.dofe-toolbar { display: flex; align-items: center; gap: 12px 16px; flex-wrap: wrap; margin: 0 0 20px; }
.dofe-toolbar .dofe-seg { margin: 0; }
.dofe-events-fe.dofe-app a.dofe-seg-btn { display: inline-flex; align-items: center; text-decoration: none; }
.dofe-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.dofe-events-fe.dofe-app a.dofe-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 36px;
    padding: 0 14px;
    border: 1px solid #c9ccd6;
    border-radius: 999px;
    background: var(--dofe-surface);
    color: var(--dofe-ink);
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}
.dofe-events-fe.dofe-app a.dofe-chip span { color: var(--dofe-muted); font-weight: 600; }
.dofe-events-fe.dofe-app a.dofe-chip.is-on { border-color: var(--dofe-ink); background: var(--dofe-ink); color: #fff; }
.dofe-events-fe.dofe-app a.dofe-chip.is-on span { color: #fff; }
.dofe-search { margin: 0 0 0 auto; }
.dofe-events-fe.dofe-app .dofe-tab-panel .dofe-search input[type=search] { width: 260px; max-width: 100%; }

/* The "Manage teams" fold becomes a plain list */
.dofe-events-fe.dofe-app .dofe-tab-panel details.dofe-teams-list { border: 0; background: none; margin: 0; }
.dofe-events-fe.dofe-app details.dofe-teams-list > summary { display: none; }
.dofe-events-fe.dofe-app details.dofe-teams-list > .inside { padding: 0; }
.dofe-events-fe.dofe-app .dofe-teams-list .osm-dofe-year-group { border: 0; background: none; overflow: visible; margin: 0 0 8px; }
.dofe-events-fe.dofe-app .dofe-teams-list .osm-dofe-year-group > summary { padding: 0 0 12px; background: none; font-size: 15px; justify-content: flex-start; }
.dofe-events-fe.dofe-app .dofe-teams-list .osm-dofe-year-group > summary::after { margin-left: auto; }
.dofe-events-fe.dofe-app .dofe-teams-list .osm-dofe-year-group-body { padding: 0; }
.dofe-events-fe.dofe-app .dofe-teams-list .osm-dofe-year-group-count { color: var(--dofe-muted); font-weight: 400; }
.dofe-events-fe.dofe-app .dofe-teams-list .osm-dofe-award-group-h { display: none; }
.dofe-events-fe.dofe-app .dofe-teams-list .osm-dofe-award-group { margin: 0 0 24px; }
.dofe-events-fe.dofe-app .dofe-teams-list .osm-dofe-tablewrap { overflow: visible; }

/* Each team's <tbody> is a card */
.dofe-events-fe.dofe-app .dofe-teams-list table.widefat {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(340px, 100%), 1fr));
    gap: 24px;
    align-items: start;
    border: 0;
    border-radius: 0;
    background: none;
    overflow: visible;
    white-space: normal;
}
.dofe-events-fe.dofe-app .dofe-teams-list table.widefat > thead { display: none; }
.dofe-events-fe.dofe-app .dofe-teams-list tbody.dofe-team-tb {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 20px;
    border: 1px solid var(--dofe-line);
    border-radius: var(--dofe-radius);
    background: var(--dofe-surface);
}
/* A card with its edit form or participants open takes the full row */
.dofe-events-fe.dofe-app .dofe-teams-list tbody.dofe-team-tb:has(.osm-dofe-edit-row.is-open),
.dofe-events-fe.dofe-app .dofe-teams-list tbody.dofe-team-tb:has(.osm-dofe-participants-row details[open]) { grid-column: 1 / -1; }
.dofe-events-fe.dofe-app .dofe-teams-list tbody.dofe-team-tb > tr { display: block; background: none !important; }
.dofe-events-fe.dofe-app .dofe-teams-list tbody.dofe-team-tb > tr:hover { background: none !important; }
.dofe-events-fe.dofe-app .dofe-teams-list tbody.dofe-team-tb > tr > td { display: block; padding: 0; border: 0; white-space: normal; }
.dofe-events-fe.dofe-app .dofe-teams-list tbody.dofe-team-tb > tr:first-child > td:nth-child(2),
.dofe-events-fe.dofe-app .dofe-teams-list tbody.dofe-team-tb > tr:first-child > td:nth-child(3),
.dofe-events-fe.dofe-app .dofe-teams-list tbody.dofe-team-tb > tr:first-child > td:nth-child(4) { display: none; }
.dofe-events-fe.dofe-app .dofe-teams-list .dofe-team-card-main { display: flex !important; flex-direction: column; gap: 14px; }
.dofe-events-fe.dofe-app .dofe-teams-list .dofe-team-card-head { align-items: flex-start; }
.dofe-events-fe.dofe-app .dofe-tab-panel .dofe-teams-list h3.osm-dofe-team-name { margin: 0; font-size: 18px; font-weight: 800; }
.dofe-avatars { display: flex; align-items: center; flex-wrap: wrap; }
.dofe-avatars .dofe-avatar { margin-right: -6px; border: 2px solid var(--dofe-surface); box-sizing: content-box; }
.dofe-avatars .dofe-card-sub { margin-left: 16px; }
.dofe-events-fe.dofe-app .dofe-teams-list tbody.dofe-team-tb > tr:first-child > td:last-child { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--dofe-line-soft); width: auto !important; }
.dofe-events-fe.dofe-app .dofe-teams-list .osm-dofe-edit-row { display: none; }
.dofe-events-fe.dofe-app .dofe-teams-list .osm-dofe-edit-row.is-open { display: block; padding: 16px; border-radius: 12px; background: #f8f8fb !important; }
.dofe-events-fe.dofe-app .dofe-teams-list .osm-dofe-participants-row details.osm-dofe-team-uploads { padding: 0; border: 0; background: none; }
.dofe-events-fe.dofe-app .dofe-teams-list .osm-dofe-participants-row details.osm-dofe-team-uploads > summary { padding: 10px 14px; border: 1px solid var(--dofe-line); border-radius: 10px; background: #f8f8fb; font-size: 14px; }
@media (max-width: 782px) {
    .dofe-events-fe.dofe-app .dofe-teams-list table.widefat { display: grid; grid-template-columns: 1fr; overflow: visible; }
    .dofe-search { margin-left: 0; width: 100%; }
    .dofe-events-fe.dofe-app .dofe-tab-panel .dofe-search input[type=search] { width: 100%; }
}
.dofe-events-fe.dofe-app .osm-dofe-filter-bar[hidden] { display: none !important; }
.dofe-events-fe.dofe-app .dofe-teams-list tbody.dofe-team-tb > tr.osm-dofe-edit-row { display: none; }
.dofe-events-fe.dofe-app .dofe-teams-list tbody.dofe-team-tb > tr.osm-dofe-edit-row.is-open { display: block; }
/* All of a year's teams flow in one grid, whatever their award level */
.dofe-events-fe.dofe-app .dofe-teams-list .osm-dofe-year-group-body {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(340px, 100%), 1fr));
    gap: 24px;
    align-items: start;
    margin-bottom: 24px;
}
.dofe-events-fe.dofe-app .dofe-teams-list .osm-dofe-year-group-body > p { grid-column: 1 / -1; }
.dofe-events-fe.dofe-app .dofe-teams-list .osm-dofe-award-group,
.dofe-events-fe.dofe-app .dofe-teams-list .osm-dofe-tablewrap,
.dofe-events-fe.dofe-app .dofe-teams-list table.widefat { display: contents; }
@media (max-width: 782px) {
    .dofe-events-fe.dofe-app .dofe-teams-list .osm-dofe-year-group-body { grid-template-columns: 1fr; }
    .dofe-events-fe.dofe-app .dofe-teams-list table.widefat { display: contents; }
}
.dofe-events-fe.dofe-app #dofe-teams-create:not([open]) { display: none; }
.dofe-events-fe.dofe-app #dofe-teams-create { margin-bottom: 20px; }
.dofe-events-fe.dofe-app #dofe-teams-create > summary { background: none; }
.dofe-events-fe.dofe-app .dofe-teams-list .osm-dofe-participants-row details.osm-dofe-team-uploads > summary { box-sizing: border-box; width: 100%; }
.dofe-events-fe.dofe-app .dofe-teams-list tbody.dofe-team-tb * { box-sizing: border-box; }
.dofe-avatars .dofe-avatar:last-of-type { margin-right: 0; }

/* ---- Participant accounts ---- */
.dofe-search-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.dofe-events-fe.dofe-app .dofe-row-actions { white-space: nowrap; text-align: right; }
.dofe-events-fe.dofe-app .dofe-row-actions form { display: inline; }

/* ---- Route card editor: two columns, legs as cards ---- */
div.osm-dofe-app-shell.osm-dofe-app-shell .osm-dofe-kicker,
div.osm-dofe-app-shell.osm-dofe-app-shell .osm-dofe-hero-grid { display: none; }
div.osm-dofe-app-shell.osm-dofe-app-shell .osm-dofe-hero-main { display: flex; align-items: center; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap; padding: 0; border: 0; background: none; }
div.osm-dofe-app-shell.osm-dofe-app-shell .osm-dofe-hero-main h2 { margin: 0; font-size: 28px; }
div.osm-dofe-app-shell.osm-dofe-app-shell .osm-dofe-top-actions { margin: 0; }
.dofe-rc-cols { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; align-items: start; }
.dofe-rc-main { min-width: 0; }
div.osm-dofe-app-shell.osm-dofe-app-shell .dofe-rc-h { margin: 0 0 12px; font-size: 18px; }
.dofe-rc-aside { position: sticky; top: 16px; display: flex; flex-direction: column; gap: 16px; }
div.osm-dofe-app-shell.osm-dofe-app-shell .dofe-rc-box { padding: 16px 18px; }
div.osm-dofe-app-shell.osm-dofe-app-shell .dofe-rc-box h4 { margin: 0 0 12px; font-size: 16px; font-weight: 800; }
.dofe-rc-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.dofe-rc-stats strong { display: block; font-size: 19px; font-weight: 800; white-space: nowrap; }
.dofe-rc-stats span { font-size: 13px; color: #55606b; }
#dofe-rc-checks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; font-size: 14px; }
#dofe-rc-checks li { position: relative; padding-left: 28px; }
#dofe-rc-checks li::before { content: ""; position: absolute; left: 0; top: 1px; width: 18px; height: 18px; border-radius: 50%; box-sizing: border-box; }
#dofe-rc-checks li.is-ok::before { background: #dff1e6; border: 2px solid #1f7a3f; }
#dofe-rc-checks li.is-ok::after { content: ""; position: absolute; left: 6px; top: 5px; width: 4px; height: 8px; border: solid #1f7a3f; border-width: 0 2px 2px 0; transform: rotate(45deg); }
#dofe-rc-checks li.is-todo { color: #7a4a00; font-weight: 700; }
#dofe-rc-checks li.is-todo::before { background: #fff1d6; border: 2px solid #b97400; }
div.osm-dofe-app-shell.osm-dofe-app-shell .dofe-rc-save .button { width: 100%; justify-content: center; min-height: 48px; font-size: 16px; }

/* Legs: each row is a card, each cell a labelled field */
div.osm-dofe-app-shell.osm-dofe-app-shell .osm-dofe-table-card { border: 0; background: none; padding: 0; box-shadow: none; }
div.osm-dofe-app-shell.osm-dofe-app-shell .osm-dofe-table-wrap { overflow: visible; padding: 0; }
div.osm-dofe-app-shell.osm-dofe-app-shell table.osm-dofe-table,
div.osm-dofe-app-shell.osm-dofe-app-shell table.osm-dofe-table > tbody { display: block; width: 100%; min-width: 0; border: 0; }
div.osm-dofe-app-shell.osm-dofe-app-shell table.osm-dofe-table > thead,
div.osm-dofe-app-shell.osm-dofe-app-shell table.osm-dofe-table > tfoot { display: none; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 10px 12px;
    margin: 0 0 12px;
    padding: 16px 18px;
    border: 1px solid #dedfe6;
    border-radius: 14px;
    background: #fff;
}
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td { display: block; padding: 0; border: 0; background: none; min-width: 0; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td::before { display: block; margin-bottom: 4px; font-size: 13px; font-weight: 700; color: #55606b; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td input,
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td textarea { width: 100%; min-width: 0; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(1) { grid-column: span 1; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(1)::before { content: "Leg"; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(1) input { font-weight: 800; text-align: center; padding-left: 4px; padding-right: 4px; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(3) { grid-column: span 4; order: 2; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(3)::before { content: "To (place)"; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(1) { order: 1; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(2) { grid-column: span 2; order: 3; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(2)::before { content: "Grid ref"; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(4) { grid-column: span 2; order: 4; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(4)::before { content: "Bearing"; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(5) { grid-column: span 1; order: 5; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(5)::before { content: "km"; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(6) { grid-column: span 1; order: 6; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(6)::before { content: "Climb m"; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(9) { grid-column: span 1; order: 7; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(9)::before { content: "Rest min"; }
/* worked-out figures: plain text, one line */
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(7),
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(8),
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(10),
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(11) { grid-column: span 3; order: 8; display: flex; align-items: baseline; gap: 6px; padding: 8px 10px; border-radius: 8px; background: #f8f8fb; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(7)::before { content: "Walking (min)"; margin: 0; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(8)::before { content: "Climb (min)"; margin: 0; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(10)::before { content: "Leg total (min)"; margin: 0; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(11)::before { content: "Arrive"; margin: 0; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(7) input,
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(8) input,
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(10) input,
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(11) input { width: 64px; flex: 0 0 auto; padding: 0; border: 0; background: none; box-shadow: none; font-weight: 800; color: #16202a; -moz-appearance: textfield; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td input[readonly]::-webkit-inner-spin-button { display: none; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(12) { grid-column: span 6; order: 9; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(12)::before { content: "Route details or planned activity"; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(13) { grid-column: span 5; order: 10; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(13)::before { content: "Escape route / notes"; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(14) { grid-column: span 1; order: 11; align-self: end; text-align: right; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td textarea { min-height: 64px; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-feedback-row,
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-feedback-row > td { display: block; padding: 0; margin: -4px 0 12px; }
div.osm-dofe-app-shell.osm-dofe-app-shell .osm-dofe-leg-feedback-panel,
div.osm-dofe-app-shell.osm-dofe-app-shell .osm-dofe-feedback-panel { background: #fff1d6; border-color: #f1d98a; color: #7a4a00; }
@media (max-width: 1000px) {
    .dofe-rc-cols { grid-template-columns: 1fr; }
    .dofe-rc-aside { position: static; }
}
@media (max-width: 700px) {
    div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:not(.dofe-leg-sum) { grid-column: span 1 !important; }
    div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(3),
    div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(12),
    div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td:nth-child(13) { grid-column: span 2 !important; }
}
div.osm-dofe-app-shell.osm-dofe-app-shell .dofe-rc-main > .osm-dofe-grid { padding: 18px; border: 1px solid #dedfe6; border-radius: 14px; background: #fff; gap: 14px 16px; margin-bottom: 24px; }
div.osm-dofe-app-shell.osm-dofe-app-shell .dofe-rc-main .osm-dofe-field-card { padding: 0; border: 0; background: none; box-shadow: none; }
div.osm-dofe-app-shell.osm-dofe-app-shell .osm-dofe-table-head { padding: 0 0 12px; border: 0; }

/* ---- Route card review (leader) ---- */
.dofe-events-fe .rcr-modal-dialog { width: min(1240px, calc(100vw - 32px)); max-width: none; border-radius: 16px; }
.dofe-events-fe .dofe-rv { font-size: 15px; }
.dofe-rv-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin: 0 48px 18px 0; }
.dofe-events-fe .dofe-rv-head h3 { margin: 0; font-size: 24px; font-weight: 800; }
.dofe-events-fe .dofe-rv-head .rcr-detail-meta { margin: 2px 0 0; color: #55606b; }
.dofe-rv-cols { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 24px; align-items: start; }
.dofe-rv-main { min-width: 0; }
.dofe-rv-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 12px; }
.dofe-rv-stat { padding: 12px 14px; border: 1px solid #dedfe6; border-radius: 12px; background: #fff; }
.dofe-events-fe .dofe-rv .rcr-info-label { display: block; font-size: 13px; font-weight: 700; color: #55606b; text-transform: none; letter-spacing: 0; }
.dofe-events-fe .dofe-rv .rcr-info-value { display: block; font-weight: 700; }
.dofe-events-fe .dofe-rv .rcr-info-cell { background: #f8f8fb; border-radius: 10px; }
.dofe-events-fe .dofe-rv .rcr-info-cell .rcr-info-value { font-weight: 400; }
.dofe-events-fe .dofe-rv-h, .dofe-events-fe .dofe-rv-box h4 { margin: 18px 0 10px; font-size: 17px; font-weight: 800; }
.dofe-events-fe .dofe-rv-box h4 { margin-top: 0; }
.dofe-rv-aside { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 0; }
.dofe-rv-box { padding: 16px 18px; border: 1px solid #dedfe6; border-radius: 14px; background: #fff; }
.dofe-events-fe .dofe-rv textarea,
.dofe-events-fe .dofe-rv input[type=text],
.dofe-events-fe .dofe-rv input[type=date],
.dofe-events-fe .dofe-rv select { width: 100%; box-sizing: border-box; padding: 8px 10px; border: 1px solid #c9ccd6; border-radius: 8px; font: inherit; }
.dofe-events-fe .dofe-rv .rcr-review-field label { display: block; margin-bottom: 4px; font-size: 13px; font-weight: 700; color: #55606b; }
.dofe-rv-decide { display: flex; flex-direction: column; gap: 8px; margin: 12px 0 8px; }
.dofe-events-fe .dofe-rv .rcr-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 0 16px; border: 1px solid #16202a; border-radius: 10px; background: #fff !important; color: #16202a !important; font-size: 14px; font-weight: 700; text-decoration: none; cursor: pointer; }
.dofe-events-fe .dofe-rv .rcr-btn.rcr-btn-primary { border-color: #7413dc; background: #7413dc !important; color: #fff !important; }
.dofe-events-fe .dofe-rv .rcr-btn.rcr-btn-primary:hover { background: #5a0fb0 !important; }
.dofe-events-fe .dofe-rv .rcr-btn.rcr-btn-ghost { border-color: #c9ccd6; }
.dofe-events-fe .dofe-rv .rcr-hint { margin: 0; color: #55606b; font-size: 13px; }
.dofe-rv-more { margin-top: 12px; padding-top: 12px; border-top: 1px solid #eeeef3; }
.dofe-rv-more > summary { cursor: pointer; font-weight: 700; color: #7413dc; font-size: 14px; }
.dofe-rv-more > * + * { margin-top: 10px; }
.dofe-events-fe .dofe-rv .rcr-checks { font-size: 14px; }
.dofe-events-fe .dofe-rv .rcr-checks ul { margin: 4px 0 10px; padding-left: 18px; }
.dofe-events-fe .dofe-rv .rcr-checks li { margin: 2px 0; }
.dofe-events-fe .dofe-rv .rcr-check-errors > strong, .dofe-events-fe .dofe-rv .rcr-check-errors > h5 { color: #a4262c; }
.dofe-events-fe .dofe-rv .rcr-check-warnings > strong, .dofe-events-fe .dofe-rv .rcr-check-warnings > h5 { color: #7a4a00; }
.dofe-events-fe .dofe-rv .rcr-legs-wrap { overflow-x: auto; }
.dofe-events-fe .dofe-rv table.rcr-legs { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid #dedfe6; border-radius: 12px; overflow: hidden; font-size: 14px; }
.dofe-events-fe .dofe-rv table.rcr-legs th { padding: 10px 12px; background: #f8f8fb; color: #55606b; font-size: 13px; font-weight: 700; text-align: left; border: 0; border-bottom: 1px solid #dedfe6; }
.dofe-events-fe .dofe-rv table.rcr-legs td { padding: 10px 12px; border: 0; border-bottom: 1px solid #eeeef3; vertical-align: top; }
.dofe-events-fe .dofe-rv .rcr-map { min-height: 220px; border-radius: 10px; overflow: hidden; }
.dofe-rv-links { margin: 12px 0 0; }
@media (max-width: 900px) {
    .dofe-rv-cols { grid-template-columns: 1fr; }
    .dofe-rv-aside { position: static; }
    .dofe-rv-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.dofe-events-fe .rcr-modal-close,
.dofe-events-fe .dofe-event-modal-close {
    width: 40px; height: 40px; padding: 0; border: 1px solid #c9ccd6 !important; border-radius: 10px;
    background: #fff !important; color: #16202a !important; font-size: 22px; line-height: 1; cursor: pointer;
}
.dofe-rv-head { margin-right: 56px; }
/* Route card list rows (leader) */
.dofe-events-fe.dofe-app .rcr-open-card {
    flex: 1 1 auto; padding: 0; border: 0; background: none !important; color: var(--dofe-ink) !important;
    font-size: 15px; font-weight: 700; text-align: left; text-decoration: none; cursor: pointer;
}
.dofe-events-fe.dofe-app .rcr-open-card:hover { color: var(--dofe-accent) !important; text-decoration: underline; }
.dofe-events-fe.dofe-app .rcr-card-row { align-items: center; gap: 12px; padding: 12px 0; }
.dofe-events-fe.dofe-app .rcr-team { border: 1px solid var(--dofe-line); border-radius: var(--dofe-radius); background: var(--dofe-surface); }
.dofe-events-fe.dofe-app .rcr-team > summary { font-size: 16px; font-weight: 800; }

/* ---- Small drop-down menus on header buttons ---- */
.dofe-menu { position: relative; }
.dofe-events-fe.dofe-app .dofe-menu > summary { list-style: none; }
.dofe-events-fe.dofe-app .dofe-menu > summary::-webkit-details-marker { display: none; }
.dofe-menu-list { position: absolute; right: 0; top: calc(100% + 6px); z-index: 20; min-width: 200px; padding: 6px; border: 1px solid var(--dofe-line); border-radius: 12px; background: var(--dofe-surface); box-shadow: 0 8px 24px rgba(22, 32, 42, .12); }
.dofe-events-fe.dofe-app .dofe-menu-list a,
.dofe-events-fe.dofe-app .dofe-menu-list button { display: block; width: 100%; padding: 10px 12px; border: 0; border-radius: 8px; background: none !important; color: var(--dofe-ink) !important; font: inherit; font-weight: 600; text-align: left; text-decoration: none; cursor: pointer; box-sizing: border-box; }
.dofe-events-fe.dofe-app .dofe-menu-list a:hover,
.dofe-events-fe.dofe-app .dofe-menu-list button:hover { background: #f1f1f5 !important; }
.dofe-events-fe.dofe-app .dofe-mr-filters-new select { max-width: 190px; }
.dofe-events-fe.dofe-app a.dofe-person-name { color: var(--dofe-ink); font-weight: 700; text-decoration: none; }
.dofe-events-fe.dofe-app a.dofe-person-name:hover { color: var(--dofe-accent); text-decoration: underline; }

/* ---- New starters ---- */
.dofe-events-fe.dofe-app .dofe-ns-filters label { display: flex !important; flex-direction: column; font-size: 13px; font-weight: 700; color: var(--dofe-muted); }
.dofe-events-fe.dofe-app .dofe-ns-filters label br { display: none; }
.dofe-events-fe.dofe-app details.dofe-tool:not([open]) { display: none; }
.dofe-events-fe.dofe-app .dofe-ns-chk-wrap { padding: 6px 12px 6px 6px; border: 1px solid #c9ccd6; border-radius: 999px; background: var(--dofe-surface); font-size: 14px; font-weight: 600; }
.dofe-events-fe.dofe-app .dofe-ns-chk-wrap:has(.dofe-ns-chk-input:checked) { border-color: #1f7a3f; background: #dff1e6; color: #14532d; }
.dofe-events-fe.dofe-app .dofe-ns-chk-box { width: 22px; height: 22px; min-width: 22px; border-radius: 50%; }
.dofe-events-fe.dofe-app input[type="checkbox"].dofe-ns-chk-input { width: 22px !important; height: 22px !important; min-width: 22px !important; left: 6px; top: 6px; }

/* ---- Kit requests ---- */
.dofe-events-fe.dofe-app .dofe-kit-h { margin: 0 0 12px; font-size: 18px; font-weight: 800; }
.dofe-events-fe.dofe-app .qmm-card { margin-bottom: 14px; overflow: hidden; background: var(--dofe-surface); }
.dofe-events-fe.dofe-app .qmm-card-head { position: relative; padding: 16px 20px 14px 68px; background: none; border-bottom: 1px solid var(--dofe-line-soft); align-items: center; }
.dofe-events-fe.dofe-app .qmm-card-avatar { position: absolute; left: 20px; top: 16px; width: 36px; height: 36px; }
.dofe-events-fe.dofe-app .qmm-card-name { font-size: 16px; font-weight: 800; }
.dofe-events-fe.dofe-app .qmm-card-meta { font-size: 14px; color: var(--dofe-muted); }
.dofe-events-fe.dofe-app .qmm-card-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.dofe-events-fe.dofe-app .qmm-item-row { padding: 12px 20px; border-color: var(--dofe-line-soft); }
.dofe-events-fe.dofe-app .qmm-item-name { font-weight: 700; }
.dofe-events-fe.dofe-app .qmm-btn-success { background: var(--dofe-accent) !important; color: #fff !important; }
.dofe-events-fe.dofe-app .qmm-btn-success:hover { background: var(--dofe-accent-dark) !important; }
.dofe-events-fe.dofe-app .qmm-btn-danger { background: var(--dofe-surface) !important; color: var(--dofe-ink) !important; border: 1px solid #16202a; }
.dofe-events-fe.dofe-app .qmm-btn-danger:hover { background: #f1f1f5 !important; }
.dofe-events-fe.dofe-app .qmm-btn { padding: 0 14px; }
.dofe-events-fe.dofe-app .qmm-empty-icon { display: none; }
.dofe-events-fe.dofe-app .qmm-empty { padding: 32px 20px; border: 1px dashed #c9ccd6; border-radius: var(--dofe-radius); color: var(--dofe-muted); }
.dofe-events-fe.dofe-app .qmm-badge { padding: 3px 10px; border-radius: 999px; font-size: 13px; font-weight: 700; }
.dofe-events-fe.dofe-app .qmm-btn-amber { background: var(--dofe-surface) !important; color: var(--dofe-ink) !important; border: 1px solid #16202a; }

/* ---- Leaders: list and detail ---- */
.dofe-ld-cols { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 24px; align-items: start; }
.dofe-events-fe.dofe-app .dofe-ld-row {
    display: flex; align-items: center; gap: 12px; width: 100%; margin: 0; padding: 16px 20px;
    border: 0; border-bottom: 1px solid var(--dofe-line-soft); border-radius: 0;
    background: var(--dofe-surface) !important; color: var(--dofe-ink) !important; font: inherit; text-align: left; cursor: pointer;
}
.dofe-events-fe.dofe-app .dofe-ld-row:hover { background: #faf8fe !important; }
.dofe-events-fe.dofe-app .dofe-ld-row.is-on { background: var(--dofe-accent-tint) !important; }
.dofe-ld-row-text { display: flex; flex-direction: column; flex: 1 1 auto; min-width: 0; }
.dofe-ld-row .dofe-avatar { width: 36px; height: 36px; }
.dofe-pill-s.is-accent { background: var(--dofe-accent-tint, #f1e8fc); color: var(--dofe-accent-ink, #4a0d91); }
.dofe-events-fe.dofe-app .dofe-ld-row.is-on .dofe-pill-s { background: #fff; }
.dofe-events-fe.dofe-app .dofe-ld-pane .dofe-panel-head h3 { margin: 0; font-size: 18px; font-weight: 800; }
.dofe-ld-body { padding: 16px 20px; }
.dofe-events-fe.dofe-app .dofe-ld-body label.fld { margin: 0 0 12px; font-size: 13px; font-weight: 700; color: var(--dofe-muted); }
.dofe-events-fe.dofe-app .dofe-ld-body label.fld input[type=text],
.dofe-events-fe.dofe-app .dofe-ld-body label.fld input[type=email] { min-height: 40px; border-radius: 8px; border-color: #c9ccd6; font-size: 15px; }
.dofe-events-fe.dofe-app .dofe-ld-body .fld { font-size: 15px; font-weight: 800; color: var(--dofe-ink); }
.dofe-events-fe.dofe-app .dofe-ld-body .areas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 12px; margin-top: 8px; }
.dofe-events-fe.dofe-app .dofe-ld-body .areas label { margin: 0; min-height: 36px; font-size: 15px; }
.dofe-ld-actions { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 20px; border-top: 1px solid var(--dofe-line-soft); }
.dofe-ld-danger { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 14px 20px; border-top: 1px solid var(--dofe-line); background: #f8f8fb; color: var(--dofe-muted); font-size: 14px; }
@media (max-width: 900px) { .dofe-ld-cols { grid-template-columns: 1fr; } }
.dofe-ld-row-text .dofe-person-name { flex: 0 0 auto; font-weight: 700; }
.dofe-events-fe.dofe-app .dofe-ld-row:focus-visible { outline: 2px solid var(--dofe-accent); outline-offset: -2px; }
.dofe-events-fe.dofe-app .dofe-ld-row:focus:not(:focus-visible) { outline: 0; }

/* ---- List and detail (Menus) ---- */
.dofe-md-cols { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 24px; align-items: start; }
.dofe-md-group { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 20px; background: #f8f8fb; border-bottom: 1px solid var(--dofe-line); font-weight: 800; }
.dofe-events-fe.dofe-app .dofe-md-link { padding: 0; border: 0; background: none !important; color: var(--dofe-accent) !important; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
.dofe-events-fe.dofe-app .dofe-md-link.is-on { text-decoration: underline; }
.dofe-events-fe.dofe-app .dofe-md-row {
    display: flex; align-items: center; gap: 12px; width: 100%; margin: 0; padding: 14px 20px;
    border: 0; border-bottom: 1px solid var(--dofe-line-soft); border-radius: 0;
    background: var(--dofe-surface) !important; color: var(--dofe-ink) !important; font: inherit; text-align: left; cursor: pointer;
}
.dofe-events-fe.dofe-app .dofe-md-row:hover { background: #faf8fe !important; }
.dofe-events-fe.dofe-app .dofe-md-row.is-on { background: var(--dofe-accent-tint) !important; }
.dofe-md-row-text { display: flex; flex-direction: column; gap: 4px; flex: 1 1 auto; min-width: 0; }
.dofe-md-row-text .dofe-person-name { flex: 0 0 auto; font-weight: 700; }
.dofe-md-row-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.dofe-md-none { padding: 14px 20px; border-bottom: 1px solid var(--dofe-line-soft); color: var(--dofe-muted); font-size: 14px; }
.dofe-md-list > :last-child { border-bottom: 0; }
.dofe-md-pane { border: 1px solid var(--dofe-line); border-radius: var(--dofe-radius); background: var(--dofe-surface); padding: 18px 22px; }
.dofe-events-fe.dofe-app .dofe-md-menu { list-style: none; margin: 0; padding: 0; }
.dofe-events-fe.dofe-app .dofe-md-menu .dofe-menu-leader-item { border: 0; padding: 0; }
.dofe-events-fe.dofe-app .dofe-md-menu summary.dofe-person-row { pointer-events: none; font-size: 18px; }
.dofe-events-fe.dofe-app .dofe-md-menu summary.dofe-person-row .dofe-person-name { font-weight: 800; }
.dofe-events-fe.dofe-app .dofe-tab-panel .dofe-md-pane-title { margin: 0 0 12px; }
.dofe-events-fe.dofe-app .dofe-md-pane .dofe-tms-wrap > summary { display: none; }
.dofe-md-sub { margin: -8px 0 16px !important; }
@media (max-width: 900px) { .dofe-md-cols { grid-template-columns: 1fr; } }

/* ---- Forms: list and detail ---- */
.dofe-forms-list { display: flex; flex-direction: column; gap: 14px; }
.dofe-events-fe.dofe-app .dofe-form-card.is-on { border: 2px solid var(--dofe-accent); padding: 17px 19px; }
.dofe-events-fe.dofe-app .dofe-form-card .dofe-card-actions { border-top: 0; padding-top: 0; }
.dofe-tabs-inline { display: flex; gap: 24px; margin: 0 -22px 16px; padding: 0 22px; border-bottom: 1px solid var(--dofe-line-soft); }
.dofe-events-fe.dofe-app .dofe-tabs-inline a { padding: 10px 0; border-bottom: 3px solid transparent; color: var(--dofe-muted); font-weight: 600; text-decoration: none; }
.dofe-events-fe.dofe-app .dofe-tabs-inline a.is-on { border-bottom-color: var(--dofe-accent); color: var(--dofe-accent-ink); font-weight: 700; }
.dofe-events-fe.dofe-app .dofe-forms-pane .postbox { border: 0; padding: 0 !important; margin: 0 0 20px; }
.dofe-events-fe.dofe-app .dofe-forms-pane .postbox > h3 { font-size: 16px; }
.dofe-events-fe.dofe-app .dofe-menu-lock-btn[data-lock="1"] { background: var(--dofe-accent); border-color: var(--dofe-accent); color: #fff; }

/* ---- Site settings: section menu + stacked sections ---- */
.dofe-set-cols { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 24px; align-items: start; }
.dofe-set-nav { position: sticky; top: 16px; display: flex; flex-direction: column; gap: 2px; padding: 8px; }
.dofe-events-fe.dofe-app .dofe-set-nav a,
.dofe-events-fe.dofe-app .dofe-set-nav .dofe-set-navbtn {
    display: block; width: 100%; margin: 0; padding: 10px 12px; border: 0 !important; border-radius: 8px;
    background: none !important; color: var(--dofe-ink) !important; font: inherit; font-weight: 600; text-align: left; text-decoration: none; cursor: pointer; box-sizing: border-box;
}
.dofe-events-fe.dofe-app .dofe-set-nav a:hover,
.dofe-events-fe.dofe-app .dofe-set-nav .dofe-set-navbtn:hover { background: var(--dofe-accent-tint) !important; color: var(--dofe-accent-ink) !important; }
.dofe-set-cols .dofe-settings-grid { grid-template-columns: 1fr; max-width: 720px; }
.dofe-events-fe.dofe-app .dofe-settings-card { scroll-margin-top: 16px; }
@media (max-width: 800px) { .dofe-set-cols { grid-template-columns: 1fr; } .dofe-set-nav { position: static; flex-direction: row; flex-wrap: wrap; } .dofe-events-fe.dofe-app .dofe-set-nav a, .dofe-events-fe.dofe-app .dofe-set-nav .dofe-set-navbtn { width: auto; } }

/* ---- Sign-in switch ---- */
.dofe-events-fe .dofe-signin-switch { display: flex; margin: 0 0 18px; }
.dofe-events-fe .dofe-signin-switch .dofe-seg-btn { flex: 1; display: inline-flex; align-items: center; justify-content: center; min-height: 40px; border-radius: 7px; color: #33404b; font-size: 14px; font-weight: 600; text-decoration: none; }
.dofe-events-fe .dofe-signin-switch .dofe-seg-btn.is-on { background: #fff; color: #16202a; font-weight: 700; }

/* ---- Events: "who's coming" opens under the cards ---- */
.dofe-events-fe.dofe-app .dofe-event-modal.is-inline { position: static; inset: auto; z-index: auto; margin: 20px 0 8px; }
.dofe-events-fe.dofe-app .dofe-event-modal.is-inline .dofe-event-modal-backdrop { display: none; }
.dofe-events-fe.dofe-app .dofe-event-modal.is-inline .dofe-event-modal-dialog {
    position: relative; inset: auto; transform: none; width: auto; max-width: none; max-height: none; margin: 0;
    border: 1px solid var(--dofe-line); border-radius: var(--dofe-radius); box-shadow: none; background: var(--dofe-surface);
}
.dofe-events-fe.dofe-app .dofe-event-modal.is-inline .dofe-event-modal-scroll { max-height: none; overflow: visible; padding: 20px 22px; }
.dofe-events-fe.dofe-app .dofe-event-modal.is-inline h2 { font-size: 20px; font-weight: 800; }
.dofe-events-fe.dofe-app .dofe-event-modal.is-inline .dofe-event-modal-close { position: absolute; top: 14px; right: 14px; }
.dofe-events-fe.dofe-app .dofe-event-card.is-selected { box-shadow: 0 0 0 2px var(--dofe-accent); }
.dofe-events-fe.dofe-app .dofe-event-card,
.dofe-events-fe.dofe-app .dofe-event-card * { text-decoration: none !important; }
.dofe-events-fe.dofe-app .dofe-event-card:focus { outline: 0; }
.dofe-events-fe.dofe-app .dofe-event-card:focus-visible { outline: 2px solid var(--dofe-accent); outline-offset: 2px; }

/* ---- Members: list and detail ---- */
.dofe-members-cols { grid-template-columns: 320px minmax(0, 1fr); }
.dofe-members-list { max-height: calc(100vh - 40px); overflow-y: auto; position: sticky; top: 16px; }
.dofe-events-fe.dofe-app a.dofe-md-row { text-decoration: none; box-sizing: border-box; }
.dofe-events-fe.dofe-app .dofe-member-pane > h3 { margin: 0 0 2px; font-size: 22px; font-weight: 800; }
@media (max-width: 900px) { .dofe-members-cols { grid-template-columns: 1fr; } .dofe-members-list { position: static; max-height: 260px; } }

/* ---- Kit: on loan and running low ---- */
.dofe-kit-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: start; margin-top: 24px; }
.dofe-events-fe.dofe-app .dofe-kit-cols .dofe-panel-head h3 { margin: 0; font-size: 17px; font-weight: 800; }
.dofe-events-fe.dofe-app .dofe-kit-cols .dofe-panel-head a { font-weight: 700; font-size: 14px; }
.dofe-meter-bar.is-empty { background: #f3d6d8; }
@media (max-width: 800px) { .dofe-kit-cols { grid-template-columns: 1fr; } }

/* ---- Participant menu planner: days + summary side panel ---- */
.dofe-menu-cols { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 24px; align-items: start; }
.dofe-menu-days { min-width: 0; }
.dofe-events-fe.dofe-app .dofe-menu-aside { position: sticky; top: 16px; display: flex; flex-direction: column; gap: 14px; padding: 18px 20px; overflow: visible; }
.dofe-events-fe.dofe-app .dofe-tab-panel .dofe-menu-aside h4 { margin: 0; font-size: 17px; font-weight: 800; }
.dofe-menu-sum-total { display: flex; justify-content: space-between; gap: 12px; padding-top: 12px; border-top: 1px solid var(--dofe-line-soft); font-size: 14px; }
.dofe-menu-aside-actions { display: flex; flex-direction: column; gap: 8px; }
.dofe-events-fe.dofe-app .dofe-tab-panel.dofe-tab-panel.dofe-tab-panel .dofe-menu-aside-actions .button { width: 100%; min-height: 44px; }
.dofe-events-fe.dofe-app .dofe-menu-aside .dofe-menu-day-bar { margin: 5px 0 0; }
.dofe-events-fe.dofe-app .dofe-menu-meals { grid-template-columns: repeat(auto-fit, minmax(min(210px, 100%), 1fr)); }
@media (max-width: 900px) {
    .dofe-menu-cols { grid-template-columns: 1fr; }
    .dofe-events-fe.dofe-app .dofe-menu-aside { position: sticky; bottom: 8px; top: auto; box-shadow: 0 6px 20px rgba(22, 32, 42, .12); }
}

/* ---- New starters: one row per person, ticks save themselves ---- */
.dofe-events-fe.dofe-app #dofe-ns-savebar { display: none !important; }
.dofe-events-fe.dofe-app .dofe-ns-card { margin-bottom: 10px !important; }
@media (max-width: 900px) {
}

.dofe-events-fe.dofe-app .dofe-area-group { margin: 0 0 10px; padding: 0; border: 0; }
.dofe-events-fe.dofe-app .dofe-area-group legend { padding: 0; font-size: 13px; font-weight: 700; color: var(--dofe-muted); }
.dofe-events-fe.dofe-app .dofe-ld-body .dofe-area-group .areas { margin-top: 2px; }
.dofe-events-fe.dofe-app .dofe-member-pane .postbox { overflow-x: auto; }

.dofe-events-fe.dofe-app .qmm-item-meta.is-short { color: #7a4a00; font-weight: 700; }
.dofe-events-fe.dofe-app .qmm-btn-sm { min-height: 32px; font-size: 13px; }
.dofe-events-fe.dofe-app .qmm-btn[disabled] { opacity: .5; cursor: not-allowed; }

.dofe-events-fe.dofe-app .dofe-teams-list .dofe-menu-list { right: auto; left: 0; }
.dofe-events-fe.dofe-app .dofe-teams-list tbody.dofe-team-tb { overflow: visible; }

/* Events: who is coming */
.dofe-ev-head .dofe-seg { margin: 0; }
.dofe-who-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 0 0 22px; }
.dofe-who-col { background: #fff; border: 1px solid var(--dofe-line); border-radius: var(--dofe-radius); padding: 14px 16px; }
.dofe-who-col h4 { margin: 0 0 8px; font-size: 15px; font-weight: 800; display: flex; justify-content: space-between; }
.dofe-who-col h4 span { color: var(--dofe-muted); font-weight: 700; }
.dofe-who-col.is-yes { border-top: 3px solid #1f7a4d; }
.dofe-who-col.is-wait { border-top: 3px solid #b26a00; }
.dofe-who-col.is-no { border-top: 3px solid #a4262c; }
.dofe-who-col ul { list-style: none; margin: 0; padding: 0; }
.dofe-who-col li { display: flex; justify-content: space-between; gap: 10px; padding: 6px 0; border-top: 1px solid var(--dofe-line-soft); font-size: 14px; }
.dofe-who-col li:first-child { border-top: 0; }
.dofe-who-col li span { color: var(--dofe-muted); text-align: right; }
.dofe-who-none { margin: 0; color: var(--dofe-muted); font-size: 14px; }
@media (max-width: 760px) { .dofe-who-cols { grid-template-columns: 1fr; } }
@media print {
  html.dofe-printing-att body * { visibility: hidden !important; }
  html.dofe-printing-att .dofe-who-cols, html.dofe-printing-att .dofe-who-cols *,
  html.dofe-printing-att .dofe-event-modal h2, html.dofe-printing-att .dofe-who-head h3 { visibility: visible !important; }
  html.dofe-printing-att .dofe-who-cols { position: absolute; left: 0; top: 60px; width: 100%; }
  html.dofe-printing-att .dofe-event-modal h2 { position: absolute; left: 0; top: 0; }
}

.dofe-events-fe.dofe-app .dofe-menu-add { margin-top: 6px; padding: 4px 0; background: none !important; border: 0 !important; color: var(--dofe-accent-ink) !important; font-weight: 700; font-size: 14px; cursor: pointer; min-height: 32px; }
.dofe-menu-shop { margin: 14px 0 0; padding-top: 12px; border-top: 1px solid var(--dofe-line-soft); font-weight: 700; }
.dofe-menu-shop .dofe-card-sub { font-weight: 400; }

/* Route card review as its own page */
.dofe-rv-back { display: none; }
.dofe-events-fe.dofe-app .rcr.is-reviewing > *:not(#rcr-modal) { display: none !important; }
.dofe-events-fe.dofe-app .rcr.is-reviewing #rcr-modal { position: static; display: block; z-index: auto; }
.dofe-events-fe.dofe-app .rcr.is-reviewing .rcr-modal-backdrop,
.dofe-events-fe.dofe-app .rcr.is-reviewing .rcr-modal-close { display: none !important; }
.dofe-events-fe.dofe-app .rcr.is-reviewing .rcr-modal-dialog { position: static; transform: none; width: 100%; max-width: none; max-height: none; margin: 0; box-shadow: none; background: transparent; border: 0; padding: 0; }
.dofe-events-fe.dofe-app .rcr.is-reviewing .rcr-modal-scroll { max-height: none; overflow: visible; padding: 0; }
.dofe-events-fe.dofe-app .rcr.is-reviewing .dofe-rv-back { display: inline-flex; align-items: center; min-height: 40px; margin: 0 0 12px; padding: 0; background: none !important; border: 0 !important; color: var(--dofe-accent-ink) !important; font-weight: 700; font-size: 15px; cursor: pointer; }
.dofe-rv-links { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.dofe-rv-hist { margin: 0 0 16px; padding: 12px 16px; background: #fff; border: 1px solid var(--dofe-line); border-radius: var(--dofe-radius); }
.dofe-rv-hist ul { list-style: none; margin: 0; padding: 0; }
.dofe-rv-hist li { padding: 6px 0; border-top: 1px solid var(--dofe-line-soft); font-size: 14px; }
.dofe-rv-hist li:first-child { border-top: 0; }
.dofe-rv-hist li span, .dofe-rv-hist li div { color: var(--dofe-muted); }
.dofe-events-fe.dofe-app .dofe-rv-comment { padding: 2px 10px; min-height: 30px; border-radius: 8px; border: 1px solid #c9ccd6 !important; background: #fff !important; color: var(--dofe-ink) !important; font-size: 13px; font-weight: 700; cursor: pointer; }
.dofe-rv-ccell { text-align: right; white-space: nowrap; }

.dofe-rv [hidden], .dofe-events-section[hidden], .dofe-who-cols[hidden] { display: none !important; }

/* Route card editor: folded legs */
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td.dofe-leg-sum { grid-column: 1 / -1; order: 99; display: flex; justify-content: flex-end; align-items: center; gap: 12px; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row > td.dofe-leg-sum::before { content: none; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row:not(.is-collapsed) .dofe-leg-sum-text { display: none; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row.is-collapsed > td:not(.dofe-leg-sum) { display: none; }
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row.is-collapsed > td.dofe-leg-sum { justify-content: space-between; }
.dofe-leg-sum-text { font-weight: 700; color: #16202a; min-width: 0; overflow-wrap: anywhere; }
div.osm-dofe-app-shell.osm-dofe-app-shell .dofe-leg-toggle { flex: 0 0 auto; min-height: 34px; padding: 4px 14px; border-radius: 8px; border: 1px solid #c9ccd6; background: #fff; color: #16202a; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
.dofe-rc-maplinks { display: flex; gap: 8px; flex-wrap: wrap; margin: 10px 0 0; }

.dofe-menu-decide { margin-top: 14px; padding: 14px 16px; border: 1px solid var(--dofe-line); border-radius: var(--dofe-radius); background: #faf9fc; }
.dofe-menu-decide label { display: block; font-weight: 700; font-size: 14px; }
.dofe-menu-decide label span { font-weight: 400; color: var(--dofe-muted); }
.dofe-menu-decide textarea { display: block; width: 100%; margin-top: 6px; }
.dofe-menu-decide-btns { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }

.dofe-forms-answers[hidden] { display: none !important; }
.dofe-forms-answers > td { background: #faf9fc !important; }
.dofe-forms-answers dl { margin: 0; display: grid; grid-template-columns: minmax(140px, 30%) 1fr; gap: 8px 16px; }
.dofe-forms-answers dt { font-weight: 700; color: var(--dofe-muted, #55606b); }
.dofe-forms-answers dd { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 640px) { .dofe-forms-answers dl { grid-template-columns: 1fr; gap: 2px 0; } .dofe-forms-answers dd { margin-bottom: 8px; } }

.dofe-member-sum { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0 0 18px; }
.dofe-member-sum > div { padding: 12px 14px; border: 1px solid var(--dofe-line); border-radius: 12px; background: #faf9fc; }
.dofe-member-sum strong { display: block; font-size: 20px; font-weight: 800; }
.dofe-member-sum span { color: var(--dofe-muted); font-size: 13px; }
.dofe-member-sum .dofe-meter-bar { margin-top: 8px; }
.dofe-member-sum .has-flags { border-color: #e6c88f; background: #fdf6e7; }
.dofe-member-sum ul { margin: 6px 0 0; padding-left: 18px; font-size: 13px; }
@media (max-width: 640px) { .dofe-member-sum { grid-template-columns: 1fr; } }
.dofe-ns-when { color: var(--dofe-muted, #646970); font-size: 12px; margin-top: 2px; }

.dofe-auth-step { font-size: 13px; font-weight: 700; color: #55606b; margin: 0 0 4px; }
.dofe-auth-lead { margin: 0 0 18px; color: #33404b; }

/* Kit: issue and maintenance */
.dofe-kit-issue, .dofe-kit-maint-form { padding: 18px; }
.dofe-kit-issue label, .dofe-kit-maint-form label { display: block; font-size: 13px; font-weight: 700; color: var(--dofe-muted); margin: 0 0 12px; }
.dofe-kit-issue input, .dofe-kit-issue select, .dofe-kit-issue textarea,
.dofe-kit-maint-form input, .dofe-kit-maint-form select, .dofe-kit-maint-form textarea { display: block; width: 100%; margin-top: 4px; }
.dofe-kit-issue-who { display: grid; grid-template-columns: 2fr 2fr 1fr; gap: 12px; }
.dofe-kit-issue-row { display: grid; grid-template-columns: 3fr 1fr 1fr; gap: 12px; align-items: end; margin-bottom: 4px; }
.dofe-kit-issue-row select { margin-bottom: 12px; }
@media (max-width: 700px) { .dofe-kit-issue-who, .dofe-kit-issue-row { grid-template-columns: 1fr; } }
.dofe-kit-maint-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 12px 16px; border-top: 1px solid var(--dofe-line-soft); }
.dofe-kit-maint-row:first-child { border-top: 0; }
.dofe-kit-maint-row > div { flex: 1 1 220px; min-width: 0; }
.dofe-kit-maint-row > div span { display: block; color: var(--dofe-muted); font-size: 13px; overflow-wrap: anywhere; }
.dofe-events-fe.dofe-app .dofe-att-print, .dofe-events-fe.dofe-app .dofe-kit-maint-pick, .dofe-events-fe.dofe-app .dofe-kit-issue button[type=button] { min-height: 36px; padding: 6px 14px !important; border-radius: 10px !important; border: 1px solid #c9ccd6 !important; background: #fff !important; color: var(--dofe-ink) !important; font: inherit; font-size: 14px !important; font-weight: 700; cursor: pointer; }
.dofe-md-cols > * { min-width: 0; }
@media (max-width: 900px) { .dofe-md-cols { grid-template-columns: minmax(0, 1fr) !important; } .dofe-menu-leader-item table { display: block; overflow-x: auto; } }
@media (max-width: 900px) { .dofe-menus-cols .dofe-md-pane { max-width: 100%; overflow-x: auto; } .dofe-menus-cols .dofe-md-pane * { min-width: 0; } }

/* Sign-in: centred step label, quieter switch, and a proper dark version */
.dofe-auth-step, .dofe-auth-lead { text-align: center; }
.dofe-events-fe .dofe-signin-switch { padding: 3px; margin: 0 0 22px; background: #eeeef3; border-radius: 10px; }
.dofe-events-fe .dofe-signin-switch .dofe-seg-btn { min-height: 36px; }
.dofe-events-fe .dofe-signin-switch .dofe-seg-btn.is-on { background: #7413dc; color: #fff; }
@media (prefers-color-scheme: dark) {
  .dofe-events-fe:not([data-dofe-theme]) .dofe-signin-switch { background: #20242b; }
  .dofe-events-fe:not([data-dofe-theme]) .dofe-signin-switch .dofe-seg-btn { color: #646970; }
  .dofe-events-fe:not([data-dofe-theme]) .dofe-signin-switch .dofe-seg-btn.is-on { background: #7413dc; color: #fff; }
  .dofe-events-fe:not([data-dofe-theme]) .dofe-auth-step { color: #646970; }
  .dofe-events-fe:not([data-dofe-theme]) .dofe-auth-lead { color: #c5cad3; }
  .dofe-events-fe:not([data-dofe-theme]) .dofe-leader-login input:-webkit-autofill,
  .dofe-events-fe:not([data-dofe-theme]) .dofe-leader-login input:-webkit-autofill:focus { -webkit-text-fill-color: #e5e7eb; box-shadow: 0 0 0 1000px #20242b inset; caret-color: #e5e7eb; }
}
.dofe-events-fe.dofe-app .dofe-event-count.is-yes strong { color: #1f7a4d; }
.dofe-events-fe.dofe-app .dofe-event-modal h2 { font-size: 20px; font-weight: 800; }
.dofe-events-fe.dofe-app .dofe-event-modal .dofe-att-headrow h3 { font-size: 17px; font-weight: 800; margin: 0; }

/* New starters: card */
.dofe-events-fe.dofe-app .dofe-ns-card > .inside { display: block; padding: 16px 18px; }
.dofe-ns-card.is-withdrawn { opacity: .7; }
.dofe-ns-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px 20px; flex-wrap: wrap; }
.dofe-ns-who { min-width: 0; flex: 1 1 320px; }
.dofe-ns-line { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.dofe-ns-name { font-size: 17px; font-weight: 800; }
.dofe-ns-state { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.dofe-ns-done-counter { color: var(--dofe-muted, #55606b); font-size: 13px; font-weight: 700; }
.dofe-events-fe.dofe-app .dofe-ns-when { font-size: 13px; margin-top: 4px; overflow-wrap: anywhere; }
.dofe-events-fe.dofe-app select.dofe-ns-exp-quick, .dofe-events-fe.dofe-app .dofe-ns-exp-chip { font-size: 12px !important; font-weight: 700; padding: 3px 26px 3px 10px !important; border-radius: 999px !important; min-height: 26px !important; line-height: 1.4 !important; max-width: 100%; background-color: var(--dofe-accent-tint) !important; color: var(--dofe-accent-ink) !important; }
.dofe-events-fe.dofe-app .dofe-ns-exp-chip { padding-right: 10px !important; display: inline-flex; align-items: center; }
.dofe-events-fe.dofe-app select.dofe-ns-exp-quick.is-unset { background-color: #fdf0d2 !important; color: #7a4a00 !important; }
.dofe-ns-steps { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 0; padding: 14px 0 0; border-top: 1px solid var(--dofe-line-soft, #eeeef3); }
.dofe-ns-chk-label { font-size: 14px; }
.dofe-ns-note { margin: 12px 0 0 !important; font-size: 14px; line-height: 1.5; }
.dofe-ns-linked { display: inline-block; margin: 12px 0 0 !important; padding: 4px 12px; border-radius: 999px; background: #dff1e6; color: #14532d; font-size: 13px; font-weight: 700; }
.dofe-ns-link { display: flex; gap: 8px 12px; flex-wrap: wrap; align-items: center; margin: 12px 0 0; padding: 10px 12px; border-radius: 10px; background: #f8f8fb; font-size: 14px; }
.dofe-ns-link form { margin: 0; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; min-width: 0; }
.dofe-ns-link select { max-width: 100%; min-width: 0; }
.dofe-ns-foot { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 6px 18px; margin-top: 12px; }
.dofe-ns-foot form.dofe-ns-withdraw { margin: 0; order: 2; }
.dofe-ns-edit { order: 1; }
.dofe-ns-edit[open] { flex: 1 1 100%; }
.dofe-ns-edit > summary, .dofe-events-fe.dofe-app .dofe-ns-quiet { cursor: pointer; padding: 6px 0 !important; min-height: 32px; background: none !important; border: 0 !important; color: var(--dofe-accent-ink, #4a0d91) !important; font: inherit; font-size: 14px !important; font-weight: 700; }
.dofe-events-fe.dofe-app .dofe-ns-quiet { color: var(--dofe-muted, #55606b) !important; }
.dofe-ns-edit-body { margin-top: 8px; max-width: 620px; }
.dofe-ns-edit-body label { display: block; margin-top: 10px; font-size: 13px !important; font-weight: 700; }
/* New starters: add dialog */
.dofe-ns-add-modal { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: flex-start; justify-content: center; padding: 4vh 16px; overflow-y: auto; }
.dofe-ns-add-modal[hidden] { display: none; }
.dofe-ns-add-backdrop { position: fixed; inset: 0; background: rgba(22, 32, 42, .55); }
.dofe-ns-add-dialog { position: relative; width: min(900px, 100%); background: #fff; border-radius: 16px; box-shadow: 0 30px 60px -20px rgba(0,0,0,.4); display: flex; flex-direction: column; }
.dofe-ns-add-head { display: flex; justify-content: space-between; align-items: center; padding: 18px 22px 0; }
.dofe-ns-add-head h3 { margin: 0; font-size: 20px; font-weight: 800; }
.dofe-events-fe.dofe-app .dofe-ns-add-x { width: 40px; height: 40px; padding: 0 !important; border: 1px solid #c9ccd6 !important; border-radius: 10px; background: #fff !important; color: #16202a !important; font-size: 22px !important; line-height: 1; cursor: pointer; }
.dofe-ns-add-body { padding: 14px 22px 6px; }
.dofe-ns-add-label { display: block; font-weight: 700; font-size: 14px; }
.dofe-ns-add-hint { margin: 2px 0 8px !important; color: var(--dofe-muted, #55606b); font-size: 14px; }
.dofe-ns-add-body textarea { display: block; width: 100%; }
.dofe-ns-add-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin: 10px 0 4px; }
#dofe-ns-add-msg { font-size: 14px; color: var(--dofe-muted, #55606b); }
#dofe-ns-add-msg.is-err { color: #a4262c; font-weight: 700; }
.dofe-ns-add-row { margin-top: 12px; padding: 12px 14px; border: 1px solid var(--dofe-line, #dedfe6); border-left: 4px solid #1f7a4d; border-radius: 12px; }
.dofe-ns-add-row.is-existing { border-left-color: #b26a00; background: #fdf9ef; }
.dofe-ns-add-fields { display: grid; grid-template-columns: 1fr 1fr 110px 170px 1fr 40px; gap: 10px; align-items: end; }
.dofe-ns-add-row label { display: block; font-size: 12px; font-weight: 700; color: var(--dofe-muted, #55606b); min-width: 0; }
.dofe-ns-add-row input, .dofe-ns-add-row select { display: block; width: 100%; min-width: 0; margin-top: 3px; }
.dofe-ns-add-needs { margin-top: 10px; }
.dofe-events-fe.dofe-app .dofe-ns-add-remove { width: 40px; height: 40px; padding: 0 !important; border: 1px solid #c9ccd6 !important; border-radius: 10px; background: #fff !important; color: #16202a !important; font-size: 20px !important; cursor: pointer; }
.dofe-ns-add-note { margin: 10px 0 0 !important; font-size: 13px; color: #6b4a00; }
.dofe-events-fe.dofe-app .dofe-ns-add-anyway { padding: 0 !important; min-height: 0; background: none !important; border: 0 !important; color: var(--dofe-accent-ink, #4a0d91) !important; font: inherit; font-size: 13px !important; font-weight: 700; text-decoration: underline; cursor: pointer; }
.dofe-ns-add-foot { display: flex; justify-content: flex-end; align-items: center; gap: 10px; flex-wrap: wrap; padding: 14px 22px 18px; border-top: 1px solid var(--dofe-line-soft, #eeeef3); margin-top: 14px; position: sticky; bottom: 0; background: #fff; border-radius: 0 0 16px 16px; }
#dofe-ns-add-summary { margin-right: auto; color: var(--dofe-muted, #55606b); font-size: 14px; }
@media (max-width: 760px) { .dofe-ns-add-fields { grid-template-columns: 1fr 1fr; } .dofe-ns-add-remove { justify-self: end; } }
.dofe-ns-edit-body { max-width: min(620px, 100%); }
.dofe-ns-edit-body input, .dofe-ns-edit-body select, .dofe-ns-edit-body textarea { max-width: 100%; box-sizing: border-box; min-width: 0; }
.dofe-ns-edit-body p { flex-wrap: wrap; }
/* New starters: footer actions look like buttons */
.dofe-ns-foot { align-items: center; gap: 8px; }
.dofe-events-fe.dofe-app .dofe-ns-edit > summary,
.dofe-events-fe.dofe-app .dofe-ns-quiet { display: inline-flex; align-items: center; min-height: 36px; padding: 6px 14px !important; border: 1px solid #c9ccd6 !important; border-radius: 10px; background: #fff !important; color: var(--dofe-ink, #16202a) !important; font-size: 14px !important; font-weight: 700; list-style: none; }
.dofe-events-fe.dofe-app .dofe-ns-edit > summary::-webkit-details-marker { display: none; }
.dofe-events-fe.dofe-app .dofe-ns-edit > summary:hover,
.dofe-events-fe.dofe-app .dofe-ns-quiet:hover { background: #f5f4f8 !important; border-color: #9aa0ad !important; }
.dofe-events-fe.dofe-app .dofe-ns-edit > summary,
.dofe-events-fe.dofe-app .dofe-ns-quiet { box-sizing: border-box; height: 36px; min-height: 36px; padding: 0 14px !important; line-height: 1 !important; margin: 0 !important; }
/* New starters: manage groups dialog */
.dofe-ns-groups-dialog { width: min(560px, 100%); }
.dofe-ns-groups-list { list-style: none; margin: 0 0 14px; padding: 0; }
.dofe-ns-groups-list li { display: flex; gap: 8px; align-items: center; padding: 8px 0; border-top: 1px solid var(--dofe-line-soft, #eeeef3); }
.dofe-ns-groups-list li:first-child { border-top: 0; }
.dofe-ns-groups-list form { margin: 0; }
.dofe-ns-groups-rename, .dofe-ns-groups-new { display: flex; gap: 8px; flex: 1; min-width: 0; align-items: center; }
.dofe-ns-groups-rename input, .dofe-ns-groups-new input { flex: 1; min-width: 0; }
.dofe-ns-groups-new { padding-top: 14px; border-top: 1px solid var(--dofe-line, #dedfe6); }
.dofe-events-fe.dofe-app .dofe-ns-groups-remove { color: #a4262c !important; }
div.osm-dofe-app-shell.osm-dofe-app-shell .dofe-rc-save { display: flex; flex-direction: column; gap: 8px; }
.dofe-rc-status { margin-top: 6px; min-height: 40px; display: flex; align-items: center; }
.dofe-rc-send-note { margin-top: 8px; }
.dofe-rc-members { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 6px; }
.dofe-rv-mapbox { margin-top: 20px; }
.dofe-events-fe .dofe-rv .dofe-rv-mapbox .rcr-map { height: 480px; min-height: 320px; }
@media (max-width: 700px) { .dofe-events-fe .dofe-rv .dofe-rv-mapbox .rcr-map { height: 340px; } }

/* Review: decision buttons greyed out until the card is submitted, with the reason on hover */
.dofe-events-fe .dofe-rv .dofe-rv-set.is-blocked { position: relative; background: #e6e7ee !important; border-color: #d3d5de !important; color: #7b828d !important; cursor: not-allowed; box-shadow: none !important; }
.dofe-events-fe .dofe-rv .dofe-rv-set.is-blocked::after { content: attr(data-reason); position: absolute; left: 50%; bottom: calc(100% + 8px); transform: translateX(-50%); width: max-content; max-width: 280px; padding: 8px 12px; border-radius: 8px; background: #16202a; color: #fff; font-size: 13px; font-weight: 600; line-height: 1.35; text-align: center; white-space: normal; opacity: 0; visibility: hidden; pointer-events: none; z-index: 5; transition: opacity .12s; }
.dofe-events-fe .dofe-rv .dofe-rv-set.is-blocked:hover::after,
.dofe-events-fe .dofe-rv .dofe-rv-set.is-blocked:focus-visible::after { opacity: 1; visibility: visible; }
/* Route map: participant editing tools */
.dofe-map-tools [hidden] { display: none !important; }
div.osm-dofe-app-shell.osm-dofe-app-shell .dofe-map-tools .button.is-active { background: #f1e8fc; border-color: #7413dc; color: #4a0d91; box-shadow: inset 0 0 0 1px #7413dc; }
.dofe-map-hint { margin: 10px 14px 12px; padding: 10px 14px; border-radius: 10px; background: #f1e8fc; color: #33205c; font-size: 15px; font-weight: 600; line-height: 1.4; }

/* Route cards: set deadlines */
.dofe-rc-deadline-open { margin: 0 0 12px; }
.dofe-rc-deadline-form label { display: block; margin: 0 0 14px; font-size: 14px; font-weight: 700; }
.dofe-rc-deadline-form label span { font-weight: 400; color: var(--dofe-muted, #55606b); }
.dofe-rc-deadline-form input, .dofe-rc-deadline-form select { display: block; width: 100%; margin-top: 4px; }

.dofe-osm-down { margin: 0 0 16px; padding: 14px 16px; border: 1px solid #e6c88f; border-radius: 12px; background: #fdf6e7; color: #5a3d00; font-size: 15px; line-height: 1.45; }

/* OSM blocked: banner and greyed-out OSM buttons */
.dofe-osm-banner { margin: 16px 0 0; }
.dofe-events-fe.dofe-app .dofe-osm-blocked { position: relative; background: #e6e7ee !important; border-color: #d3d5de !important; color: #7b828d !important; cursor: not-allowed; box-shadow: none !important; }
.dofe-events-fe.dofe-app .dofe-osm-blocked::after { content: attr(data-reason); position: absolute; left: 50%; top: calc(100% + 8px); transform: translateX(-50%); width: max-content; max-width: 280px; padding: 8px 12px; border-radius: 8px; background: #16202a; color: #fff; font-size: 13px; font-weight: 600; line-height: 1.35; text-align: center; white-space: normal; opacity: 0; visibility: hidden; pointer-events: none; z-index: 50; transition: opacity .12s; }
.dofe-events-fe.dofe-app .dofe-osm-blocked:hover::after, .dofe-events-fe.dofe-app .dofe-osm-blocked:focus-visible::after { opacity: 1; visibility: visible; }

.dofe-rc-fixed-aim { margin: 8px 0 0; font-size: 15px; font-weight: 600; color: #16202a; }

/* Teams: equal-height cards, actions lined up along the bottom */
.dofe-events-fe.dofe-app .dofe-teams-list .osm-dofe-year-group-body { align-items: stretch; }
.dofe-events-fe.dofe-app .dofe-teams-list tbody.dofe-team-tb > tr:first-child { display: flex; flex-direction: column; flex: 1 1 auto; }
.dofe-events-fe.dofe-app .dofe-teams-list tbody.dofe-team-tb > tr:first-child > td:last-child { margin-top: auto; }
.dofe-events-fe.dofe-app .dofe-teams-list tbody.dofe-team-tb > tr:first-child > td:first-child { margin-bottom: 14px; }
.dofe-events-fe.dofe-app .dofe-teams-list .osm-dofe-row-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.dofe-events-fe.dofe-app .dofe-avatars { gap: 6px 0; }
.dofe-events-fe.dofe-app .dofe-avatars .dofe-avatar { margin-right: -6px; }
.dofe-events-fe.dofe-app .dofe-avatars .dofe-card-sub { margin-left: 18px !important; }
.dofe-events-fe.dofe-app .dofe-menu-list a.dofe-menu-danger { color: #a4262c !important; border-top: 1px solid var(--dofe-line-soft); border-radius: 0 0 8px 8px; margin-top: 4px; }

/* Teams: add a participant by hand */
.dofe-team-add { margin: 12px 0 14px; padding: 12px 14px; border: 1px solid var(--dofe-line, #dedfe6); border-radius: 12px; background: #faf9fc; }
.dofe-team-add label { display: block; font-size: 14px; font-weight: 700; margin: 0 0 6px; }
.dofe-team-add-row { display: flex; gap: 8px; flex-wrap: wrap; }
.dofe-team-add-row select { flex: 1 1 240px; min-width: 0; max-width: 100%; }
.dofe-team-add-hint { display: block; margin-top: 6px; color: var(--dofe-muted, #55606b); font-size: 13px; }
.dofe-events-fe .dofe-rv .dofe-rv-reopen { width: 100%; }

/* Route card editor: a leg field that still needs filling in */
div.osm-dofe-app-shell.osm-dofe-app-shell tr.osm-dofe-leg-row .dofe-missing:not(:focus) { border-color: #c98a1b; background: #fffaf0; }

/* Route card editor: Submit for review greyed out until the checks pass */
div.osm-dofe-app-shell.osm-dofe-app-shell #dofe-rc-send.is-blocked { position: relative; background: #e6e7ee; border-color: #d3d5de; color: #7b828d; cursor: not-allowed; box-shadow: none; }
div.osm-dofe-app-shell.osm-dofe-app-shell #dofe-rc-send.is-blocked::after { content: attr(data-reason); position: absolute; left: 50%; bottom: calc(100% + 8px); transform: translateX(-50%); width: max-content; max-width: 280px; padding: 8px 12px; border-radius: 8px; background: #16202a; color: #fff; font-size: 13px; font-weight: 600; line-height: 1.35; text-align: center; white-space: normal; opacity: 0; visibility: hidden; pointer-events: none; z-index: 5; transition: opacity .12s; }
div.osm-dofe-app-shell.osm-dofe-app-shell #dofe-rc-send.is-blocked:hover::after, div.osm-dofe-app-shell.osm-dofe-app-shell #dofe-rc-send.is-blocked:focus-visible::after { opacity: 1; visibility: visible; }

/* Review: full leg details */
.dofe-rv-legs { display: flex; flex-direction: column; gap: 12px; }
.dofe-rv-leg { padding: 14px 16px; border: 1px solid var(--dofe-line, #dedfe6); border-radius: 12px; background: #fff; }
.dofe-rv-leg-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin: 0 0 10px; }
.dofe-events-fe .dofe-rv .dofe-rv-leg-head h5 { margin: 0; font-size: 16px; font-weight: 800; }
.dofe-rv-leg-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px 14px; }
.dofe-rv-legf.is-wide { grid-column: span 2; }
.dofe-rv-legf span, .dofe-rv-leg-notes span { display: block; font-size: 12px; font-weight: 700; color: var(--dofe-muted, #55606b); }
.dofe-rv-legf strong { display: block; font-size: 15px; font-weight: 700; overflow-wrap: anywhere; }
.dofe-rv-leg-notes { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--dofe-line-soft, #eeeef3); }
.dofe-rv-leg-notes p { margin: 2px 0 0; font-size: 14px; white-space: pre-wrap; overflow-wrap: anywhere; }
.dofe-rv-blank { color: #a05a00; font-weight: 700; font-size: 13px; background: #fdf0d2; padding: 1px 7px; border-radius: 6px; }
.dofe-rv-leg .rcr-leg-fb-field { margin-top: 12px; }
.dofe-rv-leg .rcr-leg-fb-field[hidden] { display: none; }
@media (max-width: 700px) { .dofe-rv-leg-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dofe-rv-leg-notes { grid-template-columns: 1fr; } }
/* Confirm / alert dialog: same look on every page, whatever the theme does to buttons */
.dofe-confirm-box { font-family: "Nunito Sans", system-ui, sans-serif; border-radius: 16px !important; padding: 24px !important; max-width: 460px; }
.dofe-confirm-box .dofe-confirm-msg { font-size: 16px; line-height: 1.5; color: #16202a; }
.dofe-confirm-box button.dofe-confirm-ok, .dofe-confirm-box button.dofe-confirm-cancel { min-height: 44px; padding: 8px 18px !important; border-radius: 10px !important; font: inherit !important; font-size: 15px !important; font-weight: 700 !important; cursor: pointer; text-transform: none !important; letter-spacing: 0 !important; }
.dofe-confirm-box button.dofe-confirm-ok { background: #7413dc !important; border: 1px solid #7413dc !important; color: #fff !important; }
.dofe-confirm-box button.dofe-confirm-ok:hover { background: #5a0fb0 !important; border-color: #5a0fb0 !important; }
.dofe-confirm-box button.dofe-confirm-ok.is-danger { background: #a4262c !important; border-color: #a4262c !important; }
.dofe-confirm-box button.dofe-confirm-cancel { background: #fff !important; border: 1px solid #c9ccd6 !important; color: #16202a !important; }

/* Review: reset route card */
.dofe-rv-reset { margin: 4px 0 14px; padding-top: 14px; border-top: 1px solid #eeeef3; }
.dofe-events-fe .dofe-rv .dofe-rv-reset-btn { width: 100%; color: #a4262c !important; border-color: #d9a3a6 !important; background: #fff !important; }
.dofe-events-fe .dofe-rv .dofe-rv-reset-btn:hover { background: #fbe9ea !important; }

/* Participant dashboard: changes a leader has asked for */
.dofe-asks { margin: 0 0 22px; padding: 16px 18px; border: 1px solid #e6c88f; border-left: 5px solid #b26a00; border-radius: 14px; background: #fdf6e7; }
.dofe-events-fe.dofe-app .dofe-asks h3 { margin: 0 0 8px; font-size: 18px; font-weight: 800; color: #5a3d00; }
.dofe-ask { display: flex; justify-content: space-between; align-items: center; gap: 12px 18px; flex-wrap: wrap; padding: 12px 0; border-top: 1px solid #ecd9ae; }
.dofe-ask:first-of-type { border-top: 0; }
.dofe-ask-text { flex: 1 1 280px; min-width: 0; }
.dofe-ask-text strong { font-size: 16px; }
.dofe-ask-text p { margin: 4px 0 0; color: #3d2f10; overflow-wrap: anywhere; }
/* Menu: leader's comment on a day, remove-a-food button, leader's per-day box */
.dofe-menu-day-note { margin: 0 0 14px; padding: 10px 12px; border-radius: 10px; background: #fdf6e7; border: 1px solid #e6c88f; color: #5a3d00; font-size: 14px; }
.dofe-events-fe.dofe-app .dofe-menu-del { flex: 0 0 36px; width: 36px; min-height: 36px; padding: 0 !important; border: 1px solid #c9ccd6 !important; border-radius: 8px; background: #fff !important; color: #55606b !important; font-size: 18px !important; line-height: 1; cursor: pointer; }
.dofe-events-fe.dofe-app .dofe-menu-del:hover { color: #a4262c !important; border-color: #a4262c !important; }
.dofe-events-fe.dofe-app textarea.dofe-menu-daynote { width: 100%; min-width: 180px; font-size: 13px; }

/* Teams: Add year / Add team dialogs */
.dofe-teams-modal .dofe-ns-add-dialog { max-width: 560px; width: 100%; }
#dofe-teams-add-year .dofe-ns-add-dialog { max-width: 400px; }
.dofe-teams-modal-intro { margin: 0 0 14px; color: #5b6472; font-size: 14px; }
.dofe-teams-modal .osm-dofe-field input[type=text], .dofe-teams-modal .osm-dofe-field select, .dofe-teams-modal textarea { width: 100%; max-width: 100%; box-sizing: border-box; }
@media (max-width: 600px) { .dofe-teams-modal .osm-dofe-form-grid { grid-template-columns: 1fr; } }
.dofe-teams-modal .osm-dofe-field input[type=text], .dofe-teams-modal textarea { margin-left: 0; margin-right: 0; }
.dofe-teams-modal .osm-dofe-field input[type=text], .dofe-teams-modal .osm-dofe-field textarea { margin-left: 0 !important; margin-right: 0 !important; }

/* Site settings: Years and teams */
.dofe-set-yt-actions { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 14px; }
.dofe-set-yt-year { border: 1px solid var(--dofe-line, #e3e6ea); border-radius: 10px; margin: 0 0 8px; background: #fff; }
.dofe-set-yt-year > summary, .dofe-set-yt-teams li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; }
.dofe-set-yt-year > summary { cursor: pointer; list-style: none; }
.dofe-set-yt-year > summary::-webkit-details-marker { display: none; }
.dofe-set-yt-year > summary .dofe-set-yt-name::before { content: "\25B8"; display: inline-block; margin-right: 8px; color: #8a93a0; transition: transform .15s; }
.dofe-set-yt-year[open] > summary .dofe-set-yt-name::before { transform: rotate(90deg); }
.dofe-set-yt-teams { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--dofe-line, #e3e6ea); }
.dofe-set-yt-teams li { padding-left: 34px; margin: 0; border-bottom: 1px solid #f0f2f4; font-size: 14px; }
.dofe-set-yt-teams li:last-child { border-bottom: 0; }
.dofe-set-yt-count { color: #6b7480; font-size: 12.5px; font-weight: 400; margin-left: 6px; }
.dofe-set-yt-empty { margin: 0; padding: 10px 14px 12px 34px; color: #6b7480; font-size: 13px; border-top: 1px solid var(--dofe-line, #e3e6ea); }
.dofe-events-fe.dofe-app a.dofe-set-yt-del { color: #b42318; font-size: 13px; font-weight: 600; text-decoration: none; white-space: nowrap; padding: 4px 8px; border-radius: 6px; }
.dofe-events-fe.dofe-app a.dofe-set-yt-del:hover { background: #fdecea; }

/* Participant accounts: grouped by team */
.dofe-pa-group { margin: 0 0 22px; }
.dofe-pa-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 0 0 8px; }
.dofe-pa-title { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; min-width: 0; }
.dofe-events-fe.dofe-app .dofe-pa-title h3 { margin: 0; font-size: 17px; }
.dofe-pa-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.dofe-pa-none { margin: 0; padding: 14px 16px; border: 1px dashed var(--dofe-line, #d9dde3); border-radius: 10px; color: #6b7480; font-size: 14px; }
.dofe-pa-also { display: block; font-weight: 400; }
.dofe-events-fe.dofe-app .dofe-pa-remove { color: #b42318; border-color: #f0c2bd; }
.dofe-events-fe.dofe-app .dofe-pa-remove:hover { background: #fdecea; border-color: #b42318; }
.dofe-pa-invite-row { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; }
.dofe-pa-invite-row span { flex: 0 0 140px; font-size: 13px; }
.dofe-pa-invite-row input { flex: 1; min-width: 0; }
.dofe-pa-fix { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 6px 0 0; padding-top: 14px; border-top: 1px solid var(--dofe-line, #e3e6ea); }
@media (max-width: 600px) { .dofe-pa-invite-row { flex-direction: column; align-items: stretch; gap: 4px; } .dofe-pa-invite-row span { flex: none; } }
.dofe-pa-group .dofe-accounts-table { table-layout: fixed; width: 100%; }
.dofe-pa-group .dofe-accounts-table th:nth-child(1) { width: 26%; }
.dofe-pa-group .dofe-accounts-table th:nth-child(2) { width: 14%; }
.dofe-pa-group .dofe-accounts-table th:nth-child(3) { width: 12%; }
.dofe-pa-group .dofe-accounts-table th:nth-child(4) { width: 15%; }
.dofe-pa-group .dofe-accounts-table td.dofe-row-actions { text-align: right; }
@media (max-width: 760px) {
  .dofe-pa-group .dofe-accounts-table, .dofe-pa-group .dofe-accounts-table tbody, .dofe-pa-group .dofe-accounts-table tr, .dofe-pa-group .dofe-accounts-table td { display: block; width: auto; }
  .dofe-pa-group .dofe-accounts-table thead { display: none; }
  .dofe-events-fe.dofe-app .dofe-pa-group .dofe-accounts-table tr { padding: 12px 14px; border-bottom: 1px solid var(--dofe-line, #e3e6ea); }
  .dofe-events-fe.dofe-app .dofe-pa-group .dofe-accounts-table tr:last-child { border-bottom: 0; }
  .dofe-events-fe.dofe-app .dofe-pa-group .dofe-accounts-table td { padding: 2px 0 !important; border: 0 !important; background: none; }
  .dofe-events-fe.dofe-app .dofe-pa-group .dofe-accounts-table td:nth-child(2), .dofe-events-fe.dofe-app .dofe-pa-group .dofe-accounts-table td:nth-child(3), .dofe-events-fe.dofe-app .dofe-pa-group .dofe-accounts-table td:nth-child(4) { display: inline-block; margin-right: 10px; font-size: 13px; }
  .dofe-events-fe.dofe-app .dofe-pa-group .dofe-accounts-table td:nth-child(4)::before { content: "Last sign-in: "; color: #6b7480; }
  .dofe-events-fe.dofe-app .dofe-pa-group .dofe-accounts-table td.dofe-row-actions { text-align: left; padding-top: 8px; display: flex; flex-wrap: wrap; gap: 6px; }
}
/* Team card: four actions in one row */
.dofe-events-fe.dofe-app .dofe-teams-list .osm-dofe-row-actions { display: grid; grid-template-columns: repeat(4, auto); gap: 6px; }
.dofe-events-fe.dofe-app .dofe-teams-list .osm-dofe-row-actions > .button { padding-left: 8px; padding-right: 8px; white-space: nowrap; }
.dofe-events-fe.dofe-app .dofe-teams-list .osm-dofe-row-actions > .button { width: 100%; margin: 0; text-align: center; justify-content: center; box-sizing: border-box; }

/* Award completion */
.dofe-ac-table { table-layout: fixed; width: 100%; }
.dofe-ac-table th:first-child { width: 30%; }
.dofe-events-fe.dofe-app .dofe-ac-table td { vertical-align: top; }
.dofe-ac-tags { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin-top: 4px; font-weight: 400; }
.dofe-events-fe.dofe-app .dofe-ac-table tr.is-sent > td { background: #f4f5f7; }
.dofe-events-fe.dofe-app .dofe-ac-table tr.is-sent .dofe-person-name { color: #8a93a0; }
.dofe-ac-table tr.is-sent .dofe-avatar, .dofe-ac-table tr.is-sent .dofe-pill-s, .dofe-ac-table tr.is-sent .dofe-ac-by, .dofe-ac-table tr.is-sent .dofe-ac-noteview { opacity: .55; }
.dofe-ac-archive[hidden] { display: none; }
.dofe-ac-state { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.dofe-ac-noteview { font-size: 13px; color: #4b5563; white-space: pre-wrap; margin-top: 4px; }
.dofe-ac-noteview:empty { display: none; }
.dofe-ac-btns { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.dofe-ac-editor { margin-top: 10px; display: flex; flex-direction: column; gap: 8px; max-width: 280px; }
.dofe-ac-editor[hidden] { display: none !important; }
.dofe-ac-editor label { display: flex; flex-direction: column; gap: 3px; font-size: 12.5px; font-weight: 600; color: #374151; }
.dofe-events-fe.dofe-app .dofe-ac-editor input, .dofe-events-fe.dofe-app .dofe-ac-editor textarea { width: 100%; box-sizing: border-box; margin: 0; }
.dofe-events-fe.dofe-app .dofe-ac-cell.is-dirty { box-shadow: inset 3px 0 0 var(--dofe-accent, #7413DC); background: var(--dofe-accent-tint, #f3ebfd); }
@media (max-width: 760px) {
  .dofe-ac-table, .dofe-ac-table tbody, .dofe-ac-table tr, .dofe-ac-table td { display: block; width: auto; }
  .dofe-ac-table thead { display: none; }
  .dofe-events-fe.dofe-app .dofe-ac-table tr { padding: 12px 14px; border-bottom: 1px solid var(--dofe-line, #e3e6ea); }
  .dofe-events-fe.dofe-app .dofe-ac-table td { padding: 6px 0; border: 0; }
  .dofe-ac-cell::before { content: attr(data-label); display: block; font-size: 12px; font-weight: 700; color: #6b7480; text-transform: uppercase; letter-spacing: .03em; margin-bottom: 4px; }
  .dofe-events-fe.dofe-app .dofe-ac-cell.is-dirty { padding-left: 10px; }
}
.dofe-events-fe.dofe-app .dofe-ac-archive-btn { font-size: 11px; padding: 0 8px; min-height: 22px; line-height: 20px; }

/* Nothing auto-opens: list-only states and a close control */
.dofe-forms-list-wide { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); gap: 16px; }
.dofe-md-pane.dofe-forms-pane { position: relative; }
.dofe-events-fe.dofe-app a.dofe-pane-close { position: absolute; top: 10px; right: 12px; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 8px; font-size: 22px; line-height: 1; color: #5b6472; text-decoration: none; }
.dofe-events-fe.dofe-app a.dofe-pane-close:hover { background: var(--dofe-accent-tint, #f3ebfd); color: var(--dofe-accent-ink, #4a0c8f); }
.dofe-md-empty[hidden], .dofe-ld-empty[hidden] { display: none; }

/* Forms: whole card opens the form, swapped in place */
.dofe-events-fe.dofe-app .dofe-form-card[data-go] { cursor: pointer; transition: border-color .12s, box-shadow .12s; }
.dofe-events-fe.dofe-app .dofe-form-card[data-go]:hover { border-color: var(--dofe-accent, #7413DC); box-shadow: 0 2px 10px rgba(116, 19, 220, .10); }
.dofe-events-fe.dofe-app .dofe-form-card[data-go]:focus-visible { outline: 2px solid var(--dofe-accent, #7413DC); outline-offset: 2px; }
#dofe-forms-root.is-loading { opacity: .55; pointer-events: none; transition: opacity .1s; }

/* In-place updates: dim the tab while its new content is fetched */
.dofe-tab-panel.dofe-hub-loading { opacity: .6; transition: opacity .12s; }
.dofe-app.dofe-hub-busy { cursor: progress; }

/* Reports */
.dofe-rep-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(140px, 100%), 1fr)); gap: 12px; margin: 0 0 22px; }
.dofe-rep-tile { background: var(--dofe-surface, #fff); border: 1px solid var(--dofe-line, #e3e6ea); border-radius: var(--dofe-radius, 12px); padding: 14px 16px; display: flex; flex-direction: column; gap: 2px; }
.dofe-rep-tile strong { font-size: 26px; line-height: 1.1; font-weight: 800; }
.dofe-rep-tile span { font-size: 13px; color: #5b6472; }
.dofe-rep-tile.is-warn strong { color: #b45309; }
.dofe-rep-panel { margin: 0 0 22px; }
.dofe-rep-toolbar { padding: 12px 20px; margin: 0; border-bottom: 1px solid var(--dofe-line-soft, #eef0f2); }
.dofe-events-fe.dofe-app .dofe-tab-panel .dofe-rep-panel table.dofe-rep-table { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0; width: 100%; }
.dofe-rep-sub { display: block; }
.dofe-rep-flags .dofe-pill-s { margin: 2px 4px 2px 0; }
.dofe-rep-empty { margin: 16px 20px; }
.dofe-rep-more { margin: 0; padding: 12px 20px; }
.dofe-rep-cols { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 22px; align-items: start; }
.dofe-rep-exports { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: 16px; padding: 18px 20px; }
.dofe-rep-export { display: flex; flex-direction: column; gap: 10px; }
.dofe-rep-export-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.dofe-rep-export-btns form { margin: 0; }
.dofe-events-fe.dofe-app .dofe-rep-export select { max-width: 320px; }
@media (max-width: 900px) { .dofe-rep-cols { grid-template-columns: 1fr; } }
@media (max-width: 760px) {
  .dofe-rep-table, .dofe-rep-table tbody, .dofe-rep-table tr, .dofe-rep-table td { display: block; width: auto; }
  .dofe-rep-table thead { display: none; }
  .dofe-events-fe.dofe-app .dofe-rep-table tr { padding: 12px 16px; border-bottom: 1px solid var(--dofe-line, #e3e6ea); }
  .dofe-events-fe.dofe-app .dofe-rep-table td { padding: 3px 0 !important; border: 0 !important; background: none; }
  .dofe-events-fe.dofe-app .dofe-rep-table td.dofe-row-actions { text-align: left; padding-top: 8px; }
  .dofe-rep-table td[data-label]::before { content: attr(data-label) ": "; color: #6b7480; font-size: 12.5px; }
}

/* Participant dashboard: route card deadlines */
.dofe-due { margin: 0 0 22px; padding: 16px 18px; border: 1px solid var(--dofe-line, #e3e6ea); border-radius: 14px; background: var(--dofe-surface, #fff); }
.dofe-due.has-late { border-left: 5px solid #b42318; }
.dofe-events-fe.dofe-app .dofe-due h3 { margin: 0 0 6px; font-size: 18px; font-weight: 800; }
.dofe-due-row { display: flex; justify-content: space-between; align-items: center; gap: 10px 18px; flex-wrap: wrap; padding: 12px 0; border-top: 1px solid var(--dofe-line-soft, #eef0f2); }
.dofe-due-row:first-of-type { border-top: 0; }
.dofe-due-text { flex: 1 1 260px; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.dofe-due-text strong { font-size: 16px; overflow-wrap: anywhere; }
.dofe-due-meta { font-size: 13.5px; color: #5b6472; }
.dofe-due-pill { display: inline-block; padding: 2px 9px; border-radius: 999px; font-weight: 700; font-size: 12.5px; background: #f1f1f5; color: #3d4652; margin-right: 4px; }
.dofe-due-row.is-soon .dofe-due-pill { background: #fff1d6; color: #7a4a00; }
.dofe-due-row.is-late .dofe-due-pill { background: #fde4e1; color: #8f1a12; }

.dofe-events-fe.dofe-app h4.dofe-rc-deadline-sub { margin: 16px 0 4px; font-size: 15px; font-weight: 800; }
.dofe-events-fe.dofe-app h4.dofe-rc-deadline-sub:first-child { margin-top: 0; }

/* Menu deadlines on the Menu and Menus tabs */
.dofe-menu-due { margin: 0 0 12px; font-size: 14px; color: #3d4652; }
.dofe-menu-due.is-soon .dofe-due-pill { background: #fff1d6; color: #7a4a00; }
.dofe-menu-due.is-late .dofe-due-pill { background: #fde4e1; color: #8f1a12; }
.dofe-md-due { display: block; font-size: 12px; font-weight: 400; color: #6b7480; margin-top: 2px; }
.dofe-md-pane-due { margin: -6px 0 14px; }

/* Dialogs: the body scrolls, the footer stays put below it (it used to float over the content) */
.dofe-ns-add-modal { align-items: flex-start; }
.dofe-ns-add-dialog { max-height: calc(100vh - 8vh); max-height: calc(100dvh - 8vh); }
.dofe-ns-add-dialog > form { display: flex; flex-direction: column; min-height: 0; flex: 1 1 auto; }
.dofe-ns-add-body { overflow-y: auto; min-height: 0; flex: 1 1 auto; padding-bottom: 16px; }
.dofe-ns-add-foot { position: static; margin-top: 0; flex: 0 0 auto; }
.dofe-ns-add-head { flex: 0 0 auto; }
.dofe-ns-groups-new { display: flex; gap: 8px; margin: 0 0 14px; }
.dofe-events-fe.dofe-app .dofe-ns-groups-new input[type=text] { flex: 1; min-width: 0; margin: 0; }
#dofe-ns-add-msg.is-warn { color: #7a4a00; font-weight: 700; }
/* Add new starters: names on one line, then award / expeditions / group with room to read */
.dofe-ns-add-fields { grid-template-columns: repeat(6, minmax(0, 1fr)) 40px; }
.dofe-ns-add-fields > label:nth-of-type(1), .dofe-ns-add-fields > label:nth-of-type(2) { grid-column: span 3; }
.dofe-ns-add-fields > label:nth-of-type(3), .dofe-ns-add-fields > label:nth-of-type(4), .dofe-ns-add-fields > label:nth-of-type(5) { grid-column: span 2; grid-row: 2; }
.dofe-ns-add-fields > .dofe-ns-add-remove { grid-column: 7; grid-row: 1; }
.dofe-events-fe.dofe-app .dofe-ns-add-row input, .dofe-events-fe.dofe-app .dofe-ns-add-row select { margin-left: 0; margin-right: 0; box-sizing: border-box; }
@media (max-width: 760px) {
  .dofe-ns-add-fields { grid-template-columns: 1fr 1fr; }
  .dofe-ns-add-fields > label:nth-of-type(n) { grid-column: auto; grid-row: auto; }
  .dofe-ns-add-fields > label:nth-of-type(5) { grid-column: 1 / -1; }
  .dofe-ns-add-fields > .dofe-ns-add-remove { grid-column: 2; grid-row: auto; justify-self: end; }
}

/* Set deadlines dialogs: remove tick */
.dofe-events-fe.dofe-app .dofe-rc-deadline-form label.dofe-deadline-clear { display: flex; align-items: center; gap: 8px; font-weight: 400; font-size: 13.5px; margin: -4px 0 12px; color: #4b5563; }
.dofe-events-fe.dofe-app .dofe-rc-deadline-form label.dofe-deadline-clear input { width: auto; margin: 0; }
.dofe-mr-supersede-all { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 0 0 14px; padding: 10px 14px; border: 1px solid var(--dofe-line, #e3e6ea); border-radius: 10px; background: var(--dofe-surface, #fff); }


/* Event modal: the Going / Not replied / Can't come summary is print-only now. */
.dofe-who-cols { display: none; }
@media print {
  html.dofe-printing-att .dofe-who-cols { display: grid !important; }
}

/* ---- New starters: top-level stat tiles ---- */
.dofe-ns-glance { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(140px, 100%), 1fr)); margin: 0 0 20px; }
.dofe-ns-tile { padding: 14px 16px; border: 1px solid var(--dofe-line, #e5e7eb); overflow: hidden; border-radius: var(--dofe-radius, 12px); background: var(--dofe-surface, #fff); }
.dofe-events-fe.dofe-app .dofe-ns-tile .dd-tile-v { margin: 0; font-size: 28px; font-weight: 800; line-height: 1; color: var(--dofe-ink, #111827); }
.dofe-events-fe.dofe-app .dofe-ns-tile .dd-tile-l { margin: 6px 0 0; font-size: 14px; color: var(--dofe-muted, #6b7280); }
.dofe-ns-tile[data-stat="bronze"] { box-shadow: inset 0 3px 0 #b5651d; }
.dofe-ns-tile[data-stat="silver"] { box-shadow: inset 0 3px 0 #9ca3af; }
.dofe-ns-tile[data-stat="gold"] { box-shadow: inset 0 3px 0 #d4a017; }
@media (max-width: 600px) { .dofe-ns-glance { grid-template-columns: repeat(3, 1fr); gap: 8px; } .dofe-ns-tile { padding: 10px 12px; } .dofe-events-fe.dofe-app .dofe-ns-tile .dd-tile-v { font-size: 22px; } .dofe-events-fe.dofe-app .dofe-ns-tile .dd-tile-l { font-size: 12.5px; line-height: 1.3; } }

/* ---- Phone menu: title bar + slide-out panel (option A) ---- */
.dofe-mtitle, .dofe-menu-btn, .dofe-drawer { display: none; }
@media (max-width: 780px) {
    .dofe-shell.has-drawer .dofe-shell-bar { flex-wrap: nowrap; min-height: 64px; padding: 0 16px; gap: 12px; }
    .dofe-shell.has-drawer .dofe-brand > span:not(.dofe-brand-mark),
    .dofe-events-fe .dofe-shell.has-drawer .dofe-tabs,
    .dofe-shell.has-drawer .dofe-shell-account,
    .dofe-shell.has-drawer .dofe-subnav { display: none !important; }
    .dofe-shell.has-drawer .dofe-mtitle { display: block; flex: 1 1 auto; min-width: 0; }
    .dofe-mtitle small { display: block; font-size: 12.5px; font-weight: 600; color: var(--dofe-muted); line-height: 1.2; }
    .dofe-mtitle small[hidden] { display: none; }
    .dofe-mtitle strong { display: block; font-size: 17px; font-weight: 800; line-height: 1.25; color: var(--dofe-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .dofe-events-fe .dofe-shell .dofe-menu-btn { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 44px; height: 44px; margin: 0; padding: 0; border: 1px solid var(--dofe-line) !important; border-radius: 12px; background: var(--dofe-surface) !important; color: var(--dofe-ink) !important; cursor: pointer; }
    .dofe-drawer { display: block; position: fixed; inset: 0; z-index: 100000; }
    .dofe-drawer[hidden] { display: none; }
    .dofe-drawer-dim { position: absolute; inset: 0; background: rgba(22, 32, 42, .45); opacity: 0; transition: opacity .2s ease; }
    .dofe-drawer-panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(320px, 86vw); display: flex; flex-direction: column; background: var(--dofe-surface); box-shadow: -8px 0 24px rgba(0, 0, 0, .15); transform: translateX(100%); transition: transform .2s ease; }
    .dofe-drawer.is-open .dofe-drawer-dim { opacity: 1; }
    .dofe-drawer.is-open .dofe-drawer-panel { transform: none; }
    .dofe-drawer-head { display: flex; align-items: center; justify-content: space-between; flex: 0 0 auto; height: 64px; padding: 0 12px 0 20px; border-bottom: 1px solid var(--dofe-line-soft); font-weight: 800; font-size: 17px; color: var(--dofe-ink); }
    .dofe-events-fe .dofe-shell .dofe-drawer-x { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin: 0; padding: 0; border: 1px solid var(--dofe-line) !important; border-radius: 12px; background: var(--dofe-surface) !important; color: var(--dofe-ink) !important; cursor: pointer; }
    .dofe-drawer-nav { flex: 1 1 auto; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 10px 12px; display: flex; flex-direction: column; gap: 2px; }
    .dofe-events-fe .dofe-shell .dofe-drawer .dofe-tab-btn.dofe-drawer-item { display: flex; width: 100%; min-height: 44px; padding: 0 12px; border-radius: 10px; font-size: 15px; font-weight: 600; text-align: left; justify-content: flex-start; white-space: normal; }
    .dofe-events-fe .dofe-shell .dofe-drawer .dofe-tab-btn.dofe-drawer-item.is-active { background: var(--dofe-accent-tint) !important; color: var(--dofe-accent-ink) !important; font-weight: 800; }
    .dofe-events-fe .dofe-shell .dofe-drawer-grp-btn { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 44px; margin: 6px 0 0; padding: 0 12px; border: 0; border-radius: 10px; background: none; color: var(--dofe-ink); font: inherit; font-size: 15px; font-weight: 800; text-align: left; cursor: pointer; }
    .dofe-events-fe .dofe-shell .dofe-drawer-grp-btn:hover { background: #f1f1f5; }
    .dofe-drawer-grp-btn svg { transition: transform .15s ease; }
    .dofe-drawer-group.is-open .dofe-drawer-grp-btn svg { transform: rotate(180deg); }
    .dofe-drawer-kids { display: none; flex-direction: column; gap: 2px; margin-left: 12px; padding-left: 10px; border-left: 2px solid var(--dofe-line-soft); }
    .dofe-drawer-group.is-open .dofe-drawer-kids { display: flex; }
    .dofe-drawer-acct { display: flex; align-items: center; gap: 12px; flex: 0 0 auto; padding: 12px 16px; border-top: 1px solid var(--dofe-line-soft); }
    .dofe-events-fe .dofe-shell .dofe-drawer .dofe-drawer-me { display: flex; align-items: center; gap: 12px; flex: 1 1 auto; min-width: 0; min-height: 48px; padding: 4px 8px 4px 4px; border-radius: 12px; text-align: left; font-size: 15px; font-weight: 700; color: var(--dofe-ink); }
    .dofe-events-fe .dofe-shell .dofe-drawer .dofe-drawer-me.is-active { background: var(--dofe-accent-tint) !important; color: var(--dofe-accent-ink) !important; }
    .dofe-drawer-me > span:last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
    .dofe-drawer-me small { display: block; font-size: 12.5px; font-weight: 600; color: var(--dofe-muted); }
    .dofe-events-fe .dofe-shell .dofe-drawer-logout { display: inline-flex; align-items: center; flex: 0 0 auto; min-height: 44px; padding: 0 14px; border: 1px solid #c9ccd6; border-radius: 10px; background: var(--dofe-surface); color: var(--dofe-ink); font-size: 14px; font-weight: 700; text-decoration: none; }
    html.dofe-drawer-lock, html.dofe-drawer-lock body { overflow: hidden; }
}
@media (max-width: 780px) and (prefers-reduced-motion: reduce) { .dofe-drawer-dim, .dofe-drawer-panel { transition: none; } }

/* ---- Phone fixes across the hub tabs ---- */
@media (max-width: 780px) {
    /* Kit sub-tabs wrap instead of hiding off the right edge */
    .dofe-events-fe.dofe-app .qmm-tabs { flex-wrap: wrap; overflow: visible; gap: 0 20px; }

    /* Members table: name column stays put while the progress columns scroll */
    .dofe-tab-panel .dofe-mr-table-wrap .dofe-mr-sticky th:first-child,
    .dofe-tab-panel .dofe-mr-table-wrap .dofe-mr-sticky td:first-child { position: sticky; left: 0; z-index: 1; min-width: 132px; max-width: 150px; white-space: normal; background: var(--dofe-surface, #fff); box-shadow: 1px 0 0 var(--dofe-line, #e5e7eb); }
    .dofe-tab-panel .dofe-mr-table-wrap .dofe-mr-sticky thead th:first-child { z-index: 3; background: #f6f6f9; }

    /* Audit log: one card per entry — when · who, then what */
    .dofe-events-fe.dofe-app .dofe-tab-panel table.dofe-audit-table,
    .dofe-events-fe.dofe-app .dofe-tab-panel table.dofe-audit-table tbody,
    .dofe-events-fe.dofe-app .dofe-tab-panel table.dofe-audit-table tr { display: block; width: auto; }
    .dofe-events-fe.dofe-app .dofe-tab-panel table.dofe-audit-table thead { display: none; }
    .dofe-events-fe.dofe-app .dofe-tab-panel table.dofe-audit-table tr { padding: 10px 14px; border-bottom: 1px solid var(--dofe-line-soft); }
    .dofe-events-fe.dofe-app .dofe-tab-panel table.dofe-audit-table td { display: inline; padding: 0 !important; border: 0 !important; background: none; }
    .dofe-events-fe.dofe-app .dofe-tab-panel table.dofe-audit-table td:nth-child(1),
    .dofe-events-fe.dofe-app .dofe-tab-panel table.dofe-audit-table td:nth-child(2) { font-size: 12.5px; color: var(--dofe-muted); }
    .dofe-events-fe.dofe-app .dofe-tab-panel table.dofe-audit-table td:nth-child(2)::before { content: " · "; }
    .dofe-events-fe.dofe-app .dofe-tab-panel table.dofe-audit-table td:nth-child(3) { display: block; margin-top: 2px; white-space: normal !important; overflow-wrap: anywhere; }
    .dofe-events-fe.dofe-app .dofe-tab-panel .dofe-mr-table-wrap table.dofe-audit-table { width: 100%; }
    .dofe-tab-panel .dofe-mr-table-wrap:has(.dofe-audit-table),
    .dofe-tab-panel .dofe-mr-table-wrap:has(.dofe-audit-table) .dofe-mr-table-scroll { max-height: none; }

    /* Expedition packs: one card per team instead of a 860px-wide table */
    .dofe-events-fe.dofe-app .dofe-tab-panel table.dofe-pack-table { min-width: 0 !important; width: 100%; }
    .dofe-events-fe.dofe-app .dofe-tab-panel table.dofe-pack-table,
    .dofe-events-fe.dofe-app .dofe-tab-panel table.dofe-pack-table tbody,
    .dofe-events-fe.dofe-app .dofe-tab-panel table.dofe-pack-table tr,
    .dofe-events-fe.dofe-app .dofe-tab-panel table.dofe-pack-table td { display: block; width: auto; }
    .dofe-events-fe.dofe-app .dofe-tab-panel table.dofe-pack-table thead { display: none; }
    .dofe-events-fe.dofe-app .dofe-tab-panel table.dofe-pack-table tr { padding: 14px 16px; border-bottom: 1px solid var(--dofe-line); }
    .dofe-events-fe.dofe-app .dofe-tab-panel table.dofe-pack-table td { min-width: 0 !important; padding: 6px 0 !important; border: 0 !important; background: none; }
    .dofe-events-fe.dofe-app .dofe-tab-panel table.dofe-pack-table td:nth-child(4)::before { content: "Your documents: "; color: var(--dofe-muted); font-size: 13px; }
    .dofe-events-fe.dofe-app .dofe-tab-panel table.dofe-pack-table td:last-child > div { justify-content: flex-start !important; }
    .dofe-events-fe.dofe-app .dofe-tab-panel table.dofe-pack-table input,
    .dofe-events-fe.dofe-app .dofe-tab-panel table.dofe-pack-table select { width: 100% !important; max-width: 100%; box-sizing: border-box; }
    .dofe-events-fe.dofe-app .dofe-tab-panel table.dofe-pack-table form > div { flex: 1 1 100%; }
    .dofe-tab-panel .dofe-mr-table-wrap:has(.dofe-pack-table),
    .dofe-tab-panel .dofe-mr-table-wrap:has(.dofe-pack-table) .dofe-mr-table-scroll { max-height: none; overflow: visible !important; }
}
/* Manage groups: name gets the full width on a phone, buttons underneath */
@media (max-width: 560px) {
    .dofe-ns-groups-list li { flex-wrap: wrap; }
    .dofe-ns-groups-list form.dofe-ns-groups-rename { display: contents; }
    .dofe-ns-groups-list form.dofe-ns-groups-rename input[type="text"] { flex: 1 1 100%; min-width: 0; }
}

/* Segmented switches never wider than the screen */
@media (max-width: 560px) {
    .dofe-seg { display: flex; max-width: 100%; box-sizing: border-box; }
    .dofe-events-fe.dofe-app .dofe-seg-btn { flex: 1 1 auto; min-width: 0; white-space: normal; text-align: center; justify-content: center; }
}
/* Team cards fit narrow phones */
.dofe-events-fe.dofe-app .dofe-teams-list tbody.dofe-team-tb { min-width: 0; }
.dofe-events-fe.dofe-app .dofe-teams-list .osm-dofe-row-actions { grid-template-columns: repeat(auto-fit, minmax(64px, auto)); }
@media (max-width: 400px) { .dofe-events-fe.dofe-app .dofe-teams-list .osm-dofe-row-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .dofe-events-fe.dofe-app .dofe-teams-list tbody.dofe-team-tb { padding: 16px; } }
/* Participant menu on a phone: the floating summary becomes a slim bar —
   expedition total, shopping list and the two buttons. Day totals are
   already on each day card, so the per-day rows are left out here. */
@media (max-width: 900px) {
    .dofe-events-fe.dofe-app .dofe-menu-aside { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 8px 12px; padding: 10px 12px; bottom: 6px; z-index: 5; }
    .dofe-events-fe.dofe-app .dofe-tab-panel .dofe-menu-aside h4,
    .dofe-events-fe.dofe-app .dofe-menu-aside .dofe-menu-sum-row,
    .dofe-events-fe.dofe-app .dofe-menu-aside > .dofe-card-sub,
    .dofe-events-fe.dofe-app .dofe-menu-aside .dofe-menu-shop .dofe-card-sub,
    .dofe-events-fe.dofe-app .dofe-menu-aside .dofe-menu-shop br { display: none; }
    .dofe-events-fe.dofe-app .dofe-menu-aside .dofe-menu-sum-total { grid-column: 1; grid-row: 1; padding: 0; border: 0; justify-content: flex-start; gap: 6px; }
    .dofe-events-fe.dofe-app .dofe-menu-aside .dofe-menu-shop { grid-column: 2; grid-row: 1; margin: 0; padding: 0; border: 0; font-size: 14px; white-space: nowrap; }
    .dofe-events-fe.dofe-app .dofe-menu-aside .dofe-menu-aside-actions { grid-column: 1 / -1; grid-row: 2; flex-direction: row-reverse; }
    .dofe-events-fe.dofe-app .dofe-tab-panel.dofe-tab-panel.dofe-tab-panel .dofe-menu-aside-actions .button { flex: 1 1 0; min-height: 44px; }
}
/* Event attendance on a phone: one card per person instead of a wide table */
@media (max-width: 600px) {
    .dofe-event-modal-dialog { width: calc(100% - 16px); margin: 8px auto; max-height: calc(100vh - 16px); max-height: calc(100dvh - 16px); }
    .dofe-event-modal-scroll { max-height: calc(100vh - 16px); max-height: calc(100dvh - 16px); padding: 18px 16px; }
    .dofe-att-headrow { flex-wrap: wrap; }
    .dofe-att-table-wrap { overflow-x: visible; }
    table.dofe-attendance, table.dofe-attendance tbody, table.dofe-attendance tr, table.dofe-attendance td { display: block; width: auto; }
    table.dofe-attendance thead { display: none; }
    table.dofe-attendance tr.dofe-att-row { margin: 0 0 10px; padding: 10px 12px; border: 1px solid #dedfe6; border-radius: 12px; background: #fff; }
    table.dofe-attendance tr.dofe-att-row-leader { background: #fffbeb; }
    .dofe-events-fe table.dofe-attendance td { display: grid; grid-template-columns: 7.5em minmax(0, 1fr); align-items: center; gap: 8px; padding: 4px 0 !important; border: 0 !important; max-width: none; white-space: normal; overflow: visible; text-overflow: clip; }
    .dofe-events-fe table.dofe-attendance td::before { content: attr(data-label); font-size: 12.5px; font-weight: 700; color: #55606b; }
    .dofe-events-fe table.dofe-attendance td.dofe-td-name { display: block; padding: 0 0 6px !important; font-weight: 800; font-size: 15px; }
    .dofe-events-fe table.dofe-attendance td.dofe-td-name::before,
    .dofe-events-fe table.dofe-attendance td:not([data-label])::before { content: none; }
    .dofe-events-fe table.dofe-attendance td.dofe-td-empty { display: none; }
    .dofe-events-fe table.dofe-attendance td select,
    .dofe-events-fe table.dofe-attendance td input[type="text"] { width: 100%; max-width: 100%; min-height: 40px; box-sizing: border-box; }
}
/* Unsaved attendance changes: keep Save in view while scrolling the list */
.dofe-changes-savebar.is-active { position: sticky; top: 0; z-index: 3; box-shadow: 0 4px 14px rgba(22, 32, 42, .12); }
@media (max-width: 600px) {
    .dofe-changes-savebar-actions { flex: 1 1 100%; }
    .dofe-events-fe .dofe-changes-savebar-cancel,
    .dofe-events-fe .dofe-changes-savebar-save { flex: 1 1 0; min-height: 40px; }
}
.dofe-events-fe .dofe-event-modal-close { z-index: 5; }

/* The welcome tour is on the page but closed until started */
.dofe-tour-overlay[hidden] { display: none !important; }
/* Edit team pop-up: its host row takes no space in the team card */
.dofe-events-fe.dofe-app .dofe-teams-list tbody.dofe-team-tb > tr.dofe-team-edit-host,
.dofe-events-fe.dofe-app .dofe-teams-list tbody.dofe-team-tb > tr.dofe-team-edit-host > td { display: contents; }
.dofe-team-edit-modal .osm-dofe-inline-edit-form { margin: 0; }
/* ---- Phones: bigger tap targets (laptop layout unchanged) ----
   Aim: list items and links >= 32px tall, buttons and dropdowns >= 36px. */
@media (max-width: 780px) {
    /* Tick boxes: bigger box, and the whole label row is the target */
    .dofe-events-fe .dofe-tab-panel input.dofe-plain-checkbox,
    .dofe-events-fe .dofe-tab-panel input[type="checkbox"]:not([class]) { width: 20px !important; height: 20px !important; min-width: 20px !important; max-width: 20px !important; }
    .dofe-events-fe .dofe-tab-panel label:has(> input[type="checkbox"]),
    .dofe-events-fe .dofe-tab-panel label:has(> input[type="radio"]) { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; }
    /* Members table: count badges and name links */
    .dofe-events-fe .dofe-tab-panel .dofe-mr-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 32px; min-height: 32px; }
    .dofe-events-fe .dofe-tab-panel a.dofe-person-name { display: inline-block; padding: 7px 0; }
    /* Route cards: card titles and the "Assigned to" toggles */
    .dofe-events-fe .dofe-tab-panel .rcr-open-card { min-height: 36px; padding-top: 8px !important; padding-bottom: 8px !important; }
    .dofe-events-fe .dofe-tab-panel summary { min-height: 32px; padding-top: 7px; padding-bottom: 7px; box-sizing: border-box; }
    /* Small buttons, link-buttons and dropdowns */
    .dofe-events-fe.dofe-app .dofe-tab-panel .button-small,
    .dofe-events-fe.dofe-app .dofe-tab-panel .dofe-md-link { min-height: 36px !important; display: inline-flex; align-items: center; }
    .dofe-events-fe.dofe-app .dofe-tab-panel select.dofe-ns-exp-quick { min-height: 32px !important; }
    .dofe-events-fe .dofe-tab-panel a.dofe-set-yt-del { display: inline-flex; align-items: center; min-height: 36px; }
    .dofe-events-fe .dofe-tab-panel select { min-height: 36px; }
    /* Short text links */
    .dofe-events-fe .dofe-tab-panel .qmm-card a,
    .dofe-events-fe .dofe-tab-panel a.dofe-rcl-title,
    .dofe-events-fe .dofe-tab-panel .dofe-menu-shop a,
    .dofe-events-fe .dofe-tab-panel .dofe-panel-head > a { display: inline-block; padding: 7px 0; }
}

/* Route card "Assigned to" list: one person per line. A general rule makes
   every tick-box label inline (!important), which ran the names together. */
.dofe-events-fe .dofe-tab-panel .rcr-assign-panel > label:has(> input[type="checkbox"]) { display: flex !important; }

/* ---------- Bulk update events ---------- */
.dofe-events-fe.dofe-app #dofe-bulk-open { display: inline-flex; align-items: center; gap: 8px; }
.dofe-bulk-strip { display: flex; align-items: center; gap: 16px; margin: 4px 0 18px; padding: 14px 18px; background: var(--dofe-surface, #fff); border: 1px solid var(--dofe-line, #dedfe6); border-radius: 14px; }
.dofe-bulk-strip[hidden] { display: none; }
.dofe-bulk-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--dofe-accent, #7413dc); flex: none; box-shadow: 0 0 0 4px var(--dofe-accent-tint, #f1e8fc); }
.dofe-bulk-strip[data-state="running"] .dofe-bulk-dot { animation: dofeBulkPulse 1.6s ease-in-out infinite; }
.dofe-bulk-strip[data-state="paused"] .dofe-bulk-dot { background: #b7791f; box-shadow: 0 0 0 4px #fff1d6; }
.dofe-bulk-strip[data-state="done"] .dofe-bulk-dot { background: #1f7a3f; box-shadow: 0 0 0 4px #dff1e6; }
.dofe-bulk-strip[data-state="cancelled"] .dofe-bulk-dot { background: #8a929b; box-shadow: 0 0 0 4px #eeeef3; }
@keyframes dofeBulkPulse { 50% { box-shadow: 0 0 0 7px var(--dofe-accent-tint, #f1e8fc); } }
@media (prefers-reduced-motion: reduce) { .dofe-bulk-strip .dofe-bulk-dot { animation: none !important; } }
.dofe-bulk-text { min-width: 0; }
.dofe-bulk-title { display: block; font-size: 15px; font-weight: 800; }
.dofe-bulk-meta { color: var(--dofe-muted, #55606b); font-size: 14px; }
.dofe-bulk-meter { flex: 1; height: 8px; min-width: 120px; border-radius: 99px; background: #eeeef3; overflow: hidden; }
.dofe-bulk-meter > div { height: 100%; width: 0; background: var(--dofe-accent, #7413dc); transition: width .4s ease; }
.dofe-bulk-strip[data-state="done"] .dofe-bulk-meter > div { background: #1f7a3f; }
.dofe-bulk-strip .button[hidden], .dofe-bulk-modal .button[hidden] { display: none !important; }
.dofe-bulk-cardnote { margin-top: 6px; font-size: 13px; font-weight: 700; color: var(--dofe-accent-ink, #4a0d91); }

/* Picker */
#dofe-bulk-modal .dofe-ns-add-dialog { max-width: 960px; }
.dofe-bulk-intro { margin: 0 0 14px; color: var(--dofe-muted, #55606b); font-size: 14px; }
.dofe-bulk-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.dofe-events-fe.dofe-app .dofe-bulk-col { margin: 0; padding: 0; min-width: 0; border: 1px solid var(--dofe-line, #dedfe6); border-radius: 14px; overflow: hidden; }
.dofe-events-fe.dofe-app .dofe-bulk-col legend { float: left; width: 100%; box-sizing: border-box; display: flex; justify-content: space-between; align-items: center; gap: 8px; margin: 0; padding: 12px 16px; background: #f8f8fb; border-bottom: 1px solid #eeeef3; font-size: 16px; font-weight: 800; }
.dofe-bulk-col legend + * { clear: both; }
.dofe-bulk-count { font-size: 13px; font-weight: 700; color: var(--dofe-muted, #55606b); }
.dofe-bulk-list { padding: 6px 10px 8px; }
.dofe-events-fe.dofe-app label.dofe-bulk-row { display: flex !important; align-items: center; gap: 12px; min-height: 48px; padding: 4px 6px; margin: 0; border-radius: 10px; font-size: 14.5px; cursor: pointer; }
.dofe-bulk-row:hover, .dofe-bulk-names label:hover { background: #f8f8fb; }
.dofe-bulk-modal input[type="checkbox"] { width: 20px; height: 20px; margin: 0; flex: none; accent-color: var(--dofe-accent, #7413dc); }
.dofe-bulk-row-text { flex: 1; min-width: 0; }
.dofe-bulk-row-text b { display: block; font-weight: 700; }
.dofe-bulk-row-text small { color: var(--dofe-muted, #55606b); font-size: 12.5px; }
.dofe-bulk-group { border-top: 1px solid #eeeef3; }
.dofe-bulk-group:first-child { border-top: 0; }
.dofe-bulk-group > summary { list-style: none; display: flex; align-items: center; gap: 6px; cursor: pointer; padding-right: 6px; }
.dofe-bulk-group > summary::-webkit-details-marker { display: none; }
.dofe-bulk-group > summary::after { content: ""; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); margin: -4px 4px 0 auto; flex: none; opacity: .6; transition: transform .15s; }
.dofe-bulk-group[open] > summary::after { transform: rotate(-135deg); margin-top: 4px; }
.dofe-events-fe.dofe-app label.dofe-bulk-grp { display: flex !important; align-items: center; gap: 12px; flex: 1; min-height: 48px; padding: 0 6px; margin: 0; font-weight: 800; font-size: 14.5px; cursor: pointer; }
.dofe-bulk-grp small { font-weight: 700; color: var(--dofe-muted, #55606b); }
.dofe-bulk-names { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; padding: 0 0 8px 32px; }
.dofe-events-fe.dofe-app .dofe-bulk-names label { display: flex !important; align-items: center; gap: 8px; min-height: 40px; margin: 0; padding: 0 6px; border-radius: 8px; font-size: 14px; cursor: pointer; }
.dofe-bulk-names input[type="checkbox"] { width: 18px; height: 18px; }
.dofe-bulk-foot { justify-content: flex-start; gap: 14px; }
.dofe-events-fe.dofe-app label.dofe-bulk-status { display: flex; align-items: center; gap: 10px; margin: 0; font-weight: 700; font-size: 14px; }
.dofe-events-fe.dofe-app .dofe-bulk-status select { min-height: 44px; width: auto; border-radius: 10px; font-weight: 700; }
.dofe-bulk-sum { flex: 1 1 260px; margin: 0; font-size: 14px; color: #33404b; }
.dofe-bulk-sum b { color: #16202a; }

/* Details */
#dofe-bulk-details .dofe-ns-add-dialog { max-width: 800px; }
.dofe-bulk-line { margin: 0 0 10px; font-size: 15px; }
.dofe-bulk-meter-lg { height: 10px; margin-bottom: 12px; }
.dofe-bulk-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 12px; }
.dofe-bulk-tiles > div { border: 1px solid var(--dofe-line, #dedfe6); border-radius: 12px; padding: 10px 14px; }
.dofe-bulk-tiles b { display: block; font-size: 22px; font-weight: 800; }
.dofe-bulk-tiles span { font-size: 13px; color: var(--dofe-muted, #55606b); }
.dofe-bulk-tiles .is-bad b { color: #b42318; }
.dofe-bulk-note { margin: 0 0 12px; padding: 10px 14px; border-radius: 12px; background: #fff1d6; color: #7a4a00; font-size: 14px; }
.dofe-bulk-note.is-info { background: #f1e8fc; color: #4a0d91; }
.dofe-events-fe.dofe-app table.dofe-bulk-table { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid var(--dofe-line, #dedfe6); border-radius: 14px; overflow: hidden; font-size: 14px; }
.dofe-events-fe.dofe-app .dofe-bulk-table th { background: #f8f8fb; font-size: 12.5px; font-weight: 800; color: var(--dofe-muted, #55606b); text-transform: uppercase; letter-spacing: .04em; text-align: left; padding: 10px 16px; }
.dofe-events-fe.dofe-app .dofe-bulk-table td { padding: 10px 16px; border-top: 1px solid #eeeef3; vertical-align: middle; }
.dofe-events-fe.dofe-app .dofe-bulk-table td b { font-weight: 700; }
.dofe-bulk-table td small { display: block; color: var(--dofe-muted, #55606b); font-size: 12.5px; }
.dofe-bulk-table .is-ok { color: #1f7a3f; font-weight: 700; }
.dofe-bulk-table .is-go { color: #4a0d91; font-weight: 700; }
.dofe-bulk-table .is-wait { color: #55606b; font-weight: 700; }
.dofe-bulk-table .is-bad { color: #b42318; font-weight: 700; }
.dofe-bulk-fails-h { margin: 16px 0 6px; font-size: 15px; }
.dofe-bulk-fails { margin: 0 0 6px 18px; font-size: 13.5px; }
.dofe-bulk-small { margin: 0; font-size: 13px; color: var(--dofe-muted, #55606b); }
.dofe-bulk-foot-note { flex: 1; font-size: 13.5px; color: var(--dofe-muted, #55606b); }
.dofe-events-fe.dofe-app .dofe-bulk-cancel-btn { color: #b42318 !important; border-color: #f1b8b2 !important; }

@media (max-width: 780px) {
  .dofe-bulk-strip { flex-wrap: wrap; gap: 10px 12px; padding: 12px 14px; }
  .dofe-bulk-text { flex: 1 1 calc(100% - 30px); }
  .dofe-bulk-meter { flex: 1 1 100%; order: 3; }
  .dofe-bulk-strip .button { order: 4; min-height: 44px; }
  .dofe-bulk-cols { grid-template-columns: minmax(0, 1fr); }
  .dofe-bulk-names { grid-template-columns: minmax(0, 1fr); padding-left: 28px; }
  .dofe-events-fe.dofe-app .dofe-bulk-names label { min-height: 44px; }
  .dofe-bulk-foot .dofe-bulk-sum { flex-basis: 100%; order: -1; }
  .dofe-bulk-foot .button { flex: 1 1 0; justify-content: center; min-height: 44px; }
  .dofe-events-fe.dofe-app label.dofe-bulk-status { flex: 1 1 100%; }
  .dofe-events-fe.dofe-app .dofe-bulk-status select { flex: 1; }
  .dofe-bulk-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dofe-bulk-foot-note { flex-basis: 100%; }
  #dofe-bulk-details .dofe-ns-add-foot .button { flex: 1 1 0; justify-content: center; min-height: 44px; }
  .dofe-events-fe.dofe-app table.dofe-bulk-table thead { display: none; }
  .dofe-events-fe.dofe-app .dofe-bulk-table tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 12px; padding: 10px 14px; border-top: 1px solid #eeeef3; }
  .dofe-events-fe.dofe-app .dofe-bulk-table tbody tr:first-child { border-top: 0; }
  .dofe-events-fe.dofe-app .dofe-bulk-table td { padding: 0; border: 0; }
  .dofe-events-fe.dofe-app .dofe-bulk-table td:first-child { grid-column: 1 / -1; }
}

/* ---------- Re-submitted route cards: what changed since "Changes required" ---------- */
.dofe-rv-changes { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 12px 0 4px; padding: 12px 16px; border-radius: 12px; background: #f1e8fc; color: #2d0a57; font-size: 14px; border: 1px solid #dcc6f7; }
.dofe-rv-changes > div { flex: 1 1 320px; }
.dofe-rv-changes .rcr-btn { flex: none; }
.dofe-rv-chg-pill { display: inline-block; margin-left: 6px; padding: 2px 8px; border-radius: 999px; background: #7413dc; color: #fff; font-size: 11px; font-weight: 800; letter-spacing: .02em; vertical-align: middle; }
.dofe-rv-leg.is-changed, .dofe-rv-leg.is-new { border-color: #b88af0 !important; box-shadow: inset 4px 0 0 #7413dc; }
.dofe-rv-legs.has-changes .dofe-rv-leg.is-same { opacity: .7; }
.dofe-rv-legs.is-changes-only .dofe-rv-leg.is-same { display: none; }
.dofe-rv-legf.is-changed, .dofe-rv-leg-notes > div.is-changed, .rcr-info-cell.is-changed { background: #f6effe; border-radius: 8px; outline: 2px solid #d7bff6; outline-offset: -2px; }
.dofe-rv-legf.is-changed { padding: 4px 6px; }
.dofe-rv-leg-notes > div.is-changed { padding: 6px 8px; }
.dofe-rv-was { display: block; margin-top: 2px; font-style: normal; font-size: 12px; color: #6b5a80; text-decoration: line-through; text-decoration-color: rgba(107,90,128,.5); word-break: break-word; }

/* Five or more sections (e.g. Expedition packs): wrap onto two rows on a phone rather than squeezing words. */
@media (max-width: 560px) {
  .dofe-seg:has(> .dofe-seg-btn:nth-child(5)) { flex-wrap: wrap; }
  .dofe-events-fe.dofe-app .dofe-seg:has(> .dofe-seg-btn:nth-child(5)) > .dofe-seg-btn { white-space: nowrap; flex: 1 1 auto; min-height: 40px; }
}

/* Route card title: read-only in the editor (renamed from the leaders' review screen) */
div.osm-dofe-app-shell.osm-dofe-app-shell input[name="title"][readonly] { background: #f3f3f7; color: #33404b; cursor: not-allowed; }

/* Rename a route card from the review screen */
.dofe-rv-titlebox { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.dofe-rv-titlebox[hidden], .dofe-rv-rename-form[hidden] { display: none !important; }
.dofe-rv-titlebox h3 { margin: 0; }
.dofe-events-fe.dofe-app .dofe-rv-rename { min-height: 36px; padding: 0 12px; font-size: 13px; }
.dofe-rv-rename-form { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0 0 4px; }
.dofe-events-fe.dofe-app .dofe-rv-rename-input { flex: 1 1 280px; min-width: 0; min-height: 44px; padding: 0 12px; border: 1px solid #c9ccd6; border-radius: 10px; font: inherit; font-size: 18px; font-weight: 700; box-sizing: border-box; }
.dofe-rv-head > div:first-child { flex: 1 1 auto; min-width: 0; }
.dofe-events-fe.dofe-app .dofe-rv-rename-input { flex: 1 1 220px; max-width: 560px; }
.dofe-rv-rename-form .rcr-btn { flex: none; min-height: 44px; }

/* ------------------------------------------------------------------
   Split route plans (Route cards tab, planner dialog, participant panel)
------------------------------------------------------------------ */
.rcr-team-tools { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
.dsp-sum { border: 1px solid var(--dofe-line, #dedfe6); border-radius: 12px; background: #fafafc; padding: 14px; margin: 0 0 14px; display: flex; flex-direction: column; gap: 10px; }
.dsp-sum-h { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.dsp-sum-h h3 { margin: 0; font-size: 18px; }
.dsp-grow { flex: 1 1 auto; }
.dsp-flag { font-size: 13px; font-weight: 700; }
.dsp-flag.is-ok { color: #1d6b2f; }
.dsp-flag.is-bad { color: #8a4b00; }
.dsp-bars { display: flex; flex-direction: column; gap: 6px; }
.dsp-bars-day { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 10px; align-items: center; }
.dsp-bars-l { font-size: 12px; font-weight: 800; color: var(--dofe-muted, #55606b); text-transform: uppercase; letter-spacing: .04em; }
.dsp-bars-row { display: flex; gap: 2px; border-radius: 8px; overflow: hidden; min-height: 44px; }
.dsp-bars.is-compact .dsp-bars-row { min-height: 30px; }
.dsp-seg { display: flex; flex-direction: column; justify-content: center; min-width: 0; padding: 4px 10px; color: #fff; text-decoration: none; }
.dsp-seg b, .dsp-seg span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dsp-seg b { font-size: 13px; }
.dsp-seg span { font-size: 12px; opacity: .95; }
.dsp-bars.is-compact .dsp-seg { flex-direction: row; align-items: center; gap: 8px; }
a.dsp-seg:hover, a.dsp-seg:focus { opacity: 1 !important; outline: 3px solid #16202a; outline-offset: -3px; color: #fff; }
.dsp-seg.is-mine { outline: 3px solid #16202a; outline-offset: -3px; }
.dsp-group-l { list-style: none; font-size: 12px; font-weight: 800; color: var(--dofe-muted, #55606b); text-transform: uppercase; letter-spacing: .04em; margin: 6px 0 2px; }
.dsp-pill { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 99px; color: #fff; font-size: 12px; font-weight: 800; white-space: nowrap; }
.dsp-set-by { font-size: 13px; color: var(--dofe-muted, #55606b); }
.dsp-empty { margin: 0; color: var(--dofe-muted, #55606b); font-size: 14px; }
.dsp-sum-foot, .dsp-row, .dsp-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.dsp-note { font-size: 13px; color: var(--dofe-muted, #55606b); }
.dsp-inline { display: inline; margin: 0; }
.dsp-parts-old > summary { cursor: pointer; font-size: 13px; color: var(--dofe-accent, #7413dc); font-weight: 700; margin: 4px 0; }

.dofe-modal-card.dsp-card { max-width: 1120px; width: 100%; padding: 0; border-radius: 14px; text-align: left; display: flex; flex-direction: column; }
.dofe-modal-card.dsp-add { max-width: 720px; }
.dsp-head { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 18px 22px; border-bottom: 1px solid var(--dofe-line-soft, #eeeef3); position: sticky; top: 0; background: #fff; z-index: 2; }
.dsp-head-t { flex: 1 1 280px; min-width: 0; }
.dsp-head h3 { margin: 4px 0 0; font-size: 22px; font-weight: 800; }
.dsp-head p { margin: 2px 0 0; color: var(--dofe-muted, #55606b); font-size: 14px; }
.dsp-tags { display: flex; gap: 6px; }
.dsp-steps { display: flex; flex-wrap: wrap; gap: 6px; }
.dsp-steps button { font: inherit; font-size: 14px; font-weight: 700; padding: 8px 14px; min-height: 40px; border-radius: 99px; border: 0; background: var(--dofe-ground, #f5f4f8); color: var(--dofe-muted, #55606b); cursor: pointer; }
.dsp-steps button.is-on { background: var(--dofe-accent, #7413dc); color: #fff; }
.dsp-pane { padding: 18px 22px 22px; display: flex; flex-direction: column; gap: 14px; }
.dsp-pane[hidden] { display: none; }
.dsp-tools { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px 14px; }
.dsp-tools label, .dsp-lbl-in { display: flex; flex-direction: column; gap: 4px; font-size: 12px; font-weight: 800; color: var(--dofe-muted, #55606b); text-transform: uppercase; letter-spacing: .04em; }
.dsp-hrs { display: inline-flex; align-items: center; gap: 6px; text-transform: none; font-weight: 600; font-size: 14px; color: var(--dofe-ink, #16202a); letter-spacing: 0; }
.dsp-card input[type=text], .dsp-card input[type=time], .dsp-card input[type=date], .dsp-card input[type=number], .dsp-card select, .dsp-card textarea { font: inherit; font-size: 14px; border: 1px solid var(--dofe-line, #dedfe6); border-radius: 8px; padding: 8px 10px; min-height: 40px; box-sizing: border-box; background: #fff; color: var(--dofe-ink, #16202a); }
.dsp-in-sm { width: 110px; }
.dsp-in-wide { width: 100%; }
.dsp-hint { margin: 0; font-size: 14px; color: var(--dofe-muted, #55606b); }
.dsp-cols { display: flex; flex-wrap: wrap; gap: 18px; align-items: flex-start; }
.dsp-points { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.dsp-preview { flex: 1 1 260px; min-width: 0; display: flex; flex-direction: column; gap: 8px; border: 1px solid var(--dofe-line, #dedfe6); border-radius: 12px; padding: 12px 14px; }
.dsp-preview h4 { margin: 0; font-size: 15px; }
.dsp-day-h { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; padding: 8px 0 0; color: var(--dofe-accent-ink, #4a0d91); }
.dsp-day-h label { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--dofe-muted, #55606b); }
.dsp-pt { display: grid; grid-template-columns: 112px minmax(0, 1fr) minmax(0, 1.2fr) auto; gap: 8px; align-items: center; padding: 10px 12px; border: 1px solid var(--dofe-line, #dedfe6); border-radius: 10px; background: #fff; }
.dsp-pt.is-hand { border: 2px solid var(--dofe-accent, #7413dc); background: #fbf8ff; }
.dsp-pt.is-campsite { background: var(--dofe-ground, #f5f4f8); }
.dsp-pt.is-campsite.is-hand { background: #fbf8ff; }
.dsp-pt-l { font-weight: 800; font-size: 14px; }
.dsp-t { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--dofe-muted, #55606b); }
.dsp-pt-a { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; }
.dsp-pt .dsp-check-s { grid-column: 2 / -1; }
.dsp-rm { color: var(--dofe-danger, #a4262c) !important; }
.dsp-check, .dsp-check-s { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; }
.dsp-check input, .dsp-check-s input { width: 20px; height: 20px; margin: 0; accent-color: var(--dofe-accent, #7413dc); flex: none; }
.dsp-prev-part { display: flex; gap: 10px; align-items: flex-start; }
.dsp-prev-part > div { display: flex; flex-direction: column; font-size: 13px; }
.dsp-swatch { flex: none; width: 10px; height: 38px; border-radius: 4px; }
.dsp-who { color: var(--dofe-muted, #55606b); }
.dsp-sub { display: block; font-size: 12px; color: var(--dofe-muted, #55606b); font-weight: 400; }
.dsp-foot { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; padding-top: 6px; border-top: 1px solid var(--dofe-line-soft, #eeeef3); margin-top: 4px; padding-top: 14px; }
.dsp-table-wrap { overflow-x: auto; border: 1px solid var(--dofe-line, #dedfe6); border-radius: 12px; }
.dsp-table { width: 100%; border-collapse: collapse; min-width: 640px; }
.dsp-table th, .dsp-table td { padding: 9px 10px; text-align: left; border-bottom: 1px solid var(--dofe-line-soft, #eeeef3); font-size: 14px; vertical-align: middle; }
.dsp-table thead th { font-size: 12px; color: var(--dofe-muted, #55606b); }
.dsp-ppl td { text-align: center; }
.dsp-ppl td:last-child { text-align: left; white-space: nowrap; }
.dsp-ppl input[type=checkbox] { width: 22px; height: 22px; accent-color: var(--dofe-accent, #7413dc); }
.dsp-warn { color: #8a4b00; font-weight: 700; }
.dsp-checks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; font-size: 14px; }
.dsp-checks li::before { display: inline-block; width: 22px; font-weight: 800; }
.dsp-checks li.is-ok::before { content: "\2713"; color: #1d6b2f; }
.dsp-checks li.is-bad { color: #7a3d00; }
.dsp-checks li.is-bad::before { content: "!"; color: #b65800; }
.dsp-checks li.is-info { color: var(--dofe-muted, #55606b); }
.dsp-checks li.is-info::before { content: "i"; }
.dsp-h { margin: 6px 0 0; font-size: 15px; }
.dsp-more > summary { cursor: pointer; font-weight: 700; color: var(--dofe-accent, #7413dc); font-size: 14px; }
.dsp-links { display: flex; flex-wrap: wrap; gap: 8px 14px; margin: 8px 0 0; }
.dsp-stack { display: flex; flex-direction: column; gap: 12px; margin: 10px 0 0; }
.dsp-add .dsp-stack { padding: 18px 22px 22px; margin: 0; }
.dsp-ta { width: 100%; line-height: 1.45; }
.dsp-danger { padding-top: 6px; }
.dsp-danger .button { color: var(--dofe-danger, #a4262c) !important; }
.dsp-lbl { font-size: 12px; font-weight: 800; color: var(--dofe-muted, #55606b); text-transform: uppercase; letter-spacing: .04em; padding: 0; margin: 0 0 6px; }
.dsp-add fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.dsp-add fieldset[hidden], .dsp-add [hidden] { display: none !important; }
.dsp-seg-ctl { display: inline-flex; gap: 4px; background: var(--dofe-ground, #f5f4f8); border-radius: 10px; padding: 4px; }
.dsp-seg-ctl label { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 8px; font-weight: 700; cursor: pointer; min-height: 40px; box-sizing: border-box; }
.dsp-seg-ctl label:has(input:checked) { background: #fff; color: var(--dofe-accent-ink, #4a0d91); box-shadow: 0 1px 2px rgba(22, 32, 42, .12); }
.dsp-choices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.dsp-choices legend { grid-column: 1 / -1; }
.dsp-choice { display: flex; gap: 10px; align-items: flex-start; padding: 14px; border: 2px solid var(--dofe-line, #dedfe6); border-radius: 12px; cursor: pointer; }
.dsp-choice:has(input:checked) { border-color: var(--dofe-accent, #7413dc); background: #fbf8ff; }
.dsp-choice input { margin-top: 3px; accent-color: var(--dofe-accent, #7413dc); }
.dsp-choice > span { display: flex; flex-direction: column; gap: 4px; font-size: 14px; }
.dsp-choice > span > span { color: #3d4650; }
.dsp-opt { display: flex; flex-wrap: wrap; gap: 16px; padding: 14px; border-radius: 12px; background: #fafafc; border: 1px solid var(--dofe-line-soft, #eeeef3); }
.dsp-opt .dsp-lbl-in { flex: 1 1 200px; }
.dsp-titles { margin: 0; padding-left: 18px; font-size: 14px; }
.dsp-mine { margin: 0 0 24px; gap: 14px; }
.dsp-mine-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.dsp-mine-card { border: 1px solid var(--dofe-line, #dedfe6); border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; background: #fff; }
.dsp-mine-h { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; align-items: center; }
.dsp-kv { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 6px 16px; margin: 0; font-size: 14px; }
.dsp-kv dt { color: var(--dofe-muted, #55606b); }
.dsp-kv dd { margin: 0; font-weight: 700; }
.dsp-kv .dsp-sub { display: inline; }
.dsp-mine-card .button { align-self: flex-start; }
@media (max-width: 700px) {
    .dsp-pt { grid-template-columns: 1fr; }
    .dsp-pt .dsp-check-s { grid-column: auto; }
    .dsp-choices { grid-template-columns: 1fr; }
    .dsp-head, .dsp-pane, .dsp-add .dsp-stack { padding-left: 16px; padding-right: 16px; }
}
.dsp-seg.is-other { background: #efedf4; color: #16202a; padding-left: 14px; }
a.dsp-seg.is-other { text-decoration: underline; text-underline-offset: 2px; }
a.dsp-seg.is-other:hover, a.dsp-seg.is-other:focus { color: #16202a; background: #e4e0ee; }

/* Everything inside a team on the Route cards tab lines up with the team name (16px in). */
.dofe-events-fe .rcr-team > .rcr-team-tools { margin: 0; padding: 12px 16px 4px; }
.dofe-events-fe .rcr-team > .rcr-card-list, .dofe-events-fe .rcr-kind > .rcr-card-list { padding: 4px 16px 4px; }
.rcr-team > .rcr-merge-picker { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; margin: 8px 16px 16px; padding: 10px 12px 10px 16px; background: #1d1530; color: #fff; border-radius: 10px; position: sticky; bottom: 12px; z-index: 5; box-shadow: 0 6px 18px rgba(29, 21, 48, .18); }
.rcr-team > .rcr-merge-picker[hidden] { display: none !important; }
.rcr-team > .rcr-merge-picker .rcr-merge-ids-holder { display: none; }
.rcr-team > .rcr-merge-picker .rcr-merge-count { margin-right: auto; }
.rcr-team > .rcr-merge-picker .rcr-merge-count { font-weight: 700; font-size: 14px; color: #fff; }
.rcr-team > .rcr-merge-picker .rcr-merge-btns { display: flex; gap: 8px; }
.rcr-team > .rcr-merge-picker button { font: inherit; font-size: 13px; font-weight: 700; border-radius: 6px; padding: 6px 12px; cursor: pointer; margin: 0; line-height: 1.3; }
.rcr-team > .rcr-merge-picker .rcr-merge-clear { background: transparent; color: #fff; border: 1px solid #8c7aa8; }
.rcr-team > .rcr-merge-picker .rcr-merge-go { background: #7413dc; color: #fff; border: 1px solid #fff; }
.rcr-team > .rcr-merge-picker .rcr-merge-go:disabled { background: transparent; border-color: #8c7aa8; color: #cbbfe0; cursor: default; }
.rcr-team > .rcr-merge-picker button:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.dofe-events-fe .rcr-team > .rcr-team-tools .button { margin: 0; }
.dofe-events-fe .rcr-team > .dsp-sum, .dofe-events-fe .rcr-kind > .dsp-sum { margin: 8px 16px 12px; }
.dofe-events-fe .rcr-team > .rcr-other-l, .dofe-events-fe .rcr-kind > .rcr-other-l { margin: 14px 16px 0; }
.dofe-events-fe .rcr-team > .rcr-empty-sm, .dofe-events-fe .rcr-kind > .rcr-empty-sm { padding: 6px 16px 12px; }
.dofe-events-fe .rcr-team > .rcr-merge-picker .rcr-merge-ids-holder { display: none; }

/* Silver and Gold: Practice and Assessed cards in their own sections. */
.dofe-events-fe .rcr-kind + .rcr-kind { border-top: 1px solid var(--dofe-line-soft, #eeeef3); margin-top: 8px; }
.dofe-events-fe .rcr-kind-h { display: flex; align-items: baseline; gap: 10px; margin: 0; padding: 14px 16px 4px; font-size: 15px; font-weight: 800; color: var(--dofe-ink, #16202a); }
.dofe-events-fe .rcr-kind-n { font-size: 12px; font-weight: 700; color: var(--dofe-muted, #55606b); }
.dofe-rv-delete { margin-top: 0; }
.dofe-events-fe .dofe-rv .dofe-rv-delete-btn { width: 100%; color: #fff !important; background: #a4262c !important; border-color: #a4262c !important; }
.dofe-events-fe .dofe-rv .dofe-rv-delete-btn:hover { background: #861e23 !important; }
.dofe-events-fe .dofe-rv .dofe-rv-delete-btn[disabled] { background: #eeeef3 !important; border-color: #eeeef3 !important; color: #6b7280 !important; cursor: not-allowed; }

/* Planner / Add route cards header: title and close on one row, steps as tabs underneath. */
.dofe-events-fe .dsp-head { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 0 12px; padding: 20px 24px 0; }
.dofe-events-fe .dsp-add .dsp-head { padding-bottom: 16px; }
.dofe-events-fe .dsp-head-t { flex: 1 1 0; min-width: 0; }
.dofe-events-fe .dsp-head .rcr-modal-close { position: static; flex: none; margin: 0; top: auto; right: auto; }
.dofe-events-fe .dsp-steps { flex: 1 1 100%; display: flex; gap: 4px; margin: 16px -24px 0; padding: 0 20px; border-top: 1px solid var(--dofe-line-soft, #eeeef3); overflow-x: auto; }
.dofe-events-fe .dsp-steps button { display: inline-flex; align-items: center; gap: 8px; flex: none; padding: 12px 12px 10px; min-height: 48px; border: 0; border-bottom: 3px solid transparent; border-radius: 0; background: none; color: var(--dofe-muted, #55606b); font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; white-space: nowrap; }
.dofe-events-fe .dsp-steps button:hover { color: var(--dofe-ink, #16202a); }
.dofe-events-fe .dsp-steps button.is-on { background: none; color: var(--dofe-accent-ink, #4a0d91); border-bottom-color: var(--dofe-accent, #7413dc); }
.dsp-step-n { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; background: var(--dofe-ground, #f5f4f8); color: var(--dofe-muted, #55606b); font-size: 12px; font-weight: 800; }
.dsp-steps button.is-on .dsp-step-n { background: var(--dofe-accent, #7413dc); color: #fff; }
.dofe-events-fe .dsp-tools { gap: 12px 20px; }
@media (max-width: 700px) {
    .dofe-events-fe .dsp-head { padding: 16px 16px 0; }
    .dofe-events-fe .dsp-steps { margin: 12px -16px 0; padding: 0 8px; }
    .dofe-events-fe .dsp-steps button { padding: 10px 8px 8px; font-size: 13px; }
}
.dofe-events-fe .dsp-steps { flex-wrap: nowrap; }
.dofe-events-fe .dsp-steps button:focus { outline: none; box-shadow: none; }
.dofe-events-fe .dsp-steps button:focus-visible { outline: 2px solid var(--dofe-accent, #7413dc); outline-offset: -4px; border-radius: 6px; }
.dsp-step-s { display: none; }
@media (max-width: 560px) {
    .dsp-step-l { display: none; }
    .dsp-step-s { display: inline; }
    .dofe-events-fe .dsp-steps button { flex: 1 1 0; justify-content: center; }
}

/* The planner's tables keep their own light look whatever the theme does to tables. */
.dofe-events-fe .dsp-table thead, .dofe-events-fe .dsp-table thead tr, .dofe-events-fe .dsp-table thead th { background: #f7f6fa !important; color: var(--dofe-ink, #16202a) !important; }
.dofe-events-fe .dsp-table thead th { font-weight: 800; }
.dofe-events-fe .dsp-table tbody tr, .dofe-events-fe .dsp-table tbody td, .dofe-events-fe .dsp-table tbody th { background: #fff !important; color: var(--dofe-ink, #16202a) !important; }
.dofe-events-fe .dsp-table .dsp-sub { color: var(--dofe-muted, #55606b) !important; }
.dofe-events-fe .dsp-table .dsp-pill { color: #fff !important; }

/* Modals: keep clear of the WordPress admin bar, and tighten the planner header. */
body.admin-bar .dofe-events-fe .dofe-modal-overlay { padding-top: 48px; }
body.admin-bar .dofe-events-fe .dofe-modal-card { max-height: calc(100vh - 64px); }
@media (max-width: 782px) {
    body.admin-bar .dofe-events-fe .dofe-modal-overlay { padding-top: 62px; }
    body.admin-bar .dofe-events-fe .dofe-modal-card { max-height: calc(100vh - 78px); }
}
.dofe-events-fe .dofe-modal-card .dsp-head p { margin: 2px 0 0; }

.dofe-leader-login[hidden] { display: none !important; }

.dofe-md-cols.dofe-forms-cols.is-wide { grid-template-columns: minmax(0, 1fr) !important; }
.dofe-ns-consents { margin: 12px 0 0; padding: 10px 12px; border: 1px solid #d7ecdc; background: #f3faf5; border-radius: 8px; font-size: 13px; line-height: 1.45; }
.dofe-ns-consents > strong { display: block; font-size: 14px; color: #14532d; }
.dofe-ns-consents-when { display: block; color: #50575e; margin: 2px 0 0; }
.dofe-ns-consents ul { list-style: none; margin: 6px 0 0 !important; padding: 0 !important; }
.dofe-ns-consents li { position: relative; padding-left: 20px; margin: 0 0 4px; }
.dofe-ns-consents li::before { content: "\2713"; position: absolute; left: 0; color: #15803d; font-weight: 800; }

.dofe-ns-edit-actions { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--dofe-line-soft, #eeeef3); }
.dofe-ns-edit-more { display: flex; gap: 8px; flex-wrap: wrap; }
.dofe-events-fe.dofe-app .dofe-ns-del-btn, .dofe-ns-del-btn { color: #b32d2e !important; border-color: #b32d2e !important; background: #fff !important; }
.dofe-ns-foot:has(.dofe-ns-edit[open]) > form.dofe-ns-withdraw { display: none; }

/* New Starters: list rows (open until the checklist is done) */
.dofe-ns-row { background: var(--dofe-surface, #fff); border: 1px solid var(--dofe-line, #e2e4e7); border-radius: 12px; margin: 0 0 8px; overflow: hidden; }
.dofe-ns-row.is-withdrawn { opacity: .7; }
.dofe-ns-rowline { list-style: none; cursor: pointer; display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) 120px minmax(0, 1.7fr) 18px; gap: 12px; align-items: center; padding: 11px 16px; }
.dofe-ns-rowline::-webkit-details-marker { display: none; }
.dofe-ns-rowline:hover { background: #fbf9fe; }
.dofe-ns-row[open] > .dofe-ns-rowline { background: #fbf9fe; border-bottom: 1px solid #eeeaf5; }
.dofe-ns-rl-who { min-width: 0; }
.dofe-ns-rl-who .dofe-ns-name { display: block; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dofe-ns-rl-who small { display: block; color: #646970; font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dofe-ns-rl-pills, .dofe-ns-rl-flags { display: flex; gap: 5px; flex-wrap: wrap; align-items: center; }
.dofe-ns-rl-flags { justify-content: flex-end; }
.dofe-ns-rl-prog { display: flex; flex-direction: column; gap: 3px; font-size: 12px; color: #646970; }
.dofe-ns-bar { display: block; height: 6px; background: #eceaf2; border-radius: 99px; overflow: hidden; width: 100%; }
.dofe-ns-bar i { display: block; height: 100%; background: var(--dofe-accent, #7413dc); }
.dofe-ns-rl-chev::before { content: "\25B8"; color: #646970; }
.dofe-ns-row[open] .dofe-ns-rl-chev::before { content: "\25BE"; }
.dofe-ns-rowbody { padding: 12px 16px 16px; background: #fbf9fe; }
.dofe-ns-rowbody > .dofe-ns-dup { margin-top: 0; }
.dofe-ns-rb-grid { display: block; }
.dofe-ns-tabs { display: flex; gap: 2px; border-bottom: 1px solid #e2e4e7; margin: 0 0 12px; overflow-x: auto; }
.dofe-events-fe.dofe-app .dofe-ns-tabs button, .dofe-ns-tabs button { background: none !important; border: 0 !important; border-bottom: 2px solid transparent !important; border-radius: 0 !important; padding: 7px 11px !important; font: inherit; font-size: 13px !important; font-weight: 700; color: #646970 !important; cursor: pointer; white-space: nowrap; min-height: 0 !important; box-shadow: none !important; }
.dofe-events-fe.dofe-app .dofe-ns-tabs button.is-on, .dofe-ns-tabs button.is-on { color: var(--dofe-accent-ink, #4a0d91) !important; border-bottom-color: var(--dofe-accent, #7413dc) !important; }
.dofe-ns-tabn { display: inline-block; min-width: 18px; padding: 0 5px; border-radius: 99px; background: #e6f4ea; color: #14532d; font-size: 11px; margin-left: 3px; }
.dofe-ns-expline { margin-top: 10px; font-size: 13px; color: #50575e; }
.dofe-ns-dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 5px 14px; margin: 0; font-size: 14px; }
.dofe-ns-dl dt { color: #646970; font-size: 13px; }
.dofe-ns-dl dd { margin: 0; overflow-wrap: anywhere; }
.dofe-ns-empty { color: #646970; margin: 0; }
.dofe-ns-rb-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.dofe-ns-rb-actions form { margin: 0; }
.dofe-ns-next { background: #fff; border: 1px solid #ece4f8; border-radius: 12px; padding: 12px 14px; }
.dofe-ns-next-lab { display: block; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--dofe-accent, #7413dc); }
.dofe-ns-next p { margin: 4px 0 10px; font-weight: 700; }
.dofe-ns-next p.dofe-ns-next-small { font-weight: 400; font-size: 12px; color: #646970; margin: 8px 0 0; }
.dofe-ns-next .dofe-ns-share { margin: 0; }
.dofe-ns-edit-dialog { width: min(680px, 100%); }
.dofe-ns-edit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; }
.dofe-ns-eg { grid-column: 1 / -1; margin: 6px 0 0 !important; font-size: 11px !important; line-height: 1.4 !important; font-weight: 800; color: var(--dofe-accent, #7413dc); text-transform: uppercase; letter-spacing: .06em; }
.dofe-ns-ef { display: block; margin: 0 !important; }
.dofe-ns-ef.is-wide { grid-column: 1 / -1; }
.dofe-ns-ef > span { display: block; font-size: 12px; font-weight: 700; color: #50575e; margin-bottom: 4px; }
.dofe-ns-ef input, .dofe-ns-ef select, .dofe-ns-ef textarea { width: 100%; box-sizing: border-box; max-width: 100%; }
.dofe-ns-edit-foot { justify-content: space-between !important; }
@media (max-width: 760px) {
  .dofe-ns-rowline { grid-template-columns: minmax(0, 1fr) auto 18px; }
  .dofe-ns-rl-prog { display: none; }
  .dofe-ns-rl-flags { grid-column: 1 / -1; justify-content: flex-start; }
  .dofe-ns-rl-chev { grid-row: 1; grid-column: 3; }
  .dofe-ns-rb-grid, .dofe-ns-edit-grid { grid-template-columns: 1fr; }
}
.dofe-ns-pane .dofe-ns-steps { margin: 0; padding: 0; border: 0; }
.dofe-ns-pane .dofe-ns-share-sent { margin-top: 10px; }

.dofe-ns-rb-actions .dofe-ns-share { margin: 0; }

.dofe-ns-row.is-moved { animation: dofeNsMoved 1.2s ease-out; }
@keyframes dofeNsMoved { 0% { box-shadow: 0 0 0 3px rgba(116,19,220,.45); } 100% { box-shadow: 0 0 0 0 rgba(116,19,220,0); } }

/* New Starters: cards side by side (overrides the list-row layout above) */
.dofe-ns-sec { margin: 0 0 22px; }
.dofe-events-fe.dofe-app .dofe-ns-sec-h, .dofe-ns-sec-h { display: flex; align-items: center; gap: 8px; margin: 0 0 10px !important; font-size: 13px !important; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--dofe-accent, #7413dc); }
.dofe-ns-sec-n { background: #efe5fc; color: #4a0d91; border-radius: 99px; padding: 1px 8px; font-size: 11px; letter-spacing: 0; }
.dofe-ns-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 14px; align-items: start; }
.dofe-ns-grid.is-small { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 10px; }
.dofe-ns-grid.is-small .dofe-ns-row[open] { grid-column: 1 / -1; }
.dofe-ns-grid .dofe-ns-row { margin: 0; border-radius: 14px; display: flex; flex-direction: column; }
.dofe-ns-row.has-warn { border-color: #f0c27a; }
.dofe-ns-grid .dofe-ns-rowline { display: block; padding: 0; background: #fff !important; border-bottom: 0 !important; }
.dofe-ns-warn { display: block; padding: 8px 16px; background: #fff4e5; color: #5c3a00; font-size: 12px; font-weight: 700; border-bottom: 1px solid #f6dfb6; }
.dofe-ns-ct { display: block; padding: 14px 16px 10px; }
.dofe-ns-ct-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.dofe-ns-grid .dofe-ns-rl-who .dofe-ns-name { font-size: 16px; white-space: normal; }
.dofe-ns-grid .dofe-ns-rl-who small { white-space: normal; }
.dofe-ns-grid .dofe-ns-rl-pills { margin-top: 8px; }
.dofe-ns-grid .dofe-ns-rl-prog { display: flex; flex-direction: row; align-items: center; gap: 8px; margin-top: 10px; }
.dofe-ns-grid .dofe-ns-rl-prog .dofe-ns-bar { flex: 1; }
.dofe-ns-grid.is-small .dofe-ns-row:not([open]) .dofe-ns-rl-pills,
.dofe-ns-grid.is-small .dofe-ns-row:not([open]) .dofe-ns-rl-prog,
.dofe-ns-grid.is-small .dofe-ns-row:not([open]) .dofe-ns-warn { display: none; }
.dofe-ns-grid.is-small .dofe-ns-row:not([open]) .dofe-ns-ct { padding: 10px 14px; }
.dofe-ns-grid.is-small .dofe-ns-row:not([open]) .dofe-ns-name { font-size: 14px; }
.dofe-ns-grid .dofe-ns-rowbody { padding: 0; background: #fff; display: flex; flex-direction: column; flex: 1; }
.dofe-ns-grid .dofe-ns-rowbody > .dofe-ns-dup { margin: 0 16px 10px; }
.dofe-ns-grid .dofe-ns-tabs { padding: 0 10px; margin: 0; border-top: 1px solid #f0eef5; }
.dofe-events-fe.dofe-app .dofe-ns-grid .dofe-ns-tabs button, .dofe-ns-grid .dofe-ns-tabs button { padding: 7px 8px !important; font-size: 12px !important; }
.dofe-ns-grid .dofe-ns-pane { padding: 12px 16px; }
.dofe-ns-grid .dofe-ns-steps { display: flex; flex-direction: column; gap: 6px; }
.dofe-events-fe.dofe-app .dofe-ns-grid .dofe-ns-chk-wrap, .dofe-ns-grid .dofe-ns-chk-wrap { border: 0 !important; background: none !important; padding: 2px 0 !important; border-radius: 0 !important; font-size: 13px; font-weight: 400; display: flex; align-items: center; gap: 9px; }
.dofe-events-fe.dofe-app .dofe-ns-grid .dofe-ns-chk-wrap:has(.dofe-ns-chk-input:checked) { background: none !important; color: #14532d; font-weight: 700; }
.dofe-events-fe.dofe-app .dofe-ns-grid .dofe-ns-chk-wrap { position: relative; min-height: 26px; }
/* Keep the hidden tick input exactly over its circle (the card list has no side padding). */
.dofe-events-fe.dofe-app .dofe-ns-grid input[type="checkbox"].dofe-ns-chk-input { left: 0 !important; top: 50% !important; transform: translateY(-50%); margin: 0 !important; }
.dofe-events-fe.dofe-app .dofe-ns-grid .dofe-ns-chk-box { flex: none; }
.dofe-ns-grid .dofe-ns-rb-actions { margin: auto 0 0; padding: 10px 16px; border-top: 1px solid #eee; background: #fbfafd; gap: 6px; }
.dofe-events-fe.dofe-app .dofe-ns-grid .dofe-ns-rb-actions .button { font-size: 12px !important; padding: 5px 10px !important; min-height: 0 !important; }
.dofe-ns-grid .dofe-ns-rb-grid, .dofe-ns-grid .dofe-ns-rb-main { display: flex; flex-direction: column; flex: 1; }
.dofe-ns-grid .dofe-ns-rl-chev { display: none; }
.dofe-ns-grid .dofe-ns-share-sent { display: block; font-size: 12px; }
@media (max-width: 760px) { .dofe-ns-grid, .dofe-ns-grid.is-small { grid-template-columns: 1fr; } }
.dofe-ns-grid .dofe-ns-dup-actions .button { font-size: 12px !important; }
.dofe-ns-grid .dofe-ns-rowbody > .dofe-ns-dup { font-size: 12px; }
.dofe-ns-kvs { display: flex; flex-direction: column; gap: 7px; }
.dofe-ns-kv { display: block; font-size: 13px; line-height: 1.45; }
.dofe-ns-k { display: block; font-size: 11px; font-weight: 800; color: #646970; text-transform: uppercase; letter-spacing: .05em; }
.dofe-ns-v { display: block; color: var(--dofe-ink, #1d2327); overflow-wrap: anywhere; white-space: pre-line; }
.dofe-ns-pane .dofe-ns-link { margin-top: 12px; font-size: 13px; }
.dofe-ns-mtabs { padding: 0 18px; margin: 10px 0 0 !important; }
.dofe-ns-edit-dialog .dofe-ns-pane { padding: 4px 0 0; }
.dofe-ns-edit-dialog .dofe-ns-kvs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 18px; }
.dofe-ns-edit-dialog .dofe-ns-v { font-size: 14px; }
.dofe-ns-grid .dofe-ns-checkpane { padding: 12px 16px; }
@media (max-width: 600px) { .dofe-ns-edit-dialog .dofe-ns-kvs { grid-template-columns: 1fr; } }
.dofe-ns-edit-foot > span:last-child { margin-left: auto; display: flex; gap: 8px; }
.dofe-ns-sharestrip { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 8px 12px 8px 16px; background: #e6f4ea; color: #14532d; font-size: 12px; font-weight: 700; border-bottom: 1px solid #cfe8d6; }
.dofe-ns-sharestrip.is-chase { background: #fff4e5; color: #5c3a00; border-bottom-color: #f6dfb6; }
.dofe-ns-sharestrip .dofe-ns-share { margin: 0; flex: none; }
.dofe-events-fe.dofe-app .dofe-ns-sharestrip .button { font-size: 12px !important; padding: 4px 9px !important; min-height: 0 !important; background: #fff !important; }
.dofe-ns-grid.is-small .dofe-ns-row:not([open]) .dofe-ns-sharestrip { display: none; }
/* The site's button styles mustn't undo "hidden" in the New Starter cards and pop-ups. */
.dofe-ns-row [hidden], .dofe-ns-edit-modal [hidden] { display: none !important; }
.dofe-ns-grid .dofe-ns-rb-actions { display: flex; }
.dofe-events-fe.dofe-app .dofe-ns-grid .dofe-ns-rb-actions .dofe-ns-viewbtn { flex: 1 1 auto; justify-content: center; text-align: center; }
.dofe-ns-grid .dofe-ns-rb-actions .dofe-ns-share { flex: 1 1 auto; }
.dofe-events-fe.dofe-app .dofe-ns-grid .dofe-ns-rb-actions .dofe-ns-share .button { width: 100%; justify-content: center; }
.dofe-ns-grid .dofe-ns-rb-actions form.dofe-ns-withdraw { display: none; }
/* Card buttons: two equal columns with a gap; a single button fills the row. */
.dofe-ns-grid .dofe-ns-rb-actions { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: 8px !important; }
.dofe-ns-grid .dofe-ns-rb-actions > * { min-width: 0; margin: 0 !important; }
.dofe-events-fe.dofe-app .dofe-ns-grid .dofe-ns-rb-actions .button { width: 100% !important; white-space: normal !important; line-height: 1.25 !important; justify-content: center; text-align: center; box-sizing: border-box; }

/* ---- Shared form styling: settings cards and pop-ups look the same everywhere ---- */
.dofe-events-fe.dofe-app .dofe-settings-card > h3 { font-size: 17px !important; font-weight: 800; margin: 0 0 6px !important; }
.dofe-events-fe.dofe-app .dofe-settings-card > p:first-of-type:not(:has(input, select, textarea, button)) { font-size: 13px !important; color: #50575e !important; margin: 0 0 14px !important; }
.dofe-events-fe.dofe-app .dofe-settings-card form > p,
.dofe-events-fe.dofe-app .dofe-settings-card form > div > p { margin: 0 0 14px !important; }
.dofe-events-fe.dofe-app .dofe-settings-card label:has(> input:not([type=checkbox]):not([type=radio]), > select, > textarea),
.dofe-events-fe.dofe-app .dofe-ns-add-body label:has(> input:not([type=checkbox]):not([type=radio]), > select, > textarea) { display: block; font-size: 13px !important; font-weight: 700 !important; color: #3c434a; }
.dofe-events-fe.dofe-app .dofe-settings-card label > br,
.dofe-events-fe.dofe-app .dofe-ns-add-body label > br { display: none; }
.dofe-events-fe.dofe-app .dofe-settings-card label > input:not([type=checkbox]):not([type=radio]),
.dofe-events-fe.dofe-app .dofe-settings-card label > select,
.dofe-events-fe.dofe-app .dofe-settings-card label > textarea { display: block; width: 100%; margin-top: 5px; font-weight: 400; box-sizing: border-box; }
.dofe-events-fe.dofe-app .dofe-settings-card label:has(> input[type=checkbox]),
.dofe-events-fe.dofe-app .dofe-settings-card label:has(> input[type=radio]) { display: inline-flex; align-items: center; gap: 7px; font-size: 14px; font-weight: 600; margin-right: 16px; }
/* Hint text under a field: one size, one colour, always on its own line. */
.dofe-events-fe.dofe-app .dofe-settings-card span[style*="font-size:12px"],
.dofe-events-fe.dofe-app .dofe-settings-card p[style*="font-size:12px"],
.dofe-events-fe.dofe-app .dofe-hint { display: block; font-size: 12px !important; line-height: 1.45; color: #50575e !important; margin-top: 5px; }
.dofe-events-fe.dofe-app .dofe-settings-card form > p:last-child { margin: 18px 0 0 !important; }
/* A clear focus ring for keyboard users everywhere in the hub. */
.dofe-app :focus-visible, .dofe-confirm-overlay :focus-visible, .dofe-ns-add-modal :focus-visible { outline: 2px solid var(--dofe-accent, #7413dc) !important; outline-offset: 2px; }

/* Password boxes: our own Show/Hide button. Dark mode inverts the whole hub, so one set of colours covers both. */
.dofe-pw-wrap { position: relative; display: block; width: 100%; }
.dofe-pw-wrap > input { width: 100%; padding-right: 46px !important; box-sizing: border-box; }
.dofe-pw-wrap > input::-ms-reveal, .dofe-pw-wrap > input::-ms-clear { display: none; }
button.dofe-pw-toggle, .dofe-events-fe.dofe-app button.dofe-pw-toggle { position: absolute !important; top: 50%; right: 6px; transform: translateY(-50%); width: 34px !important; height: 34px !important; min-height: 0 !important; min-width: 0 !important; padding: 0 !important; margin: 0 !important; display: inline-flex !important; align-items: center; justify-content: center; border: 0 !important; border-radius: 8px !important; background: transparent !important; color: #3c434a !important; box-shadow: none !important; cursor: pointer; }
button.dofe-pw-toggle:hover { background: rgba(116, 19, 220, .1) !important; color: var(--dofe-accent, #7413dc) !important; }
button.dofe-pw-toggle[aria-pressed="true"] { color: var(--dofe-accent, #7413dc) !important; }
/* Member Records link on the New Starter card: compact, select fills the width. */
.dofe-ns-grid .dofe-ns-checkpane .dofe-ns-link { margin: 12px 0 0; padding: 9px 10px; font-size: 12px; gap: 6px; flex-direction: column; align-items: stretch; }
.dofe-ns-grid .dofe-ns-checkpane .dofe-ns-link form { flex-wrap: nowrap; }
.dofe-ns-grid .dofe-ns-checkpane .dofe-ns-link select { flex: 1 1 auto; width: auto; min-width: 0; }
.dofe-ns-grid .dofe-ns-checkpane .dofe-ns-linked { margin: 12px 0 0; font-size: 12px; color: #14532d; font-weight: 700; }

/* Participant accounts: small cards with one Actions menu */
.dofe-pa-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 8px; }
.dofe-pa-card { position: relative; background: var(--dofe-surface, #fff); border: 1px solid var(--dofe-line, #e2e4e7); border-radius: 11px; padding: 9px 11px; min-width: 0; }
.dofe-pa-card.is-off { opacity: .65; }
.dofe-pa-card.is-bad { border-color: #f0b4b4; background: #fffafa; }
.dofe-pa-l1 { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.dofe-pa-l1 b { font-size: 14px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dofe-pa-acts { display: flex; gap: 4px; flex: none; }
.dofe-pa-l2 { display: flex; gap: 6px; align-items: center; margin-top: 3px; font-size: 12px; color: #646970; min-width: 0; }
.dofe-pa-l2 > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dofe-pa-also { font-size: 11px; color: #646970; margin-top: 2px; }
.dofe-pill-s.is-bad { background: #fde8e8 !important; color: #9b1c1c !important; }
.dofe-pa-menu { position: relative; }
.dofe-pa-menu > summary { list-style: none; cursor: pointer; }
.dofe-pa-menu > summary::-webkit-details-marker { display: none; }
.dofe-events-fe.dofe-app .dofe-pa-acts .button { font-size: 12px !important; padding: 3px 9px !important; min-height: 0 !important; line-height: 1.5 !important; }
.dofe-pa-menu-list { position: absolute; right: 0; top: calc(100% + 4px); z-index: 50; background: #fff; border: 1px solid #e2e4e7; border-radius: 10px; box-shadow: 0 12px 30px rgba(30, 0, 60, .18); padding: 5px; min-width: 190px; display: flex; flex-direction: column; }
.dofe-pa-menu-list hr { border: 0; border-top: 1px solid #eee; margin: 4px 0; }
.dofe-events-fe.dofe-app .dofe-pa-menu-list button, .dofe-pa-menu-list button { display: block !important; width: 100% !important; text-align: left !important; background: none !important; border: 0 !important; box-shadow: none !important; border-radius: 7px !important; padding: 7px 10px !important; font: inherit; font-size: 13px !important; font-weight: 600 !important; color: #1d2327 !important; cursor: pointer; min-height: 0 !important; }
.dofe-pa-menu-list button:hover { background: #f6f2fd !important; }
.dofe-pa-menu-list button.is-danger { color: #b32d2e !important; }
.dofe-pa-card .dofe-modal-overlay { text-align: left; }
.dofe-events-fe.dofe-app .dofe-pa-menu-list button.is-danger, .dofe-pa-menu-list button.is-danger { color: #b32d2e !important; }
/* Cards: lift on hover; an open menu sits above the cards next to it. */
.dofe-pa-card { transition: box-shadow .15s ease, transform .15s ease, border-color .15s ease; }
.dofe-pa-card:hover { box-shadow: 0 6px 18px rgba(30, 0, 60, .10); border-color: #d9cdee; }
.dofe-pa-card:has(.dofe-pa-menu[open]) { z-index: 60; box-shadow: 0 6px 18px rgba(30, 0, 60, .12); }
/* Fade a deactivated card's text, not the whole card, so its menu isn't faded or tucked under the next card. */
.dofe-pa-card.is-off { opacity: 1; }
.dofe-pa-card.is-off .dofe-pa-l1 b, .dofe-pa-card.is-off .dofe-pa-l2 { opacity: .6; }
.dofe-events-fe.dofe-app .dofe-pa-acts .button { transition: box-shadow .15s ease, background-color .15s ease; }
.dofe-events-fe.dofe-app .dofe-pa-acts .button:hover, .dofe-pa-menu[open] > summary { box-shadow: 0 2px 8px rgba(30, 0, 60, .14) !important; }
.dofe-events-fe.dofe-app .dofe-pa-menu-list button { transition: background-color .12s ease, box-shadow .12s ease; }
.dofe-events-fe.dofe-app .dofe-pa-menu-list button:hover { background: #f6f2fd !important; box-shadow: 0 1px 4px rgba(30, 0, 60, .12) !important; }
.dofe-events-fe.dofe-app .dofe-pa-menu-list button.is-danger:hover { background: #fdf0f0 !important; }
/* Menu items stay inside the menu (the site's button widths were pushing them out). */
.dofe-events-fe.dofe-app .dofe-pa-menu-list button, .dofe-pa-menu-list button { box-sizing: border-box !important; max-width: 100% !important; min-width: 0 !important; margin: 0 !important; flex: none !important; }
.dofe-pa-menu-list { overflow: hidden; box-sizing: border-box; }

/* ---- Route cards: one line per card ---- */
.dofe-events-fe .rcr-team > .rcr-card-list, .dofe-events-fe .rcr-kind > .rcr-card-list, .dofe-events-fe .dsp-sum .rcr-card-list { padding: 0 !important; margin: 0; }
.dofe-events-fe.dofe-app .rcr-card-row.rcr-line, .rcr-card-row.rcr-line { display: grid !important; grid-template-columns: minmax(0, 1fr) auto 118px 104px auto; gap: 10px; align-items: center; padding: 8px 16px !important; border-top: 1px solid #f2f0f6; cursor: pointer; position: relative; transition: background-color .12s ease; flex-wrap: nowrap; }
.rcr-team.is-merging .rcr-card-row.rcr-line { grid-template-columns: 22px minmax(0, 1fr) auto 118px 104px auto; }
.rcr-card-row.rcr-line:hover, .rcr-card-row.rcr-line:focus-visible { background: #fbf9fe; }
.rcr-merge-tick { display: none !important; align-items: center; }
.rcr-team.is-merging .rcr-merge-tick { display: flex !important; }
.rcr-line-t { min-width: 0; }
.rcr-line-t b { display: block; font-size: 14px; color: var(--dofe-ink, #1d2327); }
.rcr-line-t > span { display: block; font-size: 12px; color: #646970; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rcr-sr { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.rcr-line-st { display: flex; gap: 4px; align-items: center; justify-self: start; }
.rcr-chipwrap { position: relative; min-width: 0; }
.rcr-chip { display: inline-block; font-size: 12px; color: #50575e; border: 1px solid #e2e4e7; border-radius: 999px; padding: 2px 9px; background: #fff; white-space: nowrap; cursor: pointer; list-style: none; text-align: center; width: 100%; box-sizing: border-box; }
.rcr-chip::-webkit-details-marker { display: none; }
.rcr-chip:hover { border-color: #c9b6ea; box-shadow: 0 1px 4px rgba(30, 0, 60, .1); }
.rcr-chip.is-low { border-color: #f0c27a; background: #fff8ec; color: #7a4a00; }
.rcr-chip.is-empty { cursor: default; color: #646970; background: #fafafc; }
.rcr-chip.is-empty:hover { box-shadow: none; border-color: #e2e4e7; }
.rcr-pop { position: relative; }
.rcr-pop > summary { list-style: none; }
.rcr-pop-panel { position: absolute; right: 0; top: calc(100% + 6px); z-index: 40; width: 260px; max-height: 320px; overflow: auto; background: #fff; border: 1px solid #e2e4e7; border-radius: 10px; box-shadow: 0 12px 30px rgba(30, 0, 60, .18); padding: 8px 10px; text-align: left; cursor: default; }
.rcr-hist-list { list-style: none; margin: 0; }
.rcr-hist-list li { font-size: 12px; padding: 5px 0 !important; border-top: 1px solid #eee; }
.rcr-hist-list li:first-child { border-top: 0; }
.rcr-menu { position: relative; }
.rcr-menu > summary { list-style: none; cursor: pointer; }
.rcr-menu > summary::-webkit-details-marker { display: none; }
.dofe-events-fe.dofe-app .rcr-menu > summary.button { font-size: 12px !important; padding: 3px 10px !important; min-height: 0 !important; line-height: 1.5 !important; transition: box-shadow .15s ease; }
.dofe-events-fe.dofe-app .rcr-menu > summary.button:hover, .rcr-menu[open] > summary { box-shadow: 0 2px 8px rgba(30, 0, 60, .14) !important; }
.rcr-menu-list { position: absolute; right: 0; top: calc(100% + 4px); z-index: 45; min-width: 200px; background: #fff; border: 1px solid #e2e4e7; border-radius: 10px; box-shadow: 0 12px 30px rgba(30, 0, 60, .18); padding: 5px; display: flex; flex-direction: column; overflow: hidden; box-sizing: border-box; }
.dofe-events-fe.dofe-app .rcr-menu-list a, .dofe-events-fe.dofe-app .rcr-menu-list button, .rcr-menu-list a, .rcr-menu-list button { display: block !important; width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; text-align: left !important; background: none !important; border: 0 !important; box-shadow: none !important; border-radius: 7px !important; padding: 7px 10px !important; margin: 0 !important; font: inherit; font-size: 13px !important; font-weight: 600 !important; color: #1d2327 !important; text-decoration: none !important; cursor: pointer; min-height: 0 !important; }
.rcr-menu-list a:hover, .rcr-menu-list button:hover { background: #f6f2fd !important; box-shadow: 0 1px 4px rgba(30, 0, 60, .12) !important; }
.rcr-card-row.rcr-line:has(.rcr-menu[open]), .rcr-card-row.rcr-line:has(.rcr-pop[open]) { z-index: 30; }
.rcr-team-tools { display: flex; gap: 8px; flex-wrap: wrap; }
.rcr-merge-toggle[aria-pressed="true"] { border-color: var(--dofe-accent, #7413dc) !important; color: var(--dofe-accent, #7413dc) !important; }
@media (max-width: 760px) {
  .dofe-events-fe.dofe-app .rcr-card-row.rcr-line, .rcr-card-row.rcr-line { grid-template-columns: minmax(0, 1fr) auto; row-gap: 6px; }
  .rcr-team.is-merging .rcr-card-row.rcr-line { grid-template-columns: 22px minmax(0, 1fr) auto; }
  .rcr-line-st { grid-column: 1 / -1; grid-row: 2; }
  .rcr-team.is-merging .rcr-line-st { grid-column: 2 / -1; }
  .rcr-chipwrap { grid-row: 3; }
  .rcr-chip { width: auto; }
  .rcr-menu { grid-row: 1; grid-column: -2 / -1; }
}

/* Split plan summary */
.dsp-sum .dsp-sum-sub { font-size: 12px; color: #646970; }
.dsp-sum-bar { align-items: center; }
.dsp-prog { flex: 1 1 120px; min-width: 100px; height: 6px; background: #e5dcf4; border-radius: 99px; overflow: hidden; }
.dsp-prog i { display: block; height: 100%; background: var(--dofe-accent, #7413dc); }
.dsp-sum.is-draft { background: #fffaf0; border-color: #f6dfb6; }
.dsp-setup { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 12px; font-weight: 700; }
.dsp-setup li.is-ok { color: #14532d; }
.dsp-setup li.is-ok::before { content: "\2713  "; }
.dsp-setup li.is-todo { color: #92400e; }
.dsp-setup li.is-todo::before { content: "\25CB  "; }
.dsp-sum-acts { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.dsp-sum-acts form { margin: 0; }
.dsp-sum-note { margin: 0; font-size: 12px; }
.dsp-combine { justify-content: space-between; border: 1px dashed #d9cdee; border-radius: 10px; padding: 8px 12px; background: #fff; }
.dsp-sum .rcr-card-list { background: #fff; border: 1px solid #eeeaf5; border-radius: 10px; overflow: visible; }
.dsp-sum .rcr-card-row.rcr-line:first-child { border-top: 0; }

/* 2.37.1: explicit grid areas so stray/hidden children can never shift or wrap the line */
.dofe-events-fe.dofe-app .rcr-card-row.rcr-line, .rcr-card-row.rcr-line { grid-template-columns: minmax(0, 1fr) auto 118px 104px auto !important; grid-template-areas: "t st as hi mn" !important; grid-auto-flow: row !important; }
.dofe-events-fe.dofe-app .rcr-team.is-merging .rcr-card-row.rcr-line, .rcr-team.is-merging .rcr-card-row.rcr-line { grid-template-columns: 22px minmax(0, 1fr) auto 118px 104px auto !important; grid-template-areas: "tk t st as hi mn" !important; }
.rcr-card-row.rcr-line > .rcr-line-t { grid-area: t !important; }
.rcr-card-row.rcr-line > .rcr-line-st { grid-area: st !important; }
.rcr-card-row.rcr-line > .rcr-chipwrap:not(.rcr-histwrap) { grid-area: as !important; }
.rcr-card-row.rcr-line > .rcr-histwrap { grid-area: hi !important; }
.rcr-card-row.rcr-line > .rcr-menu { grid-area: mn !important; justify-self: end; }
.rcr-card-row.rcr-line > .rcr-merge-tick { grid-area: tk !important; }
.dofe-events-fe.dofe-app .rcr-team:not(.is-merging) .rcr-merge-tick, .dofe-events-fe .rcr-merge-tick[hidden], .rcr-team:not(.is-merging) .rcr-merge-tick, .rcr-merge-tick[hidden] { display: none !important; }
.dofe-events-fe.dofe-app .rcr-team.is-merging .rcr-merge-tick:not([hidden]) { display: flex !important; align-items: center; margin: 0 !important; padding: 0 !important; width: auto !important; }
@media (max-width: 760px) {
  .dofe-events-fe.dofe-app .rcr-card-row.rcr-line, .rcr-card-row.rcr-line { grid-template-columns: minmax(0, 1fr) auto auto !important; grid-template-areas: "t t mn" "st st st" "as hi hi" !important; }
  .dofe-events-fe.dofe-app .rcr-team.is-merging .rcr-card-row.rcr-line, .rcr-team.is-merging .rcr-card-row.rcr-line { grid-template-columns: 22px minmax(0, 1fr) auto auto !important; grid-template-areas: "tk t t mn" ". st st st" ". as hi hi" !important; }
  .rcr-card-row.rcr-line > .rcr-histwrap { justify-self: start; }
}

/* 2.37.2: Route card Actions buttons match participant account Actions (shadow on hover / when open) */
.dofe-events-fe.dofe-app .rcr-card-row .rcr-menu > summary.button, .rcr-card-row .rcr-menu > summary.button { transition: box-shadow .15s ease, background-color .15s ease !important; }
.dofe-events-fe.dofe-app .rcr-card-row .rcr-menu > summary.button:hover, .dofe-events-fe.dofe-app .rcr-card-row .rcr-menu[open] > summary.button, .dofe-events-fe.dofe-app .rcr-card-row.rcr-line:hover .rcr-menu > summary.button, .rcr-card-row .rcr-menu > summary.button:hover, .rcr-card-row .rcr-menu[open] > summary.button { box-shadow: 0 2px 8px rgba(30, 0, 60, .14) !important; }
.dofe-events-fe.dofe-app .rcr-menu-list a, .dofe-events-fe.dofe-app .rcr-menu-list button { transition: background-color .12s ease, box-shadow .12s ease !important; }
.dofe-events-fe.dofe-app .rcr-menu-list a:hover, .dofe-events-fe.dofe-app .rcr-menu-list button:hover { background: #f6f2fd !important; box-shadow: 0 1px 4px rgba(30, 0, 60, .12) !important; }
