:root {
  --paper: #e8e5de;
  --panel: #f1eee7;
  --ink: #252a23;
  --muted: #77796f;
  --line: #c8c7bc;
  --accent: #838d59;
  --gold: #c6bb7f;
  font-family: Arial, "PingFang SC", "Microsoft YaHei", sans-serif;
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
}
button,
input,
select,
textarea {
  font: inherit;
  color: inherit;
}
button,
a,
input,
select,
textarea {
  -webkit-tap-highlight-color: transparent;
}
button {
  cursor: pointer;
  border: 1px solid var(--line);
  background: transparent;
  padding: 12px 18px;
  transition:
    background 0.2s,
    color 0.2s,
    transform 0.2s;
}
button:hover {
  background: #dadccd;
}
button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
button:focus-visible,
a:focus-visible,
summary:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 4px;
}
input,
textarea,
select {
  border: 1px solid var(--line);
  border-radius: 0;
  background: #f4f1e9;
  padding: 12px;
  outline: none;
  min-width: 0;
}
input:focus,
textarea:focus,
select:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 1px var(--accent);
}
input[type="checkbox"],
input[type="radio"] {
  accent-color: #687747;
  width: 17px;
  height: 17px;
  flex: none;
}
textarea {
  resize: vertical;
  min-height: 100px;
}
p {
  line-height: 1.8;
}
small {
  font-size: 10px;
  letter-spacing: 1px;
}
h1,
h2,
h3,
p {
  margin-top: 0;
}
h1,
h2,
h3 {
  font-weight: 600;
}
h1 {
  font-size: 32px;
  letter-spacing: -1px;
}
h2 {
  font-size: 23px;
  letter-spacing: -0.5px;
}
h3 {
  font-size: 17px;
}
a {
  color: inherit;
}
hr {
  border: 0;
  border-top: 1px solid var(--line);
  margin: 25px 0;
}
.primary {
  background: var(--ink);
  border-color: var(--ink);
  color: #f5f3eb;
}
.primary:hover {
  background: #48513d;
  color: white;
}
.primary span {
  margin-left: 26px;
}
.muted {
  color: var(--muted);
  font-size: 12px;
}
.tag {
  display: inline-block;
  border: 1px solid #c5c8b7;
  background: #dfe2d2;
  padding: 4px 9px;
  font-size: 10px;
  line-height: 1.6;
  margin: 3px 5px 3px 0;
}
.actions {
  display: flex;
  gap: 10px;
  align-items: center;
}
.empty {
  padding: 35px 15px;
  text-align: center;
  color: var(--muted);
}
.empty > span {
  font-size: 32px;
}
.empty h3 {
  color: var(--ink);
  margin-top: 16px;
}
.empty p {
  font-size: 12px;
}
.notice {
  background: #dfe2d2;
  padding: 17px 20px;
  font-size: 12px;
  line-height: 1.8;
  border-left: 3px solid var(--accent);
}
.two {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.field {
  display: flex;
  flex-direction: column;
  gap: 9px;
  margin-bottom: 20px;
  font-size: 12px;
}
.field > span {
  color: var(--muted);
}
.field input,
.field textarea,
.field select {
  width: 100%;
}
[hidden] {
  display: none !important;
}
header {
  height: 144px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 28px 3.4vw 20px;
}
.brand {
  border: 0;
  padding: 0;
  text-align: left;
  display: flex;
  flex-direction: column;
  line-height: 1;
}
.brand:hover {
  background: none;
}
.brand > b {
  font-size: 42px;
  letter-spacing: -3.5px;
  line-height: 0.9;
}
.brand > span {
  font-size: 9px;
  font-weight: bold;
  letter-spacing: 0.6px;
  margin-top: 8px;
}
.brand > strong {
  font-size: 22px;
  font-weight: 400;
  letter-spacing: 2px;
  margin-top: 4px;
}
.header-right {
  display: flex;
  align-items: center;
  gap: 26px;
  font-size: 12px;
}
.session {
  font-size: 9px;
  letter-spacing: 1px;
}
.session i,
footer i {
  display: inline-block;
  width: 5px;
  height: 5px;
  background: var(--accent);
  margin-right: 8px;
}
.header-search {
  border: 0;
  display: flex;
  gap: 9px;
  align-items: center;
}
.header-search:first-letter {
  font-size: 24px;
}
kbd {
  font: 10px monospace;
  border: 1px solid var(--line);
  padding: 2px 5px;
  color: var(--muted);
}
.profile-button {
  border: 0;
  border-left: 1px solid var(--line);
  padding-left: 25px;
}
.role-label {
  display: block;
  font-size: 9px;
  color: var(--muted);
  margin-top: 7px;
  text-align: right;
}
.workspace {
  margin: 0 3.4vw;
}
nav {
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: stretch;
  gap: 8px;
}
nav button {
  border: 0;
  padding: 19px 22px;
  position: relative;
  font-size: 13px;
  min-width: 145px;
  text-align: left;
}
nav button small {
  color: var(--muted);
  font-size: 9px;
  margin-right: 10px;
}
nav button > span {
  font-size: 10px;
  margin-left: 25px;
}
nav button.active {
  background: var(--ink);
  color: #eeeee5;
}
nav button.active small {
  color: #a9b18e;
}
.nav-note {
  margin-left: auto;
  align-self: center;
  color: var(--muted);
  font-size: 10px;
  letter-spacing: 1px;
  padding: 0 12px;
}
.section-heading {
  display: flex;
  align-items: center;
  gap: 30px;
  margin: 35px 0 24px;
  min-height: 76px;
}
.section-heading small {
  font-size: 9px;
  color: var(--muted);
  letter-spacing: 1.4px;
}
.section-heading h1 {
  margin: 9px 0 0;
}
.section-heading h1 > span {
  display: inline-block;
  font-size: 11px;
  letter-spacing: 2px;
  margin-left: 20px;
  font-weight: 400;
  color: var(--muted);
}
.section-heading > p {
  font-size: 11px;
  color: var(--muted);
  margin: auto 0 5px 0;
}
.section-heading > .actions,
.section-heading > button {
  margin-left: auto;
}
.archive-tools {
  display: flex;
  gap: 16px;
  align-items: center;
  margin-bottom: 18px;
  font-size: 11px;
}
.searchbox {
  width: 330px;
  display: flex;
  align-items: center;
  gap: 10px;
  border-bottom: 1px solid #b6b7aa;
  padding: 0 4px;
}
.searchbox input {
  border: 0;
  background: transparent;
  box-shadow: none;
  width: 100%;
  font-size: 12px;
  padding: 10px 0;
}
.searchbox > span {
  font-size: 23px;
}
.archive-tools select {
  background: transparent;
  border: 0;
  padding: 10px;
  max-width: 200px;
  font-size: 11px;
}
.archive-tools #result-count {
  color: var(--muted);
}
.tools-note {
  margin-left: auto;
  font-size: 9px;
  letter-spacing: 1.5px;
  color: var(--muted);
}
.warehouse {
  position: relative;
  border: 1px solid var(--line);
  overflow: hidden;
  background: var(--paper);
}
.warehouse-stage {
  position: relative;
  height: clamp(460px, 55vh, 720px);
  isolation: isolate;
  overflow: hidden;
}
.warehouse-surface {
  position: absolute;
  inset: 0;
  background: var(--paper);
  touch-action: pan-y;
}
.warehouse-surface canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}
.warehouse-topline {
  position: absolute;
  top: 24px;
  left: 26px;
  right: 26px;
  display: flex;
  justify-content: space-between;
  pointer-events: none;
  font-size: 9px;
  color: var(--muted);
  letter-spacing: 1.5px;
}
.warehouse-detail {
  position: absolute;
  right: 5%;
  top: 34%;
  width: 350px;
  padding: 28px 30px;
  background: transparent;
  backdrop-filter: none;
  border-top: 0;
  transition:
    opacity 0.3s,
    transform 0.5s;
}
.warehouse-number {
  font-size: 9px;
  color: var(--muted);
  letter-spacing: 2px;
}
.warehouse-title {
  font-size: 26px;
  line-height: 1.45;
  margin: 20px 0 12px;
}
.warehouse-description {
  font-size: 12px;
  color: #74766c;
  line-height: 1.85;
  margin-bottom: 24px;
}
.warehouse-detail button {
  font-size: 11px;
  padding: 13px 18px;
}
.warehouse-bottom {
  position: absolute;
  bottom: 22px;
  left: 26px;
  right: 26px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.warehouse-hint {
  font-size: 10px;
  color: var(--muted);
  letter-spacing: 0.6px;
}
.warehouse-pagination {
  display: flex;
  gap: 16px;
  align-items: center;
}
.warehouse-pagination button {
  width: 42px;
  height: 42px;
  padding: 0;
  background: var(--panel);
}
.warehouse-count {
  font: 10px monospace;
}
.warehouse[data-extracting="true"] .warehouse-detail {
  opacity: 0;
  transform: translateY(25px);
  pointer-events: none;
}
.warehouse[data-extracting="true"] .warehouse-pagination {
  opacity: 0;
  pointer-events: none;
}
.warehouse.inspecting .warehouse-detail,
.warehouse.inspecting .warehouse-bottom,
.warehouse.inspecting .warehouse-topline {
  opacity: 0;
  pointer-events: none;
}
.warehouse.inspecting .warehouse-stage {
  height: clamp(460px, 55vh, 720px);
}
.warehouse-fallback .warehouse-surface {
  background: url("./archive-brand.svg") 12% 50%/45% auto no-repeat;
}
.warehouse-fallback.inspecting .warehouse-surface {
  background-position: 0 50%;
  background-size: 55% auto;
}
.archive-caption {
  display: flex;
  gap: 35px;
  font-size: 9px;
  letter-spacing: 1px;
  color: var(--muted);
  padding: 18px 0;
}
.archive-caption span:last-child {
  margin-left: auto;
}
.detail-panel {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 47%;
  padding: 29px 32px;
  display: flex;
  flex-direction: column;
  background: linear-gradient(
    90deg,
    rgba(234, 230, 222, 0.8),
    rgba(234, 230, 222, 0.98) 18%
  );
  animation: detail-in 0.5s both;
}
.detail-eyebrow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 9px;
  letter-spacing: 1px;
  margin-bottom: 18px;
}
.detail-eyebrow button {
  border: 0;
  font-size: 10px;
  padding: 7px;
}
.detail-panel h2 {
  font-size: 26px;
  margin: 0 0 9px;
  line-height: 1.3;
}
.detail-sub {
  font-size: 12px;
  margin: 0 0 20px;
}
.detail-sub span {
  font-size: 9px;
  margin-left: 18px;
  color: var(--muted);
}
.detail-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid var(--ink);
  gap: 24px;
  padding-top: 19px;
}
.detail-meta small {
  font-size: 8px;
  color: var(--muted);
  letter-spacing: 0.6px;
}
.detail-meta p {
  font-size: 11px;
  margin: 8px 0 20px;
}
.detail-tabs {
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
  font-size: 10px;
  padding: 0 0 12px;
}
.detail-tabs span {
  font: 9px monospace;
  color: var(--muted);
}
.detail-list {
  flex: 1;
  overflow: auto;
  min-height: 0;
}
.detail-actions {
  display: flex;
  gap: 12px;
  padding-top: 20px;
  font-size: 11px;
}
.detail-actions .primary {
  flex: 1;
  text-align: left;
}
.file-row {
  display: flex;
  align-items: center;
  text-align: left;
  gap: 15px;
  width: 100%;
  border: 0;
  border-bottom: 1px solid var(--line);
  padding: 16px 0;
}
.file-row:hover {
  background: #dcdecf;
}
.file-row > div {
  flex: 1;
}
.file-row b {
  font-size: 12px;
  font-weight: 500;
  line-height: 1.7;
}
.file-row small {
  display: block;
  margin-top: 3px;
  font-size: 9px;
  color: var(--muted);
}
.file-icon {
  border: 1px solid #aeb39c;
  width: 33px;
  height: 39px;
  display: grid;
  place-items: center;
  font: 9px monospace;
  color: #6c7850;
}
.list-title {
  font-size: 10px;
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}
.question-row {
  border-bottom: 1px solid var(--line);
}
summary {
  cursor: pointer;
  list-style: none;
}
summary::-webkit-details-marker {
  display: none;
}
.question-row summary {
  display: flex;
  gap: 14px;
  align-items: center;
  padding: 16px 0;
}
.question-row summary > span:first-child {
  font: 20px monospace;
  color: #838979;
}
.question-row summary > div {
  flex: 1;
}
.question-row summary b {
  font-size: 11px;
  font-weight: 500;
  line-height: 1.7;
}
.question-row summary small {
  display: block;
  font-size: 9px;
  color: var(--muted);
  margin-top: 6px;
}
.question-menu {
  display: flex;
  gap: 12px;
  padding: 8px 0 15px;
}
.question-menu button {
  font-size: 10px;
  padding: 8px 12px;
}
.results-label {
  font-size: 10px;
  margin: 20px 0;
  color: var(--muted);
}
.result-row {
  display: flex;
  width: 100%;
  gap: 20px;
  align-items: center;
  text-align: left;
  border: 0;
  border-bottom: 1px solid var(--line);
  padding: 15px 0;
  font-size: 12px;
}
.result-row b {
  font-weight: 500;
  flex: 1;
}
.result-row > span:first-child {
  font: 12px monospace;
  color: var(--muted);
}
.result-row > span:last-child {
  font-size: 10px;
}
.result-row .tag {
  font-size: 9px;
}
footer {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 25px 3.4vw;
  font-size: 8px;
  letter-spacing: 1px;
  color: var(--muted);
}
footer > span:last-child {
  color: var(--ink);
}
footer b {
  margin-left: 15px;
}
.login {
  min-height: 100dvh;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  position: relative;
  padding: 8vh 8vw 100px;
  gap: 6vw;
  align-items: center;
}
.login-meta {
  position: absolute;
  top: 35px;
  left: 4vw;
  display: flex;
  gap: 20px;
  align-items: center;
}
.login-meta b {
  font-size: 27px;
  letter-spacing: -2px;
}
.login-meta span {
  font-size: 9px;
  letter-spacing: 1px;
  border-left: 1px solid var(--line);
  padding-left: 20px;
}
.login-art {
  position: relative;
  min-height: 580px;
  display: flex;
  flex-direction: column;
  justify-content: end;
}
.login-art > .login-card {
  position: absolute;
  top: 35px;
  left: 5%;
  width: 88%;
  max-width: 490px;
  box-shadow: -20px 22px 28px #92907c26;
  transform: perspective(900px) rotateY(-15deg) rotateX(7deg) rotateZ(-10deg);
  animation: card-float 8s ease-in-out infinite;
  mix-blend-mode: multiply;
}
.login-orbit {
  position: absolute;
  border: 1px solid #c6c8b966;
  width: 82%;
  aspect-ratio: 1;
  border-radius: 50%;
  top: 10px;
  left: 5%;
  transform: rotateX(30deg);
}
.login-orbit:after {
  content: "";
  position: absolute;
  inset: 30px;
  border: 1px dashed #c8caba;
  border-radius: 50%;
}
.cross {
  position: absolute;
  font-size: 18px;
  font-weight: 300;
  color: #8e9280;
}
.c1 {
  left: 0;
  top: 30px;
}
.c2 {
  right: 0;
  bottom: 140px;
}
.login-word {
  font-size: 43px;
  line-height: 1.5;
  font-weight: 600;
  letter-spacing: 3px;
  position: relative;
  padding-top: 350px;
}
.login-word i {
  font-style: normal;
  color: #7d8660;
}
.login-art > small {
  font-size: 8px;
  letter-spacing: 2px;
  margin-top: 20px;
}
.login-panel {
  max-width: 420px;
  justify-self: end;
  width: 100%;
  padding-top: 25px;
}
.login-panel > small {
  font-size: 9px;
  letter-spacing: 2px;
  color: var(--muted);
}
.login-panel h1 {
  font-size: 30px;
  margin: 21px 0 30px;
}
.login-panel h1 span {
  display: block;
  font-size: 11px;
  font-weight: 400;
  color: var(--muted);
  margin-top: 13px;
  letter-spacing: 0.3px;
}
.role-tabs {
  display: flex;
  border-bottom: 1px solid var(--line);
  margin-bottom: 26px;
}
.role-tabs button {
  flex: 1;
  border: 0;
  border-bottom: 2px solid transparent;
  font-size: 12px;
}
.role-tabs button.active {
  border-bottom-color: var(--ink);
  background: #dcdfcd;
}
.login-enter {
  width: 100%;
  display: flex;
  justify-content: space-between;
  margin-top: 26px;
  padding: 16px 20px;
  font-size: 12px;
}
.prototype-note {
  font-size: 10px;
  color: var(--muted);
  line-height: 1.9;
  margin-top: 18px;
}
.login-footer {
  position: absolute;
  left: 4vw;
  right: 4vw;
  bottom: 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 8px;
  letter-spacing: 1px;
}
.login-footer button {
  border: 0;
  font-size: 10px;
  padding: 10px;
}
.boot {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100dvh;
  max-width: none;
  max-height: none;
  border: 0;
  margin: 0;
  padding: 0;
  background: var(--paper);
  color: var(--ink);
  z-index: 999;
  overflow: hidden;
}
.boot[open] {
  display: flex;
  align-items: center;
  justify-content: center;
}
.boot::backdrop {
  background: var(--paper);
}
body:has(.boot[open]) {
  overflow: hidden;
}
.boot-content {
  width: min(380px, 70vw);
  text-align: center;
}
.boot-content svg {
  width: 100%;
  height: auto;
  overflow: visible;
  display: block;
}
.brand-letters {
  font-family: Arial, sans-serif;
  font-weight: 900;
  font-size: 53px;
  letter-spacing: -5px;
}
.boot p {
  font-size: 13px;
  letter-spacing: 10px;
  padding-left: 10px;
  margin: 12px 0 0;
}
.boot small {
  display: block;
  margin-top: 16px;
  font-size: 10px;
  letter-spacing: 3px;
  opacity: 0.5;
}
.boot-skip {
  position: absolute;
  right: 35px;
  bottom: 30px;
  font-size: 11px;
}
.boot-skip span {
  margin-left: 25px;
}
dialog:not(.boot) {
  border: 1px solid #bfc1b0;
  background: var(--panel);
  color: var(--ink);
  padding: 0;
  width: min(560px, 94vw);
  max-height: 90dvh;
  box-shadow: 0 25px 100px #252a2326;
}
dialog.wide {
  width: min(920px, 94vw);
}
dialog::backdrop {
  background: rgba(46, 48, 38, 0.33);
  backdrop-filter: blur(7px);
}
body:has(#modal[open]) {
  overflow: hidden;
}
.modal-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 25px 30px 20px;
  border-bottom: 1px solid var(--line);
  position: sticky;
  top: 0;
  background: var(--panel);
  z-index: 3;
}
.modal-head small {
  font-size: 8px;
  letter-spacing: 1.5px;
  color: var(--muted);
}
.modal-head h2 {
  margin: 9px 0 0;
  font-size: 22px;
}
.modal-head .icon {
  border: 0;
  padding: 5px 10px;
  font-size: 25px;
}
.modal-body {
  padding: 28px 30px;
}
.modal-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 25px;
  font-size: 11px;
}
.modal-actions > span {
  color: var(--muted);
  font-size: 10px;
}
.sticky {
  position: sticky;
  bottom: -28px;
  background: var(--panel);
  padding: 18px 0;
  border-top: 1px solid var(--line);
  z-index: 2;
}
.profile-info {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.profile-info small {
  color: var(--muted);
}
.profile-info p {
  font-size: 14px;
  margin: 10px 0;
}
.role-switch {
  display: grid;
  gap: 10px;
  margin-top: 20px;
}
.question-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.question-meta > span:last-child {
  margin-left: auto;
  font-size: 12px;
}
.question-text {
  font-size: 17px;
  font-weight: 400;
  line-height: 1.95;
  margin: 25px 0;
  white-space: pre-wrap;
}
.options {
  display: grid;
  gap: 10px;
}
.option {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 16px 18px;
  text-align: left;
  border: 1px solid var(--line);
  font-size: 13px;
  background: #eeede4;
  cursor: pointer;
}
.option > span {
  display: grid;
  place-items: center;
  border: 1px solid #bcbfae;
  width: 27px;
  height: 27px;
  font: 12px monospace;
  flex: none;
}
.option.selected,
.option:has(input:checked) {
  border-color: #7c8960;
  background: #dfe4cd;
}
.option input {
  width: 14px;
  height: 14px;
}
.answer-input {
  width: 100%;
  margin: 0 0 12px;
  min-height: 50px;
}
.answer-input:is(textarea) {
  min-height: 160px;
  line-height: 1.9;
}
.answer-box {
  border-left: 3px solid var(--accent);
  background: #e0e4d2;
  padding: 20px;
}
.answer-box small {
  font-size: 9px;
  color: var(--muted);
}
.answer-box p {
  margin: 13px 0 0;
  white-space: pre-wrap;
}
.explanation {
  margin-top: 28px;
}
.explanation p {
  font-size: 14px;
  white-space: pre-wrap;
  line-height: 2;
}
.file-frame {
  border: 1px solid var(--line);
  width: 100%;
  height: 60dvh;
  background: #fff;
}
.file-image {
  display: block;
  max-width: 100%;
  max-height: 65dvh;
  object-fit: contain;
  margin: auto;
}
.text-file {
  white-space: pre-wrap;
  line-height: 2.1;
  font-size: 15px;
  padding: 10px 20px 30px;
}
.download-link {
  display: block;
  text-align: center;
  padding: 15px;
  text-decoration: none;
}
.select-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 15px 0;
  font-size: 12px;
}
.select-head label {
  display: flex;
  gap: 7px;
  align-items: center;
}
.select-question {
  display: flex;
  gap: 13px;
  padding: 17px 6px;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
  align-items: flex-start;
  cursor: pointer;
}
.select-question input {
  margin-top: 2px;
}
.select-question b {
  font-weight: 400;
  line-height: 1.8;
  font-size: 12px;
}
.select-question small {
  display: block;
  color: var(--muted);
  margin-top: 8px;
}
.ai-intro {
  display: flex;
  gap: 24px;
  align-items: center;
  margin-bottom: 25px;
}
.ai-symbol {
  font-size: 52px;
  color: #858e60;
}
.ai-intro h3 {
  margin-bottom: 8px;
}
.ai-intro p {
  font-size: 12px;
  color: var(--muted);
  margin: 0;
}
.ai-steps {
  padding: 0;
  display: flex;
  list-style: none;
  gap: 28px;
  margin: 35px 0;
}
.ai-steps li {
  display: flex;
  gap: 13px;
  font-size: 12px;
  flex: 1;
}
.ai-steps b {
  font-size: 26px;
  font-weight: 400;
  color: #90977c;
}
.ai-steps small {
  display: block;
  line-height: 1.8;
  font-size: 10px;
  color: var(--muted);
  margin-top: 8px;
}
.import-question {
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
}
.import-question b {
  font-weight: 500;
  line-height: 1.9;
}
.import-question p {
  font-size: 12px;
  color: #616953;
}
.work-stats {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1.8fr;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  margin: 30px 0 40px;
}
.work-stats > div {
  padding: 30px;
  border-right: 1px solid var(--line);
}
.work-stats > div:first-child {
  padding-left: 0;
}
.work-stats > div:last-child {
  border: 0;
}
.work-stats small {
  display: block;
  font-size: 11px;
  color: var(--muted);
}
.work-stats strong {
  font: 56px Arial;
  letter-spacing: -3px;
  display: block;
  margin-top: 12px;
}
.stat-quote {
  font-size: 21px;
  line-height: 1.6;
  color: #7d8566;
}
.stat-quote small {
  margin-top: 18px;
  font-size: 8px;
  letter-spacing: 2px;
}
.work-heading {
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid var(--ink);
  padding: 0 0 18px;
  font-size: 13px;
}
.work-heading span {
  font: 10px monospace;
  color: var(--muted);
}
.assignment-row {
  display: flex;
  align-items: center;
  gap: 35px;
  border-bottom: 1px solid var(--line);
  padding: 30px 0;
}
.assignment-number {
  font: 36px Arial;
  color: #8f957f;
}
.assignment-row > div {
  flex: 1;
}
.assignment-row h2 {
  font-size: 18px;
  margin: 10px 0 8px;
}
.assignment-row small {
  font-size: 10px;
  color: var(--muted);
}
.assignment-row p {
  font-size: 11px;
  color: var(--muted);
  margin: 0;
}
.assignment-row button {
  font-size: 11px;
}
.status {
  font-size: 11px;
  border-left: 3px solid #acb08f;
  padding-left: 10px;
  white-space: nowrap;
}
.status.submitted {
  border-color: #bd9e65;
}
.status.graded {
  border-color: #6b8053;
}
.assignment-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 11px;
  color: var(--muted);
  margin-bottom: 25px;
}
.answer-layout {
  display: grid;
  grid-template-columns: 70px 1fr;
  gap: 25px;
}
.question-index {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: start;
}
.question-index small {
  font-size: 7px;
  letter-spacing: 0.6px;
  margin-bottom: 5px;
}
.question-index button {
  font: 12px monospace;
  width: 44px;
  height: 44px;
  padding: 0;
}
.question-index button.answered {
  background: #dde3cd;
}
.answer-question {
  border-top: 1px solid var(--line);
  scroll-margin-top: 100px;
}
.answer-question > summary {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 18px 0;
}
.answer-question > summary > span:first-child {
  font: 24px Arial;
  color: #879274;
}
.answer-question > summary > span:last-child {
  margin-left: auto;
  font-size: 11px;
  color: var(--muted);
}
.answer-question > summary b {
  font-size: 12px;
}
.answer-body {
  padding-bottom: 16px;
}
.answer-body .question-text {
  font-size: 15px;
  margin-top: 10px;
}
.grade-controls {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 15px;
  margin-top: 20px;
}
.grade-controls textarea {
  min-height: 70px;
}
.grade-banner {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 18px 25px;
  background: #dce1cd;
  margin-bottom: 25px;
}
.grade-banner > span {
  font-size: 12px;
}
.grade-banner strong {
  font-size: 32px;
  font-weight: 400;
}
.grade-banner strong small {
  font-size: 13px;
}
.grade-banner p {
  font-size: 11px;
  color: var(--muted);
  margin: 0 0 0 auto;
}
.feedback {
  background: #e0e5d3;
  padding: 15px;
  margin-top: 20px;
  font-size: 12px;
}
.feedback p {
  margin: 8px 0 0;
}
.table-wrap {
  overflow: auto;
}
table {
  border-collapse: collapse;
  width: 100%;
  text-align: left;
  font-size: 13px;
}
th {
  font-size: 11px;
  font-weight: 400;
  color: var(--muted);
  border-bottom: 1px solid var(--ink);
  padding: 15px 20px;
}
td {
  padding: 22px 20px;
  border-bottom: 1px solid var(--line);
}
td small {
  display: block;
  color: var(--muted);
  margin-top: 8px;
  font: 9px monospace;
}
td b {
  font-weight: 500;
}
#toast {
  position: fixed;
  bottom: 28px;
  left: 50%;
  transform: translate(-50%, 15px);
  background: var(--ink);
  color: #eee;
  padding: 15px 25px;
  max-width: 90vw;
  width: max-content;
  z-index: 1000;
  font-size: 12px;
  box-shadow: 0 5px 30px #0002;
  opacity: 0;
  pointer-events: none;
  transition: 0.25s;
}
#toast.show {
  opacity: 1;
  transform: translate(-50%, 0);
}
@keyframes detail-in {
  from {
    opacity: 0;
    transform: translateX(20px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes card-float {
  0%,
  100% {
    transform: perspective(900px) rotateY(-15deg) rotateX(7deg) rotateZ(-10deg)
      translateY(0);
  }
  50% {
    transform: perspective(900px) rotateY(-11deg) rotateX(6deg) rotateZ(-8deg)
      translateY(-14px);
  }
}
@media (min-width: 1600px) {
  .workspace {
    max-width: 1600px;
    margin: auto;
  }
  header,
  footer {
    max-width: 1710px;
    margin: auto;
  }
  .warehouse-stage {
    height: 650px;
  }
}
@media (max-width: 1100px) {
  .section-heading > p {
    display: none;
  }
  .session {
    display: none;
  }
  .header-right {
    gap: 10px;
  }
  .nav-note {
    font-size: 9px;
    max-width: 170px;
    line-height: 1.7;
  }
  nav button {
    min-width: 120px;
    padding: 17px 15px;
  }
  .warehouse-detail {
    right: 3%;
    width: 310px;
  }
  .detail-panel {
    width: 51%;
    padding: 25px;
  }
  .section-heading h1 > span {
    font-size: 9px;
    letter-spacing: 1px;
    margin-left: 15px;
  }
  .login {
    padding: 110px 6vw 90px;
    gap: 5vw;
  }
  .login-word {
    font-size: 36px;
  }
  .login-art {
    min-height: 510px;
  }
  .login-word {
    padding-top: 280px;
  }
  .assignment-row {
    gap: 20px;
  }
  .status {
    font-size: 10px;
  }
}
@media (max-width: 760px) {
  header {
    height: 112px;
    padding: 24px 5vw;
  }
  .brand > b {
    font-size: 35px;
  }
  .brand > strong {
    font-size: 17px;
  }
  .brand > span {
    font-size: 7px;
  }
  .header-search span,
  .header-search kbd {
    display: none;
  }
  .header-search {
    font-size: 25px;
    padding: 10px;
  }
  .profile-button {
    padding: 8px 0 8px 13px;
    font-size: 11px;
  }
  .workspace {
    margin: 0 5vw;
  }
  nav {
    gap: 0;
  }
  nav button {
    flex: 1;
    min-width: 0;
    padding: 15px 5px;
    font-size: 12px;
    text-align: center;
  }
  nav button small {
    display: none;
  }
  nav button > span {
    margin-left: 6px;
    font-size: 8px;
  }
  .nav-note {
    display: none;
  }
  .section-heading {
    margin: 26px 0 19px;
    gap: 10px;
  }
  .section-heading h1 {
    font-size: 26px;
  }
  .section-heading h1 > span {
    display: block;
    font-size: 8px;
    letter-spacing: 1px;
    margin: 8px 0 0;
  }
  .section-heading small {
    font-size: 7px;
  }
  .section-heading button {
    font-size: 10px;
    padding: 10px;
  }
  .actions {
    gap: 5px;
  }
  .archive-tools {
    gap: 7px;
    flex-wrap: wrap;
    margin-bottom: 13px;
  }
  .searchbox {
    width: calc(100% - 120px);
  }
  .archive-tools select {
    max-width: 113px;
    font-size: 10px;
  }
  .tools-note {
    display: none;
  }
  .archive-tools #result-count {
    font-size: 9px;
  }
  .warehouse-stage {
    height: 520px;
  }
  .warehouse-topline {
    left: 15px;
    right: 15px;
    top: 17px;
    font-size: 7px;
    letter-spacing: 0.5px;
  }
  .warehouse-detail {
    top: auto;
    bottom: 80px;
    left: 18px;
    right: 18px;
    width: auto;
    padding: 20px 22px;
    background: transparent;
  }
  .warehouse-title {
    font-size: 23px;
    margin: 12px 0 8px;
  }
  .warehouse-description {
    font-size: 11px;
    margin-bottom: 16px;
  }
  .warehouse-bottom {
    left: 18px;
    right: 18px;
    bottom: 19px;
  }
  .warehouse-hint {
    font-size: 8px;
    max-width: 140px;
    line-height: 1.7;
  }
  .warehouse-pagination {
    gap: 9px;
  }
  .warehouse-pagination button {
    width: 35px;
    height: 35px;
  }
  .archive-caption {
    gap: 12px;
    flex-wrap: wrap;
    font-size: 8px;
    line-height: 1.8;
  }
  .archive-caption span:last-child {
    display: none;
  }
  .warehouse.inspecting .warehouse-stage {
    height: 890px;
  }
  .detail-panel {
    top: 270px;
    bottom: 0;
    width: 100%;
    padding: 24px;
    background: rgba(235, 232, 223, 0.97);
    border-top: 1px solid var(--line);
  }
  .detail-panel h2 {
    font-size: 23px;
  }
  .detail-eyebrow {
    margin-bottom: 13px;
  }
  .detail-meta {
    gap: 15px;
  }
  .detail-meta p {
    margin-bottom: 15px;
  }
  .warehouse.inspecting .warehouse-surface {
    bottom: auto;
    height: 520px;
  }
  .detail-sub {
    margin-bottom: 14px;
  }
  .detail-actions {
    padding-top: 14px;
  }
  .detail-actions button {
    font-size: 10px;
    padding: 12px;
  }
  .warehouse-fallback .warehouse-surface {
    background-size: 85%;
    background-position: center 5%;
  }
  .warehouse-fallback.inspecting .warehouse-surface {
    background-size: 90%;
    background-position: center top;
  }
  .result-row {
    gap: 10px;
    flex-wrap: wrap;
  }
  .result-row > span:nth-child(3) {
    display: none;
  }
  footer {
    padding: 24px 5vw;
    font-size: 7px;
  }
  footer > span:nth-child(2) {
    display: none;
  }
  .login {
    display: block;
    padding: 115px 8vw 100px;
  }
  .login-meta {
    top: 30px;
    left: 8vw;
  }
  .login-art {
    display: none;
  }
  .login-panel {
    max-width: 500px;
    margin: auto;
    padding-top: 20px;
  }
  .login-panel h1 {
    font-size: 30px;
  }
  .login-footer {
    left: 8vw;
    right: 8vw;
    bottom: 20px;
  }
  .login-footer > span:nth-child(2) {
    display: none;
  }
  .login-panel .field {
    margin-bottom: 18px;
  }
  .modal-head {
    padding: 20px;
  }
  .modal-head h2 {
    font-size: 20px;
  }
  .modal-body {
    padding: 20px;
  }
  .modal-actions {
    flex-wrap: wrap;
  }
  .two {
    gap: 12px;
  }
  .work-stats {
    grid-template-columns: repeat(3, 1fr);
    margin: 24px 0 30px;
  }
  .work-stats > div {
    padding: 23px 17px;
  }
  .work-stats strong {
    font-size: 39px;
  }
  .work-stats .stat-quote {
    display: none;
  }
  .work-stats > div:nth-child(3) {
    border: 0;
  }
  .work-stats small {
    font-size: 10px;
  }
  .assignment-row {
    display: grid;
    grid-template-columns: 32px 1fr;
    gap: 13px;
    padding: 24px 0;
  }
  .assignment-number {
    font-size: 26px;
  }
  .assignment-row > div {
    grid-column: 2;
  }
  .assignment-row h2 {
    font-size: 16px;
    line-height: 1.6;
  }
  .assignment-row .status {
    grid-column: 2;
    font-size: 10px;
    justify-self: start;
  }
  .assignment-row button {
    grid-column: 2;
    justify-self: start;
    padding: 10px 15px;
  }
  .answer-layout {
    display: block;
  }
  .question-index {
    flex-direction: row;
    gap: 8px;
    margin-bottom: 20px;
    flex-wrap: wrap;
  }
  .question-index small {
    width: 100%;
  }
  .question-index button {
    width: 35px;
    height: 35px;
  }
  .question-text {
    font-size: 15px;
  }
  .option {
    font-size: 12px;
    padding: 12px;
    gap: 10px;
  }
  .grade-controls {
    grid-template-columns: 80px 1fr;
    gap: 10px;
  }
  .grade-banner {
    padding: 15px;
    flex-wrap: wrap;
    gap: 12px;
  }
  .grade-banner p {
    width: 100%;
  }
  .assignment-meta {
    align-items: start;
    gap: 10px;
    font-size: 10px;
    line-height: 1.8;
  }
  .ai-steps {
    display: block;
    margin: 25px 0;
  }
  .ai-steps li {
    margin: 18px 0;
  }
  .ai-intro {
    gap: 15px;
  }
  .ai-intro h3 {
    font-size: 15px;
  }
  .sticky {
    bottom: -20px;
  }
  .file-frame {
    height: 65dvh;
  }
  .question-meta > span:last-child {
    margin-left: 0;
  }
  .profile-info {
    gap: 10px;
  }
}
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}

.schema-example {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  background: #e5e5da;
  padding: 20px;
  font: 12px/1.8 monospace;
}
.login-panel .two:has(.field:only-child) {
  grid-template-columns: 1fr;
}

.dialog-toast {
  position: sticky;
  top: 90px;
  z-index: 4;
  background: #dce1cb;
  border-bottom: 1px solid #aeb796;
  padding: 14px 25px;
  font-size: 12px;
  line-height: 1.8;
}

/* Keep the body scrollable independently from its header and question rail. */
#modal[open] {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
#modal .modal-head {
  position: relative;
  flex: none;
}
#modal .modal-body {
  overflow-y: auto;
  min-height: 0;
  overscroll-behavior: contain;
}
#modal .modal-title {
  min-width: 0;
}
#modal .modal-title h2 {
  overflow-wrap: anywhere;
}
#modal .modal-head-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex: none;
  gap: 8px;
  margin-left: 18px;
}
#modal .viewer-fullscreen-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 38px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: linear-gradient(145deg, #faf8f080, #d9d8ce80);
  box-shadow: inset 0 1px #ffffff90, 0 1px 3px #252a2310;
  color: var(--ink);
  font-size: 12px;
  white-space: nowrap;
}
#modal .viewer-fullscreen-toggle:hover {
  background: #e0e2d6;
}
#modal .viewer-fullscreen-toggle:focus-visible {
  outline: 2px solid #788565;
  outline-offset: 3px;
}
#modal .viewer-fullscreen-toggle svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
#modal.viewer-fullscreen {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  max-width: none;
  max-height: none;
  margin: 0;
  border: 0;
  border-radius: 0;
}
#modal.viewer-fullscreen > .modal-head {
  padding-top: max(18px, env(safe-area-inset-top));
  padding-left: max(24px, env(safe-area-inset-left));
  padding-right: max(24px, env(safe-area-inset-right));
}
#modal.viewer-fullscreen > .modal-body {
  flex: 1;
  padding-left: max(24px, env(safe-area-inset-left));
  padding-right: max(24px, env(safe-area-inset-right));
  padding-bottom: max(24px, env(safe-area-inset-bottom));
}
#modal.viewer-fullscreen > .dialog-toast {
  flex: none;
}
#modal.viewer-fullscreen .file-frame {
  display: block;
  height: max(240px, calc(var(--viewer-body-height, 85dvh) - 90px));
}
#modal.viewer-fullscreen .file-image {
  max-height: max(240px, calc(var(--viewer-body-height, 85dvh) - 90px));
}
#modal.viewer-fullscreen .assignment-pdf-frame {
  display: block;
  height: max(240px, calc(var(--viewer-body-height, 85dvh) - 125px));
}
#modal.viewer-fullscreen .question-index {
  max-height: max(180px, calc(var(--viewer-body-height, 85dvh) - 60px));
}
#modal.viewer-fullscreen .photo-canvas-scroll {
  max-height: max(220px, calc(var(--viewer-body-height, 85dvh) - 205px));
}
#modal.viewer-fullscreen .pdf-paper-scroll,
#modal.viewer-fullscreen .pdf-score-panel {
  max-height: max(220px, calc(var(--viewer-body-height, 85dvh) - 205px));
}
#modal.viewer-fullscreen .pdf-paper,
#modal.viewer-fullscreen .pdf-feedback-page {
  max-width: 1100px;
}
@media (max-width: 760px) {
  #modal .modal-head-actions {
    gap: 3px;
    margin-left: 10px;
  }
  #modal .viewer-fullscreen-toggle {
    min-height: 40px;
    padding: 8px;
    gap: 5px;
  }
  #modal.viewer-fullscreen > .modal-head {
    padding-left: max(14px, env(safe-area-inset-left));
    padding-right: max(14px, env(safe-area-inset-right));
  }
  #modal.viewer-fullscreen > .modal-body {
    padding: 16px max(14px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));
  }
  #modal.viewer-fullscreen .pdf-score-panel {
    max-height: none;
  }
}
.question-index {
  position: sticky;
  top: 0;
  align-self: start;
  max-height: calc(90dvh - 210px);
  overflow: auto;
  padding: 8px 0;
  background: var(--panel);
  z-index: 2;
}
.question-index button {
  flex-shrink: 0;
}
.answer-layout > div {
  min-width: 0;
}
.question-source {
  margin: 18px 0;
}
.question-source img {
  display: block;
  width: 100%;
  height: auto;
  background: #fff;
}
.question-source figcaption {
  font-size: 10px;
  color: var(--muted);
  margin-top: 8px;
}
.question-text,
.import-question b {
  white-space: pre-wrap;
}
.grading-toolbar {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 14px;
  padding: 18px;
  background: #e4e6da;
  margin-bottom: 24px;
}
.grading-toolbar b,
.grading-toolbar small {
  display: block;
}
.grading-toolbar b {
  margin-top: 6px;
}
.grading-toolbar label,
.grading-toolbar > small {
  grid-column: 1 / -1;
}
.grading-toolbar small {
  font-size: 10px;
  color: var(--muted);
}
.work-filters {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: 14px;
  margin: 25px 0;
}
.work-filters label {
  flex: 1;
  min-width: 145px;
  font-size: 11px;
}
.work-filters select,
.grading-toolbar select {
  width: 100%;
  margin-top: 8px;
}
@media (max-width: 700px) {
  .question-index {
    flex-wrap: nowrap;
    overflow-x: auto;
    max-width: 100%;
    max-height: none;
    padding: 8px 0;
  }
  .question-index small {
    display: none;
  }
  .grading-toolbar {
    grid-template-columns: 1fr;
  }
  .grading-toolbar .actions {
    flex-wrap: wrap;
  }
  .work-filters button {
    width: 100%;
  }
}

@media (min-width: 701px) {
  .answer-layout {
    grid-template-columns: 80px 1fr;
  }
  .question-index {
    display: grid;
    grid-template-columns: repeat(2, 34px);
    gap: 8px;
  }
  .question-index small {
    grid-column: 1 / -1;
  }
  .question-index button {
    width: 34px;
    height: 36px;
  }
}

.edit-archive { float:right; margin:16px 0 8px 12px; padding:8px 12px; font-size:11px; }

/* Question bank: render only the selected page. */
.bank-tools { flex-wrap: wrap; }
.bank-tools .searchbox { flex: 1; min-width: 230px; }
.bank-size-label { display: flex; align-items: center; gap: 8px; white-space: nowrap; font-size: 12px; }
.bank-row { display: grid; grid-template-columns: 48px minmax(0,1fr) auto; gap: 24px; padding: 26px 12px; border-bottom: 1px solid var(--line, #cccac3); }
.bank-number { font-size: 13px; opacity: .55; padding-top: 7px; }
.bank-meta { display: flex; align-items: center; gap: 12px; }
.bank-meta small { opacity: .6; }
.bank-question h2 { font-size: 16px; font-weight: 500; line-height: 1.8; margin: 12px 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.bank-row-actions { display: flex; flex-direction: column; justify-content: center; gap: 8px; }
.bank-row-actions button { white-space: nowrap; }
.bank-pagination { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px; padding: 28px 0; border: 0; }
.bank-pagination button { min-width: 40px; padding: 10px 14px; }
.bank-pagination > span { font-size: 12px; opacity: .6; padding: 0 8px; }
.card-detail { padding: 16px; }
.card-detail > p { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.7; }
.card-detail > small { display: block; margin-top: 20px; opacity: .55; }
.card-detail > button:last-child { margin-top: 14px; }
.attachment-retain { display: flex; align-items: center; gap: 8px; font-size: 12px; margin: 8px 0 16px; }
.attachment-retain input { width: auto; }
.chapter-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); gap: 20px; }
.chapter-card { padding: 32px; border: 1px solid #c9c8c0; background: #efeee880; }
.chapter-card > small { font-size: 10px; letter-spacing: .15em; opacity: .6; }
.chapter-card h2 { margin: 25px 0 12px; font-size: 23px; }
.chapter-card p { min-height: 40px; line-height: 1.7; opacity: .65; }
.chapter-card button { margin-top: 20px; }
.training-progress { display: flex; justify-content: space-between; gap: 20px; padding: 0 0 20px; font-size: 13px; }
.flip-card { display: block; width: 100%; padding: 0; border: 0; background: transparent; perspective: 1400px; cursor: pointer; text-align: left; }
.flip-inner { display: grid; transform-style: preserve-3d; transition: transform .65s cubic-bezier(.2,.7,.2,1); }
.flip-card.is-flipped .flip-inner { transform: rotateY(180deg); }
.flip-face { grid-area: 1/1; backface-visibility: hidden; -webkit-backface-visibility: hidden; display: flex; flex-direction: column; justify-content: space-between; min-height: 310px; gap: 32px; padding: 40px; border: 1px solid #cfcec4; background: linear-gradient(140deg,#f4f2e9,#e4e3db); box-shadow: 0 14px 40px #48483a12; }
.flip-face small { font-size: 11px; letter-spacing: .15em; color: #6e7165; }
.flip-face > span { font-size: 23px; line-height: 1.7; white-space: pre-wrap; overflow-wrap: anywhere; }
.flip-face em { font-size: 12px; opacity: .55; font-style: normal; }
.flip-back { transform: rotateY(180deg); background: linear-gradient(140deg,#e6e9df,#d9dfd0); }
#training-files { margin-top: 20px; }
.training-complete { text-align: center; padding: 50px 10px; }
.training-complete > small { letter-spacing: .2em; opacity: .6; }
.training-complete h2 { margin-top: 25px; }
.training-complete button { margin-top: 25px; }
@media(max-width:700px) {
  .bank-row { grid-template-columns: 32px minmax(0,1fr); gap: 12px; }
  .bank-row-actions { grid-column: 2; flex-direction: row; justify-content: flex-start; }
  .bank-meta { flex-wrap: wrap; }
  .flip-face { padding: 24px; min-height: 280px; }
  .flip-face > span { font-size: 19px; }
  .chapter-grid { grid-template-columns: 1fr; }
}
@media(prefers-reduced-motion:reduce) { .flip-inner { transition: none; } }

.knowledge-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; align-items: start; padding-bottom: 32px; }
.knowledge-resource { padding: 28px; background: #efeee680; border: 1px solid var(--line); min-width: 0; }
.knowledge-resource-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--muted); font-size: 11px; }
.knowledge-resource-top small { letter-spacing: .1em; }
.knowledge-resource h2 { margin: 20px 0 12px; font-size: 24px; line-height: 1.4; overflow-wrap: anywhere; }
.knowledge-resource > p { color: var(--muted); line-height: 1.8; font-size: 13px; }
.knowledge-tags { display: flex; flex-wrap: wrap; gap: 5px; margin: 18px 0 22px; }
.knowledge-files { border-top: 1px solid var(--line); }
.knowledge-files .file-row { width: 100%; }
.knowledge-files .file-row > div { min-width: 0; }
.knowledge-files .file-row b { white-space: normal; overflow-wrap: anywhere; }
.knowledge-grid > .empty { grid-column: 1 / -1; }
@media(max-width:760px) { .knowledge-grid { grid-template-columns: 1fr; } .knowledge-resource { padding: 22px; } }
.material-switch { display: flex; align-items: center; gap: 10px; white-space: nowrap; font-size: 11px; color: var(--muted); margin-left: auto; }
.material-switch select { min-width: 86px; color: var(--ink); }
.warehouse-fallback[data-material-mode="glass"] .warehouse-surface { opacity: .7; }
@media(max-width:760px) { .material-switch { margin-left: 0; } }

/* The complete detail body scrolls, so long metadata cannot squeeze the question list away. */
.detail-panel { min-height: 0; overflow: hidden; }
.detail-body { flex: 1 1 0; min-height: 0; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; touch-action: pan-y; scrollbar-gutter: stable; padding-right: 8px; }
.detail-body .detail-list { flex: none; overflow: visible; min-height: auto; }
.detail-eyebrow, .detail-actions { flex-shrink: 0; }
.detail-actions { border-top: 1px solid var(--line); margin-top: 10px; }
.archive-tag-summary { font-size: 11px; line-height: 1.7; margin: 8px 0 16px; }
.archive-tag-summary summary span { display: block; margin-top: 4px; color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.archive-tag-summary[open] summary span { text-decoration: none; }
.archive-tag-summary p { margin-bottom: 0; }
.bank-tag-button { cursor: pointer; border: 1px solid transparent; margin-right: 5px; }
.bank-tag-button:hover, .bank-tag-button[aria-pressed="true"] { color: var(--ink); background: #d8deca; border-color: #a5af90; }

/* A real interactive assembly replaces the login page's flat illustration. */
.login-model { position: absolute; top: 0; left: -8%; width: 112%; height: 410px; z-index: 2; }
.login-model-canvas { width: 100%; height: 325px; }
.login-model-canvas canvas { display: block; width: 100%; height: 100%; cursor: grab; touch-action: none; }
.login-model-canvas canvas:active { cursor: grabbing; }
.login-model-canvas canvas:focus-visible { outline: 1px solid var(--ink); outline-offset: -4px; }
.login-model-canvas img { height: 100%; max-width: 100%; object-fit: contain; display: block; margin: auto; }
.login-model-status { text-align: center; font-size: 10px; color: var(--muted); margin: 8px 0 0; letter-spacing: 1px; }
.login-model-parts { text-align: center; font-size: 9px; color: var(--muted); margin: 6px 0 0; visibility: hidden; }
.login-model[data-exploded="true"] .login-model-parts { visibility: visible; }
.login-art .login-word { padding-top: 420px; pointer-events: none; }
.login-art .login-orbit { pointer-events: none; }
@media (max-width: 1000px) and (min-width: 761px) {
  .login-model { left: -12%; width: 120%; }
}
@media (max-width: 760px) {
  .login-art { display: block; min-height: 375px; }
  .login-model { position: relative; left: -6%; width: 112%; height: 355px; }
  .login-model-canvas { height: 275px; }
  .login-art .login-word, .login-art > small, .login-art .cross, .login-art .login-orbit { display: none; }
  .login-panel { padding-top: 15px; }
}

.login-model-help { text-align: center; font-size: 11px; letter-spacing: 1px; color: var(--ink); margin: 14px 0 0; }

.archive-description { font-size:13px; line-height:1.8; color:var(--muted); white-space:pre-wrap; overflow-wrap:anywhere; }

/* Student directory, learning records and direct conversations. */
.student-space{display:grid;grid-template-columns:270px minmax(0,1fr);gap:28px;align-items:start}
.student-space.student-self{grid-template-columns:minmax(0,1fr);max-width:1200px;margin:auto}
.student-roster-panel{border:1px solid var(--line);padding:22px 14px;position:sticky;top:24px;background:var(--panel)}
.student-roster-panel>small{display:block;font-size:10px;letter-spacing:1px;margin:0 8px 24px;color:var(--muted)}
.student-roster-panel label{display:block;font-size:12px;margin:0 8px 12px}
.student-roster-panel select,.student-roster-panel>input{width:100%;margin-top:8px;padding:12px;background:transparent;border:1px solid var(--line);color:var(--ink)}
.student-roster-panel>input{width:calc(100% - 16px);margin:0 8px}
.roster-caption{display:flex;justify-content:space-between;font-size:9px;color:var(--muted);padding:22px 8px 12px}
.student-row{display:flex;align-items:center;gap:10px;width:100%;border:0;border-top:1px solid var(--line);padding:18px 8px;text-align:left;background:transparent}
.student-row:hover,.student-row.active{background:rgba(127,140,95,.15)}
.student-avatar{display:grid;place-items:center;flex-shrink:0;width:36px;height:40px;border:1px solid var(--line);font-size:12px}
.student-row b{font-size:14px}.student-row small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.student-row-metric{margin-left:auto;font:14px monospace;text-align:right}
.student-detail{min-width:0}.student-profile{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:10px 0 24px}
.student-profile small{font-size:10px;letter-spacing:2px;color:var(--muted)}.student-profile h2{font-size:30px;margin:14px 0 10px}.student-profile h2 span{font-size:13px;font-weight:400;margin-left:16px;color:var(--muted)}.student-profile p{font-size:12px;color:var(--muted);margin:0}
.student-downloads{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.student-downloads button{font-size:11px;padding:12px}
.student-tabs{display:flex;gap:28px;margin:24px 0}.student-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;padding:12px 0;font-size:13px;color:var(--muted)}.student-tabs [aria-selected=true]{color:var(--ink);border-bottom-color:var(--ink);font-weight:700}
.student-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);background:var(--panel)}.student-metrics article{padding:22px 18px;border-right:1px solid var(--line)}.student-metrics article:last-child{border:0}.student-metrics small{font-size:11px;color:var(--muted);display:block}.student-metrics strong{font-size:33px;font-weight:500;display:block;margin:14px 0}.student-metrics span{font-size:10px;color:var(--muted)}
.report-method{font-size:11px;color:var(--muted);line-height:1.8;margin:16px 0 24px}.report-two{display:grid;grid-template-columns:1fr 1fr;gap:20px}.report-card{padding:24px;border:1px solid var(--line);margin-bottom:20px;background:var(--panel);min-width:0}.report-card>small,.report-card-heading small{font-size:10px;letter-spacing:1px;color:var(--muted)}.report-card h3{font-size:18px;font-weight:500;margin:14px 0 28px}.report-bar{margin:22px 0}.report-bar>div{display:flex;justify-content:space-between;gap:12px;font-size:12px}.report-bar span{font-size:10px;color:var(--muted)}.report-bar meter{width:100%;height:8px;margin-top:10px;appearance:none;border:0;background:var(--line)}.report-bar meter::-webkit-meter-bar{background:var(--line);border:0;border-radius:0}.report-bar meter::-webkit-meter-optimum-value{background:#7f8960}.report-bar meter::-moz-meter-bar{background:#7f8960}
.submission-summary{display:flex;flex-wrap:wrap;gap:14px;font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding-top:20px;margin-top:30px}.submission-summary b{color:var(--ink);margin-left:5px}.score-trend{display:flex;align-items:end;gap:18px;overflow-x:auto;padding:8px 0}.score-column{text-align:center;flex:1;min-width:60px}.score-column>b{font:18px monospace;display:block;margin-bottom:12px}.score-column>b small{font-size:10px;color:var(--muted)}.score-track{height:110px;display:flex;align-items:end;background:rgba(127,137,96,.08)}.score-track span{display:block;width:100%;background:#899375;min-height:2px}.score-column>small{display:block;font:10px monospace;margin-top:12px;color:var(--muted)}.score-column>span{font:9px monospace;color:var(--muted)}
.report-card-heading{display:flex;align-items:center;justify-content:space-between}.report-card-heading>span{font:10px monospace;color:var(--muted)}.report-table-scroll{overflow:auto}.report-table{width:100%;border-collapse:collapse;font-size:12px}.report-table th{text-align:left;font-size:10px;font-weight:400;color:var(--muted);padding:12px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.report-table td{padding:16px 10px;border-bottom:1px solid var(--line);min-width:85px}.report-table td:first-child{min-width:160px}.report-table td small{display:block;font-size:10px;color:var(--muted);margin-top:6px}.report-table .demo-label{display:inline;margin-left:8px;border:1px solid var(--line);padding:1px 5px}.status-dot:before{content:'';display:inline-block;width:5px;height:5px;background:#a49673;margin-right:6px}.status-dot.graded:before{background:#7e8968}.student-empty{padding:48px 16px;color:var(--muted);font-size:13px;text-align:center}
.student-chat{border:1px solid var(--line);padding:24px;background:var(--panel)}.chat-heading{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:16px}.chat-heading small{font-size:9px;letter-spacing:2px;color:var(--muted)}.chat-heading h3{margin:10px 0 0;font-size:20px}.chat-heading>span{font-size:11px;color:var(--muted)}.chat-history{height:360px;overflow:auto;overscroll-behavior:contain;padding:12px 8px}.chat-message{max-width:80%;margin:0 0 24px}.chat-message small{font-size:10px;color:var(--muted);display:block;margin-bottom:7px}.chat-message p{margin:0;padding:16px 18px;background:rgba(127,137,96,.1);font-size:13px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.chat-message.mine{margin-left:auto}.chat-message.mine small{text-align:right}.chat-message.mine p{background:#3d4636;color:#f1f0e7}.student-chat form{border-top:1px solid var(--line);padding-top:22px}.student-chat form label{font-size:12px}.student-chat textarea{display:block;width:100%;margin-top:12px;padding:14px;border:1px solid var(--line);background:transparent;color:inherit;resize:vertical;font:inherit;font-size:13px;box-sizing:border-box}.student-chat form>div{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.student-chat form>div span{font-size:10px;color:var(--muted)}.student-chat form button{padding:12px 20px;font-size:12px}
@media(max-width:1000px){.student-space{grid-template-columns:230px minmax(0,1fr);gap:18px}.student-metrics{grid-template-columns:1fr 1fr}.student-metrics article:nth-child(2){border-right:0}.student-metrics article:nth-child(-n+2){border-bottom:1px solid var(--line)}.report-two{grid-template-columns:1fr}.student-profile{flex-direction:column}}
@media(max-width:700px){.student-space{grid-template-columns:1fr}.student-roster-panel{position:static}.student-roster-panel #student-roster{max-height:220px;overflow:auto}.student-tabs{gap:22px}.student-profile h2{font-size:26px}.student-metrics article{padding:18px 12px}.student-metrics strong{font-size:28px}.report-card,.student-chat{padding:18px}.chat-message{max-width:92%}.score-trend{gap:12px}}

.student-row>span:nth-child(2){min-width:0;flex:1}.student-row small{line-height:1.5}.student-row-metric{flex-shrink:0;white-space:nowrap}.student-row b{white-space:nowrap}

/* Subject-bound learning assistants. */
.ai-mode{font-size:10px;letter-spacing:.5px;border:1px solid #a2ab88;padding:9px 12px;color:#64724e;white-space:nowrap}
.ai-space-intro{display:flex;gap:22px;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:25px 0;margin-bottom:30px}.ai-space-intro>span{font:64px/1 Georgia,serif;color:#788463}.ai-space-intro b{font-size:18px;font-weight:500}.ai-space-intro p{font-size:12px;color:var(--muted);line-height:1.7;margin:8px 0 0}.ai-space-intro>small{margin-left:auto;font:9px monospace;color:var(--muted);letter-spacing:1px}
.ai-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line)}.ai-overview article{padding:24px;border-right:1px solid var(--line)}.ai-overview article:last-child{border:0}.ai-overview small,.ai-overview span{display:block;font-size:10px;color:var(--muted)}.ai-overview b{display:block;font-size:25px;font-weight:500;margin:16px 0}.ai-overview i{font-style:normal;font-size:12px}
.ai-settings{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:40px}.ai-config,.ai-policy{border:1px solid var(--line);padding:30px}.ai-config>small,.ai-policy>small{font-size:10px;letter-spacing:1px;color:var(--muted)}.ai-config h2,.ai-record-head h2{font-size:24px;font-weight:500}.ai-config>label{display:block;font-size:12px;margin-top:24px}.ai-config select,.ai-config input:not([type=checkbox]){display:block;width:100%;margin-top:10px;padding:13px;border:1px solid var(--line);background:transparent;color:var(--ink);box-sizing:border-box;font:12px monospace}.ai-config input[readonly]{background:rgba(127,137,96,.07)}.ai-field-help{display:block;margin-top:9px}.ai-key-note{display:flex;gap:12px;align-items:center;margin-top:10px;font-size:10px;color:var(--muted);line-height:1.8}.ai-key-note button{white-space:nowrap;padding:8px;font-size:10px}.ai-config fieldset{border:1px solid var(--line);padding:20px;margin:26px 0;font-size:12px}.ai-check{display:inline-flex;gap:8px;align-items:center;margin:0 18px 8px 0;cursor:pointer}.ai-config input[type=checkbox]{accent-color:#6c7953;width:15px;height:15px}.ai-config>label.ai-enabled{display:flex;margin-bottom:24px}.ai-save-caption{font-size:10px;color:var(--muted);display:inline-block;margin:12px}.ai-policy{align-self:start;background:rgba(127,137,96,.06)}.ai-policy h3{font-size:25px;font-weight:500;margin:28px 0}.ai-policy ol{padding-left:20px}.ai-policy li{padding:12px 0 12px 10px}.ai-policy b{font-size:13px}.ai-policy p{font-size:12px;color:var(--muted);line-height:1.9}.ai-policy .report-method{border-top:1px solid var(--line);padding-top:20px;margin-bottom:0}
.ai-record-head{display:flex;justify-content:space-between;align-items:center}.ai-record-head small{font:10px monospace;color:var(--muted)}.ai-record-head>span{font-size:11px;color:var(--muted)}.ai-filters{display:flex;gap:10px;align-items:center;margin:18px 0 24px;flex-wrap:wrap}.ai-filters select{border:1px solid var(--line);padding:10px 28px 10px 12px;background:transparent;font-size:12px}.ai-filters>span{margin-left:auto;font:11px monospace;color:var(--muted)}.ai-record{border-top:1px solid var(--line)}.ai-record:last-child{border-bottom:1px solid var(--line)}.ai-record summary{display:flex;align-items:center;gap:22px;padding:22px 12px;cursor:pointer;list-style:none}.ai-record summary::-webkit-details-marker{display:none}.ai-record summary:hover{background:rgba(127,137,96,.06)}.ai-record-person{min-width:105px}.ai-record-person b{font-size:13px}.ai-record small{display:block;color:var(--muted);font-size:10px;margin-top:7px}.ai-record-question{flex:1;font-size:14px;overflow-wrap:anywhere}.ai-result{font-size:10px;padding:6px 9px;border:1px solid var(--line);white-space:nowrap}.ai-result.learning{color:#64724e}.ai-result.redirect{color:#987541}.ai-record-answer{padding:0 22px 24px 140px}.ai-record-answer p{font-size:13px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}
.ai-student-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:28px}.ai-teachers>small{font-size:10px;letter-spacing:.5px;color:var(--muted);display:block;margin-bottom:18px}.ai-teacher{width:100%;display:block;text-align:left;padding:24px;margin-bottom:14px;border:1px solid var(--line);background:transparent}.ai-teacher.active{background:#343d2e;color:#f0efe7;border-color:#343d2e}.ai-subject-number{font:10px monospace;letter-spacing:1px;opacity:.65}.ai-teacher strong{display:flex;justify-content:space-between;font-size:25px;font-weight:500;margin:24px 0 16px}.ai-teacher>span:not(:first-child){font-size:12px}.ai-teacher small{display:block;font-size:10px;opacity:.65;margin-top:12px}.ai-chat-panel{border:1px solid var(--line);padding:25px;background:rgba(250,249,242,.2)}.ai-chat-panel header{display:flex;align-items:center;justify-content:space-between;gap:15px}.ai-chat-panel header small{font:10px monospace;letter-spacing:1px;color:var(--muted)}.ai-chat-panel h2{font-size:22px;font-weight:500;margin:12px 0 20px}.ai-learning-note{font-size:11px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted)}.ai-history{height:380px;overflow:auto;overscroll-behavior:contain;padding:22px 4px}.ai-dialogue{margin-bottom:28px}.ai-question{max-width:86%;margin-left:auto}.ai-response{max-width:92%;margin-top:20px}.ai-history small{font-size:10px;color:var(--muted)}.ai-question small{display:block;text-align:right}.ai-history p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.9;margin:8px 0 0}.ai-question p{background:#424d38;color:#f5f3eb;padding:14px 18px}.ai-response p{padding:15px 18px;background:rgba(127,137,96,.08)}.ai-examples{border-top:1px solid var(--line);padding:16px 0}.ai-examples>small{display:block;color:var(--muted);font-size:10px;margin-bottom:10px}.ai-examples button{display:block;background:transparent;border:0;padding:6px 0;font-size:11px;text-align:left;color:#64724e}.ai-chat-panel form label{font-size:12px}.ai-chat-panel textarea{width:100%;box-sizing:border-box;margin-top:10px;padding:14px;background:transparent;border:1px solid var(--line);font-family:inherit;font-size:13px;line-height:1.8;color:var(--ink);resize:vertical}.ai-chat-panel form>div{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-top:10px}.ai-chat-panel form>div>span{font-size:10px;color:var(--muted);line-height:1.8}.ai-chat-panel form button{font-size:12px;white-space:nowrap;padding:13px 18px}.ai-empty{padding:70px 15px;text-align:center;color:var(--muted)}.ai-empty>span{font:70px Georgia,serif;color:#7b8867}.ai-empty h2,.ai-empty h3{font-size:20px;font-weight:500}.ai-empty p{font-size:12px}
@media(max-width:1000px){.ai-settings{gap:20px;grid-template-columns:1.3fr 1fr}.ai-config,.ai-policy{padding:22px}.ai-student-layout{grid-template-columns:230px minmax(0,1fr);gap:18px}.ai-overview article{padding:18px}.ai-overview b{font-size:20px}.ai-space-intro>small{display:none}}
@media(max-width:760px){.ai-overview{grid-template-columns:1fr 1fr}.ai-overview article:nth-child(2){border-right:0}.ai-overview article:nth-child(-n+2){border-bottom:1px solid var(--line)}.ai-settings,.ai-student-layout{grid-template-columns:1fr}.ai-teachers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.ai-teachers>small,.ai-teachers>.report-method{grid-column:1/-1}.ai-teacher{padding:14px 10px;margin:0}.ai-teacher strong{font-size:18px;margin:15px 0}.ai-teacher small{line-height:1.7}.ai-subject-number{font-size:9px}.ai-record summary{gap:12px;padding:20px 0}.ai-record-person{min-width:72px}.ai-record-answer{padding:0 12px 20px}.ai-result{padding:5px;font-size:9px}.ai-chat-panel{padding:18px}.ai-config .primary{font-size:12px}.ai-history{height:340px}.ai-record-head>span{display:none}.ai-key-note{flex-direction:column;align-items:start}}

/* Picture answers and teacher pen feedback. */
.answer-images{border:1px solid var(--line);padding:18px;margin:18px 0 24px;background:rgba(127,137,96,.04)}.answer-photo-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:15px}.answer-photo-head b{font-size:12px}.answer-photo-head>span{font-size:10px;color:var(--muted);line-height:1.6}.answer-photo-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.photo-upload-button{position:relative;border:1px solid var(--line);padding:11px 14px;font-size:12px;cursor:pointer;overflow:hidden}.photo-upload-button:hover{background:rgba(127,137,96,.12)}.photo-upload-button input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.photo-upload-button:focus-within{outline:2px solid #7f8960;outline-offset:2px}.answer-photo-actions>small{font-size:10px;color:var(--muted);line-height:1.7;flex-basis:100%;margin:5px 0}.answer-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.answer-photo{margin-top:16px;min-width:0;border:1px solid var(--line);background:var(--panel)}.answer-photo-preview{padding:0;width:100%;border:0;background:white;display:block}.answer-photo-preview img{display:block;width:100%;height:185px;object-fit:contain;color:var(--muted);font-size:12px}.answer-photo-caption{display:flex;align-items:center;gap:8px;padding:10px}.answer-photo-caption>span{font-size:10px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.answer-photo-caption>button{white-space:nowrap;font-size:11px;padding:8px}.photo-marked{display:block;margin:0 10px 12px;color:#aa4c43;font-size:10px}.photo-operation-status{font-size:11px;margin:8px 0 0;color:var(--muted)}.photo-operation-status:empty{display:none}.photo-full-view img{display:block;max-width:100%;height:auto;margin:auto}.photo-full-view p{font-size:12px;text-align:center;color:var(--muted)}
.photo-editor-tools{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;position:sticky;top:0;z-index:4;background:var(--panel);border-bottom:1px solid var(--line);padding:12px 0}.photo-tool-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.photo-tool-group button{padding:10px 13px;font-size:12px}.photo-tool-group button[aria-pressed=true]{background:var(--ink);color:#f3f0e7}.photo-tool-group label{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted)}.photo-tool-group select{padding:8px;border:1px solid var(--line);font-size:12px;background:transparent;color:var(--ink)}.photo-editor-help{font-size:11px;color:var(--muted);line-height:1.8}.photo-canvas-scroll{overflow:auto;max-height:62vh;border:1px solid var(--line);background:#dddcd4;padding:12px}.photo-canvas-scroll canvas{display:block;width:100%;height:auto;background:white;touch-action:none;cursor:crosshair}.photo-editor-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:18px 0 4px;position:sticky;bottom:0;background:var(--panel);z-index:4}.photo-editor-footer span{font-size:11px;color:var(--muted)}.photo-editor-footer button{font-size:12px;padding:14px 20px}
@media(max-width:600px){.answer-photo-grid{grid-template-columns:1fr}.answer-photo-head{align-items:start;flex-direction:column;gap:8px}.photo-canvas-scroll{padding:4px;max-height:58vh}.photo-tool-group button{padding:8px;font-size:11px}.photo-editor-footer button{padding:12px;font-size:11px}.photo-editor-tools{gap:8px}}

/* Integrated assignment PDF review */
.assignment-pdf-actions{border-bottom:1px solid var(--line);padding:0 0 18px;margin-bottom:20px}.assignment-pdf-actions .actions{flex-wrap:wrap}.pdf-format{display:flex;gap:10px;align-items:center;font-size:13px}.pdf-format select{max-width:200px;padding:10px}.assignment-pdf-frame{width:100%;height:70vh;border:1px solid var(--line);margin-top:15px;background:#fff}.pdf-review .actions{flex-wrap:wrap;margin-bottom:15px}.pdf-pen-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--paper,#eeece4);border:1px solid var(--line);padding:10px;position:sticky;top:0;z-index:3}.pdf-pen-tools label{display:flex;gap:6px;align-items:center;font-size:13px}.pdf-pen-tools select{padding:8px}.pdf-pen-tools button{padding:9px 13px}.pdf-pen-tools [aria-pressed=true]{background:#292d26;color:#f3f0e7}#pdf-save-status{font-size:12px;color:var(--muted)}.pdf-review-layout{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:18px}.pdf-paper-scroll{background:#d6d3cc;max-height:64vh;overflow:auto;overscroll-behavior:contain;padding:20px}.pdf-paper{margin:0 auto 20px;max-width:900px}.pdf-paper small{display:block;padding:8px}.pdf-sheet{position:relative;background:white;box-shadow:0 2px 6px #0002}.pdf-sheet img,.pdf-sheet canvas{position:absolute;inset:0;width:100%;height:100%}.pdf-sheet canvas{touch-action:none;cursor:crosshair}.pdf-score-panel{max-height:64vh;overflow:auto;padding:4px 8px}.pdf-score-panel label{display:block;font-size:13px;margin-bottom:12px}.pdf-score-panel input,.pdf-score-panel textarea{display:block;width:100%;margin-top:7px}.pdf-score-panel textarea{min-height:75px}.pdf-feedback-page{display:block;width:100%;max-width:900px;margin:0 auto 18px}.pdf-review .modal-actions{flex-wrap:wrap;gap:14px}@media(max-width:760px){.pdf-review-layout{grid-template-columns:1fr}.pdf-score-panel{max-height:none}.pdf-paper-scroll{padding:10px;max-height:65vh}.pdf-pen-tools{position:static}.pdf-format{flex-wrap:wrap}}

/* Public learning gallery */
.login-public{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:18px;padding:18px 20px;text-align:left;border:1px solid #a9ae96;background:#e1e3d64d}
.login-public b{display:block;font-size:17px;font-weight:500}.login-public small{display:block;margin-top:7px;letter-spacing:.5px;color:var(--muted)}.login-public>span:last-child{font-size:26px}
.public-page{min-height:100vh}.public-header{padding:28px 5vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}
.public-brand{text-decoration:none;color:var(--ink);font-size:34px;font-weight:700;letter-spacing:-1px}.public-brand span{display:block;font-size:10px;font-weight:400;letter-spacing:2px;margin-top:6px}.public-header>div{display:flex;align-items:center;gap:26px}.public-visitor{font-size:12px;color:var(--muted);letter-spacing:1px}
.public-main{max-width:1500px;margin:auto;padding:0 5vw 70px}.public-hero{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;min-height:370px;padding:55px 0 45px;gap:20px}.public-hero small{color:var(--muted);letter-spacing:2px}.public-hero h1{font-size:clamp(38px,4.5vw,66px);line-height:1.2;letter-spacing:-1px;margin:24px 0}.public-hero h1>span{color:var(--accent)}.public-hero p{color:var(--muted);font-size:15px;margin:0}.public-hero-mark{justify-self:center;text-align:center;color:#727d60}.public-hero-mark>span{font-size:clamp(140px,19vw,250px);line-height:.9;display:block;font-weight:300;letter-spacing:-15px}.public-hero-mark small{display:block;margin-top:20px;letter-spacing:2px}
.public-section-title{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid var(--ink);padding-top:25px}.public-section-title h2{margin:0;font-size:24px}.public-section-title h2 span{font-size:10px;letter-spacing:2px;color:var(--muted);margin-left:20px}.public-section-title>small{color:var(--muted)}
.public-filters{display:flex;align-items:center;gap:20px;padding:24px 0 30px}.public-filters .searchbox{flex:1;max-width:620px}.public-filters .searchbox input{width:100%}.public-filters select{background:transparent;border:none;border-bottom:1px solid var(--line);max-width:200px}.public-filters>span{font-size:12px;color:var(--muted);margin-left:auto;white-space:nowrap}
.public-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.public-grid>.empty{grid-column:1/-1}.public-card{border:1px solid var(--line);background:#efede5;display:flex;flex-direction:column;min-width:0}.public-card-art{padding:20px 25px;min-height:185px;display:flex;flex-direction:column;background:linear-gradient(130deg,#d6dac8,#e9e8df);border-bottom:1px solid var(--line);position:relative;overflow:hidden}.public-card-art:after{content:'';position:absolute;right:-30px;top:15px;width:130px;height:130px;border:1px solid #929c714d;transform:rotate(35deg)}.public-card-art[data-theme="force"]{background:linear-gradient(130deg,#e3dbca,#efebe3)}.public-card-art small{letter-spacing:2px;font-size:9px;color:#666d59}.public-card-art strong{font-size:60px;line-height:1.3;font-weight:500;letter-spacing:-3px;margin:8px 0;color:#555f42}.public-card-art[data-theme="force"] strong{font-size:49px;letter-spacing:-2px;color:#796c4a}.public-card-art>span{font-size:10px;letter-spacing:2px;margin-top:auto}.public-card-body{padding:25px;display:flex;flex-direction:column;flex:1}.public-card-meta{display:flex;align-items:center;justify-content:space-between;gap:14px;color:var(--muted);font-size:11px;letter-spacing:.4px}.public-card h3{font-size:21px;line-height:1.5;margin:18px 0 12px}.public-card p{color:var(--muted);font-size:13px;line-height:1.9;margin:0 0 15px}.public-card .knowledge-tags{margin-bottom:25px}.public-card .tag{background:transparent;font-size:10px}.public-read{display:flex;align-items:center;justify-content:space-between;border:0;border-top:1px solid var(--line);padding:18px 0 0;margin-top:auto;text-align:left;font-size:14px}.public-read:hover{background:transparent;color:#5b6a3d}.public-read>span{font-size:24px}
.public-footer{display:flex;justify-content:space-between;gap:20px;padding:25px 5vw;border-top:1px solid var(--line);font-size:10px;letter-spacing:1px;color:var(--muted)}.public-pagination{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:28px}.public-admin-stats{display:flex;align-items:center;gap:35px;padding:20px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.public-admin-stats>span{color:var(--muted);font-size:12px;white-space:nowrap}.public-admin-stats b{font-size:30px;color:var(--ink);margin-right:10px}.public-admin-stats p{margin:0;font-size:12px;color:var(--muted)}.public-admin-row{display:flex;align-items:center;justify-content:space-between;gap:30px;border-top:1px solid var(--line);padding:26px 0}.public-admin-row>div:first-child{max-width:650px;min-width:0}.public-admin-row .public-card-meta{justify-content:flex-start;margin-bottom:12px}.public-admin-row h2{font-size:22px;margin-bottom:10px}.public-admin-row p{font-size:13px;color:var(--muted);margin-bottom:12px}.public-admin-row small{color:var(--muted)}.public-admin-row .actions{flex-shrink:0;flex-wrap:wrap}.public-status{font-weight:400;border:1px solid var(--line);padding:4px 8px;font-size:10px}.public-status.published{color:#516534;border-color:#a5b08d;background:#e1e5d4}.public-demo-note{font-size:12px;padding-top:15px;border-top:1px solid var(--line)}.public-lesson{max-width:900px;margin:auto}.public-lesson-intro{font-size:20px;margin-top:24px}.public-lesson-content{white-space:pre-wrap;overflow-wrap:anywhere;font-size:16px;line-height:2;margin:28px 0;border-top:1px solid var(--line);padding-top:25px}.public-attachments{margin-top:30px}.public-attachments h3{display:flex;justify-content:space-between}.public-file{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;margin-top:10px;padding:20px;gap:20px}.public-file b{font-weight:500;overflow-wrap:anywhere}.public-file small{display:block;margin-top:8px;color:var(--muted)}.public-download{display:inline-block;margin-top:18px;padding:12px 20px;color:var(--ink);border:1px solid var(--line);text-decoration:none}
@media(max-width:1000px){.public-grid{gap:15px}.public-card-body{padding:18px}.public-card h3{font-size:18px}.public-admin-row{align-items:flex-start;flex-direction:column;gap:18px}.public-hero{min-height:300px}.public-hero-mark small{font-size:8px}}
@media(max-width:700px){.public-header{padding:20px 6vw}.public-header>div{gap:0}.public-header button{font-size:12px;padding:10px}.public-visitor{display:none}.public-brand{font-size:28px}.public-brand span{font-size:8px;letter-spacing:1px}.public-main{padding:0 6vw 40px}.public-hero{padding:32px 0;grid-template-columns:1fr;min-height:0}.public-hero h1{font-size:38px}.public-hero-mark{display:none}.public-hero p{font-size:13px}.public-section-title{align-items:flex-start}.public-section-title h2 span{display:block;margin:7px 0 0;font-size:8px}.public-section-title>small{font-size:9px}.public-filters{flex-wrap:wrap;gap:12px;padding:20px 0}.public-filters .searchbox{flex-basis:100%;max-width:none}.public-filters select{max-width:70%}.public-grid{grid-template-columns:1fr}.public-card-art{min-height:150px}.public-card-body{padding:23px}.public-card h3{font-size:21px}.public-footer{flex-direction:column;gap:10px}.public-admin-stats{gap:20px}.public-lesson-intro{font-size:17px}.public-lesson-content{font-size:14px}.public-file{padding:14px}}

.public-hero-mark svg{display:block;width:clamp(180px,23vw,300px);height:auto;margin:20px auto 40px}
.header-right{position:relative}.profile-menu{position:absolute;right:0;top:calc(100% + 12px);z-index:80;min-width:220px;padding:10px;background:#eeece4;border:1px solid #bdbdb0;box-shadow:0 15px 45px #252a2020}.profile-menu button{display:block;width:100%;text-align:left;padding:16px;border:0;background:transparent}.profile-menu button:hover,.profile-menu button:focus-visible{background:#dedfd4}.token-scopes{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:20px;border:1px solid #bdbdb0;margin-bottom:22px}.token-scopes label{display:flex;align-items:flex-start;gap:10px;font-size:14px}.token-scopes input{width:18px;height:18px;flex-shrink:0;margin:2px 0}.token-list article{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #c7c7ba;padding:18px 0}.token-list p{margin:7px 0}.token-list small{color:#72766a}#token-error{color:#9a362b;white-space:pre-wrap;margin-bottom:14px}#token-issued:not(:empty){border:1px solid #9ca58a;padding:20px;margin:25px 0}#token-manifest{font-family:monospace;font-size:13px;width:100%;word-break:break-all}@media(max-width:600px){.token-scopes{grid-template-columns:1fr}}

/* Keep class directories within the viewport; unread contacts move to the top. */
.student-roster-panel{max-height:calc(100dvh - 48px);display:flex;flex-direction:column;min-height:0}
#student-roster{min-height:0;max-height:55vh;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin}
.unread-dot{display:inline-block;width:8px;height:8px;min-width:8px;border-radius:50%;background:#c43d39;vertical-align:middle;margin-left:7px;box-shadow:0 0 0 2px var(--panel,#eeece4)}
.section-unread:empty{display:none}
@media(max-width:700px){.student-roster-panel{max-height:420px}#student-roster{max-height:220px}}

.pwa-tools{position:fixed;left:max(12px,env(safe-area-inset-left));bottom:max(12px,env(safe-area-inset-bottom));z-index:120;max-width:min(430px,calc(100vw - 24px));display:flex;flex-wrap:wrap;gap:8px;padding:8px;background:#eeece4f2;border:1px solid #c7c7ba;box-shadow:0 4px 20px #252a2014;font-size:12px}
.pwa-tools button{font:inherit;color:#293027;background:transparent;border:1px solid #bdbdb0;padding:8px 12px;min-height:40px;cursor:pointer}
.pwa-tools p{flex-basis:100%;margin:4px 6px;line-height:1.6}.pwa-tools[data-offline=true]{border-color:#bb8054}
.pwa-install-help{max-width:470px;padding:28px;background:#eeece4;color:#252a20;border:1px solid #bdbdb0}.pwa-install-help p{line-height:1.8}.pwa-install-help button{padding:12px 25px;background:#252a20;color:#eeece4;border:0}.pwa-install-help::backdrop{background:#252a2044}
.install-page{margin:0;background:#e8e5de;color:#252a20}.install-sheet{max-width:760px;padding:48px 24px 150px;margin:auto}.install-sheet>small{display:block;letter-spacing:2px;margin-top:18px}.install-sheet h1{font-size:clamp(34px,5vw,58px);line-height:1.2}.install-sheet h2{font-size:22px;margin-top:40px;border-top:1px solid #bdbdb0;padding-top:24px}.install-sheet p,.install-sheet li{line-height:1.9}.install-sheet li{margin:12px 0}.install-sheet .primary{display:inline-block;text-decoration:none;padding:16px 25px;background:#252a20;color:#eeece4}.install-sheet details{margin:28px 0}.app-loading{padding:10vh 8vw;color:#72766a}
@media(display-mode:standalone){body{padding-top:env(safe-area-inset-top)}.login-footer,footer{padding-bottom:max(24px,env(safe-area-inset-bottom))}}

/* Stable section tabs: fixed single-line cells, independent of active marker. */
nav[aria-label="功能分区"] { gap:0; overflow-x:auto; align-items:stretch; }
nav[aria-label="功能分区"] > button { flex:1 0 138px; min-width:138px; height:64px; box-sizing:border-box; display:flex; align-items:center; justify-content:flex-start; gap:12px; white-space:nowrap; padding:0 18px; }
nav[aria-label="功能分区"] > button small { flex-shrink:0; margin:0; }
nav[aria-label="功能分区"] > button > span:last-child { flex-shrink:0; width:12px; margin-left:auto; text-align:center; }
nav[aria-label="功能分区"] .section-unread { position:absolute; right:10px; top:9px; margin:0; }
.delete-link { color:#975444; font-size:12px; padding:9px 12px; }
button.danger { background:#8b4436; color:white; border-color:#8b4436; }

/* Compact update control: only a small icon occupies the page until opened. */
.pwa-tools{display:block;width:36px;height:36px;max-width:none;padding:0;border:0;background:transparent;box-shadow:none}
.pwa-tools .pwa-icon{position:relative;display:grid;place-items:center;width:36px;height:36px;min-height:36px;padding:8px;border:1px solid #bdbdb0;border-radius:50%;background:#eeece4e8;box-shadow:0 2px 8px #252a2014}
.pwa-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.pwa-dot,.pwa-offline-dot{position:absolute;right:0;top:0;width:8px;height:8px;border:1px solid #eeece4;border-radius:50%;background:#ad493b}.pwa-offline-dot{background:#bd8652}
.pwa-popover{position:absolute;bottom:46px;left:0;width:min(280px,calc(100vw - 24px));padding:16px;background:#eeece4;border:1px solid #bdbdb0;box-shadow:0 6px 24px #252a201c}.pwa-popover[hidden]{display:none}
.pwa-popover button{margin:4px 5px 0 0}.pwa-popover p{margin:8px 0;line-height:1.6}.pwa-popover b{font-size:13px}.pwa-notice:empty{display:none}
.pwa-confirm-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
@media(pointer:coarse){.pwa-tools,.pwa-tools .pwa-icon{width:44px;height:44px}.pwa-popover{bottom:54px}}
.ai-connection-test{margin-top:18px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.ai-test-result{white-space:pre-wrap;line-height:1.6}.ai-result.error{color:#975444}

.pwa-recovery{display:block;margin-top:10px;font-size:12px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}

.pwa-icon.has-update svg{animation:pwa-update-turn 2s linear infinite;transform-origin:center}
@keyframes pwa-update-turn{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.pwa-icon.has-update svg{animation:none}}

/* Archive controls sit in a shallow metal tray beside, never above, the title. */
.archive-title-row{display:flex;align-items:flex-start;gap:20px;margin:24px 0 12px;flex-wrap:wrap}
.detail-panel .archive-title-row h2{flex:1 1 180px;margin:0;overflow-wrap:anywhere}
.archive-tool-tray{display:flex;align-items:center;gap:7px;padding:6px;border:1px solid #c9c6bc;border-radius:10px;background:linear-gradient(145deg,#dcd9d0,#eeece4);box-shadow:inset 0 1px 3px #625e5426,0 1px 0 #fff9;flex-shrink:0;margin-left:auto}
.archive-tool-tray .archive-tool{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:9px 13px;border:1px solid #bab7ac;border-radius:6px;background:linear-gradient(#faf8f1,#dedbd1);color:#343b31;font-size:12px;line-height:1.2;box-shadow:inset 0 1px 0 #fff,0 2px 1px #77716530;transition:transform .12s,box-shadow .12s,background .12s}
.archive-tool svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.archive-tool-tray .archive-tool:hover{background:linear-gradient(#fffdf7,#eae7dc);transform:translateY(-1px);box-shadow:inset 0 1px 0 #fff,0 3px 3px #77716530}
.archive-tool-tray .archive-tool:active{transform:translateY(1px);box-shadow:inset 0 2px 3px #77716535}
.archive-tool-tray .archive-tool:focus-visible{outline:2px solid #637052;outline-offset:3px}
.archive-tool-tray .archive-tool-delete{width:42px;padding:10px;color:#8d6256;background:linear-gradient(#eeeae2,#d8d4ca)}
.archive-tool-tray .archive-tool-delete:hover{color:#9e3e2d;background:linear-gradient(#f7eae4,#e5d2c8)}
.archive-tool-divider{height:23px;width:1px;background:#bcb8ad;box-shadow:1px 0 #fff8}
@media(max-width:600px){.archive-title-row{gap:14px}.archive-tool-tray{margin-left:0}.detail-panel .archive-title-row h2{flex-basis:100%}}
.daily-material{border:1px solid var(--line,#c9c6bb);padding:clamp(20px,4vw,42px);margin:24px 0;background:#f3f0e62e}
.daily-material header{padding-bottom:18px;border-bottom:1px solid #ccc8bc}.daily-material header small{color:#767a6d;letter-spacing:.06em}.daily-material h2{margin:12px 0}
.daily-question{padding-top:20px}.daily-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}.daily-options{padding-left:28px;line-height:1.8}.daily-options li{padding:8px 12px;border-bottom:1px solid #ccc8bc;white-space:pre-wrap}
.daily-answer{margin-top:24px;border-left:3px solid #7e8966;padding:20px 24px;background:#78825c0c}.daily-answer small{color:#637052;letter-spacing:.12em}
.daily-notice{padding:16px 20px;background:#74815c0e;border-left:2px solid #7b8666;line-height:1.7}.daily-preview{border:1px solid #ccc8bc;padding:16px;margin:18px 0}.daily-preview summary{cursor:pointer}
.recipient-field{border:1px solid #cbc8be;padding:16px;margin:20px 0;min-width:0}.recipient-field legend{padding:0 8px;font-size:13px}.recipient-field>input{width:100%;margin-bottom:12px}.recipient-list{max-height:260px;overflow:auto;overscroll-behavior:contain}.recipient-list label{display:flex;align-items:center;gap:10px;padding:10px 6px;border-bottom:1px solid #d1cfc44d}.recipient-list label[hidden]{display:none}.recipient-list small{display:block;color:#7c8072;font-size:11px;margin-top:5px}.recipient-list input[type=checkbox]{width:17px;height:17px;flex-shrink:0}
.ai-scope-table{width:100%;border-collapse:collapse;font-size:13px}.ai-scope-scroll{max-height:340px;overflow:auto;border:1px solid #ccc8bc}.ai-scope-table th{position:sticky;top:0;background:#e7e4db;z-index:1;text-align:left}.ai-scope-table td,.ai-scope-table th{padding:12px;border-bottom:1px solid #ccc8bc}.ai-scope-table td small{display:block;color:#777c6c;margin-top:5px}.ai-scope-table select{min-width:130px}.ai-access-help{line-height:1.7;color:#747968}.ai-config-entry{margin-left:auto}
.daily-material>header{display:block;position:static;height:auto;min-height:0;width:auto;margin:0;padding:0 0 18px;background:none;gap:0}
.daily-material>header h2{font-size:24px;line-height:1.4;overflow-wrap:anywhere}
.daily-study-note{color:#737b69;line-height:1.6;margin:-12px 0 24px;font-size:13px}

/* Archive sea fills the workspace below navigation; controls float above it. */
#app.is-archive-workspace{min-height:100svh;display:flex;flex-direction:column}
#app.is-archive-workspace>header{flex-shrink:0;width:100%}
#app.is-archive-workspace>.workspace{flex:1;display:flex;flex-direction:column;margin:0;max-width:none;width:100%;min-height:0}
#app.is-archive-workspace>.workspace>nav{flex-shrink:0;margin:0 3.4vw}
#app.is-archive-workspace>footer{display:none}
#content.archive-immersive{flex:1;position:relative;min-height:560px;isolation:isolate}
.archive-immersive>.warehouse{position:absolute;inset:0;border:0;z-index:0}
.archive-immersive .warehouse-stage,.archive-immersive .warehouse.inspecting .warehouse-stage{height:100%}
.archive-immersive::before{content:"";position:absolute;inset:0 0 auto;height:190px;background:linear-gradient(#e8e5deeb,#e8e5de85 65%,transparent);pointer-events:none;z-index:1}
.archive-immersive>.section-heading{position:absolute;top:24px;left:3.4vw;right:3.4vw;margin:0;min-height:0;z-index:3;pointer-events:none;gap:16px}
.archive-immersive>.section-heading h1{font-size:26px;margin-top:5px}
.archive-immersive>.section-heading>p{display:none}
.archive-immersive>.section-heading .actions{pointer-events:auto;display:flex;gap:10px}
.archive-immersive>.section-heading .actions>button:not(.primary){background:#f1eee7dc;backdrop-filter:blur(10px)}
.archive-immersive>.archive-tools{position:absolute;top:105px;left:3.4vw;right:3.4vw;margin:0;z-index:3;gap:12px;pointer-events:none;flex-wrap:wrap}
.archive-immersive>.archive-tools>*{pointer-events:auto;background:#f1eee7de;border:1px solid #c8c7bc99;backdrop-filter:blur(10px);box-shadow:0 3px 14px #252a2308}
.archive-immersive>.archive-tools .searchbox{width:min(340px,38vw);padding:0 12px}
.archive-immersive>.archive-tools #result-count{background:transparent;box-shadow:none;border:0;backdrop-filter:none;pointer-events:none}
.archive-immersive>.archive-tools .material-switch{margin-left:auto;padding:0 12px}
.archive-immersive .warehouse-topline{display:none}
.archive-immersive .warehouse-detail{top:auto;bottom:100px;right:3.4vw;padding:22px;width:min(350px,38vw);text-shadow:0 1px 14px #f1eee7}
.archive-immersive .warehouse-title{margin:14px 0 10px}
.archive-immersive .warehouse-description{margin:0 0 20px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.archive-immersive .warehouse-bottom{left:3.4vw;right:3.4vw;bottom:26px}
.archive-immersive .warehouse-hint{padding:8px 12px;background:#f1eee7b3;backdrop-filter:blur(8px)}
.archive-immersive .warehouse-pagination{padding:7px;background:#f1eee7b3;backdrop-filter:blur(8px)}
.archive-immersive>.archive-caption{display:none}
.archive-immersive>#search-results:not(:empty){position:absolute;z-index:4;top:164px;left:3.4vw;width:min(560px,50vw);max-height:calc(100% - 245px);overflow:auto;overscroll-behavior:contain;padding:16px;background:#f1eee7ed;backdrop-filter:blur(16px);border:1px solid var(--line);box-shadow:0 12px 35px #252a2314}
.archive-immersive .result-row{gap:10px}
.archive-immersive .result-row>span:nth-child(3){display:none}
.archive-immersive:has(.warehouse.inspecting)::before,
.archive-immersive:has(.warehouse.inspecting)>.section-heading,
.archive-immersive:has(.warehouse.inspecting)>.archive-tools,
.archive-immersive:has(.warehouse.inspecting)>#search-results{visibility:hidden;pointer-events:none}
@media(max-width:850px){
 .archive-immersive>.section-heading h1>span{display:none}
 .archive-immersive>.archive-tools{gap:8px;top:100px}
 .archive-immersive>.archive-tools .searchbox{width:calc(60% - 8px)}
 .archive-immersive>.archive-tools>select{max-width:38%}
 .archive-immersive>.archive-tools .material-switch{margin-left:0}
 .archive-immersive .warehouse-detail{width:min(340px,55vw);bottom:100px}
 .archive-immersive .warehouse-hint{max-width:42%;font-size:9px;line-height:1.6}
 .archive-immersive>#search-results:not(:empty){top:200px;width:calc(100% - 6.8vw);max-height:calc(100% - 280px)}
}
@media(max-width:650px){
 #content.archive-immersive{min-height:660px}
 .archive-immersive>.section-heading{top:20px}
 .archive-immersive>.section-heading h1{font-size:23px}
 .archive-immersive>.section-heading small{font-size:7px}
 .archive-immersive>.section-heading .actions{gap:6px}
 .archive-immersive>.section-heading .actions>button{padding:11px;font-size:11px}
 .archive-immersive .warehouse-detail{width:80%;padding:15px;bottom:95px;right:3.4vw}
 .archive-immersive .warehouse-title{font-size:24px}
 #content.archive-immersive:has(.warehouse.inspecting){min-height:940px}
 .archive-immersive .warehouse.inspecting .warehouse-surface{height:420px}
 .archive-immersive .detail-panel{top:340px;padding:24px 5vw}
}

/* Full-size question sheets remain legible before opening the pen editor. */
.handwriting-answer .answer-photo-grid{grid-template-columns:minmax(0,1fr)}
.handwriting-answer .answer-photo-preview img{height:auto;max-height:520px;object-fit:contain}
.handwriting-answer .answer-photo-preview{cursor:crosshair}
.legacy-answer{padding:12px 16px;border-left:2px solid var(--line);white-space:pre-wrap}

/* Portable question selection tray */
#question-cart{position:fixed;right:26px;bottom:30px;z-index:90;width:72px;height:78px;padding:10px 8px;border:1px solid #979b88;border-radius:17px;background:linear-gradient(145deg,#f4f1e8,#d4d2c5);color:#303629;box-shadow:inset 1px 1px 0 #fff9,inset -1px -2px 2px #7b80653b,0 7px 20px #20251b30;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;cursor:grab;touch-action:none;user-select:none}
#question-cart:active{cursor:grabbing}#question-cart svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.5;pointer-events:none}#question-cart span{font-size:12px;letter-spacing:.06em;pointer-events:none}#question-cart b{position:absolute;right:-5px;top:-6px;min-width:23px;height:23px;padding:2px 5px;border-radius:20px;background:#303629;color:#fff;font:12px/19px monospace;pointer-events:none}
#question-cart:focus-visible{outline:3px solid #a06b3f;outline-offset:4px}.bank-row.in-question-cart{background:#74815a0c;box-shadow:inset 3px 0 #758160}.cart-select[aria-pressed="true"]{background:#e1e5d5;border-color:#758160;color:#3e4a30}.cart-summary{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.cart-summary span{font-size:13px;color:#777b70}#cart-items{max-height:36vh;overflow:auto;overscroll-behavior:contain;border-block:1px solid #b7b9ab;margin-bottom:24px}.cart-item{display:flex;align-items:center;gap:16px;padding:16px 4px;border-bottom:1px solid #cbcdc2}.cart-item>div:first-of-type{flex:1;min-width:0}.cart-item b{font-size:16px;overflow-wrap:anywhere}.cart-item p{font-size:12px;color:#777b70;margin:6px 0 0}.cart-item-actions{display:flex;gap:6px}.cart-item-actions button{padding:8px 10px;font-size:12px}.cart-empty{padding:20px 8px;color:#777b70}.bank-pagination{padding-right:90px}@media(max-width:600px){#question-cart{right:16px;bottom:20px;width:64px;height:68px}.cart-item{gap:8px}.cart-item-actions{flex-direction:column}}
/* Nine student sections remain discoverable on landscape tablets. */
nav[aria-label="功能分区"][data-count="9"]>button{flex-basis:104px;min-width:104px;font-size:12px;padding:0 10px;gap:6px}

/* Compact attachment management beside each solution file. */
.explanation-file-item{display:flex;align-items:center;gap:12px;border-bottom:1px solid #c9c8be}
.explanation-file-item .file-row{flex:1;min-width:0;border-bottom:0}
.explanation-file-item .file-row b{overflow-wrap:anywhere}
.solution-file-delete{flex:none;width:36px;height:36px;padding:0;border:1px solid #c9c4b8;border-radius:50%;background:linear-gradient(#f2efe7,#dfdcd2);box-shadow:0 2px 3px #292b2114,inset 0 1px #ffffffaa;color:#8b5142;font-size:23px;line-height:1;cursor:pointer}
.solution-file-delete:hover{background:#f2e3dc;border-color:#ad7463}
.solution-file-delete:focus-visible{outline:2px solid #8b5142;outline-offset:3px}
