.app-shell {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  min-height: 100vh;
}

body[data-font-scale="compact"] {
  font-size: 14px;
}

body[data-font-scale="large"] {
  font-size: 18px;
}

body[data-density="compact"] .qyem-card-body,
body[data-density="compact"] .content {
  gap: var(--qyem-space-3);
  padding: var(--qyem-space-3);
}

body[data-theme="light"] {
  --qyem-background: #fbfcff;
  --qyem-surface-soft: #f3f6fb;
}

body[data-theme="contrast"] {
  --qyem-background: #f2f4f8;
  --qyem-text: #050816;
  --qyem-border: #9aa8bd;
}

.sidebar {
  background: var(--qyem-navy);
  color: #fff;
  display: flex;
  flex-direction: column;
  gap: var(--qyem-space-4);
  padding: var(--qyem-space-5);
  position: sticky;
  top: 0;
  height: 100vh;
}

.brand {
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  padding-bottom: var(--qyem-space-4);
}

.brand-mark {
  align-items: center;
  display: flex;
  gap: var(--qyem-space-3);
}

.brand-logo {
  align-items: center;
  background: #fff;
  border-radius: var(--qyem-radius-md);
  color: var(--qyem-primary);
  display: inline-flex;
  font-weight: 900;
  height: 42px;
  justify-content: center;
  width: 42px;
}

.qiyam-logo {
  align-items: center;
  display: inline-flex;
  max-width: 100%;
}

.qiyam-logo img {
  display: block;
  height: 46px;
  max-width: 180px;
  object-fit: contain;
  width: auto;
}

.auth-hero .qiyam-logo,
.home-hero .qiyam-logo {
  margin-bottom: var(--qyem-space-4);
}

.brand .qiyam-logo img {
  height: 38px;
  max-width: 130px;
}

.auth-hero .qiyam-logo img,
.home-hero .qiyam-logo img {
  height: 58px;
  max-width: 220px;
}

.home-hero {
  align-items: end;
  background: var(--qyem-navy);
  border-radius: var(--qyem-radius-lg);
  color: #fff;
  display: flex;
  min-height: 260px;
  overflow: hidden;
  padding: var(--qyem-space-7);
  position: relative;
}

.home-hero > div {
  max-width: 760px;
}

.home-hero h2 {
  font-size: clamp(2rem, 4vw, 3.8rem);
  line-height: 1.2;
  margin: 0 0 var(--qyem-space-3);
}

.home-hero p {
  color: rgba(255, 255, 255, 0.82);
  font-size: 1.08rem;
  line-height: 1.8;
  margin: 0;
}

.tab-strip {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--qyem-space-2);
}

.tab-button {
  background: var(--qyem-surface);
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-md);
  color: var(--qyem-muted);
  cursor: pointer;
  font-weight: 800;
  min-height: 40px;
  padding: 0 var(--qyem-space-4);
}

.tab-button.active,
.tab-button:hover {
  background: var(--qyem-primary);
  border-color: var(--qyem-primary);
  color: #fff;
}

.report-subtabs {
  margin-bottom: var(--qyem-space-4);
}

.subtab-strip {
  border-bottom: 1px solid var(--qyem-border);
  margin: var(--qyem-space-3) 0 var(--qyem-space-4);
  padding-bottom: var(--qyem-space-3);
}

.subtab-strip .tab-button {
  min-height: 34px;
  padding-inline: var(--qyem-space-3);
}

.rich-text {
  line-height: 1.9;
}

.rich-text h3 {
  color: var(--qyem-navy);
  margin: 0 0 var(--qyem-space-3);
}

.rich-text p {
  color: var(--qyem-text);
  margin: 0 0 var(--qyem-space-3);
}

.vision-text {
  color: var(--qyem-navy);
  font-size: clamp(1.45rem, 3vw, 2.4rem);
  font-weight: 900;
  line-height: 1.7;
}

.model-figure {
  align-items: center;
  background: #fff;
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-md);
  display: flex;
  justify-content: center;
  margin: var(--qyem-space-4) 0 0;
  overflow: hidden;
  padding: var(--qyem-space-4);
}

.model-figure img {
  display: block;
  height: auto;
  max-height: min(78vh, 920px);
  max-width: 100%;
  object-fit: contain;
  width: auto;
}

.home-principle,
.flow-item,
.tool-item {
  background: var(--qyem-surface-soft);
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-md);
  padding: var(--qyem-space-4);
}

.home-principle strong,
.flow-item strong {
  color: var(--qyem-navy);
  display: block;
  margin-bottom: var(--qyem-space-2);
}

.home-principle p,
.flow-item span {
  color: var(--qyem-muted);
  line-height: 1.8;
}

.infographic-flow {
  display: grid;
  gap: var(--qyem-space-3);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: var(--qyem-space-4) 0;
}

.flow-item {
  border-top: 4px solid var(--qyem-blue);
  min-height: 140px;
}

.tool-grid {
  display: grid;
  gap: var(--qyem-space-3);
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.tool-item {
  align-items: center;
  display: flex;
  gap: var(--qyem-space-3);
}

.tool-item strong {
  align-items: center;
  background: var(--qyem-primary);
  border-radius: 50%;
  color: #fff;
  display: inline-flex;
  flex: 0 0 34px;
  height: 34px;
  justify-content: center;
  width: 34px;
}

.tool-item span {
  color: var(--qyem-text);
  font-weight: 700;
}

.home-compact .qyem-card-body {
  gap: var(--qyem-space-3);
}

.home-compact .vision-text {
  font-size: 1.45rem;
}

.home-compact .home-principle,
.home-compact .flow-item,
.home-compact .tool-item {
  padding: var(--qyem-space-3);
}

.brand h1 {
  font-size: 1rem;
  line-height: 1.4;
  margin: 0;
}

.brand p {
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.82rem;
  margin: var(--qyem-space-2) 0 0;
}

.nav {
  display: grid;
  gap: var(--qyem-space-2);
}

.nav-button {
  background: transparent;
  border: 0;
  border-radius: var(--qyem-radius-md);
  color: rgba(255, 255, 255, 0.82);
  cursor: pointer;
  min-height: 42px;
  padding: 0 var(--qyem-space-3);
  text-align: right;
}

.nav-button:hover,
.nav-button.active {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}

.sidebar-footer {
  margin-top: auto;
}

.user-chip {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: var(--qyem-radius-md);
  padding: var(--qyem-space-3);
}

.user-chip strong,
.user-chip span {
  display: block;
}

.user-chip span {
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.82rem;
  margin-top: var(--qyem-space-1);
}

.main {
  min-width: 0;
}

.topbar {
  align-items: center;
  background: rgba(246, 248, 251, 0.92);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--qyem-border);
  display: flex;
  gap: var(--qyem-space-4);
  justify-content: space-between;
  min-height: 72px;
  padding: 0 var(--qyem-space-6);
  position: sticky;
  top: 0;
  z-index: 5;
}

.topbar-actions {
  align-items: center;
  display: flex;
  gap: var(--qyem-space-3);
}

.content {
  display: grid;
  gap: var(--qyem-space-5);
  padding: var(--qyem-space-6);
}

.page-header {
  align-items: end;
  display: flex;
  gap: var(--qyem-space-4);
  justify-content: space-between;
}

.page-header h2 {
  color: var(--qyem-navy);
  font-size: clamp(1.35rem, 2vw, 2rem);
  margin: 0;
}

.page-header p {
  color: var(--qyem-muted);
  margin: var(--qyem-space-2) 0 0;
}

.filters {
  display: grid;
  gap: var(--qyem-space-3);
  grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.compact-field {
  min-width: 220px;
}

.grid {
  display: grid;
  gap: var(--qyem-space-4);
}

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

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

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

.metric-card {
  display: grid;
  gap: var(--qyem-space-2);
}

.metric-label {
  color: var(--qyem-muted);
  font-size: 0.86rem;
  font-weight: 700;
}

.metric-value {
  color: var(--qyem-navy);
  font-size: 1.8rem;
  font-weight: 900;
}

.metric-note {
  color: var(--qyem-muted);
  font-size: 0.82rem;
}

.mini-metric {
  background: var(--qyem-surface-soft);
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-md);
  display: grid;
  gap: var(--qyem-space-2);
  min-height: 112px;
  padding: var(--qyem-space-4);
}

.mini-metric .metric-value {
  font-size: 1.55rem;
}

.executive-summary .metric-card {
  min-height: 118px;
}

.executive-decision-grid {
  margin-top: var(--qyem-space-4);
}

.summary-panel {
  background: var(--qyem-surface-soft);
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-md);
  display: grid;
  gap: var(--qyem-space-3);
  padding: var(--qyem-space-4);
}

.summary-panel h4 {
  color: var(--qyem-navy);
  margin: 0;
}

.executive-alerts {
  color: var(--qyem-text);
  display: grid;
  gap: var(--qyem-space-2);
  line-height: 1.7;
  margin: 0;
  padding-inline-start: var(--qyem-space-5);
}

.main-company-gauge {
  border-color: rgba(17, 103, 177, 0.28);
}

.executive-landing {
  border-color: rgba(17, 103, 177, 0.34);
}

.executive-kpi-layout {
  grid-template-columns: minmax(190px, 0.75fr) minmax(480px, 1.9fr) minmax(190px, 0.75fr);
}

.executive-main-gauge .gauge-card-main {
  min-height: 520px;
}

.executive-main-gauge .gauge-card-main .gauge {
  max-width: 430px;
}

.executive-status-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--qyem-space-2);
  justify-content: center;
  margin-top: var(--qyem-space-3);
}

.company-status-card {
  border-inline-start: 6px solid var(--qyem-primary);
}

.company-status-card p {
  color: var(--qyem-text);
  font-weight: 800;
  margin: 0;
}

.company-status-success {
  border-inline-start-color: var(--qyem-success);
}

.company-status-warning {
  border-inline-start-color: var(--qyem-warning);
}

.company-status-danger {
  border-inline-start-color: var(--qyem-danger);
}

.executive-kpi-grid .qyem-card {
  min-height: 148px;
}

.main-gauge-layout {
  align-items: stretch;
  display: grid;
  gap: var(--qyem-space-4);
  grid-template-columns: minmax(180px, 0.75fr) minmax(340px, 1.5fr) minmax(180px, 0.75fr);
}

.main-gauge-side {
  align-content: center;
  display: grid;
  gap: var(--qyem-space-4);
}

.main-gauge-center {
  min-width: 0;
}

.report-executive-kpi {
  border-color: rgba(17, 103, 177, 0.32);
}

.report-kpi-layout {
  align-items: stretch;
  display: grid;
  gap: var(--qyem-space-5);
  grid-template-columns: minmax(190px, 0.8fr) minmax(420px, 1.7fr) minmax(190px, 0.8fr);
}

.report-kpi-side {
  align-content: center;
  display: grid;
  gap: var(--qyem-space-4);
}

.report-main-gauge {
  display: grid;
  gap: var(--qyem-space-3);
  min-width: 0;
}

.report-main-title {
  display: grid;
  gap: var(--qyem-space-1);
  text-align: center;
}

.report-main-title h3 {
  color: var(--qyem-navy);
  font-size: 1.75rem;
  margin: 0;
}

.report-main-title span {
  color: var(--qyem-muted);
  font-weight: 800;
}

.complex-report-picker {
  display: grid;
  gap: var(--qyem-space-3);
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.complex-report-option {
  background: var(--qyem-surface-soft);
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-md);
  color: var(--qyem-text);
  cursor: pointer;
  display: grid;
  gap: var(--qyem-space-2);
  min-height: 116px;
  padding: var(--qyem-space-4);
  text-align: right;
}

.complex-report-option strong,
.complex-report-option span,
.complex-report-option em {
  display: block;
}

.complex-report-option strong {
  color: var(--qyem-navy);
  font-size: 1rem;
}

.complex-report-option span {
  color: var(--qyem-muted);
  font-size: 0.86rem;
  font-weight: 700;
}

.complex-report-option em {
  color: var(--qyem-primary);
  font-style: normal;
  font-weight: 900;
}

.complex-report-option.active,
.complex-report-option:hover {
  background: #fff;
  border-color: var(--qyem-primary);
  box-shadow: var(--qyem-shadow-sm);
}

.full-report-card .grid {
  margin-bottom: var(--qyem-space-4);
}

.full-report-header {
  align-items: center;
  border-bottom: 1px solid var(--qyem-border);
  display: flex;
  gap: var(--qyem-space-4);
  justify-content: space-between;
  margin-bottom: var(--qyem-space-4);
  padding-bottom: var(--qyem-space-4);
}

.full-report-header h3 {
  color: var(--qyem-navy);
  font-size: 1.45rem;
  margin: var(--qyem-space-1) 0 0;
}

.full-report-domain-strip {
  display: grid;
  gap: var(--qyem-space-3);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: var(--qyem-space-4);
}

.full-report-domain-strip article {
  background: var(--qyem-surface-soft);
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-md);
  padding: var(--qyem-space-4);
}

.full-report-domain-strip span {
  color: var(--qyem-muted);
  display: block;
  font-size: 0.86rem;
  font-weight: 800;
  margin-bottom: var(--qyem-space-2);
}

.full-report-domain-strip strong {
  color: var(--qyem-navy);
  font-size: 1.35rem;
}

.pdf-viewer-shell {
  background: #f8fafc;
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-md);
  height: min(78vh, 920px);
  overflow: hidden;
}

.pdf-viewer-shell object,
.pdf-viewer-shell iframe {
  border: 0;
  display: block;
  height: 100%;
  width: 100%;
}

.report-file-manager {
  align-items: start;
}

.report-file-list {
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-md);
  display: grid;
  max-height: 640px;
  overflow: auto;
}

.report-file-row {
  align-items: center;
  background: #fff;
  border-bottom: 1px solid var(--qyem-border);
  display: grid;
  gap: var(--qyem-space-3);
  grid-template-columns: minmax(0, 1fr) auto;
  padding: var(--qyem-space-3);
}

.report-file-row:last-child {
  border-bottom: 0;
}

.report-file-row strong,
.report-file-row span {
  display: block;
}

.report-upload-button {
  cursor: pointer;
  overflow: hidden;
  position: relative;
}

.report-upload-button input {
  inline-size: 1px;
  opacity: 0;
  position: absolute;
}

.compact-table {
  font-size: 0.86rem;
}

.compact-table th,
.compact-table td {
  padding-block: var(--qyem-space-2);
}

.panel-title {
  align-items: center;
  display: flex;
  gap: var(--qyem-space-3);
  justify-content: space-between;
  margin-bottom: var(--qyem-space-4);
}

.panel-title h3 {
  color: var(--qyem-navy);
  font-size: 1rem;
  margin: 0;
}

.progress {
  background: #edf2f7;
  border-radius: 999px;
  height: 10px;
  overflow: hidden;
}

.progress span {
  background: var(--qyem-blue);
  display: block;
  height: 100%;
}

.bar-list {
  display: grid;
  gap: var(--qyem-space-3);
}

.bar-row {
  display: grid;
  gap: var(--qyem-space-2);
}

.bar-meta {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.gauge-grid,
.donut-grid {
  display: grid;
  gap: var(--qyem-space-4);
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.donut-wrap {
  align-items: center;
  display: grid;
  gap: var(--qyem-space-3);
  justify-items: center;
  text-align: center;
}

.gauge-card {
  background: var(--qyem-surface);
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-md);
  box-shadow: var(--qyem-shadow-sm);
  display: grid;
  gap: var(--qyem-space-2);
  min-height: 265px;
  padding: var(--qyem-space-4);
}

.gauge-card-main {
  border-color: rgba(17, 103, 177, 0.32);
  box-shadow: var(--qyem-shadow-md);
  min-height: 380px;
  padding: var(--qyem-space-5);
}

.gauge-card-main .gauge {
  max-width: 420px;
}

.gauge-card-main .gauge-card-header strong {
  color: var(--qyem-primary);
  font-size: 2.6rem;
}

.gauge-card-main .gauge-card-header span {
  font-size: 1.35rem;
}

.gauge-card-header {
  align-items: flex-start;
  display: grid;
  gap: var(--qyem-space-3);
  grid-template-columns: auto minmax(0, 1fr) 28px;
}

.gauge-card-header strong {
  color: var(--qyem-text);
  font-size: 1.55rem;
  font-weight: 900;
  line-height: 1.2;
}

.gauge-card-header span {
  color: var(--qyem-text);
  font-size: 1.12rem;
  font-weight: 800;
  line-height: 1.45;
  text-align: right;
}

.gauge-card-header i {
  background:
    radial-gradient(circle at 50% 60%, var(--qyem-primary) 0 3px, transparent 4px),
    conic-gradient(from 220deg, transparent 0 24%, var(--qyem-primary) 24% 44%, transparent 44%);
  border-radius: 50%;
  box-shadow: 0 8px 18px rgba(16, 49, 132, 0.12);
  height: 28px;
  opacity: 0.95;
  width: 28px;
}

.gauge {
  margin: 0 auto;
  max-width: 240px;
  width: 100%;
}

.gauge svg {
  display: block;
  height: auto;
  overflow: visible;
  width: 100%;
}

.gauge-track,
.gauge-progress {
  fill: none;
  stroke-linecap: round;
  stroke-width: 18;
}

.gauge-track {
  stroke: #dfe7f5;
}

.gauge-progress {
  stroke: var(--gauge-color);
}

.gauge-marker {
  stroke-linecap: round;
  stroke-width: 5;
}

.gauge-marker-baseline {
  stroke: #f59e0b;
}

.gauge-marker-target {
  stroke: var(--qyem-success);
}

.gauge-needle {
  stroke: #111827;
  stroke-linecap: round;
  stroke-width: 4;
}

.gauge-hub {
  fill: #111827;
}

.gauge-min,
.gauge-max {
  dominant-baseline: middle;
  fill: var(--qyem-muted);
  font-family: var(--qyem-font-ar);
  font-size: 12px;
  font-weight: 800;
}

.gauge-scale {
  display: grid;
  gap: var(--qyem-space-2);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gauge-scale span {
  align-items: center;
  background: var(--qyem-surface-soft);
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-sm);
  color: var(--qyem-muted);
  display: flex;
  font-size: 0.76rem;
  font-weight: 800;
  gap: var(--qyem-space-1);
  justify-content: center;
  min-height: 30px;
  padding: 0 var(--qyem-space-2);
  white-space: nowrap;
}

.gauge-scale b {
  color: var(--qyem-text);
}

.gauge-details {
  display: grid;
  gap: var(--qyem-space-2);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gauge-details div {
  background: var(--qyem-surface-soft);
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-sm);
  display: grid;
  gap: 2px;
  min-height: 54px;
  padding: var(--qyem-space-2);
}

.gauge-details span {
  color: var(--qyem-muted);
  font-size: 0.72rem;
  font-weight: 800;
}

.gauge-details strong {
  color: var(--qyem-navy);
  font-size: 0.88rem;
  font-weight: 900;
  line-height: 1.35;
}

.domain-highlights {
  margin-bottom: var(--qyem-space-4);
}

.trend-indicator {
  background: rgba(17, 103, 177, 0.06);
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-sm);
  display: grid;
  gap: 2px;
  margin-top: var(--qyem-space-2);
  padding: var(--qyem-space-2);
}

.trend-indicator strong {
  color: var(--qyem-navy);
  font-size: 0.95rem;
  font-weight: 900;
}

.trend-indicator span {
  color: var(--qyem-muted);
  display: block;
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1.45;
}

.trend-success {
  background: rgba(4, 120, 87, 0.08);
  border-color: rgba(4, 120, 87, 0.22);
}

.trend-danger {
  background: rgba(185, 28, 28, 0.08);
  border-color: rgba(185, 28, 28, 0.22);
}

.trend-warning {
  background: rgba(245, 158, 11, 0.10);
  border-color: rgba(245, 158, 11, 0.26);
}

.domain-ranking-section {
  margin-top: var(--qyem-space-5);
}

.domain-rank-grid {
  display: grid;
  gap: var(--qyem-space-4);
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.domain-rank-card {
  align-items: start;
  background: var(--qyem-surface-soft);
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-md);
  display: grid;
  gap: var(--qyem-space-3);
  grid-template-columns: 38px minmax(0, 1fr);
  min-height: 168px;
  padding: var(--qyem-space-4);
}

.domain-rank-card strong,
.domain-rank-card b {
  color: var(--qyem-navy);
  display: block;
  font-size: 1.05rem;
  font-weight: 900;
  margin-top: var(--qyem-space-1);
}

.rank-icon {
  align-items: center;
  background: var(--qyem-primary);
  border-radius: 50%;
  color: #fff;
  display: inline-flex;
  font-size: 1.1rem;
  font-weight: 900;
  height: 38px;
  justify-content: center;
  width: 38px;
}

.domain-rank-success .rank-icon {
  background: var(--qyem-success);
}

.domain-rank-warning .rank-icon {
  background: var(--qyem-warning);
}

.domain-rank-danger .rank-icon {
  background: var(--qyem-danger);
}

.analysis-stack {
  display: grid;
  gap: var(--qyem-space-5);
}

.practice-grid {
  display: grid;
  gap: var(--qyem-space-4);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.practice-card {
  background: var(--qyem-surface-soft);
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-md);
  display: grid;
  gap: var(--qyem-space-2);
  min-height: 150px;
  padding: var(--qyem-space-4);
}

.practice-card strong {
  color: var(--qyem-navy);
  font-size: 1.05rem;
  font-weight: 900;
}

.practice-card b {
  color: var(--qyem-primary);
  font-size: 1.65rem;
  font-weight: 900;
}

.practice-card span,
.practice-card small {
  color: var(--qyem-muted);
  font-weight: 700;
}

.school-gauge-grid {
  display: grid;
  gap: var(--qyem-space-4);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.school-gauge-grid .gauge-card {
  min-height: 360px;
}

.school-bars-chart {
  align-items: end;
  display: grid;
  gap: var(--qyem-space-3);
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  min-height: 420px;
  overflow-x: auto;
  padding-block: var(--qyem-space-3);
}

.school-bar-item {
  align-items: center;
  display: grid;
  gap: var(--qyem-space-2);
  grid-template-rows: auto 260px auto auto;
  min-width: 120px;
  text-align: center;
}

.school-bar-item strong {
  color: var(--qyem-navy);
  font-size: 1rem;
  font-weight: 900;
}

.school-bar-item small {
  color: var(--qyem-text);
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1.45;
}

.school-bar-item em {
  color: var(--qyem-muted);
  font-size: 0.72rem;
  font-style: normal;
  font-weight: 800;
}

.school-bar-track {
  align-items: end;
  background: #edf2f7;
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-md);
  display: flex;
  height: 100%;
  justify-content: center;
  overflow: hidden;
  position: relative;
  width: 100%;
}

.school-bar-track span {
  background: var(--qyem-primary);
  border-radius: var(--qyem-radius-md) var(--qyem-radius-md) 0 0;
  display: block;
  width: 58%;
}

.school-bar-track i {
  border-top: 3px solid var(--qyem-success);
  left: 12%;
  position: absolute;
  right: 12%;
}

.complex-domain-gauge-list,
.complex-domain-bars-list {
  display: grid;
  gap: var(--qyem-space-5);
}

.complex-domain-block {
  background: var(--qyem-surface-soft);
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-md);
  padding: var(--qyem-space-4);
}

.complex-domain-gauge-grid {
  display: grid;
  gap: var(--qyem-space-4);
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.complex-domain-gauge-grid .gauge-card {
  min-height: 350px;
}

.complex-domain-bars-chart {
  align-items: end;
  display: grid;
  gap: var(--qyem-space-4);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  min-height: 340px;
}

.domain-bar-item {
  align-items: center;
  display: grid;
  gap: var(--qyem-space-2);
  grid-template-rows: auto 230px auto auto;
  min-width: 0;
  text-align: center;
}

.domain-bar-item strong {
  color: var(--qyem-navy);
  font-size: 1.05rem;
  font-weight: 900;
}

.domain-bar-item small {
  color: var(--qyem-text);
  font-size: 0.88rem;
  font-weight: 900;
  line-height: 1.45;
}

.domain-bar-item em {
  color: var(--qyem-muted);
  font-size: 0.76rem;
  font-style: normal;
  font-weight: 800;
}

.domain-bar-track {
  align-items: end;
  background: #edf2f7;
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-md);
  display: flex;
  height: 100%;
  justify-content: center;
  overflow: hidden;
  position: relative;
  width: 100%;
}

.domain-bar-track span {
  background: var(--qyem-primary);
  border-radius: var(--qyem-radius-md) var(--qyem-radius-md) 0 0;
  display: block;
  width: 54%;
}

.domain-bar-track i {
  border-top: 3px solid var(--qyem-success);
  left: 12%;
  position: absolute;
  right: 12%;
}

.baseline-dot,
.target-dot {
  border-radius: 999px;
  display: inline-flex;
  height: 8px;
  width: 8px;
}

.baseline-dot {
  background: #f59e0b;
}

.target-dot {
  background: var(--qyem-success);
}

.gauge-footer {
  align-self: end;
  color: var(--qyem-muted);
  font-size: 0.78rem;
  font-weight: 700;
  text-align: center;
}

.donut span {
  color: var(--qyem-navy);
  font-size: 1.35rem;
  font-weight: 900;
}

.vertical-chart {
  align-items: end;
  display: grid;
  gap: var(--qyem-space-4);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  min-height: 260px;
}

.vertical-bar {
  align-items: center;
  display: grid;
  gap: var(--qyem-space-2);
  grid-template-rows: auto 180px auto;
  justify-items: center;
  text-align: center;
}

.vertical-bar div {
  align-items: end;
  background: #e7edf5;
  border-radius: var(--qyem-radius-md);
  display: flex;
  height: 180px;
  overflow: hidden;
  width: 42px;
}

.vertical-bar span {
  background: var(--qyem-blue);
  display: block;
  width: 100%;
}

.vertical-bar small {
  color: var(--qyem-muted);
  min-height: 38px;
}

.donut {
  align-items: center;
  aspect-ratio: 1;
  background:
    radial-gradient(circle at center, var(--qyem-surface) 0 56%, transparent 57%),
    conic-gradient(var(--qyem-blue) calc(var(--value) * 1%), #e7edf5 0);
  border-radius: 50%;
  display: grid;
  max-width: 138px;
  width: 100%;
}

.settings-toggles,
.comparison-picker,
.permission-grid {
  display: grid;
  gap: var(--qyem-space-3);
}

.settings-toggles,
.permission-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.settings-section {
  border-top: 1px solid var(--qyem-border);
  display: grid;
  gap: var(--qyem-space-4);
  padding-top: var(--qyem-space-4);
}

.settings-section .qyem-textarea {
  min-height: 140px;
}

.evaluation-subtab-editor {
  display: grid;
  gap: var(--qyem-space-3);
  grid-column: 1 / -1;
}

.simple-list {
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-md);
  display: grid;
  overflow: hidden;
}

.simple-list-row {
  align-items: center;
  background: var(--qyem-surface);
  border-bottom: 1px solid var(--qyem-border);
  display: flex;
  gap: var(--qyem-space-3);
  justify-content: space-between;
  padding: var(--qyem-space-3);
}

.simple-list-row:last-child {
  border-bottom: 0;
}

.simple-list-row > div {
  display: grid;
  gap: 2px;
}

.toggle-field,
.compare-option {
  align-items: center;
  background: var(--qyem-surface-soft);
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-md);
  cursor: pointer;
  display: flex;
  gap: var(--qyem-space-2);
  min-height: 44px;
  padding: 0 var(--qyem-space-3);
}

.compare-option.selected {
  background: #eef7ff;
  border-color: var(--qyem-blue);
}

.compare-option input:disabled + span {
  color: var(--qyem-muted);
}

.comparison-chart {
  display: grid;
  gap: var(--qyem-space-4);
  margin-bottom: var(--qyem-space-5);
}

.comparison-domain {
  display: grid;
  gap: var(--qyem-space-3);
}

.comparison-domain > strong {
  color: var(--qyem-navy);
}

.comparison-bar-row {
  align-items: center;
  display: grid;
  gap: var(--qyem-space-3);
  grid-template-columns: minmax(180px, 1.2fr) minmax(160px, 2fr) 56px;
}

.comparison-bar {
  background: #e7edf5;
  border-radius: 999px;
  height: 12px;
  overflow: hidden;
}

.comparison-bar i {
  background: var(--qyem-blue);
  display: block;
  height: 100%;
}

.flexible-comparison-tool {
  margin-bottom: var(--qyem-space-5);
}

.segmented-control {
  align-items: center;
  background: var(--qyem-surface-soft);
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-md);
  display: inline-flex;
  flex-wrap: wrap;
  gap: var(--qyem-space-1);
  padding: var(--qyem-space-1);
}

.segmented-control label {
  border-radius: var(--qyem-radius-sm);
  color: var(--qyem-muted);
  font-weight: 900;
  padding: var(--qyem-space-2) var(--qyem-space-3);
}

.segmented-control label.active {
  background: #fff;
  color: var(--qyem-navy);
  box-shadow: var(--qyem-shadow-sm);
}

.comparison-mode-toggle {
  margin-bottom: var(--qyem-space-4);
}

.comparison-mode-toggle label {
  align-items: center;
  cursor: pointer;
  display: inline-flex;
  gap: var(--qyem-space-2);
}

.comparison-mode-toggle input {
  accent-color: var(--qyem-primary);
}

.comparison-selector-grid {
  align-items: start;
  margin-bottom: var(--qyem-space-4);
}

.compact-picker {
  max-height: 220px;
  overflow: auto;
}

.compare-option.disabled {
  opacity: 0.55;
}

.comparison-status-row {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--qyem-space-2);
  margin-bottom: var(--qyem-space-3);
}

.difference-card-grid {
  display: grid;
  gap: var(--qyem-space-3);
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  margin: var(--qyem-space-4) 0;
}

.difference-card {
  background: var(--qyem-surface-soft);
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-md);
  display: grid;
  gap: var(--qyem-space-1);
  padding: var(--qyem-space-4);
}

.difference-card span,
.difference-card small {
  color: var(--qyem-muted);
  font-weight: 800;
}

.difference-card strong {
  color: var(--qyem-navy);
  font-size: 1.35rem;
}

.difference-card.positive {
  background: #eefaf4;
  border-color: #ccebd9;
}

.difference-card.negative {
  background: #fff5f2;
  border-color: #ffd4cc;
}

.comparison-visual-grid {
  align-items: stretch;
}

.inner-panel {
  background: #fff;
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-md);
  margin-top: var(--qyem-space-4);
  padding: var(--qyem-space-4);
}

.inner-panel h4 {
  color: var(--qyem-navy);
  margin: 0 0 var(--qyem-space-3);
}

.flex-bar-chart {
  display: grid;
  gap: var(--qyem-space-3);
}

.flex-bar-row {
  align-items: center;
  display: grid;
  gap: var(--qyem-space-3);
  grid-template-columns: minmax(140px, 1.2fr) minmax(140px, 2fr) 70px;
}

.flex-bar-row span {
  color: var(--qyem-text);
  font-weight: 800;
}

.flex-bar-row b {
  color: var(--qyem-navy);
  text-align: end;
}

.radar-wrap {
  align-items: center;
  display: grid;
  gap: var(--qyem-space-3);
  justify-items: center;
}

.radar-chart {
  height: 260px;
  max-width: 100%;
  width: 260px;
}

.radar-chart line,
.radar-grid {
  fill: none;
  stroke: var(--qyem-border);
  stroke-width: 1.5;
}

.radar-grid-inner {
  opacity: 0.7;
}

.radar-base {
  fill: rgba(16, 49, 132, 0.28);
  stroke: var(--qyem-primary);
  stroke-width: 2.5;
}

.radar-compared {
  fill: rgba(16, 97, 178, 0.18);
  stroke: var(--qyem-blue);
  stroke-width: 2;
}

.radar-legend {
  display: flex;
  flex-wrap: wrap;
  gap: var(--qyem-space-3);
  justify-content: center;
}

.radar-legend span {
  align-items: center;
  color: var(--qyem-muted);
  display: inline-flex;
  font-weight: 800;
  gap: var(--qyem-space-2);
}

.radar-legend i {
  border-radius: 999px;
  display: inline-block;
  height: 10px;
  width: 10px;
}

.radar-legend .base {
  background: var(--qyem-primary);
}

.radar-legend .compared {
  background: var(--qyem-blue);
}

.comparison-summary-report p {
  color: var(--qyem-text);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.9;
  margin: 0;
}

.diff-positive {
  color: var(--qyem-success);
  font-weight: 900;
}

.diff-negative {
  color: var(--qyem-danger);
  font-weight: 900;
}

.diff-neutral {
  color: var(--qyem-muted);
  font-weight: 900;
}

.permission-panel {
  background: var(--qyem-surface-soft);
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-md);
  padding: var(--qyem-space-4);
}

.auth-screen {
  align-items: center;
  display: grid;
  min-height: 100vh;
  padding: var(--qyem-space-6);
}

.auth-card {
  margin: 0 auto;
  max-width: 960px;
  width: 100%;
}

.auth-layout {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
}

.auth-hero {
  background: var(--qyem-navy);
  color: #fff;
  padding: var(--qyem-space-8);
}

.auth-hero h1 {
  font-size: 2rem;
  margin: 0 0 var(--qyem-space-4);
}

.auth-hero p {
  color: rgba(255, 255, 255, 0.76);
  line-height: 1.8;
  margin: 0;
}

.auth-form {
  display: grid;
  gap: var(--qyem-space-4);
  padding: var(--qyem-space-8);
}

.demo-users {
  display: grid;
  gap: var(--qyem-space-2);
}

.demo-user {
  align-items: center;
  background: var(--qyem-surface-soft);
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-md);
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  min-height: 38px;
  padding: 0 var(--qyem-space-3);
}

.form-grid {
  display: grid;
  gap: var(--qyem-space-3);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.modal-backdrop {
  align-items: center;
  background: rgba(16, 14, 102, 0.35);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: var(--qyem-space-5);
  position: fixed;
  z-index: 30;
}

.modal {
  max-height: min(720px, 92vh);
  max-width: 760px;
  overflow: auto;
  width: 100%;
}

.actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--qyem-space-2);
}

.empty-state {
  color: var(--qyem-muted);
  padding: var(--qyem-space-5);
  text-align: center;
}

.risk-summary,
.method-list,
.risk-reasons {
  display: grid;
  gap: var(--qyem-space-3);
}

.risk-item {
  align-items: center;
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-md);
  display: flex;
  gap: var(--qyem-space-3);
  justify-content: space-between;
  padding: var(--qyem-space-3);
}

.risk-item p {
  color: var(--qyem-muted);
  margin: var(--qyem-space-1) 0 0;
}

.risk-critical {
  background: #fff5f2;
  border-color: #ffd4cc;
}

.risk-warning {
  background: #fff9e8;
  border-color: #ffe3a8;
}

.risk-stable {
  background: #eefaf4;
  border-color: #ccebd9;
}

.method-list {
  color: var(--qyem-muted);
  line-height: 1.8;
}

.method-list strong {
  color: var(--qyem-text);
}

.probability {
  align-items: center;
  display: grid;
  gap: var(--qyem-space-2);
  grid-template-columns: minmax(90px, 1fr) 44px;
}

.risk-reasons span {
  background: var(--qyem-surface-soft);
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-sm);
  color: var(--qyem-muted);
  font-size: 0.78rem;
  padding: var(--qyem-space-1) var(--qyem-space-2);
}

.analysis-card-list {
  display: grid;
  gap: var(--qyem-space-4);
}

.analysis-card .panel-title {
  align-items: flex-start;
}

.analysis-summary {
  background: var(--qyem-surface-soft);
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-md);
  color: var(--qyem-text);
  line-height: 1.9;
  margin: 0 0 var(--qyem-space-4);
  padding: var(--qyem-space-4);
}

.analysis-sections {
  display: grid;
  gap: var(--qyem-space-3);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.analysis-sections section {
  border: 1px solid var(--qyem-border);
  border-radius: var(--qyem-radius-md);
  padding: var(--qyem-space-4);
}

.analysis-sections h4 {
  color: var(--qyem-navy);
  margin: 0 0 var(--qyem-space-3);
}

.analysis-sections ul {
  color: var(--qyem-muted);
  display: grid;
  gap: var(--qyem-space-2);
  line-height: 1.7;
  margin: 0;
  padding-inline-start: var(--qyem-space-5);
}

.qyem-alert-danger {
  background: #fff0ed;
  border-color: #ffd4cc;
  color: var(--qyem-danger);
}

.qyem-alert-warning {
  background: #fff6df;
  border-color: #ffe3a8;
  color: var(--qyem-warning);
}

.import-textarea {
  min-height: 180px;
  direction: ltr;
  text-align: left;
}

.import-preview-table {
  min-width: 1560px;
}

.import-cell-input {
  min-width: 160px;
}

.import-cell-input.import-short {
  min-width: 120px;
}

.import-cell-input.import-year,
.import-cell-input.import-score {
  min-width: 92px;
}

.import-issues {
  display: grid;
  gap: var(--qyem-space-1);
  line-height: 1.5;
  margin: 0;
  min-width: 220px;
  padding-inline-start: var(--qyem-space-4);
}

.import-issues .error {
  color: var(--qyem-danger);
}

.import-issues .warning {
  color: var(--qyem-warning);
}

.mobile-menu {
  display: none;
}

@media (max-width: 1040px) {
  .app-shell {
    grid-template-columns: 1fr;
  }

  .sidebar {
    display: none;
    height: auto;
    position: static;
  }

  .sidebar.open {
    display: flex;
  }

  .mobile-menu {
    display: inline-flex;
  }

  .filters,
  .main-gauge-layout,
  .report-kpi-layout,
  .domain-rank-grid,
  .practice-grid,
  .school-gauge-grid,
  .complex-domain-gauge-grid,
  .complex-domain-bars-chart,
  .complex-report-picker,
  .full-report-domain-strip,
  .grid-4,
  .grid-3,
  .grid-2,
  .infographic-flow,
  .tool-grid,
  .analysis-sections,
  .gauge-grid,
  .donut-grid,
  .vertical-chart,
  .settings-toggles,
  .permission-grid,
  .auth-layout,
  .form-grid {
    grid-template-columns: 1fr;
  }

  .comparison-bar-row,
  .flex-bar-row {
    grid-template-columns: 1fr;
  }

  .page-header,
  .topbar {
    align-items: stretch;
    flex-direction: column;
    justify-content: flex-start;
    padding-block: var(--qyem-space-4);
  }

  .gauge-card-main {
    min-height: auto;
  }

  .gauge-card-main .gauge {
    max-width: 320px;
  }

  .school-bars-chart {
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
  }

  .full-report-header {
    align-items: stretch;
    flex-direction: column;
  }

  .report-file-row {
    grid-template-columns: 1fr;
  }

  .pdf-viewer-shell {
    height: 72vh;
  }
}

@media (max-width: 560px) {
  .content,
  .topbar,
  .auth-screen {
    padding-inline: var(--qyem-space-4);
  }

  .auth-form,
  .auth-hero {
    padding: var(--qyem-space-5);
  }

  .gauge-details,
  .gauge-scale {
    grid-template-columns: 1fr;
  }

  .gauge-card-main .gauge-card-header strong {
    font-size: 2rem;
  }
}

@media print {
  .sidebar,
  .topbar,
  .tab-strip,
  .page-header,
  .complex-report-picker,
  .actions,
  .aggregation-note {
    display: none !important;
  }

  .app-shell {
    display: block;
  }

  .content {
    padding: 0;
  }

  .qyem-card,
  .full-report-card {
    border: 0;
    box-shadow: none;
    break-inside: avoid;
  }

  .pdf-viewer-shell {
    border: 0;
    height: 92vh;
  }

  body {
    background: #fff;
  }
}
