/* ── Venn Quiz Engine Styles ── */

:root {
    --primary:        #4f46e5;
    --primary-light:  #6366f1;
    --bg-color:       #f8fafc;
    --card-bg:        #ffffff;
    --text-main:      #1e293b;
    --text-muted:     #64748b;
    --border:         #e2e8f0;
    --border-muted:   #cbd5e1;
    --correct:        #10b981;
    --correct-light:  #d1fae5;
    --incorrect:      #ef4444;
    --incorrect-light:#fee2e2;
    --selected:       #f59e0b;
    --selected-light: #fef3c7;
    --border-radius:  12px;
    --mono:           'JetBrains Mono', ui-monospace, 'Cascadia Code', Menlo, monospace;
}

* { box-sizing: border-box; }

body {
    font-family: system-ui, -apple-system, sans-serif;
    background: var(--bg-color);
    color: var(--text-main);
    margin: 0;
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 100vh;
}

/* ── Header ── */
header { text-align: center; margin-bottom: 1rem; max-width: 900px; }
h1 { margin: 0 0 0.4rem; color: var(--primary); font-size: 1.75rem; }
.vq-subtitle { color: var(--text-muted); margin: 0 0 0.5rem; font-size: 0.95rem; }
.vq-instructions { color: var(--text-muted); margin: 0; font-size: 0.88rem; line-height: 1.6; }
.vq-instructions kbd {
    font-family: var(--mono);
    background: #e2e8f0;
    border: 1px solid var(--border-muted);
    border-radius: 4px;
    padding: 0.1rem 0.35rem;
    font-size: 0.8em;
    font-weight: 700;
    color: var(--text-main);
}
.vq-back {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    margin-bottom: 0.5rem;
    font-size: 0.8rem;
    color: var(--text-muted);
    text-decoration: none;
    opacity: 0.7;
}
.vq-back:hover { opacity: 1; }

/* ── Toolbar ── */
.vq-toolbar {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    margin: 0.75rem 0;
}
.vq-pill {
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--text-main);
    background: var(--card-bg);
    padding: 0.4rem 1rem;
    border-radius: 999px;
    box-shadow: 0 1px 3px rgb(0 0 0 / 0.08);
    border: 1px solid var(--border);
    display: flex;
    align-items: center;
    gap: 0.4rem;
}
.vq-score  { color: var(--correct); }
.vq-timer  { color: var(--primary); font-family: var(--mono); font-size: 0.9em; }
.vq-reset-btn {
    background: var(--card-bg);
    border: 2px solid var(--border);
    color: var(--text-main);
    padding: 0.4rem 1rem;
    border-radius: 999px;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
}
.vq-reset-btn:hover { border-color: var(--primary); background: #f1f5f9; }

/* ── Layout ── */
.vq-layout {
    display: flex;
    gap: 1.5rem;
    width: 100%;
    max-width: 1400px;
    align-items: flex-start;
    min-width: 900px;
}

/* ── Bank ── */
.vq-bank {
    flex: 0 0 300px;
    background: var(--card-bg);
    padding: 1.25rem;
    border-radius: var(--border-radius);
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.08);
    max-height: calc(100vh - 3rem);
    overflow-y: auto;
    border: 2px solid var(--border);
    position: sticky;
    top: 1.5rem;
}
.vq-bank h2 { margin: 0 0 0.75rem; font-size: 1.05rem; border-bottom: 2px solid var(--border); padding-bottom: 0.5rem; }
.vq-bank-count { font-weight: 400; color: var(--text-muted); font-size: 0.8rem; }

/* ── Chip ── */
.vq-chip {
    background: var(--primary);
    color: white;
    padding: 0.6rem 0.8rem;
    margin-bottom: 0.5rem;
    border-radius: 8px;
    cursor: grab;
    font-size: 0.85rem;
    font-weight: 500;
    box-shadow: 0 2px 4px rgb(79 70 229 / 0.2);
    transition: transform 0.1s, box-shadow 0.15s, background 0.2s, opacity 0.15s;
    user-select: none;
    line-height: 1.4;
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
}
.vq-chip-key {
    font-family: var(--mono);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5em;
    height: 1.5em;
    background: rgba(255,255,255,0.2);
    color: white;
    border-radius: 3px;
    font-size: 0.72rem;
    font-weight: 700;
    margin-right: 0.5em;
    flex-shrink: 0;
    border: 1px solid rgba(255,255,255,0.3);
    margin-top: 0.1em;
}
.vq-chip-text { flex: 1; min-width: 0; }
.vq-chip-hint {
    display: none;
    flex-basis: 100%;
    font-style: italic;
    font-size: 0.72rem;
    font-weight: 400;
    opacity: 0.9;
    margin-top: 0.2rem;
    padding-left: 0.1rem;
}
.vq-chip.incorrect .vq-chip-hint { display: block; }

.vq-chip:hover { background: var(--primary-light); transform: translateY(-1px); box-shadow: 0 4px 8px rgb(79 70 229 / 0.25); }
.vq-chip:active { cursor: grabbing; transform: scale(0.98); }

.vq-zone-body .vq-chip { padding: 0.3rem 0.45rem; font-size: 0.76rem; margin-bottom: 0; box-shadow: 0 1px 2px rgba(0,0,0,0.15); }
.vq-zone-body .vq-chip-key { display: none; }

.vq-chip.correct   { background: var(--correct);   cursor: default; }
.vq-chip.incorrect { background: var(--incorrect);  cursor: default; }
.vq-chip.correct:hover,
.vq-chip.incorrect:hover { transform: none; box-shadow: none; }

/* ── Card (one item at a time) ── */
.vq-card {
    width: 100%;
    max-width: 1400px;
    background: var(--card-bg);
    border: 2px solid var(--border);
    border-radius: var(--border-radius);
    padding: 1rem 1.25rem;
    margin-bottom: 0.75rem;
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.08);
}
.vq-card.vq-card-placed-state {
    border-color: var(--border-muted);
    background: #fafbfc;
}
.vq-card-meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.6rem;
}
.vq-card-nav {
    background: var(--bg-color);
    border: 1px solid var(--border-muted);
    border-radius: 6px;
    width: 2rem;
    height: 2rem;
    font-size: 1rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted);
    transition: background 0.15s, color 0.15s;
    flex-shrink: 0;
    line-height: 1;
}
.vq-card-nav:hover { background: var(--border); color: var(--text-main); }
.vq-card-pos {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--text-muted);
    font-family: var(--mono);
    flex-shrink: 0;
}
.vq-card-hint {
    font-size: 0.78rem;
    color: var(--text-muted);
    margin-left: 0.25rem;
}
.vq-card-hint kbd {
    font-family: var(--mono);
    background: #e2e8f0;
    border: 1px solid var(--border-muted);
    border-radius: 3px;
    padding: 0.04rem 0.28rem;
    font-size: 0.8em;
    font-weight: 700;
    color: var(--text-main);
}
.vq-card-text {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--text-main);
    line-height: 1.5;
    margin-bottom: 0.35rem;
}
.vq-card-placed {
    font-size: 0.8rem;
    color: var(--text-muted);
    font-style: italic;
    min-height: 1.2em;
}

/* ── Zone items (chips placed in live quiz zones) ── */
.vq-zone-item {
    font-size: 0.72rem;
    padding: 0.12rem 0.3rem;
    border-radius: 3px;
    background: rgba(0,0,0,0.05);
    line-height: 1.35;
    color: var(--text-main);
    cursor: pointer;
    display: flex;
    flex-direction: column;
    transition: background 0.15s;
}
.vq-zone-item:hover { background: rgba(0,0,0,0.09); }
.vq-zone-item.correct   { background: rgba(16,185,129,0.14); cursor: default; }
.vq-zone-item.incorrect { background: rgba(239,68,68,0.10); }
.vq-zone-item-hint {
    font-size: 0.65rem;
    opacity: 0.7;
    font-style: italic;
    margin-top: 0.1rem;
}

/* ── Venn Diagram ── */
.vq-venn-wrapper {
    width: 100%;
    max-width: 1400px;
    background: var(--card-bg);
    border-radius: var(--border-radius);
    padding: 1.25rem;
    border: 2px solid var(--border);
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.08);
}

/*
 * Three overlapping rectangles, perfectly tiled into 7 non-overlapping drop zones.
 *
 * rect-A (RDS):  left:2%,  top:2%,  width:60%, height:59%  → h:2%-62%, v:2%-61%
 * rect-B (TTN):  left:38%, top:2%,  width:60%, height:59%  → h:38%-98%, v:2%-61%
 * rect-C (PPHN): left:8%,  top:42%, width:84%, height:53%  → h:8%-92%, v:42%-95%
 *
 * Row 1 (v:2%-42%,  above C):    [rds: 2-38] [rds,ttn: 38-62] [ttn: 62-98]
 * Row 2 (v:42%-61%, inside C):   [rds,pphn: 8-38] [all3: 38-62] [ttn,pphn: 62-92]
 * Row 3 (v:61%-95%, only C):     [pphn: 8-92]
 */
.vq-venn {
    position: relative;
    width: 100%;
    height: 700px;
}

/* ── Background decorative rectangles ── */
.vq-rect {
    position: absolute;
    pointer-events: none;
    border: 3px solid;
    border-radius: 8px;
    z-index: 1;
}
.vq-rect-A { top: 2%;  left: 2%;  width: 60%; height: 59%; }
.vq-rect-B { top: 2%;  left: 38%; width: 60%; height: 59%; }
.vq-rect-C { top: 42%; left: 8%;  width: 84%; height: 53%; }

.vq-rect-label {
    position: absolute;
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    opacity: 0.97;
    background: rgba(255,255,255,0.93);
    padding: 0.2rem 0.6rem;
    border-radius: 6px;
    border: 2px solid currentColor;
    box-shadow: 0 1px 4px rgba(0,0,0,0.12);
}
.vq-rect-A .vq-rect-label { top:  0.35rem; left:  0.45rem; }
.vq-rect-B .vq-rect-label { top:  0.35rem; right: 0.45rem; }
.vq-rect-C .vq-rect-label { bottom: 0.35rem; left: 0.45rem; }

/* ── Drop zones — transparent overlay, fit exactly within rect intersections ── */
.vq-zone {
    position: absolute;
    z-index: 10;
    display: flex;
    flex-direction: column;
    /* padding-top reserves space below the floating header badge */
    padding-top: 1.9rem;
}

/* Row 1: above C */
.vq-zone[data-zones="rds"]     { top: 2%;  left: 2%;  width: 36%; height: 40%; }
.vq-zone[data-zones="rds,ttn"] { top: 2%;  left: 38%; width: 24%; height: 40%; }
.vq-zone[data-zones="ttn"]     { top: 2%;  left: 62%; width: 36%; height: 40%; }

/* Row 2: inside C overlap */
.vq-zone[data-zones="rds,pphn"]     { top: 42%; left: 8%;  width: 30%; height: 19%; }
.vq-zone[data-zones="rds,ttn,pphn"] { top: 42%; left: 38%; width: 24%; height: 19%; }
.vq-zone[data-zones="ttn,pphn"]     { top: 42%; left: 62%; width: 30%; height: 19%; }

/* Row 3: only C */
.vq-zone[data-zones="pphn"] { top: 61%; left: 8%;  width: 84%; height: 34%; }

/* Drag-over: inset glow */
.vq-zone.drag-over::after {
    content: '';
    position: absolute;
    inset: 0;
    box-shadow: inset 0 0 0 3px var(--primary);
    border-radius: 5px;
    background: rgba(79,70,229,0.06);
    pointer-events: none;
    z-index: 20;
}

/* ── Zone Header — floating pill badge (doesn't block zone body) ── */
.vq-zone-header {
    position: absolute;
    top: 0.3rem;
    left: 0.3rem;
    z-index: 12;
    pointer-events: none;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.1rem 0.4rem 0.1rem 0.2rem;
    background: rgba(255,255,255,0.92);
    backdrop-filter: blur(6px);
    border: 1px solid rgba(0,0,0,0.10);
    border-radius: 999px;
    font-size: 0.63rem;
    font-weight: 700;
    color: var(--text-muted);
    white-space: nowrap;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
.vq-zone-hotkey {
    font-family: var(--mono);
    font-style: normal;
    background: #e2e8f0;
    color: var(--text-main);
    border: 1px solid var(--border-muted);
    border-radius: 3px;
    padding: 0.04rem 0.28rem;
    font-size: 0.6rem;
    font-weight: 700;
    flex-shrink: 0;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
    cursor: default;
    pointer-events: none;
}
.vq-zone.kb-target .vq-zone-header {
    background: rgba(254,243,199,0.97);
    border-color: #d97706;
}
.vq-zone.kb-target .vq-zone-hotkey {
    background: var(--selected);
    color: white;
    border-color: #d97706;
    animation: vq-pulse 1s infinite;
}
.vq-zone-dot {
    width: 7px; height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
    border: 1px solid rgba(0,0,0,0.1);
}
.vq-zone-label {
    max-width: 120px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ── Zone Body — flex item below the absolute header badge ── */
.vq-zone-body {
    flex: 1;
    padding: 0.15rem 0.3rem 0.3rem 0.3rem;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    overflow-y: auto;
    min-height: 0;
}

/* ── Banners ── */
.vq-complete-banner {
    min-height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--correct-light);
    border: 2px solid var(--correct);
    border-radius: var(--border-radius);
    padding: 0.5rem 1.5rem;
    font-size: 1.1rem;
    font-weight: 600;
    color: #065f46;
    width: 100%;
    max-width: 1400px;
    margin-bottom: 0.75rem;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.15s, visibility 0.15s;
}
.vq-complete-banner.visible { opacity: 1; visibility: visible; }

.vq-kb-banner {
    min-height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fef3c7;
    border: 2px solid #f59e0b;
    border-radius: 8px;
    padding: 0.4rem 1rem;
    font-size: 0.88rem;
    color: #92400e;
    font-weight: 500;
    width: 100%;
    max-width: 1400px;
    margin-bottom: 0.5rem;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.15s, visibility 0.15s;
}
.vq-kb-banner.visible { opacity: 1; visibility: visible; }
.vq-kb-banner kbd {
    font-family: var(--mono);
    background: white;
    border: 1px solid #d97706;
    border-radius: 4px;
    padding: 0.05rem 0.3rem;
    font-size: 0.8em;
    font-weight: 700;
}

/* ── KB-selected chip ── */
.vq-chip.kb-selected {
    outline: 3px solid #f59e0b;
    outline-offset: 2px;
    animation: vq-pulse 1.5s infinite;
}

/* ── Modal / Cheatsheet ── */
.vq-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.5);
    z-index: 1000;
    justify-content: center;
    align-items: center;
    padding: 1.5rem;
}
.vq-modal-overlay.visible { display: flex; }
.vq-modal-card {
    background: var(--card-bg);
    border-radius: var(--border-radius);
    width: 100%;
    max-width: 1000px;
    box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
    max-height: 90vh;
    position: relative;
}
.vq-cheat-table { width: 100%; border-collapse: collapse; font-size: 0.85rem; }
.vq-cheat-table th,
.vq-cheat-table td { padding: 0.5rem; border: 1px solid var(--border); text-align: left; }
.vq-cheat-table th { background: var(--primary); color: white; }
.vq-cheat-table tr.vq-cheat-section td {
    background: #f1f5f9;
    font-weight: 700;
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
    border-color: var(--border-muted);
}
.vq-cheat-table tr.correct   td { background: rgba(16,185,129,0.12); }
.vq-cheat-table tr.incorrect td { background: rgba(239,68,68,0.10); color: #b91c1c; }

/* ── Cheatsheet card layout ── */
.vq-cheat-card {
    display: flex;
    flex-direction: column;
    padding: 0;
    overflow: hidden;
}
.vq-cheat-tabs {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.75rem 1rem 0 1rem;
    border-bottom: 2px solid var(--border);
    background: var(--bg-color);
}
.vq-cheat-title {
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--text-main);
    margin-right: auto;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.vq-cheat-tab {
    background: none;
    border: none;
    border-bottom: 3px solid transparent;
    margin-bottom: -2px;
    padding: 0.5rem 0.85rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-muted);
    cursor: pointer;
    border-radius: 4px 4px 0 0;
    transition: color 0.15s, border-color 0.15s;
}
.vq-cheat-tab:hover { color: var(--primary); }
.vq-cheat-tab.active { color: var(--primary); border-bottom-color: var(--primary); }
.vq-cheat-fs-btn {
    background: none;
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 0.25rem 0.5rem;
    font-size: 1rem;
    cursor: pointer;
    color: var(--text-muted);
    margin-left: 0.25rem;
    transition: background 0.15s;
}
.vq-cheat-fs-btn:hover { background: #e8ecf0; color: var(--primary); }
.vq-modal-close {
    position: absolute;
    top: 0.6rem; right: 0.85rem;
    background: none; border: none;
    font-size: 1.2rem; color: var(--text-muted);
    cursor: pointer;
    z-index: 10;
}
.vq-cheat-pane {
    flex: 1;
    overflow-y: auto;
    padding: 1rem;
}
.vq-cheat-pane-hidden { display: none !important; }

/* Embedded region map Venn inside cheatsheet */
.vq-cheat-venn {
    height: 520px !important;
    min-height: 400px;
    margin: 0;
    pointer-events: none;
}
/* Linear 2c cheat venn: don't force fixed height, let it grow */
.vq-cheat-venn.vq-venn-2c-linear {
    height: auto !important;
    min-height: 120px;
}
.vq-cheat-venn .vq-zone {
    pointer-events: none;
    outline: 1px dashed rgba(0,0,0,0.12);
    border-radius: 4px;
}

/* ── Fullscreen Venn Reference Overlay ── */
.vq-venn-fs {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(15,23,42,0.92);
    z-index: 2000;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
}
.vq-venn-fs.visible { display: flex; }

.vq-venn-fs-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    max-width: 1200px;
    margin-bottom: 0.75rem;
    color: white;
    font-weight: 700;
    font-size: 1rem;
}
.vq-venn-fs-close {
    background: rgba(255,255,255,0.12);
    border: none;
    color: white;
    font-size: 1rem;
    padding: 0.3rem 0.7rem;
    border-radius: 6px;
    cursor: pointer;
}
.vq-venn-fs-close:hover { background: rgba(255,255,255,0.2); }

/* The fullscreen venn reuses .vq-venn and .vq-zone CSS */
.vq-fs-venn-wrap {
    width: 100%;
    max-width: 1200px;
    background: white;
    border-radius: var(--border-radius);
    padding: 1rem;
}
.vq-fs-venn-wrap .vq-venn {
    height: calc(90vh - 8rem);
    min-height: 500px;
}
/* Zones in reference view: not interactive */
.vq-fs-venn-wrap .vq-zone {
    pointer-events: none;
    outline: 1px dashed rgba(0,0,0,0.12);
    border-radius: 4px;
}

/* Reference items (non-chip text in fullscreen venn) */
.vq-fs-item {
    font-size: 0.72rem;
    padding: 0.15rem 0.3rem;
    border-radius: 3px;
    background: rgba(0,0,0,0.05);
    line-height: 1.35;
    color: var(--text-main);
}
.vq-fs-item.correct   { background: rgba(16,185,129,0.14); }
.vq-fs-item.incorrect { background: rgba(239,68,68,0.10); color: #b91c1c; }
.vq-fs-item.unplaced  { opacity: 0.5; }

/* ── Animations ── */
@keyframes vq-pulse {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0.5; }
}
@keyframes vq-zone-flash-correct {
    0%   { box-shadow: inset 0 0 0 3px rgba(16,185,129,0.7); }
    100% { box-shadow: none; }
}
@keyframes vq-zone-flash-error {
    0%   { box-shadow: inset 0 0 0 3px rgba(239,68,68,0.7); }
    100% { box-shadow: none; }
}
.vq-zone.vq-flash-correct { animation: vq-zone-flash-correct 0.45s ease-out; }
.vq-zone.vq-flash-error   { animation: vq-zone-flash-error   0.45s ease-out; }

/* ── 2-Circle Venn Layout ── */
/*
 * rect-A: left:2%,  width:56%  → 2%-58%
 * rect-B: left:42%, width:56%  → 42%-98%
 * overlap: 42%-58% (16% wide)
 *
 * Zone idx 0 (A only):        left:2%,  width:40%, height:96%
 * Zone idx 1 (A∩B):           left:42%, width:16%, height:96%
 * Zone idx 2 (B only):        left:58%, width:40%, height:96%
 */
.vq-venn-2c { height: 420px; }
.vq-venn-2c .vq-rect-A { top: 2%; left: 2%;  width: 56%; height: 96%; }
.vq-venn-2c .vq-rect-B { top: 2%; left: 42%; width: 56%; height: 96%; }
.vq-venn-2c .vq-zone[data-zone-idx="0"] { top: 2%; left: 2%;  width: 40%; height: 96%; }
.vq-venn-2c .vq-zone[data-zone-idx="1"] { top: 2%; left: 42%; width: 16%; height: 96%; }
.vq-venn-2c .vq-zone[data-zone-idx="2"] { top: 2%; left: 58%; width: 40%; height: 96%; }

/* 2-circle zones: same floating header approach */
.vq-venn-2c .vq-zone { padding-top: 1.9rem; }

/* ── Linear 2-Circle Venn (grows vertically, no fixed height) ── */
.vq-venn-2c-linear {
    display: flex !important;
    flex-direction: row;
    height: auto !important;
    min-height: 120px;
    gap: 0;
    align-items: stretch;
    background: transparent;
}
/* Override absolute positioning for linear zones */
.vq-venn-2c-linear .vq-zone {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: auto !important;
    height: auto !important;
    flex: 2;
    border-radius: 0;
    outline: 1px solid rgba(0,0,0,0.08);
}
/* Overlap column is narrower */
.vq-venn-2c-linear .vq-zone[data-zone-idx="1"] { flex: 1; }
/* Round corners on outer edges */
.vq-venn-2c-linear .vq-zone:first-child { border-radius: 8px 0 0 8px; }
.vq-venn-2c-linear .vq-zone:last-child  { border-radius: 0 8px 8px 0; }
/* Zone body grows with content, no overflow scroll */
.vq-venn-2c-linear .vq-zone-body {
    overflow-y: visible !important;
    min-height: 60px;
}
/* No background rects in linear mode (they're not rendered) */
