/*
 * 智教耘·智慧课堂 UI v2
 * 基线：开发文档/ui-design(1).md（Figma 5QtGPKRsEDCCoAxjy6HfHw）
 * 本文件在各端页面原有 style 之后加载，只做视觉/布局覆盖，不改业务 DOM 约定。
 */

:root {
  --ui-brand-gradient: linear-gradient(134deg, #5B67D3 21%, #7F94FA 77%, #3FB5FF 100%);
  --ui-dark-gradient: linear-gradient(180deg, #364251 0%, #142234 100%);
  --ui-shadow-soft: 0 1px 2px rgba(20,34,52,.03), 0 8px 24px rgba(20,34,52,.06);
  --ui-shadow-float: 0 14px 42px rgba(20,34,52,.12);
  --ui-ease: cubic-bezier(.22,1,.36,1);
}

html { color-scheme: light; }
body.ui-v2 {
  background: var(--bg);
  color: var(--text);
  font-family: "Source Han Sans CN", "Source Han Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
  letter-spacing: .01em;
}
body.ui-v2 ::selection { color: #fff; background: rgba(91,103,211,.84); }
body.ui-v2 button,
body.ui-v2 a,
body.ui-v2 input,
body.ui-v2 select,
body.ui-v2 textarea { -webkit-tap-highlight-color: transparent; }
body.ui-v2 button:focus-visible,
body.ui-v2 a:focus-visible,
body.ui-v2 input:focus-visible,
body.ui-v2 select:focus-visible,
body.ui-v2 textarea:focus-visible {
  outline: 3px solid rgba(91,103,211,.22) !important;
  outline-offset: 2px;
}
body.ui-v2 .btn {
  min-height: 36px;
  border-radius: 9px;
  padding-inline: 16px;
  font-weight: 500;
  letter-spacing: .01em;
  box-shadow: none;
  transition: transform .18s var(--ui-ease), box-shadow .18s, border-color .18s, background .18s, color .18s;
}
body.ui-v2 .btn:not(:disabled):active { transform: translateY(1px) scale(.985); }
body.ui-v2 .btn-primary { box-shadow: 0 6px 16px rgba(91,103,211,.22); }
body.ui-v2 .btn-primary:hover { box-shadow: 0 9px 22px rgba(91,103,211,.28); transform: translateY(-1px); }
body.ui-v2 .btn-outline { border-color: #DDE2EA; }
body.ui-v2 .btn-outline:hover { background: #F7F8FD; box-shadow: 0 5px 14px rgba(20,34,52,.05); }
body.ui-v2 .btn-sm { min-height: 32px; padding: 5px 12px; }
body.ui-v2 .input,
body.ui-v2 input:not([type="checkbox"]):not([type="radio"]),
body.ui-v2 select,
body.ui-v2 textarea {
  min-height: 38px;
  border-color: #DDE2EA;
  border-radius: 9px;
  transition: border-color .18s, box-shadow .18s, background .18s;
}
body.ui-v2 .input:focus,
body.ui-v2 input:focus,
body.ui-v2 select:focus,
body.ui-v2 textarea:focus {
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 3px rgba(91,103,211,.12);
}
body.ui-v2 .card,
body.ui-v2 .panel,
body.ui-v2 .stat-card {
  border: 1px solid rgba(222,227,234,.88);
  box-shadow: var(--ui-shadow-soft);
}
body.ui-v2 .modal {
  border: 1px solid rgba(255,255,255,.72);
  box-shadow: 0 24px 70px rgba(20,34,52,.22);
}
body.ui-v2 .overlay,
body.ui-v2 .modal-overlay { backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
body.ui-v2 ::-webkit-scrollbar { width: 8px; height: 8px; }
body.ui-v2 ::-webkit-scrollbar-thumb { background: #CDD4DE; border: 2px solid transparent; background-clip: padding-box; border-radius: 10px; }

/* ========================= 入口门户 ========================= */
body.ui-landing { min-height: 100vh; overflow: auto; background: #F5F7FB; }
.ui-landing .header {
  height: 72px;
  padding: 0 max(32px, calc((100vw - 1440px) / 2));
  border-bottom-color: rgba(237,237,238,.72);
  background: rgba(255,255,255,.88);
  box-shadow: 0 1px 0 rgba(20,34,52,.02);
}
.ui-landing .header-brand img { height: 40px; }
.ui-landing .header-brand .title { font-size: 20px; letter-spacing: .03em; }
.ui-landing .header-brand .subtitle { font-size: 12px; }
.ui-landing .header-version { border: 1px solid #E4E7EE; background: rgba(255,255,255,.72); }
.ui-landing .hero {
  position: relative;
  min-height: 340px;
  padding: 84px 32px 118px;
  overflow: hidden;
  background:
    radial-gradient(circle at 13% 10%, rgba(255,255,255,.24), transparent 23%),
    radial-gradient(circle at 87% 25%, rgba(63,181,255,.35), transparent 26%),
    var(--ui-brand-gradient);
}
.ui-landing .hero::before,
.ui-landing .hero::after {
  content: ""; position: absolute; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; pointer-events: none;
}
.ui-landing .hero::before { width: 520px; height: 520px; right: -120px; top: -330px; }
.ui-landing .hero::after { width: 260px; height: 260px; left: -80px; bottom: -170px; }
.ui-landing .hero h2 { position: relative; font-size: clamp(34px, 3.2vw, 52px); line-height: 1.2; margin-bottom: 16px; letter-spacing: .06em; }
.ui-landing .hero p { position: relative; font-size: 17px; line-height: 28px; opacity: .92; }
.ui-landing .container { position: relative; max-width: 1440px; margin-top: -72px; padding: 0 32px 56px; }
.ui-landing .section { margin-bottom: 40px; }
.ui-landing .section:first-child,
.ui-landing .section:nth-child(2) { padding: 28px; border: 1px solid rgba(225,228,236,.88); border-radius: 20px; background: rgba(255,255,255,.96); box-shadow: 0 22px 58px rgba(29,45,75,.11); }
.ui-landing .section:nth-child(2) { box-shadow: var(--ui-shadow-soft); }
.ui-landing .section-header { margin-bottom: 22px; }
.ui-landing .section-header .dot { width: 6px; height: 22px; border-radius: 6px; background: var(--ui-brand-gradient); }
.ui-landing .section-header h3 { font-size: 20px; font-weight: 700; }
.ui-landing .terminals { gap: 16px; }
.ui-landing .terminal-card {
  min-height: 166px;
  padding: 24px 18px;
  border-color: #E5E9F0;
  border-radius: 16px;
  background: linear-gradient(180deg,#fff 0%,#FCFCFE 100%);
}
.ui-landing .terminal-card:hover { transform: translateY(-5px); border-color: rgba(91,103,211,.48); box-shadow: 0 18px 38px rgba(38,55,86,.12); }
.ui-landing .terminal-card .card-icon { width: 58px; height: 58px; border-radius: 16px; margin-bottom: 16px; background: linear-gradient(145deg,#F2F2FE,#E8EEFF); }
.ui-landing .terminal-card .card-name { font-size: 17px; font-weight: 700; margin-bottom: 6px; }
.ui-landing .terminal-card .card-desc { font-size: 13px; }
.ui-landing .downloads { gap: 18px; }
.ui-landing .download-card { padding: 22px; border-radius: 16px; border-color: #E5E9F0; }
.ui-landing .download-card:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(38,55,86,.1); }
.ui-landing .dl-item { min-height: 64px; padding: 12px 14px; background: #F5F7FA; }
.ui-landing .dl-item:hover { background: #EEF0FB; }
.ui-landing .note-box { padding: 20px 24px; border-radius: 12px; box-shadow: var(--ui-shadow-soft); }
.ui-landing .footer { padding: 28px; background: #fff; }

/* ========================= 教师工作台 ========================= */
.ui-teacher .shell { background: var(--bg); }
.ui-teacher .sidebar { background: rgba(255,255,255,.98); }
.ui-teacher .sidebar.open { visibility: visible; pointer-events: auto; }
.ui-teacher .sb-brand { height: 70px; padding: 14px 16px 12px; border-bottom-color: #EEF0F4; }
.ui-teacher .sb-brand img { height: 34px; }
.ui-teacher .sb-brand .brand-title { font-size: 16px; font-weight: 700; letter-spacing: .04em; }
.ui-teacher .sb-card {
  margin: 14px;
  padding: 16px;
  border: 1px solid rgba(91,103,211,.12);
  border-radius: 14px;
  background: linear-gradient(145deg,rgba(91,103,211,.11),rgba(63,181,255,.07));
}
.ui-teacher .sb-card .name { font-size: 15px; }
.ui-teacher .sb-cta { margin: 0 14px 12px; }
.ui-teacher .sb-cta .btn { min-height: 42px; }
.ui-teacher .sb-nav { padding: 8px 10px 16px; border-top: 0; }
.ui-teacher .sb-nav .nav-group-title { padding: 14px 10px 7px; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.ui-teacher .sb-nav a.nav-item {
  min-height: 46px;
  margin-bottom: 4px;
  padding: 6px 10px;
  gap: 10px;
  border: 0;
  border-radius: 10px;
  color: #526173;
  font-size: 13px;
}
.ui-teacher .sb-nav a.nav-item:hover { background: #F5F6FC; color: var(--primary); }
.ui-teacher .sb-nav a.nav-item.active { background: #EEF0FB; color: var(--primary); box-shadow: inset 3px 0 0 var(--primary); }
.ui-teacher .sb-nav a.nav-item .icon {
  width: 32px; height: 32px; flex: 0 0 32px;
  display: inline-flex; align-items: center; justify-content: center;
  color: #6F7C8C; border-radius: 9px; background: #F3F5F8;
}
.ui-teacher .sb-nav a.nav-item:hover .icon,
.ui-teacher .sb-nav a.nav-item.active .icon { color: var(--primary); background: rgba(91,103,211,.1); }
.ui-teacher .sb-nav .icon svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ui-teacher .sb-foot { min-height: 54px; padding: 10px 16px; background: #FBFCFE; }
.ui-teacher .topbar {
  height: 70px;
  padding: 0 22px 0 24px;
  background: rgba(255,255,255,.86);
  border-bottom-color: rgba(225,228,234,.76);
  box-shadow: 0 1px 0 rgba(20,34,52,.02);
}
.ui-teacher .tb-title { font-size: 18px; font-weight: 700; }
.ui-teacher .tb-topic { padding-left: 14px; border-left: 1px solid var(--border); }
.ui-teacher .tb-code { padding: 6px 14px; border: 1px solid rgba(91,103,211,.12); border-radius: 12px; }
.ui-teacher .av-dot { min-height: 26px; border-radius: 20px; }
.ui-teacher .stage { margin: 16px; border: 1px solid #E1E5EB; border-radius: 16px; background: #E9EDF3; box-shadow: inset 0 0 0 1px rgba(255,255,255,.45), var(--ui-shadow-soft); overflow: hidden; }
.ui-teacher .canvas-placeholder { background: radial-gradient(circle at 50% 42%,#F9FAFE 0%,#EEF2F7 72%); }
.ui-teacher .canvas-placeholder .big { width: 76px; height: 76px; display: grid; place-items: center; border-radius: 24px; font-size: 34px; opacity: .5; background: #fff; box-shadow: var(--ui-shadow-soft); }
.ui-teacher .panel-overlay,
.ui-teacher .panel-overlay.wide {
  inset: 0;
  width: auto;
  max-width: none;
  border: 1px solid rgba(219,225,233,.94);
  border-radius: 16px;
  box-shadow: -10px 14px 44px rgba(20,34,52,.14);
  overflow: hidden;
}
.ui-teacher .panel-overlay.on { animation: uiPanelIn .26s var(--ui-ease); }
@keyframes uiPanelIn { from { opacity: 0; transform: translateX(24px) scale(.99); } to { opacity: 1; transform: none; } }
.ui-teacher .po-head { height: 62px; padding: 0 20px; background: linear-gradient(180deg,#fff,#FBFCFE); }
.ui-teacher .po-head .title { font-size: 17px; font-weight: 700; }
.ui-teacher .po-head .close { width: auto; min-width: 96px; height: 36px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; border-radius: 9px; white-space: nowrap; }
.ui-teacher .po-head .close:hover { color: var(--primary); background: var(--primary-soft); }
.ui-teacher .po-body { padding: 20px; background: #FBFCFE; }
.ui-teacher .nav-item .icon svg { width: 20px; height: 20px; display: block; }

/* 资源中心 */
.ui-teacher .resource-center { width: auto; max-width: none; }
.ui-teacher .resource-head { min-height: 76px; align-items: center; }
.ui-teacher .resource-subtitle { margin-top: 4px; color: var(--text-2); font-size: 12px; font-weight: 400; }
.ui-teacher .resource-tabs { display:flex; gap:6px; padding:5px; margin-bottom:18px; width:max-content; max-width:100%; border:1px solid #E0E5EC; border-radius:12px; background:#F5F7FA; }
.ui-teacher .resource-tab { min-height:36px; padding:0 18px; border:0; border-radius:8px; background:transparent; color:#5E6976; cursor:pointer; font-weight:600; }
.ui-teacher .resource-tab:hover:not(:disabled) { color:var(--primary); }
.ui-teacher .resource-tab.active { color:var(--primary); background:#fff; box-shadow:0 3px 10px rgba(20,34,52,.09); }
.ui-teacher .resource-tab:disabled { color:#AAB1BC; cursor:not-allowed; }
.ui-teacher .resource-tab span { margin-left:4px; padding:2px 6px; border-radius:10px; background:#E7EAF0; font-size:10px; }
.ui-teacher .resource-toolbar { display:flex; align-items:center; gap:10px; }
.ui-teacher .resource-search { position:relative; flex:1; }
.ui-teacher .resource-search .input { width:100%; min-height:42px; }
.ui-teacher .knowledge-toolbar select { width:220px; flex:0 0 220px; }
.ui-teacher .resource-hint { margin:12px 0 16px; padding:10px 12px; border-left:3px solid rgba(91,103,211,.42); border-radius:0 8px 8px 0; background:#F5F6FC; color:#657182; font-size:12px; }
.ui-teacher .resource-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:12px; }
.ui-teacher .resource-card { display:flex; flex-direction:column; min-height:170px; padding:16px; border:1px solid #E0E5EC; border-radius:14px; background:#fff; box-shadow:0 5px 16px rgba(20,34,52,.045); transition:.2s ease; }
.ui-teacher .resource-card:hover { transform:translateY(-2px); border-color:rgba(91,103,211,.42); box-shadow:0 12px 28px rgba(20,34,52,.09); }
.ui-teacher .resource-card-head { display:flex; align-items:flex-start; gap:12px; }
.ui-teacher .resource-file-icon { flex:0 0 42px; width:42px; height:42px; display:flex; align-items:center; justify-content:center; border-radius:12px; background:#EEF0FB; color:var(--primary); font-size:12px; font-weight:800; text-transform:uppercase; }
.ui-teacher .resource-card-title { color:#142234; font-size:14px; line-height:21px; font-weight:700; word-break:break-word; }
.ui-teacher .resource-card-meta { margin-top:4px; color:#7A8593; font-size:11px; }
.ui-teacher .resource-card-desc { flex:1; margin:12px 0; color:#5E6976; font-size:12px; line-height:19px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.ui-teacher .resource-card-actions { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.ui-teacher .resource-status { color:#7A8593; font-size:11px; }
.ui-teacher .knowledge-results { display:grid; gap:12px; }
.ui-teacher .knowledge-card { padding:17px 18px; border:1px solid #E0E5EC; border-radius:14px; background:#fff; }
.ui-teacher .knowledge-card:hover { border-color:rgba(91,103,211,.4); box-shadow:0 10px 24px rgba(20,34,52,.07); }
.ui-teacher .knowledge-source { display:flex; align-items:center; justify-content:space-between; gap:12px; color:#334155; font-size:13px; font-weight:700; }
.ui-teacher .knowledge-score { flex:0 0 auto; padding:3px 8px; border-radius:12px; background:#EDF8F4; color:#379373; font-size:10px; }
.ui-teacher .knowledge-excerpt { margin:10px 0 12px; color:#526173; font-size:13px; line-height:21px; white-space:pre-wrap; }
.ui-teacher .knowledge-foot { display:flex; align-items:center; justify-content:space-between; gap:12px; color:#909BA8; font-size:11px; }
.ui-teacher .row { padding: 13px 14px; border-color: #E3E7ED; border-radius: 11px; box-shadow: 0 2px 8px rgba(20,34,52,.025); }
.ui-teacher .row:hover { border-color: rgba(91,103,211,.36); box-shadow: 0 8px 20px rgba(20,34,52,.07); }
.ui-teacher .ctrl-section { padding: 16px; margin-bottom: 12px; border: 1px solid #E4E8EE; border-radius: 13px; background: #fff; }
.ui-teacher .ctrl-section-title { color: #7C8795; font-weight: 700; }
.ui-teacher .ctrl-toggle-row { padding: 13px 2px; }
.ui-teacher .ctrl-mode-btn { min-height: 54px; border-radius: 10px; background: #FCFCFD; }
.ui-teacher .ctrl-mode-btn.active { box-shadow: inset 0 0 0 1px var(--primary); }
.ui-teacher .ctrl-diag { padding: 14px; border-radius: 12px; background: #F7F9FD; }
.ui-teacher #body-record > div:first-child { border-radius: 13px; padding: 16px !important; background: linear-gradient(135deg,rgba(91,103,211,.1),rgba(63,181,255,.07)); border: 1px solid rgba(91,103,211,.12) !important; }
.ui-teacher .sb-toggle {
  position: static; min-width: 72px; width: auto; height: 40px; z-index: 101;
  border: 1px solid #DFE3EA; border-radius: 11px; color: #526173;
  box-shadow: 0 5px 16px rgba(20,34,52,.08);
}
.ui-teacher .sb-toggle:hover { color: var(--primary); transform: translateY(-1px); }
.ui-teacher .sb-toggle.is-sidebar-open {
  display: none;
}

@media (min-width: 520px) {
  .ui-teacher { --teacher-sidebar-width: min(42vw,280px); }
  .ui-teacher .sidebar {
    position: relative; inset: auto; z-index: 99;
    flex: 0 0 var(--teacher-sidebar-width); width: var(--teacher-sidebar-width);
    height: 100vh; margin-left: calc(0px - var(--teacher-sidebar-width)); overflow: hidden;
    transform: none;
    transition: margin-left .28s var(--ui-ease), visibility .28s, box-shadow .28s;
    box-shadow: 4px 0 24px rgba(20,34,52,.06);
  }
  .ui-teacher .sidebar:not(.open) {
    margin-left: calc(0px - var(--teacher-sidebar-width));
    transform: none;
    visibility: hidden;
    pointer-events: none;
  }
  .ui-teacher .sidebar.open { margin-left: 0; transform: none; visibility: visible; }
  .ui-teacher .sb-backdrop { display: none !important; }
}

/* ========================= 平台/组织管理 ========================= */
.ui-admin .app { grid-template-rows: 72px 1fr; }
.ui-admin .topbar { height: 72px; padding: 0 28px; background: rgba(255,255,255,.9); box-shadow: 0 1px 0 rgba(20,34,52,.03); }
.ui-admin .topbar .brand-logo { height: 34px; }
.ui-admin .topbar h1 { font-size: 18px; font-weight: 700; letter-spacing: .03em; }
.ui-admin .topbar .scope-tag { border-radius: 20px; padding: 4px 12px; }
.ui-admin .main { grid-template-columns: 248px 1fr; }
.ui-admin .sidebar { padding: 22px 14px; background: rgba(255,255,255,.96); box-shadow: 3px 0 20px rgba(20,34,52,.035); }
.ui-admin .nav-group { padding: 18px 12px 7px; font-size: 10px; font-weight: 700; letter-spacing: .13em; }
.ui-admin .nav-item { position: relative; min-height: 44px; display: flex; align-items: center; padding: 10px 14px 10px 18px; border-radius: 10px; color: #526173; }
.ui-admin .nav-item::before { content: ""; width: 6px; height: 6px; margin-right: 12px; border: 1.8px solid #909BA8; border-radius: 50%; }
.ui-admin .nav-item:hover { background: #F5F6FC; }
.ui-admin .nav-item.active { background: #EEF0FB; box-shadow: inset 3px 0 0 var(--primary); }
.ui-admin .nav-item.active::before { border-color: var(--primary); background: var(--primary); box-shadow: 0 0 0 4px rgba(91,103,211,.1); }
.ui-admin .content { padding: 34px 36px 60px; background: radial-gradient(circle at 100% 0,rgba(91,103,211,.045),transparent 34%),var(--bg); }
.ui-admin .content > div { max-width: 1500px; }
.ui-admin h2 { margin-bottom: 24px; font-size: 24px; line-height: 32px; font-weight: 700; letter-spacing: .02em; }
.ui-admin .stat-grid { grid-template-columns: repeat(auto-fit,minmax(210px,1fr)); gap: 18px; }
.ui-admin .stat-card { position: relative; min-height: 132px; padding: 22px; overflow: hidden; border-radius: 14px; background: linear-gradient(155deg,#fff 0%,#FBFCFF 100%); }
.ui-admin .stat-card::after { content: ""; position: absolute; width: 92px; height: 92px; right: -30px; bottom: -36px; border-radius: 50%; background: rgba(91,103,211,.07); }
.ui-admin .stat-card .label { font-size: 13px; color: #6E7A89; }
.ui-admin .stat-card .value { margin-top: 12px; font-size: 36px; line-height: 1; letter-spacing: -.02em; }
.ui-admin table.data-table { border: 1px solid #E0E5EC; box-shadow: var(--ui-shadow-soft); }
.ui-admin table.data-table th { height: 48px; padding-inline: 16px; background: #F7F8FB; font-size: 12px; letter-spacing: .04em; }
.ui-admin table.data-table td { height: 54px; padding-inline: 16px; }
.ui-admin table.data-table tbody tr:hover { background: #FAFAFE; }
.ui-admin .card { border-radius: 14px; }

/* ========================= 学生端 ========================= */
.ui-student { min-height: 100vh; overflow: auto; background: radial-gradient(circle at 50% -15%,rgba(91,103,211,.09),transparent 34%),var(--bg); }
.ui-student .topbar { min-height: 68px; padding: 0 max(20px,calc((100vw - 1180px)/2)); position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.9); backdrop-filter: blur(12px); }
.ui-student .topbar .brand-logo { height: 32px; }
.ui-student .topbar .brand { font-size: 17px; font-weight: 700; letter-spacing: .03em; }
.ui-student .container { max-width: 760px; padding: 44px 24px 64px; }
.ui-student .container > div:first-child:not(.sso-hero):not(.home-hero) { margin-bottom: 20px; }
.ui-student .home-hero,
.ui-student .sso-hero { padding: 34px 30px; border-radius: 20px; background: var(--ui-brand-gradient); box-shadow: 0 18px 42px rgba(91,103,211,.24); }
.ui-student .home-hero h2,
.ui-student .sso-hero h1 { font-size: 26px; line-height: 36px; }
.ui-student .prop-list { gap: 14px; }
.ui-student .prop-card { min-height: 92px; padding: 17px 20px; border: 1px solid #E2E7EE; border-radius: 16px; box-shadow: var(--ui-shadow-soft); }
.ui-student .prop-card:hover { transform: translateY(-3px); border-color: rgba(91,103,211,.52); box-shadow: 0 14px 30px rgba(20,34,52,.1); }
.ui-student .prop-card .prop-ico { width: 56px; height: 56px; border-radius: 16px; }
.ui-student .prop-card .prop-title { font-size: 16px; }
.ui-student .prop-card .prop-desc { font-size: 13px; }
.ui-student .apps-header { padding: 18px 20px; border: 1px solid #E2E7EE; box-shadow: var(--ui-shadow-soft); }
.ui-student .app-tile,
.ui-student .feature-card,
.ui-student .mode-card,
.ui-student .card { border: 1px solid #E2E7EE; box-shadow: var(--ui-shadow-soft); }
.ui-student .app-tile:hover,
.ui-student .feature-card:hover,
.ui-student .mode-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(20,34,52,.1); }
.ui-student .code-input { min-height: 68px !important; border-width: 1px !important; letter-spacing: .26em; box-shadow: 0 0 0 5px rgba(91,103,211,.06); }
.ui-student .btn:not(.btn-sm) { min-height: 46px; border-radius: 12px; }

/* ========================= 巡课与大屏 ========================= */
.ui-inspect .topbar { min-height: 68px; padding-inline: 24px; background: rgba(255,255,255,.94); }
.ui-inspect .sidebar { width: 320px; padding: 18px; background: #F9FAFC; }
.ui-inspect .list-item { padding: 14px; border-color: #DDE3EA; border-radius: 12px; box-shadow: 0 4px 12px rgba(20,34,52,.04); }
.ui-inspect .list-item:hover { transform: translateY(-1px); box-shadow: 0 10px 24px rgba(20,34,52,.08); }
.ui-inspect .info-bar { min-height: 52px; padding-inline: 18px; }
.ui-inspect .audio-panel { border-color: rgba(255,255,255,.1); backdrop-filter: blur(12px); }
.ui-display .topbar { min-height: 64px; backdrop-filter: blur(12px); }

@media (max-width: 768px) {
  body.ui-v2 .btn { min-height: 42px; }
  .ui-landing .header { height: 64px; padding: 0 18px; }
  .ui-landing .header-brand .subtitle { display: none; }
  .ui-landing .hero { min-height: 300px; padding: 64px 22px 104px; text-align: left; }
  .ui-landing .hero h2 { font-size: 32px; }
  .ui-landing .hero p { font-size: 15px; }
  .ui-landing .container { margin-top: -54px; padding: 0 14px 32px; }
  .ui-landing .section:first-child,
  .ui-landing .section:nth-child(2) { padding: 18px; border-radius: 16px; }
  .ui-landing .terminals { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .ui-landing .terminal-card { min-height: 142px; padding: 18px 10px; }
  .ui-landing .terminal-card .card-icon { width: 48px; height: 48px; }
  .ui-teacher .topbar { height: 60px; padding-inline: 8px; }
  .ui-teacher .stage { margin: 8px; border-radius: 12px; }
  .ui-teacher .panel-overlay,
  .ui-teacher .panel-overlay.wide { top: 0; right: 0; bottom: 0; border-radius: 0; }
  .ui-teacher .po-head .close { width: auto; min-width: 92px; height: 36px; padding: 0 10px; font-size: 12px; white-space: nowrap; }
  .ui-admin .app { grid-template-rows: 64px 1fr; }
  .ui-admin .topbar { height: 64px; padding-right: 10px; }
  .ui-admin .main { grid-template-columns: 1fr; }
  .ui-admin .content { padding: 22px 14px 40px; }
  .ui-admin .stat-card { min-height: 112px; }
  .ui-student .topbar { min-height: 60px; padding: 0 14px; }
  .ui-student .topbar .brand { font-size: 14px; }
  .ui-student .container { padding: 28px 16px 44px; }
  .ui-student .home-hero,
  .ui-student .sso-hero { padding: 26px 20px; border-radius: 17px; }
  .ui-student .prop-card { min-height: 86px; padding: 14px; }
  .ui-inspect .sidebar { width: 100%; }
}

@media (max-width: 519px) {
  .ui-teacher .sidebar { width: min(88vw,320px); }
  .ui-teacher .sidebar:not(.open) { transform: translate3d(calc(-100% - 12px),0,0); visibility: hidden; pointer-events: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
