.semester-report-backdrop {
  position: fixed;
  z-index: 1900;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(8, 24, 31, .66);
  backdrop-filter: blur(9px) saturate(1.08);
}

.semester-report-backdrop[hidden] { display: none; }
body:has(.semester-report-backdrop:not([hidden])) .app-dialog-backdrop { z-index: 2000; }

.semester-report-dialog {
  position: relative;
  width: min(1320px, 96vw);
  height: min(880px, 94vh);
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  overflow: hidden;
  border: 1px solid rgba(164, 234, 220, .72);
  border-radius: 22px;
  color: #153b3b;
  background: #f3f8f8;
  box-shadow: 0 30px 90px rgba(4, 24, 31, .42), 0 0 0 1px rgba(50, 197, 171, .08);
  animation: semester-dialog-enter .18s ease-out;
}

@keyframes semester-dialog-enter {
  from { opacity: 0; transform: translateY(10px) scale(.985); }
}

.semester-report-header {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 19px 24px;
  color: #fff;
  background: radial-gradient(circle at 82% -20%, rgba(77, 241, 203, .3), transparent 36%), linear-gradient(118deg, #072f39 0%, #07534d 48%, #07876b 100%);
}

.semester-report-header::before { position: absolute; z-index: -1; inset: 0; opacity: .14; background-image: linear-gradient(rgba(158,255,232,.46) 1px,transparent 1px),linear-gradient(90deg,rgba(158,255,232,.46) 1px,transparent 1px); background-size: 32px 32px; mask-image: linear-gradient(90deg,transparent 20%,#000 55%); content: ''; }
.semester-report-header::after { position: absolute; z-index: -1; top: -94px; right: 8%; width: 260px; height: 260px; border: 1px solid rgba(176,255,235,.28); border-radius: 50%; box-shadow: 0 0 0 34px rgba(176,255,235,.06),0 0 0 72px rgba(176,255,235,.035); content: ''; }
.semester-report-header-copy { position: relative; z-index: 1; display: flex; align-items: center; gap: 15px; }
.semester-report-header-icon { position: relative; width: 50px; height: 50px; display: grid; flex: none; place-items: center; border: 1px solid rgba(188,255,239,.4); border-radius: 14px; color: #e1fff7; background: radial-gradient(circle at 35% 30%,rgba(255,255,255,.22),transparent 32%),rgba(4,27,34,.32); box-shadow: inset 0 0 22px rgba(73,239,200,.12),0 8px 24px rgba(1,23,29,.2); font-size: 21px; font-weight: 900; }
.semester-report-header-icon::before,.semester-report-header-icon::after { position: absolute; width: 31px; height: 13px; border: 1px solid rgba(161,255,233,.45); border-radius: 50%; content: ''; transform: rotate(28deg); }
.semester-report-header-icon::after { transform: rotate(-28deg); }
.semester-report-header h2 { margin: 0; font-size: 23px; letter-spacing: .02em; }
.semester-report-header p { margin: 5px 0 0; color: #c9e7de; font-size: 12px; }
.semester-report-close { position: relative; z-index: 1; width: 38px; height: 38px; border: 1px solid rgba(205,255,243,.16); border-radius: 11px; color: #dff9f1; background: rgba(255,255,255,.1); font-size: 24px; }
.semester-report-close:hover { background: rgba(255,255,255,.2); }

.semester-report-steps {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: 0;
  padding: 13px 9%;
  border-bottom: 1px solid #d6e6e3;
  background: linear-gradient(180deg,#fff,#f7fbfa);
  list-style: none;
}

.semester-report-steps::before { content: ''; position: absolute; top: 26px; right: 19%; left: 19%; height: 2px; background: linear-gradient(90deg,#b8ddd4,#d8e5e1 50%,#b8ddd4); }
.semester-report-steps li { position: relative; z-index: 1; display: grid; grid-template-columns: 28px auto; justify-self: center; align-items: center; gap: 8px; color: #7a8c87; font-size: 12px; font-weight: 750; }
.semester-report-steps b { width: 28px; height: 28px; display: grid; place-items: center; border: 2px solid #e0e9e6; border-radius: 50%; color: #80918c; background: #f4f7f6; font-size: 10px; }
.semester-report-steps li.is-active { color: #08785c; }
.semester-report-steps li.is-active b { border-color: #10b78d; color: #08785c; background: #fff; box-shadow: 0 0 0 4px rgba(18,173,130,.12),0 0 18px rgba(18,173,130,.18); }
.semester-report-steps li.is-complete b { border-color: #29b98e; color: #fff; background: #18a97f; }

#semester-report-stage { min-height: 0; overflow: hidden; background-image: linear-gradient(rgba(17,119,100,.026) 1px,transparent 1px),linear-gradient(90deg,rgba(17,119,100,.026) 1px,transparent 1px); background-size: 28px 28px; }
.semester-template-workspace { height: 100%; min-height: 0; display: grid; grid-template-columns: 250px minmax(0, 1fr); overflow: hidden; }
.semester-template-library { min-height: 0; display: flex; flex-direction: column; padding: 18px; border-right: 1px solid #d5e6e2; background: linear-gradient(180deg,rgba(231,244,241,.96),rgba(241,248,246,.96)); }
.semester-template-library header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.semester-template-library h3 { margin: 0; font-size: 14px; }
.semester-template-new { height: 30px; padding: 0 10px; border: 1px solid #aed9ca; border-radius: 8px; color: #087457; background: #fff; font-size: 11px; font-weight: 800; }
.semester-template-library-note { margin: 8px 0 13px; color: #70827d; font-size: 10px; line-height: 1.55; }
.semester-template-list { min-height: 0; display: grid; align-content: start; gap: 9px; overflow-y: auto; }
.semester-template-empty { padding: 23px 13px; border: 1px dashed #b9cec7; border-radius: 12px; color: #758882; background: rgba(255,255,255,.56); text-align: center; font-size: 11px; line-height: 1.65; }
.semester-template-card { position: relative; width: 100%; overflow: hidden; border: 1px solid #d0e3de; border-radius: 12px; color: #29453d; background: linear-gradient(145deg,#fff,#f9fcfb); box-shadow: 0 7px 18px rgba(28,76,66,.045); text-align: left; }
.semester-template-card:hover { border-color: #91cbb7; }
.semester-template-card.is-active { border-color: #12a779; box-shadow: 0 0 0 3px rgba(18,167,121,.1); }
.semester-template-select { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; padding: 12px 38px 12px 12px; border: 0; color: inherit; background: transparent; text-align: left; }
.semester-template-delete { position: absolute; top: 8px; right: 8px; width: 24px; height: 24px; padding: 0; border: 1px solid transparent; border-radius: 7px; color: #a87670; background: #fff7f5; font-size: 15px; line-height: 1; opacity: .75; }
.semester-template-delete:hover { border-color: #efc8c3; color: #b83f35; background: #fff0ee; opacity: 1; }
.semester-template-card strong,.semester-template-card small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.semester-template-card strong { font-size: 12px; }
.semester-template-card small { margin-top: 4px; color: #7a8c87; font-size: 9px; }
.semester-template-card em { align-self: start; padding: 3px 6px; border-radius: 99px; color: #08775a; background: #e4f6ef; font-size: 9px; font-style: normal; }
.semester-template-scopes { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 5px; margin-bottom: 12px; padding: 3px; border: 1px solid #c7dfd6; border-radius: 10px; background: #e7f3ef; }
.semester-template-scopes button { min-height: 31px; border: 0; border-radius: 7px; color: #527469; background: transparent; font-size: 11px; font-weight: 800; }
.semester-template-scopes button[aria-pressed="true"] { color: #087758; background: #fff; box-shadow: 0 2px 8px rgba(30,85,69,.1); }
.semester-team-template-card { padding: 11px 12px; }
.semester-team-template-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.semester-team-template-heading strong { min-width: 0; }
.semester-team-template-actions { display: flex; flex-wrap: wrap; gap: 5px; padding: 0 10px 10px; }
.semester-team-template-card .semester-team-template-actions { padding: 9px 0 0; }
.semester-team-template-actions button { min-height: 27px; padding: 3px 7px; border: 1px solid #b4d8ca; border-radius: 7px; color: #087356; background: #f3fbf7; font-size: 10px; font-weight: 750; }
.semester-team-template-actions button:hover { border-color: #0f9b72; background: #e4f6ed; }
.semester-share-icon { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.semester-team-template-actions [data-template-team-share] { display: grid; place-items: center; width: 32px; min-height: 30px; padding: 0; }
.semester-folder-row [data-folder-team-share] { display: grid; place-items: center; width: 30px; flex: 0 0 30px; padding: 0; }
.semester-team-template-actions button.danger { border-color: #eccbc5; color: #a84d45; background: #fff8f6; }
.semester-team-template-card > small { display: block; overflow: hidden; margin-top: 5px; color: #6d817a; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.semester-share-tags { display: block; margin: 0 10px 8px !important; color: #08775a !important; font-size: 10px !important; white-space: normal !important; }
.semester-team-view-filter { display: grid; gap: 5px; color: #52716a; font-size: 11px; font-weight: 700; }
.semester-team-view-filter select { min-height: 34px; padding: 6px; border: 1px solid #b9d8ce; border-radius: 8px; color: #174e3e; background: white; }
.semester-shared-team,.semester-shared-folder { display: grid; align-content: start; gap: 8px; }
.semester-shared-team { padding-top: 8px; border-top: 1px solid #c7ded5; }
.semester-shared-team h3 { margin: 0; color: #075f49; font-size: 13px; }
.semester-shared-folder { padding: 8px; border: 1px solid #cfe6dd; border-radius: 10px; background: #f5faf7; }
.semester-shared-folder h4 { display: flex; align-items: center; gap: 5px; margin: 0; color: #236451; font-size: 11px; }
.semester-shared-folder h4 small { color: #789087; font-weight: 400; }
.semester-shared-folder-toggle { display: flex; flex: 1; min-width: 0; align-items: center; gap: 4px; padding: 2px 0; border: 0; color: inherit; background: transparent; text-align: left; cursor: pointer; }
.semester-shared-folder-copy { flex: none; min-height: 24px; padding: 2px 5px; border: 1px solid #b4d8ca; border-radius: 5px; color: #087356; background: #fff; font-size: 10px; cursor: pointer; }
.semester-shared-folder-copy:hover { border-color: #0f9b72; background: #e4f6ed; }
.semester-shared-folder-copy:disabled { opacity: .6; cursor: wait; }
.semester-shared-folder-toggle:hover { color: #07805d; }
.semester-shared-folder-toggle:focus-visible { outline: 2px solid #0a9c77; outline-offset: 2px; border-radius: 3px; }
.semester-shared-folder-toggle span:nth-child(2) { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.semester-shared-folder-toggle small { flex: none; }
.semester-shared-folder-contents { display: grid; gap: 8px; }
.semester-shared-folder-contents[hidden] { display: none; }
.semester-shared-folder-contents > p { margin: 0; color: #71867d; font-size: 10px; line-height: 1.5; }
.semester-shared-folder > p,.semester-shared-team > p { margin: 0; color: #71867d; font-size: 10px; line-height: 1.5; }
.semester-team-share-dialog { width: min(480px, calc(100vw - 24px)); max-height: min(80vh, 700px); padding: 0; border: 1px solid #b8d9cd; border-radius: 15px; color: #244b3d; background: white; box-shadow: 0 24px 75px #123d3250; }
.semester-team-share-dialog::backdrop { background: #18332f80; }
.semester-team-share-dialog form { display: grid; gap: 12px; padding: 18px; font-size: 12px; }
.semester-team-share-dialog header,.semester-team-share-dialog footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.semester-team-share-dialog h3,.semester-team-share-dialog p { margin: 0; }
.semester-team-share-dialog p,.semester-team-share-dialog small { line-height: 1.55; }
.semester-team-share-dialog fieldset { display: grid; gap: 7px; max-height: 190px; overflow-y: auto; margin: 0; padding: 10px; border: 1px solid #d2e8df; border-radius: 10px; }
.semester-team-share-dialog legend { padding: 0 4px; font-weight: 700; }
.semester-team-share-dialog fieldset label,.semester-share-reshare { display: flex; align-items: center; gap: 7px; }
.semester-team-share-dialog input[type="checkbox"] { accent-color: #0a9c77; }
.semester-team-share-dialog button { min-height: 34px; padding: 6px 12px; border: 1px solid #b8d9cd; border-radius: 8px; color: #087356; background: #f5faf7; cursor: pointer; }
.semester-team-share-dialog button.primary { border-color: #009b74; color: white; background: #009b74; }
.semester-team-share-dialog .semester-share-attachment-note { padding: 9px; border-radius: 8px; background: #edf8f2; }

.semester-template-editor { width: 100%; height: 100%; min-width: 0; min-height: 0; display: block; box-sizing: border-box; padding: 20px 22px; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; background: rgba(248,252,251,.86); scrollbar-gutter: stable; }
.semester-template-meta { display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 12px; }
.semester-template-meta label,.semester-question-row label,.semester-subquestion-row label { display: grid; gap: 5px; color: #5f746e; font-size: 10px; font-weight: 750; }
.semester-template-meta input,.semester-template-meta select { width: 100%; height: 38px; border-radius: 9px; }
.semester-source-attachment { position: relative; display: grid; grid-template-columns: 46px minmax(0,1fr) auto; align-items: center; gap: 12px; margin-top: 13px; padding: 13px 14px; overflow: hidden; border: 1px solid #c8e2d9; border-radius: 15px; background: linear-gradient(125deg,#f0faf6,#fff 62%); box-shadow: 0 8px 22px rgba(23,86,71,.05); }
.semester-source-attachment::after { position: absolute; right: -24px; bottom: -42px; width: 105px; height: 105px; border: 18px solid rgba(17,163,122,.04); border-radius: 50%; content: ''; pointer-events: none; }
.semester-source-icon { width: 46px; height: 46px; display: grid; place-items: center; border: 1px solid #b7ded1; border-radius: 13px; color: #08795a; background: radial-gradient(circle at 35% 28%,#fff,transparent 38%),#e1f5ee; box-shadow: inset 0 0 15px rgba(16,157,117,.08); font-size: 16px; font-weight: 900; }
.semester-source-copy { min-width: 0; }
.semester-source-title { min-width: 0; display: flex; align-items: center; gap: 7px; }
.semester-source-title em { flex: none; padding: 2px 7px; border-radius: 999px; color: #6c8079; background: #edf3f1; font-size: 8px; font-style: normal; font-weight: 800; }
.semester-source-copy h4 { margin: 0; overflow: hidden; color: #234b40; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.semester-source-copy p { margin: 4px 0 0; color: #6f837c; font-size: 9px; line-height: 1.5; }
.semester-source-copy p b { color: #14775d; }
.semester-source-copy > span { display: flex; align-items: center; gap: 7px; margin-top: 5px; }
.semester-source-copy > span b { color: #638078; font-size: 8px; font-weight: 650; }
.semester-source-copy > span em { padding: 2px 6px; border-radius: 999px; color: #8a5d13; background: #fff1d2; font-size: 8px; font-style: normal; font-weight: 800; }
.semester-source-entry-actions { position: relative; z-index: 1; grid-column: 1/-1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 2px; }
.semester-source-entry-actions button { min-width: 0; display: grid; grid-template-columns: 30px minmax(0,1fr); grid-template-rows: auto auto; column-gap: 8px; align-items: center; padding: 8px 10px; border: 1px solid #c8ded7; border-radius: 10px; color: #285e4e; background: rgba(255,255,255,.9); text-align: left; }
.semester-source-entry-actions button > span { width: 30px; height: 30px; grid-row: 1/3; display: grid; place-items: center; border-radius: 9px; color: #087759; background: #e4f6ef; font-size: 8px; font-weight: 900; }
.semester-source-entry-actions button b { font-size: 9px; }
.semester-source-entry-actions button small { overflow: hidden; color: #81918c; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.semester-source-entry-actions button:hover { border-color: #18a77d; background: #f1fbf7; box-shadow: 0 4px 12px rgba(18,129,96,.08); }
.semester-source-assurance { position: relative; z-index: 1; grid-column: 1/-1; display: flex; align-items: center; gap: 8px; margin: 0!important; padding: 7px 9px; border-radius: 8px; color: #617c73!important; background: rgba(220,245,237,.62); }
.semester-source-assurance b { flex: none; color: #087457; font-size: 8px; }
.semester-source-assurance span { font-size: 8px; }
.semester-source-add,.semester-source-actions button { position: relative; z-index: 1; min-width: 86px; height: 33px; padding: 0 11px; border: 1px solid #9fd3c1; border-radius: 8px; color: #087557; background: #fff; font-size: 9px; font-weight: 850; white-space: nowrap; }
.semester-source-add:hover,.semester-source-actions button:hover { border-color: #20a77e; background: #eaf8f3; }
.semester-source-actions { position: relative; z-index: 1; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.semester-source-actions button { min-width: 0; }
.semester-source-actions button.primary { border-color: #0e9870; color: #fff; background: #0e9870; box-shadow: 0 5px 12px rgba(14,152,112,.16); }
.semester-source-actions button.primary:hover { border-color: #08795a; background: #08795a; }
.semester-source-actions button.danger { border-color: #efcfcb; color: #b14840; background: #fff8f7; }
.semester-attachment-file-input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.semester-export-source { padding: 14px; border: 1px solid #c8e2d9; border-radius: 12px; background: #f0faf6; overflow-wrap: anywhere; }
.semester-export-source button:disabled { opacity: .5; cursor: not-allowed; }
.semester-template-guide { display: grid; grid-template-columns: minmax(230px,1fr) auto auto; align-items: center; gap: 14px; margin: 17px 0 11px; }
.semester-template-guide div:first-child { min-width: 0; }
.semester-template-guide h3 { margin: 0; font-size: 16px; }
.semester-template-guide p { margin: 5px 0 0; color: #778984; font-size: 10px; }
.semester-page-tabs { display: flex; min-width: 0; gap: 7px; overflow-x: auto; padding: 3px; }
.semester-knowledge-status { max-width: 210px; overflow: hidden; padding: 6px 9px; border-radius: 999px; color: #176f57; background: #e4f5ef; font-size: 9px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.semester-knowledge-status.is-error { color: #a3443e; background: #fff0ef; }
.semester-page-tab { min-width: 62px; height: 34px; padding: 0 11px; border: 1px solid #d6e2de; border-radius: 9px; color: #667b75; background: #fff; font-size: 10px; font-weight: 800; white-space: nowrap; }
.semester-page-tab.is-active { border-color: #0da678; color: #087357; background: #eaf8f3; }
.semester-page-add { min-width: 34px; padding: 0; font-size: 17px; }

.semester-page-editor { min-height: 0; overflow: visible; border: 1px solid #d2e5e0; border-radius: 14px; background: #fff; box-shadow: 0 12px 30px rgba(21,78,66,.055); }
.semester-page-toolbar { display: flex; align-items: end; gap: 10px; padding: 13px 14px; border-bottom: 1px solid #e2eae8; background: #f9fbfa; }
.semester-page-toolbar label { min-width: 260px; display: grid; flex: 1; gap: 5px; color: #61756f; font-size: 10px; font-weight: 750; }
.semester-page-toolbar input { width: 100%; }
.semester-page-toolbar button { height: 34px; padding: 0 13px; border: 1px solid #b7d8cc; border-radius: 8px; color: #087458; background: #fff; font-size: 10px; font-weight: 800; }
.semester-page-toolbar button.danger { margin-left: auto; border-color: #efcecb; color: #b34f48; }
.semester-score-batch { display: grid; grid-template-columns: minmax(180px,1fr) minmax(190px,.8fr) minmax(120px,.45fr) auto; align-items: end; gap: 10px; padding: 11px 14px; border-bottom: 1px solid #e2eae8; background: #f0f8f5; }
.semester-score-batch > span { align-self: center; display: grid; gap: 3px; }
.semester-score-batch strong { color: #245c4d; font-size: 10px; }
.semester-score-batch small { color: #71867f; font-size: 8px; }
.semester-score-batch label { display: grid; gap: 4px; color: #5f746e; font-size: 9px; font-weight: 750; }
.semester-score-batch input { width: 100%; height: 34px; }
.semester-score-batch button { height: 34px; padding: 0 13px; border: 1px solid #9fcfbe; border-radius: 8px; color: #fff; background: #0c9a70; font-size: 10px; font-weight: 850; white-space: nowrap; }
.semester-question-list { min-height: 0; display: grid; align-content: start; gap: 10px; padding: 14px; overflow: visible; }
.semester-question-card { position: relative; border: 1px solid #d8e7e3; border-radius: 12px; overflow: visible; background: linear-gradient(100deg,rgba(242,250,248,.72),#fff 18%); box-shadow: 0 5px 16px rgba(18,68,58,.035); }
.semester-question-card.is-knowledge-open { z-index: 60; }
.semester-question-row { display: grid; grid-template-columns: 86px minmax(380px, 1.7fr) minmax(100px, .5fr) auto auto; align-items: end; gap: 10px; padding: 12px; }
.semester-question-index { align-self: center; color: #0a7b5e; font-size: 11px; font-weight: 900; }
.semester-question-row input,.semester-subquestion-row input { width: 100%; }
.semester-knowledge-field { min-width: 0; display: grid; gap: 5px; }
.semester-knowledge-field > b { color: #5f746e; font-size: 10px; }
.semester-knowledge-picker { position: relative; min-width: 0; }
.semester-knowledge-trigger { width: 100%; height: 34px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 8px; padding: 0 10px; border: 1px solid #c7dad3; border-radius: 8px; color: #7a8b86; background: #fff; text-align: left; }
.semester-knowledge-trigger:hover,.semester-knowledge-picker.is-open .semester-knowledge-trigger { border-color: #43ae8b; box-shadow: 0 0 0 2px rgba(24,169,126,.1); }
.semester-knowledge-trigger span { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.semester-knowledge-trigger span.has-value { color: #254b40; font-weight: 760; }
.semester-knowledge-trigger i { color: #16785e; font-size: 15px; font-style: normal; transition: transform .16s ease; }
.semester-knowledge-picker.is-open .semester-knowledge-trigger i { transform: rotate(180deg); }
.semester-knowledge-popover { position: absolute; z-index: 80; top: calc(100% + 6px); left: 0; width: min(860px, calc(100vw - 150px)); box-sizing: border-box; overflow: hidden; border: 1px solid #bcd6cd; border-radius: 12px; background: #fff; box-shadow: 0 18px 42px rgba(27,66,55,.2); }
.semester-knowledge-search { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 7px; padding: 9px 10px; border-bottom: 1px solid #e0ebe7; background: #f4faf7; }
.semester-knowledge-search > span { color: #168264; font-size: 17px; }
.semester-knowledge-search input { width: 100%; height: 34px; padding: 0 9px; border: 1px solid #c7ddd5; border-radius: 8px; color: #234b40; background: #fff; font-size: 10px; }
.semester-knowledge-search input:focus { border-color: #27a980; box-shadow: 0 0 0 2px rgba(39,169,128,.12); outline: none; }
.semester-knowledge-search button { width: 28px; height: 28px; padding: 0; border: 0; border-radius: 7px; color: #6f827c; background: transparent; font-size: 16px; }
.semester-knowledge-search button:hover { color: #a8453d; background: #fff0ee; }
.semester-knowledge-cascade { height: var(--semester-knowledge-content-height, min(310px, calc(100vh - 340px))); min-height: 0; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); }
.semester-knowledge-column { min-width: 0; min-height: 0; display: grid; grid-template-rows: auto minmax(0,1fr); border-right: 1px solid #e3ece9; }
.semester-knowledge-column:last-child { border-right: 0; }
.semester-knowledge-column header { display: flex; align-items: center; gap: 6px; padding: 9px 10px; color: #58736a; background: #fbfdfc; }
.semester-knowledge-column header b { width: 19px; height: 19px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; color: #087356; background: #dff4ec; font-size: 9px; }
.semester-knowledge-column header span { font-size: 9px; font-weight: 800; }
.semester-knowledge-column > div { min-height: 0; overflow-y: auto; padding: 5px; }
.semester-knowledge-choice { width: 100%; min-height: 31px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 5px; padding: 6px 7px; border: 0; border-radius: 7px; color: #38584f; background: transparent; text-align: left; }
.semester-knowledge-choice span { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.semester-knowledge-choice i { color: #98aaa4; font-size: 13px; font-style: normal; }
.semester-knowledge-choice:hover,.semester-knowledge-choice.is-selected { color: #087456; background: #e8f7f1; }
.semester-knowledge-choice.is-selected { font-weight: 850; }
.semester-knowledge-detail-note { margin: 0 0 4px; padding: 7px; border-radius: 7px; color: #6a7f78; background: #f3f8f6; font-size: 8px; line-height: 1.45; }
.semester-knowledge-direct { margin-bottom: 3px; border: 1px dashed #c5dcd4; }
.semester-knowledge-detail i,.semester-knowledge-direct i { color: #0a8b67; font-size: 10px; }
.semester-knowledge-column-empty { margin: 0; padding: 22px 7px; color: #99a9a4; font-size: 9px; text-align: center; }
.semester-knowledge-search-results { max-height: var(--semester-knowledge-content-height, min(340px, calc(100vh - 320px))); overflow-y: auto; padding: 7px; }
.semester-knowledge-search-meta { padding: 5px 7px 7px; color: #6e827b; font-size: 9px; }
.semester-knowledge-result { width: 100%; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 8px 9px; border: 0; border-radius: 8px; color: #34564c; background: #fff; text-align: left; }
.semester-knowledge-result:hover { background: #eaf8f3; }
.semester-knowledge-result span,.semester-knowledge-result strong,.semester-knowledge-result small { min-width: 0; display: block; }
.semester-knowledge-result strong { color: #234d41; font-size: 10px; }
.semester-knowledge-result strong em { display: inline-block; margin-left: 6px; padding: 2px 5px; border-radius: 999px; color: #8a5b13; background: #fff3d9; font-size: 7px; font-style: normal; vertical-align: 1px; }
.semester-knowledge-result small { margin-top: 3px; overflow: hidden; color: #768a83; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.semester-knowledge-result i { padding: 3px 7px; border-radius: 999px; color: #087457; background: #def4eb; font-size: 8px; font-style: normal; font-weight: 800; }
.semester-knowledge-search-empty { display: grid; gap: 5px; padding: 38px 18px; color: #758880; text-align: center; }
.semester-knowledge-search-empty strong { color: #425f57; font-size: 11px; }
.semester-knowledge-search-empty span { font-size: 9px; }
.semester-knowledge-loading { height: 34px; display: flex; align-items: center; padding: 0 10px; border: 1px dashed #b7d4ca; border-radius: 8px; color: #34715f; background: #f1f9f6; font-size: 9px; }
.semester-knowledge-fallback { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 6px; }
.semester-knowledge-fallback button { padding: 0 9px; border: 1px solid #b8d7cc; border-radius: 8px; color: #087457; background: #fff; font-size: 9px; font-weight: 800; }
.semester-row-button { height: 34px; padding: 0 11px; border: 1px solid #c8ddd5; border-radius: 8px; color: #16745b; background: #f6fbf9; font-size: 10px; font-weight: 800; white-space: nowrap; }
.semester-row-button.danger { width: 34px; padding: 0; border-color: #f0d5d2; color: #b64d46; background: #fff8f7; }
.semester-subquestion-list { display: grid; gap: 8px; padding: 10px 12px 12px 40px; border-top: 1px solid #e4ece9; background: #f7faf9; }
.semester-subquestion-row { display: grid; grid-template-columns: 38px 74px minmax(380px, 1.7fr) minmax(100px, .5fr) 34px; align-items: end; gap: 9px; }
.semester-subquestion-row > span { align-self: center; color: #6e837c; font-size: 10px; font-weight: 800; }
.semester-template-error { margin: 0; padding: 9px 14px; border-top: 1px solid #f2d1cf; color: #a43e38; background: #fff4f3; font-size: 11px; }

.semester-report-footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 22px; border-top: 1px solid #dae5e1; background: #fff; }
.semester-report-footer-note { color: #6d817a; font-size: 10px; }
.semester-report-footer-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.semester-report-footer button { min-width: 100px; }

.semester-attachment-studio { position: absolute; z-index: 120; inset: 0; min-width: 0; min-height: 0; display: grid; grid-template-rows: auto minmax(0,1fr) auto; overflow: hidden; color: #183f35; background: #eef5f3; animation: semester-dialog-enter .16s ease-out; }
.semester-attachment-studio[hidden] { display: none; }
.semester-report-dialog:has(.semester-attachment-studio:not([hidden])) { position: relative; }
.semester-attachment-studio > header { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 14px 18px; color: #fff; background: radial-gradient(circle at 72% -70%,rgba(85,244,203,.33),transparent 38%),linear-gradient(115deg,#08383e,#08735f); }
.semester-attachment-studio > header > div { min-width: 0; display: flex; align-items: center; gap: 11px; }
.semester-attachment-studio > header > div > span { width: 38px; height: 38px; display: grid; flex: none; place-items: center; border: 1px solid rgba(211,255,244,.32); border-radius: 10px; background: rgba(255,255,255,.1); font-weight: 900; }
.semester-attachment-studio > header h3 { margin: 0; font-size: 16px; }
.semester-attachment-studio > header p { max-width: 620px; margin: 4px 0 0; overflow: hidden; color: #c9e9df; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.semester-attachment-studio > header > button { width: 36px; height: 36px; border: 1px solid rgba(218,255,246,.2); border-radius: 10px; color: #e5fff8; background: rgba(255,255,255,.1); font-size: 21px; }
.semester-attachment-studio-body { min-height: 0; display: grid; grid-template-columns: 138px minmax(380px,1fr) 244px; gap: 12px; padding: 12px; overflow: hidden; }
.semester-attachment-thumbnails { min-height: 0; display: grid; grid-template-rows: auto minmax(0,1fr); align-content: start; gap: 8px; padding: 3px 5px 3px 2px; overflow: hidden; }
.semester-attachment-pages-head { display: flex; align-items: center; justify-content: space-between; gap: 6px; padding: 3px 1px; }
.semester-attachment-pages-head > span { display: flex; align-items: center; gap: 5px; color: #3d6157; font-size: 9px; }
.semester-attachment-pages-head em { padding: 2px 5px; border-radius: 999px; color: #087457; background: #dff3ec; font-size: 7px; font-style: normal; }
.semester-attachment-pages-head button { height: 26px; padding: 0 7px; border: 1px solid #acd5c7; border-radius: 7px; color: #087457; background: #fff; font-size: 8px; font-weight: 800; }
.semester-attachment-thumbnail-list { min-height: 0; display: grid; grid-auto-rows: max-content; align-content: start; gap: 8px; padding: 1px 3px 3px 0; overflow-y: auto; scrollbar-gutter: stable; }
.semester-attachment-thumbnail-list [data-attachment-thumbnails-more] { min-height: 36px; padding: 6px 2px; border: 1px solid #acd5c7; border-radius: 7px; color: #087457; background: #fff; font-size: 10px; }
.semester-attachment-thumbnail-list [data-attachment-thumbnails-more][hidden] { display: none; }
.semester-attachment-thumbnail { position: relative; min-width: 0; display: grid; grid-template-columns: 46px minmax(0,1fr); align-items: center; gap: 7px; padding: 6px; border: 1px solid #ceded9; border-radius: 9px; color: #547068; background: #fff; text-align: left; }
.semester-attachment-thumbnail > span { height: 58px; display: grid; place-items: center; overflow: hidden; border-radius: 5px; background: #e8efed; }
.semester-attachment-thumbnail img { width: 100%; height: 100%; display: block; object-fit: cover; }
.semester-attachment-thumbnail b { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.semester-attachment-thumbnail i { position: absolute; top: 4px; right: 4px; width: 15px; height: 15px; display: grid; place-items: center; border-radius: 50%; color: #825514; background: #ffe4a8; font-size: 8px; font-style: normal; font-weight: 900; }
.semester-attachment-thumbnail.is-active { border-color: #0ca779; color: #087456; background: #eaf8f3; box-shadow: 0 0 0 2px rgba(12,167,121,.12); }
.semester-attachment-preview { min-width: 0; min-height: 0; display: grid; grid-template-rows: auto minmax(0,1fr) auto; overflow: hidden; border: 1px solid #cfdfda; border-radius: 13px; background: #dfe8e5; box-shadow: 0 10px 28px rgba(24,69,58,.08); }
.semester-attachment-preview-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 11px; border-bottom: 1px solid #d1ded9; background: #fff; }
.semester-attachment-preview-toolbar > span { display: flex; align-items: center; gap: 8px; }
.semester-attachment-preview-toolbar b { font-size: 10px; }
.semester-attachment-preview-toolbar em { padding: 3px 7px; border-radius: 999px; color: #087457; background: #def4ec; font-size: 8px; font-style: normal; font-weight: 800; }
.semester-attachment-preview-toolbar em.is-warning { color: #855b18; background: #fff0d1; }
.semester-attachment-preview-toolbar em.is-manual { color: #435da4; background: #e7ecff; }
.semester-attachment-preview-toolbar em.is-original { color: #62736e; background: #edf1f0; }
.semester-attachment-preview-toolbar > div,.semester-attachment-segment { display: inline-flex; padding: 2px; border-radius: 8px; background: #eaf0ee; }
.semester-attachment-preview-toolbar button,.semester-attachment-segment button { min-width: 64px; height: 27px; padding: 0 8px; border: 0; border-radius: 6px; color: #697c76; background: transparent; font-size: 8px; font-weight: 800; }
.semester-attachment-preview-toolbar button.is-active,.semester-attachment-segment button.is-active { color: #087456; background: #fff; box-shadow: 0 2px 8px rgba(28,71,61,.1); }
.semester-attachment-preview-stage { position: relative; min-width: 0; min-height: 0; display: flex; align-items: center; justify-content: center; padding: 16px; overflow: auto; background-image: linear-gradient(45deg,rgba(255,255,255,.3) 25%,transparent 25%),linear-gradient(-45deg,rgba(255,255,255,.3) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(255,255,255,.3) 75%),linear-gradient(-45deg,transparent 75%,rgba(255,255,255,.3) 75%); background-position: 0 0,0 7px,7px -7px,-7px 0; background-size: 14px 14px; }
.semester-attachment-crop-surface { position: relative; max-width: 100%; display: inline-block; flex: none; line-height: 0; box-shadow: 0 10px 28px rgba(8,30,25,.2); }
.semester-attachment-crop-surface > img { max-width: 100%; max-height: calc(94vh - 245px); display: block; object-fit: contain; background: #fff; }
.semester-attachment-crop-svg { position: absolute; z-index: 2; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.semester-attachment-crop-svg path { fill: rgba(5,25,31,.48); }
.semester-attachment-crop-svg polygon { fill: rgba(20,202,151,.06); stroke: #19d49b; stroke-width: 5; vector-effect: non-scaling-stroke; }
.semester-crop-handle { position: absolute; z-index: 4; width: 17px; height: 17px; padding: 0; border: 3px solid #fff; border-radius: 50%; background: #0db584; box-shadow: 0 2px 8px rgba(2,43,32,.45); cursor: grab; transform: translate(-50%,-50%); touch-action: none; }
.semester-crop-handle:active { cursor: grabbing; }
.semester-crop-handle.is-top,.semester-crop-handle.is-right,.semester-crop-handle.is-bottom,.semester-crop-handle.is-left { width: 20px; height: 12px; border-radius: 7px; background: #ffd56e; }
.semester-crop-handle.is-right,.semester-crop-handle.is-left { width: 12px; height: 20px; }
.semester-crop-handle:focus-visible { outline: 3px solid #ffcf4b; outline-offset: 3px; }
.semester-attachment-processing { position: absolute; z-index: 8; inset: 0; display: grid; place-content: center; justify-items: center; gap: 9px; color: #fff; background: rgba(10,43,38,.62); backdrop-filter: blur(2px); font-size: 10px; font-weight: 800; }
.semester-attachment-processing i,.semester-attachment-loading i { width: 25px; height: 25px; border: 3px solid rgba(255,255,255,.35); border-top-color: #fff; border-radius: 50%; animation: semester-attachment-spin .75s linear infinite; }
@keyframes semester-attachment-spin { to { transform: rotate(360deg); } }
.semester-attachment-preview-note { min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0; padding: 7px 11px; border-top: 1px solid #d0deda; color: #61766f; background: #fff; font-size: 8px; line-height: 1.45; }
.semester-attachment-preview-note b { color: #087457; }
.semester-attachment-preview-note strong { color: #a6443e; }
.semester-attachment-controls { min-height: 0; display: grid; align-content: start; gap: 10px; overflow-y: auto; }
.semester-attachment-controls section,.semester-attachment-controls dl { margin: 0; padding: 11px; border: 1px solid #d2e2dd; border-radius: 11px; background: #fff; }
.semester-attachment-controls h4 { margin: 0 0 8px; color: #284f44; font-size: 10px; }
.semester-attachment-controls small { display: block; margin-top: 7px; color: #788b85; font-size: 8px; line-height: 1.5; }
.semester-attachment-segment { width: 100%; }
.semester-attachment-segment button { flex: 1; }
.semester-attachment-mode-cards { display: grid; gap: 6px; }
.semester-attachment-mode-cards button { display: grid; gap: 3px; padding: 9px; border: 1px solid #d5e2de; border-radius: 9px; color: #526d65; background: #fbfdfc; text-align: left; }
.semester-attachment-mode-cards button b { color: #2a5146; font-size: 9px; }
.semester-attachment-mode-cards button span { font-size: 8px; }
.semester-attachment-mode-cards button.is-active { border-color: #17a77e; color: #087457; background: #eaf8f3; box-shadow: 0 0 0 2px rgba(23,167,126,.09); }
.semester-attachment-crop-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.semester-attachment-crop-actions button { min-width: 0; height: 29px; padding: 0 6px; border: 1px solid #bad8ce; border-radius: 7px; color: #16725a; background: #f8fcfa; font-size: 8px; font-weight: 800; }
.semester-attachment-crop-actions button:first-child { grid-column: 1/-1; color: #fff; background: #0d9870; }
.semester-attachment-section-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.semester-attachment-section-title h4 { margin-bottom: 0; }
.semester-attachment-section-title em { padding: 2px 6px; border-radius: 999px; color: #087457; background: #e7f6f0; font-size: 7px; font-style: normal; font-weight: 800; }
.semester-attachment-page-tools > div:nth-child(2) { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-top: 8px; }
.semester-attachment-page-tools button { min-width: 0; height: 29px; padding: 0 6px; border: 1px solid #bad8ce; border-radius: 7px; color: #16725a; background: #f8fcfa; font-size: 8px; font-weight: 800; }
.semester-attachment-page-tools button.danger { border-color: #efd0cb; color: #aa463f; background: #fff8f7; }
.semester-attachment-controls dl { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.semester-attachment-controls dl div { min-width: 0; padding: 7px; border-radius: 7px; background: #f2f7f5; }
.semester-attachment-controls dt { color: #7c8e89; font-size: 7px; }
.semester-attachment-controls dd { margin: 3px 0 0; overflow: hidden; color: #315249; font-size: 9px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.semester-attachment-studio > footer { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 11px 16px; border-top: 1px solid #d2e0dc; background: #fff; }
.semester-attachment-studio > footer p { margin: 0; color: #6d807a; font-size: 8px; }
.semester-attachment-studio > footer p b { color: #087456; }
.semester-attachment-studio > footer > div { display: flex; gap: 8px; }
.semester-attachment-studio > footer button { min-width: 94px; }
.semester-attachment-loading { min-height: 0; display: grid; place-content: center; justify-items: center; gap: 10px; color: #527269; text-align: center; }
.semester-attachment-loading i { border-color: #b6d8cd; border-top-color: #0a9d73; }
.semester-attachment-loading strong { color: #235247; font-size: 14px; }
.semester-attachment-loading span { font-size: 9px; }
.semester-attachment-loading.is-error strong { color: #a5433d; }
.semester-attachment-loading button { height: 33px; padding: 0 13px; border: 1px solid #9bcfbd; border-radius: 8px; color: #087456; background: #fff; font-size: 9px; font-weight: 800; }
.semester-attachment-studio button:disabled { cursor: not-allowed; opacity: .48; }
.semester-source-attachment button:focus-visible,.semester-attachment-studio button:focus-visible { outline: 3px solid rgba(12,167,121,.24); outline-offset: 2px; }

.semester-grading-workspace { width: 100%; height: 100%; min-height: 0; display: grid; grid-template-rows: auto auto auto minmax(0, 1fr) auto; box-sizing: border-box; padding: 20px 22px 0; overflow: hidden; background: rgba(248,252,251,.84); }
.semester-grading-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-bottom: 15px; }
.semester-grading-header h3,.semester-theme-workspace h3,.semester-report-fields h3 { margin: 3px 0 0; font-size: 18px; }
.semester-grading-header p,.semester-theme-workspace header p,.semester-report-fields header p { margin: 5px 0 0; color: #738680; font-size: 10px; }
.semester-grading-progress { min-width: 150px; display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 3px 8px; }
.semester-grading-progress strong { color: #08785a; font-size: 21px; }
.semester-grading-progress span { color: #6f827c; font-size: 10px; }
.semester-grading-progress i { height: 6px; grid-column: 1/-1; overflow: hidden; border-radius: 99px; background: #dce9e4; }
.semester-grading-progress b { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#17b386,#087e60); transition: width .18s ease; }
.semester-grading-meta { display: grid; grid-template-columns: 1.1fr 1fr .8fr 1fr; gap: 11px; padding: 13px; border: 1px solid #d3e5e0; border-radius: 13px; background: linear-gradient(120deg,#fff,#f8fcfb); box-shadow: 0 8px 24px rgba(19,75,63,.045); }
.semester-grading-meta label,.semester-grading-score,.semester-report-field { display: grid; gap: 5px; color: #5e726c; font-size: 10px; font-weight: 750; }
.semester-grading-meta input { width: 100%; }
.semester-grading-tools { display: flex; align-items: center; justify-content: flex-end; gap: 8px; padding: 12px 2px 9px; }
.semester-grading-tools > span { display: grid; margin-right: auto; }
.semester-grading-tools strong { font-size: 11px; }
.semester-grading-tools small { margin-top: 2px; color: #7a8d87; font-size: 9px; }
.semester-grading-tools button { height: 31px; padding: 0 11px; border: 1px solid #c8ddd5; border-radius: 8px; color: #16745b; background: #fff; font-size: 10px; font-weight: 800; }
.semester-grading-pages { min-height: 0; display: block; padding: 2px 9px 18px 2px; overflow-x: hidden; overflow-y: scroll; overscroll-behavior: contain; scrollbar-gutter: stable; scrollbar-color: #79aa9a #e7f0ed; scrollbar-width: thin; }
.semester-grading-pages::-webkit-scrollbar { width: 10px; }
.semester-grading-pages::-webkit-scrollbar-track { border-radius: 999px; background: #e7f0ed; }
.semester-grading-pages::-webkit-scrollbar-thumb { min-height: 48px; border: 2px solid #e7f0ed; border-radius: 999px; background: #79aa9a; }
.semester-grading-pages::-webkit-scrollbar-thumb:hover { background: #4f8f7b; }
.semester-grading-page { overflow: hidden; border: 1px solid #d3e5e0; border-radius: 13px; background: #fff; box-shadow: 0 8px 24px rgba(19,75,63,.045); }
.semester-grading-page + .semester-grading-page { margin-top: 13px; }
.semester-grading-page > header { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; color: #466159; background: #f1f7f5; }
.semester-grading-page > header strong { font-size: 11px; }
.semester-grading-page > header span { color: #71857f; font-size: 9px; }
.semester-grading-row { display: grid; grid-template-columns: 94px minmax(180px, 1fr) minmax(290px, 1.4fr) 118px; align-items: center; gap: 12px; min-height: 67px; padding: 9px 13px; border-top: 1px solid #e6edeb; border-left: 4px solid transparent; }
.semester-grading-row.is-correct { border-left-color: #18aa7e; background: #fbfffd; }
.semester-grading-row.is-wrong { border-left-color: #da6259; background: #fffdfc; }
.semester-grading-row.is-partial { border-left-color: #e29a35; background: #fffefa; }
.semester-grading-row.is-unanswered { border-left-color: #8b9995; }
.semester-grading-number strong,.semester-grading-number small,.semester-grading-knowledge strong,.semester-grading-knowledge small { display: block; }
.semester-grading-number strong { color: #183e34; font-size: 15px; }
.semester-grading-number small,.semester-grading-knowledge small { margin-top: 3px; color: #7a8b86; font-size: 9px; }
.semester-grading-knowledge strong { overflow: hidden; color: #405e56; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.semester-grade-choices { display: grid; grid-template-columns: repeat(4, minmax(58px, 1fr)); gap: 6px; }
.semester-grade-choice { min-width: 0; height: 39px; display: flex; align-items: center; justify-content: center; gap: 4px; border: 1px solid #d9e4e0; border-radius: 8px; color: #60736e; background: #fff; font-size: 15px; font-weight: 900; }
.semester-grade-choice small { font-size: 9px; font-weight: 700; }
.semester-grade-choice.is-correct.is-selected { border-color: #16a87c; color: #087354; background: #e9f8f2; box-shadow: 0 0 0 2px rgba(22,168,124,.11); }
.semester-grade-choice.is-wrong.is-selected { border-color: #d76158; color: #ad4039; background: #fff0ef; box-shadow: 0 0 0 2px rgba(215,97,88,.1); }
.semester-grade-choice.is-partial.is-selected { border-color: #df9939; color: #9c661b; background: #fff6e8; }
.semester-grade-choice.is-unanswered.is-selected { border-color: #899a95; color: #596c66; background: #eef2f1; }
.semester-grading-score input { width: 100%; }

.semester-theme-workspace { min-height: 0; padding: 32px 38px; overflow-y: auto; }
.semester-theme-workspace > header { max-width: 740px; margin: 0 auto 23px; text-align: center; }
.semester-theme-workspace > header h3 { font-size: 22px; }
.semester-template-match { max-width: 1040px; display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 10px; margin: 0 auto 14px; padding: 10px 12px; border: 1px solid #c9e1d9; border-radius: 10px; color: #527068; background: #f2faf7; font-size: 10px; line-height: 1.45; }
.semester-template-match strong { padding: 4px 7px; border-radius: 999px; color: #fff; background: #0b8f6b; font-size: 9px; white-space: nowrap; }
.semester-theme-grid { max-width: 1040px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 0 auto; }
.semester-theme-grid .analysis-template-card { min-height: 118px; }
.semester-theme-card { position: relative; display: grid; grid-template-columns: 104px minmax(0, 1fr); align-items: center; gap: 14px; min-height: 118px; padding: 14px; border: 2px solid transparent; border-radius: 15px; color: #314b44; background: #fff; box-shadow: 0 7px 22px rgba(36,65,58,.07); cursor: pointer; }
.semester-theme-card input { position: absolute; opacity: 0; pointer-events: none; }
.semester-theme-card.is-selected { border-color: var(--report-accent); box-shadow: 0 0 0 3px color-mix(in srgb,var(--report-accent) 13%,transparent),0 9px 25px rgba(36,65,58,.09); }
.semester-theme-preview { height: 86px; display: grid; grid-template-rows: 22px 1fr 14px; gap: 7px; padding: 9px; overflow: hidden; border-radius: 9px; background: var(--report-paper); box-shadow: inset 0 0 0 1px rgba(37,63,56,.1); }
.semester-theme-preview i { border-radius: 4px; background: var(--report-accent); }
.semester-theme-preview b { width: 36px; height: 36px; place-self: center; border: 7px solid var(--report-soft); border-top-color: var(--report-accent); border-radius: 50%; }
.semester-theme-preview em { border-radius: 3px; background: linear-gradient(90deg,var(--report-accent) 65%,var(--report-soft) 65%); }
.semester-theme-card > span:last-child strong,.semester-theme-card > span:last-child small { display: block; }
.semester-theme-card > span:last-child strong { font-size: 14px; }
.semester-theme-card > span:last-child small { margin-top: 5px; color: #788a84; font-size: 9px; }
.semester-theme-note { max-width: 1040px; display: flex; align-items: center; gap: 12px; margin: 20px auto 0; padding: 13px 16px; border: 1px solid #cce3db; border-radius: 12px; color: #536a63; background: #eef8f4; font-size: 10px; }
.semester-theme-note strong { color: #087457; white-space: nowrap; }
.semester-report-billing { max-width: 1040px; display: flex; align-items: center; gap: 12px; margin: 20px auto 0; padding: 13px 16px; border: 1px solid #f1d1a7; border-radius: 12px; color: #6f5638; background: #fff8ec; font-size: 10px; }
.semester-report-billing strong { color: #bd650e; white-space: nowrap; }
.semester-report-billing + .semester-theme-note { margin-top: 10px; }

.theme-academic-blue { --report-accent:#2e65a7; --report-deep:#173d6c; --report-soft:#dbeafd; --report-paper:#f7faff; }
.theme-warm-orange { --report-accent:#d8792d; --report-deep:#74411e; --report-soft:#fbe3ce; --report-paper:#fffaf5; }
.theme-future-purple { --report-accent:#785ac2; --report-deep:#40306c; --report-soft:#e7ddfb; --report-paper:#fbf9ff; }
.theme-campus-green { --report-accent:#16906c; --report-deep:#145440; --report-soft:#d5f1e7; --report-paper:#f7fdfb; }
.theme-cyber-blue { --report-accent:#137b9b; --report-deep:#16465d; --report-soft:#d4eff7; --report-paper:#f6fcfe; }
.theme-youth-color { --report-accent:#db5d77; --report-deep:#733449; --report-soft:#f9dce4; --report-paper:#fff8fa; }

.semester-report-editor-workspace { min-height: 0; display: grid; grid-template-columns: minmax(500px, .95fr) minmax(410px, .7fr); gap: 18px; padding: 18px; overflow: hidden; }
.semester-report-preview-pane { min-width: 0; min-height: 0; display: grid; grid-template-rows: auto minmax(0,1fr); overflow: hidden; border: 1px solid #d8e4e0; border-radius: 15px; background: #e8efec; }
.semester-report-preview-toolbar { display: flex; align-items: center; justify-content: space-between; padding: 11px 14px; border-bottom: 1px solid #d2dfda; color: #405a53; background: #f7faf9; }
.semester-report-preview-toolbar strong { font-size: 11px; }
.semester-report-preview-toolbar span { color: #71857f; font-size: 9px; }
.semester-report-preview-scroll { min-height: 0; padding: 17px; overflow: auto; }
.semester-report-fields { min-height: 0; display: grid; align-content: start; gap: 13px; padding: 18px; overflow-y: auto; border: 1px solid #d9e5e1; border-radius: 15px; background: #fff; }
.semester-report-theme-compact { display: grid; gap: 8px; }
.semester-report-theme-compact > strong { color: #5c706a; font-size: 10px; }
.semester-report-theme-compact > div { display: grid; grid-template-columns: repeat(6,1fr); gap: 5px; }
.semester-theme-card.is-compact { min-height: 0; display: grid; grid-template-columns: 1fr; gap: 4px; padding: 5px; border-width: 1px; border-radius: 8px; box-shadow: none; text-align: center; }
.semester-theme-card.is-compact .semester-theme-preview { height: 36px; grid-template-rows: 8px 1fr; gap: 3px; padding: 4px; }
.semester-theme-card.is-compact .semester-theme-preview b { width: 14px; height: 14px; border-width: 3px; }
.semester-theme-card.is-compact .semester-theme-preview em,.semester-theme-card.is-compact small { display: none; }
.semester-theme-card.is-compact strong { font-size: 8px!important; }
.semester-report-field input,.semester-report-field textarea { width: 100%; border: 1px solid #d7e2de; border-radius: 9px; font: inherit; }
.semester-report-field textarea { min-height: 78px; padding: 10px; resize: vertical; color: #294139; font-size: 11px; line-height: 1.55; }

.semester-report-paper { width: 720px; max-width: 100%; min-height: 980px; margin: 0 auto; overflow: hidden; color: #263d37; background: var(--report-paper); box-shadow: 0 12px 30px rgba(30,52,46,.15); font-family: -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif; }
.semester-paper-cover { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 29px 32px; color: #fff; background: radial-gradient(circle at 86% -10%,rgba(255,255,255,.22),transparent 34%),linear-gradient(135deg,var(--report-deep),var(--report-accent)); }
.semester-paper-cover span { color: rgba(255,255,255,.72); font-size: 8px; font-weight: 800; letter-spacing: .12em; }
.semester-paper-cover h1 { margin: 8px 0 5px; font-size: 22px; }
.semester-paper-cover p { margin: 0; color: rgba(255,255,255,.78); font-size: 9px; }
.semester-paper-cover > strong { min-width: 88px; padding: 12px 15px; border: 1px solid rgba(255,255,255,.3); border-radius: 12px; background: rgba(255,255,255,.11); text-align: center; font-size: 15px; }
.semester-paper-overview { display: grid; grid-template-columns: 135px minmax(0,1fr); align-items: center; gap: 24px; padding: 22px 30px; border-bottom: 1px solid color-mix(in srgb,var(--report-accent) 15%,#dce5e2); background: #fff; }
.semester-paper-accuracy { --semester-accuracy:0; width: 108px; height: 108px; display: grid; place-content: center; place-items: center; border-radius: 50%; background: radial-gradient(circle,#fff 57%,transparent 59%),conic-gradient(var(--report-accent) calc(var(--semester-accuracy)*1%),var(--report-soft) 0); }
.semester-paper-accuracy strong { color: var(--report-deep); font-size: 19px; }
.semester-paper-accuracy span { color: #71827d; font-size: 8px; }
.semester-paper-metrics { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); }
.semester-paper-metrics div { padding: 8px; border-right: 1px solid #e1e9e6; text-align: center; }
.semester-paper-metrics div:last-child { border-right: 0; }
.semester-paper-metrics strong,.semester-paper-metrics span { display: block; }
.semester-paper-metrics strong { color: var(--report-deep); font-size: 17px; }
.semester-paper-metrics span { margin-top: 4px; color: #758680; font-size: 7px; }
.semester-paper-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 20px 24px 25px; }
.semester-paper-section { padding: 16px; border: 1px solid #dee7e4; border-radius: 11px; background: #fff; }
.semester-paper-section.is-full,.semester-paper-comment.is-full { grid-column: 1/-1; }
.semester-paper-section > header { display: flex; align-items: center; gap: 8px; margin-bottom: 13px; }
.semester-paper-section > header b { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 7px; color: var(--report-deep); background: var(--report-soft); font-size: 8px; }
.semester-paper-section h2 { margin: 0; color: var(--report-deep); font-size: 12px; }
.semester-mastery-list { display: grid; gap: 10px; }
.semester-mastery-list > div > span { display: flex; justify-content: space-between; gap: 8px; font-size: 8px; }
.semester-mastery-list em { color: var(--report-accent); font-style: normal; font-weight: 800; }
.semester-mastery-list i { display: block; height: 5px; margin: 5px 0 3px; overflow: hidden; border-radius: 99px; background: #edf1f0; }
.semester-mastery-list i b { display: block; height: 100%; border-radius: inherit; background: var(--report-accent); }
.semester-mastery-list small { color: #82908c; font-size: 7px; }
.semester-mastery-list .is-weak i b { background: #d9655c; }
.semester-mastery-list .is-medium i b { background: #db9b3e; }
.semester-paper-question-list { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.semester-paper-question-list li { display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 7px; padding: 6px 7px; border-radius: 7px; background: #f6f8f7; font-size: 8px; }
.semester-paper-question-list li > span { overflow: hidden; color: #61736e; text-overflow: ellipsis; white-space: nowrap; }
.semester-paper-question-list em { padding: 2px 5px; border-radius: 99px; color: #ab413b; background: #ffebe9; font-size: 7px; font-style: normal; }
.semester-paper-question-list em.is-partial { color: #946019; background: #fff1d9; }
.semester-paper-question-list em.is-unanswered { color: #5f6e69; background: #e9eeec; }
.semester-paper-copy,.semester-paper-empty { margin: 0; color: #455c55; font-size: 9px; line-height: 1.75; }
.semester-paper-suggestions { display: grid; gap: 6px; margin: 0; padding-left: 20px; color: #455c55; font-size: 9px; line-height: 1.65; }
.semester-paper-comment { padding: 14px 16px; border-radius: 10px; background: var(--report-soft); }
.semester-paper-comment strong { color: var(--report-deep); font-size: 9px; }
.semester-paper-comment p { margin: 5px 0 0; color: #40574f; font-size: 9px; line-height: 1.65; }
.semester-report-paper > footer { display: flex; justify-content: space-between; padding: 11px 24px; color: rgba(255,255,255,.75); background: var(--report-deep); font-size: 7px; }

.semester-export-workspace { min-height: 0; display: grid; grid-template-columns: minmax(520px, 1fr) 340px; gap: 20px; padding: 18px; overflow: hidden; }
.semester-export-preview { min-width: 0; min-height: 0; display: grid; grid-template-rows: auto minmax(0,1fr); overflow: hidden; border: 1px solid #d7e3df; border-radius: 15px; background: #e8efec; }
.semester-export-preview > div:last-child { min-height: 0; padding: 18px; overflow: auto; }
.semester-export-panel { align-self: center; display: grid; gap: 17px; padding: 25px; border: 1px solid #d8e5e0; border-radius: 17px; background: #fff; box-shadow: 0 12px 35px rgba(36,65,58,.08); }
.semester-export-icon { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 18px; color: #fff; background: linear-gradient(145deg,#24bd90,#08785b); box-shadow: 0 9px 22px rgba(16,154,114,.2); font-size: 25px; font-weight: 900; }
.semester-export-icon.is-busy { animation: semester-export-pulse .9s ease-in-out infinite alternate; }
@keyframes semester-export-pulse { to { opacity: .62; transform: scale(.94); } }
.semester-export-panel h3 { margin: 4px 0 0; color: #173e34; font-size: 20px; }
.semester-export-panel p { margin: 7px 0 0; color: #667b74; font-size: 10px; line-height: 1.7; }
.semester-export-panel dl { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0; }
.semester-export-panel dl div { padding: 10px; border-radius: 9px; background: #f3f7f5; }
.semester-export-panel dt { color: #748680; font-size: 8px; }
.semester-export-panel dd { margin: 4px 0 0; overflow: hidden; color: #294a40; font-size: 12px; font-weight: 850; text-overflow: ellipsis; white-space: nowrap; }
.semester-export-ready { display: grid; gap: 4px; padding: 12px; border: 1px solid #bce2d5; border-radius: 10px; color: #126b51; background: #eaf8f3; }
.semester-export-ready strong { font-size: 11px; }
.semester-export-ready span { font-size: 9px; }
.semester-export-error { padding: 10px; border-radius: 9px; color: #a6403a!important; background: #fff0ef; }

@media (max-width: 980px) {
  .semester-report-backdrop { padding: 0; }
  .semester-report-dialog { width: 100vw; height: 100vh; height: 100dvh; border-radius: 0; }
  .semester-attachment-studio > header { padding-top: calc(14px + env(safe-area-inset-top)); padding-right: max(18px, env(safe-area-inset-right)); padding-left: max(18px, env(safe-area-inset-left)); }
  .semester-attachment-studio > footer { padding-right: max(16px, env(safe-area-inset-right)); padding-bottom: calc(11px + env(safe-area-inset-bottom)); padding-left: max(16px, env(safe-area-inset-left)); }
  .semester-template-workspace { grid-template-columns: 210px minmax(0, 1fr); }
  .semester-template-meta { grid-template-columns: 1fr 1fr; }
  .semester-source-attachment { grid-template-columns: 42px minmax(0,1fr); }
  .semester-source-actions,.semester-source-add { grid-column: 2; justify-self: start; }
  .semester-template-guide { grid-template-columns: 1fr auto; }
  .semester-knowledge-status { grid-column: 1/-1; max-width: none; justify-self: start; }
  .semester-question-row { grid-template-columns: 70px minmax(300px,1fr) 90px auto auto; }
  .semester-score-batch { grid-template-columns: 1fr 1fr auto; }
  .semester-score-batch > span { grid-column: 1/-1; }
  .semester-grading-row { grid-template-columns: 80px 1fr; }
  .semester-grade-choices { grid-column: 1/-1; }
  .semester-grading-score { grid-column: 2; }
  .semester-report-editor-workspace { grid-template-columns: 1fr 390px; }
  .semester-export-workspace { grid-template-columns: 1fr 300px; }
  .semester-attachment-studio-body { grid-template-columns: 108px minmax(320px,1fr) 218px; }
}

@media (max-width: 720px) {
  .semester-report-header { padding: 15px; }
  .semester-report-steps { padding-inline: 3%; }
  .semester-report-steps li { grid-template-columns: 26px; justify-items: center; }
  .semester-report-steps span { display: none; }
  .semester-template-workspace { grid-template-columns: 1fr; overflow: auto; }
  .semester-template-library { min-height: 145px; border-right: 0; border-bottom: 1px solid #dce7e3; }
  .semester-template-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .semester-template-editor { min-height: 680px; overflow: visible; }
  .semester-source-attachment { grid-template-columns: 38px minmax(0,1fr); }
  .semester-source-icon { width: 38px; height: 38px; }
  .semester-source-actions { max-width: 100%; overflow-x: auto; }
  .semester-question-row { grid-template-columns: 70px 1fr; }
  .semester-question-row .semester-row-button { grid-column: auto; }
  .semester-subquestion-row { grid-template-columns: 30px 65px 1fr; }
  .semester-knowledge-cascade { height: var(--semester-knowledge-content-height, calc(100vh - 230px)); }
  .semester-score-batch { grid-template-columns: 1fr; }
  .semester-score-batch > span { grid-column: 1; }
  .semester-subquestion-row label:nth-of-type(3),.semester-subquestion-row .danger { grid-column: auto; }
  .semester-grading-meta { grid-template-columns: 1fr 1fr; }
  .semester-theme-grid { grid-template-columns: 1fr; }
  .semester-report-editor-workspace { grid-template-columns: 1fr; overflow: auto; }
  .semester-report-preview-pane { min-height: 650px; }
  .semester-export-workspace { grid-template-columns: 1fr; overflow: auto; }
  .semester-attachment-studio-body { grid-template-columns: 78px minmax(0,1fr); overflow-y: auto; }
  .semester-attachment-thumbnails { grid-row: span 1; }
  .semester-attachment-preview { min-height: 520px; }
  .semester-attachment-controls { grid-column: 1/-1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); overflow: visible; }
  .semester-attachment-controls dl { grid-column: 1/-1; grid-template-columns: repeat(3,1fr); }
  .semester-attachment-studio > footer { align-items: flex-start; }
  .semester-attachment-studio > footer p { max-width: 50%; }
}

@media (hover: none) and (pointer: coarse), (max-width: 720px) {
  .semester-source-actions button,.semester-source-entry-actions button,.semester-attachment-studio > header > button,.semester-attachment-pages-head button,.semester-attachment-preview-toolbar button,.semester-attachment-segment button,.semester-attachment-mode-cards button,.semester-attachment-crop-actions button,.semester-attachment-page-tools button,.semester-attachment-studio > footer button { min-width: 44px; min-height: 44px; height: auto; }
  .semester-source-actions button,.semester-attachment-pages-head button,.semester-attachment-preview-toolbar button,.semester-attachment-segment button,.semester-attachment-crop-actions button,.semester-attachment-page-tools button { font-size: 10px; }
  .semester-source-entry-actions button b,.semester-attachment-mode-cards button b { font-size: 11px; }
  .semester-source-entry-actions button small { font-size: 9px; }
  .semester-attachment-mode-cards button { padding-block: 10px; }
  .semester-attachment-mode-cards button span,.semester-attachment-controls small,.semester-attachment-preview-note,.semester-attachment-studio > footer p { font-size: 10px; }
  .semester-crop-handle,.semester-crop-handle.is-top,.semester-crop-handle.is-right,.semester-crop-handle.is-bottom,.semester-crop-handle.is-left { width: 44px; height: 44px; border: 0; border-radius: 50%; background: transparent; box-shadow: none; }
  .semester-crop-handle::after { position: absolute; top: 50%; left: 50%; width: 20px; height: 20px; border: 3px solid #fff; border-radius: 50%; background: #0db584; box-shadow: 0 2px 8px rgba(2,43,32,.45); content: ''; pointer-events: none; transform: translate(-50%,-50%); }
  .semester-crop-handle.is-top::after,.semester-crop-handle.is-bottom::after { width: 24px; height: 14px; border-radius: 8px; background: #ffd56e; }
  .semester-crop-handle.is-right::after,.semester-crop-handle.is-left::after { width: 14px; height: 24px; border-radius: 8px; background: #ffd56e; }
}

@media (max-height: 560px) and (orientation: landscape) {
  .semester-attachment-studio > header { padding-top: calc(8px + env(safe-area-inset-top)); padding-bottom: 8px; }
  .semester-attachment-studio > header > div > span { width: 32px; height: 32px; }
  .semester-attachment-studio > header h3 { font-size: 14px; }
  .semester-attachment-studio > header p { margin-top: 2px; }
  .semester-attachment-studio-body { grid-template-columns: 72px minmax(0,1fr) minmax(176px,210px); gap: 8px; padding: 8px max(8px, env(safe-area-inset-right)) 8px max(8px, env(safe-area-inset-left)); overflow: hidden; }
  .semester-attachment-thumbnails { grid-row: auto; }
  .semester-attachment-thumbnail { grid-template-columns: 1fr; gap: 3px; padding: 4px; }
  .semester-attachment-thumbnail > span { height: 44px; }
  .semester-attachment-thumbnail b { text-align: center; }
  .semester-attachment-preview { min-height: 0; }
  .semester-attachment-preview-stage { padding: 8px; }
  .semester-attachment-crop-surface > img { max-height: calc(100dvh - 184px); }
  .semester-attachment-controls { grid-column: auto; display: grid; grid-template-columns: 1fr; gap: 8px; overflow-y: auto; }
  .semester-attachment-controls section,.semester-attachment-controls dl { padding: 8px; }
  .semester-attachment-controls dl { grid-column: auto; grid-template-columns: 1fr 1fr; }
  .semester-attachment-studio > footer { align-items: center; justify-content: flex-end; padding-top: 7px; padding-bottom: calc(7px + env(safe-area-inset-bottom)); }
  .semester-attachment-studio > footer p { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .semester-attachment-studio,.semester-attachment-processing i,.semester-attachment-loading i { animation: none; }
}
.semester-source-entry-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
.semester-library-toolbar { display: flex; align-items: center; gap: 16px; padding-left: 18px; background: #f9fcfb; border-bottom: 1px solid #d5e6e2; }
.semester-library-toolbar > .semester-template-new { flex: 0 0 auto; height: 36px; }
.semester-library-toolbar .semester-report-steps { flex: 1; min-width: 0; border-bottom: 0; }
.semester-folder-navigation { flex: 0 1 auto; min-height: 72px; max-height: 220px; overflow-y: auto; margin-bottom: 12px; }
.semester-folder-row { display: flex; align-items: center; gap: 3px; margin-bottom: 3px; }
.semester-folder-row button { min-height: 34px; border: 0; border-radius: 7px; background: transparent; color: #52716a; cursor: pointer; }
.semester-folder-row > button:first-child { flex: 1; min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 6px; padding: 7px 8px; text-align: left; }
.semester-folder-row span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.semester-folder-row small { flex: 0 0 auto; }
.semester-folder-row button:hover { background: #dceee7; }
.semester-folder-row button[aria-pressed="true"] { color: #007857; background: #d3eee4; font-weight: 700; }
.semester-folder-share-tags { margin: -2px 0 5px 9px; color: #08775a; font-size: 10px; line-height: 1.4; }
.semester-folder-row button:focus-visible,.semester-folder-form button:focus-visible { outline: 2px solid #07876b; outline-offset: 1px; }
.semester-template-search { display: grid; gap: 5px; margin-bottom: 12px; font-size: 11px; color: #52716a; }
.semester-template-search input,.semester-folder-form input { width: 100%; min-width: 0; box-sizing: border-box; border: 1px solid #b9d8ce; border-radius: 8px; padding: 9px; background: white; color: #153b3b; }
.semester-template-folder-select { display: flex; align-items: center; gap: 8px; margin: 0 10px 10px; padding-top: 8px; border-top: 1px solid #e4eeeb; font-size: 11px; color: #52716a; }
.semester-template-folder-select select { flex: 1; min-width: 0; max-width: 100%; padding: 5px; border: 1px solid #d0e3de; border-radius: 6px; background: #fff; color: #285c4c; }
.semester-folder-form { flex: 0 0 auto; padding: 10px; margin-bottom: 12px; border: 1px solid #a2d5c4; border-radius: 10px; background: #fff; }
.semester-folder-form[hidden] { display: none; }
.semester-folder-form label { display: grid; gap: 6px; font-size: 12px; }
.semester-folder-form > div { display: flex; gap: 8px; margin-top: 8px; }
.semester-folder-form button { padding: 6px 12px; border: 1px solid #aed9ca; border-radius: 6px; color: #087457; background: #f2faf6; }
.semester-template-library button:disabled { opacity: .5; cursor: wait; }
@media (max-width: 700px) {
  .semester-library-toolbar { flex-wrap: wrap; gap: 0; padding: 8px 12px 0; }
  .semester-library-toolbar .semester-report-steps { flex-basis: 100%; }
  .semester-folder-navigation { max-height: 140px; }
}
.semester-attachment-preview { position: relative; }
.semester-attachment-preview-stage { overflow: hidden; touch-action: none; }
.semester-attachment-crop-surface { transform-origin: center; will-change: transform; }
.semester-attachment-preview-stage.is-panning { cursor: grab; }
.semester-attachment-preview-stage.is-dragging { cursor: grabbing; }
.semester-attachment-viewport-tools { position: absolute; right: 16px; bottom: 56px; z-index: 6; display: flex; align-items: center; gap: 5px; padding: 7px; border: 1px solid #bcdbd3; border-radius: 12px; background: rgba(255,255,255,.97); box-shadow: 0 5px 20px #153b3b20; }
.semester-attachment-viewport-tools button { min-height: 34px; min-width: 34px; border: 0; border-radius: 7px; background: #edf7f3; color: #08775a; padding: 5px 8px; cursor: pointer; }
.semester-attachment-viewport-tools output { min-width: 44px; text-align: center; font-size: 12px; color: #426960; }
.semester-attachment-viewport-tools button:focus-visible { outline: 2px solid #08775a; }
.semester-wrongbook-panel { border-color: #a5d9c8 !important; background: #f5fcf9 !important; }
.semester-wrongbook-panel > label { display: grid; gap: 6px; margin: 12px 0; font-size: 12px; color: #315c50; }
.semester-wrongbook-panel select { min-width: 0; width: 100%; height: auto; min-height: 40px; padding: 8px 9px; line-height: 1.5; border: 1px solid #b8d9cd; border-radius: 8px; background: #fff; color: #174e3e; }
.semester-region-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.semester-region-actions button[aria-pressed="true"] { color: white; background: #079b77; }
.semester-region-instruction { font-size: 11px; line-height: 1.6; color: #54766b; }
.semester-region-list > div { display: flex; align-items: center; gap: 5px; margin-bottom: 6px; }
.semester-region-list > div > button:first-child { flex: 1; min-width: 0; text-align: left; overflow-wrap: anywhere; }
.semester-region-list [data-region-remove] { flex-shrink: 0; color: #b42318; }
.semester-question-region > .semester-region-delete { position: absolute; right: -2px; top: 0; z-index: 2; min-height: 24px; padding: 3px 7px; border: 1px solid #b42318; border-radius: 4px; background: #fff; color: #b42318; font: inherit; font-size: 12px; cursor: pointer; touch-action: manipulation; }
.semester-question-region > .semester-region-delete:focus-visible { outline: 2px solid #b42318; outline-offset: 2px; }
.semester-question-region { position: absolute; border: 2px solid #e88722; background: #e8872214; pointer-events: auto; line-height: 1.2; cursor: move; }
.semester-question-region.is-related { border-color: #267bcd; background: #267bcd12; }
.semester-question-region.is-selected { box-shadow: 0 0 0 1px white; }
.semester-question-region > span { position: absolute; left: -2px; top: -22px; padding: 3px 5px; border-radius: 4px 4px 0 0; color: white; background: #c86a09; font-size: 11px; white-space: nowrap; }
.semester-question-region.is-related > span { background: #267bcd; }
.semester-question-region > i { position: absolute; right: -5px; bottom: -5px; width: 12px; height: 12px; background: white; border: 2px solid currentColor; cursor: nwse-resize; }
.semester-question-region.is-drawing { pointer-events: none; border-style: dashed; background: #0aa17a20; }
.semester-question-region[hidden] { display: none; }
.semester-attachment-studio.is-regions-only .semester-attachment-controls > :not(.semester-wrongbook-panel),
.semester-attachment-studio.is-regions-only [data-attachment-append-images],
.semester-attachment-studio.is-regions-only .semester-attachment-preview-toolbar > div { display: none; }
.semester-wrongbook-panel button { min-height: 36px; padding: 7px 9px; border: 1px solid #b7d9cc; border-radius: 8px; color: #087659; background: #fff; font: inherit; font-size: 11px; cursor: pointer; }
.semester-wrongbook-panel button:hover:not(:disabled) { border-color: #0b9e76; background: #e7f6ef; }
.semester-wrongbook-panel button:disabled { opacity: .45; cursor: default; }
.semester-wrongbook-panel button:focus-visible { outline: 2px solid #0b9e76; outline-offset: 2px; }
.semester-region-actions button[aria-pressed="true"] { color: white; background: #079b77; }
.semester-attachment-studio.is-regions-only [data-attachment-page-edit],.semester-attachment-studio.is-regions-only [data-page-drag] > span { display: none; }
.semester-attachment-studio.is-regions-only [data-page-drag] { cursor: pointer; }
/* Direct dragging keeps template editing independent from library organization. */
.semester-template-card[draggable="true"],.semester-folder-row[draggable="true"] { cursor: grab; }
.semester-template-card[draggable="true"] .semester-template-select { cursor: grab; }
.semester-folder-row { position: relative; }
.semester-folder-row [data-folder-rename] { width: 30px; display: grid; place-items: center; flex: 0 0 30px; }
.semester-drop-folder { background: #c8f2e3; outline: 2px solid #009e78; border-radius: 9px; }
.semester-drop-before { box-shadow: 0 -3px 0 #009e78; }
.semester-drop-after { box-shadow: 0 3px 0 #009e78; }
#semester-report-modal .semester-template-folder-select { display: flex; visibility: visible; height: auto; min-height: 32px; }
#semester-report-modal .semester-template-folder-select select { display: block; visibility: visible; height: 30px; }
/* Keep template cards readable; scroll only the saved-template list. */
.semester-template-library { overflow: hidden; }
.semester-template-library > :not(.semester-template-list) { flex-shrink: 0; }
.semester-template-library .semester-template-list { flex: 1 1 0; min-height: 80px; overflow-y: scroll; overflow-x: hidden; grid-auto-rows: max-content; scrollbar-gutter: stable; overscroll-behavior: contain; padding: 3px 7px 3px 3px; scrollbar-width: auto; scrollbar-color: #77a89b #e5f0ed; }
.semester-template-list::-webkit-scrollbar { width: 11px; }
.semester-template-list::-webkit-scrollbar-track { background: #e5f0ed; border-radius: 8px; }
.semester-template-list::-webkit-scrollbar-thumb { background: #77a89b; border: 2px solid #e5f0ed; border-radius: 8px; min-height: 32px; }
.semester-template-list::-webkit-scrollbar-thumb:hover { background: #348e76; }
@media (max-width: 720px) { .semester-template-library .semester-template-list { flex-basis: 240px; max-height: 320px; } }
/* Keep report errors visible beside the action that can retry them. */
#semester-report-footer-note.is-error { color: #b42318; font-weight: 600; }
.semester-grading-feedback { display: flex; flex-wrap: wrap; gap: 8px 16px; flex: 0 0 auto; padding: 10px 14px; border-top: 1px solid #f5c9a8; background: #fff8ed; color: #9a4510; }
.semester-grading-feedback[hidden] { display: none; }
.semester-grading-feedback button { padding: 4px 0; border: 0; background: transparent; color: inherit; font: inherit; font-weight: 700; text-align: left; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.semester-grading-feedback button:focus-visible { outline: 2px solid #a95412; outline-offset: 3px; }
.semester-grading-row.is-pending-target { outline: 3px solid #e7a337; outline-offset: -3px; background: #fff6df; scroll-margin-block: 16px; }

.semester-import-entry { padding: 14px; }
.semester-import-entry > button { width: 100%; display: flex; align-items: center; gap: 12px; padding: 13px 16px; border: 1px solid #b8dfd2; border-radius: 12px; color: #145849; background: linear-gradient(115deg,#e6f6ef,#f6fcf9); text-align: left; font: inherit; cursor: pointer; transition: background .15s,border-color .15s,box-shadow .15s; }
.semester-import-entry > button:hover { border-color: #45b797; background: #e5f6ef; box-shadow: 0 4px 14px rgba(18,129,96,.08); }
.semester-import-entry-icon { width: 36px; height: 36px; display: grid; flex: none; place-items: center; border: 1px solid #b4dfd0; border-radius: 11px; color: #078160; background: #d5f0e5; font-size: 22px; }
.semester-import-entry-copy { display: grid; gap: 4px; min-width: 0; }
.semester-import-entry-copy strong { font-size: 12px; }
.semester-import-entry-copy small { color: #638278; font-size: 10px; line-height: 1.5; }
.semester-import-entry-arrow { margin-left: auto; color: #408e77; font-size: 24px; }
.semester-import-entry > button[aria-expanded="true"] .semester-import-entry-arrow { transform: rotate(90deg); }
.semester-import-panel { margin: 0 14px 14px; padding: 16px; border: 1px solid #c8e2d8; border-radius: 12px; color: #28574a; background: #fff; box-shadow: 0 5px 16px rgba(28,76,66,.035); font-size: 11px; }
.semester-import-text-label { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px; margin-bottom: 9px; font-weight: 750; }
.semester-import-text-label span { color: #789088; font-size: 10px; font-weight: 400; }
.semester-import-panel textarea { width: 100%; box-sizing: border-box; min-height: 120px; padding: 12px 14px; border: 1px solid #cedfd8; border-radius: 9px; color: #234e42; background: #f9fcfb; font: inherit; font-size: 12px; line-height: 1.8; resize: vertical; }
.semester-import-panel textarea::placeholder { color: #82968e; }
.semester-import-panel .semester-import-replace { display: flex; align-items: flex-start; gap: 8px; margin: 12px 0; cursor: pointer; }
.semester-import-replace input { width: 16px; height: 16px; margin: 1px 0 0; accent-color: #079b77; flex: none; }
.semester-import-replace > span { display: flex; flex-wrap: wrap; gap: 4px 10px; line-height: 1.6; }
.semester-import-replace small { color: #7b8f86; font-size: 10px; }
.semester-import-error { padding: 9px 12px; border-radius: 8px; color: #a64732; background: #fff4ee; line-height: 1.6; overflow-wrap: anywhere; }
.semester-import-summary { padding: 10px 12px; border-radius: 8px; color: #16745b; background: #edf8f3; }
.semester-import-gate { margin: 12px 0 0; color: #59736f; font-size: 12px; line-height: 1.5; }
.semester-import-navigation { margin-top: 14px; padding: 11px 12px; border: 1px solid #f0cf91; border-radius: 9px; background: #fff9eb; }
.semester-import-navigation > strong { display: block; margin-bottom: 8px; color: #915900; font-size: 11px; }
.semester-import-navigation > div { display: flex; flex-wrap: wrap; gap: 6px; max-height: 105px; overflow: auto; }
.semester-import-navigation button { padding: 5px 9px; border: 1px solid #e9bc68; border-radius: 7px; background: #fff; color: #8d5600; font: inherit; font-size: 11px; font-weight: 700; cursor: pointer; }
.semester-import-navigation button:hover { border-color: #c88317; background: #fff0cd; }
.semester-import-row { padding: 12px; border-bottom: 1px solid #e0ede7; border-left: 3px solid transparent; border-radius: 7px; scroll-margin-block: 100px; }
.semester-import-row.is-pending { border-left-color: #dc9824; background: #fffaf0; }
.semester-import-row.is-pending > b { color: #986000; }
.semester-import-row.is-jump-target { outline: 2px solid #e3a83f; outline-offset: -2px; box-shadow: 0 0 0 4px rgba(227,168,63,.15); }
.semester-import-row > label { display: grid; gap: 6px; margin: 9px 0; overflow-wrap: anywhere; }
.semester-import-row > label small { color: #6a8579; font-size: 10px; }
.semester-import-row > label.is-pending small { color: #a56800; font-weight: 700; }
.semester-import-row select { width: 100%; max-width: 100%; min-height: 36px; padding: 7px 10px; border: 1px solid #c8ddd5; border-radius: 8px; color: #28574a; background: #f9fcfb; font: inherit; }
.semester-import-row > label.is-pending select { border-color: #e4bb76; background: #fffefa; }
.semester-import-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 15px; padding-top: 14px; border-top: 1px solid #e3eee9; }
.semester-import-button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 36px; padding: 8px 16px; border: 1px solid #b6d9cc; border-radius: 9px; color: #087458; background: #f6fbf9; font: inherit; font-size: 11px; font-weight: 750; cursor: pointer; transition: background .15s,border-color .15s,box-shadow .15s; }
.semester-import-button:hover:not(:disabled) { border-color: #2fa681; background: #e8f6ef; }
.semester-import-button.is-primary { border-color: #0b9a74; color: #fff; background: linear-gradient(120deg,#0aa47e,#078968); box-shadow: 0 4px 10px rgba(9,151,110,.15); }
.semester-import-button.is-primary:hover:not(:disabled) { border-color: #087658; background: #078568; }
.semester-import-button.is-quiet { margin-left: auto; border-color: transparent; color: #688279; background: transparent; box-shadow: none; }
.semester-import-button:disabled { border-color: #dbe6e1; color: #92a59c; background: #f0f5f2; box-shadow: none; cursor: not-allowed; }
.semester-import-entry > button:focus-visible,.semester-import-panel :is(button,textarea,select,input):focus-visible { outline: 3px solid rgba(12,167,121,.3); outline-offset: 2px; }
.semester-knowledge-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.semester-knowledge-tags button { font-size: 12px; padding: 3px 7px; background: #e7f7f1; border: 0; border-radius: 5px; color: #116650; }
@media (max-width: 720px) {
  .semester-import-entry { padding: 10px; }
  .semester-import-entry > button { padding: 12px; }
  .semester-import-panel { margin: 0 10px 10px; padding: 12px; }
  .semester-import-button { min-height: 44px; padding-inline: 13px; }
  .semester-import-panel textarea,.semester-import-row select { font-size: 16px; }
}
