:root {
    --iqm-primary: #2f66d0;
    --iqm-primary-dark: #214b9f;
    --iqm-primary-soft: #edf4ff;
    --iqm-success: #16804f;
    --iqm-success-soft: #effcf5;
    --iqm-danger: #c23030;
    --iqm-danger-soft: #fff0f0;
    --iqm-warning: #9a6700;
    --iqm-warning-soft: #fff9e8;
    --iqm-text: #172033;
    --iqm-muted: #617084;
    --iqm-border: #d8e0ec;
    --iqm-surface: #ffffff;
    --iqm-background: #f5f7fb;
    --iqm-radius: 14px;
    --iqm-radius-sm: 10px;
    --iqm-shadow: 0 10px 26px rgba(15, 23, 42, .07);
}

.iqm-dashboard,
.iqm-panel,
.iqm-category-grid,
.iqm-quiz-grid {
    direction: ltr;
}

.iqm-dashboard,
.iqm-panel {
    box-sizing: border-box;
    color: var(--iqm-text);
    font-family: inherit;
    text-align: left;
}

.iqm-dashboard *,
.iqm-panel * {
    box-sizing: border-box;
}

.iqm-panel {
    background: var(--iqm-surface);
    border: 1px solid var(--iqm-border);
    border-radius: var(--iqm-radius);
    box-shadow: var(--iqm-shadow);
    margin: 1.35rem 0;
    padding: clamp(1rem, 2.5vw, 1.75rem);
}

.iqm-panel h1,
.iqm-panel h2,
.iqm-panel h3,
.iqm-panel h4 {
    color: var(--iqm-text);
    line-height: 1.35;
    margin-top: 0;
}

.iqm-panel h1,
.iqm-panel h2 {
    letter-spacing: -.02em;
}

.iqm-panel h2 {
    font-size: clamp(1.2rem, 2vw, 1.55rem);
}

.iqm-panel h3 {
    font-size: 1rem;
}

.iqm-content {
    line-height: 1.8;
}

.iqm-notice {
    background: var(--iqm-primary-soft);
    border: 1px solid #bfd4ff;
    border-radius: var(--iqm-radius-sm);
    color: var(--iqm-primary-dark);
    margin: 1rem 0;
    padding: .9rem 1rem;
}

.iqm-error {
    background: var(--iqm-danger-soft);
    border-color: #f2b7b7;
    color: var(--iqm-danger);
}

.iqm-warning {
    background: var(--iqm-warning-soft);
    border-color: #f1d58b;
    color: var(--iqm-warning);
}

.iqm-success {
    background: var(--iqm-success-soft);
    border-color: #b9ebcf;
    color: var(--iqm-success);
}

.iqm-inline-notice {
    border: 1px solid var(--iqm-border);
    border-radius: var(--iqm-radius-sm);
    margin-top: .85rem;
    padding: .75rem .9rem;
}

.iqm-panel-heading {
    align-items: flex-start;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: 1.25rem;
}

.iqm-panel-heading h1,
.iqm-panel-heading h2 {
    margin-bottom: 0;
}

.iqm-eyebrow {
    color: var(--iqm-muted);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .1em;
    margin: 0 0 .3rem;
    text-transform: uppercase;
}

.iqm-live-indicator {
    align-items: center;
    background: #e8f8ef;
    border: 1px solid #b9ebcf;
    border-radius: 999px;
    color: #16794f;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: .76rem;
    font-weight: 800;
    gap: .35rem;
    padding: .3rem .68rem;
}

.iqm-live-indicator::before {
    background: #22a565;
    border-radius: 50%;
    box-shadow: 0 0 0 4px rgba(34, 165, 101, .12);
    content: "";
    height: .45rem;
    width: .45rem;
}

.iqm-stat-grid {
    display: grid;
    gap: .8rem;
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.iqm-stat {
    background: #f8faff;
    border: 1px solid var(--iqm-border);
    border-radius: var(--iqm-radius-sm);
    display: flex;
    flex-direction: column;
    gap: .28rem;
    min-width: 0;
    padding: .85rem .75rem;
}

.iqm-stat strong {
    color: var(--iqm-primary-dark);
    font-size: clamp(1.15rem, 2vw, 1.55rem);
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

.iqm-stat span {
    color: var(--iqm-text);
    font-size: .72rem;
    font-weight: 700;
    line-height: 1.35;
}

.iqm-stat small {
    color: var(--iqm-muted);
    font-size: .68rem;
}

.iqm-progress-track {
    background: #e2e8f0;
    border-radius: 999px;
    height: 9px;
    margin-top: 1.2rem;
    overflow: hidden;
}

.iqm-progress-track span {
    background: linear-gradient(90deg, #2859bd, #4b83e8);
    border-radius: inherit;
    display: block;
    height: 100%;
    transition: width .35s ease;
}

.iqm-progress-caption {
    color: var(--iqm-muted);
    font-size: .72rem;
    margin: .35rem 0 0;
}

.iqm-dashboard-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 2fr) minmax(250px, 1fr);
    margin-top: 1.25rem;
}

.iqm-chart-card,
.iqm-badges-card {
    background: var(--iqm-surface);
    border: 1px solid var(--iqm-border);
    border-radius: var(--iqm-radius);
    box-shadow: 0 5px 18px rgba(15, 23, 42, .04);
    min-width: 0;
    padding: 1.1rem;
}

.iqm-chart-card h3,
.iqm-badges-card h3 {
    margin-bottom: .9rem;
}

.iqm-chart {
    min-height: 240px;
    overflow: auto;
    position: relative;
}

.iqm-chart canvas {
    display: block;
    max-width: 100%;
}

.iqm-chart-empty {
    color: var(--iqm-muted);
    padding: 5rem 1rem 1rem;
    text-align: center;
}

.iqm-badge-list {
    display: grid;
    gap: .65rem;
}

.iqm-badge {
    align-items: center;
    border: 1px solid var(--iqm-border);
    border-radius: var(--iqm-radius-sm);
    display: flex;
    font-size: .82rem;
    gap: .65rem;
    padding: .65rem .7rem;
}

.iqm-badge > span {
    align-items: center;
    border-radius: 50%;
    display: grid;
    flex: 0 0 auto;
    font-weight: 800;
    height: 1.45rem;
    justify-content: center;
    width: 1.45rem;
}

.iqm-badge.is-earned {
    background: var(--iqm-success-soft);
    border-color: #b9ebcf;
    color: #126b45;
}

.iqm-badge.is-earned > span {
    background: #24a768;
    color: #fff;
}

.iqm-badge.is-locked {
    background: #f8fafc;
    color: var(--iqm-muted);
}

.iqm-badge.is-locked > span {
    background: #e2e8f0;
    color: #94a3b8;
}

.iqm-improvement {
    color: #475569;
    font-size: .8rem;
    margin-bottom: 0;
}

.iqm-quiz-grid,
.iqm-category-grid {
    display: grid;
    gap: .85rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.iqm-quiz-card,
.iqm-category-card {
    background: var(--iqm-surface);
    border: 1px solid var(--iqm-border);
    border-radius: var(--iqm-radius-sm);
    display: flex;
    flex-direction: column;
    gap: .65rem;
    min-height: 205px;
    padding: 1rem;
    text-decoration: none;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.iqm-quiz-card:hover,
.iqm-quiz-card:focus-within,
.iqm-category-card:hover,
.iqm-category-card:focus-within {
    border-color: #9bb9f4;
    box-shadow: 0 8px 20px rgba(47, 102, 208, .1);
    transform: translateY(-2px);
}

.iqm-quiz-card h3,
.iqm-category-card strong {
    margin-bottom: 0;
    overflow-wrap: anywhere;
}

.iqm-quiz-card p {
    color: var(--iqm-muted);
    font-size: .82rem;
    line-height: 1.55;
    margin: 0;
    min-height: 2.5rem;
}

.iqm-quiz-card .iqm-button {
    align-self: flex-start;
    margin-top: auto;
}

.iqm-quiz-card-locked {
    background: #fffdf7;
}

.iqm-quiz-card-course-locked .iqm-notice {
    font-size: .78rem;
    line-height: 1.5;
    margin: .2rem 0 0;
}

.iqm-meta {
    color: var(--iqm-muted);
    display: flex;
    flex-wrap: wrap;
    font-size: .78rem;
    gap: .55rem;
}

.iqm-button {
    background: var(--iqm-primary);
    border: 1px solid var(--iqm-primary);
    border-radius: 8px;
    color: #fff;
    cursor: pointer;
    display: inline-block;
    font: inherit;
    font-size: .82rem;
    font-weight: 800;
    line-height: 1.2;
    padding: .65rem .9rem;
    text-decoration: none;
    transition: background .2s ease, border-color .2s ease, transform .2s ease;
}

.iqm-button:hover,
.iqm-button:focus {
    background: var(--iqm-primary-dark);
    border-color: var(--iqm-primary-dark);
    color: #fff;
}

.iqm-button:active {
    transform: translateY(1px);
}

.iqm-button-secondary {
    background: #fff;
    border-color: #b9c8df;
    color: var(--iqm-primary-dark);
}

.iqm-button-secondary:hover,
.iqm-button-secondary:focus {
    background: var(--iqm-primary-soft);
    border-color: #8eabe0;
    color: var(--iqm-primary-dark);
}

.iqm-filter,
.iqm-inline-search {
    align-items: end;
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    margin-bottom: 1rem;
}

.iqm-filter label,
.iqm-inline-search label,
.iqm-option {
    display: flex;
    flex-direction: column;
    font-weight: 700;
    gap: .35rem;
}

.iqm-inline-search label {
    flex: 0 0 auto;
}

.iqm-filter input,
.iqm-filter select,
.iqm-inline-search input,
.iqm-option input {
    font: inherit;
}

.iqm-inline-search input {
    background: #fff;
    border: 1px solid var(--iqm-border);
    border-radius: 8px;
    flex: 1;
    min-width: 260px;
    padding: .7rem .8rem;
}

.iqm-filter-count {
    color: var(--iqm-muted);
    font-size: .8rem;
    margin-bottom: .65rem;
}

.iqm-empty-filter {
    color: var(--iqm-muted);
    padding: 1rem;
    text-align: center;
}

.iqm-bank-toolbar {
    align-items: flex-start;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: 1rem;
}

.iqm-bank-toolbar p {
    margin: .35rem 0 0;
}

.iqm-practice-filters {
    background: #f8faff;
    border: 1px solid var(--iqm-border);
    border-radius: var(--iqm-radius-sm);
    display: flex;
    flex-wrap: wrap;
    gap: .55rem .8rem;
    margin: 0;
    min-width: min(100%, 430px);
    padding: .75rem .85rem;
}

.iqm-practice-filters legend {
    color: var(--iqm-text);
    font-size: .78rem;
    font-weight: 800;
    padding: 0 .25rem;
}

.iqm-practice-filters label {
    color: var(--iqm-muted);
    font-size: .78rem;
}

.iqm-table-wrap {
    overflow-x: auto;
}

.iqm-table {
    border-collapse: collapse;
    min-width: 680px;
    width: 100%;
}

.iqm-table th,
.iqm-table td {
    border-bottom: 1px solid var(--iqm-border);
    padding: .8rem .7rem;
    text-align: left;
    vertical-align: middle;
}

.iqm-table th {
    background: #f7f9fd;
    color: #344054;
    font-size: .78rem;
    font-weight: 800;
    white-space: nowrap;
}

.iqm-table tbody tr {
    transition: background .15s ease;
}

.iqm-table tbody tr:hover,
.iqm-table tbody tr.is-selected {
    background: #f7faff;
}

.iqm-question-bank-table .iqm-bank-question {
    line-height: 1.6;
}

.iqm-question-bank-table .iqm-error-count {
    background: var(--iqm-danger-soft);
    border-radius: 999px;
    color: var(--iqm-danger);
    display: inline-flex;
    font-weight: 800;
    justify-content: center;
    min-width: 2rem;
    padding: .2rem .5rem;
}

.iqm-positive {
    color: var(--iqm-success);
}

.iqm-negative {
    color: var(--iqm-danger);
}

.iqm-result-summary {
    align-items: center;
    display: flex;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.iqm-result-summary strong {
    color: var(--iqm-primary-dark);
    font-size: 2rem;
}

.iqm-review-item {
    border-top: 1px solid var(--iqm-border);
    padding: 1rem 0;
}

.iqm-review-option {
    border: 1px solid var(--iqm-border);
    border-radius: 7px;
    margin: .45rem 0;
    padding: .65rem .8rem;
}

.iqm-review-option.iqm-correct {
    background: var(--iqm-success-soft);
    border-color: #86efac;
    color: var(--iqm-success);
    font-weight: 700;
}

.iqm-review-option.iqm-selected:not(.iqm-correct) {
    background: var(--iqm-danger-soft);
    border-color: #fca5a5;
    color: var(--iqm-danger);
}

.iqm-correct-text {
    color: var(--iqm-success);
    font-weight: 700;
}

.iqm-wrong-text {
    color: var(--iqm-danger);
    font-weight: 700;
}

.iqm-explanation {
    background: #f8fafc;
    border-inline-start: 4px solid #93c5fd;
    padding: .75rem 1rem;
}

.iqm-question[dir="ltr"] legend,
.iqm-question[dir="ltr"] .iqm-option,
.iqm-review-item h3[dir="ltr"],
.iqm-review-option[dir="ltr"],
.iqm-bank-item h3[dir="ltr"],
.iqm-bank-question[dir="ltr"] {
    text-align: left;
}

.iqm-question[dir="rtl"] legend,
.iqm-question[dir="rtl"] .iqm-option,
.iqm-review-item h3[dir="rtl"],
.iqm-review-option[dir="rtl"],
.iqm-bank-item h3[dir="rtl"],
.iqm-bank-question[dir="rtl"] {
    text-align: right;
}

.iqm-attempt {
    position: relative;
}

.iqm-timer {
    background: #fff7ed;
    border: 1px solid #fed7aa;
    border-radius: 8px;
    color: #9a3412;
    padding: .7rem 1rem;
    position: sticky;
    top: .5rem;
    z-index: 2;
}

.iqm-question {
    border: 1px solid var(--iqm-border);
    border-radius: var(--iqm-radius-sm);
    margin: 1rem 0;
    padding: 1rem;
}

.iqm-question legend {
    font-weight: 700;
    line-height: 1.65;
    padding: 0 .5rem;
}

.iqm-option {
    align-items: flex-start;
    background: var(--iqm-background);
    border: 1px solid transparent;
    border-radius: 8px;
    cursor: pointer;
    flex-direction: row;
    gap: .65rem;
    margin: .5rem 0;
    padding: .75rem;
}

.iqm-option:hover {
    border-color: #93c5fd;
}

.iqm-option input {
    flex: 0 0 auto;
    margin-top: .25rem;
}

.iqm-button:focus-visible,
.iqm-panel a:focus-visible,
.iqm-panel input:focus-visible,
.iqm-panel button:focus-visible {
    outline: 3px solid #f59e0b;
    outline-offset: 2px;
}

.iqm-stat-animated {
    animation: iqm-card-in .55s ease both;
}

.iqm-stat-animated:nth-child(2) { animation-delay: .06s; }
.iqm-stat-animated:nth-child(3) { animation-delay: .12s; }
.iqm-stat-animated:nth-child(4) { animation-delay: .18s; }
.iqm-stat-animated:nth-child(5) { animation-delay: .24s; }
.iqm-stat-animated:nth-child(6) { animation-delay: .30s; }

@keyframes iqm-card-in {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (min-width: 541px) and (max-width: 820px) {
    .iqm-stat-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .iqm-quiz-grid,
    .iqm-category-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .iqm-dashboard-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 540px) {
    .iqm-panel {
        border-radius: 10px;
        padding: 1rem;
    }

    .iqm-panel-heading,
    .iqm-bank-toolbar {
        flex-direction: column;
    }

    .iqm-live-indicator {
        align-self: flex-start;
    }

    .iqm-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .iqm-quiz-grid,
    .iqm-category-grid {
        grid-template-columns: 1fr;
    }

    .iqm-filter,
    .iqm-inline-search {
        align-items: stretch;
        flex-direction: column;
    }

    .iqm-inline-search input {
        min-width: 100%;
    }

    .iqm-filter .iqm-button,
    .iqm-filter button,
    .iqm-inline-search .iqm-button,
    .iqm-inline-search button {
        width: 100%;
    }

    .iqm-chart {
        min-height: 210px;
    }
}

@media print {
    .iqm-button,
    .iqm-filter,
    .iqm-timer,
    .iqm-live-indicator {
        display: none !important;
    }

    .iqm-panel {
        border: 0;
        box-shadow: none;
    }
}

/* Approved student workspace visual layer, scoped to the plugin shell. */
.iqm-student-app {
    --iqm-design-ink: #12233f;
    --iqm-design-ink-soft: #496078;
    --iqm-design-muted: #7890a5;
    --iqm-design-line: #dbe6ef;
    --iqm-design-surface: #ffffff;
    --iqm-design-canvas: #f3f7fb;
    --iqm-design-navy: #0e2342;
    --iqm-design-blue: #2463eb;
    --iqm-design-blue-dark: #1947b1;
    --iqm-design-teal: #17a99a;
    --iqm-design-teal-soft: #e6faf6;
    --iqm-design-amber: #c88418;
    --iqm-design-amber-soft: #fff6df;
    --iqm-design-red: #d94b5c;
    --iqm-design-red-soft: #fff0f2;
    --iqm-design-green: #16835a;
    --iqm-design-green-soft: #eaf9f1;
    --iqm-design-shadow: 0 18px 45px rgba(18, 35, 63, .08);
    --iqm-design-shadow-small: 0 7px 20px rgba(18, 35, 63, .07);
    --iqm-design-radius-lg: 22px;
    --iqm-design-radius-md: 15px;
    --iqm-design-radius-sm: 10px;
    background: var(--iqm-design-canvas);
    color: var(--iqm-design-ink);
    direction: ltr;
    font: 15px/1.55 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    text-align: left;
}

.iqm-student-app *,
.iqm-student-app *::before,
.iqm-student-app *::after { box-sizing: border-box; }
.iqm-student-app a { color: inherit; }
.iqm-student-app button,
.iqm-student-app input,
.iqm-student-app select { font: inherit; }
.iqm-student-app button { cursor: pointer; }
.iqm-student-app .mockup-shell { max-width: 1440px; min-height: 100vh; margin: 0 auto; display: block; }

.iqm-student-app .mockup-main { width: 100%; max-width: 1240px; min-width: 0; margin: 0 auto; padding: 26px clamp(18px, 3vw, 42px) 48px; }

.iqm-student-app .page-intro { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 24px; }
.iqm-student-app .eyebrow { margin: 0 0 6px; color: var(--iqm-design-teal); font-size: 11px; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.iqm-student-app h1,
.iqm-student-app h2,
.iqm-student-app h3 { color: var(--iqm-design-ink); margin-top: 0; }
.iqm-student-app h1 { margin-bottom: 8px; font-size: clamp(27px, 3vw, 40px); letter-spacing: -.045em; line-height: 1.08; }
.iqm-student-app h2 { margin-bottom: 4px; font-size: 20px; letter-spacing: -.025em; }
.iqm-student-app h3 { margin-bottom: 7px; font-size: 15px; }
.iqm-student-app .subtitle { margin: 0; max-width: 650px; color: var(--iqm-design-ink-soft); }
.iqm-student-app .live-pill { display: inline-flex; align-items: center; gap: 7px; padding: 7px 11px; border: 1px solid #b9ebd4; border-radius: 999px; background: var(--iqm-design-green-soft); color: var(--iqm-design-green); font-size: 12px; font-weight: 800; white-space: nowrap; }
.iqm-student-app .live-dot { width: 7px; height: 7px; border-radius: 50%; background: #2ac17b; box-shadow: 0 0 0 4px rgba(42,193,123,.14); }
.iqm-student-app .panel { border: 1px solid var(--iqm-design-line); border-radius: var(--iqm-design-radius-lg); background: var(--iqm-design-surface); box-shadow: var(--iqm-design-shadow-small); }
.iqm-student-app .panel-pad { padding: clamp(18px, 2.4vw, 28px); }
.iqm-student-app .panel-heading,
.iqm-student-app .section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 19px; }
.iqm-student-app .panel-heading p,
.iqm-student-app .section-heading p { margin: 0; color: var(--iqm-design-muted); font-size: 13px; }
.iqm-student-app .section-heading { align-items: center; }
.iqm-student-app .tag { display: inline-flex; align-items: center; padding: 4px 7px; border-radius: 6px; background: #eef4fb; color: #58708c; font-size: 10px; font-weight: 800; white-space: nowrap; }
.iqm-student-app .tag.available { background: var(--iqm-design-green-soft); color: var(--iqm-design-green); }
.iqm-student-app .tag.danger { background: var(--iqm-design-red-soft); color: var(--iqm-design-red); }
.iqm-student-app .stat-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.iqm-student-app .stat-card { position: relative; overflow: hidden; min-height: 112px; padding: 17px; border: 1px solid var(--iqm-design-line); border-radius: var(--iqm-design-radius-md); background: linear-gradient(145deg, #fff, #f8fbfd); }
.iqm-student-app .stat-card::after { content: ""; position: absolute; width: 72px; height: 72px; right: -28px; bottom: -30px; border-radius: 50%; background: var(--iqm-design-teal-soft); }
.iqm-student-app .stat-label { display: block; color: var(--iqm-design-muted); font-size: 11px; line-height: 1.35; }
.iqm-student-app .stat-value { display: block; margin: 10px 0 2px; color: var(--iqm-design-ink); font-size: 27px; font-weight: 850; letter-spacing: -.04em; }
.iqm-student-app .stat-unit { color: var(--iqm-design-muted); font-size: 11px; }
.iqm-student-app .progress-block { margin-top: 18px; }
.iqm-student-app .progress-meta { display: flex; justify-content: space-between; margin-bottom: 8px; color: var(--iqm-design-ink-soft); font-size: 12px; }
.iqm-student-app .progress-track { height: 9px; overflow: hidden; border-radius: 999px; background: #e7eef5; }
.iqm-student-app .progress-track span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--iqm-design-teal), #5ed6b2); }
.iqm-student-app .dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(260px, 1fr); gap: 18px; margin-top: 18px; }
.iqm-student-app .chart-card { min-height: 270px; }
.iqm-student-app .chart-wrap { position: relative; height: 190px; margin-top: 14px; overflow: hidden; border-top: 1px dashed #dfe8ef; background: repeating-linear-gradient(to bottom, transparent 0, transparent 46px, #eef3f7 47px, transparent 48px); }
.iqm-student-app .chart-line { display: block; max-width: 100%; }
.iqm-student-app .badge-list { display: grid; gap: 10px; }
.iqm-student-app .badge { display: flex; align-items: center; gap: 11px; padding: 11px 12px; border: 1px solid var(--iqm-design-line); border-radius: 12px; background: #fbfdff; }
.iqm-student-app .badge-icon { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: var(--iqm-design-teal-soft); color: var(--iqm-design-teal); font-weight: 900; }
.iqm-student-app .badge.locked .badge-icon { background: #f0f3f6; color: #a1afbc; }
.iqm-student-app .badge strong { display: block; font-size: 12px; }
.iqm-student-app .badge small { color: var(--iqm-design-muted); font-size: 10px; }
.iqm-student-app .quiz-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.iqm-student-app .quiz-card { display: flex; min-height: 225px; flex-direction: column; padding: 17px; border: 1px solid var(--iqm-design-line); border-radius: var(--iqm-design-radius-md); background: var(--iqm-design-surface); box-shadow: 0 5px 14px rgba(18,35,63,.045); }
.iqm-student-app .quiz-card-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 12px; }
.iqm-student-app .quiz-category { color: var(--iqm-design-muted); font-size: 11px; }
.iqm-student-app .quiz-state { display: inline-flex; align-items: center; gap: 5px; color: var(--iqm-design-muted); font-size: 10px; font-weight: 800; }
.iqm-student-app .quiz-state.available { color: var(--iqm-design-green); }
.iqm-student-app .quiz-state.locked { color: var(--iqm-design-amber); }
.iqm-student-app .state-dot,
.iqm-student-app .status-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.iqm-student-app .quiz-card h3 { margin-bottom: 8px; font-size: 15px; }
.iqm-student-app .quiz-card p { min-height: 42px; margin-bottom: 13px; color: var(--iqm-design-ink-soft); font-size: 12px; }
.iqm-student-app .quiz-card-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; color: var(--iqm-design-muted); font-size: 11px; }
.iqm-student-app .quiz-card-meta span + span::before { content: "·"; padding-right: 6px; }
.iqm-student-app .quiz-card-footer { display: flex; gap: 8px; margin-top: auto; }
.iqm-student-app .quiz-card .button,
.iqm-student-app .quiz-card .iqm-button { margin-top: auto; }
.iqm-student-app .iqm-quiz-card-course-locked { border-color: #f2dfae; background: linear-gradient(180deg, #fff, #fffcf3); }
.iqm-student-app .iqm-quiz-card-course-locked .iqm-notice { margin-bottom: 12px; font-size: 11px; line-height: 1.45; }
.iqm-student-app .button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 39px; padding: 9px 15px; border: 1px solid var(--iqm-design-blue); border-radius: 9px; background: var(--iqm-design-blue); color: white; font-size: 12px; font-weight: 800; text-decoration: none; transition: .2s ease; }
.iqm-student-app .button:hover,
.iqm-student-app .button:focus { border-color: var(--iqm-design-blue-dark); background: var(--iqm-design-blue-dark); color: #fff; }
.iqm-student-app .button.secondary { border-color: var(--iqm-design-line); background: white; color: var(--iqm-design-ink-soft); }
.iqm-student-app .button.full { width: 100%; }
.iqm-student-app .bank-toolbar,
.iqm-student-app .results-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; margin-bottom: 18px; }
.iqm-student-app .bank-toolbar > div { color: var(--iqm-design-ink-soft); font-size: 12px; }
.iqm-student-app .bank-toolbar > div strong { color: var(--iqm-design-ink); font-size: 14px; }
.iqm-student-app .practice-panel { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 0; padding: 15px 17px; border: 1px solid #cfe8e4; border-radius: var(--iqm-design-radius-md); background: linear-gradient(120deg, #f2fcfa, #fbffff); }
.iqm-student-app .filter-box { min-width: min(100%, 430px); margin: 0; padding: 10px 12px; border: 1px solid var(--iqm-design-line); border-radius: var(--iqm-design-radius-sm); background: #fbfdff; }
.iqm-student-app .filter-box legend { padding: 0 4px; color: var(--iqm-design-ink-soft); font-size: 11px; font-weight: 800; }
.iqm-student-app .filter-options { display: flex; flex-wrap: wrap; gap: 7px 12px; }
.iqm-student-app .filter-option { display: inline-flex; align-items: center; gap: 6px; color: var(--iqm-design-ink-soft); font-size: 11px; }
.iqm-student-app .filter-option input { accent-color: var(--iqm-design-blue); }
.iqm-student-app .filter-box small { display: block; margin-top: 6px; color: var(--iqm-design-muted); font-size: 10px; }
.iqm-student-app .table-wrap { overflow-x: auto; border: 1px solid var(--iqm-design-line); border-radius: var(--iqm-design-radius-md); background: white; }
.iqm-student-app table { width: 100%; min-width: 720px; border-collapse: collapse; }
.iqm-student-app th,
.iqm-student-app td { padding: 15px 17px; border-bottom: 1px solid #e8eef3; text-align: left; vertical-align: middle; }
.iqm-student-app th { background: #f7fafc; color: var(--iqm-design-ink-soft); font-size: 11px; font-weight: 850; letter-spacing: .03em; text-transform: uppercase; }
.iqm-student-app td { color: var(--iqm-design-ink-soft); font-size: 13px; }
.iqm-student-app tbody tr:last-child td { border-bottom: 0; }
.iqm-student-app tbody tr:hover td { background: #fbfdff; }
.iqm-student-app .question-cell,
.iqm-student-app .iqm-bank-question { max-width: 420px; color: var(--iqm-design-ink); font-weight: 700; }
.iqm-student-app .question-cell[dir="rtl"],
.iqm-student-app .iqm-bank-question[dir="rtl"] { text-align: right; }
.iqm-student-app .error-pill { display: inline-flex; min-width: 28px; justify-content: center; padding: 5px 8px; border-radius: 999px; background: var(--iqm-design-red-soft); color: var(--iqm-design-red); font-weight: 900; }
.iqm-student-app .search-box { display: flex; align-items: center; gap: 9px; min-width: min(100%, 420px); padding: 0 12px; border: 1px solid var(--iqm-design-line); border-radius: 10px; background: white; }
.iqm-student-app .search-icon { color: var(--iqm-design-muted); font-size: 20px; line-height: 1; }
.iqm-student-app .search-box input { width: 100%; padding: 11px 0; border: 0; outline: 0; color: var(--iqm-design-ink); background: transparent; }
.iqm-student-app .result-count { color: var(--iqm-design-muted); font-size: 12px; white-space: nowrap; }
.iqm-student-app .status-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 8px; border-radius: 7px; font-size: 11px; font-weight: 850; }
.iqm-student-app .status-chip.passed { background: var(--iqm-design-green-soft); color: var(--iqm-design-green); }
.iqm-student-app .status-chip.failed { background: var(--iqm-design-red-soft); color: var(--iqm-design-red); }
.iqm-student-app .status-chip.timed-out,
.iqm-student-app .status-chip.hidden { background: var(--iqm-design-amber-soft); color: var(--iqm-design-amber); }
.iqm-student-app .review-link { color: var(--iqm-design-blue); font-weight: 800; text-decoration: none; }
.iqm-student-app .muted { color: var(--iqm-design-muted); font-size: 12px; }
.iqm-student-app .footer-note { margin-top: 28px; color: var(--iqm-design-muted); font-size: 11px; text-align: center; }
.iqm-student-app .screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

@media (max-width: 1120px) {
    .iqm-student-app .mockup-shell { display: block; }
    .iqm-student-app .stat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .iqm-student-app .quiz-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
    .iqm-student-app .mockup-shell { display: block; }
    .iqm-student-app .mockup-main { padding: 22px 16px 34px; }
    .iqm-student-app .dashboard-grid { grid-template-columns: 1fr; }
    .iqm-student-app .quiz-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 540px) {
    .iqm-student-app .page-intro { align-items: flex-start; flex-direction: column; }
    .iqm-student-app .stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .iqm-student-app .quiz-grid { grid-template-columns: 1fr; }
    .iqm-student-app .practice-panel { align-items: stretch; flex-direction: column; }
    .iqm-student-app .practice-panel .button,
    .iqm-student-app .practice-panel .iqm-button { width: 100%; }
    .iqm-student-app .panel-pad { padding: 17px; }
}
