/* =====================================================================
   QuickFeis 2026 theme
   Loaded after Bootstrap 5. Restyles the layout and the legacy classes
   used across the content pages (quickfeisButton, post2, story, boxed...)
   so existing pages pick up the new look without markup changes.
   ===================================================================== */

/* The colour palette (the only colours the site uses) */
@import url("QuickFeisColors.css");

:root {
    --qf-header-h: 72px;   /* height of the sticky menu bar (used by frozen table headers) */
    /* Theme roles, all taken from the palette in QuickFeisColors.css */
    --qf-purple: var(--color-qf-800);       /* buttons, links, card borders */
    --qf-purple-dark: var(--color-qf-900);  /* hover, headings */
    --qf-purple-deep: var(--color-qf-900);  /* navbar, footer */
    --qf-purple-soft: var(--color-qf-600);  /* section title bars */
    --qf-purple-line: var(--color-qf-600);  /* borders, dividers */
    --qf-tint: #ffffff;                     /* panel / alternate-row background (was cream) */
    --qf-cream: var(--qf-tint);             /* highlight panels */
    --qf-accent: var(--color-qf-500);       /* gold accent */
    --qf-grey: var(--color-qf-300);         /* disabled */
    --qf-ink: var(--color-qf-900);          /* body text */
    --qf-muted: var(--color-qf-800);
    --qf-bg: #ffffff;
    --qf-surface: #ffffff;
    --qf-radius: 14px;
    --qf-radius-sm: 9px;
    --qf-shadow: 0 1px 2px rgba(63, 43, 77, .06), 0 6px 18px rgba(63, 43, 77, .08);

    /* Site font: Century Gothic, with look-alikes for devices that don't have it
       (Linux, Mac/iPhone without Office, Android) */
    --qf-font: "Century Gothic", CenturyGothic, "URW Gothic", "URW Gothic L", "TeX Gyre Adventor", Futura, "Didact Gothic", "Trebuchet MS", Arial, sans-serif;

    /* Bootstrap variable overrides */
    --bs-primary: var(--qf-purple);
    --bs-primary-rgb: 126, 86, 154;
    --bs-link-color: var(--qf-purple);
    --bs-link-color-rgb: 126, 86, 154;
    --bs-link-hover-color: var(--qf-purple-deep);
    --bs-link-hover-color-rgb: 63, 43, 77;
    --bs-body-font-family: var(--qf-font);
    --bs-body-color: var(--qf-ink);
    --bs-body-bg: var(--qf-bg);
}

body.qf-body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--qf-bg);
    font-size: .95rem;
}

body.qf-body > form {
    flex: 1 0 auto;
    display: flex;
    flex-direction: column;
}

h1, h2, h3, h4 { color: var(--qf-ink); font-weight: 700; }

a { text-decoration: none; }
a:hover { text-decoration: underline; }

/* ---------------------------------------------------------------------
   Font: make sure everything uses the site font
   --------------------------------------------------------------------- */
body, input, select, textarea, button, .btn, .navbar, .tooltip, .popover {
    font-family: var(--qf-font);
}

/* Some pages set fonts inline (Verdana, Arial, or 'Century Gothic' with no fallback).
   Normalise them to the site font. Intentional exceptions are kept:
   'Arial Narrow' (printed dancer card numbers) and Consolas (barcode page). */
[style*="font-family"]:not([style*="Arial Narrow"]):not([style*="Consolas"]),
font[face] {
    font-family: var(--qf-font) !important;
}

/* ---------------------------------------------------------------------
   Header / navbar
   --------------------------------------------------------------------- */
.qf-header {
    position: sticky;
    top: 0;
    z-index: 1030;
}

.qf-navbar {
    background: linear-gradient(100deg, var(--qf-purple-deep) 0%, var(--qf-purple-dark) 55%, var(--qf-purple) 100%);
    box-shadow: 0 2px 14px rgba(63, 43, 77, .25);
    padding-top: .45rem;
    padding-bottom: .45rem;
}

.qf-brand { padding: 0; margin-right: 1.25rem; }

.qf-logo {
    display: block;
    height: 56px;
    width: auto;
    background: #fff;
    border-radius: 10px;
    padding: 3px 6px;
}

.qf-nav .nav-link,
.qf-account .qf-account-link {
    color: rgba(255, 255, 255, .88);
    font-weight: 600;
    font-size: .92rem;
    padding: .5rem .75rem;
    border-radius: 8px;
    white-space: nowrap;
}

.qf-nav .nav-link:hover,
.qf-nav .nav-link:focus,
.qf-account .qf-account-link:hover,
.qf-account .qf-account-link:focus {
    color: #fff;
    background: rgba(255, 255, 255, .12);
    text-decoration: none;
}

/* Role menus (admin, teacher, judge...) get a subtle gold marker */
.qf-nav .qf-role .nav-link::before {
    content: "";
    display: inline-block;
    width: 6px;
    height: 6px;
    margin-right: 6px;
    border-radius: 50%;
    background: var(--qf-accent);
    vertical-align: middle;
}

.qf-account {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    padding: .5rem 0;
}

.qf-account-btn {
    font-weight: 600;
    border-radius: 999px;
    padding: .35rem .95rem;
}

/* "Create NEW Account": gold call-to-action */
.qf-account-primary {
    color: var(--qf-ink) !important;
    background: var(--qf-accent) !important;
    border-color: var(--qf-accent) !important;
}

/* Logged-in account links (Manage Your Account, Log off) look like the other menu items */
.qf-account .qf-account-link { display: inline-block; }
.qf-account:has(.qf-account-link) { gap: 0; }

/* Full-size menu: keep everything on the bar and lined up */
@media (min-width: 1200px) {
    /* Many role menus (admin, teacher, judge...) wrap onto a second row instead of running off screen */
    .qf-nav { flex-wrap: wrap; row-gap: .15rem; }

    /* Account links stay side by side, vertically centred, at the right of the bar */
    .qf-account {
        flex-wrap: nowrap;
        flex-shrink: 0;
        align-items: center;
        align-self: center;
        padding: 0;
        margin-left: .75rem;
    }

    /* Same spacing for every menu item (Bootstrap sets menu padding through this variable) */
    .qf-navbar { --bs-navbar-nav-link-padding-x: .6rem; }
    .qf-account .qf-account-link { padding: .5rem .6rem; }
}

@media (max-width: 1199.98px) {
    .qf-nav { padding-top: .5rem; }
    .qf-account { border-top: 1px solid rgba(255, 255, 255, .15); margin-top: .5rem; padding-top: .85rem; }
}

/* ---------------------------------------------------------------------
   Page layout
   --------------------------------------------------------------------- */
.qf-main {
    flex: 1 0 auto;
    padding: 1.5rem 0 2.5rem;
}

.qf-content {
    min-width: 0;
    /* Older pages contain fixed-width tables; let them scroll instead of breaking the layout */
    overflow-x: auto;
}

.qf-content img { max-width: 100%; }

/* ---------------------------------------------------------------------
   Footer
   --------------------------------------------------------------------- */
.qf-footer {
    background: var(--qf-purple-deep);
    color: rgba(255, 255, 255, .75);
    font-size: .85rem;
    padding: 1.25rem 0;
    margin-top: auto;
}

.qf-footer-inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: .5rem 1.5rem;
}

.qf-footer a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }

/* =====================================================================
   Legacy classes used by content pages
   ===================================================================== */

/* Page panels: <div class="post2"><h2 class="title">..</h2><div class="story">..</div></div> */
.post, .post2, .boxed {
    width: auto !important;
    max-width: 100%;
    background: var(--qf-surface);
    border: 1px solid var(--qf-purple-line);
    border-radius: var(--qf-radius);
    box-shadow: var(--qf-shadow);
    margin-bottom: 1.5rem;
    overflow: hidden;
}

.post .title, .post2 .title, .boxed .title {
    width: auto !important;
    margin: 0;
    padding: .9rem 1.25rem;
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--qf-purple-dark);
    background: var(--qf-purple-soft);
    border-bottom: 1px solid var(--qf-purple-line);
}

.post .story, .post2 .story, .boxed .content {
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 1.25rem;
    background: none;
    overflow-x: auto;
}

/* Boxes nested inside boxes should not double up borders */
.boxed .boxed { border: 0; box-shadow: none; border-radius: 0; margin-bottom: 0; }

.post .meta p, .post2 .meta p {
    margin: 0;
    padding: .75rem 1.25rem;
    border-top: 1px solid var(--qf-purple-line);
    font-size: .8rem;
    color: var(--qf-muted);
}

/* Right-hand column used on the home page */
#sideRightContent {
    float: right;
    width: 300px;
    margin-left: 1.5rem;
}

/* On narrower screens, stack the side column BELOW the main content.
   It comes first in the page markup, so flex "order" moves it to the end. */
@media (max-width: 991.98px) {
    .qf-content:has(> #sideRightContent) {
        display: flex;
        flex-direction: column;
    }
    .qf-content > * { order: 0; }
    #sideRightContent {
        float: none;
        width: auto;
        margin-left: 0;
        order: 99;
    }


    /* Sections marked qf-hide-small (home page: Account Information,
       Feis Registration) are hidden on small screens */
    .qf-hide-small {
        display: none !important;
    }

}

/* Home page feis, Oireachtas and cancelled-feis cards (fixed at 640px in the markup)
   stretch to fill all the space available, on every screen size */
.qf-content table[style*="border: 5px solid"][style*="width: 640px"] {
    width: 100% !important;
    /* breathing room inside the card border (tables need "separate" for padding to apply) */
    border-collapse: separate;
    border-spacing: 0;
    padding: 1rem 1.25rem;
    margin-bottom: .5rem;
    border-radius: var(--qf-radius);
}

/* The two buttons in each feis card (Register / Show-Hide Details):
   same width and height, stacked and aligned, even spacing instead of <br> */
.qf-content table[style*="border: 5px solid"][style*="width: 640px"] td:has(> .quickfeisButton) {
    vertical-align: top;
}
.qf-content table[style*="border: 5px solid"][style*="width: 640px"] td:has(> .quickfeisButton) > br {
    display: none;
}
.qf-content table[style*="border: 5px solid"][style*="width: 640px"] td:has(> .quickfeisButton) > .quickfeisButton {
    display: block;
    width: 100% !important;
    height: 52px !important;
    margin: 0 0 .6rem;
    padding: .3rem .6rem;
    font-size: .88rem !important;
    line-height: 1.15;
    white-space: normal;
}
.qf-content table[style*="border: 5px solid"][style*="width: 640px"] td:has(> .quickfeisButton) > .quickfeisButton:last-of-type {
    margin-bottom: 0;
}

@media (max-width: 767.98px) {
    .qf-content table[style*="border: 5px solid"][style*="width: 640px"] {
        padding: .75rem;
    }
    /* Top row (logo / name / buttons): fixed widths released so the buttons fit inside the padding */
    .qf-content table[style*="border: 5px solid"][style*="width: 640px"] > tbody > tr:first-child > td {
        width: auto !important;
    }
    /* Phone layout of the card's top row: logo + name/dates on top,
       the two buttons underneath (below the registration close date), side by side */
    .qf-content table[style*="border: 5px solid"][style*="width: 640px"],
    .qf-content table[style*="border: 5px solid"][style*="width: 640px"] > tbody {
        display: block;
    }
    .qf-content table[style*="border: 5px solid"][style*="width: 640px"] > tbody > tr:not(:first-child):not([id*="trBody"]) {
        display: table;
        width: 100%;
    }
    .qf-content table[style*="border: 5px solid"][style*="width: 640px"] > tbody > tr:first-child {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        column-gap: .75rem;
        align-items: start;
    }
    .qf-content table[style*="border: 5px solid"][style*="width: 640px"] > tbody > tr:first-child > td {
        display: block;
        min-width: 0;
    }
    .qf-content table[style*="border: 5px solid"][style*="width: 640px"] > tbody > tr:first-child > td:has(> .quickfeisButton) {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .5rem;
        margin-top: .75rem;
    }
    .qf-content table[style*="border: 5px solid"][style*="width: 640px"] > tbody > tr:first-child > td:has(> .quickfeisButton) > .quickfeisButton {
        margin: 0;
        /* smaller buttons on phones */
        height: 38px !important;
        padding: .2rem .5rem;
        font-size: .74rem !important;
        line-height: 1.1;
        letter-spacing: .01em;
        box-shadow: 0 1px 4px rgba(63, 43, 77, .2);
    }
}

/* Home page feis / Oireachtas cards: the details row
   (Feis Venue + Online Registration | Links and Attachments | Registration Caps + Paid Registration).
   The card table is a server control, so ASP.NET renders the row id as e.g.
   "ContentPlaceHolderBody_ListViewActiveFeis_trBody_0" - hence id*="trBody".
   The details row is released from the card's table grid (which it shares with the
   logo / name / buttons row) so it can be laid out on its own. */
.qf-content table:has(> tbody > tr[id*="trBody"]),
.qf-content table:has(> tbody > tr[id*="trBody"]) > tbody {
    display: block;
}
.qf-content table:has(> tbody > tr[id*="trBody"]) > tbody > tr:not([id*="trBody"]) {
    display: table;
    width: 100%;
}

/* Desktop and tablet: three equal-width columns */
.qf-content tr[id*="trBody"] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 1rem;
}
.qf-content tr[id*="trBody"] > td {
    display: block;
    width: auto !important;
    min-width: 0;
}

/* Links and Attachments: coloured link buttons - phones only (desktop keeps plain links) */
@media (max-width: 767.98px) {
    .qf-content tr[id*="trBody"] > td:nth-child(2) a[href] {
        display: block;
        position: relative;
        background: var(--color-qf-600);
        border: 1px solid var(--color-qf-600);
        border-left: 4px solid var(--qf-purple);
        border-radius: 8px;
        padding: .45rem 1.6rem .45rem .7rem;
        margin: .3rem 0;
        color: var(--qf-ink) !important;
        font-weight: 700;
        text-decoration: none;
        transition: background-color .15s ease, color .15s ease;
    }
    .qf-content tr[id*="trBody"] > td:nth-child(2) a[href]::after {
        content: "\203A";
        position: absolute;
        right: .65rem;
        top: 50%;
        transform: translateY(-50%);
        font-size: 1.2rem;
        color: var(--qf-purple);
    }
    .qf-content tr[id*="trBody"] > td:nth-child(2) a[href]:hover,
    .qf-content tr[id*="trBody"] > td:nth-child(2) a[href]:focus,
    .qf-content tr[id*="trBody"] > td:nth-child(2) a[href]:active {
        background: var(--qf-purple);
        border-color: var(--qf-purple);
        color: #ffffff !important;
        text-decoration: none;
    }
    .qf-content tr[id*="trBody"] > td:nth-child(2) a[href]:hover::after,
    .qf-content tr[id*="trBody"] > td:nth-child(2) a[href]:focus::after,
    .qf-content tr[id*="trBody"] > td:nth-child(2) a[href]:active::after {
        color: #ffffff;
    }
    .qf-content tr[id*="trBody"] > td:nth-child(2) a[href] span { color: inherit !important; }
}

/* Phones: one column, in order Venue -> Online Registration -> Links -> Caps -> Paid,
   styled as light panels with full-width rows and tappable links */
@media (max-width: 767.98px) {
    .qf-content tr[id*="trBody"] {
        display: block;
        padding-top: .25rem;
    }

    /* Each column becomes a light panel */
    .qf-content tr[id*="trBody"] > td {
        background: #ffffff;
        border: 1px solid var(--qf-purple-line);
        border-radius: 10px;
        padding: .85rem 1rem;
        margin-bottom: .65rem;
    }

    /* Section titles (FEIS VENUE, ONLINE REGISTRATION, LINKS AND ATTACHMENTS,
       REGISTRATION CAPS, PAID REGISTRATION) become small purple headings */
    .qf-content tr[id*="trBody"] > td span[style*="text-decoration:underline"] {
        display: block;
        font-size: .74rem !important;
        font-weight: 800 !important;
        letter-spacing: .08em;
        text-transform: uppercase;
        text-decoration: none !important;
        color: var(--qf-purple);
        margin-bottom: .4rem;
    }
    .qf-content tr[id*="trBody"] > td span[style*="text-decoration:underline"]:not(:first-child) {
        margin-top: 1.1rem;
        padding-top: .9rem;
        border-top: 1px solid var(--qf-purple-line);
    }
    /* Line breaks around the headings are replaced by the spacing above */
    .qf-content tr[id*="trBody"] > td span[style*="text-decoration:underline"] + br,
    .qf-content tr[id*="trBody"] > td br:has(+ span[style*="text-decoration:underline"]),
    .qf-content tr[id*="trBody"] > td br:has(+ br + span[style*="text-decoration:underline"]) {
        display: none;
    }

    /* Label / value tables (Opens / Late / Close, Grades / PC / OC / Other / Total)
       span the full width with the values on the right */
    .qf-content tr[id*="trBody"] > td table {
        width: 100% !important;
        border-collapse: collapse;
    }
    .qf-content tr[id*="trBody"] > td table td {
        padding: .3rem 0;
    }
    .qf-content tr[id*="trBody"] > td table tr > td:last-child:not(:first-child) {
        text-align: right;
        font-weight: 700;
    }
    .qf-content tr[id*="trBody"] > td table tr + tr > td:not([colspan]) {
        border-top: 1px dashed var(--qf-purple-line);
    }

    /* Paid Registration (Grades / PC / OC / Other / Total): transposed into one
       compact row of tiles - label on top, number underneath */
    .qf-content tr[id*="trBody"] > td:nth-child(3) table:has(table[width="150"]) > tbody > tr > td {
        padding: 0 !important;
    }
    .qf-content tr[id*="trBody"] > td:nth-child(3) table[width="150"] > tbody {
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: .35rem;
    }
    .qf-content tr[id*="trBody"] > td:nth-child(3) table[width="150"] > tbody > tr {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        background: #ffffff;
        border: 1px solid var(--qf-purple-line);
        border-radius: 8px;
        padding: .4rem .15rem;
    }
    .qf-content tr[id*="trBody"] > td:nth-child(3) table[width="150"] > tbody > tr > td {
        display: block;
        padding: 0 !important;
        border: 0 !important;
        text-align: center !important;
    }
    .qf-content tr[id*="trBody"] > td:nth-child(3) table[width="150"] > tbody > tr > td:first-child b {
        font-size: .66rem;
        letter-spacing: .05em;
        color: var(--qf-muted);
    }
    .qf-content tr[id*="trBody"] > td:nth-child(3) table[width="150"] > tbody > tr > td:last-child:not(:first-child) {
        font-size: 1.05rem;
        line-height: 1.2;
    }
    /* the divider line row is not needed */
    .qf-content tr[id*="trBody"] > td:nth-child(3) table[width="150"] > tbody > tr:has(> td[colspan]) {
        display: none;
    }
    /* TOTAL tile stands out */
    .qf-content tr[id*="trBody"] > td:nth-child(3) table[width="150"] > tbody > tr:last-child {
        background: var(--qf-purple);
        border-color: var(--qf-purple);
    }
    .qf-content tr[id*="trBody"] > td:nth-child(3) table[width="150"] > tbody > tr:last-child td,
    .qf-content tr[id*="trBody"] > td:nth-child(3) table[width="150"] > tbody > tr:last-child b {
        color: #ffffff !important;
    }

    /* Venue address: a clear "open in Maps" card */
    .qf-content tr[id*="trBody"] > td:first-child a[href] {
        display: block;
        background: #fff;
        border: 1px solid var(--qf-purple-line);
        border-radius: 8px;
        padding: .6rem .8rem;
        color: var(--qf-ink);
        text-decoration: none;
    }
    .qf-content tr[id*="trBody"] > td:first-child a[href]::after {
        content: "Open in Maps \203A";
        display: block;
        margin-top: .35rem;
        color: var(--qf-purple);
        font-weight: 700;
    }

    /* Links and attachments: full-width tappable buttons */
    .qf-content tr[id*="trBody"] > td:nth-child(2) a[href] {
        display: block;
        position: relative;
        padding: .7rem 2rem .7rem .9rem;
        margin: .3rem 0;
    }
    .qf-content tr[id*="trBody"] > td:nth-child(2) a[href]::after {
        content: "\203A";
        position: absolute;
        right: .9rem;
        top: 50%;
        transform: translateY(-50%);
        font-size: 1.3rem;
        color: var(--qf-purple);
    }

    .qf-content tr[id*="trBody"] > td:nth-child(2) table,
    .qf-content tr[id*="trBody"] > td:nth-child(2) table td {
        border: 0 !important;
        padding: 0;
    }

    /* Two link buttons per row: the link list (nested tables, one link per row)
       is laid out as a 2-column grid */
    .qf-content tr[id*="trBody"] > td:nth-child(2) table,
    .qf-content tr[id*="trBody"] > td:nth-child(2) tbody,
    .qf-content tr[id*="trBody"] > td:nth-child(2) tr,
    .qf-content tr[id*="trBody"] > td:nth-child(2) td {
        display: block;
        width: 100% !important;
    }
    .qf-content tr[id*="trBody"] > td:nth-child(2) tbody:has(> tr > td > a[href]) {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .5rem;
        margin-top: .3rem;
    }
    .qf-content tr[id*="trBody"] > td:nth-child(2) tbody:has(> tr > td > a[href]) > tr,
    .qf-content tr[id*="trBody"] > td:nth-child(2) tbody:has(> tr > td > a[href]) > tr > td {
        display: flex;
        padding: 0 !important;
        border: 0 !important;
        margin: 0;
    }
    .qf-content tr[id*="trBody"] > td:nth-child(2) tbody:has(> tr > td > a[href]) > tr > td {
        flex: 1;
    }
    .qf-content tr[id*="trBody"] > td:nth-child(2) tbody:has(> tr > td > a[href]) a[href] {
        display: flex;
        align-items: center;
        flex: 1;
        margin: 0;
        padding: .65rem 1.6rem .65rem .75rem;
        font-size: .88rem;
        line-height: 1.25;
        overflow-wrap: anywhere;
    }
    .qf-content tr[id*="trBody"] > td:nth-child(2) tbody:has(> tr > td > a[href]) a[href]::after {
        right: .6rem;
    }
    /* Empty placeholder rows take no space */
    .qf-content tr[id*="trBody"] > td:nth-child(2) tbody:has(> tr > td > a[href]) > tr:not(:has(a[href])) {
        display: none;
    }
}

/* Home page "Upcoming Feis": the cards (fixed at 250px in the markup) and the
   layout tables around them fit the column on every screen size - no scroll bar */
.qf-future-feis table {
    width: 100% !important;
    border-collapse: collapse;
    border-spacing: 0;
}
.qf-future-feis table[style*="border"] {
    margin: 0 0 .5rem !important;
    border-collapse: separate;
    border-radius: 8px;
}
.qf-future-feis table[style*="border"] td {
    padding: .15rem .4rem;
}
.qf-future-feis > .content {
    padding: .9rem;
    overflow-x: visible;
}

/* Home page feis cards: the "Online Registration Closes" date never splits across lines
   (dates like 15-Dec-2026 would otherwise break at the hyphens). If there is no room
   beside the label, the whole date moves to the next line. */
.qf-content [id*="OnlineRegistrationCloseDateLabel"],
.qf-content [id*="_Label29_"],
.qf-content [id$="_Label29"] {
    white-space: nowrap;
}

/* Feis cards with details hidden: the links (one horizontal row of cells) become
   two-per-row link buttons on phones, matching the details view */
@media (max-width: 767.98px) {
    .qf-content table[style*="border: 5px solid"][style*="width: 640px"] table:has(> tbody > tr[id*="itemPlaceholderContainer"] > td > a[href]),
    .qf-content table[style*="border: 5px solid"][style*="width: 640px"] table:has(> tbody > tr[id*="itemPlaceholderContainer"] > td > a[href]) > tbody {
        display: block;
        width: 100% !important;
    }
    .qf-content table[style*="border: 5px solid"][style*="width: 640px"] tr[id*="itemPlaceholderContainer"]:has(> td > a[href]) {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .5rem;
        margin-top: .5rem;
    }
    .qf-content table[style*="border: 5px solid"][style*="width: 640px"] tr[id*="itemPlaceholderContainer"]:has(> td > a[href]) > td {
        display: flex;
        padding: 0 !important;
        border: 0 !important;
    }
    .qf-content table[style*="border: 5px solid"][style*="width: 640px"] tr[id*="itemPlaceholderContainer"]:has(> td > a[href]) > td:not(:has(a[href])) {
        display: none;
    }
    .qf-content table[style*="border: 5px solid"][style*="width: 640px"] tr[id*="itemPlaceholderContainer"]:has(> td > a[href]) > td > a[href] {
        display: flex;
        align-items: center;
        flex: 1;
        position: relative;
        background: var(--color-qf-600);
        border: 1px solid var(--color-qf-600);
        border-left: 4px solid var(--qf-purple);
        border-radius: 8px;
        padding: .65rem 1.6rem .65rem .75rem;
        color: var(--qf-ink) !important;
        font-weight: 700;
        font-size: .88rem;
        line-height: 1.25;
        text-decoration: none;
        overflow-wrap: anywhere;
    }
    .qf-content table[style*="border: 5px solid"][style*="width: 640px"] tr[id*="itemPlaceholderContainer"]:has(> td > a[href]) > td > a[href] span { color: inherit !important; }
    .qf-content table[style*="border: 5px solid"][style*="width: 640px"] tr[id*="itemPlaceholderContainer"]:has(> td > a[href]) > td > a[href]::after {
        content: "\203A";
        position: absolute;
        right: .6rem;
        top: 50%;
        transform: translateY(-50%);
        font-size: 1.2rem;
        color: var(--qf-purple);
    }
    .qf-content table[style*="border: 5px solid"][style*="width: 640px"] tr[id*="itemPlaceholderContainer"]:has(> td > a[href]) > td > a[href]:hover,
    .qf-content table[style*="border: 5px solid"][style*="width: 640px"] tr[id*="itemPlaceholderContainer"]:has(> td > a[href]) > td > a[href]:focus,
    .qf-content table[style*="border: 5px solid"][style*="width: 640px"] tr[id*="itemPlaceholderContainer"]:has(> td > a[href]) > td > a[href]:active {
        background: var(--qf-purple);
        border-color: var(--qf-purple);
        color: #ffffff !important;
    }
    .qf-content table[style*="border: 5px solid"][style*="width: 640px"] tr[id*="itemPlaceholderContainer"]:has(> td > a[href]) > td > a[href]:hover::after,
    .qf-content table[style*="border: 5px solid"][style*="width: 640px"] tr[id*="itemPlaceholderContainer"]:has(> td > a[href]) > td > a[href]:focus::after,
    .qf-content table[style*="border: 5px solid"][style*="width: 640px"] tr[id*="itemPlaceholderContainer"]:has(> td > a[href]) > td > a[href]:active::after {
        color: #ffffff;
    }
}

/* Home page side column: the outer wrapper card is invisible, so each section inside it
   (Open Registrations, Account Information, Feis Registration) is its own card -
   on every screen size */
#sideRightContent > .boxed:not(.qf-future-feis) {
    background: none;
    border: 0;
    box-shadow: none;
    border-radius: 0;
    margin-bottom: 0;
    overflow: visible;
}
#sideRightContent > .boxed > .boxed {
    background: var(--qf-surface);
    border: 1px solid var(--qf-purple-line);
    border-radius: var(--qf-radius);
    box-shadow: var(--qf-shadow);
    margin-bottom: 1.5rem;
    overflow: hidden;
}

/* Feis / Oireachtas messages (default and details view): smaller text on phones.
   The messages come from the database with their own formatting, so inner sizes are overridden too. */
@media (max-width: 767.98px) {
    .qf-content [id*="ListViewActiveFeis_MessageFromFeis_"],
    .qf-content [id*="ListViewActiveFeis_Label30_"],
    .qf-content [id*="ListViewActiveFeis_Label48_"],
    .qf-content [id*="ListViewActiveOireachtas_MessageFromFeis_"],
    .qf-content [id*="ListViewActiveOireachtas_Label30_"],
    .qf-content [id*="ListViewActiveOireachtas_Label48_"] {
        display: block;
        font-size: .9rem !important;
        line-height: 1.4;
        margin: .6rem .35rem .2rem;
    }
    .qf-content [id*="ListViewActiveFeis_MessageFromFeis_"] *,
    .qf-content [id*="ListViewActiveFeis_Label30_"] *,
    .qf-content [id*="ListViewActiveFeis_Label48_"] *,
    .qf-content [id*="ListViewActiveOireachtas_MessageFromFeis_"] *,
    .qf-content [id*="ListViewActiveOireachtas_Label30_"] *,
    .qf-content [id*="ListViewActiveOireachtas_Label48_"] * {
        font-size: inherit !important;
        line-height: inherit !important;
    }
}

/* Home page Account Information: "Your account is already updated to TEACHER..." notice
   shown as a rounded callout box with padding */
#sideRightContent span[id$="_Label1"][style*="#CC3300" i] {
    display: block;
    width: auto !important;
    max-width: 100%;
    margin: .5rem 0;
    padding: .65rem .85rem !important;
    border-radius: 10px !important;
    line-height: 1.35;
}

/* Home page Feis Registration: "Click the Feis button below to: REGISTER ..." instruction box,
   rounded with padding (same treatment as the TEACHER notice) */
#sideRightContent div[style*="background-color: #F7F6F3" i] {
    border: 0 !important;
    border-radius: 10px;
    padding: .65rem .85rem;
    margin: .25rem 0 .75rem;
    line-height: 1.35;
}
#sideRightContent div[style*="background-color: #F7F6F3" i] > span {
    display: block;
    width: auto !important;
}
#sideRightContent div[style*="background-color: #F7F6F3" i] > br {
    display: none;
}

/* Feis / Oireachtas name in the home page cards: larger on tablet and desktop */
@media (min-width: 768px) {
    .qf-content [id*="ListViewActiveFeis_FeisNameLabel_"],
    .qf-content [id*="ListViewActiveFeis_Label20_"],
    .qf-content [id*="ListViewActiveOireachtas_FeisNameLabel_"],
    .qf-content [id*="ListViewActiveOireachtas_Label31_"] {
        font-size: 1.5rem !important;
        line-height: 1.2;
        color: var(--qf-ink);
    }
}

/* Large sub-menu used on role home pages */
#submenu { float: none; width: auto; height: auto; font-size: 1.1rem; }
#submenu ul { list-style: none; margin: 0; padding: 0; width: auto; height: auto; display: grid; gap: .6rem; }
#submenu a {
    display: block;
    height: auto;
    margin: 0;
    padding: .85rem 1.1rem;
    background: var(--qf-surface);
    border: 1px solid var(--qf-purple-line);
    border-radius: var(--qf-radius-sm);
    color: var(--qf-purple-dark);
    font-weight: 700;
}
#submenu a:hover { background: var(--qf-purple); color: #fff; text-decoration: none; }

/* The site's main button style (used on ~95 buttons) */
.quickfeisButton,
a.quickfeisButton,
input.quickfeisButton {
    -webkit-appearance: none;
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    padding: .55rem 1.1rem;
    background: var(--qf-purple);
    color: #fff !important;
    border: 0;
    border-radius: 999px;
    font-weight: 700;
    font-size: .9rem;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
    white-space: normal;
    box-shadow: 0 2px 6px rgba(63, 43, 77, .25);
    cursor: pointer;
    transition: background-color .15s ease, transform .1s ease, box-shadow .15s ease;
}

.quickfeisButton:hover,
.quickfeisButton:focus {
    background: var(--qf-purple-dark);
    text-decoration: none;
    box-shadow: 0 4px 12px rgba(63, 43, 77, .3);
}

.quickfeisButton:active { transform: translateY(1px); }

.quickfeisButton:focus-visible { outline: 3px solid var(--qf-accent); outline-offset: 2px; }

.quickfeisButton:disabled,
.quickfeisButton[disabled],
.quickfeisButton.aspNetDisabled {
    background: var(--qf-grey);
    color: var(--qf-ink) !important;
    box-shadow: none;
    cursor: not-allowed;
}

/* Image buttons that carry the button class (e.g. QuickBucks) */
input[type="image"].quickfeisButton {
    padding: 0;
    background: none;
    box-shadow: var(--qf-shadow);
    border-radius: var(--qf-radius-sm);
    height: auto !important;
}

/* ---------------------------------------------------------------------
   Forms and tables inside content
   --------------------------------------------------------------------- */
.qf-content input[type="text"],
.qf-content input[type="password"],
.qf-content input[type="email"],
.qf-content input[type="tel"],
.qf-content input[type="number"],
.qf-content input[type="date"],
.qf-content select,
.qf-content textarea {
    border: 1px solid var(--color-qf-700);
    border-radius: 8px;
    padding: .35rem .6rem;
    background: #fff;
    max-width: 100%;
}

.qf-content input:focus,
.qf-content select:focus,
.qf-content textarea:focus {
    outline: none;
    border-color: var(--qf-purple);
    box-shadow: 0 0 0 .2rem rgba(126, 86, 154, .25);
}

.qf-content input[type="checkbox"],
.qf-content input[type="radio"] { accent-color: var(--qf-purple); }

/* GridView / DetailsView output: tables with rules="all" or border="1" */
.qf-content table[rules],
.qf-content table[border="1"] {
    background: #fff;
    border-color: var(--qf-purple-line) !important;
}

.qf-content table[rules] th,
.qf-content table[border="1"] th {
    padding: .5rem .65rem;
    background: var(--qf-purple-soft);
    color: var(--qf-purple-dark);
    font-weight: 700;
    font-size: .85rem;
}

.qf-content table[rules] td,
.qf-content table[border="1"] td { padding: .4rem .65rem; }

/* ---------------------------------------------------------------------
   Bootstrap's built-in accent colours mapped to the palette
   --------------------------------------------------------------------- */
.form-control:focus, .form-select:focus, .btn:focus-visible {
    border-color: var(--qf-purple);
    box-shadow: 0 0 0 .2rem rgba(126, 86, 154, .25);
}
.form-check-input:checked { background-color: var(--qf-purple); border-color: var(--qf-purple); }
.text-success, .text-info, .text-primary { color: var(--qf-purple) !important; }
.text-muted, .text-secondary { color: var(--qf-muted) !important; }
.btn-primary { background: var(--qf-purple); border-color: var(--qf-purple); }
.btn-primary:hover, .btn-primary:focus { background: var(--qf-purple-dark); border-color: var(--qf-purple-dark); }
.alert { border-color: var(--qf-purple-line); background: var(--qf-cream); color: var(--qf-ink); }
hr { color: var(--qf-grey); opacity: 1; }

/* ---------------------------------------------------------------------
   Account pages (Log in, and later Register / Forgot password):
   a centred card; labels sit directly above their text boxes, sharing the
   same left edge, and every text box is the same full width
   --------------------------------------------------------------------- */
.qf-auth {
    display: flex;
    justify-content: center;
    padding: 1.5rem 0 2rem;
}
.qf-auth-card {
    width: 100%;
    max-width: 440px;
    background: var(--qf-surface);
    border: 1px solid var(--qf-purple-line);
    border-top: 5px solid var(--qf-purple);
    border-radius: var(--qf-radius);
    box-shadow: var(--qf-shadow);
    padding: 1.75rem 1.75rem 1.5rem;
}
.qf-auth-header { margin-bottom: 1.25rem; }
.qf-auth-title {
    font-size: 1.6rem;
    font-weight: 800;
    color: var(--qf-ink);
    margin: 0 0 .35rem;
}
.qf-auth-subtitle {
    margin: 0;
    color: var(--qf-muted);
    font-size: .95rem;
    line-height: 1.4;
}
.qf-auth-field {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    margin-bottom: 1rem;
}
.qf-auth-label {
    display: block;
    margin: 0 0 .35rem;
    padding: 0;
    font-weight: 700;
    font-size: .9rem;
    color: var(--qf-ink);
    text-align: left;
}
.qf-content .qf-auth-input,
.qf-auth-input {
    display: block;
    width: 100% !important;
    max-width: none;
    margin: 0;
    padding: .65rem .8rem;
    font-size: 1rem;
    border: 1px solid var(--color-qf-700);
    border-radius: 10px;
}
.qf-auth-error {
    display: block;
    margin-top: .35rem;
    font-size: .85rem;
    font-weight: 600;
    color: var(--qf-ink);
    background: var(--qf-accent);
    border-radius: 6px;
    padding: .2rem .5rem;
}
.qf-auth-alert {
    margin-bottom: 1rem;
    padding: .7rem .9rem;
    border-radius: 10px;
    background: var(--qf-accent);
    color: var(--qf-ink);
    font-weight: 700;
}
.qf-auth-success {
    margin-bottom: .5rem;
    padding: .85rem 1rem;
    border-radius: 10px;
    background: var(--color-qf-600);
    border-left: 4px solid var(--qf-purple);
    color: var(--qf-ink);
    line-height: 1.45;
}
.qf-auth-submit + .qf-auth-links,
.qf-auth-links { margin-top: 1rem; }
.qf-auth-check {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: .25rem 0 1.25rem;
}
.qf-auth-check input[type="checkbox"] {
    width: 1.1rem;
    height: 1.1rem;
    margin: 0;
}
.qf-auth-check label { margin: 0; font-weight: 500; }
.qf-content .qf-auth-submit,
.qf-auth-submit {
    display: block;
    width: 100% !important;
    height: auto !important;
    padding: .8rem 1rem;
    font-size: 1rem !important;
}
.qf-auth-links {
    margin-top: 1rem;
    text-align: center;
    font-size: .92rem;
}
.qf-auth-links a { font-weight: 600; }
/* Register page: wider card, CLRG question panel, stacked fields */
.qf-auth-card.qf-auth-wide { max-width: 620px; }
.qf-auth-alert-optional:empty { display: none; }
/* validation summary (server / model errors) shown as the gold alert, only when it has errors */
.qf-auth-summary {
    margin-bottom: 1rem;
    padding: .7rem .9rem;
    border-radius: 10px;
    background: var(--qf-accent);
    color: var(--qf-ink) !important;
    font-weight: 700;
}
.qf-auth-summary:empty { display: none; }
.qf-auth-summary ul { margin: 0; padding-left: 1.1rem; }
.qf-auth-hint {
    display: block;
    margin: .25rem 0 1rem;
    color: var(--qf-muted);
    font-size: .88rem;
    line-height: 1.4;
}
.qf-auth-note {
    border: 1px solid var(--qf-purple-line);
    margin-bottom: 1.25rem;
    padding: .75rem .9rem;
    border-radius: 10px;
    background: var(--qf-tint);
    border-left: 4px solid var(--qf-accent);
    color: var(--qf-ink);
    font-size: .9rem;
    font-weight: 600;
    line-height: 1.4;
}
.qf-account-type {
    margin-bottom: 1.5rem;
    padding: 1rem 1.1rem;
    border-radius: 12px;
    background: var(--color-qf-600);
    border: 1px solid var(--color-qf-700);
    color: var(--qf-ink);
}
.qf-account-type-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem 1rem;
}
.qf-account-type-title { display: block; font-size: 1.1rem; font-weight: 800; }
.qf-account-type-sub { display: block; font-size: .82rem; color: var(--qf-muted); }
.qf-account-type-msg {
    display: block;
    margin-top: .85rem;
    padding-top: .85rem;
    border-top: 1px solid var(--color-qf-700);
    font-size: .9rem;
    line-height: 1.45;
}
/* YES / NO as two pill toggles */
.qf-yesno { display: inline-flex; gap: .5rem; }
.qf-yesno input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
}
.qf-yesno label {
    display: inline-block;
    min-width: 4.5rem;
    margin: 0;
    padding: .45rem 1rem;
    border-radius: 999px;
    border: 2px solid var(--qf-purple);
    background: #ffffff;
    color: var(--qf-purple);
    font-weight: 800;
    text-align: center;
    cursor: pointer;
}
.qf-yesno input[type="radio"]:checked + label {
    background: var(--qf-purple);
    color: #ffffff;
}
.qf-yesno input[type="radio"]:focus-visible + label {
    outline: 3px solid var(--qf-accent);
    outline-offset: 2px;
}
/* Field tables: each row becomes "label above full-width box" */
.qf-fields,
.qf-fields > tbody {
    display: block;
    width: 100%;
}
.qf-fields > tbody > tr {
    display: flex;
    flex-direction: column;
    margin-bottom: 1rem;
}
.qf-fields > tbody > tr > td {
    display: block;
    width: auto !important;
    padding: 0;
}
.qf-fields > tbody > tr.qf-fields-hidden { display: none; }
.qf-fields > tbody > tr.qf-fields-msg { margin-bottom: 0; }
.qf-fields > tbody > tr.qf-fields-msg:not(:has(.qf-auth-hint)) > td:not(:has([style*="inline"])) { display: none; }
.qf-fields .qf-auth-label { margin-bottom: .35rem; }
.qf-auth-star[style*="hidden"] { display: none; }
.qf-auth-star { color: var(--qf-ink); font-weight: 700; margin-left: .25rem; }
/* Regions checklist */
.qf-region-list {
    width: 100%;
    border: 1px solid var(--color-qf-700);
    border-radius: 10px;
    padding: .5rem .65rem;
    border-collapse: separate;
}
.qf-region-list td { padding: .2rem .35rem; vertical-align: top; }
.qf-region-list input[type="checkbox"] { margin-right: .35rem; }
.qf-region-list label { font-weight: 600; }
@media (max-width: 575.98px) {
    .qf-region-list, .qf-region-list tbody, .qf-region-list tr, .qf-region-list td { display: block; width: 100%; }
}

/* Option cards for radio lists (e.g. Email preferences): each choice is a large tappable card,
   the selected one highlighted */
.qf-plain-table, .qf-plain-table > tbody, .qf-plain-table > tbody > tr, .qf-plain-table > tbody > tr > td {
    display: block;
    width: 100%;
    padding: 0 !important;
    border: 0 !important;
}
.qf-plain-table tr.qf-hidden-row { display: none; }
.qf-choice-list, .qf-choice-list > tbody { display: block; width: 100%; }
.qf-choice-list > tbody > tr { display: block; margin-bottom: .6rem; }
.qf-choice-list td { display: block; padding: 0 !important; border: 0 !important; position: relative; }
.qf-choice-list input[type="radio"] {
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    width: 1.2rem;
    height: 1.2rem;
    margin: 0;
    accent-color: var(--qf-purple);
}
.qf-choice-list label {
    display: block;
    margin: 0;
    padding: .9rem 1rem .9rem 2.9rem;
    border: 2px solid var(--qf-purple-line);
    border-radius: 12px;
    background: #ffffff;
    color: var(--qf-ink);
    font-weight: 700;
    line-height: 1.35;
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease;
}
.qf-choice-list label:hover { border-color: var(--color-qf-700); }
.qf-choice-list td:has(input:checked) label {
    border-color: var(--qf-purple);
    background: var(--color-qf-600);
}
.qf-choice-list input:focus-visible + label { outline: 3px solid var(--qf-accent); outline-offset: 2px; }
.qf-choice-note { margin: .25rem 0 1.25rem; }

/* Manage account page: settings tiles */
.qf-auth-card.qf-manage { max-width: 760px; }
.qf-manage .qf-auth-subtitle { display: block; }
.qf-manage .qf-auth-success { margin-bottom: 1.1rem; }
.qf-manage-alert {
    margin-bottom: 1.25rem;
    padding: .9rem 1rem;
    border-radius: 10px;
    background: var(--qf-accent);
    color: var(--qf-ink);
    line-height: 1.45;
}
.qf-content .qf-manage-alert-btn,
.qf-manage-alert-btn {
    display: block;
    width: 100% !important;
    margin-top: .75rem;
    background: var(--color-qf-900);
}
.qf-manage-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .9rem;
}
.qf-manage-tile {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    padding: 1rem;
    border: 1px solid var(--qf-purple-line);
    border-left: 4px solid var(--qf-purple);
    border-radius: 12px;
    background: #ffffff;
}
.qf-manage-tile-title { font-weight: 800; font-size: 1.05rem; color: var(--qf-ink); }
.qf-manage-tile-desc { display: block; flex: 1 0 auto; color: var(--qf-muted); font-size: .88rem; line-height: 1.4; margin-bottom: .4rem; }
.qf-manage-on, .qf-manage-off {
    display: inline-block;
    padding: 0 .45rem;
    border-radius: 999px;
    font-weight: 800;
    font-size: .8rem;
}
.qf-manage-on { background: var(--qf-purple); color: #ffffff; }
.qf-manage-off { background: var(--color-qf-300); color: var(--qf-ink); }
.qf-content .qf-manage-btn,
.qf-manage-btn {
    display: block;
    width: 100% !important;
    min-height: 44px;
    height: auto !important;
    margin-top: auto;
    padding: .55rem .8rem;
    font-size: .88rem !important;
}
.qf-manage-teacher-note {
    display: block;
    padding: .6rem .75rem;
    border-radius: 10px;
    background: var(--qf-accent);
    color: var(--qf-ink);
    font-weight: 700;
    line-height: 1.35;
}
@media (max-width: 575.98px) {
    .qf-manage-grid { grid-template-columns: 1fr; }
}

@media (max-width: 575.98px) {
    .qf-auth { padding-top: .5rem; }
    .qf-auth-card { padding: 1.35rem 1.15rem 1.2rem; }
}

/* ---------------------------------------------------------------------
   Support / FAQ page (SupportV2): each question is a full-width card,
   nothing wider than the page (no horizontal scrolling)
   --------------------------------------------------------------------- */
.qf-faq .story { overflow-x: hidden; }
.qf-faq-list,
.qf-faq-list > tbody,
.qf-faq-list > tbody > tr,
.qf-faq-list > tbody > tr > td {
    display: block;
    width: 100% !important;
    padding: 0;
    border: 0;
}
.qf-faq-item {
    border: 1px solid var(--qf-purple-line);
    border-left: 4px solid var(--qf-purple);
    border-radius: 10px;
    background: #ffffff;
    margin-bottom: .65rem;
    overflow: hidden;
}
/* the show/hide script sets display:inline - shown panels become full-width blocks */
.qf-faq-panel[style*="inline"] { display: block !important; }
.qf-faq-head {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .7rem .9rem;
}
.qf-faq-icon {
    flex: 0 0 auto;
    width: 24px;
    height: 24px;
}
.qf-faq-title {
    flex: 1 1 auto;
    min-width: 0;
    font-weight: 700;
    font-size: 1.05rem;
    line-height: 1.3;
    color: var(--qf-ink);
    overflow-wrap: anywhere;
}
.qf-content .qf-faq-btn,
.qf-faq-btn {
    flex: 0 0 auto;
    width: 4.75rem !important;
    height: 34px !important;
    padding: 0 .5rem;
    font-size: .8rem !important;
}
.qf-faq-body {
    padding: .25rem 1rem 1rem calc(24px + 1.65rem);
    border-top: 1px solid var(--qf-purple-line);
    background: #ffffff;
    line-height: 1.5;
    overflow-wrap: anywhere;
}
.qf-faq-details { display: block; padding-top: .75rem; }
/* content saved in the database (images, tables, iframes, fixed widths) stays inside the card */
.qf-faq-details * { max-width: 100% !important; }
.qf-faq-details img, .qf-faq-details iframe, .qf-faq-details video { height: auto; }
.qf-faq-details table { display: block; overflow-x: auto; width: auto !important; }
.qf-faq-attach:not(:has(a)) { display: none; }
.qf-faq-attach { margin-top: .75rem; }
.qf-faq-attach a {
    display: inline-block;
    padding: .4rem .8rem;
    border-radius: 8px;
    background: var(--color-qf-600);
    color: var(--qf-ink);
    font-weight: 700;
}
.qf-faq-attach a::before { content: "\1F4CE  "; }
@media (max-width: 575.98px) {
    .qf-faq-head { padding: .6rem .7rem; gap: .55rem; }
    .qf-faq-title { font-size: .95rem; }
    .qf-faq-body { padding: .25rem .8rem .9rem; }
}

/* ---------------------------------------------------------------------
   Feis Results page
   --------------------------------------------------------------------- */
.qf-results-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin-bottom: 1.25rem;
}
.qf-results-action .quickfeisButton {
    display: block;
    width: 100% !important;
    min-height: 46px;
    font-size: .95rem !important;
}
.qf-results-hint {
    display: block;
    margin-top: .35rem;
    text-align: center;
    font-size: .85rem;
    color: var(--qf-muted);
}
.qf-results-picker {
    display: flex;
    gap: 1.25rem;
    align-items: center;
    padding: 1.1rem 1.25rem;
    margin-bottom: 1.5rem;
    border: 1px solid var(--qf-purple-line);
    border-radius: var(--qf-radius);
    background: var(--qf-tint);
}
.qf-results-picker-fields { flex: 1 1 auto; min-width: 0; }
.qf-results-picker-title {
    display: block;
    margin-bottom: .75rem;
    font-size: 1.3rem;
    font-weight: 800;
    color: var(--qf-ink);
}
.qf-results-label2 { margin-top: .85rem !important; }
.qf-results-picker-logo { flex: 0 0 auto; }
.qf-results-logo-fv, .qf-results-logo-fv td { border: 0 !important; padding: 0 !important; }
.qf-results-picker-logo img {
    width: 110px;
    height: auto;
    border-radius: 10px;
    background: #ffffff;
    padding: .35rem;
}
/* Each competition = one card: info on the left, results table on the right */
.qf-results-grid { width: 100% !important; border: 0 !important; border-collapse: separate; border-spacing: 0; }
.qf-results-grid > tbody > tr:first-child:has(> th) { display: none; }
.qf-results-grid > tbody > tr:not(:has(> th)) {
    display: grid;
    grid-template-columns: minmax(0, 15rem) minmax(0, 1fr);
    gap: 1.25rem;
    margin-bottom: 1rem;
    padding: 1rem 1.1rem;
    border: 1px solid var(--qf-purple-line);
    border-left: 4px solid var(--qf-purple);
    border-radius: var(--qf-radius);
    background: #ffffff !important;
}
.qf-results-grid > tbody > tr > td { display: block; width: auto !important; padding: 0 !important; background: none !important; color: var(--qf-ink) !important; }
.qf-results-event { display: block; font-size: 1.2rem; font-weight: 800; line-height: 1.25; color: var(--qf-ink); margin-bottom: .2rem; }
.qf-results-info { line-height: 1.45; font-size: .92rem; }
.qf-results-judges { margin-top: .2rem; font-size: .82rem; color: var(--qf-muted); line-height: 1.35; }
.qf-results-judges span:empty + br { display: none; }
.qf-results-table {
    width: 100% !important;
    border-collapse: collapse !important;
    border: 0 !important;
    font-size: .92rem;
}
.qf-results-table th {
    background: var(--color-qf-900) !important;
    color: #ffffff !important;
    padding: .5rem .6rem !important;
    font-size: .8rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    white-space: nowrap;
}
.qf-results-table th:first-child { border-top-left-radius: 8px; }
.qf-results-table th:last-child { border-top-right-radius: 8px; }
.qf-results-table td {
    padding: .45rem .6rem !important;
    border: 0 !important;
    border-bottom: 1px solid var(--qf-purple-line) !important;
    background: #ffffff !important;
    color: var(--qf-ink) !important;
    vertical-align: top;
}
.qf-results-table tr:nth-child(even) td { background: var(--qf-tint) !important; }
.qf-results-name { width: auto; font-weight: 700; }
/* Number columns (Rank, Card#, Score) centred - header and values line up.
   Name and School (the last two columns) stay left-aligned. */
.qf-results-table th:not(:nth-last-child(-n+2)),
.qf-results-table td:not(:nth-last-child(-n+2)) {
    text-align: center !important;
}
.qf-content .qf-results-lss, .qf-results-lss { display: block; width: 100% !important; max-width: 30rem; margin: 1rem auto; }
@media (max-width: 767.98px) {
    .qf-results-actions { grid-template-columns: 1fr; }
    .qf-results-picker { flex-direction: column-reverse; align-items: stretch; padding: 1rem; }
    .qf-results-picker-logo { text-align: center; }
    .qf-results-grid > tbody > tr:not(:has(> th)) { grid-template-columns: 1fr; gap: .85rem; padding: .9rem; }
    .qf-results-top { overflow-x: auto; }
    /* Phone: each result is a compact 2-line row - Rank | Card# | Name, with the School under the name */
    .qf-results-table, .qf-results-table > tbody { display: block; font-size: .88rem; }
    .qf-results-table tr {
        display: grid;
        grid-template-columns: 2.6rem 3.4rem minmax(0, 1fr);
        align-items: start;
        border-bottom: 1px solid var(--qf-purple-line);
    }
    .qf-results-table tr:has(> :nth-child(5)) { grid-template-columns: 2.4rem 3.6rem 3.2rem minmax(0, 1fr); }
    .qf-results-table th, .qf-results-table td {
        padding: .4rem .4rem !important;
        border: 0 !important;
        background: transparent !important;
    }
    .qf-results-table tr:has(> th) { background: var(--color-qf-900); border-radius: 8px 8px 0 0; border-bottom: 0; }
    .qf-results-table tr:has(> th) > th:last-child { display: none; }
    .qf-results-table th:first-child, .qf-results-table th:last-child { border-radius: 0; }
    .qf-results-table tr:nth-child(even):not(:has(> th)) { background: var(--qf-tint); }
    .qf-results-table tr:not(:has(> th)) > td:last-child {
        grid-column: -2 / -1;
        padding-top: 0 !important;
        font-size: .78rem;
        color: var(--qf-muted) !important;
    }
}

/* ---------------------------------------------------------------------
   Oireachtas / NAIDC results list (Oireachtas.aspx): grouped by year
   --------------------------------------------------------------------- */
.qf-oir-intro {
    display: block;
    margin-bottom: 1rem;
    color: var(--qf-muted);
    font-size: .95rem;
}
.qf-oir-year { margin-bottom: 1.25rem; }
.qf-oir-year-title {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin: 0 0 .6rem;
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--qf-purple);
}
.qf-oir-year-title::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--qf-purple-line);
}
.qf-oir-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .6rem;
}
.qf-oir-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .6rem .7rem .6rem .9rem;
    border: 1px solid var(--qf-purple-line);
    border-left: 4px solid var(--qf-purple);
    border-radius: 10px;
    background: #ffffff;
}
.qf-oir-name {
    min-width: 0;
    font-weight: 700;
    color: var(--qf-ink);
    line-height: 1.3;
}
.qf-content .qf-oir-btn,
.qf-oir-btn {
    flex: 0 0 auto;
    padding: .4rem 1rem;
    font-size: .82rem !important;
}
@media (max-width: 767.98px) {
    .qf-oir-list { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------------------------
   Oireachtas results download page (FullOireachtasResultsFreeV2.aspx)
   --------------------------------------------------------------------- */
.qf-dl-title-fv, .qf-dl-title-fv td { border: 0 !important; padding: 0 !important; width: 100%; }
.qf-dl-title {
    display: block;
    font-size: 1.6rem;
    font-weight: 800;
    color: var(--qf-ink);
    line-height: 1.2;
}
.qf-dl-intro {
    margin: .4rem 0 1.25rem;
    color: var(--qf-muted);
    font-size: .92rem;
}
.qf-dl-list { display: flex; flex-direction: column; gap: .5rem; }
.qf-dl-head,
.qf-dl-item {
    display: grid;
    grid-template-columns: 4.5rem minmax(0, 1fr) auto;
    align-items: center;
    gap: .9rem;
}
.qf-dl-head {
    padding: .5rem .9rem;
    border-radius: 8px;
    background: var(--color-qf-900);
    color: #ffffff;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.qf-dl-head span { color: #ffffff !important; }
.qf-dl-head .qf-dl-buttons { justify-content: center; }
.qf-dl-item {
    padding: .6rem .9rem;
    border: 1px solid var(--qf-purple-line);
    border-left: 4px solid var(--qf-purple);
    border-radius: 10px;
    background: #ffffff;
}
.qf-dl-item:nth-child(odd) { background: var(--qf-tint); }
.qf-dl-code {
    font-weight: 800;
    color: var(--qf-purple);
    text-align: center;
}
.qf-dl-item .qf-dl-code span {
    display: inline-block;
    min-width: 3.2rem;
    padding: .2rem .45rem;
    border-radius: 6px;
    background: var(--color-qf-600);
    color: var(--qf-ink);
}
.qf-dl-name { font-weight: 700; color: var(--qf-ink); line-height: 1.3; }
.qf-dl-buttons { display: flex; gap: .5rem; justify-content: flex-start; min-width: 17.5rem; }
.qf-content .qf-dl-btn,
.qf-dl-btn {
    width: 8.5rem !important;
    height: 38px !important;
    padding: 0 .6rem;
    font-size: .8rem !important;
    white-space: nowrap;
}
input.quickfeisButton.qf-dl-btn-top { background: var(--color-qf-900); }
input.quickfeisButton.qf-dl-btn-top:hover, input.quickfeisButton.qf-dl-btn-top:focus { background: var(--qf-purple); }
.qf-dl-empty {
    border: 1px solid var(--qf-purple-line);
    padding: 1rem;
    border-radius: 10px;
    background: var(--qf-tint);
    color: var(--qf-ink);
    font-weight: 600;
}
@media (max-width: 767.98px) {
    .qf-dl-head { display: none; }
    .qf-dl-item {
        grid-template-columns: auto minmax(0, 1fr);
        gap: .5rem .7rem;
        padding: .7rem .8rem;
    }
    .qf-dl-item .qf-dl-buttons {
        grid-column: 1 / -1;
        min-width: 0;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .qf-dl-item .qf-dl-buttons:not(:has(.qf-dl-btn-top)) { grid-template-columns: 1fr; }
    .qf-content .qf-dl-btn, .qf-dl-btn { width: 100% !important; }
    .qf-dl-title { font-size: 1.3rem; }
}

/* ---------------------------------------------------------------------
   Shared clean data table (qf-data-table) + Registration Status page
   (PaidRegistrations.aspx)
   --------------------------------------------------------------------- */
.qf-data-table {
    width: 100%;
    border-collapse: separate !important;
    border-spacing: 0;
    border: 1px solid var(--qf-purple-line) !important;
    border-radius: 10px;
    overflow: hidden;
    background: #ffffff;
    font-size: .92rem;
}
.qf-data-table th {
    background: var(--color-qf-900) !important;
    color: #ffffff !important;
    padding: .5rem .7rem !important;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    text-align: left;
    vertical-align: bottom;
}
.qf-data-table td {
    padding: .5rem .7rem !important;
    border: 0 !important;
    border-top: 1px solid var(--qf-purple-line) !important;
    color: var(--qf-ink);
    vertical-align: top;
}
.qf-data-table tr:nth-child(odd) td { background: var(--qf-tint); }
.qf-data-table td:empty { padding: 0 !important; border-top: 0 !important; }
.qf-data-table .qf-c, .qf-data-table th.qf-c, .qf-c { text-align: center !important; }

/* Frozen header on the registration list: the column headings stay visible just
   below the menu bar while scrolling. Containers around it must not clip or scroll
   (overflow: clip keeps the rounded corners without breaking "sticky"). */
.qf-content:has(.qf-sticky-head),
.qf-reg-page,
.qf-reg-page > .story { overflow: visible !important; }
.qf-data-table.qf-sticky-head { overflow: visible; }
.qf-sticky-head th {
    position: sticky;
    top: var(--qf-header-h, 72px);
    z-index: 5;
    box-shadow: 0 2px 4px rgba(63, 43, 77, .25);
}
/* first column only holds a hidden ID - not needed on screen */
.qf-sticky-head tr > :first-child { display: none; }
.qf-sticky-head tr:first-child th:nth-child(2) { border-top-left-radius: 10px; }
.qf-sticky-head tr:first-child th:last-child { border-top-right-radius: 10px; }

.qf-reg-picker {
    padding: 1rem 1.25rem;
    margin-bottom: 1.5rem;
    border: 1px solid var(--qf-purple-line);
    border-radius: var(--qf-radius);
    background: var(--qf-tint);
}
.qf-reg-picker-title { display: block; font-size: 1.3rem; font-weight: 800; color: var(--qf-ink); }
.qf-reg-picker-note { display: block; margin: .15rem 0 .65rem; font-size: .88rem; color: var(--qf-muted); }
.qf-content .qf-reg-select, .qf-reg-select { max-width: 34rem; font-weight: 700; }

/* the layout tables generated by the list views fill the width */
.qf-reg-page .story table:not(.qf-data-table):not(.qf-reg-empty) { width: 100%; border: 0 !important; }
.qf-reg-page .story table:not(.qf-data-table) > tbody > tr > td { border: 0 !important; }
.qf-reg-pager:empty, .qf-reg-pager:not(:has(*)) { display: none; }
.qf-reg-pager { padding: .5rem 0 !important; text-align: center; }

/* one card per feis: name on top, date / logo / dancer-card button on the left, dancers on the right */
.qf-reg-feis {
    margin-bottom: 1.5rem;
    padding: 1.1rem 1.25rem;
    border: 1px solid var(--qf-purple-line);
    border-top: 5px solid var(--qf-purple);
    border-radius: var(--qf-radius);
    background: #ffffff;
    box-shadow: var(--qf-shadow);
}
.qf-reg-feis-table, .qf-reg-feis-table > tbody { display: block; }
.qf-reg-feis-table > tbody > tr { display: block; }
.qf-reg-feis-table > tbody > tr:nth-child(2) {
    display: grid;
    grid-template-columns: 12rem minmax(0, 1fr);
    gap: 1.25rem;
    margin-top: .75rem;
}
.qf-reg-feis-table > tbody > tr > td { display: block; padding: 0 !important; width: auto !important; }
.qf-reg-feis-name { display: block; font-size: 1.45rem; font-weight: 800; line-height: 1.2; color: var(--qf-ink); }
.qf-reg-feis-side { text-align: center; }
.qf-reg-feis-date { display: block; font-weight: 700; color: var(--qf-purple); margin-bottom: .6rem; }
.qf-reg-feis-logo { display: block; max-width: 150px; width: 100%; height: auto; margin: 0 auto .75rem; border-radius: 10px; }
.qf-reg-feis-side table, .qf-reg-feis-side table > tbody > tr > td { border: 0 !important; padding: 0 !important; width: 100%; }
.qf-content .qf-reg-card-btn, .qf-reg-card-btn {
    display: block;
    width: 100% !important;
    padding: .6rem .75rem;
    font-size: .85rem !important;
}
.qf-reg-feis-main { min-width: 0; }
.qf-reg-items:not(:has(td)) { display: none; }
.qf-reg-items { margin-bottom: 1rem; }
.qf-reg-dancer {
    margin-bottom: .9rem;
    padding: .8rem .9rem;
    border: 1px solid var(--qf-purple-line);
    border-left: 4px solid var(--qf-purple);
    border-radius: 10px;
    background: #ffffff;
}
.qf-reg-dancer table:not(.qf-data-table), .qf-reg-dancer table:not(.qf-data-table) > tbody > tr > td { border: 0 !important; padding: 0 !important; }
.qf-reg-dancer-name { display: block; font-size: 1.15rem; font-weight: 800; color: var(--qf-ink); margin-bottom: .5rem; }
.qf-reg-dancer-comps { overflow-x: auto; }
.qf-reg-dancer + br, .qf-reg-dancer + br + br { display: none; }
.qf-reg-empty td { padding: .5rem .2rem !important; color: var(--qf-muted); font-style: italic; border: 0 !important; }
.qf-reg-feis + br, .qf-reg-feis + br + br { display: none; }
@media (max-width: 767.98px) {
    .qf-reg-feis { padding: .9rem; }
    .qf-reg-feis-name { font-size: 1.2rem; }
    .qf-reg-feis-table > tbody > tr:nth-child(2) { grid-template-columns: 1fr; gap: .9rem; }
    .qf-reg-feis-side { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: .25rem .85rem; align-items: center; text-align: left; }
    .qf-reg-feis-date { grid-column: 1 / -1; margin-bottom: .25rem; }
    .qf-reg-feis-logo { margin: 0; max-width: 90px; max-height: 90px; width: auto; object-fit: contain; }
    .qf-data-table { font-size: .85rem; }
    .qf-data-table th, .qf-data-table td { padding: .4rem .45rem !important; }
}

/* ---------------------------------------------------------------------
   QuickBucks page
   --------------------------------------------------------------------- */
.qf-qb-top {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
    gap: 1.25rem;
    margin-bottom: 1.75rem;
}
.qf-qb-balance-card,
.qf-qb-redeem {
    padding: 1.25rem;
    border: 1px solid var(--qf-purple-line);
    border-radius: var(--qf-radius);
    box-shadow: var(--qf-shadow);
}
.qf-qb-balance-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .9rem;
    text-align: center;
    background: #ffffff;
    border-top: 5px solid var(--qf-purple);
}
.qf-qb-logo { width: 100%; max-width: 260px; height: auto; border-radius: 10px; }
.qf-qb-balance:empty { display: none; }
.qf-qb-balance {
    display: block;
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--qf-ink);
    line-height: 1.3;
}
.qf-qb-redeem { background: var(--qf-tint); }
.qf-qb-redeem-title { display: block; font-size: 1.2rem; font-weight: 800; color: var(--qf-ink); }
.qf-qb-redeem-help { display: block; margin: .2rem 0 1rem; color: var(--qf-muted); font-size: .9rem; }
.qf-qb-code { display: flex; align-items: center; gap: .4rem; margin-bottom: 1rem; }
.qf-content .qf-qb-box,
.qf-qb-box {
    flex: 1 1 0;
    min-width: 0;
    width: 0 !important;      /* let the three boxes share the row instead of using their built-in width */
    padding: .65rem .4rem;
    font-size: 1.15rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-align: center;
    text-transform: uppercase;
    border: 1px solid var(--color-qf-700);
    border-radius: 10px;
}
.qf-qb-dash { font-weight: 800; color: var(--qf-muted); }
.qf-content .qf-qb-apply,
.qf-qb-apply {
    display: block;
    width: 100% !important;
    padding: .7rem 1rem;
    font-size: 1rem !important;
}
.qf-qb-result:empty { display: none; }
.qf-qb-result {
    display: block;
    margin-top: .85rem;
    padding: .6rem .8rem;
    border-radius: 10px;
    background: #ffffff;
    border-left: 4px solid var(--qf-purple);
    font-weight: 800;
    color: var(--qf-ink);
}
.qf-qb-heading {
    display: block;
    margin: 0 0 .6rem;
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--qf-ink);
}
.qf-qb-page .qf-plain-table { margin-bottom: 1.75rem; }
.qf-qb-page .qf-reg-empty { margin-bottom: 1.75rem; }
@media (max-width: 767.98px) {
    .qf-qb-top { grid-template-columns: minmax(0, 1fr); }
    .qf-qb-box { font-size: 1rem; letter-spacing: .06em; }
    /* codes / transaction tables: compact so every column fits on a phone */
    .qf-qb-page .qf-data-table { font-size: .76rem; table-layout: auto; }
    .qf-qb-page .qf-data-table th { font-size: .62rem; letter-spacing: 0; padding: .4rem .3rem !important; }
    .qf-qb-page .qf-data-table td { padding: .4rem .3rem !important; overflow-wrap: anywhere; }
    .qf-qb-logo { max-width: 200px; }
}

/* ---------------------------------------------------------------------
   Bootstrap 3 class compatibility (Account pages)
   --------------------------------------------------------------------- */
.btn-default {
    color: var(--qf-purple-dark);
    background: #fff;
    border: 1px solid var(--qf-purple-line);
    border-radius: 999px;
    font-weight: 600;
}
.btn-default:hover { background: var(--qf-purple-soft); color: var(--qf-purple-deep); }

.form-horizontal .form-group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 1rem;
}
.form-horizontal .form-group > [class*="col-"] { padding-right: .75rem; }
.control-label { font-weight: 600; padding-top: .35rem; }
.col-md-offset-2 { margin-left: 0; }
@media (min-width: 768px) {
    .form-horizontal .control-label { text-align: right; }
    .col-md-offset-2 { margin-left: 16.666667%; }
}
.dl-horizontal dt { white-space: normal; }

/* Word-pasted content (Privacy page etc.) */
.MsoNormal { margin-bottom: .6rem; }

/* =====================================================================
   Family account (FeisReg/FamilyAccountV3.aspx)
   ===================================================================== */
.qf-fam-page { overflow: visible; }
/* tables used only for layout become plain blocks */
.qf-fam-fv, .qf-fam-fv > tbody, .qf-fam-fv > tbody > tr, .qf-fam-fv > tbody > tr > td,
.qf-fam-layout, .qf-fam-layout > tbody, .qf-fam-layout > tbody > tr, .qf-fam-layout > tbody > tr > td,
.qf-fam-list, .qf-fam-list > tbody, .qf-fam-list > tbody > tr, .qf-fam-list > tbody > tr > td {
    display: block;
    width: 100% !important;
    border: 0 !important;
    padding: 0;
    background: transparent;
}
.qf-fam-list > tbody > tr:not(:has(table)) { display: none; }   /* empty spacer rows */
.qf-fam-hidden, .qf-fam-hr, .qf-fam-pager:empty { display: none !important; }

/* --- Contact information ------------------------------------------- */
.qf-fam-contact { display: block; width: 100%; max-width: 680px; }
.qf-fam-contact > tbody { display: block; }
.qf-fam-contact > tbody > tr {
    display: grid;
    grid-template-columns: 210px minmax(0, 1fr);
    align-items: center;
    gap: .25rem 1rem;
    padding: .65rem 0;
    border-bottom: 1px solid var(--qf-purple-line);
}
.qf-fam-contact > tbody > tr > td { display: block; padding: 0; min-width: 0; overflow-wrap: anywhere; }
.qf-fam-contact .qf-fam-k { font-weight: 700; color: var(--qf-ink); }
.qf-fam-contact > tbody > tr:has(> .qf-fam-btns),
.qf-fam-contact > tbody > tr:has(> .qf-fam-note) { display: block; border-bottom: 0; }
.qf-fam-contact input[type="text"] { width: 100%; }
.qf-fam-btns { display: flex !important; flex-wrap: wrap; gap: .6rem; padding-top: .5rem !important; }
.qf-fam-btns .quickfeisButton { min-width: 9rem; }
.qf-fam-wide-btn { min-width: 16rem !important; }
.qf-fam-note { font-size: .9rem; color: var(--qf-muted); padding-top: .25rem !important; }

/* --- Add competitor button and messages ----------------------------- */
.qf-fam-add-btn { width: 100%; min-height: 3.4rem; font-size: 1.05rem !important; margin-bottom: 1rem; }
.qf-fam-add-btn + br, .qf-fam-msgs > br { display: none; }
.qf-fam-msgs > span:not(:empty) { display: block; margin: 0 0 1rem; padding: .7rem 1rem; border-radius: 10px; }

/* --- Competitor card ------------------------------------------------ */
.qf-fam-card {
    display: block;
    width: 100%;
    margin-bottom: 1.1rem;
    background: #ffffff;
    border: 2px solid var(--qf-purple-line);
    border-radius: var(--qf-radius);
    box-shadow: var(--qf-shadow);
    overflow: hidden;
}
.qf-fam-card > tbody {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 230px;
}
.qf-fam-card > tbody > tr { display: contents; }
.qf-fam-card > tbody > tr > td { display: block; padding: .9rem 1.1rem; min-width: 0; overflow-wrap: anywhere; }
.qf-fam-card .qf-fam-name {
    grid-column: 1 / -1;
    grid-row: 1;
    background: var(--color-qf-600);
    color: var(--qf-ink);
    font-size: 1.2rem;
    padding: .75rem 1.1rem !important;
}
.qf-fam-head > .qf-fam-actions { grid-column: 3; grid-row: 2 / span 2; }
.qf-fam-info > td:nth-child(1) { grid-column: 1; grid-row: 2; }
.qf-fam-info > td:nth-child(2) { grid-column: 2; grid-row: 2; }
.qf-fam-school > td { grid-column: 1 / 3; grid-row: 3; border-top: 1px solid var(--qf-purple-line); }
.qf-fam-actions {
    display: flex !important;
    flex-direction: column;
    gap: .55rem;
    border-left: 1px solid var(--qf-purple-line);
}
.qf-fam-actions > br { display: none; }
.qf-fam-actions .quickfeisButton { width: 100%; }
.qf-fam-sec {
    display: block;
    margin-bottom: .35rem;
    font-size: .78rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--qf-purple);
}
.qf-fam-kv { width: 100%; margin-bottom: .9rem; }
.qf-fam-kv td { padding: .15rem 0; vertical-align: top; }
.qf-fam-kv .qf-fam-k2 { width: 5.5rem; padding-right: .5rem; font-weight: 400; }
.qf-fam-kv .qf-fam-k2 span { font-weight: 600 !important; color: var(--qf-muted); }
.qf-fam-kv ~ br { display: none; }
.qf-fam-sec + br { display: none; }

/* --- Add / change competitor form ----------------------------------- */
.qf-fam-editcard > tbody { display: block; }
.qf-fam-editcard > tbody > tr { display: flex; flex-direction: column-reverse; }
.qf-fam-editcard > tbody > tr > td { padding: 0; }
.qf-fam-editcard .qf-fam-actions {
    flex-direction: row;
    flex-wrap: wrap;
    padding: 1rem 1.1rem 1.2rem !important;
    border-left: 0;
    border-top: 1px solid var(--qf-purple-line);
}
.qf-fam-editcard .qf-fam-actions .quickfeisButton { width: auto; min-width: 9rem; }
.qf-fam-form { display: block; width: 100%; }
.qf-fam-form > tbody { display: block; }
.qf-fam-form > tbody > tr {
    display: grid;
    grid-template-columns: 210px minmax(0, 1fr);
    gap: .35rem 1rem;
    align-items: start;
    padding: .75rem 1.1rem;
    border-bottom: 1px solid var(--qf-purple-line);
}
.qf-fam-form > tbody > tr:last-child { border-bottom: 0; }
.qf-fam-form > tbody > tr > td { display: block; padding: 0; min-width: 0; }
.qf-fam-form > tbody > tr:has(> .qf-fam-name) { display: block; padding: 0; }
.qf-fam-form .qf-fam-name { display: block; }
.qf-fam-form > tbody > tr > td > br { display: none; }
.qf-fam-form .qf-fam-k { padding-top: .45rem; }
.qf-fam-form .qf-fam-k span, .qf-fam-form .qf-fam-k label { display: inline; }
.qf-fam-form .qf-fam-k span[style*="italic"] { font-weight: 400 !important; color: var(--qf-muted); }
.qf-fam-form input[type="text"], .qf-fam-form select { width: 100%; max-width: 440px; }
.qf-fam-form > tbody > tr:not(:has(td > *)) { display: none; }
.qf-fam-form > tbody > tr:has(.qf-fam-hint) { border-bottom: 0; padding-top: 0; }
.qf-fam-hint { display: block; font-size: .88rem; color: var(--qf-muted); line-height: 1.45; }
.qf-fam-form span[id*="Label5"] { display: block; padding: .6rem .9rem; border-radius: 10px; }
.qf-fam-form [id*="CheckBoxNonDancingSchool"] { display: flex; align-items: center; gap: .4rem; margin-top: .55rem; }
.qf-fam-form span[id*="Validator"]:not([style*="hidden"]) { display: block; margin-top: .3rem; }
.qf-fam-form span[id*="Validator"][style*="hidden"] { display: none; }
.qf-fam-dob { width: 100%; max-width: 440px; }
.qf-fam-dob td { padding: 0 .5rem .25rem 0; width: 33.33%; }
.qf-fam-dob td:last-child { padding-right: 0; }
.qf-fam-dob span { font-size: .75rem; letter-spacing: .05em; color: var(--qf-muted); }
.qf-fam-dob select { width: 100%; }

/* Gender and Active / Retired as pill toggles */
.qf-fam-pills td { padding: 0 .5rem .4rem 0; }
.qf-fam-pills input[type="radio"] { position: absolute; opacity: 0; width: 1px; height: 1px; }
.qf-fam-pills label {
    display: inline-block;
    min-width: 6rem;
    margin: 0;
    padding: .45rem 1rem;
    border: 2px solid var(--qf-purple);
    border-radius: 999px;
    background: #ffffff;
    color: var(--qf-purple);
    font-weight: 800;
    text-align: center;
    cursor: pointer;
}
.qf-fam-pills input[type="radio"]:checked + label { background: var(--qf-purple); color: #ffffff; }
.qf-fam-pills input[type="radio"]:focus-visible + label { outline: 3px solid var(--qf-accent); outline-offset: 2px; }
.qf-fam-pills input[type="radio"]:disabled + label { opacity: .55; cursor: not-allowed; }
.qf-fam-form .qf-choice-list { max-width: 440px; }
.qf-fam-form .qf-choice-list > tbody > tr:last-child { margin-bottom: 0; }

/* --- Delete confirmation -------------------------------------------- */
.qf-fam-confirm { border-color: var(--qf-accent); }
.qf-fam-confirm > tbody { display: flex; flex-direction: column; }
.qf-fam-confirm .qf-fam-name { order: 1; background: var(--qf-accent); }
.qf-fam-confirm .qf-fam-warn > td { order: 2; }
.qf-fam-confirm .qf-fam-warn > td > br { display: none; }
.qf-fam-confirm .qf-fam-warn span { display: block; margin-bottom: .6rem; }
.qf-fam-confirm .qf-fam-actions {
    order: 3;
    flex-direction: row;
    flex-wrap: wrap;
    border-left: 0;
    border-top: 1px solid var(--qf-purple-line);
}
.qf-fam-confirm .qf-fam-actions .quickfeisButton { width: auto; min-width: 9rem; }

.qf-fam-home-btn { min-width: 14rem; margin-top: .5rem; }

/* --- Tablet: actions move under the details -------------------------- */
@media (max-width: 991.98px) {
    .qf-fam-card > tbody { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .qf-fam-head > .qf-fam-actions {
        grid-column: 1 / -1;
        grid-row: 4;
        flex-direction: row;
        flex-wrap: wrap;
        border-left: 0;
        border-top: 1px solid var(--qf-purple-line);
    }
    .qf-fam-head > .qf-fam-actions .quickfeisButton { width: auto; flex: 1 1 10rem; }
    .qf-fam-school > td { grid-column: 1 / -1; }
}
/* --- Phone: everything in one column -------------------------------- */
@media (max-width: 575.98px) {
    .qf-fam-contact > tbody > tr,
    .qf-fam-form > tbody > tr { grid-template-columns: minmax(0, 1fr); gap: .3rem; }
    .qf-fam-contact .qf-fam-k { font-size: .85rem; color: var(--qf-muted); }
    .qf-fam-form .qf-fam-k { padding-top: 0; }
    .qf-fam-form > tbody > tr > td:not(:has(*)) { display: none; }
    .qf-fam-card > tbody { grid-template-columns: minmax(0, 1fr); }
    .qf-fam-info > td:nth-child(1), .qf-fam-info > td:nth-child(2) { grid-column: 1; grid-row: auto; }
    .qf-fam-info > td:nth-child(2) { padding-top: 0 !important; }
    .qf-fam-school > td { grid-row: auto; }
    .qf-fam-head > .qf-fam-actions { grid-row: auto; }
    .qf-fam-head > .qf-fam-actions .quickfeisButton,
    .qf-fam-editcard .qf-fam-actions .quickfeisButton,
    .qf-fam-confirm .qf-fam-actions .quickfeisButton,
    .qf-fam-btns .quickfeisButton { flex: 1 1 100%; width: 100%; min-width: 0 !important; }
    .qf-fam-card .qf-fam-name { font-size: 1.1rem; }
    .qf-fam-home-btn { width: 100%; }
}

/* =====================================================================
   My Individual Results (FeisReg/MyResults.aspx)
   ===================================================================== */
.qf-mr-page, .qf-mr-page > .story { overflow: visible !important; }
/* picker */
.qf-mr-picker {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: .9rem 1rem;
    margin-bottom: 1.4rem;
    padding: 1.1rem 1.2rem;
    background: #ffffff;
    border: 2px solid var(--qf-purple-line);
    border-radius: var(--qf-radius);
}
.qf-mr-field { flex: 1 1 15rem; min-width: 0; }
.qf-mr-field .qf-auth-label { display: block; margin-bottom: .35rem; }
.qf-mr-field select { width: 100% !important; }
.qf-mr-go { flex: 0 0 auto; }
.qf-mr-go-btn { min-width: 11rem; min-height: 2.6rem; }
/* feis header */
.qf-mr-hero { margin-bottom: 1.2rem; }
.qf-mr-feis, .qf-mr-feis > tbody, .qf-mr-feis > tbody > tr, .qf-mr-feis > tbody > tr > td,
.qf-mr-cert, .qf-mr-cert > tbody, .qf-mr-cert > tbody > tr, .qf-mr-cert > tbody > tr > td,
.qf-mr-dancer, .qf-mr-dancer > tbody, .qf-mr-dancer > tbody > tr, .qf-mr-dancer > tbody > tr > td {
    display: block;
    width: 100% !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--qf-ink) !important;
}
.qf-mr-feis-t { width: 100%; }
.qf-mr-feis-t > tbody > tr:last-child:not(:has(*)) ,
.qf-mr-feis-t > tbody > tr:last-child:not(:has(td > *)) { display: none; }
.qf-mr-feis-t > tbody > tr:first-child { display: flex; align-items: center; gap: 1.25rem; }
.qf-mr-feis-t > tbody > tr:first-child > td { padding: 0; border: 0; }
.qf-mr-feis-t img { display: block; width: 180px; max-width: 100%; height: auto; border-radius: 12px; }
.qf-mr-feis-t td > br { display: none; }
.qf-mr-feis-t span { font-size: 1rem; line-height: 1.45; }
.qf-mr-feisname { display: block; font-size: 1.7rem !important; font-weight: 800; line-height: 1.2 !important; color: var(--qf-ink); }
.qf-mr-feisdate { display: block; font-size: 1.1rem !important; margin: .2rem 0 .75rem; color: var(--qf-purple); }
.qf-mr-venue { display: block; }
.qf-mr-venue ~ span:nth-of-type(4) { display: block; }
.qf-mr-cert { margin-top: 1rem; }
.qf-mr-cert-btn { min-width: 15rem; }
/* dancer banner */
.qf-mr-dancer { margin: 0 0 1rem; }
.qf-mr-dancer > tbody > tr > td {
    padding: .85rem 1.1rem !important;
    background: var(--color-qf-900) !important;
    color: #ffffff !important;
    border-radius: var(--qf-radius);
    font-size: 1.3rem;
    font-weight: 800;
}
.qf-mr-dancer span { color: #ffffff !important; }
.qf-mr-num {
    display: inline-block;
    margin-right: .3rem;
    padding: .1rem .55rem;
    border-radius: 8px;
    background: var(--qf-accent);
    color: var(--color-qf-900) !important;
}
.qf-mr-school { display: block; margin-top: .2rem; font-size: 1rem; font-weight: 600 !important; opacity: .9; }

/* result cards */
.qf-mr-card {
    margin: 0 0 1.25rem;
    background: #ffffff;
    border: 2px solid var(--qf-purple-line);
    border-radius: var(--qf-radius);
    box-shadow: var(--qf-shadow);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.qf-mr-card:not(:has(td)) { display: none; }
.qf-mr-card > br, .qf-mr-card td > br:first-child:last-child { display: none; }
.qf-mr-card table { border-collapse: collapse; }
.qf-mr-card td, .qf-mr-card th { padding: .4rem .6rem; vertical-align: top; }
/* FormViews and list layouts are just containers */
.qf-mr-card > table, .qf-mr-card > table > tbody > tr > td > table { width: 100% !important; }
.qf-mr-card > table[id] { border: 0 !important; }
.qf-mr-card > table[id] > tbody > tr:not(:first-child) { background: #ffffff !important; }
.qf-mr-card > table[id] > tbody > tr > td { padding: 0 !important; border: 0 !important; }
/* event banner */
.qf-mr-event, .qf-mr-evhead { width: 100%; }
.qf-mr-event td, .qf-mr-evhead td {
    padding: .3rem 1.1rem !important;
    background: var(--color-qf-900);
    color: #ffffff !important;
    font-weight: 700;
}
.qf-mr-event tr:first-child td, .qf-mr-evhead tr:first-child td { padding-top: .8rem !important; font-size: 1.1rem; }
.qf-mr-event tr:last-child td, .qf-mr-evhead tr:last-child td { padding-bottom: .8rem !important; font-weight: 600; color: var(--color-qf-500) !important; }
.qf-mr-event span, .qf-mr-evhead span { color: inherit !important; }
/* score sheets */
.qf-mr-lines { width: 100%; min-width: 560px; }
.qf-mr-lines > tbody > tr > td { border-bottom: 1px solid var(--qf-purple-line); }
.qf-mr-lines > tbody > tr:first-child > td { background: var(--color-qf-600); color: var(--qf-ink); font-weight: 700; border-bottom: 0; }
.qf-mr-lines > tbody > tr > td[rowspan] { background: var(--qf-tint); border-right: 1px solid var(--qf-purple-line); }
.qf-mr-lines > tbody > tr > td[rowspan="3"]:last-child,
.qf-mr-lines > tbody > tr > td[rowspan]:last-child { background: #ffffff; border-right: 0; border-left: 1px solid var(--qf-purple-line); font-size: .92rem; }
.qf-mr-lines td table { margin-top: .35rem; font-size: .85rem; }
.qf-mr-lines td table td { padding: .1rem .4rem; border: 0; background: transparent; }
.qf-mr-lines td table tr:first-child td { color: var(--qf-muted); font-weight: 700; }
.qf-mr-card > table > tbody > tr > td > .qf-mr-lines + br { display: none; }
/* top five tables */
.qf-mr-card .qf-mr-lines[class] + br { display: none; }
.qf-mr-top5 { width: 100%; min-width: 760px; font-size: .9rem; border: 0 !important; }
.qf-mr-top5 th, .qf-mr-th th {
    padding: .5rem .45rem !important;
    background: var(--color-qf-900) !important;
    color: #ffffff !important;
    font-size: .8rem;
    text-align: center;
    vertical-align: bottom;
    border: 0 !important;
}
.qf-mr-top5 td { text-align: center; border: 0 !important; border-bottom: 1px solid var(--qf-purple-line) !important; }
.qf-mr-top5 tr:nth-child(odd) td { background: var(--qf-tint); }
.qf-mr-top5:not(.qf-mr-top5g) { table-layout: fixed; }
.qf-mr-top5:not(.qf-mr-top5g):has(th:nth-child(17)) th:nth-child(5n+3), .qf-mr-top5:not(.qf-mr-top5g):has(th:nth-child(17)) td:nth-child(5n+3),
.qf-mr-top5:not(.qf-mr-top5g):not(:has(th:nth-child(17))) th:nth-child(4n+3), .qf-mr-top5:not(.qf-mr-top5g):not(:has(th:nth-child(17))) td:nth-child(4n+3),
.qf-mr-top5g th:nth-child(3n+2), .qf-mr-top5g td:nth-child(3n+2) { border-left: 2px solid var(--color-qf-700) !important; }
.qf-mr-top5g th, .qf-mr-top5g td { width: auto !important; }
.qf-mr-top5g tr:first-child td { background: transparent; }
.qf-mr-card table[id*="fvHeaderTop5"], .qf-mr-card table:has(.qf-mr-top5) { width: 100% !important; }
.qf-mr-card table[id*="fvHeaderTop5"] > tbody > tr > td { padding: 0 !important; border: 0 !important; background: transparent !important; }
.qf-mr-card table:has(> tbody > tr > td[colspan="4"]) > tbody > tr:last-child > td { width: 29.41%; }
.qf-mr-card:not(:has(th:nth-child(17))) table:has(> tbody > tr > td[colspan="4"]) > tbody > tr:last-child > td:first-child { width: 14.29%; }
.qf-mr-card:not(:has(th:nth-child(17))) table:has(> tbody > tr > td[colspan="4"]) > tbody > tr:last-child > td { width: 28.57%; }
.qf-mr-card table:has(> tbody > tr > td[colspan="4"]) > tbody > tr:last-child > td:first-child { width: 11.765%; }
.qf-mr-card table:has(> tbody > tr > td[colspan="4"]) > tbody > tr:last-child > td { border: 0 !important; font-weight: 700; }
/* "Top Five Scores" judge header tables */
.qf-mr-card table:has(> tbody > tr > td[colspan="4"]) { width: 100%; min-width: 760px; }
.qf-mr-card td[colspan="4"] { padding-top: 1rem !important; font-size: 1.1rem; font-weight: 800; color: var(--qf-ink); }
.qf-mr-card td[colspan="4"] span { font-size: 1.1rem !important; }
/* non-championship grid */
.qf-mr-nonchamp { width: 100% !important; min-width: 640px; border: 0 !important; }
.qf-mr-nonchamp > tbody > tr > th { padding: .55rem .6rem !important; border: 0 !important; font-size: .85rem; }
.qf-mr-nonchamp > tbody > tr > td { width: auto !important; border: 0 !important; border-bottom: 1px solid var(--qf-purple-line) !important; padding: .7rem .6rem !important; }
.qf-mr-nonchamp > tbody > tr > :nth-child(6) { display: none; }
.qf-mr-nonchamp > tbody > tr > :first-child { padding-left: 1rem !important; }
.qf-mr-nonchamp > tbody > tr > :nth-child(2),
.qf-mr-nonchamp > tbody > tr > :nth-child(3),
.qf-mr-nonchamp > tbody > tr > :nth-child(5) { text-align: center !important; vertical-align: top; }
.qf-mr-nonchamp > tbody > tr > td:nth-child(5) .qf-mr-mini { margin-left: auto !important; margin-right: auto !important; }
.qf-mr-nonchamp > tbody > tr > td:nth-child(2), .qf-mr-nonchamp > tbody > tr > td:nth-child(3) { font-size: 1.15rem; font-weight: 800; }
.qf-mr-mini { margin: 0 auto; font-size: .82rem; border: 0 !important; }
.qf-mr-mini th, .qf-mr-mini td { padding: .15rem .5rem !important; border: 0 !important; }
.qf-mr-mini th { background: var(--color-qf-600) !important; color: var(--qf-ink) !important; }
.qf-mr-note {
    border: 1px solid var(--qf-purple-line);
    display: block;
    margin-top: 1rem;
    padding: .85rem 1rem;
    border-radius: 10px;
    background: var(--qf-tint);
    font-size: .92rem;
    line-height: 1.5;
}
@media (max-width: 575.98px) {
    .qf-mr-picker { padding: 1rem; }
    .qf-mr-go, .qf-mr-go-btn { width: 100%; }
    .qf-mr-feis-t > tbody > tr:first-child { flex-direction: column; align-items: flex-start; gap: .8rem; }
    .qf-mr-feis-t img { width: 140px; }
    .qf-mr-feisname { font-size: 1.35rem !important; }
    .qf-mr-cert-btn { width: 100%; min-width: 0; }
    .qf-mr-dancer > tbody > tr > td { font-size: 1.1rem; }
    .qf-mr-card { position: relative; }
    /* event title stays in view while the score sheet scrolls sideways */
    .qf-mr-card table.qf-mr-event, .qf-mr-card table.qf-mr-evhead { display: block; position: sticky; left: 0; width: calc(100vw - 4.6rem) !important; background: var(--color-qf-900); }
    .qf-mr-event > tbody, .qf-mr-evhead > tbody, .qf-mr-event tr, .qf-mr-evhead tr, .qf-mr-event td, .qf-mr-evhead td { display: block; }
    /* non-championship results: one stacked block per competition */
    .qf-mr-nonchamp, .qf-mr-nonchamp > tbody { display: block; min-width: 0; }
    .qf-mr-nonchamp > tbody > tr:first-child { display: none; }
    .qf-mr-nonchamp > tbody > tr {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: .55rem .7rem;
        padding: .9rem 1rem;
        border-bottom: 1px solid var(--qf-purple-line);
    }
    .qf-mr-nonchamp > tbody > tr:last-child { border-bottom: 0; }
    .qf-mr-nonchamp > tbody > tr > td { display: block; padding: 0 !important; border: 0 !important; text-align: left !important; }
    .qf-mr-nonchamp > tbody > tr > td:nth-child(1),
    .qf-mr-nonchamp > tbody > tr > td:nth-child(4),
    .qf-mr-nonchamp > tbody > tr > td:nth-child(5) { grid-column: 1 / -1; }
    .qf-mr-nonchamp > tbody > tr > td:nth-child(2),
    .qf-mr-nonchamp > tbody > tr > td:nth-child(3) {
        padding: .45rem .6rem !important;
        border-radius: 10px;
        background: var(--qf-tint) !important;
        border: 1px solid var(--qf-purple-line) !important;
        text-align: center !important;
    }
    .qf-mr-nonchamp > tbody > tr > td::before {
        display: block;
        font-size: .72rem;
        font-weight: 700;
        letter-spacing: .05em;
        text-transform: uppercase;
        color: var(--qf-purple);
    }
    .qf-mr-nonchamp > tbody > tr > td:nth-child(2)::before { content: "Your Rank"; }
    .qf-mr-nonchamp > tbody > tr > td:nth-child(3)::before { content: "Your Score"; }
    .qf-mr-nonchamp > tbody > tr > td:nth-child(4)::before { content: "Adjudicator's comment"; }
    .qf-mr-nonchamp > tbody > tr > td:nth-child(5)::before { content: "Top 5 scores"; margin-bottom: .2rem; }
    .qf-mr-nonchamp > tbody > tr > td:nth-child(4):not(:has(span:not(:empty))) { display: none; }
    .qf-mr-nonchamp > tbody > tr > td:nth-child(5) .qf-mr-mini { margin: 0; }
}

/* =====================================================================
   My Oireachtas registration summary (FeisReg/MyOireachtasRegistration.aspx)
   ===================================================================== */
.qf-myo-alert {
    display: block;
    margin: 0 0 1.25rem;
    padding: .75rem 1rem;
    border-radius: 10px;
    background: var(--qf-accent);
    color: var(--color-qf-900) !important;
    line-height: 1.45;
}
.qf-myo-layout, .qf-myo-layout > tbody, .qf-myo-layout > tbody > tr, .qf-myo-layout > tbody > tr > td,
.qf-myo-list, .qf-myo-list > tbody {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
}
.qf-myo-pager:empty, tr:has(> .qf-myo-pager:empty) { display: none !important; }
/* one card per Oireachtas: header row + body row */
.qf-myo-list > tbody > tr.qf-myo-head {
    display: block;
    margin-top: 1.25rem;
    border: 2px solid var(--qf-purple-line);
    border-bottom: 0;
    border-radius: var(--qf-radius) var(--qf-radius) 0 0;
    background: var(--color-qf-600);
}
.qf-myo-list > tbody > tr.qf-myo-head:first-child { margin-top: 0; }
.qf-myo-head > td { display: block; padding: .9rem 1.2rem !important; line-height: 1.45; color: var(--qf-ink); }
.qf-myo-head > td > br { display: none; }
.qf-myo-name { display: block; font-size: 1.4rem; font-weight: 800; line-height: 1.25; }
.qf-myo-date { display: block; font-weight: 700; color: var(--qf-purple); }
.qf-myo-list > tbody > tr.qf-myo-body {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 1.25rem;
    padding: 1.1rem 1.2rem 1.2rem;
    background: #ffffff;
    border: 2px solid var(--qf-purple-line);
    border-top: 0;
    border-radius: 0 0 var(--qf-radius) var(--qf-radius);
    box-shadow: var(--qf-shadow);
}
.qf-myo-body > td { display: block; padding: 0 !important; min-width: 0; }
.qf-myo-logo img { display: block; width: 100%; max-width: 150px; height: auto; border-radius: 10px; }
.qf-myo-regs:not(:has(.qf-myo-table))::after {
    content: "No registrations found for your family.";
    color: var(--qf-muted);
    font-style: italic;
}
/* each registration type */
.qf-myo-inner, .qf-myo-inner > tbody, .qf-myo-inner > tbody > tr, .qf-myo-inner > tbody > tr > td { display: block; width: 100%; padding: 0; border: 0; }
.qf-myo-inner { margin-bottom: 1.25rem; }
.qf-myo-regs > .qf-myo-inner:last-of-type { margin-bottom: 0; }
.qf-myo-table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.qf-myo-title > td { padding: 0 0 .45rem !important; }
.qf-myo-sec { font-size: .82rem; letter-spacing: .06em; color: var(--qf-purple); }
.qf-myo-th > th {
    padding: .5rem .6rem;
    background: var(--color-qf-900);
    color: #ffffff;
    font-size: .8rem;
    font-weight: 700;
    text-align: left;
    white-space: nowrap;
}
.qf-myo-th > th:first-child { border-top-left-radius: 8px; }
.qf-myo-th > th:last-child { border-top-right-radius: 8px; }
.qf-myo-row > td { padding: .5rem .6rem; border-bottom: 1px solid var(--qf-purple-line); vertical-align: top; }
.qf-myo-row:nth-child(even) > td { background: var(--qf-tint); }
.qf-myo-row > td:nth-child(-n+2) span { font-weight: 700; }

@media (max-width: 767.98px) {
    .qf-myo-list > tbody > tr.qf-myo-body { grid-template-columns: minmax(0, 1fr); gap: 1rem; padding: 1rem; }
    .qf-myo-logo img { max-width: 110px; }
    .qf-myo-head > td { padding: .85rem 1rem !important; }
    .qf-myo-name { font-size: 1.2rem; }
    /* registrations become stacked rows: name, then competition, then details */
    .qf-myo-table, .qf-myo-table > tbody { display: block; }
    .qf-myo-th { display: none !important; }
    .qf-myo-title { display: block; }
    .qf-myo-title > td { display: block; }
    .qf-myo-row {
        display: flex;
        flex-wrap: wrap;
        gap: .2rem .4rem;
        padding: .6rem .75rem;
        border-bottom: 1px solid var(--qf-purple-line);
    }
    .qf-myo-row:nth-child(even) { background: var(--qf-tint); }
    .qf-myo-row > td { display: block; padding: 0; border: 0; background: transparent !important; }
    .qf-myo-row > td:nth-child(2) { order: -1; }   /* first name before last name */
    .qf-myo-row > td:nth-child(3) { flex: 1 0 100%; }
    .qf-myo-row > td:nth-child(n+4):not(:has(span:empty)) {
        padding: .1rem .5rem;
        border-radius: 999px;
        background: var(--color-qf-600) !important;
        font-size: .8rem;
        font-weight: 600;
    }
    .qf-myo-table:has(th:nth-child(7)) .qf-myo-row > td:nth-child(4)::before { content: "HS: "; }
    .qf-myo-table:has(th:nth-child(7)) .qf-myo-row > td:nth-child(5)::before { content: "SS: "; }
    .qf-myo-table:has(th:nth-child(7)) .qf-myo-row > td:nth-child(7)::before { content: "Speed: "; }
    .qf-myo-table:has(th:nth-child(5)):not(:has(th:nth-child(6))) .qf-myo-row > td:nth-child(4)::before { content: "Team "; }
}

/* =====================================================================
   Website Admin home (Admin/AdminHomePage.aspx): tool groups as tiles
   ===================================================================== */
.qf-adm-grid { columns: 4 260px; column-gap: 1.1rem; }   /* masonry-style: groups pack without gaps */
.qf-adm-group {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    padding: 1rem 1.1rem 1.15rem;
    background: #ffffff;
    border: 2px solid var(--qf-purple-line);
    border-top: 6px solid var(--qf-purple);
    border-radius: var(--qf-radius);
    box-shadow: var(--qf-shadow);
    break-inside: avoid;
    margin-bottom: 1.1rem;
}
.qf-adm-group br { display: none; }
.qf-adm-title {
    display: block;
    margin-bottom: .3rem;
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--qf-ink);
}
.qf-adm-group .qf-adm-btn {
    display: flex;
    width: 100%;
    justify-content: flex-start;
    margin: 0;
    padding: .6rem 1rem;
    border-radius: 10px;
    font-size: .82rem;
    letter-spacing: .02em;
    text-align: left;
}
.qf-adm-tool {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    margin-top: .6rem;
    padding-top: .8rem;
    border-top: 1px dashed var(--qf-purple-line);
}
.qf-adm-tool-label { font-size: .85rem; font-weight: 700; color: var(--qf-muted); }
.qf-adm-input { width: 100% !important; }
.qf-adm-tool .qf-adm-btn { background: #ffffff; color: var(--qf-purple) !important; border: 2px solid var(--qf-purple); box-shadow: none; }
.qf-adm-tool .qf-adm-btn:hover { background: var(--color-qf-600); }

/* =====================================================================
   Teacher homepage (Teacher/TeacherHome.aspx)
   ===================================================================== */
.qf-tch-layout, .qf-tch-layout > tbody, .qf-tch-layout > tbody > tr, .qf-tch-layout > tbody > tr > td { display: block; width: 100%; padding: 0; border: 0; }
.qf-tch-pager:empty, tr:has(> .qf-tch-pager:empty) { display: none !important; }
/* profile card */
.qf-tch-profile {
    display: block;
    width: 100%;
    margin-bottom: 1.25rem;
    padding: .4rem 1.2rem 1.1rem;
    background: #ffffff;
    border: 2px solid var(--qf-purple-line);
    border-top: 6px solid var(--qf-purple);
    border-radius: var(--qf-radius);
    box-shadow: var(--qf-shadow);
}
.qf-tch-profile > tbody { display: block; }
.qf-tch-profile > tbody > tr {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr);
    gap: .25rem 1rem;
    align-items: start;
    padding: .7rem 0;
    border-bottom: 1px solid var(--qf-purple-line);
}
.qf-tch-profile > tbody > tr:has(> .qf-tch-btns),
.qf-tch-profile > tbody > tr:has(> .qf-tch-note),
.qf-tch-profile > tbody > tr:has(> .qf-tch-regions) { display: block; }
.qf-tch-profile > tbody > tr:has(> .qf-tch-btns) { border-bottom: 0; padding-bottom: 0; }
.qf-tch-profile > tbody > tr > td { display: block; padding: 0; min-width: 0; overflow-wrap: anywhere; }
.qf-tch-k { font-weight: 700; color: var(--qf-purple); }
.qf-tch-profile > tbody > tr:first-child > td:not(.qf-tch-k):has(b) { font-size: 1.2rem; }
.qf-tch-profile select { width: 100%; max-width: 380px; }
.qf-tch-profile select + br { display: block; content: ""; margin-top: .5rem; }
.qf-tch-plain, .qf-tch-plain > tbody, .qf-tch-plain tr, .qf-tch-plain td { display: block; padding: 0 !important; border: 0; }
.qf-tch-plain td:has(> span) { display: inline-block; margin: 0 .35rem .35rem 0; padding: .2rem .7rem !important; border-radius: 999px; background: var(--color-qf-600); font-weight: 600; font-size: .9rem; }
.qf-tch-plain .qf-tch-plain { display: flex; flex-wrap: wrap; }
.qf-tch-plain .qf-tch-plain > tbody { display: contents; }
.qf-tch-plain .qf-tch-plain tr { display: contents; }
.qf-tch-regions-label { display: block; margin-bottom: .5rem; }
.qf-tch-note { font-size: .88rem; color: var(--qf-muted); }
.qf-tch-btns { display: flex !important; flex-wrap: wrap; gap: .6rem; padding-top: .3rem !important; }
.qf-tch-btns .quickfeisButton { min-width: 10rem; }
/* tool cards */
.qf-tch-card {
    margin-bottom: 1.25rem;
    padding: 1.1rem 1.2rem 1.2rem;
    background: #ffffff;
    border: 2px solid var(--qf-purple-line);
    border-radius: var(--qf-radius);
    box-shadow: var(--qf-shadow);
}
.qf-tch-h { margin: 0 0 .85rem; font-size: 1.15rem; font-weight: 800; color: var(--qf-ink); }
.qf-tch-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: .7rem; }
.qf-tch-grid .qf-tch-btn { width: 100%; min-height: 3.2rem; margin: 0; border-radius: 12px; font-size: .95rem; }
.qf-tch-major-row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .8rem 1rem; }
.qf-tch-major-field { flex: 1 1 18rem; min-width: 0; }
.qf-tch-major-field .qf-auth-label { display: block; margin-bottom: .35rem; }
.qf-tch-major-field select { width: 100%; }
.qf-tch-major .qf-tch-btn { min-height: 2.7rem; min-width: 15rem; }
@media (max-width: 575.98px) {
    .qf-tch-profile { padding: .3rem 1rem 1rem; }
    .qf-tch-profile > tbody > tr { grid-template-columns: minmax(0, 1fr); gap: .15rem; }
    .qf-tch-k { font-size: .85rem; }
    .qf-tch-btns .quickfeisButton, .qf-tch-major .qf-tch-btn { width: 100%; min-width: 0; }
}

/* Judge homepage (Judge/JudgeHomePage.aspx) - profile and tools reuse the qf-tch-* teacher styles */
.qf-jdg-conflicts {
    display: block;
    width: 100%;
    margin-bottom: 1.25rem;
    padding: 1rem 1.2rem 1.1rem;
    background: #ffffff;
    border: 2px solid var(--qf-purple-line);
    border-radius: var(--qf-radius);
    box-shadow: var(--qf-shadow);
}
.qf-jdg-conflicts > tbody { display: block; }
.qf-jdg-conflicts > tbody > tr { display: flex; align-items: center; gap: .75rem; }
.qf-jdg-conflicts > tbody > tr > td, .qf-jdg-conflicts > tbody > tr > th { display: block; padding: 0; border: 0; }
.qf-jdg-th > th { margin-bottom: .6rem; font-size: 1.15rem; font-weight: 800; color: var(--qf-ink); text-align: left; background: none; }
.qf-jdg-row { padding: .5rem .75rem; margin-bottom: .45rem; border-radius: 10px; background: var(--qf-tint); border: 1px solid var(--qf-purple-line); }
.qf-jdg-row > td:first-child, .qf-jdg-insert > td:first-child { flex: 1 1 auto; min-width: 0; font-weight: 700; }
.qf-jdg-row span { width: auto !important; }
.qf-jdg-row .quickfeisButton {
    padding: .35rem .9rem;
    background: #ffffff;
    color: var(--qf-purple) !important;
    border: 2px solid var(--qf-purple);
    box-shadow: none;
    font-size: .8rem;
}
.qf-jdg-row .quickfeisButton:hover { background: var(--color-qf-600); }
.qf-jdg-insert > td:first-child { flex: 0 1 420px; }
.qf-jdg-insert { margin-top: .5rem; padding-top: .75rem; border-top: 1px dashed var(--qf-purple-line); }
.qf-jdg-insert select { width: 100%; max-width: 420px; }
.qf-jdg-insert .quickfeisButton { min-width: 7rem; }
.qf-jdg-empty { margin-bottom: 1.25rem; }
.qf-jdg-empty td { padding: .8rem 1rem; border-radius: 10px; background: var(--qf-tint); border: 1px solid var(--qf-purple-line); font-style: italic; }
@media (max-width: 575.98px) {
    .qf-jdg-conflicts { padding: .9rem 1rem 1rem; }
    .qf-jdg-insert { flex-wrap: wrap; }
    .qf-jdg-insert > td { width: 100%; }
    .qf-jdg-insert .quickfeisButton { width: 100%; }
}

/* Oireachtas Admin home (OireachtasAdmin/OireachtasAdminHome.aspx) - tiles reuse qf-adm-* */
.qf-oa-picker {
    margin-bottom: 1.2rem;
    padding: 1rem 1.2rem 1.1rem;
    background: var(--qf-tint);
    border: 2px solid var(--qf-accent);
    border-radius: var(--qf-radius);
}
.qf-oa-picker .qf-auth-label { display: block; margin-bottom: .4rem; }
.qf-oa-select { width: 100%; max-width: 520px; font-size: 1.05rem; }
.qf-oa-grid { columns: 3 260px; }

/* =====================================================================
   Oireachtas admin registration summary (OireachtasAdmin/RegistrationSummary.aspx)
   ===================================================================== */
.qf-ors-return { margin-bottom: 1rem; }
.qf-ors-wrap {
    overflow-x: auto;
    background: #ffffff;
    border: 2px solid var(--qf-purple-line);
    border-radius: var(--qf-radius);
    box-shadow: var(--qf-shadow);
}
.qf-ors-layout, .qf-ors-layout > tbody, .qf-ors-layout > tbody > tr, .qf-ors-layout > tbody > tr > td { display: block; width: 100%; padding: 0; border: 0; }
.qf-ors-pager:not(:has(*)) { display: none; }
.qf-ors-pager { padding: .6rem !important; text-align: center; }
.qf-ors-table { width: 100%; min-width: 760px; border-collapse: collapse; font-size: .9rem; }
.qf-ors-table > tbody > .qf-ors-th > th {
    position: sticky;
    top: 0;
    padding: .6rem .7rem;
    background: var(--color-qf-900);
    color: #ffffff;
    font-size: .8rem;
    font-weight: 700;
    white-space: nowrap;
    text-align: left;
}
.qf-ors-table > tbody > .qf-ors-th > th.qf-c { text-align: center; }
.qf-ors-table > tbody > .qf-ors-row > td { padding: .5rem .7rem; border-bottom: 1px solid var(--qf-purple-line); vertical-align: middle; }
.qf-ors-table > tbody > .qf-ors-row:nth-child(odd) > td { background: var(--qf-tint); }
.qf-ors-table > tbody > .qf-ors-row > td:nth-child(2),
.qf-ors-table > tbody > .qf-ors-row > td:nth-child(n+4) { font-weight: 700; }
.qf-ors-table > tbody > .qf-ors-open > td { background: var(--color-qf-600) !important; border-bottom: 0; }
.qf-ors-btn { padding: .35rem .85rem; font-size: .78rem; white-space: nowrap; }
.qf-ors-open .qf-ors-btn { background: #ffffff; color: var(--qf-purple) !important; border: 2px solid var(--qf-purple); box-shadow: none; }
/* expanded details */
.qf-ors-detail > td { padding: .75rem .9rem 1rem !important; background: var(--color-qf-600); border-bottom: 2px solid var(--color-qf-700); }
.qf-ors-detail > td > table { width: 100%; }
.qf-ors-detail table[runat], .qf-ors-detail > td > table > tbody > tr > td { padding: 0; }
.qf-ors-sub { width: 100%; border-collapse: collapse; background: #ffffff; font-size: .85rem; border-radius: 10px; overflow: hidden; margin-bottom: .6rem; }
.qf-ors-sub > tbody > .qf-ors-th > th { padding: .45rem .6rem; background: var(--color-qf-800); color: #ffffff; font-size: .75rem; white-space: nowrap; text-align: left; }
.qf-ors-sub > tbody > .qf-ors-th > th.qf-c { text-align: center; }
.qf-ors-sub > tbody > tr > td { padding: .4rem .6rem; border-bottom: 1px solid var(--qf-purple-line); }
.qf-ors-sub > tbody > .qf-ors-row:nth-child(odd) > td { background: var(--qf-tint); }
.qf-ors-sub > tbody > .qf-ors-open > td { background: var(--color-qf-500) !important; }
.qf-ors-sub .qf-ors-detail > td { background: var(--qf-tint); border-bottom: 0; }

/* Oireachtas financial summary (OireachtasAdmin/FinancialSummary.aspx) - tables reuse qf-ors-* */
.qf-r { text-align: right !important; }
.qf-nw { white-space: nowrap; }
.qf-fin-summary {
    margin-bottom: 1.1rem;
    padding: 1rem 1.2rem 1.1rem;
    background: #ffffff;
    border: 2px solid var(--qf-purple-line);
    border-radius: var(--qf-radius);
    box-shadow: var(--qf-shadow);
}
.qf-fin-h { margin: 0 0 .75rem; font-size: 1.15rem; font-weight: 800; color: var(--qf-ink); }
.qf-ors-table.qf-fin-fees { min-width: 0; max-width: 640px; }
.qf-ors-table.qf-fin-fees > tbody > .qf-ors-row > td:nth-child(2) { font-weight: 400; }
.qf-fin-total, .qf-fin-total > tbody, .qf-fin-total > tbody > tr, .qf-fin-total > tbody > tr > td { display: block; width: auto !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
.qf-fin-total { margin-top: .9rem; }
.qf-fin-total > tbody > tr > td > br { display: none; }
.qf-fin-total > tbody > tr > td {
    display: inline-flex !important;
    align-items: baseline;
    gap: .75rem;
    padding: .6rem 1rem !important;
    border-radius: 12px;
    background: var(--color-qf-900) !important;
    color: #ffffff !important;
}
.qf-fin-total-k { font-size: .85rem; letter-spacing: .06em; text-transform: uppercase; color: var(--color-qf-600); }
.qf-fin-total-v { font-size: 1.5rem; font-weight: 800; color: var(--qf-accent) !important; }
.qf-fin-note { margin: .5rem 0 0; font-size: .85rem; color: var(--qf-muted); }
.qf-fin-download { margin-bottom: 1rem; }
.qf-fin-hidden { display: none; }
.qf-ors-table.qf-fin-schools { min-width: 640px; }
.qf-fin-schools > tbody > .qf-ors-th > th:nth-child(n+3) { text-align: right; }
.qf-fin-schools > tbody > .qf-ors-row > td:nth-child(3) { font-weight: 700; }
.qf-ors-detail .qf-ors-sub:has(th:nth-child(4):last-child) th:nth-child(2) { text-align: center; }
.qf-ors-detail .qf-ors-sub:has(th:nth-child(4):last-child) th:nth-child(n+3) { text-align: right; }
.qf-fin-sub-h { display: block; margin: .3rem 0 .4rem; font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; color: var(--qf-ink); }
.qf-ors-detail .qf-ors-layout + br { display: none; }
.qf-fin-empty td { padding: .7rem 1rem; border-radius: 10px; background: var(--qf-tint); border: 1px solid var(--qf-purple-line); font-style: italic; }

/* Oireachtas invoice summary (OireachtasAdmin/InvoiceSummary.aspx) - tables reuse qf-ors-* */
.qf-inv-stats { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 1.1rem; }
.qf-inv-stat, .qf-inv-stat > tbody, .qf-inv-stat > tbody > tr { display: block; width: auto !important; border: 0 !important; background: transparent !important; }
.qf-inv-stat > tbody > tr > td {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    min-width: 12rem;
    padding: .75rem 1.1rem !important;
    border: 0 !important;
    border-radius: 12px;
    background: var(--color-qf-900) !important;
    color: #ffffff !important;
}
.qf-inv-k { font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; color: var(--color-qf-600); }
.qf-inv-v { font-size: 1.5rem; font-weight: 800; color: var(--qf-accent) !important; }
.qf-inv-stat-sm > tbody > tr > td { background: #ffffff !important; color: var(--qf-ink) !important; border: 2px solid var(--qf-purple-line) !important; }
.qf-inv-stat-sm .qf-inv-k { color: var(--qf-muted); }
.qf-inv-stat-sm .qf-inv-v { font-size: 1.15rem; color: var(--qf-ink) !important; }
.qf-inv-filter { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; margin-bottom: 1rem; }
.qf-inv-filter .qf-auth-label { margin: 0; }
.qf-inv-filter .qf-fam-pills td { padding-bottom: 0; }
.qf-inv-filter .qf-fam-pills label { min-width: 0; padding: .35rem .9rem; font-size: .85rem; }
.qf-inv-sort { padding: .6rem .8rem; font-size: .85rem; font-weight: 600; color: var(--qf-muted); }
.qf-inv-sort a { font-weight: 700; }
.qf-ors-table.qf-inv-table { min-width: 860px; }
.qf-inv-table > tbody > .qf-ors-th > th { vertical-align: bottom; }
.qf-inv-table > tbody > .qf-ors-row > td:nth-child(3) { font-weight: 400; }
.qf-inv-table > tbody > .qf-ors-row > td:nth-child(n+4):nth-child(-n+6) { text-align: right; }
.qf-inv-table > tbody > .qf-ors-th > th:nth-child(n+4):nth-child(-n+6) { text-align: right; }
.qf-inv-table > tbody > .qf-ors-row:not(.qf-ors-open) > td:last-child { text-align: right; }
.qf-inv-table > tbody > .qf-ors-open { background: var(--color-qf-600); }
.qf-inv-payments input[type="text"] { width: 100%; min-width: 5rem; }
.qf-inv-payments td:nth-child(4) input[type="text"] { min-width: 14rem; }
.qf-inv-payments td:nth-child(3) { white-space: nowrap; }
.qf-inv-payments td:nth-child(3) input[type="text"] { width: calc(100% - 1rem); min-width: 5rem; }
.qf-inv-dollar { margin-right: .2rem; font-weight: 700; }
.qf-inv-payments td:last-child { white-space: nowrap; text-align: right; }
.qf-inv-payments .qf-ors-btn { margin-left: .25rem; }
.qf-inv-del, input.quickfeisButton.qf-inv-del { background: #ffffff; color: var(--qf-purple) !important; border: 2px solid var(--qf-purple); box-shadow: none; }
input.quickfeisButton.qf-inv-del:hover { background: var(--color-qf-600); }
.qf-inv-insert > td { background: #ffffff !important; border-top: 2px dashed var(--qf-purple-line); }
.qf-inv-payments .qf-ors-open > td { background: var(--color-qf-500) !important; }
.qf-inv-filter .qf-fam-pills, .qf-inv-filter .qf-fam-pills > tbody, .qf-inv-filter .qf-fam-pills tr { display: flex; flex-wrap: wrap; gap: .4rem; }
.qf-inv-filter .qf-fam-pills td { display: block; padding: 0; }
@media (max-width: 575.98px) {
    .qf-inv-stats { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
    .qf-inv-stat > tbody > tr > td { min-width: 0; height: 100%; padding: .6rem .8rem !important; }
    .qf-inv-stat, .qf-inv-stat > tbody, .qf-inv-stat > tbody > tr { height: 100%; }
    .qf-inv-v { font-size: 1.15rem; }
    .qf-inv-stat-sm .qf-inv-v { font-size: 1rem; }
}

/* Oireachtas program sales (OireachtasAdmin/ProgramSalesSummary.aspx) - picker reuses qf-oa-picker, figures reuse qf-inv-k / qf-inv-v */
.qf-ps-fv, .qf-ps-fv > tbody, .qf-ps-fv > tbody > tr, .qf-ps-fv > tbody > tr > td { display: block; width: 100% !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
.qf-ps-stats, .qf-ps-stats > tbody { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; width: 100%; }
.qf-ps-stats > tbody { grid-column: 1 / -1; }
.qf-ps-stats > tbody > tr {
    display: flex;
    flex-direction: column;
    gap: .2rem;
    padding: .9rem 1.2rem;
    border-radius: 12px;
    background: #ffffff;
    border: 2px solid var(--qf-purple-line);
}
.qf-ps-stats > tbody > tr:last-child { background: var(--color-qf-900); border-color: var(--color-qf-900); }
.qf-ps-stats > tbody > tr > td { display: block; padding: 0; border: 0; }
.qf-ps-stats .qf-inv-k { color: var(--qf-muted); }
.qf-ps-stats .qf-inv-v { font-size: 1.6rem; color: var(--qf-ink) !important; }
.qf-ps-stats > tbody > tr:last-child .qf-inv-k { color: var(--color-qf-600); }
.qf-ps-stats > tbody > tr:last-child .qf-inv-v { color: var(--qf-accent) !important; }
@media (max-width: 575.98px) {
    .qf-ps-stats > tbody { grid-template-columns: 1fr 1fr; }
    .qf-ps-stats > tbody > tr:last-child { grid-column: 1 / -1; }
    .qf-ps-stats .qf-inv-v { font-size: 1.3rem; }
}

/* =====================================================================
   Oireachtas team approval (OireachtasAdmin/TeamApproval.aspx)
   ===================================================================== */
.qf-ta-layout, .qf-ta-layout > tbody, .qf-ta-layout > tbody > tr, .qf-ta-layout > tbody > tr > td,
.qf-ta-list, .qf-ta-list > tbody, .qf-ta-item, .qf-ta-item > td { display: block; width: 100% !important; padding: 0; border: 0; }
.qf-ta-card {
    width: 100%;
    margin-bottom: 1.25rem;
    border-collapse: separate;
    border-spacing: 0;
    background: #ffffff;
    border: 2px solid var(--qf-purple-line);
    border-radius: var(--qf-radius);
    box-shadow: var(--qf-shadow);
    overflow: hidden;
}
.qf-ta-head > td {
    padding: .55rem .8rem;
    background: var(--color-qf-900);
    color: #ffffff;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .03em;
    text-align: left;
}
.qf-ta-head > td.qf-c { text-align: center; }
.qf-ta-data > td { padding: .75rem .8rem; border-bottom: 1px solid var(--qf-purple-line); vertical-align: top; }
.qf-ta-comp span { display: block; }
.qf-ta-compnum { font-size: 1.15rem; font-weight: 800; color: var(--qf-ink); }
.qf-ta-comp > br { display: none; }
.qf-ta-years { display: block; margin-top: .2rem; font-size: .8rem; color: var(--qf-muted); }
.qf-ta-years span { display: inline !important; }
.qf-ta-team span { font-size: 1.2rem; font-weight: 800; }
.qf-ta-plain, .qf-ta-plain > tbody, .qf-ta-plain > tbody > tr, .qf-ta-plain > tbody > tr > td { display: block; width: 100%; padding: 0; border: 0; }
.qf-ta-members { width: 100%; border-collapse: collapse; font-size: .85rem; }
.qf-ta-members td { padding: .3rem .5rem; border-bottom: 1px solid var(--qf-purple-line); }
.qf-ta-members tr:last-child td { border-bottom: 0; }
.qf-ta-count { display: block; font-size: 2rem; font-weight: 800; line-height: 1; color: var(--qf-ink); }
.qf-ta-countcell > br { display: none; }
.qf-ta-warn {
    display: inline-block;
    margin-top: .6rem;
    padding: .3rem .6rem;
    border-radius: 8px;
    background: var(--qf-accent);
    color: var(--color-qf-900);
    font-size: .78rem;
    font-weight: 700;
}
.qf-ta-warn-h { display: block; font-size: .68rem; letter-spacing: .06em; text-transform: uppercase; }
.qf-ta-young { font-weight: 800; }
.qf-ta-comment > td { padding: .8rem .9rem 0; }
.qf-ta-comment:last-child > td { padding-bottom: 1rem; }
.qf-ta-comment .qf-auth-label { display: block; margin-bottom: .35rem; }
.qf-ta-text { display: block; width: 100% !important; min-height: 7rem; resize: vertical; }
textarea.qf-ta-text[readonly] { background: var(--color-qf-600); border-color: var(--color-qf-600); }
.qf-ta-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; margin-top: .8rem; }
.qf-ta-actions .qf-fam-pills, .qf-ta-actions .qf-fam-pills > tbody, .qf-ta-actions .qf-fam-pills tr { display: flex; flex-wrap: wrap; gap: .4rem; }
.qf-ta-actions .qf-fam-pills td { display: block; padding: 0; }
.qf-ta-save { min-width: 8rem; }
.qf-ta-by { font-size: .85rem; color: var(--qf-muted); }
.qf-ta-by span { font-weight: 700; }
@media (max-width: 767.98px) {
    .qf-ta-card, .qf-ta-card > tbody { display: block; }
    .qf-ta-head { display: none; }
    .qf-ta-data { display: grid; grid-template-columns: 1fr auto; gap: .5rem .9rem; padding: .9rem; border-bottom: 1px solid var(--qf-purple-line); }
    .qf-ta-data > td { display: block; padding: 0; border: 0; }
    .qf-ta-data > td:nth-child(2), .qf-ta-data > td:nth-child(4), .qf-ta-data > td:nth-child(5) { grid-column: 1 / -1; }
    .qf-ta-data > td:nth-child(1) { grid-column: 1; grid-row: 1; }
    .qf-ta-data > td:nth-child(6) { grid-column: 2; grid-row: 1; }
    .qf-ta-data > td:nth-child(3) { grid-column: 1 / -1; text-align: left !important; }
    .qf-ta-data > td:nth-child(3)::before { content: "Team "; font-weight: 700; }
    .qf-ta-data > td:nth-child(2)::before { content: "School"; display: block; font-size: .72rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--qf-purple); }
    .qf-ta-data > td:nth-child(4)::before { content: "Dance"; display: block; font-size: .72rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--qf-purple); }
    .qf-ta-data > td:nth-child(5)::before { content: "Team members"; display: block; margin-bottom: .2rem; font-size: .72rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--qf-purple); }
    .qf-ta-comment, .qf-ta-comment > td { display: block; }
    .qf-ta-save { width: 100%; }
}

/* Oireachtas family fee check (OireachtasAdmin/FamilyFeeCheck.aspx) - tables reuse qf-ors-* */
.qf-ors-table.qf-ffc-table { min-width: 860px; }
.qf-ffc-table > tbody > .qf-ors-th > th a { color: #ffffff; text-decoration: none; }
.qf-ffc-table > tbody > .qf-ors-th > th a:hover { color: var(--qf-accent); text-decoration: underline; }
.qf-ffc-table > tbody > .qf-ors-th > th a::after { content: " \2195"; opacity: .55; font-weight: 400; }
.qf-ffc-table > tbody > .qf-ffc-row > td { border-bottom: 0; padding-bottom: .2rem; font-weight: 400 !important; }
.qf-ffc-table > tbody > .qf-ffc-row > td:nth-child(1),
.qf-ffc-table > tbody > .qf-ffc-row > td:nth-child(2) { font-weight: 700 !important; }
.qf-ffc-table > tbody > .qf-ffc-row > td:nth-child(4) span { display: inline-block; min-width: 2rem; padding: .1rem .5rem; border-radius: 999px; background: var(--color-qf-900); color: #ffffff; font-weight: 800; }
.qf-ffc-detail > td { padding: 0 .7rem .6rem; border-bottom: 1px solid var(--qf-purple-line); }
.qf-ffc-detail .qf-ors-layout, .qf-ffc-detail .qf-ors-layout > tbody, .qf-ffc-detail .qf-ors-layout > tbody > tr, .qf-ffc-detail .qf-ors-layout > tbody > tr > td { display: block; padding: 0; }
.qf-ffc-dancers, .qf-ffc-dancers > tbody { display: flex; flex-wrap: wrap; gap: .35rem; }
.qf-ffc-dancers tr, .qf-ffc-dancers td { display: block; padding: 0; border: 0; }
.qf-ffc-hidden { display: none !important; }
.qf-ffc-dancer td { padding: .15rem .65rem; border-radius: 999px; background: var(--color-qf-600); font-size: .82rem; font-weight: 600; }
.qf-ffc-detail .qf-fin-empty td { padding: .3rem .7rem; font-size: .82rem; }

/* Oireachtas world qualifiers (OireachtasAdmin/WQ.aspx) - table reuses qf-ors-* */
.qf-wq-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 1rem; }
.qf-wq-actions .qf-ors-return { margin-bottom: 0; }
input.quickfeisButton.qf-wq-dl { background: var(--color-qf-900); }
input.quickfeisButton.qf-wq-dl:hover { background: var(--qf-purple); }
.qf-ors-table.qf-wq-table { min-width: 980px; }
.qf-wq-table > tbody > .qf-ors-row > td { font-weight: 400 !important; }
.qf-wq-table > tbody > .qf-ors-row > td:nth-child(4),
.qf-wq-table > tbody > .qf-ors-row > td:nth-child(5),
.qf-wq-table > tbody > .qf-ors-row > td:nth-child(8) { font-weight: 700 !important; }
.qf-wq-table > tbody > .qf-ors-row > td:nth-child(6) { white-space: nowrap; }
@media (max-width: 575.98px) { .qf-wq-actions .quickfeisButton { width: 100%; } }

/* =====================================================================
   Feis accounting (FeisAdmin/FeisAccounting.aspx) - lists reuse qf-ors-*
   ===================================================================== */
.qf-ors-th > td { background: var(--color-qf-900); }
.qf-fa-feisfv, .qf-fa-feisfv > tbody, .qf-fa-feisfv > tbody > tr, .qf-fa-feisfv > tbody > tr > td { display: block; width: 100% !important; padding: 0; border: 0; }
.qf-fa-feisname { display: block; margin-bottom: 1rem; font-size: 1.6rem; font-weight: 800; color: var(--qf-ink); }
.qf-fa-summary, .qf-fa-summary > tbody { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 1rem; width: 100%; margin-bottom: 1.25rem; }
.qf-fa-summary > tbody { grid-column: 1 / -1; }
.qf-fa-summary > tbody > tr { display: contents; }
.qf-fa-summary > tbody > tr > td {
    display: block;
    padding: 1rem 1.1rem 1.1rem;
    background: #ffffff;
    border: 2px solid var(--qf-purple-line);
    border-top: 6px solid var(--qf-purple);
    border-radius: var(--qf-radius);
    box-shadow: var(--qf-shadow);
}
.qf-fa-summary > tbody > tr.qf-fa-video > td { grid-column: 1 / -1; }
.qf-fa-summary > tbody > tr.qf-fa-video > td:not(:has(table)) { display: none; }
.qf-fa-h { display: block; margin: 0 0 .6rem; font-size: 1.1rem; font-weight: 800; color: var(--qf-ink); }
.qf-fa-h3 { margin-top: .5rem; }
.qf-fa-plain, .qf-fa-plain > tbody, .qf-fa-plain > tbody > tr, .qf-fa-plain > tbody > tr > td,
.qf-fa-fv, .qf-fa-fv > tbody, .qf-fa-fv > tbody > tr, .qf-fa-fv > tbody > tr > td { display: block; width: 100% !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
.qf-fa-kv { width: 100%; border-collapse: collapse; font-size: .92rem; }
.qf-fa-kv td { padding: .35rem 0; border-bottom: 1px solid var(--qf-purple-line); vertical-align: top; }
.qf-fa-kv td:last-child { text-align: right; white-space: nowrap; padding-left: .75rem; font-weight: 700; }
.qf-fa-kv tr:last-child td { border-bottom: 0; }
.qf-fa-sub td { font-size: .8rem; font-style: italic; color: var(--qf-muted); }
.qf-fa-sub td:first-child { padding-left: .9rem; }
.qf-fa-total td { border-top: 2px solid var(--qf-purple); font-weight: 800; }
.qf-fa-balance td { padding-top: .6rem; border-top: 2px solid var(--qf-purple); }
.qf-fa-balance td:first-child { text-align: left !important; }
.qf-fa-balance span { font-size: 1.2rem; font-weight: 800; color: var(--qf-ink); }
.qf-fa-fv + .qf-fa-fv { margin-top: .4rem; }
.qf-fa-btn { width: 100%; margin-top: .9rem; font-size: .8rem; }
.qf-fa-wrap { margin-bottom: 1.25rem; }
.qf-ors-table.qf-fa-table { min-width: 640px; }
.qf-fa-table > tbody > .qf-ors-th > th a { color: #ffffff; text-decoration: none; }
.qf-fa-table > tbody > .qf-ors-th > th a::after { content: " \2195"; opacity: .55; font-weight: 400; }
.qf-fa-table > tbody > .qf-ors-row > td { font-weight: 400 !important; }
.qf-fa-table:has(a) > tbody > .qf-ors-row > td:last-child { font-weight: 700 !important; }
.qf-fa-table:has(a) > tbody > .qf-ors-th > th:last-child { text-align: right; }
.qf-fa-table:not(:has(a)) > tbody > .qf-ors-row > td:nth-child(2) { font-weight: 700 !important; }

/* Stage schedule calculations (FeisAdmin/StageCalculations.aspx) - table reuses qf-ors-* */
.qf-sc-picker { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; align-items: flex-start; }
.qf-sc-field { min-width: 0; }
.qf-sc-field:first-child { flex: 1 1 18rem; }
.qf-sc-field .qf-auth-label { display: block; margin-bottom: .4rem; }
.qf-sc-pills, .qf-sc-pills > tbody { display: flex; flex-wrap: wrap; gap: .4rem; }
.qf-sc-pills tr { display: contents; }
.qf-sc-pills td { display: block; padding: 0 !important; }
.qf-sc-pills label { min-width: 0; padding: .35rem .9rem; font-size: .82rem; }
.qf-sc-check { align-self: flex-end; padding-bottom: .35rem; }
.qf-sc-check label { margin-left: .35rem; font-weight: 700; }
.qf-sc-table { min-width: 0 !important; }
.qf-sc-table > tbody > .qf-ors-row > td { font-weight: 400 !important; min-width: 3.2rem; }
.qf-sc-table > tbody > .qf-ors-row > td:first-child,
.qf-sc-table > tbody > .qf-ors-row > td:last-child { font-weight: 800 !important; }
.qf-sc-table > tbody > .qf-ors-row > td:first-child { background: var(--color-qf-600) !important; }
.qf-sc-table > tbody > .qf-ors-row > td:last-child { border-left: 2px solid var(--color-qf-700); }
.qf-sc-wrap { margin-bottom: 1rem; }
.qf-sc-dl { min-width: 10rem; }

/* End of feis report (FeisAdmin/EndOfFeisReport.aspx) - tables reuse qf-ors-* */
.qf-efr-hero, .qf-efr-hero > tbody, .qf-efr-hero > tbody > tr, .qf-efr-hero > tbody > tr > td { display: block; width: 100% !important; padding: 0; border: 0; }
.qf-efr-hero-t { width: 100%; margin-bottom: 1.25rem; }
.qf-efr-hero-t > tbody > tr { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.qf-efr-hero-t td { display: block; padding: 0; }
.qf-efr-hero-text br { display: none; }
.qf-efr-name { display: block; font-size: 1.7rem; font-weight: 800; line-height: 1.2; color: var(--qf-ink); }
.qf-efr-region { display: block; margin: .15rem 0 .5rem; font-size: 1.05rem; color: var(--qf-purple); }
.qf-efr-date { display: block; font-size: 1.2rem; }
.qf-efr-days { font-size: .95rem; color: var(--qf-muted); }
.qf-efr-days + .qf-efr-days::before { content: " - "; }
.qf-efr-logo { display: block; width: 140px; height: auto; border-radius: 12px; }
.qf-efr-h { display: block; margin-top: .25rem; }
.qf-efr-wrap { margin-bottom: 1.5rem; }
.qf-efr-table { min-width: 620px !important; }
.qf-efr-table > tbody > .qf-ors-row > td { font-weight: 400 !important; }
.qf-efr-table > tbody > .qf-ors-row > td:first-child { font-weight: 700 !important; }
.qf-efr-group > td { padding: .45rem .6rem .1rem; background: var(--color-qf-900); color: var(--qf-accent); font-size: .72rem; letter-spacing: .08em; }
.qf-efr-group > td b { font-weight: 800; }
.qf-efr-group > td[colspan] { border-bottom: 2px solid var(--color-qf-700); }
.qf-ors-th > .qf-efr-gap, .qf-efr-group > .qf-efr-gap { background: var(--color-qf-900); border-bottom: 0; }
.qf-efr-gap { width: .75rem; padding: 0 !important; }
.qf-ors-row > .qf-efr-gap { background: #ffffff !important; border-bottom: 0 !important; }
.qf-efr-table > tbody > .qf-ors-th > th { text-align: center; }
.qf-efr-table > tbody > .qf-ors-th > th:first-child { text-align: left; }
@media (max-width: 575.98px) {
    .qf-efr-hero-t > tbody > tr { flex-direction: column-reverse; align-items: flex-start; }
    .qf-efr-logo { width: 100px; }
    .qf-efr-name { font-size: 1.35rem; }
}

/* Feis registrations by competition (FeisAdmin/RegistrationByCompetition.aspx) - reuses qf-ors-* / qf-sc-* */
.qf-rbc-home { display: inline-block; margin-bottom: .9rem; font-weight: 700; color: var(--qf-purple); }
.qf-rbc-home:last-child { margin: 0; }
.qf-ors-table.qf-rbc-table { min-width: 640px; }
.qf-rbc-table > tbody > .qf-ors-row > td { font-weight: 400 !important; }
.qf-rbc-table > tbody > .qf-ors-row > td:first-child,
.qf-rbc-table > tbody > .qf-ors-row > td:nth-child(6) { font-weight: 700 !important; }
.qf-ors-pager .quickfeisButton { margin: 0 .2rem; }

/* Feis registration list (FeisAdmin/RegistrationByCompetitor.aspx) - reuses qf-ors-* / qf-rbc-* */
.qf-ors-table.qf-rbr-table { min-width: 980px; }
.qf-rbr-table > tbody > tr:not(.qf-ors-open) > :first-child { display: none; }   /* hidden competitor id column */
.qf-rbr-table > tbody > .qf-ors-row > td { font-weight: 400 !important; }
.qf-rbr-table > tbody > .qf-ors-row > td:nth-child(2),
.qf-rbr-table > tbody > .qf-ors-row > td:nth-child(3) { font-weight: 700 !important; }
.qf-rbr-table > tbody > .qf-ors-row > td:nth-child(7) { font-size: .85rem; }
.qf-rbr-table > tbody > tr > :nth-child(4) { white-space: nowrap; }   /* DOB on one line */
.qf-ors-pager a, .qf-ors-pager span { display: inline-block; margin: 0 .15rem; padding: .2rem .5rem; font-weight: 700; }

/* Feis registration summary (FeisAdmin/FeisRegistrationSummary.aspx) - hero reuses qf-efr-*, tables reuse qf-ors-* */
.qf-frs-tabs { margin-bottom: 1rem; }
.qf-frs-wrap { padding: 0; }
.qf-frs-totfv, .qf-frs-totfv > tbody, .qf-frs-totfv > tbody > tr, .qf-frs-totfv > tbody > tr > td { display: block; width: 100% !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
.qf-frs-totfv > tbody > tr > td > br { display: none; }
.qf-ors-table.qf-frs-totals { min-width: 520px; }
.qf-frs-totals > tbody > .qf-ors-th > td { padding: .6rem .7rem; background: var(--color-qf-900); color: #ffffff; font-size: .8rem; text-align: center; }
.qf-frs-totals > tbody > .qf-ors-th > td span { color: #ffffff !important; }
.qf-frs-totals > tbody > .qf-ors-row > td { text-align: center; font-size: 1.05rem; }
.qf-frs-totals > tbody > .qf-ors-row > td:first-child { text-align: left; font-size: .85rem; letter-spacing: .04em; }
.qf-frs-totals > tbody > .qf-ors-row > td:last-child { background: var(--color-qf-600) !important; font-weight: 800; }
.qf-ors-table.qf-frs-table { min-width: 900px; font-size: .88rem; }
.qf-frs-table > tbody > .qf-ors-th > th, .qf-frs-grid th { vertical-align: bottom; text-align: center; font-size: .75rem; line-height: 1.25; }
.qf-frs-table > tbody > .qf-ors-th > th:first-child { text-align: left; }
.qf-frs-table > tbody > .qf-ors-row > td { font-weight: 400 !important; }
.qf-frs-table > tbody > .qf-ors-row > td:first-child { font-weight: 700 !important; }
.qf-frs-tot { background: var(--color-qf-600) !important; font-weight: 800 !important; }
.qf-frs-muted, .qf-frs-muted span { color: var(--qf-muted) !important; font-weight: 600; }
.qf-frs-total > td { padding: .6rem .7rem; background: var(--color-qf-900); color: #ffffff; font-weight: 800; text-align: center; }
.qf-frs-total > td span { color: #ffffff !important; }
.qf-frs-total > td.qf-frs-tot { background: var(--color-qf-800) !important; }
.qf-frs-total > td.qf-frs-muted span { color: var(--color-qf-600) !important; }
/* GridViews (By Year, By School/Year) */
.qf-frs-grid { border: 0 !important; }
.qf-frs-grid th { padding: .55rem .6rem; background: var(--color-qf-900); color: #ffffff; border: 0 !important; }
.qf-frs-grid th a { color: #ffffff; text-decoration: none; }
.qf-frs-grid td { padding: .45rem .6rem; border: 0 !important; border-bottom: 1px solid var(--qf-purple-line) !important; }
.qf-frs-grid td:first-child { font-weight: 700; }

/* Exclude from registration caps (FeisAdmin/ExcludeFromFamilyCap.aspx) - reuses qf-ors-* / qf-inv-* */
.qf-efc-help { margin: -.3rem 0 .8rem; font-size: .9rem; color: var(--qf-muted); }
.qf-ors-table.qf-efc-table { min-width: 520px; }
.qf-efc-table > tbody > .qf-ors-row > td { font-weight: 400 !important; vertical-align: middle; }
.qf-efc-table > tbody > .qf-ors-row > td:first-child { width: 1%; white-space: nowrap; }
.qf-efc-table > tbody > .qf-ors-row > td:nth-child(2) { font-weight: 700 !important; }
.qf-efc-table .qf-ors-btn + .qf-ors-btn { margin-left: .3rem; }
.qf-efc-email { width: 100%; max-width: 420px; }

/* Feis admin results (FeisAdmin/FeisResults.aspx) - results reuse the qf-mr-* (My Results) styles */
.qf-fr-picker { align-items: flex-start; }
.qf-fr-picker ~ br { display: none; }
.qf-fr-select { width: 100% !important; }
.qf-fr-settings { order: 3; flex: 1 1 100%; padding-top: .85rem; border-top: 1px dashed var(--qf-purple-line); }
.qf-fr-settings-layout, .qf-fr-settings-layout > tbody, .qf-fr-settings-layout > tbody > tr, .qf-fr-settings-layout > tbody > tr > td,
.qf-fr-settings-t, .qf-fr-settings-t > tbody { display: block; width: 100%; padding: 0; border: 0; }
.qf-fr-set-view { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1rem; }
.qf-fr-set-view > td { display: block; padding: 0; }
.qf-fr-set-view > td:nth-child(3), .qf-fr-set-view > td:nth-child(5) { padding: .1rem .6rem; border-radius: 999px; background: var(--color-qf-600); font-weight: 800; font-size: .82rem; }
.qf-fr-set-view > td:nth-child(3) { margin-right: .75rem; }
.qf-fr-set-k { font-size: .88rem; }
.qf-fr-set-row { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .75rem; margin-bottom: .4rem; }
.qf-fr-set-row > td { display: block; padding: 0; }
.qf-fr-set-row > td:first-child:has(.qf-fr-set-k) { min-width: 11rem; }
.qf-fr-set-row select { min-width: 8rem; }

/* Feis admin judge scores (FeisAdmin/EventResults.aspx) - picker reuses qf-oa-picker / qf-sc-picker, downloads reuse qf-wq-dl */
.qf-er-evfield { flex: 1 1 22rem; min-width: 0; }
.qf-er-step { display: flex; align-items: center; gap: .4rem; }
.qf-er-step .qf-oa-select { flex: 1 1 auto; min-width: 0; }
input.quickfeisButton.qf-er-nav { flex: 0 0 auto; min-width: 2.75rem; padding-left: .7rem; padding-right: .7rem; font-weight: 800; }
.qf-er-wrap { margin-bottom: 1.25rem; }
.qf-er-outer, .qf-er-outer > tbody, .qf-er-outer > tbody > tr, .qf-er-outer > tbody > tr > td { display: block; width: 100%; padding: 0; border: 0; }
.qf-er-table { width: 100%; border-collapse: collapse; font-size: .85rem; font-variant-numeric: tabular-nums; }
.qf-er-h1 > th {
    padding: .65rem .7rem;
    background: var(--color-qf-900);
    color: #ffffff;
    font-size: .95rem;
    font-weight: 800;
    text-align: center;
    white-space: nowrap;
}
.qf-er-h1 > th:first-child { text-align: left; font-size: 1.05rem; white-space: normal; min-width: 16rem; }
.qf-er-h1s > th { font-size: .8rem; }
.qf-er-h1b > th { padding-top: .35rem; background: var(--color-qf-900); color: var(--qf-accent); font-size: .85rem; text-align: left; }
.qf-er-h2 > th {
    padding: .45rem .55rem;
    background: var(--color-qf-800);
    color: #ffffff;
    font-size: .75rem;
    font-weight: 700;
    text-align: center;
    white-space: nowrap;
}
.qf-er-h2 > th.qf-l { text-align: left; }
.qf-er-h2 a { color: #ffffff; text-decoration: none; }
.qf-er-h2 a:hover { color: var(--qf-accent); text-decoration: underline; }
.qf-er-h2 a::after { content: " \2195"; opacity: .55; font-weight: 400; }
.qf-er-table th.qf-er-sep { border-right: 2px solid rgba(255, 255, 255, .35); }
.qf-er-table th.qf-er-sepl { border-left: 2px solid rgba(255, 255, 255, .35); }
.qf-er-row > td {
    padding: .45rem .55rem;
    border-bottom: 1px solid var(--qf-purple-line);
    text-align: center;
    white-space: nowrap;
    vertical-align: middle;
}
.qf-er-row:nth-child(even) > td { background: color-mix(in oklch, var(--color-qf-600) 16%, #ffffff); }
.qf-er-row:hover > td { background: color-mix(in oklch, var(--color-qf-600) 34%, #ffffff); }
.qf-er-row > td:has(.qf-er-name) { min-width: 13rem; text-align: left; white-space: normal; }
.qf-er-table td.qf-er-sep { border-right: 2px solid var(--color-qf-700); }
.qf-er-table td.qf-er-sepl { border-left: 2px solid var(--color-qf-700); }
.qf-er-table > tbody > tr > :first-child { border-left: 0; }
.qf-er-table > tbody > tr > :last-child { border-right: 0; }
.qf-er-rank { font-size: 1.15rem; font-weight: 800; color: var(--qf-purple); }
.qf-er-tot { font-weight: 800; }
.qf-er-card { display: inline-block; min-width: 2.6rem; padding: .1rem .5rem; border-radius: 999px; background: var(--color-qf-600); color: var(--qf-ink); font-weight: 700; }
.qf-er-name { font-weight: 700; }
.qf-er-school { display: block; font-size: .78rem; font-style: italic; opacity: .8; }
.qf-er-row br { display: none; }
.qf-er-rk { font-weight: 700; color: var(--qf-purple); }
.qf-er-ts, .qf-er-pts { font-weight: 700; }
.qf-er-cmt > td {
    padding: .4rem .6rem;
    background: color-mix(in oklch, var(--qf-accent) 12%, #ffffff);
    border-bottom: 1px solid var(--qf-purple-line);
    font-size: .8rem;
    text-align: left;
    white-space: normal;
}
.qf-er-cmt > td.qf-r { font-weight: 700; white-space: nowrap; }
.qf-er-dl { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: .25rem; }
@media (max-width: 600px) {
    .qf-er-table { font-size: .8rem; }
    .qf-er-h1 > th:first-child { min-width: 12rem; }
    .qf-er-row > td:has(.qf-er-name) { min-width: 10rem; }
}

/* Feis admin email list (FeisAdmin/EmailV2.aspx) - picker reuses qf-oa-picker, buttons reuse qf-wq-dl */
.qf-em-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.qf-em-opt {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .55rem;
    padding: 1.1rem 1.2rem;
    background: #ffffff;
    border: 2px solid var(--qf-purple-line);
    border-radius: var(--qf-radius);
    box-shadow: var(--qf-shadow);
}
.qf-em-k { font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--qf-purple); }
input.quickfeisButton.qf-em-btn { width: 100%; padding-top: .7rem; padding-bottom: .7rem; font-size: 1rem; font-weight: 700; white-space: normal; }
.qf-em-sub, .qf-em-note { font-size: .85rem; line-height: 1.4; }
.qf-em-note { padding: .45rem .65rem; border-left: 3px solid var(--qf-accent); background: color-mix(in oklch, var(--qf-accent) 12%, #ffffff); border-radius: 0 8px 8px 0; }

/* Feis music (FeisAdmin/FeisMusic.aspx) - reuses qf-ors-* / qf-inv-* tables and the qf-em-note callout */
.qf-fm-wrap { margin-bottom: 1rem; }
.qf-ors-table.qf-fm-table { min-width: 560px; }
.qf-fm-table > tbody > .qf-ors-row > td { font-weight: 400 !important; vertical-align: middle; }
.qf-fm-table > tbody > .qf-ors-row > td:first-child { width: 1%; white-space: nowrap; }
.qf-fm-table .qf-ors-btn + .qf-ors-btn { margin-left: .3rem; }
.qf-ors-table.qf-fm-set { min-width: 480px; }
.qf-fm-wrap .qf-ors-layout > tbody > tr:has(> .qf-ors-pager:empty) { display: none; }
.qf-fm-pill { display: inline-block; min-width: 3rem; padding: .15rem .65rem; border-radius: 999px; background: var(--color-qf-600); color: var(--qf-ink); font-weight: 700; text-align: center; }
.qf-fm-pw { font-family: Consolas, "Courier New", monospace; font-weight: 700; letter-spacing: .04em; }
.qf-fm-yn { min-width: 6rem; }
.qf-fm-in { width: 100%; min-width: 10rem; }
.qf-fm-urlin { min-width: 18rem; }
.qf-fm-links > tbody > .qf-ors-row > td:first-child { width: auto; white-space: normal; min-width: 10rem; }
.qf-fm-links > tbody > .qf-ors-row > td:last-child { width: 1%; white-space: nowrap; }
.qf-fm-link { font-weight: 700; }
.qf-fm-url { font-size: .85rem; word-break: break-all; color: var(--qf-muted); }
.qf-fm-note { display: block; margin: 0 0 1.4rem; font-weight: 700; color: #b23a12; }

/* Judge rank comparison (Judge/JudgeRankComparision.aspx) - reuses the qf-er-* judge score tables from FeisAdmin/EventResults */
.qf-jrc-msg { display: block; margin: 0 0 1rem; color: #b23a12; font-weight: 700; }
.qf-er-rk { display: inline-block; min-width: 1.6em; padding: 0 .3rem; border-radius: 5px; text-align: center; }
input.quickfeisButton.qf-jrc-cbtn { padding: .3rem .7rem; font-size: .75rem; white-space: nowrap; }
.qf-er-row > td:has(.qf-jrc-comment) { min-width: 16rem; text-align: left; white-space: normal; }

/* Judge rank comparison - Oireachtas (Judge/JudgeRankComparisionOireachtas.aspx) - reuses qf-er-* / qf-jrc-* */
.qf-jrco-stats { display: flex; flex-wrap: wrap; gap: .45rem; flex: 1 1 100%; }
.qf-jrco-stats:not(:has(.qf-jrco-stat:not(:empty))) { display: none; }
.qf-jrco-stat { display: inline-block; padding: .3rem .75rem; border-radius: 999px; background: #ffffff; border: 1px solid var(--qf-purple-line); font-size: .85rem; font-weight: 700; color: var(--qf-ink); }
.qf-jrco-stat:empty { display: none; }
.qf-jrco-frk { font-weight: 800; color: var(--qf-purple); }
.qf-er-page [id$="UpdatePanel1"] > br { display: none; }
.qf-jrco-drop { margin-left: .25rem; font-size: .75rem; font-weight: 700; color: #b23a12; }

/* Teacher feis schedule (Teacher/FamilyCard.aspx) - picker reuses the qf-oa-picker look, pills reuse the qf-fam-pills look */
.qf-fc-home { display: inline-block; margin: 0 0 .9rem; font-weight: 700; color: var(--qf-purple); }
.qf-fc-picker { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; margin-bottom: 1.4rem; padding: 1rem 1.2rem 1.1rem; background: #ffffff; border: 2px solid var(--qf-accent); border-radius: var(--qf-radius); }
.qf-fc-field { min-width: 0; }
.qf-fc-field:first-child { flex: 1 1 18rem; }
.qf-fc-label { display: block; margin-bottom: .4rem; font-weight: 700; }
.qf-fc-select { width: 100%; max-width: 520px; font-size: 1.05rem; }
.qf-fc-pills, .qf-fc-pills > tbody { display: flex; flex-wrap: wrap; gap: .4rem; border-collapse: collapse; }
.qf-fc-pills tr { display: contents; }
.qf-fc-pills td { display: block; padding: 0; }
.qf-fc-pills input[type="radio"] { position: absolute; opacity: 0; width: 1px; height: 1px; }
.qf-fc-pills label { display: inline-block; padding: .4rem .95rem; border: 2px solid var(--qf-purple); border-radius: 999px; background: #ffffff; color: var(--qf-purple); font-size: .85rem; font-weight: 700; cursor: pointer; }
.qf-fc-pills input[type="radio"]:checked + label { background: var(--qf-purple); color: #ffffff; }
.qf-fc-pills input[type="radio"]:focus-visible + label { outline: 3px solid var(--qf-accent); outline-offset: 2px; }
.qf-fc-title { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem .9rem; margin-bottom: .9rem; padding-bottom: .6rem; border-bottom: 3px solid var(--qf-purple); }
.qf-fc-kicker { display: none; }
.qf-fc-fv, .qf-fc-fv > tbody, .qf-fc-fv > tbody > tr, .qf-fc-fv > tbody > tr > td { display: block; padding: 0; border: 0; }
.qf-fc-school-name { font-size: 1.6rem; font-weight: 800; line-height: 1.2; color: var(--qf-ink); }
.qf-fc-herofv { margin-bottom: 1.25rem; }
.qf-fc-hero, .qf-fc-hero > tbody { display: block; }
.qf-fc-hero > tbody > tr { display: flex; align-items: center; gap: 1.25rem; }
.qf-fc-hero td { padding: 0; }
.qf-fc-hero-spare { display: none !important; }
.qf-fc-logo { display: block; width: 150px; height: auto; border-radius: 12px; }
.qf-fc-hero-text br { display: none; }
.qf-fc-feis { display: block; font-size: 1.5rem; font-weight: 800; line-height: 1.2; color: var(--qf-ink); }
.qf-fc-date { display: block; margin: .15rem 0 .6rem; font-size: 1.05rem; font-weight: 700; color: var(--qf-purple); }
.qf-fc-venue { display: block; font-weight: 700; }
.qf-fc-addr { display: block; font-size: .9rem; }
.qf-fc-layout, .qf-fc-layout > tbody, .qf-fc-layout > tbody > tr, .qf-fc-layout > tbody > tr > td { display: block; width: 100%; padding: 0; border: 0; }
.qf-fc-list, .qf-fc-list > tbody { display: block; width: 100%; border: 0; border-collapse: collapse; }
.qf-fc-list > tbody > tr, .qf-fc-list > tbody > tr > td { display: block; padding: 0; border: 0; }
.qf-fc-dancer { margin-top: 1.1rem; padding: .65rem .9rem !important; background: var(--color-qf-900); color: #ffffff; border-radius: var(--qf-radius) var(--qf-radius) 0 0; break-after: avoid; page-break-after: avoid; }
.qf-fc-dancer > td { display: flex !important; flex-wrap: wrap; align-items: baseline; gap: .1rem .5rem; }
.qf-fc-card { display: inline-block; padding: .1rem .65rem; border-radius: 999px; background: var(--qf-accent); color: var(--qf-ink); font-size: 1.1rem; font-weight: 800; }
.qf-fc-sep { display: none; }
.qf-fc-name { font-size: 1.25rem; font-weight: 800; }
.qf-fc-dschool { flex-basis: 100%; font-size: .82rem; font-style: italic; opacity: .85; }
.qf-fc-regrow { margin-bottom: .25rem; border: 2px solid var(--color-qf-900) !important; border-top: 0 !important; border-radius: 0 0 var(--qf-radius) var(--qf-radius); overflow: hidden; break-inside: avoid; page-break-inside: avoid; }
.qf-fc-reg { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: .9rem; }
/* same column widths for every dancer (the old page's 250/150/100/100/100/100 split) */
.qf-fc-th > th:nth-child(1) { width: 31%; }
.qf-fc-th > th:nth-child(2) { width: 19%; }
.qf-fc-th > th:nth-child(n+3) { width: 12.5%; }
.qf-fc-row > td { overflow-wrap: anywhere; }
.qf-fc-th > th { padding: .45rem .65rem; background: var(--qf-purple-line); color: var(--qf-ink); font-size: .75rem; font-weight: 800; text-align: left; text-transform: uppercase; letter-spacing: .04em; }
.qf-fc-row > td { padding: .45rem .65rem; border-top: 1px solid var(--qf-purple-line); font-weight: 700; }
.qf-fc-row:nth-child(odd) > td { background: color-mix(in oklch, var(--color-qf-600) 22%, #ffffff); }
.qf-fc-page .qf-c { text-align: center !important; }
.qf-fc-empty { margin-top: .6rem; border-collapse: collapse; }
.qf-fc-empty td { padding: .7rem 1rem; border: 1px solid var(--qf-purple-line); border-radius: 10px; font-style: italic; }
@media (max-width: 600px) {
    .qf-fc-hero > tbody > tr { flex-direction: column; align-items: flex-start; }
    .qf-fc-logo { width: 110px; }
    .qf-fc-regrow { overflow-x: auto; }
    .qf-fc-reg { min-width: 520px; }
}
@media print {
    .qf-fc-home, .qf-fc-picker { display: none !important; }
    .qf-fc-dancer { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* Teacher feis schedule by stage (Teacher/FeisSchedule.aspx) - top of page reuses the qf-fc-* (Teacher/FamilyCard) styles */
.qf-fs-wrap { overflow-x: auto; border: 2px solid var(--color-qf-900) !important; border-radius: var(--qf-radius); }
.qf-fs-table { width: 100%; min-width: 640px; border-collapse: collapse; table-layout: fixed; font-size: .9rem; }
.qf-fs-table > tbody > .qf-fc-th > th { background: var(--color-qf-900); color: #ffffff; }
.qf-fs-table > tbody > .qf-fc-th > th:nth-child(1) { width: 11%; }
.qf-fs-table > tbody > .qf-fc-th > th:nth-child(2) { width: 8%; }
.qf-fs-table > tbody > .qf-fc-th > th:nth-child(3) { width: 27%; }
.qf-fs-table > tbody > .qf-fc-th > th:nth-child(4) { width: 18%; }
.qf-fs-table > tbody > .qf-fc-th > th:nth-child(n+5) { width: 12%; }
.qf-fs-event > td { padding: .5rem .65rem; text-align: left; background: var(--qf-purple-line); font-weight: 800; overflow-wrap: break-word; break-after: avoid; page-break-after: avoid; }
.qf-fs-event > td:first-child { font-size: 1rem; white-space: nowrap; }
.qf-fs-dancers > td { padding: .45rem .65rem .7rem; text-align: left; border-bottom: 1px solid var(--qf-purple-line); }
.qf-fs-dancers { break-inside: avoid; page-break-inside: avoid; }
.qf-fs-chips, .qf-fs-chips > tbody { display: flex; flex-wrap: wrap; gap: .35rem; border: 0; }
.qf-fs-chips > tbody > tr, .qf-fs-chips > tbody > tr > td { display: contents; }
.qf-fs-chip > td { display: inline-flex !important; align-items: center; gap: .3rem; padding: .2rem .65rem .2rem .25rem; border: 1px solid var(--qf-purple-line); border-radius: 999px; background: #ffffff; font-weight: 700; white-space: nowrap; }
.qf-fs-card { display: inline-block; min-width: 2.2rem; padding: .05rem .45rem; border-radius: 999px; background: var(--qf-accent); color: var(--qf-ink); font-weight: 800; text-align: center; }
@media print {
    .qf-fs-wrap { overflow: visible; }
    .qf-fs-event > td, .qf-fs-card { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* Teacher registration list (Teacher/RegistrationByCompetitor.aspx) - reuses qf-ors-* / qf-rbc-* from the FeisAdmin version */
.qf-trbc-wrap { margin-bottom: 1.25rem; }
.qf-ors-table.qf-trbc-table { min-width: 640px; }
.qf-trbc-table > tbody > tr > :first-child { display: none; }   /* hidden competitor id column */
.qf-trbc-table > tbody > .qf-ors-row > td { font-weight: 400 !important; }
.qf-trbc-table > tbody > .qf-ors-row > td:nth-child(2),
.qf-trbc-table > tbody > .qf-ors-row > td:nth-child(3) { font-weight: 700 !important; }
.qf-trbc-table > tbody > .qf-ors-row > td:nth-child(5) { font-size: .85rem; }

/* Teacher student results (Teacher/MyStudentsResults.aspx) - results reuse the qf-mr-* (My Results) styles */
.qf-msr-star { flex: 1 1 100%; }
.qf-msr-picker .qf-mr-go { order: 5; align-self: flex-end; }

/* Teacher favorites (Teacher/StarStudents.aspx) - tables reuse qf-ors-*, YES/NO reuse the qf-fam-pills look */
.qf-star-grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 1.25rem; align-items: start; }
.qf-star-col { min-width: 0; }
.qf-star-col .qf-fa-h { font-size: 1rem; }
.qf-star-favs { position: sticky; top: 1rem; }
.qf-ors-table.qf-star-table { min-width: 0; }
.qf-star-table > tbody > .qf-ors-row > td { font-weight: 400 !important; }
.qf-star-table > tbody > .qf-ors-row > td:first-child { font-weight: 700 !important; }
.qf-star-yn, .qf-star-yn > tbody { flex-wrap: nowrap !important; }
.qf-star-yn label { min-width: 3.2rem; padding: .25rem .7rem; text-align: center; }
.qf-star-wrap .qf-ors-layout > tbody > tr:has(> .qf-ors-pager:empty) { display: none; }
@media (max-width: 800px) {
    .qf-star-grid { grid-template-columns: 1fr; }
    .qf-star-favs { position: static; }
    .qf-star-table > tbody > tr > * { padding-left: .5rem !important; padding-right: .5rem !important; }
}

/* Teacher school results summary (Teacher/SchoolResultsSummary.aspx) - reuses qf-oa-picker / qf-ors-* */
.qf-srs-picker .qf-sc-field, .qf-srs-picker .qf-sc-field:first-child { flex: 1 1 10rem; }
.qf-srs-picker .qf-sc-field:nth-child(2) { flex-basis: 16rem; }
.qf-ors-table.qf-srs-table { min-width: 640px; }
.qf-srs-table > tbody > .qf-ors-row > td { font-weight: 400 !important; }
.qf-srs-table > tbody > .qf-ors-row > td:first-child,
.qf-srs-table > tbody > .qf-ors-row > td:nth-child(4) { font-weight: 700 !important; }
.qf-srs-table > tbody > tr > :nth-child(2) { white-space: nowrap; }

/* Teacher dancer cards (Teacher/DancerCards.aspx) - reuses qf-oa-picker / qf-ors-* */
.qf-ors-table.qf-dc-table { min-width: 0; }
.qf-dc-table > tbody > .qf-ors-th > td { padding: .6rem .7rem; color: #ffffff; font-size: .8rem; font-weight: 700; white-space: nowrap; }
.qf-dc-table > tbody > .qf-ors-row > td { font-weight: 400 !important; }
.qf-dc-name { font-weight: 700; font-size: 1rem; }
.qf-dc-card { display: inline-block; min-width: 2.6rem; padding: .1rem .6rem; border-radius: 999px; background: var(--qf-accent); color: var(--qf-ink); font-weight: 800; text-align: center; }
.qf-dc-card:empty { display: none; }
.qf-dc-actions { text-align: right; white-space: nowrap; }
.qf-dc-actions .qf-ors-btn + .qf-ors-btn { margin-left: .35rem; }
.qf-dc-wrap .qf-ors-layout > tbody > tr:not(:has(td > *)) { display: none; }
@media (max-width: 600px) {
    .qf-dc-table > tbody > tr { display: grid; grid-template-columns: 1fr auto; }
    .qf-dc-table > tbody > tr > td.qf-dc-actions { grid-column: 1 / -1; text-align: left; padding-top: 0; }
    .qf-dc-table > tbody > .qf-ors-th > td:last-child { display: none; }
    .qf-dc-table > tbody > .qf-ors-row > td:not(.qf-dc-actions) { border-bottom: 0; }
}

/* Admin website accounts (Admin/WebsiteAccountsv2.aspx) - reuses qf-ors-* tables, qf-oa-picker and qf-inv-* insert rows */
.qf-wa-wrap { margin-bottom: 1.4rem; }
.qf-ors-table.qf-wa-table { min-width: 900px; }
.qf-wa-table > tbody > .qf-ors-row > td { font-weight: 400 !important; vertical-align: top; }
.qf-wa-table > tbody > .qf-ors-row > td:first-child { font-weight: 700 !important; }
.qf-wa-table > tbody > .qf-ors-th a { color: #ffffff; text-decoration: none; }
.qf-wa-table > tbody > .qf-ors-th a:hover { color: var(--qf-accent); text-decoration: underline; }
.qf-wa-table > tbody > .qf-ors-th a::after { content: " \2195"; opacity: .55; font-weight: 400; }
.qf-wa-inline, .qf-wa-inline > tbody, .qf-wa-inline > tbody > tr, .qf-wa-inline > tbody > tr > td { display: block; padding: 0; border: 0; }
.qf-wa-inline > tbody { display: flex; flex-wrap: wrap; gap: .25rem; }
.qf-wa-inline > tbody > tr > td > span { display: inline-block; padding: .1rem .55rem; border-radius: 999px; background: var(--color-qf-600); font-size: .8rem; font-weight: 700; }
.qf-wa-inline > tbody > tr > td > span:empty { display: none; }
.qf-wa-picker { align-items: flex-end; }
.qf-wa-hint { display: block; font-size: .85rem; color: var(--qf-ink); opacity: .75; }
.qf-wa-hint + .qf-wa-hint { margin-bottom: .45rem; }
.qf-wa-search { width: 100%; max-width: 520px; }
.qf-wa-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.qf-wa-status td { padding: 0 0 .25rem !important; }
.qf-wa-status label { min-width: 0; padding: .2rem .7rem; font-size: .78rem; }
.qf-wa-pw { max-width: 9rem; margin-bottom: .3rem; }
.qf-wa-table .qf-ors-btn { margin: 0 .25rem .25rem 0; }
.qf-wa-email { width: 100%; min-width: 14rem; }
.qf-wa-detail > td { padding: .8rem !important; background: color-mix(in oklch, var(--color-qf-600) 18%, #ffffff); }
.qf-wa-sec { margin-bottom: .9rem; padding: .9rem 1rem; background: #ffffff; border: 2px solid var(--qf-purple-line); border-radius: var(--qf-radius); }
.qf-wa-sec .qf-fa-h { font-size: 1rem; }
.qf-wa-cols, .qf-wa-cols > tbody { display: block; width: 100%; }
.qf-wa-cols > tbody > tr { display: flex; flex-wrap: wrap; gap: .9rem; }
.qf-wa-cols > tbody > tr > td { display: block; flex: 1 1 20rem; min-width: 0; padding: 0; }
.qf-wa-cols .qf-wa-sec { height: 100%; margin-bottom: 0; }
.qf-wa-subwrap { overflow-x: auto; margin-top: .4rem; border: 1px solid var(--qf-purple-line); border-radius: 10px; }
.qf-ors-table.qf-wa-sub { min-width: 0; font-size: .85rem; }
.qf-wa-sub > tbody > .qf-ors-th > th { position: static; padding: .45rem .6rem; background: var(--color-qf-800); font-size: .75rem; }
.qf-wa-sub > tbody > .qf-ors-row > td { padding: .4rem .6rem; font-weight: 400 !important; }
.qf-wa-sub > tbody > .qf-ors-row > td:first-child { width: 1%; white-space: nowrap; }
.qf-wa-sub input[type="text"] { width: 9rem; max-width: 100%; }
.qf-wa-sub select { max-width: 14rem; }
.qf-wa-detail br { display: none; }
.qf-wa-detail > td > .qf-wa-sec, .qf-wa-detail > td > .qf-wa-cols { width: 0; min-width: 100%; }   /* details never widen the accounts table */
.qf-wa-detail .qf-wa-cols { display: block; }
.qf-wa-help { margin: 0; padding-left: 1.1rem; font-size: .8rem; line-height: 1.45; text-align: left; color: var(--qf-ink); }
.qf-wa-help li { margin-bottom: .3rem; }
.qf-wa-wrap .qf-ors-layout > tbody > tr:has(> .qf-ors-pager:not(:has(*))),
.qf-wa-subwrap .qf-ors-layout > tbody > tr:has(> .qf-ors-pager:not(:has(*))) { display: none; }

/* Admin competitor information (Admin/CompetitorInformation.aspx) - reuses qf-ors-* and the qf-wa-* detail styles from Website Accounts */
.qf-ci-picker { align-items: flex-end; }
.qf-ci-picker .qf-fam-pills { margin-bottom: .5rem; }
.qf-ci-search { width: 100%; max-width: 420px; }
.qf-ci-wrap { margin-bottom: 1.4rem; }
.qf-ors-table.qf-ci-table { min-width: 1100px; font-size: .85rem; }
.qf-ci-table > tbody > .qf-ors-row > td { font-weight: 400 !important; }
.qf-ci-table > tbody > .qf-ors-row > td:first-child { white-space: nowrap; }
.qf-ci-table > tbody > .qf-ors-row > td:nth-child(5),
.qf-ci-table > tbody > .qf-ors-row > td:nth-child(6) { font-weight: 700 !important; }
.qf-ci-table .qf-ors-btn { margin: 0 .25rem .2rem 0; }
.qf-ci-table > tbody > .qf-ors-open input[type="text"] { width: 6.5rem; }
.qf-ci-table > tbody > .qf-ors-open select { max-width: 12rem; }
.qf-ci-tabs { margin-bottom: .6rem; }
.qf-wa-detail > td > .qf-wa-subwrap { width: 0; min-width: 100%; background: #ffffff; }

/* Admin registration access (Admin/RegistrationAdminAccess.aspx) - cards reuse the qf-oa-picker look, school list reuses qf-ors-* */
.qf-raa-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); gap: 1.25rem; align-items: start; }
.qf-raa-card { padding: 1.1rem 1.2rem; background: #ffffff; border: 2px solid var(--qf-purple-line); border-radius: var(--qf-radius); box-shadow: var(--qf-shadow); }
.qf-raa-card .qf-auth-label { display: block; margin: .9rem 0 .35rem; }
.qf-raa-card .qf-fa-h + .qf-auth-label { margin-top: 0; }
.qf-raa-row { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.qf-raa-input { flex: 1 1 14rem; min-width: 0; }
.qf-raa-select { width: 100%; max-width: 100%; margin-bottom: .6rem; }
.qf-raa-note { display: block; margin-top: .6rem; font-size: .8rem; color: #b23a12; }
.qf-raa-wrap { margin-bottom: .4rem; }
.qf-ors-table.qf-raa-table { min-width: 0; }
.qf-raa-table > tbody > tr > :first-child { width: 1%; white-space: nowrap; }
.qf-raa-table > tbody > .qf-ors-row > td { font-weight: 400 !important; }
.qf-raa-table .qf-ors-btn + .qf-ors-btn { margin-left: .3rem; }

/* Admin role manager (Admin/RoleManager.aspx) - reuses qf-oa-picker / qf-ors-* / qf-wq-dl */
.qf-rm-picker { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; gap: .35rem 1rem; align-items: center; }
.qf-rm-picker .qf-auth-label { display: block; margin: 0; }
.qf-rm-dd, .qf-rm-filter { width: 100%; max-width: none; }
.qf-rm-dl { margin: 0 0 1rem; }
.qf-rm-wrap { margin-bottom: 1rem; }
.qf-ors-table.qf-rm-table { min-width: 1100px; font-size: .85rem; }
.qf-rm-table > tbody > .qf-ors-row > td { font-weight: 400 !important; }
.qf-rm-table > tbody > .qf-ors-row > td:first-child,
.qf-rm-table > tbody > .qf-ors-row > td:nth-child(5),
.qf-rm-table > tbody > .qf-ors-row > td:nth-child(6) { font-weight: 700 !important; }
.qf-rm-table > tbody > .qf-ors-th a { color: #ffffff; text-decoration: none; }
.qf-rm-table > tbody > .qf-ors-th a:hover { color: var(--qf-accent); text-decoration: underline; }
.qf-rm-table > tbody > .qf-ors-th a::after { content: " \2195"; opacity: .55; font-weight: 400; }
@media (max-width: 700px) {
    .qf-rm-picker { grid-template-columns: 1fr; }
    .qf-rm-gap { display: none; }
    .qf-rm-l1 { order: 1; } .qf-rm-dd { order: 2; margin-bottom: .6rem; }
    .qf-rm-l2 { order: 3; } .qf-rm-filter { order: 4; }
    .qf-rm-btn { order: 5; justify-self: start; margin-top: .4rem; }
}

/* Admin all-feis summary (Admin/AllFeisSummary.aspx) - each feis is a card; payments reuse the qf-wa-sub tables */
.qf-afs-picker { align-items: flex-start; }
.qf-afs-year { min-width: 8rem; margin-bottom: .6rem; }
.qf-afs-baldue { flex: 0 1 auto !important; }
.qf-afs-ballay, .qf-afs-ballay > tbody, .qf-afs-ballay > tbody > tr, .qf-afs-ballay > tbody > tr > td { display: block; padding: 0; border: 0; }
.qf-ors-table.qf-afs-bal { min-width: 16rem; border: 1px solid var(--qf-purple-line); }
.qf-afs-bal > tbody > .qf-ors-th > th { position: static; }
.qf-afs-bal > tbody > .qf-ors-row > td:last-child { font-weight: 800 !important; text-align: right; }
.qf-afs-actions { display: flex !important; flex-wrap: wrap; gap: .5rem; padding-top: .6rem !important; }
.qf-afs-list, .qf-afs-list > tbody { display: block; width: 100%; border: 0; }
.qf-afs-list > tbody > tr > td { padding: 0; border: 0; }
.qf-afs-hidden { display: none; }
.qf-afs-head { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem 1rem; margin-top: 1.1rem; padding: .6rem .9rem; background: var(--color-qf-900); color: #ffffff; border-radius: var(--qf-radius) var(--qf-radius) 0 0; }
.qf-afs-head > td { display: block; color: #ffffff; }
.qf-afs-head > td:nth-child(2) { flex: 1 1 14rem; }
.qf-afs-id { display: inline-block; padding: .05rem .55rem; border-radius: 999px; background: var(--qf-accent); color: var(--qf-ink); font-weight: 800; }
.qf-afs-name { font-size: 1.05rem; font-weight: 800; }
.qf-afs-head > td:nth-child(n+3) { font-size: .85rem; opacity: .9; }
.qf-afs-body { display: block; }
.qf-afs-body > td { display: block; padding: .9rem !important; background: #ffffff; border: 2px solid var(--color-qf-900); border-top: 0; border-radius: 0 0 var(--qf-radius) var(--qf-radius); }
.qf-afs-grid, .qf-afs-grid > tbody { display: block; width: 100%; }
.qf-afs-grid > tbody > tr { display: flex; flex-wrap: wrap; gap: .75rem; align-items: stretch; margin-bottom: .75rem; }
.qf-afs-grid > tbody > tr > td { display: block; padding: 0; }
.qf-afs-fv, .qf-afs-fv > tbody, .qf-afs-fv > tbody > tr, .qf-afs-fv > tbody > tr > td { display: block; padding: 0; border: 0; }
.qf-afs-stat { border-collapse: separate !important; border-spacing: 0; background: color-mix(in oklch, var(--color-qf-600) 16%, #ffffff); border: 1px solid var(--qf-purple-line) !important; border-radius: 10px; }
.qf-afs-stat td { padding: .3rem .7rem; text-align: left; }
.qf-afs-stat > tbody > tr:first-child > td { padding-top: .5rem; font-size: .7rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--qf-purple); }
.qf-afs-stat > tbody > tr:first-child > td b, .qf-afs-stat > tbody > tr:first-child > td span { font-weight: 800; }
.qf-afs-stat > tbody > tr:nth-child(2) > td { padding-bottom: .5rem; font-weight: 800; font-size: 1rem; white-space: nowrap; }
.qf-afs-counts .qf-afs-num span { display: block; }
/* the profit FormView puts its rows straight into its own table: skip the empty wrapper row */
.qf-afs-stat.qf-afs-profit > tbody > tr:first-child:not(:has(b)) { display: none; }
.qf-afs-stat.qf-afs-profit > tbody > tr:has(b) > td { padding-top: .5rem; font-size: .7rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--qf-purple); }
.qf-afs-stat.qf-afs-profit > tbody > tr:not(:has(b)) > td { padding-bottom: .5rem; font-weight: 800; font-size: 1rem; white-space: nowrap; }
.qf-afs-show { margin-top: .1rem; }
.qf-afs-show td { padding: 0 0 .3rem !important; }
.qf-afs-show label { min-width: 0; padding: .25rem .8rem; font-size: .78rem; }
.qf-afs-log { margin-top: .1rem; }
.qf-afs-sel > td > .qf-ors-btn { margin-bottom: .6rem; }
.qf-afs-payh { margin-top: .2rem; }
.qf-afs-pay input[type="text"] { width: 9rem; max-width: 100%; }
.qf-afs-pay > tbody > .qf-ors-row > td:first-child { white-space: nowrap; }
.qf-afs-page .qf-ors-pager { padding-top: 1rem !important; }

/* Admin feis accounting (Admin/FeisAccounting.aspx) - reuses the FeisAdmin/FeisAccounting qf-fa-* styles */
.qf-fa-page .qf-sc-picker .qf-sc-field { flex: 1 1 16rem; }
.qf-fa-table > tbody > .qf-ors-row > td:first-child { white-space: nowrap; }
.qf-fa-table .qf-ors-btn + .qf-ors-btn { margin-left: .3rem; }
.qf-fa-profit, .qf-fa-profit > tbody, .qf-fa-profit > tbody > tr, .qf-fa-profit > tbody > tr > td { display: block; width: 100%; padding: 0; border: 0; }
.qf-fa-profit hr { margin: .6rem 0; border: 0; border-top: 1px solid var(--qf-purple-line); }
.qf-fa-video-t { margin-top: .4rem; }

/* Admin transaction fee tables (Admin/TransactionFeeSchedule.aspx) - reuses qf-oa-picker / qf-ors-* */
.qf-tfs-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 1.25rem; align-items: start; margin-bottom: 1.25rem; }
.qf-tfs-col { min-width: 0; }
.qf-ors-table.qf-tfs-table { min-width: 0; }
.qf-tfs-table > tbody > .qf-ors-row > td { font-weight: 400 !important; font-variant-numeric: tabular-nums; }
.qf-tfs-table > tbody > .qf-ors-th > th.qf-r { text-align: right; }
.qf-tfs-wrap .qf-ors-layout > tbody > tr:has(> .qf-ors-pager:not(:has(*))) { display: none; }
.qf-tfs-calc .qf-auth-label { display: block; margin-bottom: .2rem; }
.qf-tfs-hint { display: block; margin-bottom: .6rem; font-size: .85rem; opacity: .75; }
.qf-tfs-row { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.qf-tfs-input { width: 10rem; }
.qf-tfs-fee { font-size: 1.4rem; font-weight: 800; color: var(--qf-purple); }

/* Admin PayPal batch refund (Admin/PayPalBatchRefund.aspx) - reuses qf-oa-picker / qf-data-table / qf-ors-* */
.qf-pbr-sumwrap { margin-bottom: 1rem; }
.qf-pbr-sumwrap:not(:has(table)) { display: none; }
.qf-pbr-page .qf-sc-picker .qf-sc-field:last-child { flex: 1 1 22rem; }
.qf-pbr-sum { width: 100%; }
.qf-pbr-actions { margin: 0 0 1rem; }
.qf-ors-table.qf-pbr-table { min-width: 1150px; font-size: .85rem; }
.qf-pbr-table > tbody > .qf-ors-row > td { font-weight: 400 !important; }
.qf-pbr-table > tbody > .qf-ors-row > td:nth-child(6),
.qf-pbr-table > tbody > .qf-ors-row > td:nth-child(8) { font-weight: 700 !important; }
.qf-pbr-table > tbody > tr > :first-child { width: 1%; text-align: center; }
.qf-pbr-table > tbody > tr > :nth-child(n+7):nth-child(-n+11) { text-align: right; }
.qf-pbr-table > tbody > .qf-ors-th > th { white-space: normal; vertical-align: bottom; }
.qf-pbr-status:not(:empty) { display: block; margin-top: 1rem; padding: .7rem 1rem; border-left: 3px solid var(--qf-accent); background: color-mix(in oklch, var(--qf-accent) 12%, #ffffff); border-radius: 0 8px 8px 0; white-space: pre-line; }
.qf-pbr-wrap .qf-ors-layout > tbody > tr:has(> .qf-ors-pager:not(:has(*))) { display: none; }

/* Admin Oireachtas admin (Admin/OireachtasAdmin.aspx) - reuses qf-oa-picker / qf-ors-* / qf-inv-* */
.qf-oadm-page .qf-fa-h { margin-top: .2rem; }
.qf-ors-table.qf-oadm-table { min-width: 0; max-width: 760px; }
.qf-oadm-wrap { max-width: 760px; }
.qf-oadm-table > tbody > .qf-ors-row > td { font-weight: 400 !important; }
.qf-oadm-table > tbody > .qf-ors-row > td:nth-child(2) { font-weight: 700 !important; }
.qf-oadm-table > tbody > tr > :first-child { width: 1%; white-space: nowrap; }
.qf-oadm-table .qf-ors-btn + .qf-ors-btn { margin-left: .3rem; }
.qf-oadm-table select, .qf-oadm-in { max-width: 100%; }
.qf-oadm-wrap .qf-ors-layout > tbody > tr:has(> .qf-ors-pager:not(:has(*))) { display: none; }

/* Admin program sales (Admin/ProgramSalesSummary.aspx) - stat tiles reuse qf-ps-* from the OireachtasAdmin version */
.qf-ps-page .qf-ps-fv { margin-bottom: 1.25rem; }
.qf-ors-table.qf-ps-table { min-width: 1100px; font-size: .85rem; }
.qf-ps-table > tbody > .qf-ors-row > td { font-weight: 400 !important; }
.qf-ps-table > tbody > .qf-ors-row > td:first-child { font-weight: 700 !important; }
.qf-ps-table > tbody > tr > :nth-child(n+4):nth-child(-n+6) { text-align: right; }
.qf-ps-link { font-weight: 700; color: var(--qf-purple); }
.qf-ps-wrap .qf-ors-layout > tbody > tr:has(> .qf-ors-pager:not(:has(*))) { display: none; }

/* Admin Oireachtas attachment manager (Admin/OireachtasAttachmentManager.aspx) - reuses qf-oa-picker / qf-data-table / qf-ors-* / qf-inv-* */
.qf-oam-page .qf-fa-h { margin-top: 1.4rem; }
.qf-oam-page .qf-oa-picker + .qf-fa-h { margin-top: 0; }
.qf-oam-files { margin-bottom: .8rem; }
.qf-oam-grid { width: 100%; }
.qf-oam-dl { font-weight: 700; color: var(--qf-purple); }
.qf-oam-del { font-weight: 700; color: #b23a12; }
.qf-oam-upload { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1rem; padding: .8rem 1rem; background: color-mix(in oklch, var(--color-qf-600) 18%, #ffffff); border: 1px dashed var(--color-qf-700); border-radius: 10px; }
.qf-oam-upload .qf-auth-label { margin: 0; }
.qf-oam-warn { display: block; margin-top: .6rem; color: #b23a12; font-weight: 700; }
.qf-ors-table.qf-oam-table { min-width: 820px; }
.qf-oam-table > tbody > .qf-ors-row > td { font-weight: 400 !important; }
.qf-oam-table > tbody > .qf-ors-row > td:nth-child(2) { font-weight: 700 !important; }
.qf-oam-table > tbody > tr > :first-child { width: 1%; white-space: nowrap; }
.qf-oam-table > tbody > .qf-ors-row > td:nth-child(3) { word-break: break-all; font-size: .85rem; }
.qf-oam-table input[type="text"] { width: 100%; min-width: 10rem; }
.qf-oam-table select { max-width: 100%; }
.qf-oam-table .qf-ors-btn + .qf-ors-btn { margin-left: .3rem; }
.qf-ors-table.qf-oam-links { min-width: 0; }
.qf-oam-link { font-weight: 700; color: var(--qf-purple); }
.qf-ors-table.qf-oam-msgt { min-width: 0; }
.qf-oam-msgt > tbody > .qf-ors-th { display: none; }   /* the "Oireachtas Message" heading above replaces it */
.qf-oam-msgt > tbody > tr > :first-child { width: 1%; white-space: nowrap; vertical-align: top; }
.qf-oam-msgt > tbody > .qf-ors-row > td { font-weight: 400 !important; }
.qf-oam-msg { width: 100%; min-height: 12rem; }
.qf-oam-wrap .qf-ors-layout > tbody > tr:has(> .qf-ors-pager:not(:has(*))) { display: none; }

/* Admin major accounting (Admin/MajorAccounting.aspx) - reuses qf-ps-* tiles, qf-afs-stat boxes and the qf-fa-* payments table */
.qf-ma-h { margin-top: 1.4rem; }
.qf-ma-page .qf-oa-picker + .qf-ma-h { margin-top: 0; }
.qf-ma-feewrap { max-width: 720px; margin-bottom: .8rem; }
.qf-ors-table.qf-ma-fees { min-width: 0; }
.qf-ma-fees > tbody > .qf-ors-row > td { font-weight: 400 !important; }
.qf-ma-fees > tbody > .qf-ors-row > td:first-child, .qf-ma-fees > tbody > .qf-ors-row > td:last-child { font-weight: 700 !important; }
.qf-ma-fees > tbody > .qf-ors-th > th.qf-r { text-align: right; }
.qf-ma-totalfv, .qf-ma-totalfv > tbody, .qf-ma-totalfv > tbody > tr, .qf-ma-totalfv > tbody > tr > td { display: block; padding: 0 !important; border: 0 !important; background: transparent !important; }
.qf-ma-totalfv > tbody > tr > td { display: inline-flex !important; align-items: baseline; gap: .6rem; padding: .7rem 1.1rem !important; background: var(--color-qf-900) !important; border-radius: var(--qf-radius); }
.qf-ma-totalfv .qf-inv-k { color: var(--color-qf-600); }
.qf-ma-totalfv .qf-inv-v { font-size: 1.5rem; color: var(--qf-accent) !important; }
.qf-ma-note { margin: .4rem 0 0; font-size: .85rem; opacity: .75; }
.qf-ma-fv { margin-bottom: .4rem; }
.qf-ma-pay { width: auto; }
.qf-ma-pay > tbody > tr > td { padding-right: 1.4rem; }
.qf-ma-wrap .qf-ors-layout > tbody > tr:has(> .qf-ors-pager:not(:has(*))) { display: none; }

/* Admin Feis attachment manager (Admin/FeisAttachmentManagerNew.aspx) - reuses qf-oa-picker / qf-oam-* / qf-ors-* / qf-inv-* */
.qf-fat-feis { display: grid; gap: .35rem; max-width: 52rem; margin: 0 0 1.2rem; padding: 1rem 1.2rem; background: #ffffff; border: 1px solid var(--color-qf-700); border-left: 6px solid var(--qf-purple); border-radius: 12px; }
.qf-fat-fv { overflow-wrap: anywhere; }
.qf-fat-fv > b { display: inline-block; min-width: 10.5rem; color: var(--qf-purple); }
.qf-fat-fv select { max-width: 100%; min-width: 16rem; }
.qf-fat-logo { max-width: 90px; height: auto; border-radius: 6px; }
.qf-fat-actions { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .3rem; }
.qf-fat-files { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4rem; align-items: start; }
.qf-fat-col > .qf-fa-h { display: block; margin-top: 0; }
.qf-fat-col .qf-oam-upload { flex-direction: column; align-items: flex-start; }
.qf-fat-col .qf-oam-file { max-width: 100%; }
.qf-fat-note { display: block; margin: 1.6rem 0 .2rem; padding: .7rem 1rem; color: #b23a12; font-weight: 700; background: #fff6f2; border: 1px solid #f0c6b5; border-radius: 10px; }
/* settings: a key / value list (rows laid out as grids so 2- and 3-cell rows line up full width) */
.qf-ors-table.qf-fat-set { min-width: 0; width: 100%; display: block; }
.qf-fat-set > tbody { display: block; }
.qf-fat-set > tbody > tr { display: grid; grid-template-columns: 15rem minmax(0, 1fr) auto; align-items: start; border-bottom: 1px solid var(--color-qf-700); }
.qf-fat-set > tbody > tr:nth-child(even) { background: color-mix(in oklch, var(--color-qf-600) 10%, #ffffff); }
.qf-fat-set > tbody > tr:first-child { border-bottom: 0; background: none; }
.qf-fat-set > tbody > tr:empty, .qf-fat-set > tbody > tr:not(:has(td)), .qf-fat-set > tbody > tr:not(:has(td:not(:empty))) { display: none; }
.qf-fat-set > tbody > tr > td { padding: .45rem .7rem; border: 0; font-weight: 400 !important; overflow-wrap: anywhere; }
.qf-fat-set > tbody > tr > td:first-child { font-weight: 700 !important; color: var(--qf-purple); }
.qf-fat-set > tbody > tr:first-child > td[colspan] { grid-column: 1 / -1; }
.qf-fat-set > tbody > tr > td:nth-child(3) { color: #555; font-size: .9rem; white-space: nowrap; }
.qf-fat-set select { min-width: 14rem; max-width: 100%; }
.qf-fat-set input[type="text"] { width: 100%; max-width: 28rem; }
.qf-fat-set .qf-oam-msg { max-width: none; min-height: 9rem; }
.qf-fat-set .qf-ors-btn + .qf-ors-btn { margin-left: .3rem; }
/* allowed schools / states / regions */
.qf-ors-table.qf-fat-allow { min-width: 0; }
.qf-fat-allow > tbody > tr > :first-child { width: 1%; white-space: nowrap; }
.qf-fat-allow > tbody > .qf-ors-row > td { font-weight: 400 !important; }
.qf-fat-allow > tbody > .qf-inv-insert > td:first-child br { display: none; }
.qf-fat-allow > tbody > .qf-inv-insert > td:first-child .qf-ors-btn + .qf-ors-btn { margin-left: .3rem; }
.qf-fat-allow select { min-width: 16rem; max-width: 100%; }
@media (max-width: 860px) {
  .qf-fat-files { grid-template-columns: 1fr; }
  .qf-fat-fv > b { display: block; min-width: 0; }
  .qf-fat-set > tbody > tr { grid-template-columns: minmax(0, 1fr) auto; }
  .qf-fat-set > tbody > tr > td:first-child { grid-column: 1 / -1; padding-bottom: 0; }
  .qf-fat-set > tbody > tr:first-child > td:first-child { grid-column: auto; }
  .qf-fat-set select, .qf-fat-allow select { min-width: 0; width: 100%; }
}

/* Admin ad manager (Admin/AdManager.aspx) - reuses qf-oam-upload / qf-sc-pills / qf-ors-* */
.qf-adm2-upload { max-width: 46rem; margin-bottom: 1rem; flex-direction: row; }
.qf-adm2-upload .qf-auth-label { flex: 1 0 100%; }
.qf-adm2-upload .qf-oam-file { max-width: 100%; }
.qf-adm2-filter { margin-bottom: .8rem; }
.qf-ors-table.qf-adm2-table { min-width: 0; }
.qf-adm2-table > tbody > .qf-ors-row > td { font-weight: 400 !important; vertical-align: middle; }
.qf-adm2-table > tbody > .qf-ors-row > td:nth-child(3) { font-weight: 700 !important; }
.qf-adm2-table > tbody > tr > :first-child { width: 1%; white-space: nowrap; }
.qf-adm2-table > tbody > .qf-ors-row > td:nth-child(5), .qf-adm2-table > tbody > .qf-ors-row > td:nth-child(6) { word-break: break-all; font-size: .82rem; max-width: 16rem; }
.qf-adm2-table input[type="text"] { width: 100%; min-width: 4.5rem; }
.qf-adm2-table > tbody > .qf-ors-open > td:nth-child(3) input, .qf-adm2-table > tbody > .qf-ors-open > td:nth-child(6) input { min-width: 9rem; }
.qf-adm2-table select { max-width: 16rem; }
.qf-adm2-table .qf-ors-btn + .qf-ors-btn { margin-left: .3rem; }
.qf-adm2-logo { display: block; max-width: 90px; height: auto; border-radius: 6px; background: #ffffff; }
.qf-adm2-size { display: block; margin-top: .25rem; font-size: .75rem; color: #555; white-space: nowrap; }

/* Admin schools (Admin/Schools.aspx) - reuses qf-ors-* / qf-sc-pills / qf-fin-empty */
.qf-sch-layout { display: grid; grid-template-columns: 13.5rem minmax(0, 1fr); gap: 1.4rem; align-items: start; }
.qf-sch-side { display: flex; flex-direction: column; gap: .45rem; padding: 1rem; background: color-mix(in oklch, var(--color-qf-600) 18%, #ffffff); border: 1px solid var(--color-qf-700); border-radius: 12px; position: sticky; top: 1rem; }
.qf-sch-sbtn { width: 100%; margin: 0 !important; }
.qf-sch-lbl { display: block; margin: .6rem 0 0; }
.qf-sch-noreg { margin: .3rem 0 0; }
.qf-sch-noreg label { font-size: .78rem !important; padding: .3rem .7rem !important; }
.qf-sch-regions { width: 100%; background: #ffffff; border: 1px solid var(--color-qf-700); border-radius: 8px; padding: .3rem .5rem; }
.qf-sch-regions td { padding: .12rem 0; }
.qf-sch-regions input[type="checkbox"] { margin-right: .4rem; accent-color: var(--qf-purple); }
.qf-sch-regions label { font-size: .85rem; cursor: pointer; }
.qf-sch-letters { display: flex; flex-wrap: wrap; gap: .3rem; margin-bottom: .5rem; }
.qf-sch-letter { min-width: 2.1rem; margin: 0 !important; padding: .3rem .5rem !important; font-size: .8rem !important; line-height: 1.2; }
.qf-sch-note { display: block; margin-bottom: .7rem; font-size: .82rem; font-style: italic; color: #555; }
.qf-ors-table.qf-sch-table { min-width: 0; width: 100%; }
.qf-sch-table > tbody > .qf-ors-row > td { font-weight: 400 !important; vertical-align: middle; }
.qf-sch-table > tbody > .qf-ors-row > td:nth-child(3) { font-weight: 700 !important; }
.qf-sch-table > tbody > tr > :first-child { width: 1%; white-space: nowrap; }
.qf-sch-table > tbody > tr > :nth-child(2) { width: 1%; }
.qf-sch-table .qf-ors-btn + .qf-ors-btn { margin-left: .3rem; }
.qf-sch-table input[type="text"] { width: 100%; max-width: 26rem; }
.qf-sch-table input[type="checkbox"] { accent-color: var(--qf-purple); }
.qf-sch-editnote { display: block; margin-top: .4rem; font-size: .78rem; font-style: italic; }
.qf-sch-detail > td { font-weight: 400 !important; }
.qf-sch-tabs { margin-bottom: .8rem; }
.qf-sch-info { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.qf-sch-card { padding: .8rem 1rem; background: #ffffff; border: 1px solid var(--color-qf-700); border-radius: 10px; line-height: 1.5; overflow-wrap: anywhere; }
.qf-sch-cardh + br, .qf-sch-name + br { display: none; }
.qf-sch-cardh, .qf-sch-name { display: block; margin-bottom: .3rem; font-weight: 700; color: var(--qf-purple); }
.qf-sch-reglist, .qf-sch-regwrap, .qf-sch-reglist td, .qf-sch-regwrap td { border: 0; padding: 0; background: none; }
.qf-sch-regwrap .qf-ors-pager:not(:has(*)) { display: none; }
.qf-sch-subwrap { background: #ffffff; }
.qf-ors-table.qf-sch-sub { min-width: 0; width: 100%; }
.qf-sch-sub > tbody > .qf-ors-row > td { font-weight: 400 !important; font-size: .85rem; }
.qf-sch-studios { margin: 0; padding: .8rem 1rem; background: #ffffff; border-radius: 10px; }
@media (max-width: 860px) {
  .qf-sch-layout { grid-template-columns: minmax(0, 1fr); }
  .qf-sch-side { position: static; }
  .qf-sch-regions tbody { display: grid; grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr)); }
  .qf-sch-regions tr { display: contents; }
  .qf-sch-info { grid-template-columns: minmax(0, 1fr); }
  .qf-ors-table.qf-sch-table { min-width: 640px; }
}

/* Admin feis announcements (Admin/FeisAnnouncementAdmin.aspx) - reuses qf-sc-pills / qf-ors-btn / qf-inv-del */
.qf-faa-h { display: block; margin-bottom: .5rem; font-weight: 700; color: var(--qf-purple); text-transform: uppercase; letter-spacing: .03em; font-size: .85rem; }
.qf-faa-btnbox { width: 100%; max-width: 46rem; margin-bottom: 1.4rem; border: 0 !important; border-collapse: separate !important; }
.qf-faa-btnbox > tbody > tr > td { padding: 1rem 1.2rem; background: color-mix(in oklch, var(--color-qf-600) 18%, #ffffff); border: 1px solid var(--color-qf-700); border-radius: 12px; }
.qf-faa-status { display: inline-block; padding: .3rem .9rem; font-weight: 700; background: #ffffff; border: 1px solid var(--color-qf-700); border-radius: 999px; }
.qf-faa-pills { margin-bottom: .2rem; }
.qf-faa-actions { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .7rem; }
td.qf-faa-actions { display: table-cell; }
td.qf-faa-actions .qf-ors-btn + .qf-ors-btn { margin-left: .4rem; }
.qf-faa-layout, .qf-faa-list { width: 100%; border: 0; }
.qf-faa-layout > tbody > tr > td, .qf-faa-list > tbody > tr > td { padding: 0 0 1rem; border: 0; }
.qf-faa-card { padding: 1rem 1.2rem; background: #ffffff; border: 1px solid var(--color-qf-700); border-left: 6px solid var(--qf-purple); border-radius: 12px; }
.qf-faa-time { display: block; font-size: .8rem; font-weight: 700; color: #555; }
.qf-faa-title { display: block; margin: .2rem 0 .5rem; font-size: 1.15rem; font-weight: 700; color: var(--qf-purple); }
.qf-faa-msg { display: block; width: 100%; min-height: 12rem; padding: .6rem .8rem; resize: vertical; font-size: .95rem; line-height: 1.5; }
.qf-faa-read { min-height: 7rem; resize: none; background: var(--qf-tint, #faf8fc); border: 1px solid var(--color-qf-700); border-radius: 8px; }
.qf-faa-new { border-left-color: var(--qf-accent, #e8c547); background: color-mix(in oklch, var(--color-qf-600) 10%, #ffffff); }
.qf-faa-editing { border-left-color: var(--color-qf-700); background: color-mix(in oklch, var(--color-qf-600) 25%, #ffffff); }
.qf-faa-form { width: 100%; border: 0; }
.qf-faa-form > tbody > tr > td { padding: .35rem .4rem; vertical-align: top; border: 0; background: none; }
.qf-faa-form > tbody > tr > td:first-child { width: 7rem; padding-top: .6rem; white-space: nowrap; }
.qf-faa-titlebox { width: 100%; max-width: 28rem; }
.qf-faa-form .qf-faa-msg { min-height: 16rem; }
@media (max-width: 700px) {
  .qf-faa-form > tbody > tr { display: grid; }
  .qf-faa-form > tbody > tr > td:first-child { width: auto; padding-bottom: 0; }
  .qf-faa-form > tbody > tr > td:empty { display: none; }
}

/* Admin homepage feis messages (Admin/HomePageFeisMessages.aspx) - reuses qf-faa-* / qf-oa-picker */
.qf-hpm-page > .story { display: none; }   /* empty on this page */
.qf-hpm-page > div:not(.story) { padding: 1.2rem; }
.qf-hpm-site { max-width: none; }
.qf-hpm-card.qf-hpm-editing { border-left-color: var(--color-qf-700); background: color-mix(in oklch, var(--color-qf-600) 25%, #ffffff); }
.qf-hpm-msg { display: block; font-size: 1.1rem; font-weight: 700; color: var(--qf-purple); }
.qf-hpm-msgbox { width: 100%; font-size: 1.05rem; font-weight: 700; color: var(--qf-purple); }
.qf-hpm-card { padding: 1rem 1.2rem; background: #ffffff; border: 1px solid var(--color-qf-700); border-left: 6px solid var(--qf-purple); border-radius: 12px; }
.qf-hpm-kv { width: 100%; border: 0; }
.qf-hpm-kv > tbody > tr > td { padding: .45rem .5rem; vertical-align: top; border: 0; border-bottom: 1px solid var(--color-qf-700); background: none; overflow-wrap: anywhere; }
.qf-hpm-kv > tbody > tr:last-child > td { border-bottom: 0; }
.qf-hpm-kv > tbody > tr > td:first-child:not([colspan]) { width: 13rem; font-weight: 700; color: var(--qf-purple); }
.qf-hpm-id { display: inline-block; margin-right: .4rem; padding: .05rem .55rem; font-size: .8rem; font-weight: 700; background: var(--color-qf-600); border-radius: 999px; }
.qf-hpm-name { font-weight: 700; }
.qf-hpm-text { width: 100%; max-width: 32rem; }
.qf-hpm-kv .qf-faa-msg { min-height: 10rem; }
.qf-hpm-page .qf-oa-picker { margin-bottom: 1rem; }
@media (max-width: 700px) {
  .qf-hpm-kv > tbody > tr { display: grid; }
  .qf-hpm-kv > tbody > tr > td { border-bottom: 0; }
  .qf-hpm-kv > tbody > tr { border-bottom: 1px solid var(--color-qf-700); }
  .qf-hpm-kv > tbody > tr > td:first-child:not([colspan]) { width: auto; padding-bottom: 0; }
}

/* Admin venue / hotel list (Admin/VenueHotelAdmin.aspx) - reuses qf-oa-picker / qf-faa-* */
.qf-vh-picker { max-width: 34rem; margin-bottom: 1.2rem; }
.qf-vh-pickrow { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; }
.qf-vh-pickrow .qf-oa-select { flex: 1 1 14rem; width: auto; }
.qf-vh-all { white-space: nowrap; font-weight: 700; }
.qf-vh-all input { margin-right: .35rem; accent-color: var(--qf-purple); }
.qf-vh-list { width: 100%; border: 0; }
.qf-vh-list > tbody { display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: 1rem; }
.qf-vh-list > tbody > tr { display: block; }
.qf-vh-list > tbody > tr > td { display: block; height: 100%; padding: 0; border: 0; background: none; }
.qf-vh-list > tbody > .qf-vh-editrow, .qf-vh-list > tbody > .qf-vh-insrow { grid-column: 1 / -1; }
.qf-vh-card { box-sizing: border-box; height: 100%; padding: 1rem 1.1rem; background: #ffffff; border: 1px solid var(--color-qf-700); border-left: 6px solid var(--qf-purple); border-radius: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.qf-vh-card > .qf-faa-actions { margin-top: .8rem; }
.qf-vh-name { display: block; margin-bottom: .3rem; font-size: 1.05rem; font-weight: 700; color: var(--qf-purple); }
.qf-vh-k { display: block; margin-top: .6rem; font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: #555; }
.qf-vh-map { font-size: .82rem; word-break: break-all; color: var(--qf-purple); }
.qf-vh-card.qf-vh-new { border-left-color: var(--qf-accent); background: color-mix(in oklch, var(--color-qf-600) 10%, #ffffff); }
.qf-vh-card.qf-vh-editing { border-left-color: var(--color-qf-700); background: color-mix(in oklch, var(--color-qf-600) 25%, #ffffff); }
.qf-vh-form { max-width: 44rem; }
.qf-vh-form > tbody > tr > td:first-child { width: 10rem; font-weight: 700; }
.qf-vh-input, .qf-vh-form select { width: 100%; max-width: 30rem; }
@media (max-width: 700px) {
  .qf-vh-form > tbody > tr { display: grid; }
  .qf-vh-form > tbody > tr > td:first-child { width: auto; padding-bottom: 0; }
  .qf-vh-form > tbody > tr > td:empty { display: none; }
}

/* Admin support page (Admin/SupportAdmin.aspx) - reuses qf-oam-* / qf-faa-* */
.qf-sa-page .qf-fa-h { display: block; margin-top: 0; }
.qf-sa-path { display: block; margin-bottom: .6rem; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .85rem; color: #555; }
.qf-sa-files { max-width: 52rem; }
.qf-sa-upload { max-width: 52rem; }
.qf-sa-page .qf-sa-h { margin-top: 1.6rem; }
.qf-sa-card { padding: 1rem 1.2rem; background: #ffffff; border: 1px solid var(--color-qf-700); border-left: 6px solid var(--qf-purple); border-radius: 12px; }
.qf-sa-card.qf-sa-new { border-left-color: var(--qf-accent); background: color-mix(in oklch, var(--color-qf-600) 10%, #ffffff); }
.qf-sa-card.qf-sa-editing { border-left-color: var(--color-qf-700); background: color-mix(in oklch, var(--color-qf-600) 25%, #ffffff); }
.qf-sa-kv > tbody > tr > td:first-child { width: 11rem; font-weight: 700; color: var(--qf-purple); text-transform: capitalize; }
.qf-sa-kv > tbody > tr > td { overflow-wrap: anywhere; }
.qf-sa-title { font-size: 1.05rem; font-weight: 700; }
.qf-sa-details { display: block; line-height: 1.5; }
.qf-sa-input { width: 100%; }
textarea.qf-sa-path-ml { min-height: 3.5rem; }
.qf-sa-sort { width: 5rem; }
.qf-sa-kv input[type="checkbox"] { accent-color: var(--qf-purple); }
@media (max-width: 700px) {
  .qf-sa-kv > tbody > tr { display: grid; }
  .qf-sa-kv > tbody > tr > td:first-child { width: auto; padding-bottom: 0; }
  .qf-sa-kv > tbody > tr > td:empty { display: none; }
}

/* Admin competition types (Admin/CompetitionTypes.aspx) - reuses qf-ors-* */
.qf-ct-wrap { max-width: 60rem; }
.qf-ors-table.qf-ct-table { min-width: 0; width: 100%; }
.qf-ct-table > tbody > .qf-ors-row > td { font-weight: 400 !important; vertical-align: middle; }
.qf-ct-table > tbody > .qf-ors-row > td:nth-child(3) { font-weight: 700 !important; }
.qf-ct-table > tbody > tr > :first-child { width: 1%; white-space: nowrap; }
.qf-ct-table .qf-ors-btn + .qf-ors-btn { margin-left: .3rem; }
.qf-ct-table input[type="text"] { width: 100%; min-width: 7rem; }
.qf-ct-table input.qf-ct-num { width: 5rem; min-width: 0; text-align: center; }

/* Admin close / cap feis (Admin/CloseCapFeis.aspx) - big, touch-friendly control panel; reuses qf-oa-picker / qf-sc-pills */
.qf-ccf-picker { max-width: 46rem; }
.qf-ccf-picker .qf-auth-label { display: block; }
.qf-ccf-select { font-size: 1.15rem; font-weight: 700; min-height: 2.8rem; }
.qf-ccf-head { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; margin: 1.4rem 0 .7rem; }
.qf-ccf-head .qf-fa-h, .qf-ccf-page .qf-ccf-h { margin: 0; font-size: 1.35rem; }
.qf-ccf-page .qf-ccf-h { display: block; margin: 1.6rem 0 .7rem; }
.qf-ccf-fv, .qf-ccf-fv > tbody > tr > td { display: block; width: 100%; padding: 0; border: 0; }
.qf-ccf-fv > tbody { display: block; }
.qf-ccf-fv > tbody > tr { display: block; }
.qf-ccf-counts { display: grid; gap: .8rem; }
.qf-ccf-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); gap: .8rem; }
.qf-ccf-tile { display: flex; flex-direction: column; gap: .15rem; padding: .9rem 1.1rem; background: #ffffff; border: 1px solid var(--color-qf-700); border-radius: 12px; }
.qf-ccf-k { font-size: .78rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #555; }
.qf-ccf-v { font-size: 2.2rem; font-weight: 700; line-height: 1.1; color: var(--qf-purple); }
.qf-ccf-sub { font-size: .95rem; font-weight: 700; color: #555; }
.qf-ccf-total { background: var(--qf-purple); border-color: var(--qf-purple); }
.qf-ccf-total .qf-ccf-k, .qf-ccf-total .qf-ccf-v { color: #ffffff; }
.qf-ccf-note { display: block; margin-top: .35rem; font-size: .8rem; font-style: italic; color: #555; }
.qf-ccf-wide { flex-direction: row; align-items: baseline; justify-content: space-between; max-width: 32rem; }
.qf-ccf-wide .qf-ccf-v { font-size: 1.8rem; }
.qf-ccf-pending { margin-top: .8rem; border-left: 6px solid var(--qf-accent); }
.qf-ccf-live { margin-left: .5rem; padding: .15rem .6rem; font-size: .72rem; font-weight: 700; vertical-align: middle; color: #b23a12; background: #fff6f2; border: 1px solid #f0c6b5; border-radius: 999px; }
.qf-ccf-capfv { max-width: 52rem; }
.qf-ccf-set { width: 100%; border-collapse: separate !important; border-spacing: 0; background: #ffffff; border: 1px solid var(--color-qf-700); border-radius: 12px; overflow: hidden; }
.qf-ccf-set > tbody > tr > td { padding: .75rem 1rem; vertical-align: middle; border-bottom: 1px solid var(--color-qf-700); }
.qf-ccf-set > tbody > tr:last-child > td { border-bottom: 0; }
.qf-ccf-set > tbody > tr:nth-child(even) > td { background: color-mix(in oklch, var(--color-qf-600) 10%, #ffffff); }
.qf-ccf-set > tbody > tr > td:first-child { width: 40%; }
.qf-ccf-setk { font-size: 1.2rem; font-weight: 700; color: var(--qf-purple); }
.qf-ccf-pills { margin: 0; }
.qf-ccf-pills label { min-width: 4.5rem !important; padding: .55rem 1.2rem !important; font-size: 1rem !important; text-align: center; }
@media (max-width: 600px) {
  .qf-ccf-set > tbody > tr { display: grid; }
  .qf-ccf-set > tbody > tr > td { border-bottom: 0; }
  .qf-ccf-set > tbody > tr > td:first-child { width: auto; padding-bottom: .2rem; }
  .qf-ccf-set > tbody > tr { border-bottom: 1px solid var(--color-qf-700); }
  .qf-ccf-v { font-size: 1.8rem; }
  .qf-ccf-live { display: block; width: fit-content; margin: .4rem 0 0; }
}

/* Feis admin questionnaire (FeisAdmin/FeisQuestionaire.aspx) - reuses qf-oa-picker / qf-sc-pills / qf-ors-* */
.qf-fq-top { display: grid; gap: 1rem; margin-bottom: 1.2rem; }
.qf-fq-picker { max-width: 40rem; }
.qf-fq-picker .qf-auth-label { display: block; }
.qf-fq-headfv, .qf-fq-headfv > tbody > tr > td, .qf-fq-fv, .qf-fq-fv > tbody > tr > td { padding: 0; border: 0; background: none; }
.qf-fq-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.3rem; background: #ffffff; border: 1px solid var(--color-qf-700); border-left: 6px solid var(--qf-purple); border-radius: 12px; }
.qf-fq-headtxt > span { display: block; }
.qf-fq-name { font-size: 1.6rem; font-weight: 700; line-height: 1.2; color: var(--qf-purple); }
.qf-fq-region { font-size: 1.05rem; font-weight: 700; color: #555; }
.qf-fq-date { margin-top: .5rem; font-size: 1.2rem; font-weight: 700; }
.qf-fq-start { font-size: .95rem; color: #555; }
.qf-fq-logo { max-width: 150px; max-height: 110px; height: auto; border-radius: 8px; }
.qf-fq-tabs label { font-size: .9rem !important; padding: .5rem 1.1rem !important; }
.qf-fq-page hr.qf-fq-sep { margin: 1.6rem 0 1.2rem; border: 0; border-top: 1px solid var(--color-qf-700); opacity: 1; }
.qf-fq-page .qf-fa-h { display: block; margin: 1.6rem 0 .6rem; }
.qf-fq-page hr.qf-fq-sep + .qf-fa-h, .qf-fq-page .qf-fq-top + .qf-fa-h { margin-top: 0; }
.qf-fq-fv { width: 100%; max-width: 60rem; }
.qf-fq-fv .qf-fq-kv { width: 100%; max-width: 46rem; }
.qf-fq-fv .qf-fq-venue .qf-fq-kv, .qf-fq-fv .qf-fq-plain .qf-fq-kv { max-width: none; }
.qf-fq-kv { margin-bottom: .9rem; border-collapse: separate !important; border-spacing: 0; background: #ffffff; border: 1px solid var(--color-qf-700); border-radius: 10px; }
.qf-fq-kv > tbody > tr > td { padding: .4rem .8rem; vertical-align: top; border-bottom: 1px solid color-mix(in oklch, var(--color-qf-700) 55%, #ffffff); overflow-wrap: anywhere; }
.qf-fq-kv > tbody > tr:last-child > td { border-bottom: 0; }
.qf-fq-kv td > b { display: inline-block; min-width: 11rem; color: var(--qf-purple); }
.qf-fq-kv .qf-fa-h { margin: .6rem 0 .1rem; font-size: .95rem; letter-spacing: .03em; text-transform: uppercase; }
.qf-fq-kv input[type="text"], .qf-fq-kv select { max-width: 100%; min-width: 14rem; }
.qf-fq-kv input.qf-fq-short { min-width: 0; width: 7.5rem; }
.qf-fq-kv .qf-ors-btn + .qf-ors-btn { margin-left: .3rem; }
.qf-fq-page a.quickfeisButton.qf-inv-del { background: #ffffff !important; color: var(--qf-purple) !important; border: 2px solid var(--qf-purple); box-shadow: none; }
.qf-fq-plain, .qf-fq-plain > tbody > tr > td { padding: 0; border: 0; }
.qf-fq-2col { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; align-items: start; }
.qf-fq-2col .qf-fq-kv { width: 100%; }
.qf-fq-pills { margin: 0; }
.qf-fam-pills td { position: relative; }   /* keeps the hidden radio inputs inside their scroll box */
.qf-fq-pills label { font-size: .78rem !important; padding: .3rem .8rem !important; }
.qf-fq-hostwrap, .qf-fq-hostwrap > tbody > tr > td, .qf-fq-hosts { border: 0; padding: 0; }
.qf-fq-hosts > tbody > tr > td { padding: .15rem .6rem .15rem 0; border: 0; }
.qf-fq-hosts .qf-ors-row > td { background: none !important; font-weight: 400 !important; }
.qf-fq-venue { width: 100%; max-width: 34rem; }
.qf-fq-venue .qf-fq-kv { margin: .5rem 0 0; border: 0; background: none; }
.qf-fq-venue .qf-fq-kv td { padding: .2rem .6rem .2rem 0; border: 0; }
.qf-fq-venue select { min-width: 0; max-width: 100%; }
.qf-fq-contacts { width: 100%; border-collapse: separate !important; border-spacing: 0; background: #ffffff; border: 0; }
.qf-fq-wrap:has(.qf-fq-contacts) { max-width: 48rem; }
.qf-fq-contacts td:has(> .qf-ors-btn) { white-space: nowrap; }
.qf-fq-contacts > tbody > tr > td { padding: .35rem .8rem; vertical-align: top; border: 0; }
.qf-fq-contacts > tbody > tr > td:first-child { width: 12rem; }
.qf-fq-contacts > tbody > tr:has(.qf-ors-btn) > td { padding-bottom: .9rem; border-bottom: 2px solid var(--color-qf-700); }
.qf-fq-contacts > tbody > tr:last-child > td { border-bottom: 0; }
.qf-fq-contacts b { color: var(--qf-purple); }
.qf-fq-contacts .qf-ors-btn + .qf-ors-btn { margin-left: .3rem; }
.qf-fq-contacts .qf-inv-insert > td { padding-top: .9rem; background: color-mix(in oklch, var(--color-qf-600) 12%, #ffffff); }
.qf-fq-contacts .qf-fq-lbl { display: block; margin: .4rem 0 .15rem; }
.qf-ors-table.qf-fq-grid { min-width: 0; }
.qf-fq-grid > tbody > .qf-ors-row > td { font-weight: 400 !important; vertical-align: middle; }
.qf-fq-grid > tbody > tr > :first-child { width: 1%; white-space: nowrap; }
.qf-fq-grid .qf-ors-btn + .qf-ors-btn { margin-left: .3rem; }
.qf-fq-grid input[type="text"] { width: 100%; min-width: 6rem; }
.qf-fq-grid .qf-fq-pills { min-width: 7rem; }
.qf-fq-wrap { margin-bottom: 1.2rem; }
.qf-fq-notes { max-width: 50rem; min-height: 12rem; margin-bottom: .6rem; }
@media (max-width: 760px) {
  .qf-fq-2col { grid-template-columns: minmax(0, 1fr); }
  .qf-fq-head { flex-direction: column-reverse; align-items: flex-start; }
  .qf-fq-name { font-size: 1.3rem; }
  .qf-fq-kv, .qf-fq-kv > tbody, .qf-fq-kv > tbody > tr { display: block; }
  .qf-fq-kv > tbody > tr > td { display: block; border-bottom: 0; padding: .2rem .8rem; }
  .qf-fq-kv > tbody > tr { padding: .3rem 0; border-bottom: 1px solid color-mix(in oklch, var(--color-qf-700) 55%, #ffffff); }
  .qf-fq-kv > tbody > tr:last-child { border-bottom: 0; }
  .qf-fq-kv td > b { min-width: 0; }
  .qf-fq-kv input[type="text"], .qf-fq-kv select { min-width: 0; width: 100%; }
  .qf-fq-contacts > tbody > tr > td:first-child { width: auto; }
}

/* Admin feis results manager (Admin/FeisResultsManager.aspx) - reuses qf-oa-picker / qf-sc-picker / qf-ors-* */
.qf-frm-page .qf-fa-h { display: block; margin: 0 0 .6rem; }
.qf-frm-search { max-width: 56rem; align-items: flex-end; margin-bottom: 1rem; }
.qf-frm-search .qf-sc-field { flex: 1 1 14rem; }
.qf-frm-search .qf-frm-go { flex: 0 0 auto; }
.qf-frm-input { width: 100%; }
.qf-frm-feis { max-width: 40rem; margin: 1.6rem 0 1rem; }
.qf-frm-feis .qf-auth-label { display: block; }
.qf-ors-table.qf-frm-table { min-width: 0; }
.qf-frm-table > tbody > .qf-ors-row > td { font-weight: 400 !important; vertical-align: middle; }
.qf-frm-found > tbody > .qf-ors-row > td:first-child { width: 1%; }
.qf-frm-id { font-weight: 700; color: var(--qf-purple); }
.qf-frm-results > tbody > tr > :first-child { width: 1%; white-space: nowrap; }
.qf-frm-results .qf-ors-btn + .qf-ors-btn { margin-left: .3rem; }
.qf-frm-results input[type="text"] { width: 100%; min-width: 7rem; }
.qf-frm-results > tbody > .qf-ors-th > th a { color: #ffffff; text-decoration: none; }
.qf-frm-results > tbody > .qf-ors-th > th a:hover { color: var(--qf-accent); text-decoration: underline; }
.qf-frm-results > tbody > .qf-ors-th > th a::after { content: " \2195"; opacity: .55; font-weight: 400; }
@media (max-width: 760px) { .qf-ors-table.qf-frm-table { min-width: 640px; } }

/* Feis admin downloads (FeisAdmin/FeisDownloads.aspx) - reuses qf-oa-picker / qf-em-note */
.qf-fd-picker { max-width: 40rem; }
.qf-fd-fv, .qf-fd-fv > tbody > tr > td { padding: 0; border: 0; }
.qf-fd-name { display: block; margin: 1rem 0 0; font-size: 1.6rem; font-weight: 700; line-height: 1.2; color: var(--qf-purple); }
.qf-fd-page .qf-fd-h { display: block; margin: 1.4rem 0 .7rem; }
.qf-fd-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: .7rem; max-width: 60rem; }
.qf-fd-btn { width: 100%; min-height: 3.2rem; margin: 0 !important; white-space: normal; line-height: 1.25; }
.qf-fd-note { grid-column: 1 / -1; display: block; margin: 0; padding: .6rem .9rem; font-size: .85rem; font-weight: 700; color: #b23a12; background: #fff6f2; border: 1px solid #f0c6b5; border-radius: 10px; }
.qf-fd-admin { margin-top: 1.6rem; padding: 1rem 1.2rem 1.2rem; background: color-mix(in oklch, var(--color-qf-600) 15%, #ffffff); border: 1px dashed var(--color-qf-700); border-radius: 12px; }
.qf-fd-admin .qf-fd-h:first-child { margin-top: 0; }
.qf-fd-link { display: flex; align-items: center; justify-content: center; min-height: 3.2rem; padding: .5rem 1rem; font-weight: 700; text-align: center; color: var(--qf-purple); background: #ffffff; border: 2px solid var(--qf-purple); border-radius: 999px; text-decoration: none; }
.qf-fd-link:hover { background: var(--color-qf-600); }

/* Admin syllabus viewer (Admin/SyllabusAdmin.aspx) - read-only; reuses qf-oa-picker / qf-sc-picker / qf-ors-* */
.qf-syl-picker { max-width: 52rem; align-items: flex-end; margin-bottom: 1.2rem; }
.qf-syl-picker .qf-syl-go { flex: 0 0 auto; }
.qf-syl-picker .qf-auth-label { display: block; }
.qf-syl-fv, .qf-syl-fv > tbody > tr > td { width: 100%; padding: 0; border: 0; background: none; }
.qf-syl-tiles { display: grid; grid-template-columns: minmax(8rem, 1fr) minmax(14rem, 3fr) minmax(8rem, 1fr) minmax(8rem, 1fr); gap: .7rem; margin-bottom: 1rem; }
.qf-syl-tile { display: flex; flex-direction: column; gap: .15rem; padding: .8rem 1rem; background: #ffffff; border: 1px solid var(--color-qf-700); border-radius: 12px; }
.qf-syl-k { font-size: .75rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #555; }
.qf-syl-v { font-size: 1.3rem; font-weight: 700; color: var(--qf-purple); overflow-wrap: anywhere; }
.qf-syl-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: .9rem; align-items: start; margin-bottom: 1.2rem; }
.qf-syl-card { padding: .9rem 1rem; background: #ffffff; border: 1px solid var(--color-qf-700); border-radius: 12px; }
.qf-syl-h { display: block; margin-bottom: .5rem; font-size: .8rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--qf-purple); }
.qf-syl-kv, .qf-syl-lv { width: 100%; border: 0; }
.qf-syl-kv td, .qf-syl-lv td, .qf-syl-lv th { padding: .25rem .3rem; border: 0; border-bottom: 1px solid color-mix(in oklch, var(--color-qf-700) 45%, #ffffff); font-size: .88rem; vertical-align: middle; }
.qf-syl-kv tr:last-child td, .qf-syl-lv tr:last-child td { border-bottom: 0; }
.qf-syl-kv td:last-child { width: 1%; text-align: center; }
.qf-syl-lv th { font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #555; text-align: left; }
.qf-syl-lv th:nth-child(2) { text-align: center; }
.qf-syl-lv td:first-child { white-space: nowrap; font-weight: 700; }
.qf-syl-page input[type="checkbox"] { accent-color: var(--qf-purple); }
.qf-ors-table.qf-syl-table { min-width: 960px; }
.qf-syl-table > tbody > .qf-ors-row > td { font-weight: 400 !important; font-size: .85rem; vertical-align: middle; }
.qf-syl-table > tbody > .qf-ors-row > td:nth-child(3) { font-weight: 700 !important; }
.qf-syl-table > tbody > .qf-ors-th > th { font-size: .75rem; }
@media (max-width: 760px) {
  .qf-syl-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .qf-syl-v { font-size: 1.1rem; }
  .qf-syl-tiles .qf-syl-wide { grid-column: 1 / -1; order: -1; }
}

/* Admin CLRG directory (Admin/ClrgDirectory.aspx) - reuses qf-oa-picker / qf-sc-pills / qf-faa-form / qf-ors-* */
.qf-clrg-search { max-width: 52rem; margin-bottom: 1.2rem; }
.qf-clrg-search .qf-auth-label { display: block; }
.qf-clrg-pills { margin: .2rem 0 .8rem; }
.qf-clrg-lbl { font-weight: 600; }
.qf-clrg-row { display: flex; flex-wrap: wrap; gap: .5rem .8rem; align-items: center; }
.qf-clrg-row .qf-clrg-input { flex: 1 1 16rem; }
.qf-clrg-input { width: 100%; max-width: 28rem; }
.qf-ors-table.qf-clrg-table { min-width: 900px; }
.qf-clrg-table > tbody > .qf-ors-row > td { font-weight: 400 !important; vertical-align: middle; overflow-wrap: anywhere; }
.qf-clrg-table > tbody > .qf-ors-row > td:nth-child(2) { font-weight: 700 !important; color: var(--qf-purple); }
.qf-clrg-table > tbody > tr > :first-child { width: 1%; white-space: nowrap; overflow-wrap: normal; }
.qf-clrg-table > tbody > .qf-ors-th > th a { color: #ffffff; text-decoration: none; }
.qf-clrg-table > tbody > .qf-ors-th > th a:hover { color: var(--qf-accent); text-decoration: underline; }
.qf-clrg-table > tbody > .qf-ors-th > th a::after { content: " \2195"; opacity: .55; font-weight: 400; }
.qf-clrg-table > tbody > .qf-clrg-formrow > td { padding: .8rem !important; background: none !important; }
.qf-clrg-card { max-width: 40rem; padding: 1rem 1.2rem; background: #ffffff; border: 1px solid var(--color-qf-700); border-left: 6px solid var(--qf-purple); border-radius: 12px; }
.qf-clrg-card.qf-clrg-editing { border-left-color: var(--color-qf-700); background: color-mix(in oklch, var(--color-qf-600) 25%, #ffffff); }
.qf-clrg-card.qf-clrg-new { border-left-color: var(--qf-accent); background: color-mix(in oklch, var(--color-qf-600) 10%, #ffffff); }
.qf-clrg-form > tbody > tr > td:first-child { width: 8rem; font-weight: 700; color: var(--qf-purple); }
.qf-clrg-wrap .qf-ors-pager .quickfeisButton { margin: .3rem .2rem; }

/* Admin video counts (Admin/VideoCount.aspx) - reuses qf-fd-picker / qf-fd-name / qf-ors-* */
.qf-vc-page .qf-vc-h { display: block; margin: 1.4rem 0 .7rem; }
.qf-vc-grid { display: grid; grid-template-columns: minmax(14rem, 1fr) minmax(0, 2.4fr); gap: 1rem; align-items: start; max-width: 70rem; }
.qf-ors-table.qf-vc-table { min-width: 0; width: 100%; }
.qf-vc-table > tbody > .qf-ors-row > td { font-weight: 400 !important; vertical-align: middle; }
.qf-vc-table > tbody > .qf-ors-row > td:first-child { font-weight: 700 !important; }
.qf-vc-table > tbody > .qf-ors-row > td.qf-c { font-variant-numeric: tabular-nums; }
@media (max-width: 860px) {
  .qf-vc-grid { grid-template-columns: minmax(0, 1fr); }
  .qf-ors-table.qf-vc-sum { min-width: 560px; }
}

/* Admin email lists (Admin/EmailV2.aspx) - reuses qf-em-* / qf-wq-dl / qf-oa-select */
.qf-aem-top { margin-bottom: 1.2rem; }
input.quickfeisButton.qf-aem-big { width: 100%; max-width: 46rem; padding: .9rem 1.4rem; font-size: 1.15rem; font-weight: 700; white-space: normal; }
.qf-aem-page .qf-aem-h { display: block; margin: 1.4rem 0 .6rem; }
.qf-aem-card { max-width: 60rem; padding: 1.1rem 1.2rem; background: #ffffff; border: 2px solid var(--qf-purple-line); border-radius: var(--qf-radius); box-shadow: var(--qf-shadow); }
.qf-aem-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.4rem; align-items: start; }
.qf-aem-col { display: flex; flex-direction: column; gap: .5rem; min-width: 0; }
.qf-aem-col.qf-aem-full { grid-column: 1 / -1; }
.qf-aem-col .qf-auth-label { margin: 0; }
.qf-aem-list { width: 100%; min-height: 7rem; padding: .3rem; border: 1px solid var(--color-qf-700); border-radius: 8px; }
.qf-aem-col .qf-em-k { margin-bottom: .1rem; }
@media (max-width: 700px) { .qf-aem-grid { grid-template-columns: minmax(0, 1fr); } }

/* Admin email list settings (Admin/EmailRegionFilterSettings.aspx) - reuses qf-ors-* */
input.quickfeisButton.qf-erf-back { margin-bottom: 1.2rem; }
input.quickfeisButton.qf-erf-back::before { content: none; }
.qf-erf-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 1.4rem; align-items: start; }
.qf-erf-col > .qf-fa-h { display: block; margin: 0 0 .6rem; }
.qf-ors-table.qf-erf-table { min-width: 0; width: 100%; }
.qf-erf-table > tbody > .qf-ors-row > td { font-weight: 400 !important; vertical-align: middle; }
.qf-erf-table > tbody > tr > :first-child { width: 1%; white-space: nowrap; }
.qf-erf-lists > tbody > .qf-ors-row > td:nth-child(2) { font-weight: 700 !important; }
.qf-erf-table .qf-ors-btn + .qf-ors-btn { margin-left: .3rem; }
.qf-erf-table input[type="text"], .qf-erf-table select { width: 100%; min-width: 9rem; }
.qf-erf-feis > tbody > .qf-ors-row > td:nth-child(2) { width: 1%; color: #555; }
.qf-ors-table.qf-erf-sub { min-width: 0; width: 100%; }
.qf-erf-sub > tbody > .qf-ors-row > td { font-weight: 400 !important; background: #ffffff; }
.qf-erf-sub > tbody > tr > :first-child { width: 1%; white-space: nowrap; }
.qf-erf-sub .qf-ors-btn + .qf-ors-btn { margin-left: .3rem; }
@media (max-width: 900px) { .qf-erf-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) { .qf-ors-table.qf-erf-table { min-width: 520px; } }

/* Oireachtas registration master page (QuickFeisOir_v2.Master) - header/footer match QuickFeis.Master */
.qf-oirm-bannerfv, .qf-oirm-bannerfv > tbody > tr > td { width: 100%; padding: 0; border: 0; }
.qf-oirm-banner { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.2rem; padding: .9rem 1.2rem; background: #ffffff; border: 1px solid var(--color-qf-700); border-left: 6px solid var(--qf-purple); border-radius: 12px; }
.qf-oirm-logo { width: 84px; max-height: 84px; height: auto; object-fit: contain; flex: 0 0 auto; }
.qf-oirm-kicker { display: block; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #555; }
.qf-oirm-name { display: block; font-size: 1.6rem; font-weight: 700; line-height: 1.2; color: var(--qf-purple); }
.qf-oirm-layout { display: grid; grid-template-columns: 15.5rem minmax(0, 1fr); grid-template-areas: "steps content"; gap: 1.4rem; align-items: start; }
.qf-oirm-content { grid-area: content; }
.qf-oirm-steps { grid-area: steps; position: sticky; top: 6.5rem; margin: 0 !important; }
.qf-oirm-stepbody { display: flex; flex-direction: column; gap: .45rem; }
/* The code-behind paints these buttons (LightGray / Red / Purple); turn those into the step look */
/* display:block also beats the generic 'hide empty red text' rule, which would otherwise hide the red (locked) step buttons */
.qf-oirm-stepbody input.quickfeisButton.qf-oirm-step { display: block !important; }
input.quickfeisButton.qf-oirm-step { width: 100%; margin: 0 !important; padding: .55rem .9rem; text-align: left; font-weight: 700; white-space: normal; background: #ffffff !important; color: var(--qf-purple) !important; border: 2px solid var(--color-qf-700) !important; box-shadow: none !important; }
input.quickfeisButton.qf-oirm-step:hover:not(:disabled) { background: var(--color-qf-600) !important; }
/* browsers may re-write the inline style with spaces, so match both spellings */
input.quickfeisButton.qf-oirm-step:is([style*="background-color:purple" i], [style*="background-color: purple" i]) { background: var(--qf-purple) !important; color: #ffffff !important; border-color: var(--qf-purple) !important; }
input.quickfeisButton.qf-oirm-step:disabled { background: #f4f2f6 !important; color: #8a8392 !important; border-style: dashed !important; cursor: not-allowed; opacity: 1; }
.qf-oirm-dlnote { margin-top: .7rem; font-size: .72rem; font-weight: 700; letter-spacing: .03em; line-height: 1.35; color: #555; }
@media (max-width: 900px) {
  .qf-oirm-layout { grid-template-columns: minmax(0, 1fr); grid-template-areas: "steps" "content"; }
  .qf-oirm-steps { position: static; }
  .qf-oirm-stepbody { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qf-oirm-dlnote { grid-column: 1 / -1; margin-top: .3rem; }
  .qf-oirm-summary { grid-column: 1 / -1; }
  .qf-oirm-name { font-size: 1.25rem; }
  .qf-oirm-logo { width: 60px; }
}

/* Oireachtas registration home (OireachtasRegistration_v2/OireachtasHome.aspx) */
.qf-oirh-page .qf-fa-h { display: block; margin: 0 0 .7rem; }
.qf-oirh-steps { counter-reset: qfoir; list-style: none; display: grid; gap: .6rem; margin: 0 0 1.2rem; padding: 0; }
.qf-oirh-steps > li { counter-increment: qfoir; position: relative; padding: .7rem 1rem .7rem 3.3rem; line-height: 1.45; background: #ffffff; border: 1px solid var(--color-qf-700); border-radius: 10px; }
.qf-oirh-steps > li::before { content: counter(qfoir); position: absolute; left: .85rem; top: .6rem; display: grid; place-items: center; width: 1.8rem; height: 1.8rem; font-size: .9rem; font-weight: 700; color: #ffffff; background: var(--qf-purple); border-radius: 50%; }
.qf-oirh-sub { list-style-type: lower-alpha; margin: .35rem 0 0; padding-left: 1.3rem; font-size: .92rem; color: #444; }
.qf-oirh-notes { padding: 1rem 1.2rem; line-height: 1.5; background: color-mix(in oklch, var(--qf-accent) 12%, #ffffff); border-left: 4px solid var(--qf-accent); border-radius: 0 10px 10px 0; }
.qf-oirh-closed { display: block; margin-top: .5rem; padding: .8rem 1rem; font-size: 1.05rem; color: #b23a12; background: #fff6f2; border: 1px solid #f0c6b5; border-radius: 10px; }

/* Oireachtas registration step 1 (OireachtasRegistration_v2/SchoolInfo.aspx) - reuses qf-ors-* / qf-oa-select */
.qf-osi-step { display: inline-block; margin-bottom: 1rem; padding: .3rem .9rem; font-size: .8rem; font-weight: 700; letter-spacing: .06em; color: #ffffff; background: var(--qf-purple); border-radius: 999px; }
.qf-osi-page .qf-fa-h { display: block; margin: 0 0 .6rem; }
.qf-osi-page .qf-osi-h { margin-top: 1.6rem; }
.qf-osi-fv, .qf-osi-fv > tbody > tr > td { width: 100%; padding: 0; border: 0; background: none; }
.qf-osi-card { max-width: 52rem; margin-bottom: 1.4rem; padding: 1.1rem 1.3rem; background: #ffffff; border: 1px solid var(--color-qf-700); border-left: 6px solid var(--qf-purple); border-radius: 12px; }
.qf-osi-school { display: block; margin-bottom: .8rem; font-size: 1.4rem; font-weight: 700; color: var(--qf-purple); }
.qf-osi-prompt { display: block; margin-bottom: .35rem; }
.qf-osi-card .qf-oa-select { max-width: 40rem; font-size: 1.05rem; font-weight: 700; min-height: 2.6rem; }
.qf-osi-kv { width: 100%; margin-top: 1rem; border: 0; }
.qf-osi-kv td { padding: .35rem .5rem; border: 0; border-bottom: 1px solid color-mix(in oklch, var(--color-qf-700) 50%, #ffffff); vertical-align: top; overflow-wrap: anywhere; }
.qf-osi-kv tr:last-child td { border-bottom: 0; }
.qf-osi-kv .qf-osi-k { width: 7rem; font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #555; }
.qf-osi-kv .qf-osi-v { font-weight: 700; }
.qf-osi-sec { max-width: 52rem; margin-bottom: 1.4rem; }
.qf-ors-table.qf-osi-table { min-width: 0; width: 100%; }
.qf-osi-table > tbody > .qf-ors-row > td { vertical-align: middle; font-weight: 400 !important; }
.qf-osi-table > tbody > .qf-ors-row > td:last-child { width: 1%; white-space: nowrap; text-align: right; }
.qf-osi-table > tbody > .qf-ors-row > td:last-child:empty { padding: 0 !important; }
.qf-osi-name { font-size: 1.05rem; font-weight: 700; }
.qf-osi-select { width: 100%; max-width: 36rem; }
.qf-osi-wrap { max-width: 52rem; }
.qf-osi-edit { width: 100%; margin-bottom: .6rem; border: 0; }
.qf-osi-edit td { padding: .35rem .6rem .35rem 0; border: 0; vertical-align: top; }
.qf-osi-k { display: inline-block; min-width: 8rem; margin-right: .4rem; font-weight: 700; color: var(--qf-purple); }
.qf-osi-yn { min-width: 5rem; margin-bottom: .3rem; }
.qf-osi-cbl td { padding: .1rem 0; border: 0; }
.qf-osi-cbl input[type="checkbox"] { margin-right: .4rem; accent-color: var(--qf-purple); }
.qf-osi-acts { width: 1%; white-space: nowrap; vertical-align: top !important; }
.qf-osi-acts .qf-ors-btn + .qf-ors-btn { margin-left: .3rem; }
@media (max-width: 700px) {
  .qf-osi-kv tr { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); }
  .qf-osi-edit tr { display: grid; }
}

/* Oireachtas registration step 2 (OireachtasRegistration_v2/VerifyDancers.aspx) - reuses qf-osi-step / qf-sc-pills / qf-ors-* */
.qf-ovd-page .qf-osi-step { margin-right: .6rem; }
.qf-ovd-toggle { margin: 0 0 .8rem !important; }
.qf-ovd-ins { max-width: 60rem; margin: .4rem 0 1rem; padding: 1rem 1.2rem 1rem 2.4rem; line-height: 1.5; background: color-mix(in oklch, var(--qf-accent) 10%, #ffffff); border-left: 4px solid var(--qf-accent); border-radius: 0 10px 10px 0; }
.qf-ovd-ins > li { margin-bottom: .35rem; }
.qf-ovd-ins > li.qf-ovd-subli { list-style: none; }
.qf-ovd-sub { margin: .1rem 0 .4rem; padding-left: 1.2rem; font-size: .92rem; }
.qf-ovd-bar { margin: .8rem 0 1rem; }
input.quickfeisButton.qf-ovd-save { padding: .75rem 1.6rem; font-size: 1rem; letter-spacing: .02em; }
.qf-ovd-filters { display: flex; flex-wrap: wrap; gap: .6rem 1.4rem; margin-bottom: 1rem; }
.qf-ovd-pills { margin: 0; }
.qf-ors-table.qf-ovd-table { min-width: 1150px; }
.qf-ovd-table > tbody > .qf-ors-row > td { font-weight: 400 !important; vertical-align: middle; font-size: .88rem; }
.qf-ovd-name { font-weight: 700; color: var(--qf-ink); }
.qf-ovd-g { color: #555; font-size: .8rem; }
.qf-ovd-type { min-width: 10rem; font-weight: 700; }
.qf-ovd-dd { min-width: 9rem; max-width: 12rem; }
.qf-ovd-warn { display: inline-block; padding: .15rem .55rem; font-size: .75rem; font-weight: 700; color: #b23a12; background: #fff6f2; border: 1px solid #f0c6b5; border-radius: 999px; }
.qf-ovd-table > tbody > .qf-ors-row > td:nth-child(9) { overflow-wrap: anywhere; max-width: 14rem; }

/* Responsive "card rows": when the table doesn't fit its box, each row becomes a compact card.
   Cells carry data-label="..." so the column name shows inside the card. */
.qf-ovd-wrap { container-type: inline-size; }
@container (max-width: 1150px) {
  .qf-ors-table.qf-ovd-table { min-width: 0; width: 100%; border-collapse: separate !important; border-spacing: 0; }
  .qf-ovd-table > tbody { display: block; }
  .qf-ovd-table > tbody > .qf-ors-th { display: none; }
  .qf-ovd-table > tbody > .qf-ors-row {
    display: grid;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: .5rem 1rem;
    align-items: start;
    padding: .75rem 1rem;
    border-bottom: 1px solid var(--color-qf-700);
  }
  .qf-ovd-table > tbody > .qf-ors-row:nth-child(even) { background: color-mix(in oklch, var(--color-qf-600) 10%, #ffffff); }
  .qf-ovd-table > tbody > .qf-ors-row > td { order: 4; display: block; padding: 0 !important; border: 0 !important; background: none !important; text-align: left !important; min-width: 0; overflow-wrap: anywhere; font-size: .85rem; }
  .qf-ovd-table > tbody > .qf-ors-row > td[data-label]::before {
    content: attr(data-label);
    display: block;
    margin-bottom: .1rem;
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: #6b6475;
  }
  /* top line of the card: name, registration, flag */
  .qf-ovd-table > tbody > .qf-ors-row > td:nth-child(1) { order: 1; grid-column: span 3; align-self: center; }
  .qf-ovd-table > tbody > .qf-ors-row > td:nth-child(1)::before { display: none; }
  .qf-ovd-table > tbody > .qf-ors-row > td:nth-child(1) .qf-ovd-name { font-size: 1.05rem; }
  .qf-ovd-table > tbody > .qf-ors-row > td:nth-child(2) { order: 2; grid-column: span 3; }
  .qf-ovd-table > tbody > .qf-ors-row > td:nth-child(10) { order: 3; grid-column: span 2; }
  .qf-ovd-table > tbody > .qf-ors-row > td:nth-child(9) { grid-column: span 2; }
  .qf-ovd-table .qf-ovd-type, .qf-ovd-table .qf-ovd-dd { width: 100%; min-width: 0; max-width: 16rem; }
}
@container (max-width: 760px) {
  .qf-ovd-table > tbody > .qf-ors-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qf-ovd-table > tbody > .qf-ors-row > td:nth-child(1) { grid-column: 1 / -1; }
  .qf-ovd-table > tbody > .qf-ors-row > td:nth-child(2),
  .qf-ovd-table > tbody > .qf-ors-row > td:nth-child(10) { grid-column: span 1; }
  .qf-ovd-table > tbody > .qf-ors-row > td:nth-child(9) { grid-column: 1 / -1; }
}

/* Oireachtas registration step 3 (OireachtasRegistration_v2/SetDanceSelection.aspx) - reuses qf-osi-step / qf-ovd-* / qf-ors-*;
   rows become cards when the table doesn't fit (cells carry data-label) */
.qf-osd-ins { display: block; }
.qf-osd-ins ul { margin: .3rem 0 .6rem; }
.qf-ors-table.qf-osd-table { min-width: 960px; }
.qf-osd-table > tbody > .qf-ors-row > td { font-weight: 400 !important; vertical-align: middle; font-size: .88rem; }
.qf-osd-table > tbody > .qf-ors-th > th a { color: #ffffff; text-decoration: none; }
.qf-osd-table > tbody > .qf-ors-th > th a:hover { color: var(--qf-accent); text-decoration: underline; }
.qf-osd-table > tbody > .qf-ors-th > th a::after { content: " \2195"; opacity: .55; font-weight: 400; }
.qf-osd-comp { font-weight: 700; color: var(--qf-purple); }
.qf-osd-dd { min-width: 7rem; }
.qf-osd-set { min-width: 12rem; max-width: 100%; }
.qf-content input[type="text"].qf-osd-speed { width: 5rem; text-align: center; font-weight: 700; }
.qf-osd-table .qf-osd-speed:is([style*="background-color:Red" i], [style*="background-color: red" i]) { background-color: #fde7e1 !important; color: #b23a12 !important; border: 2px solid #b23a12 !important; }   /* missing speed: the code paints it red; keep it red so the instructions still make sense */
.qf-osd-std { display: inline-block; padding: .15rem .55rem; font-size: .75rem; font-weight: 700; color: var(--qf-purple); background: var(--color-qf-600); border-radius: 999px; }
.qf-osd-tr { white-space: nowrap; font-weight: 700; }
.qf-osd-tr input { margin-right: .35rem; accent-color: var(--qf-purple); }
.qf-osd-wrap { container-type: inline-size; }
@container (max-width: 960px) {
  .qf-ors-table.qf-osd-table { min-width: 0; width: 100%; border-collapse: separate !important; border-spacing: 0; }
  .qf-osd-table > tbody { display: block; }
  .qf-osd-table > tbody > .qf-ors-th { display: none; }
  .qf-osd-table > tbody > .qf-ors-row { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: .5rem 1rem; align-items: start; padding: .75rem 1rem; border-bottom: 1px solid var(--color-qf-700); }
  .qf-osd-table > tbody > .qf-ors-row:nth-child(even) { background: color-mix(in oklch, var(--color-qf-600) 10%, #ffffff); }
  .qf-osd-table > tbody > .qf-ors-row > td { display: block; padding: 0 !important; border: 0 !important; background: none !important; min-width: 0; overflow-wrap: anywhere; }
  .qf-osd-table > tbody > .qf-ors-row > td[data-label]::before { content: attr(data-label); display: block; margin-bottom: .1rem; font-size: .66rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #6b6475; }
  .qf-osd-table > tbody > .qf-ors-row > td:nth-child(1), .qf-osd-table > tbody > .qf-ors-row > td:nth-child(2) { grid-column: span 2; }
  .qf-osd-table > tbody > .qf-ors-row > td:nth-child(1) .qf-ovd-name, .qf-osd-table > tbody > .qf-ors-row > td:nth-child(2) .qf-ovd-name { font-size: 1.05rem; }
  .qf-osd-table > tbody > .qf-ors-row > td:nth-child(3) { grid-column: span 4; }
  .qf-osd-table > tbody > .qf-ors-row > td:nth-child(4), .qf-osd-table > tbody > .qf-ors-row > td:nth-child(5) { grid-column: span 2; }
  .qf-osd-table > tbody > .qf-ors-row > td:nth-child(6) { grid-column: span 3; }
  .qf-osd-table > tbody > .qf-ors-row > td:nth-child(7) { grid-column: span 1; }
  .qf-osd-table > tbody > .qf-ors-row > td:nth-child(8) { grid-column: 1 / -1; }
  .qf-osd-table > tbody > .qf-ors-row > td:nth-child(8):not(:has(input))  { display: none; }
  .qf-osd-table .qf-osd-dd, .qf-osd-table .qf-osd-set { width: 100%; min-width: 0; }
}
@container (max-width: 600px) {
  .qf-osd-table > tbody > .qf-ors-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qf-osd-table > tbody > .qf-ors-row > td:nth-child(n) { grid-column: span 1; }
  .qf-osd-table > tbody > .qf-ors-row > td:nth-child(3), .qf-osd-table > tbody > .qf-ors-row > td:nth-child(6), .qf-osd-table > tbody > .qf-ors-row > td:nth-child(8) { grid-column: 1 / -1; }
}

/* Oireachtas registration step 4 (OireachtasRegistration_v2/CreateTeamsV2.aspx) - reuses qf-osi-step / qf-ovd-ins / qf-ors-*;
   rows become cards when the table doesn't fit (cells carry data-label) */
.qf-oct-page .qf-osi-step { margin-right: .6rem; }
.qf-oct-intro { padding-left: 1.2rem; }
.qf-ors-table.qf-oct-table { min-width: 900px; }
.qf-oct-table > tbody > .qf-ors-row > td { font-weight: 400 !important; vertical-align: top; font-size: .88rem; }
.qf-oct-acts { width: 1%; white-space: nowrap; }
.qf-oct-acts .qf-oct-btn { display: block; width: 100%; min-width: 9.5rem; margin: 0 0 .4rem; }
.qf-oct-inv { display: block; font-size: .8rem; font-weight: 700; color: var(--qf-purple); }
.qf-oct-pending { display: inline-block; margin-top: .2rem; font-size: .78rem; font-weight: 700; color: #b23a12; }
.qf-oct-pending:empty, .qf-oct-inv:empty { display: none; }
.qf-oct-comp { min-width: 11rem; }
.qf-oct-num { display: inline-block; margin-bottom: .2rem; padding: .1rem .6rem; font-size: 1rem; font-weight: 700; color: #ffffff; background: var(--qf-purple); border-radius: 999px; }
.qf-oct-cname { display: block; font-weight: 700; color: var(--qf-ink); }
.qf-oct-years { display: block; font-size: .8rem; color: #555; }
.qf-oct-memcell { min-width: 15rem; }
.qf-oct-memwrap, .qf-oct-agewrap { width: 100%; border: 0; }
.qf-oct-memwrap td, .qf-oct-agewrap td { padding: 0 !important; border: 0 !important; }
.qf-oct-members { width: 100%; margin-bottom: .4rem; border-collapse: collapse; }
.qf-oct-members td { padding: .25rem .5rem !important; border: 0 !important; border-bottom: 1px solid var(--color-qf-700) !important; background: color-mix(in oklch, var(--color-qf-600) 12%, #ffffff); font-size: .85rem; }
.qf-oct-age { border-collapse: collapse; }
.qf-oct-agetbl { border-collapse: collapse; }
.qf-oct-agetbl td { padding: .1rem .7rem .1rem 0 !important; border: 0 !important; font-size: .78rem; color: #555; white-space: nowrap; }
.qf-oct-countcell { width: 1%; text-align: center; min-width: 8rem; }
.qf-oct-count { display: block; font-size: 2.2rem; font-weight: 700; line-height: 1.1; color: var(--qf-purple); }
.qf-oct-warn { margin-top: .4rem; padding: .4rem .6rem; font-size: .8rem; text-align: left; color: #b23a12; background: #fff6f2; border: 1px solid #f0c6b5; border-radius: 8px; }
.qf-oct-wh { display: block; font-size: .7rem; font-weight: 700; letter-spacing: .06em; }
.qf-oct-comments > td { padding: .8rem 1rem !important; }
.qf-oct-ch { display: block; margin: .3rem 0 .3rem; font-weight: 700; color: var(--qf-purple); }
.qf-content textarea.qf-oct-ta { width: 100%; min-height: 9rem; }
.qf-oct-add > td { padding: 1rem !important; }
.qf-oct-addh { display: block; margin-bottom: .4rem; font-size: 1.05rem; }
.qf-oct-addsel { width: 100%; max-width: 32rem; }
.qf-oct-wrap { container-type: inline-size; }
@container (max-width: 900px) {
  .qf-ors-table.qf-oct-table { min-width: 0; width: 100%; border-collapse: separate !important; border-spacing: 0; }
  .qf-oct-table > tbody { display: block; }
  .qf-oct-table > tbody > .qf-ors-th { display: none; }
  .qf-oct-table > tbody > tr { display: block; }
  .qf-oct-table > tbody > tr > td { display: block; }
  .qf-oct-table > tbody > .qf-ors-row:not(.qf-oct-add) { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .6rem 1rem; align-items: start; padding: .8rem 1rem; border-bottom: 1px solid var(--color-qf-700); }
  .qf-oct-table > tbody > .qf-ors-row:not(.qf-oct-add) > td { padding: 0 !important; border: 0 !important; background: none !important; text-align: left; min-width: 0; width: auto; overflow-wrap: anywhere; }
  .qf-oct-table > tbody > .qf-ors-row > td[data-label]:not([data-label=""])::before { content: attr(data-label); display: block; margin-bottom: .1rem; font-size: .66rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #6b6475; }
  .qf-oct-table > tbody > .qf-ors-row > td.qf-oct-comp { order: 1; grid-column: span 3; }
  .qf-oct-table > tbody > .qf-ors-row > td:nth-child(3) { order: 2; grid-column: span 1; text-align: left !important; }
  .qf-oct-table > tbody > .qf-ors-row > td.qf-oct-countcell { order: 3; grid-column: span 2; text-align: right; }
  .qf-oct-table > tbody > .qf-ors-row > td:nth-child(4) { order: 4; grid-column: span 2; }
  .qf-oct-table > tbody > .qf-ors-row > td.qf-oct-memcell { order: 5; grid-column: span 4; }
  .qf-oct-table > tbody > .qf-ors-row > td.qf-oct-acts { order: 6; grid-column: 1 / -1; white-space: normal; }
  .qf-oct-acts .qf-oct-btn { display: inline-block; width: auto; min-width: 0; margin: 0 .4rem .4rem 0; }
  .qf-oct-countcell .qf-oct-warn { text-align: left; }
}
@container (max-width: 560px) {
  .qf-oct-table > tbody > .qf-ors-row:not(.qf-oct-add) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qf-oct-table > tbody > .qf-ors-row > td.qf-oct-comp, .qf-oct-table > tbody > .qf-ors-row > td.qf-oct-memcell, .qf-oct-table > tbody > .qf-ors-row > td.qf-oct-countcell { grid-column: 1 / -1; text-align: left; }
  .qf-oct-table > tbody > .qf-ors-row > td:nth-child(3), .qf-oct-table > tbody > .qf-ors-row > td:nth-child(4) { order: 4; grid-column: span 1; }
  .qf-oct-acts .qf-oct-btn { display: block; width: 100%; }
}

/* Oireachtas registration step 5 (OireachtasRegistration_v2/VerifyRegistration.aspx) - reuses qf-osi-step / qf-ors-*;
   invoice and payment rows become cards when the table doesn't fit (cells carry data-label) */
.qf-ovr-page .qf-osi-step { margin-right: .6rem; }
.qf-ovr-h { display: block; margin: 1.6rem 0 .6rem; font-size: 1.1rem; font-weight: 700; color: var(--qf-purple); }
.qf-ovr-page .qf-ovr-h:first-of-type { margin-top: 1rem; }
.qf-ovr-totalfv { width: 100%; max-width: 34rem; border: 0; }
.qf-ovr-totalfv > tbody > tr > td { padding: 0 !important; border: 0 !important; }
.qf-ovr-totals { width: 100%; border-collapse: collapse; background: #ffffff; border: 1px solid var(--color-qf-700); border-radius: var(--qf-radius); overflow: hidden; }
.qf-ovr-totals td { padding: .6rem 1rem !important; border: 0 !important; border-bottom: 1px solid var(--color-qf-700) !important; vertical-align: middle; }
.qf-ovr-totals td:nth-child(2) { text-align: right; }
.qf-ovr-k { font-size: .95rem; }
.qf-ovr-v { font-size: 1.05rem; font-weight: 700; white-space: nowrap; }
.qf-ovr-totals tr:nth-child(3) td { background: color-mix(in oklch, var(--color-qf-600) 18%, #ffffff); }
.qf-ovr-due { font-size: 1.5rem; color: var(--qf-purple); }
.qf-ovr-prev td { border-bottom: 0 !important; }
input.quickfeisButton.qf-ovr-prevbtn { padding: .65rem 1.5rem; font-size: .95rem; white-space: nowrap; }
.qf-ors-table.qf-ovr-table { min-width: 0; width: 100%; }
.qf-ovr-table > tbody > .qf-ors-row > td, .qf-ovr-paytable > tbody > .qf-ors-row > td { font-weight: 400 !important; vertical-align: middle; font-size: .88rem; }
.qf-ovr-num { font-weight: 700; color: var(--qf-purple); }
.qf-ovr-owed { font-weight: 700; color: var(--qf-ink); }
.qf-ovr-docs { width: 11rem; }
.qf-ovr-docs .qf-ovr-btn { display: block; width: 100%; margin: .15rem 0 .35rem; white-space: normal; }
.qf-ovr-table > tbody > .qf-ors-th > th { white-space: normal; line-height: 1.25; }
.qf-ovr-paycell:not(:has(input)) { padding: 0 !important; }
input.qf-ovr-pay { padding: .55rem 1rem; font-weight: 700; color: var(--qf-ink) !important; background: var(--qf-accent) !important; border: 2px solid var(--qf-accent) !important; border-radius: 999px; white-space: nowrap; }
input.qf-ovr-pay:hover { filter: brightness(.95); }
.qf-ovr-check { max-width: 46rem; margin-top: .4rem; }
.qf-ovr-ck { display: block; position: relative; margin: 0 0 .45rem; padding: .55rem .9rem .55rem 2.4rem; font-size: .95rem; font-weight: 700; background: #ffffff; border: 1px solid var(--color-qf-700); border-radius: 10px; }
.qf-ovr-ck::before { position: absolute; left: .85rem; top: .5rem; font-weight: 700; }
.qf-ovr-ck:is([style*="color:Green" i], [style*="color: green" i]) { color: #2f6b45 !important; background: #f1f8f3; border-color: #bcdcc6; }
.qf-ovr-ck:is([style*="color:Green" i], [style*="color: green" i])::before { content: "\2713"; }
.qf-ovr-ck:is([style*="color:Red" i], [style*="color: red" i]) { display: block !important; padding: .55rem .9rem .55rem 2.4rem !important; color: #b23a12 !important; background-color: #fff6f2 !important; border-color: #f0c6b5; border-radius: 10px !important; }
.qf-ovr-ck:is([style*="color:Red" i], [style*="color: red" i])::before { content: "!"; }
.qf-ovr-wrap { container-type: inline-size; }
@container (max-width: 860px) {
  .qf-ors-table.qf-ovr-table, .qf-ors-table.qf-ovr-paytable { min-width: 0; width: 100%; border-collapse: separate !important; border-spacing: 0; }
  .qf-ovr-table > tbody, .qf-ovr-paytable > tbody { display: block; }
  .qf-ovr-table > tbody > .qf-ors-th, .qf-ovr-paytable > tbody > .qf-ors-th { display: none; }
  .qf-ovr-table > tbody > .qf-ors-row, .qf-ovr-paytable > tbody > .qf-ors-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .55rem 1rem; align-items: start; padding: .8rem 1rem; border-bottom: 1px solid var(--color-qf-700); }
  .qf-ovr-table > tbody > .qf-ors-row > td, .qf-ovr-paytable > tbody > .qf-ors-row > td { display: block; padding: 0 !important; border: 0 !important; background: none !important; text-align: left !important; min-width: 0; overflow-wrap: anywhere; }
  .qf-ovr-table > tbody > .qf-ors-row > td[data-label]::before, .qf-ovr-paytable > tbody > .qf-ors-row > td[data-label]::before { content: attr(data-label); display: block; margin-bottom: .1rem; font-size: .66rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #6b6475; }
  .qf-ovr-table > tbody > .qf-ors-row > td.qf-ovr-docs, .qf-ovr-table > tbody > .qf-ors-row > td.qf-ovr-paycell { grid-column: 1 / -1; white-space: normal; }
  .qf-ovr-table > tbody > .qf-ors-row > td.qf-ovr-paycell:not(:has(input)) { display: none; }
  .qf-ovr-docs .qf-ovr-btn { display: inline-block; width: auto; margin: 0 .3rem .3rem 0 !important; }
  .qf-ovr-table > tbody > .qf-ors-row > td.qf-ovr-docs { width: auto; }
  .qf-ovr-paytable > tbody > .qf-ors-row > td:last-child { grid-column: 1 / -1; }
}
@container (max-width: 520px) {
  .qf-ovr-table > tbody > .qf-ors-row, .qf-ovr-paytable > tbody > .qf-ors-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qf-ovr-docs .qf-ovr-btn, input.qf-ovr-pay { display: block; width: 100%; margin: 0 0 .4rem !important; }
}

/* Oireachtas invoice preview (OireachtasRegistration_v2/InvoicePreview.aspx) - a stand-alone page with no master,
   laid out as a printable invoice "sheet"; detail rows become cards on small screens (cells carry data-label) */
body.qf-oip-body { background: color-mix(in oklch, var(--color-qf-600) 14%, #ffffff); }
.qf-oip-sheet { width: 100%; max-width: 1060px; margin: 1.5rem auto 2.5rem; padding: 1.6rem 2rem 2rem; background: #ffffff; border: 1px solid var(--color-qf-700); border-radius: var(--qf-radius); box-shadow: var(--qf-shadow); }
.qf-oip-sheet table { border-collapse: collapse; }
.qf-oip-sheet td, .qf-oip-sheet th { vertical-align: top; }
a.quickfeisButton.qf-oip-back { display: inline-block; margin-bottom: 1.2rem; padding: .5rem 1.1rem; font-size: .85rem; color: var(--qf-purple) !important; background: #ffffff; border: 2px solid var(--qf-purple); border-radius: 999px; text-decoration: none; }
a.quickfeisButton.qf-oip-back::before { content: "\2190  "; }
a.quickfeisButton.qf-oip-back:hover { color: #ffffff !important; background: var(--qf-purple); }
.qf-oip-top { width: 100%; }
.qf-oip-top > tbody > tr > td { padding: 0 0 1rem; }
.qf-oip-brand > td { border-bottom: 3px solid var(--qf-purple); padding-bottom: 1rem !important; vertical-align: middle !important; }
.qf-oip-logocell { width: 1%; padding-right: 1.2rem !important; }
.qf-oip-logo { display: block; width: auto; max-width: 140px; max-height: 110px; object-fit: contain; }
.qf-oip-title { text-align: right; font-size: 1.5rem; font-weight: 700; color: var(--qf-purple); line-height: 1.25; }
.qf-oip-kicker { display: block; margin-bottom: .2rem; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #6b6475; }
.qf-oip-preview { display: block; margin: 1rem 0 0; padding: .7rem 1rem; font-size: 1.05rem; font-weight: 700; letter-spacing: .03em; text-align: center; color: #b23a12; background: #fff6f2; border: 2px dashed #e7a68c; border-radius: 10px; }
.qf-oip-school { width: 100%; max-width: 30rem; background: #ffffff; border: 1px solid var(--color-qf-700); }
.qf-oip-school td { padding: .4rem .9rem; border-bottom: 1px solid var(--color-qf-700); }
.qf-oip-school tr:last-child td { border-bottom: 0; }
.qf-oip-schoolh { font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #ffffff; background: var(--qf-purple); }
.qf-oip-k { width: 7.5rem; font-weight: 700; color: var(--qf-purple); }
.qf-oip-h { display: block; margin: 1.6rem 0 .6rem; padding-bottom: .35rem; font-size: 1.15rem; font-weight: 700; color: var(--qf-purple); border-bottom: 1px solid var(--color-qf-700); }
td.qf-oip-h { display: table-cell; padding: 1.6rem 0 .4rem !important; margin: 0; }
.qf-oip-sec { width: 100%; }
.qf-oip-sec > tbody > tr > td { padding: 0; }
.qf-oip-layout { width: 100%; }
.qf-oip-layout > tbody > tr > td { padding: 0; }
.qf-oip-table { width: 100%; margin-bottom: .4rem; font-size: .85rem; background: #ffffff; border: 1px solid var(--color-qf-700); }
.qf-oip-table > tbody > .qf-oip-th > th { padding: .5rem .7rem; font-size: .74rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #ffffff; background: var(--qf-purple-deep, var(--color-qf-900)); white-space: nowrap; text-align: left; }
.qf-oip-table > tbody > .qf-oip-th > th.qf-c { text-align: center; }
.qf-oip-table > tbody > .qf-oip-th > th.qf-oip-r, .qf-oip-r { text-align: right; }
.qf-oip-table > tbody > .qf-oip-row > td { padding: .45rem .7rem; border-bottom: 1px solid var(--color-qf-700); vertical-align: middle; }
.qf-oip-table > tbody > .qf-oip-row:nth-child(odd) > td { background: color-mix(in oklch, var(--color-qf-600) 9%, #ffffff); }
.qf-oip-solo > tbody > .qf-oip-row > td:nth-child(n+5) { text-align: center; }
.qf-oip-solo > tbody > .qf-oip-row > td:nth-child(7) { text-align: left; overflow-wrap: anywhere; }
.qf-oip-solo > tbody > .qf-oip-row > td:first-child { font-weight: 700; color: var(--qf-purple); white-space: nowrap; }
.qf-oip-sum { max-width: 40rem; }
.qf-oip-totalfv { width: 100%; max-width: 40rem; border: 0; }
.qf-oip-totalfv > tbody > tr > td { padding: 0 !important; border: 0 !important; }
.qf-oip-totals { width: 100%; margin-top: .2rem; }
.qf-oip-totals td { padding: .35rem .7rem; text-align: right; font-weight: 700; }
.qf-oip-totals td:last-child { width: 9rem; white-space: nowrap; }
.qf-oip-totals tr:last-child td { padding-top: .7rem; border-top: 2px solid var(--qf-purple); vertical-align: baseline; }
.qf-oip-duek { font-size: 1.15rem; }
.qf-oip-due { font-size: 1.7rem; color: var(--qf-purple); }
.qf-oip-note { padding-top: 1rem !important; }
.qf-oip-note p { margin: 0 0 .4rem; padding: 0 0 0 .9rem; font-size: .88rem; border-left: 4px solid var(--qf-accent); }
.qf-oip-teams > tbody > .qf-oip-row > td:first-child { font-weight: 700; }
.qf-oip-teams > tbody > .qf-oip-th > th:nth-child(3) { width: 65%; }
.qf-oip-memcell { padding: .35rem .5rem !important; }
.qf-oip-members { width: 100%; font-size: .8rem; }
.qf-oip-members td { padding: .2rem .45rem; border-bottom: 1px dashed var(--color-qf-700); }
.qf-oip-members tr:last-child td { border-bottom: 0; }
.qf-oip-members td:first-child { font-weight: 700; }
.qf-oip-assess { max-width: 40rem; }
/* rows the code marks as deleted (red + strike-through): keep the strike, drop the site-wide gold highlight */
.qf-oip-body [style*="line-through" i] { color: #b23a12 !important; background: none !important; padding: 0 !important; text-decoration: line-through !important; }
@media (max-width: 860px) {
  .qf-oip-sheet { margin: 0; padding: 1rem 16px 1.5rem; border: 0; border-radius: 0; box-shadow: none; }
  .qf-oip-title { font-size: 1.15rem; }
  .qf-oip-solo, .qf-oip-teams, .qf-oip-members { display: block; border: 0; background: none; }
  .qf-oip-solo > tbody, .qf-oip-teams > tbody, .qf-oip-members > tbody { display: block; }
  .qf-oip-solo > tbody > .qf-oip-th, .qf-oip-teams > tbody > .qf-oip-th { display: none; }
  .qf-oip-solo > tbody > .qf-oip-row, .qf-oip-teams > tbody > .qf-oip-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem 1rem; margin-bottom: .6rem; padding: .7rem .9rem; border: 1px solid var(--color-qf-700); border-radius: 10px; background: #ffffff; }
  .qf-oip-solo > tbody > .qf-oip-row > td, .qf-oip-teams > tbody > .qf-oip-row > td { display: block; padding: 0 !important; border: 0 !important; background: none !important; text-align: left !important; min-width: 0; overflow-wrap: anywhere; white-space: normal; }
  .qf-oip-sheet td[data-label]::before { content: attr(data-label); display: block; margin-bottom: .05rem; font-size: .64rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #6b6475; }
  .qf-oip-solo > tbody > .qf-oip-row > td:nth-child(2), .qf-oip-solo > tbody > .qf-oip-row > td:nth-child(7), .qf-oip-teams > tbody > .qf-oip-row > td.qf-oip-memcell { grid-column: 1 / -1; }
  .qf-oip-members > tbody > tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .3rem .8rem; padding: .45rem 0; border-bottom: 1px dashed var(--color-qf-700); }
  .qf-oip-members > tbody > tr > td { display: block; padding: 0; border: 0; min-width: 0; overflow-wrap: anywhere; }
  .qf-oip-members > tbody > tr > td:first-child, .qf-oip-members > tbody > tr > td:nth-child(4) { grid-column: 1 / -1; }
  .qf-oip-sum > tbody > .qf-oip-row > td::before, .qf-oip-assess > tbody > .qf-oip-row > td::before { display: none !important; }
  .qf-oip-due { font-size: 1.35rem; }
}
@media print {
  body.qf-oip-body { background: #ffffff; }
  .qf-oip-sheet { max-width: none; margin: 0; padding: 0; border: 0; box-shadow: none; }
  a.qf-oip-back { display: none !important; }
  .qf-oip-table > tbody > .qf-oip-th > th { color: #000000; background: #e6e0ec; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* Oireachtas registration step 6 (OireachtasRegistration_v2/FinishRegistration.aspx) - reuses the qf-ovr-* invoice,
   totals and registration-check styles from step 5 */
.qf-ofr-hr { margin: 2rem 0 1.4rem; border: 0; border-top: 1px solid var(--color-qf-700); opacity: 1; }
.qf-ofr-ins { max-width: 52rem; padding-left: 1.2rem; }
.qf-ofr-insh { display: block; margin-bottom: .4rem; font-weight: 700; }
.qf-ofr-ins ol { margin: 0; padding-left: 1.3rem; }
.qf-ofr-ins ol > li { margin-bottom: .3rem; }
.qf-ofr-ins ul { margin: .3rem 0 0; padding-left: 1.1rem; font-size: .9rem; }
.qf-ofr-bmsg { display: block; margin: -.3rem 0 .7rem; font-size: .9rem; color: #555; }
.qf-ofr-sumwrap { max-width: 40rem; }
.qf-ofr-sumwrap .qf-ors-layout { width: 100%; }
.qf-ors-table.qf-ofr-sum { width: 100%; min-width: 0; }
.qf-ofr-sum > tbody > .qf-ors-th > th { white-space: normal; }
.qf-ofr-sum > tbody > .qf-ors-row > td { font-weight: 400 !important; font-size: .9rem; }
.qf-ofr-r { text-align: right !important; white-space: nowrap; }
.qf-ovr-totalfv.qf-ofr-totalfv { max-width: 40rem; margin-top: .8rem; }
.qf-ofr-agree { max-width: 52rem; margin: 1.6rem 0 1rem; padding: 1rem 1.2rem; background: color-mix(in oklch, var(--color-qf-600) 10%, #ffffff); border: 1px solid var(--color-qf-700); border-radius: var(--qf-radius); }
.qf-ofr-agree:not(:has(input)) { display: none; }
.qf-ofr-cb { display: flex; align-items: flex-start; gap: .6rem; margin-bottom: .7rem; font-weight: 700; line-height: 1.35; }
.qf-ofr-cb input[type="checkbox"] { flex: 0 0 auto; width: 1.25rem; height: 1.25rem; margin-top: .05rem; accent-color: var(--qf-purple); cursor: pointer; }
.qf-ofr-cb label { cursor: pointer; }
.qf-ofr-hint { display: block; margin-top: .2rem; font-size: .85rem; font-weight: 700; color: #6b6475; }
.qf-ofr-hint + .qf-ofr-hint { display: none; }   /* LabelCheckBoxes3 and LabelCheckBoxes carry the same sentence - show it once */
.qf-ofr-warns { max-width: 52rem; margin: 0 0 1.2rem; }
.qf-ofr-warn { display: block; margin-bottom: .45rem; padding: .55rem .9rem; font-size: .9rem; font-weight: 700; color: #b23a12; background: #fff6f2; border: 1px solid #f0c6b5; border-left: 4px solid #b23a12; border-radius: 8px; }
.qf-ofr-closed { font-size: 1rem; }
input.quickfeisButton.qf-ofr-create { display: block; min-width: 16rem; margin: .4rem 0 1.5rem; padding: .85rem 2rem; font-size: 1.15rem; letter-spacing: .04em; }
input.quickfeisButton.qf-ofr-create:disabled { opacity: 1; color: #8a8392 !important; background: var(--color-qf-600) !important; border-color: var(--color-qf-600) !important; box-shadow: none; cursor: not-allowed; }

/* Oireachtas registration summary (OireachtasRegistration_v2/RegistrationSummary.aspx) - one section per list;
   rows become cards when the table doesn't fit (cells carry data-label) */
.qf-orsm-sec { margin-bottom: 1.8rem; }
.qf-orsm-sec:not(:has(table, input)) { display: none; }   /* sections the code hides (e.g. Treble Reel / Freestyle) */
.qf-orsm-page .qf-orsm-sec:first-child .qf-orsm-h { margin-top: .2rem; }
.qf-orsm-h { letter-spacing: .03em; }
.qf-ors-table.qf-orsm-table { min-width: 0; }
.qf-orsm-table > tbody > .qf-ors-row > td { font-weight: 400 !important; font-size: .88rem; vertical-align: middle; }
.qf-orsm-table > tbody > .qf-ors-row > td:first-child { font-weight: 700 !important; color: var(--qf-purple); white-space: nowrap; }
.qf-orsm-table > tbody > .qf-ors-row > td:nth-child(2) { font-weight: 700 !important; }
.qf-orsm-table > tbody > .qf-ors-th > th { white-space: nowrap; }
.qf-orsm-wrap .qf-fin-empty td { padding: .7rem 1rem; color: #6b6475; font-style: italic; }
input.quickfeisButton.qf-orsm-dl { margin-top: .6rem; }
.qf-orsm-wrap { container-type: inline-size; }
@container (max-width: 760px) {
  .qf-orsm-table { border-collapse: separate !important; border-spacing: 0; }
  .qf-orsm-table > tbody { display: block; }
  .qf-orsm-table > tbody > .qf-ors-th { display: none; }
  .qf-orsm-table > tbody > .qf-ors-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem 1rem; padding: .75rem 1rem; border-bottom: 1px solid var(--color-qf-700); }
  .qf-orsm-table > tbody > .qf-ors-row:nth-child(even) { background: color-mix(in oklch, var(--color-qf-600) 10%, #ffffff); }
  .qf-orsm-table > tbody > .qf-ors-row > td { display: block; padding: 0 !important; border: 0 !important; background: none !important; text-align: left !important; min-width: 0; overflow-wrap: anywhere; white-space: normal !important; }
  .qf-orsm-table > tbody > .qf-ors-row > td[data-label]::before { content: attr(data-label); display: block; margin-bottom: .1rem; font-size: .64rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #6b6475; }
  .qf-orsm-table > tbody > .qf-ors-row > td:nth-child(2) { grid-column: 1 / -1; order: -1; }
}

/* NAIDC registration home (MajorRegistration/OireachtasHome.aspx) - the instruction bullets as cards, like the Oireachtas home steps */
.qf-mjh-list > li { padding-left: 2.6rem; }
.qf-mjh-list > li::before { content: ""; top: 1.05rem; left: 1.1rem; width: .65rem; height: .65rem; }

/* deleted (already-invoiced) registrations: the code paints them red + strike-through; keep that, drop the site-wide gold highlight */
.qf-ovd-page [style*="line-through" i] { color: #b23a12 !important; background: none !important; padding: 0 !important; text-decoration: line-through !important; }

/* NAIDC set dances (MajorRegistration/SetDanceSelection.aspx) - same look as the Oireachtas step 3 (qf-osd-*),
   but this table has 5 columns; rows become cards when it doesn't fit (cells carry data-label) */
.qf-msd-table > tbody > .qf-ors-row > td { font-weight: 400 !important; vertical-align: middle; font-size: .88rem; }
.qf-msd-table > tbody > .qf-ors-th > th a { color: #ffffff; text-decoration: none; }
.qf-msd-table > tbody > .qf-ors-th > th a:hover { color: var(--qf-accent); text-decoration: underline; }
.qf-msd-table > tbody > .qf-ors-th > th a::after { content: " \2195"; opacity: .55; font-weight: 400; }
.qf-ors-table.qf-msd-table { min-width: 0; }
.qf-msd-table .qf-osd-speed:is([style*="background-color:Red" i], [style*="background-color: red" i]) { background-color: #fde7e1 !important; color: #b23a12 !important; border: 2px solid #b23a12 !important; }   /* missing speed: keep it red so the instructions still make sense */
.qf-msd-wrap { container-type: inline-size; }
@container (max-width: 700px) {
  .qf-msd-table { border-collapse: separate !important; border-spacing: 0; }
  .qf-msd-table > tbody { display: block; }
  .qf-msd-table > tbody > .qf-ors-th { display: none; }
  .qf-msd-table > tbody > .qf-ors-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem 1rem; align-items: start; padding: .75rem 1rem; border-bottom: 1px solid var(--color-qf-700); }
  .qf-msd-table > tbody > .qf-ors-row:nth-child(even) { background: color-mix(in oklch, var(--color-qf-600) 10%, #ffffff); }
  .qf-msd-table > tbody > .qf-ors-row > td { display: block; padding: 0 !important; border: 0 !important; background: none !important; min-width: 0; overflow-wrap: anywhere; }
  .qf-msd-table > tbody > .qf-ors-row > td[data-label]::before { content: attr(data-label); display: block; margin-bottom: .1rem; font-size: .66rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #6b6475; }
  .qf-msd-table > tbody > .qf-ors-row > td:nth-child(3), .qf-msd-table > tbody > .qf-ors-row > td:nth-child(4) { grid-column: 1 / -1; }
  .qf-msd-table .qf-osd-set { width: 100%; min-width: 0; }
}

/* NAIDC create teams (MajorRegistration/CreateTeamsV2.aspx) - reuses the Oireachtas step 4 (qf-oct-*) styles; its intro is a bulleted list */
ul.qf-oct-intro { padding-left: 2.4rem; }
ul.qf-oct-intro > li { margin-bottom: .35rem; }

/* NAIDC review invoice (MajorRegistration/VerifyRegistration.aspx) - reuses the step 5 totals / check styles (qf-ovr-*);
   the detail lists get a purple caption row and turn into cards when they don't fit (cells carry data-label) */
.qf-mvr-last { font-size: 1.05rem; margin: .2rem 0 .4rem; }
.qf-mvr-legend { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; margin: -.2rem 0 .8rem; font-size: .88rem; }
.qf-mvr-key b { display: inline-block; margin-right: .25rem; padding: .05rem .5rem; border-radius: 999px; font-size: .78rem; letter-spacing: .04em; }
.qf-mvr-key-y b { color: var(--qf-ink); background: color-mix(in oklch, var(--qf-accent) 55%, #ffffff); }
.qf-mvr-key-g b { color: #1f5a36; background: #d6efdd; }
.qf-mvr-wrap { margin-bottom: 1.4rem; }
.qf-ors-table.qf-mvr-table { min-width: 0; }
.qf-mvr-table > tbody > .qf-mvr-cap > th { padding: .6rem .9rem; font-size: .95rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #ffffff; background: var(--qf-purple); text-align: left; }
.qf-mvr-table > tbody > .qf-ors-row > td { font-weight: 400 !important; font-size: .86rem; vertical-align: middle; }
.qf-mvr-table > tbody > .qf-ors-th > th a { color: #ffffff; text-decoration: none; }
.qf-mvr-table > tbody > .qf-ors-th > th a:hover { color: var(--qf-accent); text-decoration: underline; }
.qf-mvr-table .qf-ofr-r { text-align: right !important; }
/* invoice-number status the code paints: yellow = on this invoice, green = paid, red = problem */
.qf-mvr-table span:is([style*="background-color:Yellow" i], [style*="background-color: yellow" i]) { display: inline-block; padding: .1rem .55rem; font-weight: 700; color: var(--qf-ink); background: color-mix(in oklch, var(--qf-accent) 55%, #ffffff) !important; border-radius: 999px; }
.qf-mvr-table span:is([style*="background-color:LightGreen" i], [style*="background-color: lightgreen" i]) { display: inline-block; padding: .1rem .55rem; font-weight: 700; color: #1f5a36 !important; background: #d6efdd !important; border-radius: 999px; }
.qf-mvr-table span:is([style*="background-color:Red" i], [style*="background-color: red" i]) { display: inline-block; padding: .1rem .55rem; font-weight: 700; color: #ffffff !important; background: #b23a12 !important; border-radius: 999px; }
.qf-mvr-fam > tbody > .qf-ors-th > th, .qf-mvr-dancers > tbody > .qf-ors-th > th { white-space: normal; line-height: 1.25; }
.qf-mvr-fam > tbody > .qf-ors-row > td:nth-child(3) { overflow-wrap: anywhere; }
.qf-mvr-table span[style*="background-color" i] { white-space: nowrap; }
.qf-mvr-fam > tbody > .qf-ors-row > td:last-child { white-space: nowrap; }
.qf-mvr-detail > td { padding: .5rem .8rem 1rem 2rem !important; background: color-mix(in oklch, var(--color-qf-600) 12%, #ffffff); }
.qf-mvr-dancers { font-size: .82rem; }
.qf-mvr-wrap { container-type: inline-size; }
@container (max-width: 900px) {
  .qf-mvr-table { border-collapse: separate !important; border-spacing: 0; }
  .qf-mvr-table > tbody { display: block; }
  .qf-mvr-table > tbody > .qf-ors-th { display: none; }
  .qf-mvr-table > tbody > .qf-mvr-cap, .qf-mvr-table > tbody > .qf-mvr-cap > th { display: block; }
  .qf-mvr-table > tbody > .qf-ors-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem 1rem; padding: .75rem 1rem; border-bottom: 1px solid var(--color-qf-700); }
  .qf-mvr-table > tbody > .qf-ors-row:nth-child(even) { background: color-mix(in oklch, var(--color-qf-600) 10%, #ffffff); }
  .qf-mvr-table > tbody > .qf-ors-row > td { display: block; padding: 0 !important; border: 0 !important; background: none !important; text-align: left !important; min-width: 0; overflow-wrap: anywhere; }
  .qf-mvr-table > tbody > .qf-ors-row > td[data-label]::before { content: attr(data-label); display: block; margin-bottom: .1rem; font-size: .64rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #6b6475; }
  .qf-mvr-table > tbody > .qf-ors-row > td:empty { display: none; }
  .qf-mvr-table > tbody > .qf-ors-row > td:not([data-label]) { grid-column: 1 / -1; }
  .qf-mvr-table > tbody > .qf-mvr-detail, .qf-mvr-table > tbody > .qf-mvr-detail > td { display: block; padding: .6rem .8rem !important; }
}
@container (max-width: 520px) {
  .qf-mvr-table > tbody > .qf-ors-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* NAIDC payment (MajorRegistration/FinishRegistration.aspx) - reuses the step 5/6 styles (qf-ovr-*, qf-ofr-*) */
ul.qf-mfr-check { list-style: none; margin: 0 0 1rem; padding: 0; }
ul.qf-mfr-check > li { margin: 0; padding: 0; }
ul.qf-mfr-check > li:empty { display: none; }
.qf-mfr-warns { margin-top: 1.2rem; }
.qf-mfr-resend { white-space: nowrap; }
.qf-mfr-email { display: block; margin-top: .3rem; font-size: .78rem; color: #555; white-space: normal; overflow-wrap: anywhere; }
.qf-mfr-invwrap { margin-top: 1.6rem; }

/* NAIDC invoice (MajorRegistration/Invoice.aspx) - same sheet as the invoice preview, plus the invoice date / number block */
.qf-oip-metafv { margin: .6rem 0 0 auto; border: 0; }
.qf-oip-metafv > tbody > tr > td { padding: 0 !important; border: 0 !important; }
.qf-oip-meta { margin-left: auto; font-size: .95rem; }
.qf-oip-meta td { padding: .1rem 0 .1rem 1rem; vertical-align: baseline; }
.qf-oip-mk { font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #6b6475; text-align: right; }
.qf-oip-mv { font-weight: 700; color: var(--qf-ink); text-align: right; white-space: nowrap; }

/* Oireachtas team builder (OireachtasRegistration_v2/TeamBuilder.aspx) - the page script colours the team slots and the
   list border inline (red = required, yellow = optional, black = picked, grey = under-age; border grey/green/red);
   these rules turn those colours into the new look without touching the script */
.qf-otb-top { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1.2rem; }
.qf-otb-box { padding: 1rem 1.1rem; background: color-mix(in oklch, var(--color-qf-600) 12%, #ffffff); border: 1px solid var(--color-qf-700); border-radius: var(--qf-radius); }
.qf-otb-k { display: block; margin: 0 0 .3rem; font-size: .72rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--qf-purple); }
.qf-otb-box .qf-otb-dd { display: block; width: 100%; margin-bottom: .8rem; }
.qf-otb-box .qf-otb-dd:last-of-type { margin-bottom: .3rem; }
.qf-otb-need { display: inline-block; padding: .1rem .55rem; font-size: .75rem; font-weight: 700; color: #b23a12; background: #fff6f2; border: 1px solid #f0c6b5; border-radius: 999px; }
.qf-otb-need[style*="hidden" i] { display: none; }
.qf-otb-v { display: block; margin-bottom: .2rem; font-weight: 700; }
.qf-otb-limits > div { margin-bottom: .15rem; }
.qf-otb-limits b { color: var(--qf-purple); }
.qf-otb-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; overflow: hidden; clip: rect(0 0 0 0); border: 0 !important; }   /* values the script / code-behind read - kept on the page, just not shown */
.qf-otb-pick { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr) minmax(0, 1.2fr); gap: 1rem; align-items: start; }
.qf-otb-h { display: block; margin: 0 0 .45rem; font-size: 1rem; font-weight: 700; color: var(--qf-ink); }
ul.qf-otb-sel { display: flex; flex-direction: column; gap: .35rem; margin: 0; padding: .6rem; list-style: none; background: #ffffff; border: 3px solid var(--color-qf-700); border-width: 3px !important; border-radius: var(--qf-radius); }
ul.qf-otb-sel[style*="rgb(0, 128, 0)"] { border-color: #3c8d5a !important; }
ul.qf-otb-sel[style*="rgb(255, 0, 0)"] { border-color: #b23a12 !important; }
ul.qf-otb-sel[style*="rgb(211, 211, 211)"] { border-color: var(--color-qf-700) !important; }
ul.qf-otb-sel > li { padding: .45rem .7rem; font-size: .88rem; border-radius: 8px; border: 1px solid var(--color-qf-700); background: #ffffff; color: var(--qf-ink) !important; }
ul.qf-otb-sel > li[style*="rgb(255, 0, 0)"] { color: #b23a12 !important; background: #fff6f2; border: 1px dashed #e7a68c; }            /* required, still empty */
ul.qf-otb-sel > li[style*="rgb(255, 255, 0)"] { color: #8a8392 !important; background: #f7f5f9; border: 1px dashed var(--color-qf-700); } /* optional, still empty */
ul.qf-otb-sel > li[style*="rgb(0, 0, 0)"] { color: #ffffff !important; background: var(--qf-purple); border-color: var(--qf-purple); }   /* picked dancer */
ul.qf-otb-sel > li[style*="rgb(157, 151, 149)"] { color: var(--qf-ink) !important; background: color-mix(in oklch, var(--qf-accent) 30%, #ffffff); border-color: var(--qf-accent); } /* picked under-age dancer */
.qf-otb-scroll { max-height: 320px; overflow-y: auto; padding: .4rem .6rem; background: #ffffff; border: 1px solid var(--color-qf-700); border-radius: var(--qf-radius); }
.qf-otb-scroll-under { background: #f7f5f9; }
.qf-otb-cbl { width: 100%; border: 0; }
.qf-otb-cbl td { padding: .3rem .2rem; border: 0 !important; border-bottom: 1px solid #efeaf3 !important; font-size: .88rem; }
.qf-otb-cbl tr:last-child td { border-bottom: 0 !important; }
.qf-otb-cbl input[type="checkbox"] { width: 1.05rem; height: 1.05rem; margin-right: .5rem; vertical-align: -.15rem; accent-color: var(--qf-purple); }
.qf-otb-cbl input[type="checkbox"]:disabled + label { color: #b5afbc; }
.qf-otb-approval { margin-top: 1.2rem; max-width: 60rem; }
.qf-otb-warn { display: block; margin-bottom: .6rem; padding: .8rem 1rem; font-weight: 700; line-height: 1.45; color: #b23a12; background: #fff6f2; border: 1px solid #f0c6b5; border-left: 4px solid #b23a12; border-radius: 8px; }
.qf-otb-warn[style*="hidden" i] { display: none; }
.qf-content textarea.qf-otb-comments { width: 100%; min-height: 6rem; }
.qf-otb-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.2rem; }
input.quickfeisButton.qf-otb-save, input.quickfeisButton.qf-otb-cancel { padding: .8rem 1.8rem; font-size: 1.05rem; letter-spacing: .03em; }
input.quickfeisButton.qf-otb-save:disabled { opacity: 1; color: #8a8392 !important; background: var(--color-qf-600) !important; border-color: var(--color-qf-600) !important; box-shadow: none; cursor: not-allowed; }
@media (max-width: 1100px) {
  .qf-otb-pick { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .qf-otb-pick > .qf-otb-col:first-child { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
  .qf-otb-top, .qf-otb-pick { grid-template-columns: minmax(0, 1fr); }
}

/* NAIDC assessments (MajorRegistration/Assessments.aspx) - pick ads / tickets and add them to the invoice */
.qf-mas-msg { margin-bottom: 1rem; }
.qf-mas-msg:empty { display: none; }
.qf-mas-wrap { max-width: 48rem; }
.qf-ors-table.qf-mas-table { min-width: 0; }
.qf-mas-table > tbody > .qf-ors-row > td { vertical-align: middle; }
.qf-mas-item { font-weight: 700; }
.qf-mas-qty { width: auto; min-width: 4.5rem; }
.qf-mas-act { width: 1%; white-space: nowrap; text-align: right; }
.qf-mas-totalfv { max-width: 48rem; width: 100%; margin-top: .4rem; border: 0; }
.qf-mas-totalfv > tbody > tr > td { padding: 0 !important; border: 0 !important; }
.qf-mas-total { display: flex; justify-content: flex-end; align-items: baseline; gap: 1rem; padding: .7rem 1rem; border-top: 2px solid var(--qf-purple); }
.qf-mas-tk { font-size: 1.1rem; font-weight: 700; }
.qf-mas-tv { font-weight: 700; }
.qf-mas-act input.qf-ors-btn { white-space: nowrap; }
.qf-mas-wrap { container-type: inline-size; }
@container (max-width: 560px) {
  .qf-mas-table { border-collapse: separate !important; border-spacing: 0; }
  .qf-mas-table > tbody { display: block; }
  .qf-mas-table > tbody > .qf-ors-th { display: none; }
  .qf-mas-table > tbody > .qf-ors-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .4rem .8rem; align-items: end; padding: .7rem .9rem; border-bottom: 1px solid var(--color-qf-700); }
  .qf-mas-table > tbody > .qf-ors-row > td { display: block; padding: 0 !important; border: 0 !important; background: none !important; text-align: left !important; min-width: 0; width: auto; }
  .qf-mas-table > tbody > .qf-ors-row > td[data-label]::before { content: attr(data-label); display: block; margin-bottom: .1rem; font-size: .64rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #6b6475; }
  .qf-mas-table > tbody > .qf-ors-row > td:first-child { grid-column: 1 / -1; }
  .qf-mas-table > tbody > .qf-ors-row > td:first-child::before { display: none; }
  .qf-mas-table > tbody > .qf-ors-row > td.qf-mas-act { grid-column: 1 / -1; }
  .qf-mas-act input.qf-ors-btn { width: 100%; }
}


/* Logo-only master (QuickFeisNoAds.Master) - used by printable schedule pages */
.qf-noads-header .qf-navbar { padding-top: .5rem; padding-bottom: .5rem; }
.qf-noads-content { padding-top: .4rem; }

/* Family stage schedule (FeisReg/FamilyCard.aspx) - printable card per dancer */
.qf-fcard-page { max-width: 60rem; }
.qf-fcard-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem 1rem; margin-bottom: 1rem; }
.qf-fcard-title { font-size: 1.5rem; font-weight: 700; letter-spacing: .04em; color: var(--qf-purple); }
a.quickfeisButton.qf-fcard-back { text-decoration: none; }
a.quickfeisButton.qf-fcard-back::before { content: "\2190  "; }
.qf-fcard-headfv { width: 100%; margin-bottom: 1.4rem; border: 0; }
.qf-fcard-headfv > tbody > tr > td { padding: 0 !important; border: 0 !important; background: none !important; }
.qf-fcard-head { width: 100%; background: #ffffff; border: 1px solid var(--color-qf-700); border-left: 6px solid var(--qf-purple); border-radius: var(--qf-radius); border-collapse: separate; overflow: hidden; }
.qf-fcard-head td { padding: 1rem 1.2rem; vertical-align: top; border: 0; }
.qf-fcard-logocell { width: 1%; }
.qf-fcard-logo { display: block; width: auto; max-width: 160px; max-height: 140px; object-fit: contain; }
.qf-fcard-feis { display: block; font-size: 1.6rem; font-weight: 700; line-height: 1.2; color: var(--qf-purple); }
.qf-fcard-date { display: block; margin-top: .2rem; font-size: 1.1rem; font-weight: 700; color: var(--qf-ink); }
.qf-fcard-venue { display: block; margin-top: .8rem; font-size: .95rem; line-height: 1.45; color: #444; }
.qf-fcard-vname { display: block; font-weight: 700; color: var(--qf-ink); }
.qf-fcard-vline { display: block; }
.qf-fcard-fam { padding-top: 0 !important; font-size: .95rem; color: #555; }
.qf-fcard-famname { font-weight: 700; color: var(--qf-ink); }
.qf-fcard-list { width: 100%; border-collapse: separate; border-spacing: 0; }
.qf-fcard-list > tbody > tr > td { padding: 0; border: 0; }
.qf-fcard-dancer > td { padding: .75rem 1rem !important; font-size: 1.25rem; font-weight: 700; color: #ffffff; background: var(--qf-purple); border-radius: var(--qf-radius) var(--qf-radius) 0 0; }
.qf-fcard-num { display: inline-block; min-width: 2.6rem; margin-right: .2rem; padding: .05rem .55rem; text-align: center; color: var(--qf-ink); background: var(--qf-accent); border-radius: 8px; }
.qf-fcard-school { display: block; margin-top: .15rem; font-size: .88rem; font-weight: 400; font-style: italic; opacity: .9; }
.qf-fcard-regrow > td { padding-bottom: 1.4rem !important; }
.qf-fcard-regrow .qf-ors-layout { width: 100%; }
.qf-ors-table.qf-fcard-table { min-width: 0; border: 1px solid var(--color-qf-700); border-top: 0; }
.qf-fcard-table > tbody > .qf-ors-th > th { background: var(--color-qf-600); color: var(--qf-ink); }
.qf-fcard-table > tbody > .qf-ors-row > td { font-weight: 400 !important; font-size: .92rem; }
.qf-fcard-event { font-weight: 700; }
.qf-fcard-stage { font-weight: 700; color: var(--qf-purple); }
@media (max-width: 640px) {
  .qf-fcard-head, .qf-fcard-head > tbody, .qf-fcard-head > tbody > tr, .qf-fcard-head td { display: block; width: 100%; }
  .qf-fcard-feis { font-size: 1.3rem; }
  .qf-fcard-table { border-collapse: separate !important; }
  .qf-fcard-table > tbody { display: block; }
  .qf-fcard-table > tbody > .qf-ors-th { display: none; }
  .qf-fcard-table > tbody > .qf-ors-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .4rem .8rem; padding: .7rem .9rem; border-bottom: 1px solid var(--color-qf-700); }
  .qf-fcard-table > tbody > .qf-ors-row > td { display: block; padding: 0 !important; border: 0 !important; background: none !important; text-align: left !important; min-width: 0; }
  .qf-fcard-table > tbody > .qf-ors-row > td[data-label]::before { content: attr(data-label); display: block; font-size: .62rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #6b6475; }
  .qf-fcard-table > tbody > .qf-ors-row > td:first-child { grid-column: 1 / -1; }
}
@media print {
  .qf-fcard-back { display: none !important; }
  .qf-fcard-dancer > td { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .qf-fcard-list > tbody > tr { break-inside: avoid; }
}

/* Stage schedules (FeisStages.aspx) - one card per stage instead of a 12-column table.
   The code paints each competition's box (divFormat) with a background colour per status;
   these rules turn those colours into the status chips used in the legend. */
.qf-fst-feisfv { border: 0; margin-bottom: .6rem; }
.qf-fst-feisfv > tbody > tr > td { padding: 0 !important; border: 0 !important; }
.qf-fst-feis { display: block; font-size: 1.6rem; font-weight: 700; line-height: 1.2; color: var(--qf-purple); }
.qf-fst-bar { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.2rem; margin-bottom: 1rem; }
.qf-fst-note { flex: 1 1 26rem; margin: 0; padding-left: 1.2rem; }
input.quickfeisButton.qf-fst-refresh { padding: .7rem 1.6rem; font-size: 1rem; }
.qf-fst-annwrap { max-width: 52rem; margin-bottom: 1.2rem; }
.qf-ors-table.qf-fst-ann { min-width: 0; }
.qf-fst-ann > tbody > .qf-ors-row > td { font-weight: 400 !important; }
.qf-fst-time { width: 1%; white-space: nowrap; font-size: .82rem; color: #555; }
.qf-fst-legend { display: flex; flex-wrap: wrap; gap: .4rem; margin: .4rem 0 .8rem; }
.qf-fst-chip { display: inline-block; padding: .25rem .7rem; font-size: .78rem; font-weight: 700; border-radius: 999px; border: 1px solid transparent; }
.qf-fst-none   { color: var(--qf-ink); background: #ffffff; border-color: var(--color-qf-700); font-weight: 400; }
.qf-fst-next   { color: var(--qf-ink); background: color-mix(in oklch, var(--qf-accent) 55%, #ffffff); }
.qf-fst-now    { color: #ffffff; background: #c8432a; }
.qf-fst-done   { color: var(--qf-ink); background: #e9e0ef; }
.qf-fst-break  { color: #1f5a36; background: #d6efdd; }
.qf-fst-posted { color: #ffffff; background: var(--qf-purple); }
.qf-fst-noshow { color: #8a8392; background: #eeeeee; text-decoration: line-through; }
.qf-fst-hint { display: block; margin-bottom: 1rem; font-size: .92rem; font-weight: 700; color: #555; }
.qf-fst-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(13.5rem, 1fr)); gap: 1rem; align-items: start; }
.qf-fst-stage:not(:has(.qf-fst-list)) { display: none; }   /* stages with nothing scheduled */
.qf-fst-stage { display: flex; flex-direction: column; background: #ffffff; border: 1px solid var(--color-qf-700); border-radius: var(--qf-radius); overflow: hidden; box-shadow: var(--qf-shadow); }
.qf-fst-updfv { order: 2; width: 100%; border: 0; }
.qf-fst-updfv > tbody > tr > td { padding: .2rem .8rem .5rem !important; border: 0 !important; background: none !important; }
.qf-fst-upd { font-size: .7rem; color: #6b6475; }
.qf-fst-upd:not(:empty)::before { content: "Updated "; }
.qf-fst-layout, .qf-fst-layout > tbody > tr > td { width: 100%; padding: 0; border: 0; }
.qf-fst-list { width: 100%; border-collapse: collapse; }
.qf-fst-head > th { padding: .55rem .8rem; font-size: .85rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #ffffff; background: var(--qf-purple-deep, var(--color-qf-900)); text-align: left; }
.qf-fst-list > tbody > tr > td { padding: .2rem .5rem; border: 0; }
.qf-fst-list > tbody > tr:nth-child(2) > td { padding-top: .5rem; }
.qf-fst-comp { padding: .35rem .6rem; font-size: .84rem; line-height: 1.3; border-radius: 8px; border: 1px solid var(--color-qf-700); background: #ffffff; }
.qf-fst-comp :is(span, a) { color: inherit !important; font-weight: inherit; }
.qf-fst-comp:is([style*="FFFD6E" i]) { color: var(--qf-ink) !important; background: color-mix(in oklch, var(--qf-accent) 55%, #ffffff) !important; border-color: var(--qf-accent); font-weight: 700; }
.qf-fst-comp:is([style*="FF0000" i]) { color: #ffffff !important; background: #c8432a !important; border-color: #c8432a; font-weight: 700; box-shadow: 0 0 0 3px rgba(200, 67, 42, .25); }
.qf-fst-comp:is([style*="DBCEE0" i]) { color: #6b6475 !important; background: #f3eef6 !important; border-color: #e1d6e8; }
.qf-fst-comp:is([style*="C5E0B5" i]) { color: #1f5a36 !important; background: #d6efdd !important; border-color: #bcdcc6; font-weight: 700; }
.qf-fst-comp:is([style*="A17BB4" i]) { color: #ffffff !important; background: var(--qf-purple) !important; border-color: var(--qf-purple); font-weight: 700; }
.qf-fst-comp:is([style*="A17BB4" i]) a { text-decoration: underline; }
.qf-fst-comp:is([style*="D9D9D9" i]) { color: #8a8392 !important; background: #eeeeee !important; border-color: #dddddd; text-decoration: line-through; }

/* Family feis registration (FeisReg/FamilyRegistrationV2.aspx) - feis header, dancers and financial summary */
.qf-frv-page + .qf-frv-page { margin-top: 1.4rem; }
.qf-frv-feisfv { width: 100%; border: 0; }
.qf-frv-feisfv > tbody > tr > td { padding: 0 !important; border: 0 !important; background: none !important; }
.qf-frv-feis { width: 100%; }
.qf-frv-feis > tbody > tr > td { padding: 0; border: 0; vertical-align: top; }
.qf-frv-name { display: block; font-size: 1.7rem; font-weight: 700; line-height: 1.2; color: var(--qf-purple); }
.qf-frv-region { display: block; margin-top: .15rem; font-size: 1rem; font-weight: 700; color: #6b6475; }
.qf-frv-date { display: block; margin-top: .9rem; font-size: 1.3rem; font-weight: 700; color: var(--qf-ink); }
.qf-frv-days { display: block; font-size: .95rem; color: #555; }
.qf-frv-rlayout { margin-top: .8rem; }
.qf-frv-rlayout > tbody > tr > td { padding: 0; border: 0; }
.qf-frv-restr { border-collapse: collapse; }
.qf-frv-restr th { padding: 0 0 .2rem; font-size: .72rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--qf-purple); text-align: left; }
.qf-frv-restr td { padding: .05rem 0; font-size: .9rem; }
.qf-frv-logocell { width: 1%; padding-left: 1.2rem !important; vertical-align: middle !important; }
.qf-frv-logo { display: block; width: auto; max-width: 220px; max-height: 180px; object-fit: contain; }
.qf-ors-table.qf-frv-table { min-width: 0; }
.qf-frv-table > tbody > .qf-ors-row > td { vertical-align: top; }
.qf-frv-dname { font-size: 1.05rem; font-weight: 700; color: var(--qf-ink); }
.qf-frv-regcell { width: 60%; }
.qf-frv-regs { width: 100%; margin-bottom: .6rem; border-collapse: collapse; font-size: .88rem; }
.qf-frv-regs th { padding: .3rem .6rem; font-size: .7rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #6b6475; text-align: left; border-bottom: 1px solid var(--color-qf-700); }
.qf-frv-regs td { padding: .35rem .6rem; border-bottom: 1px solid #efeaf3; }
.qf-frv-regs tr:last-child td { border-bottom: 0; }
.qf-frv-regs tr > td:first-child { font-weight: 700; }
.qf-frv-none td { font-weight: 400 !important; font-style: italic; color: #6b6475; }
.qf-frv-none td:empty { display: none; }
input.quickfeisButton.qf-frv-edit { padding: .55rem 1.3rem; font-size: .9rem; }
input.quickfeisButton.qf-frv-edit:disabled { opacity: 1; color: #8a8392 !important; background: var(--color-qf-600) !important; border-color: var(--color-qf-600) !important; box-shadow: none; cursor: not-allowed; }
.qf-ors-table.qf-frv-txn { min-width: 0; }
.qf-frv-txn > tbody > .qf-ors-row > td { font-weight: 400 !important; font-size: .88rem; vertical-align: top; }
pre.qf-frv-pre { margin: 0; font-family: inherit; font-size: inherit; white-space: pre-wrap; }
.qf-frv-amt { font-weight: 700; white-space: nowrap; }
input.quickfeisButton.qf-frv-checkout { display: block; width: 100%; max-width: 32rem; margin: 1.2rem 0 .8rem; padding: .9rem 1.6rem; font-size: 1.2rem; letter-spacing: .03em; }
input.quickfeisButton.qf-frv-checkout:disabled { opacity: 1; color: #8a8392 !important; background: var(--color-qf-600) !important; border-color: var(--color-qf-600) !important; box-shadow: none; cursor: not-allowed; }
.qf-frv-paymsg:empty { display: none; }
.qf-frv-wrap { container-type: inline-size; }
@container (max-width: 640px) {
  .qf-frv-table, .qf-frv-txn { border-collapse: separate !important; border-spacing: 0; }
  .qf-frv-table > tbody, .qf-frv-txn > tbody { display: block; }
  .qf-frv-table > tbody > .qf-ors-th, .qf-frv-txn > tbody > .qf-ors-th { display: none; }
  .qf-frv-table > tbody > .qf-ors-row, .qf-frv-txn > tbody > .qf-ors-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem 1rem; padding: .8rem 1rem; border-bottom: 1px solid var(--color-qf-700); }
  .qf-frv-table > tbody > .qf-ors-row > td, .qf-frv-txn > tbody > .qf-ors-row > td { display: block; padding: 0 !important; border: 0 !important; background: none !important; text-align: left !important; width: auto; min-width: 0; overflow-wrap: anywhere; }
  .qf-frv-table > tbody > .qf-ors-row > td[data-label]::before, .qf-frv-txn > tbody > .qf-ors-row > td[data-label]::before { content: attr(data-label); display: block; margin-bottom: .1rem; font-size: .64rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #6b6475; }
  .qf-frv-table > tbody > .qf-ors-row > td.qf-frv-regcell, .qf-frv-txn > tbody > .qf-ors-row > td:first-child { grid-column: 1 / -1; }
  input.quickfeisButton.qf-frv-edit { width: 100%; }
}
@media (max-width: 640px) {
  .qf-frv-feis, .qf-frv-feis > tbody, .qf-frv-feis > tbody > tr, .qf-frv-feis > tbody > tr > td { display: block; width: 100%; }
  .qf-frv-logocell { padding: 1rem 0 0 !important; }
  .qf-frv-name { font-size: 1.35rem; }
}

/* Dancer feis registration (FeisReg/FeisRegistrationEuropeanV17.aspx).
   The competition grid keeps its column structure (the level header row and each dancer row must line up);
   the code colours the active level columns purple / others light grey (bgcolor) and greys out items it disables. */
.qf-fre-page + .qf-fre-page { margin-top: 1.4rem; }
.qf-fre-top { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 1rem; margin-bottom: 1rem; }
.qf-fre-card { padding: 1rem 1.2rem; background: #ffffff; border: 1px solid var(--color-qf-700); border-radius: var(--qf-radius); }
.qf-fre-dancer { border-left: 6px solid var(--qf-purple); }
.qf-fre-fv { width: 100%; border: 0; }
.qf-fre-fv > tbody > tr > td { padding: 0 !important; border: 0 !important; background: none !important; }
.qf-fre-feis > tbody > tr > td { padding: 0; border: 0; vertical-align: top; }
.qf-fre-logocell { width: 1%; padding-right: 1rem !important; vertical-align: middle !important; }
.qf-fre-logo { display: block; width: auto; max-width: 130px; max-height: 120px; object-fit: contain; }
.qf-fre-kv td { padding: .15rem .8rem .15rem 0; border: 0; vertical-align: top; }
.qf-fre-dname { padding-bottom: .5rem !important; font-size: 1.5rem; font-weight: 700; color: var(--qf-ink); }
.qf-fre-k { font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--qf-purple); }
.qf-fre-teamfv { width: 100%; max-width: 52rem; border: 0; }
.qf-fre-teamfv > tbody > tr > td { padding: 0 !important; border: 0 !important; background: none !important; }
.qf-fre-team { margin: 0 0 .4rem; padding-left: 1.2rem; }
.qf-fre-team ul { margin: .3rem 0 0; padding-left: 1.2rem; }
.qf-fre-teamh { display: block; font-weight: 700; }
.qf-fre-page #Div2 { padding: 1.2rem 1.4rem 1.4rem; }
.qf-fre-steph { display: block; margin: 0 0 .7rem; padding: .55rem .9rem; font-size: 1.05rem; font-weight: 700; letter-spacing: .02em; color: #ffffff; background: var(--qf-purple); border-radius: 10px; }
.qf-fre-stepcell { padding: 1.2rem 0 0 !important; border: 0 !important; }
.qf-fre-levels { margin-bottom: 1rem; }
.qf-fre-levels, .qf-fre-levels > tbody { display: flex; flex-wrap: wrap; gap: .4rem; }
.qf-fre-levels tr { display: contents; }
.qf-fre-levels td { display: block; padding: 0 !important; }
.qf-fre-levels td:has(> span[hidden]) { display: none; }   /* levels the code hides for this feis */
.qf-fre-main { width: 100%; }
.qf-fre-main > tbody > tr > td { padding: 0; border: 0; }
.qf-fre-layout { width: 100%; }
.qf-fre-layout > tbody > tr > td { padding: 0; border: 0; }
.qf-fre-list { width: 100%; border-collapse: separate; border-spacing: 0 .35rem; }
.qf-fre-gap { height: .2rem; padding: 0 !important; border: 0 !important; }
.qf-fre-corner { border: 0 !important; }
.qf-fre-colhead { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 3px 0; }
.qf-fre-colhead td { padding: .45rem .2rem; font-size: .78rem; font-weight: 700; text-align: center; color: #ffffff; border-radius: 8px 8px 0 0; background: var(--qf-purple); }
.qf-fre-colhead td[bgcolor="lightgray" i] { color: #8a8392; background: #ece8f0 !important; }
.qf-fre-colhead td[bgcolor="#784F94" i] { color: #ffffff; background: var(--qf-purple) !important; }
.qf-fre-row > td { vertical-align: middle; border: 0; }
.qf-fre-type { width: 9.5rem; padding: .55rem .8rem !important; background: color-mix(in oklch, var(--color-qf-600) 25%, #ffffff); border-radius: 10px 0 0 10px; }
.qf-fre-typel { font-size: .92rem; font-weight: 700; color: var(--qf-ink); }
.qf-fre-row > td + td { padding: 0 !important; background: #ffffff; border: 1px solid var(--color-qf-700); border-left: 0; border-radius: 0 10px 10px 0; }
.qf-fre-spacer > td { height: 0; padding: 0 !important; border: 0 !important; background: none !important; line-height: 0; }   /* kept (the type cell spans it); just flattened */
.qf-fre-page table.chkBoxList.qf-fre-grid { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 3px; }
.qf-fre-page .chkBoxList.qf-fre-grid tr { height: auto; }
.qf-fre-page .chkBoxList.qf-fre-grid td { width: auto; padding: .35rem .2rem; font-size: .82rem; font-weight: 700; text-align: center; border: 1px solid #efeaf3; border-radius: 6px; background: #fbfafc; }
.qf-fre-page span.chkBoxList.qf-fre-grid { display: flex; flex-wrap: wrap; gap: .3rem; padding: .35rem; }
.qf-fre-page span.chkBoxList.qf-fre-grid > span, .qf-fre-page span.chkBoxList.qf-fre-grid > input { display: inline-flex; align-items: center; }
.qf-fre-page span.chkBoxList.qf-fre-grid label { margin: 0 .6rem 0 .25rem; font-size: .85rem; font-weight: 700; }
.qf-fre-grid input { width: 1.05rem; height: 1.05rem; margin: 0 .2rem 0 0; vertical-align: -.15rem; accent-color: var(--qf-purple); }
.qf-fre-grid label { cursor: pointer; }
.qf-fre-page .chkBoxList.qf-fre-grid td:has(input:checked) { background: color-mix(in oklch, var(--color-qf-600) 45%, #ffffff); border-color: var(--qf-purple); }
.qf-fre-grid [style*="lightgrey" i], .qf-fre-grid [style*="lightgray" i] { color: #b5afbc !important; }   /* competitions the code marks as not available */
.qf-fre-grid td:has(> span[hidden]) { visibility: hidden; }
.qf-fre-actions { padding-top: 1.4rem !important; text-align: center; }
input.quickfeisButton.qf-fre-save, input.quickfeisButton.qf-fre-cancel { margin: .3rem; padding: .85rem 1.8rem; font-size: 1.05rem; letter-spacing: .02em; }
.qf-fre-policy { padding-top: 1.2rem !important; }
.qf-fre-pol { display: block; max-width: 56rem; margin-bottom: .45rem; font-size: .9rem; color: #444; }
.qf-fre-final { display: block; margin-top: 1rem; font-weight: 700; color: var(--qf-ink); }
/* the grid needs room for its columns: on narrow screens it scrolls inside its own box instead of the whole page */
.qf-fre-main > tbody > tr:first-child > td, .qf-fre-main > tbody > tr:nth-child(2) > td { max-width: 0; overflow-x: auto; }
.qf-fre-main .qf-fre-list { min-width: 46rem; }
@media (max-width: 860px) {
  .qf-fre-top { grid-template-columns: minmax(0, 1fr); }
  .qf-fre-page #Div2 { padding: 1rem; }
}

/* Registration checkout (FeisReg/CheckoutNew.aspx) - reuses the family registration header / table styles (qf-frv-*) */
.qf-fco-refund { display: block; max-width: 44rem; margin: 1rem 0; font-size: .95rem; }
.qf-fco-wrap { max-width: 44rem; }
.qf-fco-txn .qf-ofr-r { width: 1%; white-space: nowrap; }
.qf-fco-qb { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; max-width: 44rem; margin: 1rem 0; padding: .9rem 1.1rem; background: color-mix(in oklch, var(--qf-accent) 14%, #ffffff); border: 1px solid color-mix(in oklch, var(--qf-accent) 55%, #ffffff); border-radius: var(--qf-radius); }
.qf-fco-qb:not(:has(input)) { display: none; }   /* hidden when there are no QuickBucks */
.qf-fco-qbtext { flex: 1 1 18rem; font-weight: 700; }
input.quickfeisButton.qf-fco-qbbtn { padding: .6rem 1.4rem; }
.qf-fco-duefv { width: 100%; max-width: 44rem; border: 0; }
.qf-fco-duefv > tbody > tr > td { padding: 0 !important; border: 0 !important; background: none !important; }
.qf-fco-waiverfv { width: 100%; border: 0; }
.qf-fco-waiverfv > tbody > tr > td { padding: 0 !important; border: 0 !important; background: none !important; }
.qf-fco-waiver:empty { display: none; }
.qf-fco-due { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin: 1rem 0 .8rem; padding: .9rem 1.1rem; border-top: 2px solid var(--qf-purple); border-bottom: 1px solid var(--color-qf-700); }
.qf-fco-duek { font-size: 1.15rem; font-weight: 700; }
.qf-fco-duev { font-size: 1.9rem; font-weight: 700; color: var(--qf-purple); white-space: nowrap; }
.qf-fco-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-bottom: 1.2rem; }
input.quickfeisButton.qf-fco-pay { flex: 1 1 18rem; padding: .95rem 1.6rem; font-size: 1.2rem; letter-spacing: .03em; }
input.quickfeisButton.qf-fco-cancel { padding: .95rem 1.6rem; font-size: 1.05rem; }
.qf-fco-note { max-width: 44rem; padding-left: 1.2rem; color: #b23a12; }
.qf-fco-note ul { margin: .3rem 0 0; padding-left: 1.2rem; color: var(--qf-ink); font-size: .9rem; }
.qf-fco-note li { margin-bottom: .25rem; }

/* =====================================================================
   School teachers (School/Teachers.aspx) - table reuses qf-ors-*, approval as pills
   ===================================================================== */
.qf-sth-page .qf-sth-h { margin-top: .2rem; }
.qf-sth-wrap { container-type: inline-size; margin-bottom: 1.6rem; }
.qf-ors-table.qf-sth-table { min-width: 0; }
.qf-sth-table > tbody > .qf-ors-row > td { font-weight: 400 !important; overflow-wrap: anywhere; }
.qf-sth-table > tbody > .qf-ors-row > td:first-child,
.qf-sth-table > tbody > .qf-ors-row > td:nth-child(2) { font-weight: 700 !important; }
.qf-sth-wrap .qf-ors-layout > tbody > tr:has(> .qf-ors-pager:empty) { display: none; }
.qf-sth-table > tbody > .qf-ors-row:last-child > td { border-bottom: 0; }
.qf-sth-pills { display: flex; flex-wrap: wrap; gap: .4rem; }
.qf-sth-pills label { min-width: 0; padding: .35rem .85rem; font-size: .8rem; white-space: nowrap; }
.qf-sth-pills input[type="radio"][value="1"]:checked + label { background: #2f7d4f; border-color: #2f7d4f; color: #ffffff; }
.qf-sth-pills input[type="radio"][value="2"] + label { border-color: #b23a12; color: #b23a12; }
.qf-sth-pills input[type="radio"][value="2"]:checked + label { background: #b23a12; color: #ffffff; }
.qf-sth-add {
    max-width: 44rem;
    padding: 1.1rem 1.2rem 1.2rem;
    background: #ffffff;
    border: 2px solid var(--qf-purple-line);
    border-radius: var(--qf-radius);
    box-shadow: var(--qf-shadow);
}
.qf-sth-help { display: block; margin-bottom: 1rem; font-size: .9rem; line-height: 1.5; }
.qf-sth-addrow { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .8rem; }
.qf-sth-field { flex: 1 1 18rem; min-width: 0; }
input.quickfeisButton.qf-sth-addbtn { flex: 0 0 auto; margin: 0; }
@container (max-width: 760px) {
  .qf-sth-table { border-collapse: separate !important; border-spacing: 0; }
  .qf-sth-table > tbody { display: block; }
  .qf-sth-table > tbody > .qf-ors-th { display: none; }
  .qf-sth-table > tbody > .qf-ors-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem 1rem; padding: .75rem 1rem; border-bottom: 1px solid var(--color-qf-700); }
  .qf-sth-table > tbody > .qf-ors-row:nth-child(even) { background: color-mix(in oklch, var(--color-qf-600) 10%, #ffffff); }
  .qf-sth-table > tbody > .qf-ors-row > td { display: block; padding: 0 !important; border: 0 !important; background: none !important; min-width: 0; }
  .qf-sth-table > tbody > .qf-ors-row > td[data-label]::before { content: attr(data-label); display: block; margin-bottom: .1rem; font-size: .64rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #6b6475; }
  .qf-sth-table > tbody > .qf-ors-row > td:nth-child(5),
  .qf-sth-table > tbody > .qf-ors-row > td.qf-sth-status { grid-column: 1 / -1; }
}

/* =====================================================================
   About Us (About.aspx) - static content page
   ===================================================================== */
.qf-abt-page .story { container-type: inline-size; }
.qf-abt-intro { display: flex; align-items: center; gap: 1.4rem; margin-bottom: 1.6rem; }
.qf-abt-logo { flex: 0 0 auto; width: 9rem; height: auto; }
.qf-abt-lead { margin: 0 0 .4rem; font-size: 1.35rem; color: var(--qf-purple); }
.qf-abt-intro p, .qf-abt-card p, .qf-abt-contact p { margin: 0; line-height: 1.6; }
.qf-abt-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 1rem; margin-bottom: 1.4rem; }
.qf-abt-card {
    padding: 1.1rem 1.2rem 1.2rem;
    background: #ffffff;
    border: 2px solid var(--qf-purple-line);
    border-top: 5px solid var(--qf-purple);
    border-radius: var(--qf-radius);
    box-shadow: var(--qf-shadow);
}
.qf-abt-card h3, .qf-abt-contact h3 { margin: 0 0 .5rem; font-size: 1.05rem; }
.qf-abt-contact { padding: 1rem 1.2rem; border-left: 4px solid var(--qf-accent); border-radius: 8px; background: color-mix(in oklch, var(--qf-accent) 12%, #ffffff); }
@container (max-width: 560px) {
  .qf-abt-intro { flex-direction: column; align-items: flex-start; gap: .8rem; }
  .qf-abt-logo { width: 7rem; }
}

/* =====================================================================
   Program book receipt / pick-up ticket (BarCodeLink.aspx, standalone page)
   ===================================================================== */
.qf-bcl-body { padding: 0 16px; }
.qf-bcl-ticket {
    width: 100%;
    max-width: 46rem;
    margin: 1.5rem auto 2.5rem;
    padding: 1.6rem 1.8rem 1.8rem;
    background: #ffffff;
    border: 1px solid var(--color-qf-700);
    border-top: 6px solid var(--qf-purple);
    border-radius: var(--qf-radius);
    box-shadow: var(--qf-shadow);
    container-type: inline-size;
}
.qf-bcl-head, .qf-bcl-details { width: 100%; border-collapse: collapse; }
.qf-bcl-head td { padding: 0; vertical-align: middle; }
.qf-bcl-head tr:first-child > .qf-bcl-titles { vertical-align: bottom; }
.qf-bcl-head tr:nth-child(2) > .qf-bcl-titles { vertical-align: top; }
.qf-bcl-title { display: block; font-size: 2.4rem; font-weight: 800; line-height: 1.1; color: var(--qf-purple); overflow-wrap: anywhere; }
.qf-bcl-sub { display: block; margin-top: .35rem; font-size: 1.15rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--qf-ink); }
.qf-bcl-logocell { width: 1%; padding-left: 1rem !important; text-align: right; }
.qf-bcl-logo { display: block; width: 130px; max-width: 30vw; height: auto; }
.qf-bcl-logo:not([src]), .qf-bcl-logo[src=""] { display: none; }
.qf-bcl-instr { padding-top: 1.1rem !important; }
.qf-bcl-callout { display: block; padding: .6rem .9rem; font-weight: 700; color: var(--qf-ink); background: color-mix(in oklch, var(--qf-accent) 18%, #ffffff); border-left: 4px solid var(--qf-accent); border-radius: 8px; }
.qf-bcl-details { margin-top: 1.2rem; }
.qf-bcl-details td { padding: .55rem 0; border-bottom: 1px solid var(--qf-purple-line); vertical-align: baseline; }
.qf-bcl-details tr:last-child td { border-bottom: 0; }
.qf-bcl-k { width: 11rem; padding-right: 1rem !important; font-size: .8rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #6b6475; white-space: nowrap; }
.qf-bcl-v { font-size: 1.1rem; font-weight: 700; color: var(--qf-ink); overflow-wrap: anywhere; }
.qf-bcl-big { font-size: 1.6rem; color: var(--qf-purple); }
.qf-bcl-code { margin: 1.4rem 0 1.2rem; padding: 1rem; text-align: center; background: #ffffff; border: 2px dashed var(--color-qf-700); border-radius: var(--qf-radius-sm); }
.qf-bcl-barcode img { display: block; width: 100%; max-width: 700px; height: auto; margin: 0 auto; }
.qf-bcl-codetext { margin-top: .5rem; font-family: Consolas, "Courier New", monospace; font-size: 1.2rem; font-weight: 700; letter-spacing: .25em; }
.qf-bcl-msg { display: block; font-size: .95rem; line-height: 1.6; }
.qf-bcl-msg:empty { display: none; }
@container (max-width: 520px) {
  .qf-bcl-title { font-size: 1.7rem; }
  .qf-bcl-sub { font-size: .95rem; }
  .qf-bcl-details tr { display: block; padding: .5rem 0; border-bottom: 1px solid var(--qf-purple-line); }
  .qf-bcl-details tr:last-child { border-bottom: 0; }
  .qf-bcl-details td { display: block; width: auto; padding: 0 !important; border: 0; }
}
@media (max-width: 575.98px) {
  .qf-bcl-body { padding: 0; }
  .qf-bcl-ticket { margin: 0; padding: 1.1rem 16px 1.5rem; border-left: 0; border-right: 0; border-radius: 0; }
}
@media print {
  .qf-bcl-body { padding: 0; }
  .qf-bcl-ticket { max-width: none; margin: 0; box-shadow: none; }
}

/* =====================================================================
   Organizer announcements (FeisAnnoucements.aspx) - one card per message
   ===================================================================== */
.qf-ann-list { display: grid; gap: 1rem; }
.qf-ann-item {
    padding: 1.1rem 1.3rem 1.2rem;
    background: #ffffff;
    border: 2px solid var(--qf-purple-line);
    border-left: 6px solid var(--qf-purple);
    border-radius: var(--qf-radius);
    box-shadow: var(--qf-shadow);
}
.qf-ann-date { display: inline-block; margin-bottom: .5rem; padding: .15rem .65rem; font-size: .78rem; font-weight: 700; letter-spacing: .03em; color: var(--qf-purple); background: color-mix(in oklch, var(--color-qf-600) 30%, #ffffff); border-radius: 999px; }
.qf-ann-title { display: block; margin-bottom: .6rem; font-size: 1.2rem; font-weight: 800; color: var(--qf-ink); overflow-wrap: anywhere; }
.qf-content textarea.qf-ann-msg, textarea.qf-ann-msg {
    display: block;
    width: 100%;
    min-height: 2lh;
    field-sizing: content;          /* grows to fit the message where supported */
    padding: 0;
    font: inherit;
    font-size: .95rem;
    line-height: 1.6;
    color: var(--qf-ink);
    background: transparent;
    border: 0;
    box-shadow: none;
    resize: none;
    outline: none;
}
@supports not (field-sizing: content) {
  textarea.qf-ann-msg { height: 250px; resize: vertical; }
}

/* =====================================================================
   Feis registration by school (FeisRegistrationBySchool.aspx)
   header reuses qf-frv-*, school table reuses qf-ors-*
   ===================================================================== */
.qf-fbs-totfv { width: 100%; max-width: 40rem; margin: 1.4rem 0 1.4rem; border: 0; }
.qf-fbs-totfv > tbody > tr > td { padding: 0 !important; border: 0 !important; background: none !important; }
.qf-fbs-tot {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    background: #ffffff;
    border: 2px solid var(--qf-purple-line);
    border-radius: var(--qf-radius);
    box-shadow: var(--qf-shadow);
    font-size: .92rem;
}
.qf-fbs-tot td { padding: .5rem .7rem; background: #ffffff; text-align: center; border-bottom: 1px solid var(--qf-purple-line); font-variant-numeric: tabular-nums; }
.qf-fbs-tot td:first-child { text-align: left; font-size: .78rem; font-weight: 700; letter-spacing: .04em; color: #6b6475; }
.qf-fbs-tot td:last-child { font-weight: 700; background: color-mix(in oklch, var(--color-qf-600) 18%, #ffffff); }
.qf-fbs-tot .qf-fbs-toth td { background: var(--color-qf-900); color: #ffffff; font-size: .78rem; font-weight: 700; letter-spacing: .04em; border-bottom: 0; }
.qf-fbs-tot .qf-fbs-totall td { font-weight: 800; color: var(--qf-purple); border-bottom: 0; background: color-mix(in oklch, var(--color-qf-600) 25%, #ffffff); }
.qf-fbs-tot .qf-fbs-totall td:first-child { color: var(--qf-purple); }
.qf-fbs-note { display: block; margin-top: .6rem; font-size: .82rem; color: #6b6475; }
.qf-fbs-wrap { container-type: inline-size; }
.qf-fbs-wrap .qf-ors-layout > tbody > tr:has(> .qf-ors-pager:empty) { display: none; }
.qf-fbs-table > tbody > .qf-ors-row:last-child > td { border-bottom: 0; }
.qf-ors-table.qf-fbs-table { min-width: 0; }
.qf-fbs-table > tbody > .qf-ors-th > th { white-space: normal; vertical-align: bottom; font-size: .74rem; line-height: 1.2; }
.qf-fbs-table > tbody > .qf-ors-row > td { font-weight: 400 !important; font-variant-numeric: tabular-nums; }
.qf-fbs-table > tbody > .qf-ors-row > td.qf-fbs-school { font-weight: 700 !important; min-width: 12rem; }
.qf-fbs-table > tbody > .qf-ors-row > td.qf-fbs-sub { font-weight: 700 !important; background: color-mix(in oklch, var(--color-qf-600) 22%, #ffffff) !important; }
.qf-fbs-table > tbody > .qf-ors-row > td.qf-fbs-grand { font-weight: 800 !important; color: var(--qf-purple); }
.qf-fbs-table > tbody > .qf-ors-row > td.qf-fbs-np1 { border-left: 2px solid var(--color-qf-700); }
@container (max-width: 980px) {
  .qf-fbs-table { border-collapse: separate !important; border-spacing: 0; }
  .qf-fbs-table > tbody { display: block; }
  .qf-fbs-table > tbody > .qf-ors-th { display: none; }
  .qf-fbs-table > tbody > .qf-ors-row { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .45rem .6rem; padding: .75rem 1rem; border-bottom: 1px solid var(--color-qf-700); }
  .qf-fbs-table > tbody > .qf-ors-row:nth-child(even) { background: color-mix(in oklch, var(--color-qf-600) 10%, #ffffff); }
  .qf-fbs-table > tbody > .qf-ors-row > td { display: block; padding: 0 !important; border: 0 !important; background: none !important; text-align: left !important; min-width: 0 !important; }
  .qf-fbs-table > tbody > .qf-ors-row > td[data-label]::before { content: attr(data-label); display: block; margin-bottom: .1rem; font-size: .6rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; line-height: 1.2; color: #6b6475; }
  .qf-fbs-table > tbody > .qf-ors-row > td.qf-fbs-school { grid-column: 1 / -1; font-size: 1rem; color: var(--qf-purple); }
  .qf-fbs-table > tbody > .qf-ors-row > td.qf-fbs-school::before { display: none !important; }
  .qf-fbs-table > tbody > .qf-ors-row > td.qf-fbs-grand { grid-column: 1 / -1; padding-top: .4rem !important; border-top: 1px solid var(--qf-purple-line) !important; }
  .qf-fbs-table > tbody > .qf-ors-row > td.qf-fbs-grand::before { display: inline; margin-right: .5rem; }
}

/* ---------------------------------------------------------------------
   Print: drop navigation and sidebar
   --------------------------------------------------------------------- */
@media print {
    .qf-header, .qf-footer { display: none !important; }
    .post, .post2, .boxed { box-shadow: none; border-color: var(--qf-grey); }
    body.qf-body { background: #fff; }
}
