/* TVV Referee Database public UI — v0.9.4
 * Light, theme-native surface. Frontend reads local TVV tables only.
 */
.tvvrd-public{
    --tvvrd-bg:var(--tvv-surface,#fff);
    --tvvrd-panel:var(--tvv-surface,#fff);
    --tvvrd-panel-2:var(--tvv-surface-2,#f5f8fe);
    --tvvrd-border:var(--tvv-line,#e3ebf7);
    --tvvrd-text:var(--tvv-text,#071836);
    --tvvrd-muted:var(--tvv-muted,#5f6f89);
    --tvvrd-accent:var(--tvv-blue,#075cff);
    --tvvrd-green:var(--tvv-green,#13b66b);
    --tvvrd-warn:#a66a00;
    --tvvrd-danger:var(--tvv-red,#df3045);
    --tvvrd-radius:18px;
    color:var(--tvvrd-text)!important;
    background:transparent;
    border:0;
    border-radius:0;
    padding:0;
    margin:0;
    width:100%;
    max-width:none;
    box-sizing:border-box;
    box-shadow:none;
}
.tvvrd-public *, .tvvrd-public *::before, .tvvrd-public *::after{box-sizing:border-box}
.tvvrd-public a{color:inherit;text-decoration:none}
.tvvrd-public h2,.tvvrd-public h3,.tvvrd-public strong,.tvvrd-public dt,.tvvrd-public dd{color:var(--tvvrd-text)!important}
.tvvrd-public p,.tvvrd-muted{color:var(--tvvrd-muted)!important}
.tvvrd-eyebrow{display:block;margin-bottom:8px;color:var(--tvvrd-accent)!important;font-size:12px;line-height:1.2;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.tvvrd-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:24px}
.tvvrd-section-head h2{font-size:clamp(28px,4vw,44px)!important;line-height:1.05!important;margin:0!important}
.tvvrd-section-head h3{font-size:24px!important;margin:0!important}
.tvvrd-section-head p{margin:10px 0 0;max-width:760px}
.tvvrd-section-head--compact{align-items:center;margin-bottom:18px}
.tvvrd-head-count{min-width:110px;text-align:right}
.tvvrd-head-count strong{display:block;font-size:34px;line-height:1;color:var(--tvvrd-accent)!important}
.tvvrd-head-count span{color:var(--tvvrd-muted);font-size:13px}

.tvvrd-filters{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(150px,.8fr)) auto;gap:10px;margin:0 0 24px}
.tvvrd-filters input,.tvvrd-filters select{width:100%;height:48px;border:1px solid var(--tvvrd-border)!important;background:#fff!important;color:var(--tvvrd-text)!important;border-radius:12px;padding:0 13px;outline:none;box-shadow:none!important}
.tvvrd-filters input::placeholder{color:#8a98ae}
.tvvrd-filters input:focus,.tvvrd-filters select:focus{border-color:var(--tvvrd-accent)!important;box-shadow:0 0 0 4px rgba(7,92,255,.08)!important}
.tvvrd-button{height:48px;padding:0 20px;border:0;border-radius:12px;background:var(--tvvrd-accent)!important;color:#fff!important;font-weight:700;cursor:pointer;box-shadow:none}
.tvvrd-button:hover{background:var(--tvv-blue-2,#004bd6)!important;transform:translateY(-1px)}

.tvvrd-ref-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.tvvrd-ref-card{background:linear-gradient(180deg,#fff,var(--tvvrd-panel-2));border:1px solid var(--tvvrd-border);border-radius:var(--tvvrd-radius);padding:18px;min-width:0;transition:transform .18s ease,border-color .18s ease,background-color .18s ease}
.tvvrd-ref-card:hover{transform:translateY(-2px);border-color:#bfd4fb;box-shadow:none}
.tvvrd-ref-card__top{display:grid;grid-template-columns:54px minmax(0,1fr);column-gap:12px;row-gap:8px;align-items:center}
.tvvrd-ref-avatar{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;overflow:hidden;background:#eaf2ff;border:1px solid #d5e2f6;color:var(--tvvrd-accent);font-size:20px;font-weight:700}
.tvvrd-ref-avatar img{width:100%;height:100%;object-fit:cover}
.tvvrd-ref-card__identity h3{font-size:18px!important;line-height:1.2!important;margin:0!important;color:var(--tvvrd-text)!important}
.tvvrd-ref-card__identity h3 a{color:var(--tvvrd-text)!important}
.tvvrd-ref-card__identity h3 a:hover{color:var(--tvvrd-accent)!important}
.tvvrd-ref-card__identity .tvvrd-muted{font-size:13px;margin-top:3px}
.tvvrd-coverage{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:700;grid-column:1/-1;border:1px solid transparent}
.tvvrd-coverage--full{background:#e8fbef;color:#087a46!important;border-color:#b7efce}
.tvvrd-coverage--partial{background:#fff7dc;color:#8a5a00!important;border-color:#ffe5a3}
.tvvrd-coverage--limited{background:#fff1f2;color:#b42318!important;border-color:#ffd1d6}
.tvvrd-coverage--unknown{background:#f1f5f9;color:#64748b!important;border-color:#dfe7f1}
.tvvrd-stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;border-top:1px solid var(--tvvrd-border);margin-top:16px;padding-top:14px}
.tvvrd-stat-row div{min-width:0}
.tvvrd-stat-row strong{display:block;font-size:18px!important}
.tvvrd-stat-row span{display:block;color:var(--tvvrd-muted);font-size:11px}
.tvvrd-card-link{display:inline-flex;margin-top:16px;color:var(--tvvrd-accent)!important;font-size:13px;font-weight:700;gap:7px}
.tvvrd-pagination{display:flex;justify-content:center;align-items:center;gap:18px;margin-top:26px;color:var(--tvvrd-muted)}
.tvvrd-pagination a{color:var(--tvvrd-accent)!important;font-weight:700}
.tvvrd-empty{padding:22px;border:1px dashed #bed0ea;border-radius:14px;color:var(--tvvrd-muted)!important;text-align:center;background:#f8fbff}

.tvvrd-profile-head{align-items:center}
.tvvrd-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:0 0 20px}
.tvvrd-kpi{background:var(--tvvrd-panel-2);border:1px solid var(--tvvrd-border);border-radius:14px;padding:15px}
.tvvrd-kpi span{display:block;color:var(--tvvrd-muted);font-size:12px}
.tvvrd-kpi strong{display:block;margin:6px 0 4px;font-size:28px!important;line-height:1}
.tvvrd-kpi small{color:var(--tvvrd-muted);font-size:11px}
.tvvrd-data-note{margin:0 0 20px;padding:13px 15px;border:1px solid #ffe5a3;border-radius:12px;background:#fff9e9;color:#7d5600!important;font-size:13px}
.tvvrd-data-note strong{color:#694800!important}
.tvvrd-tab-list{display:flex;gap:6px;overflow:auto;border-bottom:1px solid var(--tvvrd-border);padding-bottom:8px;margin-bottom:18px;scrollbar-width:thin}
.tvvrd-tab-list button{white-space:nowrap;border:0;border-radius:10px;background:transparent;color:var(--tvvrd-muted);padding:10px 13px;font-weight:700;cursor:pointer}
.tvvrd-tab-list button:hover,.tvvrd-tab-list button.is-active{background:#eaf2ff;color:var(--tvvrd-accent)}
.tvvrd-tab-panel[hidden]{display:none!important}
.tvvrd-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.tvvrd-panel-card{background:var(--tvvrd-panel-2);border:1px solid var(--tvvrd-border);border-radius:var(--tvvrd-radius);padding:18px}
.tvvrd-panel-card h3{margin:0 0 12px!important;font-size:18px!important}
.tvvrd-definition-list{margin:0}
.tvvrd-definition-list>div{display:flex;justify-content:space-between;gap:15px;padding:10px 0;border-top:1px solid var(--tvvrd-border)}
.tvvrd-definition-list>div:first-child{border-top:0}
.tvvrd-definition-list dt{color:var(--tvvrd-muted)!important}
.tvvrd-definition-list dd{margin:0;font-weight:700;text-align:right}
.tvvrd-table-wrap{width:100%;overflow:auto;border:1px solid var(--tvvrd-border);border-radius:14px;background:#fff}
.tvvrd-table{width:100%;border-collapse:collapse;min-width:760px;background:#fff}
.tvvrd-table th,.tvvrd-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--tvvrd-border)}
.tvvrd-table th{color:var(--tvvrd-muted)!important;font-size:11px;text-transform:uppercase;letter-spacing:.05em;background:#f8fbff}
.tvvrd-table td{color:var(--tvvrd-text)!important;font-size:13px}
.tvvrd-table tr:last-child td{border-bottom:0}
.tvvrd-table td small{display:block;color:var(--tvvrd-muted);margin-top:2px}
.tvvrd-match-list{display:grid;gap:8px}
.tvvrd-match-row{display:grid;grid-template-columns:180px minmax(0,1fr) auto;align-items:center;gap:16px;padding:13px 14px;background:#f8fbff;border:1px solid var(--tvvrd-border);border-radius:13px}
.tvvrd-match-meta strong,.tvvrd-match-meta span{display:block}
.tvvrd-match-meta strong{font-size:12px!important}
.tvvrd-match-meta span{color:var(--tvvrd-muted);font-size:11px;margin-top:3px}
.tvvrd-match-score{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:10px;align-items:center;color:var(--tvvrd-text)}
.tvvrd-match-score span:first-child{text-align:right}
.tvvrd-match-score strong{min-width:42px;text-align:center;color:var(--tvvrd-accent)!important}
.tvvrd-match-incidents{display:flex;gap:8px;color:var(--tvvrd-muted);font-size:11px}
.tvvrd-match-incidents strong{color:var(--tvvrd-text)!important}
.tvvrd-footnote{margin:12px 0 0!important;font-size:12px}
.tvvrd-leader-list{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.tvvrd-leader-list li{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--tvvrd-border);border-radius:11px;background:#f8fbff}
.tvvrd-rank{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#eaf2ff;color:var(--tvvrd-accent);font-weight:700}
.tvvrd-leader-name a:hover{color:var(--tvvrd-accent)!important}
.tvvrd-leader-name small{display:block;color:var(--tvvrd-muted);font-size:11px;margin-top:2px}

@media(max-width:1320px){
    .tvvrd-ref-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:1100px){
    .tvvrd-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
    .tvvrd-button{width:100%}
    .tvvrd-ref-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .tvvrd-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:720px){
    .tvvrd-public{padding:0}
    .tvvrd-section-head{align-items:flex-start;flex-direction:column}
    .tvvrd-head-count{text-align:left}
    .tvvrd-filters{grid-template-columns:1fr}
    .tvvrd-ref-grid{grid-template-columns:1fr}
    .tvvrd-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
    .tvvrd-overview-grid{grid-template-columns:1fr}
    .tvvrd-match-row{grid-template-columns:1fr;gap:9px}
    .tvvrd-match-score span:first-child{text-align:left}
    .tvvrd-match-incidents{flex-wrap:wrap}
}
@media(max-width:420px){
    .tvvrd-kpis{grid-template-columns:1fr 1fr}
    .tvvrd-stat-row{grid-template-columns:repeat(2,1fr)}
}


/* v0.9.2 pre-live flat directory */
.tvvrd-directory,
.tvvrd-directory .tvvrd-ref-card,
.tvvrd-directory .tvvrd-button,
.tvvrd-directory .tvvrd-table-wrap,
.tvvrd-directory .tvvrd-panel-card{box-shadow:none!important}
.tvvrd-directory .tvvrd-ref-card{background:#fff}
.tvvrd-directory .tvvrd-ref-card:hover{box-shadow:none!important;background:#f8fbff}
.tvvrd-directory .tvvrd-filters{align-items:stretch}
.tvvrd-directory .tvvrd-filters select{min-width:0}
@media(min-width:1400px){
  .tvvrd-directory .tvvrd-ref-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}

/* ==========================================================
   v1.0 Dynamic Match Pages
   ========================================================== */
.tvvrd-match-shell {
    background: #fff;
    padding: 36px 0 72px;
}

.tvvrd-match-container {
    width: min(100% - 32px, 1320px);
    margin: 0 auto;
}

.tvvrd-match-breadcrumb {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0 0 18px;
    font-size: 14px;
    color: #64748b;
}

.tvvrd-match-breadcrumb a {
    color: #0b63f6;
    text-decoration: none;
}

.tvvrd-match-card {
    border: 1px solid #e1e8f2;
    border-radius: 24px;
    overflow: hidden;
    background: #fff;
}

.tvvrd-match-hero {
    padding: 32px 36px 38px;
    background: linear-gradient(180deg, #f7faff 0%, #fff 100%);
    border-bottom: 1px solid #e8eef6;
}

.tvvrd-match-context {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 34px;
}

.tvvrd-competition-logo {
    width: 48px;
    height: 48px;
    object-fit: contain;
    flex: 0 0 48px;
}

.tvvrd-match-meta-line {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin-top: 5px;
    color: #60708b;
    font-size: 14px;
}

.tvvrd-scoreboard {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 190px minmax(0, 1fr);
    align-items: center;
    gap: 24px;
}

.tvvrd-team {
    display: flex;
    align-items: center;
    gap: 18px;
}

.tvvrd-team--away {
    flex-direction: row-reverse;
    text-align: right;
}

.tvvrd-team-logo {
    width: 86px;
    height: 86px;
    border-radius: 50%;
    border: 1px solid #e1e8f2;
    background: #fff;
    display: grid;
    place-items: center;
    flex: 0 0 86px;
}

.tvvrd-team-logo img {
    width: 62px;
    height: 62px;
    object-fit: contain;
}

.tvvrd-team-logo span {
    color: #0b63f6;
    font-weight: 800;
    font-size: 28px;
}

.tvvrd-team h1,
.tvvrd-team h2 {
    margin: 0;
    color: #071b3a;
    font-size: clamp(24px, 3vw, 40px);
    line-height: 1.05;
    font-weight: 800;
}

.tvvrd-score {
    text-align: center;
}

.tvvrd-score strong {
    display: block;
    color: #071b3a;
    font-size: clamp(38px, 5vw, 64px);
    line-height: 1;
    letter-spacing: -0.04em;
}

.tvvrd-score span {
    display: block;
    margin-top: 8px;
    color: #66758e;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 700;
}

.tvvrd-match-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-bottom: 1px solid #e8eef6;
}

.tvvrd-match-summary > div {
    padding: 22px 26px;
    border-right: 1px solid #e8eef6;
}

.tvvrd-match-summary > div:last-child { border-right: 0; }
.tvvrd-match-summary strong { display:block; color:#071b3a; font-size:28px; line-height:1; }
.tvvrd-match-summary span { display:block; color:#708097; font-size:13px; margin-top:7px; }

.tvvrd-match-section {
    padding: 34px 36px;
    border-bottom: 1px solid #e8eef6;
}

.tvvrd-match-section:last-child { border-bottom: 0; }

.tvvrd-match-section__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 22px;
}

.tvvrd-match-section__head h2 {
    margin: 4px 0 0;
    color: #071b3a;
    font-size: 28px;
}

.tvvrd-official-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.tvvrd-official-card {
    min-height: 112px;
    padding: 18px;
    border: 1px solid #e1e8f2;
    border-radius: 16px;
    background: #f9fbfe;
}

.tvvrd-official-card > span,
.tvvrd-official-card small {
    display: block;
    color: #708097;
    font-size: 12px;
}

.tvvrd-official-card strong,
.tvvrd-official-card a {
    display: block;
    margin: 8px 0 4px;
    color: #071b3a;
    font-size: 17px;
    font-weight: 800;
    text-decoration: none;
}

.tvvrd-official-card a:hover { color: #0b63f6; }

.tvvrd-event-list {
    border: 1px solid #e1e8f2;
    border-radius: 16px;
    overflow: hidden;
}

.tvvrd-event-row {
    display: grid;
    grid-template-columns: 72px minmax(150px, .7fr) minmax(0, 2fr);
    align-items: center;
    gap: 16px;
    min-height: 68px;
    padding: 12px 18px;
    border-bottom: 1px solid #e8eef6;
}

.tvvrd-event-row:last-child { border-bottom: 0; }
.tvvrd-event-time { color:#071b3a; font-weight:800; font-size:17px; }
.tvvrd-event-team { display:flex; align-items:center; gap:9px; color:#53627a; font-size:13px; }
.tvvrd-event-team img { width:26px; height:26px; object-fit:contain; }
.tvvrd-event-main strong { display:block; color:#071b3a; }
.tvvrd-event-main span, .tvvrd-event-main small { display:block; color:#66758e; margin-top:3px; }

.tvvrd-quality-pill {
    padding: 7px 11px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
}
.tvvrd-quality-pill.is-indexable { background:#e9f9ef; color:#08783d; }
.tvvrd-quality-pill.is-partial { background:#fff5dd; color:#916400; }

.tvvrd-match-coverage-note {
    margin: 24px 36px 34px;
    padding: 16px 18px;
    border: 1px solid #f0d38e;
    border-radius: 14px;
    background: #fff8e7;
    color: #73550c;
}

.tvvrd-match-row { position: relative; }
.tvvrd-match-row.has-link { transition: border-color .2s ease, background .2s ease; }
.tvvrd-match-row.has-link:hover { background:#f8fbff; border-color:#cddcf2; }
.tvvrd-match-row__link { position:absolute; inset:0; z-index:1; }
.tvvrd-match-row > *:not(.tvvrd-match-row__link) { position:relative; z-index:2; pointer-events:none; }
.tvvrd-mini-team-logo { width:22px; height:22px; object-fit:contain; margin-right:7px; vertical-align:middle; }

@media (max-width: 980px) {
    .tvvrd-scoreboard { grid-template-columns: 1fr 130px 1fr; }
    .tvvrd-team { flex-direction: column; text-align:center; gap:10px; }
    .tvvrd-team--away { flex-direction: column; text-align:center; }
    .tvvrd-team-logo { width:70px; height:70px; flex-basis:70px; }
    .tvvrd-team-logo img { width:50px; height:50px; }
    .tvvrd-official-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 680px) {
    .tvvrd-match-shell { padding-top:20px; }
    .tvvrd-match-container { width:min(100% - 20px, 1320px); }
    .tvvrd-match-card { border-radius:18px; }
    .tvvrd-match-hero, .tvvrd-match-section { padding:24px 18px; }
    .tvvrd-match-context { margin-bottom:24px; }
    .tvvrd-scoreboard { grid-template-columns:1fr 74px 1fr; gap:8px; }
    .tvvrd-team-logo { width:58px; height:58px; flex-basis:58px; }
    .tvvrd-team-logo img { width:40px; height:40px; }
    .tvvrd-team h1, .tvvrd-team h2 { font-size:18px; }
    .tvvrd-score strong { font-size:32px; }
    .tvvrd-match-summary { grid-template-columns:repeat(2,1fr); }
    .tvvrd-match-summary > div:nth-child(2) { border-right:0; }
    .tvvrd-match-summary > div:nth-child(-n+2) { border-bottom:1px solid #e8eef6; }
    .tvvrd-official-grid { grid-template-columns:1fr; }
    .tvvrd-match-section__head { align-items:flex-start; flex-direction:column; }
    .tvvrd-event-row { grid-template-columns:48px minmax(0,1fr); gap:10px; }
    .tvvrd-event-team { grid-column:2; }
    .tvvrd-event-main { grid-column:2; }
    .tvvrd-match-coverage-note { margin:20px 18px 24px; }
}

/* ==========================================================
   v1.0.1 referee match-list improvements
   ========================================================== */
.tvvrd-subsection-head{margin:4px 0 12px}
.tvvrd-subsection-head h3{margin:3px 0 0;color:#071b3a;font-size:20px}
.tvvrd-subsection-head--recent{margin-top:28px}
.tvvrd-match-row__link{z-index:5!important}
.tvvrd-match-row> *:not(.tvvrd-match-row__link){z-index:2}
.tvvrd-team-inline{display:inline-flex;align-items:center;gap:7px;min-width:0}
.tvvrd-team-inline>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tvvrd-match-score> .tvvrd-team-inline:first-child{justify-content:flex-end;text-align:right}
.tvvrd-match-score> .tvvrd-team-inline:last-child{justify-content:flex-start;text-align:left}
.tvvrd-card-count{display:inline-flex!important;align-items:center;gap:6px!important;padding:5px 8px!important;border-radius:8px;background:#fff;border:1px solid var(--tvvrd-border)}
.tvvrd-card-count i{display:inline-block;width:10px;height:14px;border-radius:2px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.tvvrd-card-count--yellow i{background:#f6c400}
.tvvrd-card-count--red i{background:#e23b3b}
.tvvrd-card-count strong{color:var(--tvvrd-text)!important}
.tvvrd-assignment-pill{background:#eef8ff!important;border-color:#cfe5fb!important;color:#165b97!important;font-weight:800}
.tvvrd-match-details-label{color:#0b63f6!important;font-weight:800;white-space:nowrap}
.tvvrd-match-row.has-link{cursor:pointer}
.tvvrd-match-row.has-link:hover .tvvrd-match-details-label{color:#084aa9!important}
.tvvrd-match-list--upcoming .tvvrd-match-row{background:#f6fbff;border-color:#d8e8f8}
@media(max-width:992px){
  .tvvrd-match-score> .tvvrd-team-inline:first-child{justify-content:flex-start;text-align:left}
}

/* v1.0.4 directory diagnostics */
.tvvrd-admin-hint{display:block;margin-top:8px;color:#7a6a3b;font-size:12px;font-weight:600}

/* ==========================================================
   v1.1.0 upcoming appointments
   ========================================================== */
.tvvrd-appointments{margin:0 0 28px}
.tvvrd-appointments__head{margin-bottom:14px}
.tvvrd-appointment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.tvvrd-appointment-card{display:flex;flex-direction:column;gap:14px;min-width:0;padding:18px;border:1px solid var(--tvvrd-border,#dfe6ef);border-radius:16px;background:#fff}
.tvvrd-appointment-card__meta{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;color:#65738a;font-size:12px}
.tvvrd-appointment-card__meta strong{color:#071b3a;font-size:13px}
.tvvrd-appointment-card__fixture{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:10px;align-items:center;color:#071b3a;font-weight:700}
.tvvrd-appointment-card__fixture>.tvvrd-team-inline:first-child{justify-content:flex-end;text-align:right}
.tvvrd-appointment-card__fixture>.tvvrd-team-inline:last-child{justify-content:flex-start;text-align:left}
.tvvrd-appointment-card__official{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tvvrd-appointment-card__official a{color:#071b3a;text-decoration:none}
.tvvrd-appointment-card__official a:hover{color:#0b63f6}
.tvvrd-appointment-card__link{margin-top:auto;color:#0b63f6;font-weight:800;text-decoration:none}
.tvvrd-appointment-card__link:hover{color:#084aa9}
@media(max-width:980px){.tvvrd-appointment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.tvvrd-appointment-grid{grid-template-columns:1fr}.tvvrd-appointment-card__meta{flex-direction:column;gap:4px}.tvvrd-appointment-card__fixture>.tvvrd-team-inline:first-child{justify-content:flex-start;text-align:left}}

/* ==========================================================
   v1.1.8 homepage Upcoming Appointments one-line list
   Each appointment is a compact row so more assignments fit.
   ========================================================== */
.tvv-home-appointments .tvvrd-appointments{margin:0}
.tvv-home-appointments .tvvrd-appointment-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:0;
  border-top:1px solid #e7edf5;
}
.tvv-home-appointments .tvvrd-appointment-card{
  display:grid;
  grid-template-columns:110px minmax(0,1fr) minmax(120px,150px) 22px;
  align-items:center;
  gap:12px;
  min-width:0;
  padding:12px 2px;
  border:0;
  border-bottom:1px solid #e7edf5;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.tvv-home-appointments .tvvrd-appointment-card__meta{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
  color:#748197;
  font-size:10px;
  line-height:1.25;
}
.tvv-home-appointments .tvvrd-appointment-card__meta strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#0b1f3a;
  font-size:11px;
  font-weight:800;
}
.tvv-home-appointments .tvvrd-appointment-card__meta span{
  display:block;
  overflow:hidden;
  color:#748197;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.tvv-home-appointments .tvvrd-appointment-card__fixture{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  gap:6px;
  min-width:0;
  color:#0b1f3a;
  font-size:12px;
  font-weight:800;
  line-height:1.2;
}
.tvv-home-appointments .tvvrd-appointment-card__fixture > strong{
  color:#92a0b2;
  font-size:9px;
  text-transform:uppercase;
}
.tvv-home-appointments .tvvrd-appointment-card__fixture .tvvrd-team-inline{
  display:flex;
  align-items:center;
  gap:5px;
  min-width:0;
}
.tvv-home-appointments .tvvrd-appointment-card__fixture > .tvvrd-team-inline:first-child{
  justify-content:flex-end;
  text-align:right;
}
.tvv-home-appointments .tvvrd-appointment-card__fixture > .tvvrd-team-inline:last-child{
  justify-content:flex-start;
  text-align:left;
}
.tvv-home-appointments .tvvrd-appointment-card__fixture .tvvrd-team-inline > span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.tvv-home-appointments .tvvrd-appointment-card__fixture .tvvrd-mini-team-logo{
  width:20px!important;
  height:20px!important;
  max-width:20px!important;
  max-height:20px!important;
  flex:0 0 20px;
  object-fit:contain;
}
.tvv-home-appointments .tvvrd-appointment-card__official{
  display:block;
  min-width:0;
}
.tvv-home-appointments .tvvrd-appointment-card__official .tvvrd-assignment-pill{
  display:none!important;
}
.tvv-home-appointments .tvvrd-appointment-card__official > strong,
.tvv-home-appointments .tvvrd-appointment-card__official a,
.tvv-home-appointments .tvvrd-appointment-card__official a strong{
  display:block;
  min-width:0;
  overflow:hidden;
  color:#0b1f3a;
  font-size:11px;
  font-weight:800;
  line-height:1.2;
  text-decoration:none;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.tvv-home-appointments .tvvrd-appointment-card__official a:hover{color:#0b63f6}
.tvv-home-appointments .tvvrd-appointment-card__link{
  display:flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  overflow:hidden;
  margin:0;
  color:#0b63f6;
  font-size:0;
  font-weight:800;
  line-height:1;
  text-decoration:none;
  white-space:nowrap;
}
.tvv-home-appointments .tvvrd-appointment-card__link::after{
  content:'→';
  font-size:15px;
}
.tvv-home-appointments .tvvrd-appointment-card__link:hover{color:#084aa9}

@media(max-width:760px){
  .tvv-home-appointments .tvvrd-appointment-card{
    grid-template-columns:minmax(0,1fr) 22px;
    grid-template-areas:
      'meta link'
      'fixture link'
      'official link';
    gap:6px 10px;
    padding:12px 0;
  }
  .tvv-home-appointments .tvvrd-appointment-card__meta{grid-area:meta;flex-direction:row;gap:7px}
  .tvv-home-appointments .tvvrd-appointment-card__fixture{grid-area:fixture}
  .tvv-home-appointments .tvvrd-appointment-card__official{grid-area:official}
  .tvv-home-appointments .tvvrd-appointment-card__link{grid-area:link;align-self:center}
  .tvv-home-appointments .tvvrd-appointment-card__fixture > .tvvrd-team-inline:first-child{justify-content:flex-start;text-align:left}
}
