/*
 * V43 public compatibility layer.
 *
 * The public visual language is intentionally the V42 interface.  This file
 * only styles NEW V43 application components (account, documents, assessment
 * state) and must not redefine the V42 header, navigation, typography, button
 * or marketing layout.
 */
.panel{width:min(var(--container),calc(100% - 2rem));margin:0 auto 1.25rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:1.4rem;box-shadow:0 8px 24px rgba(16,37,52,.04)}
.narrow-card{max-width:620px;margin:0 auto}
.help,.muted{color:var(--muted);font-size:.94rem}
.notice{padding:1rem 1.1rem;border-radius:16px;margin:0 0 1rem;font-weight:600;background:rgba(31,108,71,.08);color:var(--success);border:1px solid rgba(31,108,71,.22)}
.notice.error{background:rgba(168,53,37,.08);color:var(--danger);border-color:rgba(168,53,37,.18)}
.notice.warning{background:#fff7e2;color:#765315;border-color:#ead69e}
.action-row{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap;margin-top:1rem}
.action-row form{margin:0}
.btn.ghost,.btn.secondary{background:#fff;color:var(--accent);border:1px solid var(--line)}
.btn.small{padding:.55rem .8rem;border-radius:12px;font-size:.88rem}
.wide{grid-column:1/-1}
.checkbox-label{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:.65rem!important;font-weight:500}
.checkbox-label input{width:auto;margin-top:.35rem}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem}
.metric{font-size:1.8rem;font-weight:800;color:var(--accent)}
.split-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px;background:#fff}
.data-table{width:100%;border-collapse:collapse;min-width:760px}
.data-table th,.data-table td{padding:.8rem .9rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.data-table th{background:var(--surface-soft);font-size:.9rem}
.badge{display:inline-flex;align-items:center;padding:.25rem .55rem;border-radius:999px;background:#edf1ef;color:#315548;font-size:.8rem;font-weight:700}
.badge.ok{background:#e3f2e9;color:#1f6c47}.badge.warn{background:#fff2d7;color:#7b5510}.badge.bad{background:#f8e2df;color:#8f2b1b}
details.student-group,details.topic-material-box{border:1px solid var(--line);border-radius:16px;background:#fff;padding:.75rem 1rem;margin:.8rem 0}
details.student-group>summary,details.topic-material-box>summary{cursor:pointer;font-weight:700}
.document-row,.doc-row{display:grid;grid-template-columns:minmax(220px,1fr) auto auto auto;gap:.6rem;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--line)}
.assessment-question{background:#fff;border:1px solid var(--line);border-radius:22px;padding:1.4rem;box-shadow:var(--shadow)}
.assessment-options{display:grid;gap:.7rem;margin:1rem 0}
.assessment-options label{display:flex;gap:.7rem;align-items:flex-start;padding:.8rem 1rem;border:1px solid var(--line);border-radius:14px;background:#fff}
.assessment-options input{width:auto;margin-top:.25rem}
.assessment-nav{display:flex;gap:.7rem;align-items:center;margin-top:1.2rem}.assessment-nav .grow{flex:1}
.assessment-image{max-width:100%;max-height:330px;margin:1rem auto;object-fit:contain}
.progress-track{height:8px;background:#e9e5df;border-radius:999px;overflow:hidden;margin:0 0 1.1rem}.progress-track span{display:block;height:100%;background:var(--accent)}
.drag-list{list-style:none;padding:0;display:grid;gap:.55rem}.drag-list li{padding:.75rem 1rem;border:1px solid var(--line);border-radius:14px;background:#fff;cursor:grab}
.matching-list{display:grid;gap:.8rem}.matching-list label{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1fr);gap:.8rem;align-items:center}
.matching-list select,select{width:100%;padding:.9rem 1rem;border-radius:16px;border:1px solid var(--line);background:#fff;font:inherit;color:var(--text)}
.form-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media(max-width:760px){.document-row,.doc-row{grid-template-columns:1fr}.matching-list label{grid-template-columns:1fr}.panel{padding:1rem}.split-heading{display:block}}
