.stu-co label,.stu-co-front label{display:block;font-weight:600;margin-bottom:6px}.stu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.stu-grid input,.stu-grid select,.stu-grid textarea,.stu-grid-form input,.stu-grid-form select,.stu-co-front input,.stu-co-front select{width:100%;box-sizing:border-box}.stu-grid-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;align-items:end}.stu-card,.stu-question-card,.stu-assessment-box,.stu-login-card{background:#fff;border:1px solid #ddd;border-radius:14px;padding:20px;margin:16px 0;box-shadow:0 4px 18px rgba(0,0,0,.05)}.stu-question-card{position:relative}.stu-drag{cursor:move;font-size:13px;color:#666;margin-bottom:10px}.stu-inline{display:flex!important;gap:8px;align-items:center;font-weight:400!important}.stu-inline input{width:auto!important}.stu-co-front{max-width:980px;margin:24px auto;padding:0 16px}.stu-login-card{max-width:460px;margin:40px auto}.stu-login-card input{padding:12px;margin:6px 0 16px}.stu-btn{display:inline-block;background:#1d4f73;color:#fff!important;text-decoration:none;border:0;border-radius:10px;padding:11px 18px;cursor:pointer;font-weight:700}.stu-btn:hover{opacity:.9}.stu-header,.stu-course-card{display:flex;justify-content:space-between;align-items:center;gap:16px}.stu-course-card{border:1px solid #ddd;border-radius:14px;padding:18px;margin:12px 0;background:#fff}.stu-course-card h3{margin:0 0 6px}.stu-course-card p{margin:0;color:#666}.stu-subtitle{color:#666}.stu-table{width:100%;border-collapse:collapse}.stu-table th,.stu-table td{padding:10px;border-bottom:1px solid #ddd;text-align:left}.stu-question{border:0;border-top:1px solid #e5e5e5;padding:22px 0;margin:0}.stu-question legend{font-weight:700;font-size:17px}.stu-question legend span{color:#c00}.stu-option{font-weight:400!important;margin:10px 0!important}.stu-likert{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.stu-likert label{text-align:center;font-weight:400!important;border:1px solid #ddd;border-radius:10px;padding:10px}.stu-likert input{width:auto!important}.stu-likert strong,.stu-likert small{display:block}.stu-likert small{font-size:12px;color:#666;margin-top:4px}.stu-alert,.stu-success,.stu-empty{padding:14px 16px;border-radius:10px;margin:14px 0}.stu-alert{background:#fff3f3;color:#9b1c1c}.stu-success{background:#eefaf2;color:#176b37}.stu-empty{background:#f6f7f7}.stu-intro{background:#f7f9fb;border-radius:10px;padding:12px 16px;margin:14px 0}.stu-single-options{margin-top:10px}@media(max-width:720px){.stu-likert{grid-template-columns:1fr}.stu-course-card,.stu-header{align-items:flex-start;flex-direction:column}.stu-btn{width:100%;text-align:center;box-sizing:border-box}}

/* v1.1.0 前台教師管理中心 */
.stu-dashboard{max-width:1180px}.stu-dashboard h2,.stu-dashboard h3{margin-top:0}.stu-actions,.stu-save-bar,.stu-row-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.stu-btn-light{background:#eef2f5!important;color:#24445b!important}.stu-btn-secondary{background:#3d6c82!important}.stu-front-editor-form input[type="text"],.stu-front-editor-form input[type="password"],.stu-front-editor-form input[type="datetime-local"],.stu-front-editor-form select,.stu-front-editor-form textarea{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #cfd8df;border-radius:8px;background:#fff}.stu-front-editor-form input[type="checkbox"]{width:auto}.stu-question-card textarea,.stu-question-card input[type="text"]{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #cfd8df;border-radius:8px}.stu-question-card .button-link-delete{border:0;background:transparent;color:#b42318;cursor:pointer;padding:0;font-weight:600}.stu-save-bar{position:sticky;bottom:0;z-index:20;background:rgba(255,255,255,.96);padding:14px 0;border-top:1px solid #e6eaed;margin-top:18px}.stu-danger-zone{border:1px solid #f1b8b3;background:#fff7f6;border-radius:14px;padding:18px;margin:20px 0}.stu-danger-button{border:1px solid #b42318;background:#fff;color:#b42318;border-radius:8px;padding:10px 14px;font-weight:700;cursor:pointer}.stu-metric-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.stu-metric{background:#fff;border:1px solid #dde4e9;border-radius:14px;padding:18px;text-align:center}.stu-metric strong{display:block;font-size:28px}.stu-metric span{display:block;color:#667784;margin-top:4px}.stu-status{display:inline-block;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:700}.stu-status-open{background:#eaf7ef;color:#18703b}.stu-status-closed{background:#f3f4f6;color:#535b65}.stu-status-draft{background:#fff7e6;color:#8a5a00}.stu-row-actions a{white-space:nowrap}.stu-editor .stu-card{margin-top:18px}
@media(max-width:720px){.stu-metric-row{grid-template-columns:1fr}.stu-responsive-table thead{display:none}.stu-responsive-table,.stu-responsive-table tbody,.stu-responsive-table tr,.stu-responsive-table td{display:block;width:100%}.stu-responsive-table tr{border-bottom:1px solid #ddd;padding:10px 0}.stu-responsive-table td{border:0;padding:6px 0}.stu-responsive-table td:before{content:attr(data-label);display:block;font-size:12px;font-weight:700;color:#687884;margin-bottom:2px}.stu-actions,.stu-save-bar{width:100%}.stu-actions .stu-btn,.stu-save-bar .stu-btn{width:100%;text-align:center}}

/* v1.2.0 單頁教師入口 */
.stu-portal-shell{max-width:980px;margin:32px auto}.stu-portal-brand,.stu-portal-topbar{background:linear-gradient(120deg,#173e4c,#2a606a 65%,#688c85);color:#fff;border-radius:16px;padding:28px 32px}.stu-portal-brand h2,.stu-portal-topbar h2{margin:6px 0 0;color:#fff}.stu-portal-brand p{margin:10px 0 0;color:#dce8e6}.stu-portal-school{font-size:13px;letter-spacing:.06em;color:#dce8e6}.stu-portal-login-form{max-width:520px;margin:18px auto 0;background:#fff;border:1px solid #d8e4e2;border-radius:14px;padding:24px;box-shadow:0 6px 20px rgba(24,58,69,.06)}.stu-portal-login-form input{padding:12px 14px;margin:6px 0 14px;border:1px solid #cfdad8;border-radius:9px}.stu-portal-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.stu-portal-logout{color:#fff!important;text-decoration:none;border:1px solid rgba(255,255,255,.45);border-radius:8px;padding:8px 12px}.stu-portal-nav{display:grid;grid-template-columns:repeat(3,1fr);margin:14px 0 18px;border:1px solid #d8e4e2;border-radius:12px;overflow:hidden;background:#fff}.stu-portal-nav a{padding:16px 18px;text-align:center;text-decoration:none!important;color:#234b56!important;font-weight:700;border-right:1px solid #d8e4e2}.stu-portal-nav a:last-child{border-right:0}.stu-portal-nav a:hover,.stu-portal-nav a.is-active{background:#eaf3f1}.stu-portal-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:18px 0 10px}.stu-portal-section-head h3{margin:0;color:#173e4c}.stu-portal-section-head p{margin:4px 0 0;color:#6f8084}.stu-portal-table-card{margin-top:10px!important}.stu-portal-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.stu-portal-stat-item{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:2px 12px;padding:18px;border:1px solid #d8e4e2;border-radius:12px;background:#fff;text-decoration:none!important;color:#173e4c!important}.stu-portal-stat-item span{font-weight:700}.stu-portal-stat-item strong{font-size:26px;grid-row:1 / span 2;grid-column:2;align-self:center}.stu-portal-stat-item small{color:#7b8d91}
@media(max-width:720px){.stu-portal-topbar{align-items:flex-start;flex-direction:column}.stu-portal-nav{grid-template-columns:1fr}.stu-portal-nav a{border-right:0;border-bottom:1px solid #d8e4e2}.stu-portal-nav a:last-child{border-bottom:0}.stu-portal-section-head{align-items:flex-start;flex-direction:column}.stu-portal-section-head .stu-btn{width:100%;text-align:center}}

/* v1.3.0 課程前後測、基本資料與統計分析 */
.stu-portal-login .stu-portal-brand{text-align:center;padding:34px 32px}
.stu-portal-login .stu-portal-school{font-size:18px;font-weight:600;letter-spacing:.08em}
.stu-portal-login .stu-portal-brand h2{font-size:34px;line-height:1.35;margin-top:14px}
.stu-portal-login .stu-portal-brand p{display:none!important}
.stu-portal-nav{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.stu-portal-nav a{min-width:0;white-space:nowrap;box-sizing:border-box}
.stu-basic-card{position:relative;background:#fbfdfd;border:1px solid #d9e5e2;border-radius:14px;padding:18px;margin:14px 0}
.stu-basic-card textarea,.stu-basic-card input[type="text"],.stu-basic-card input[type="number"],.stu-basic-card select{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #cfd8df;border-radius:8px;background:#fff}
.stu-form-section{margin:22px 0;padding-top:6px}
.stu-form-section>h3{font-size:22px;color:#173e4c;margin-bottom:4px}
.stu-basic-input{padding:15px 0;border-bottom:1px solid #edf1f0}
.stu-basic-input>label{font-size:16px;margin-bottom:9px}
.stu-basic-input input[type="text"],.stu-basic-input input[type="number"],.stu-basic-input select{width:100%;max-width:520px;padding:11px 12px;border:1px solid #ccd8d5;border-radius:8px}
.stu-basic-options-view{display:flex;gap:16px;flex-wrap:wrap}
.stu-basic-options-view .stu-option{display:flex!important;align-items:center;gap:6px;margin:6px 0!important}
.stu-required{color:#b42318}
.stu-thankyou{max-width:620px;margin:60px auto;padding:48px 30px;text-align:center;background:#fff;border:1px solid #d7e4e1;border-radius:18px;box-shadow:0 8px 28px rgba(24,58,69,.08)}
.stu-thankyou-mark{width:64px;height:64px;margin:0 auto 16px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#eaf6f2;color:#1b7056;font-size:32px;font-weight:700}
.stu-thankyou h2{margin:0 0 10px;color:#173e4c}
.stu-table-scroll{overflow-x:auto}
.stu-analysis-table{min-width:980px}
.stu-analysis-table th{white-space:nowrap;background:#f3f7f6}
.stu-analysis-table td:not(:first-child){text-align:center}
.stu-progress-up{color:#1565c0!important;font-weight:800}
.stu-progress-down{color:#c62828!important;font-weight:800}
.stu-progress-same{color:#59666b!important;font-weight:700}
.stu-analysis-note{font-size:13px;color:#6e7e82;margin-top:12px}
.stu-metric-row-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.stu-submit-assessment{margin-top:14px}
@media(max-width:720px){
  .stu-portal-login .stu-portal-school{font-size:16px}
  .stu-portal-login .stu-portal-brand h2{font-size:27px}
  .stu-portal-nav{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .stu-portal-nav a{font-size:13px;padding:13px 6px;border-right:1px solid #d8e4e2!important;border-bottom:0!important;white-space:normal}
  .stu-portal-nav a:last-child{border-right:0!important}
  .stu-metric-row-4{grid-template-columns:1fr 1fr}
}

/* v1.3.1：基本資料選項維持水平排列 */
.stu-basic-options-view{display:flex!important;align-items:center;gap:22px;flex-wrap:wrap}
.stu-basic-options-view .stu-option{display:inline-flex!important;align-items:center;gap:6px;margin:6px 0!important;width:auto!important;white-space:nowrap;line-height:1.4}
.stu-basic-options-view .stu-option input[type="radio"],
.stu-basic-options-view .stu-option input[type="checkbox"]{width:auto!important;min-width:0!important;margin:0!important;flex:0 0 auto}

/* v1.3.2：量表編輯、統計表與導覽修正 */
.stu-portal-nav{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  width:100%!important;
  box-sizing:border-box!important;
}
.stu-portal-nav>a{
  display:block!important;
  float:none!important;
  width:auto!important;
  min-width:0!important;
  margin:0!important;
  box-sizing:border-box!important;
}
.stu-likert-editor{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:14px}
.stu-likert-editor label{display:flex;align-items:center;gap:8px;margin:0!important;font-weight:600}
.stu-likert-editor label span{display:flex;align-items:center;justify-content:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:#eef4f3;color:#174754;font-weight:800}
.stu-likert-editor input[type="text"]{width:100%!important;min-width:0!important;box-sizing:border-box;padding:10px 11px;border:1px solid #cfd8df;border-radius:8px}
.stu-basic-stat-block{margin-top:20px;padding-top:4px}
.stu-basic-stat-block h4{margin:0 0 8px;color:#173e4c;font-size:17px}
.stu-basic-stat-table{min-width:700px}
.stu-basic-stat-table th{white-space:nowrap;background:#f3f7f6}
.stu-basic-stat-table td:not(:first-child){text-align:center}
.stu-raw-table{min-width:1000px}
.stu-raw-table th{white-space:nowrap;background:#f3f7f6}
.stu-success{border:1px solid #b9dfc6;font-weight:700}
@media(max-width:720px){
  .stu-likert-editor{grid-template-columns:1fr}
  .stu-portal-nav{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .stu-portal-nav>a{font-size:13px!important;padding:13px 5px!important;white-space:normal!important}
}

/* v1.3.3：頁籤固定、版本標示、學制連動年級 */
.stu-portal-nav{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)!important;
  grid-auto-flow:column!important;
  grid-auto-columns:minmax(0,1fr)!important;
  width:100%!important;
  max-width:100%!important;
  overflow:hidden!important;
}
.stu-portal-nav>a{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  float:none!important;
  clear:none!important;
  white-space:nowrap!important;
  margin:0!important;
  box-sizing:border-box!important;
}
.stu-version-badge{margin-top:18px;text-align:right;font-size:12px;color:#7a898d;letter-spacing:.03em}
.stu-portal-login .stu-version-badge{text-align:center;margin-top:14px}
@media(max-width:720px){
  .stu-portal-nav{grid-template-columns:repeat(3,minmax(0,1fr))!important;grid-auto-flow:column!important}
  .stu-portal-nav>a{white-space:normal!important;line-height:1.35!important}
}

/* v1.3.5：基本資料清理、學生學制年級連動、量表版面與儲存提示 */
.stu-system-fields-note{
  margin:14px 0 18px;
  padding:13px 15px;
  border:1px solid #d7e5e2;
  border-radius:10px;
  background:#f5f9f8;
  color:#38565e;
  line-height:1.65;
}
.stu-grade-linked-wrap{transition:none!important}
.stu-grade-options[style*="display:none"]{display:none!important}
.stu-likert-editor{
  display:flex!important;
  flex-wrap:nowrap!important;
  gap:12px!important;
  width:100%!important;
  align-items:stretch!important;
}
.stu-likert-editor>label{
  flex:1 1 0!important;
  min-width:0!important;
  width:0!important;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  padding:10px!important;
  margin:0!important;
  border:1px solid #d8e3e1;
  border-radius:10px;
  background:#fbfdfd;
  box-sizing:border-box!important;
}
.stu-likert-editor>label>span{
  flex:0 0 32px!important;
  width:32px!important;
  height:32px!important;
}
.stu-likert-editor>label>input[type="text"]{
  flex:1 1 auto!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
}
.stu-success{
  position:relative;
  background:#eefaf2!important;
  color:#176b37!important;
  border:1px solid #b9dfc6!important;
  font-weight:800!important;
  box-shadow:0 3px 12px rgba(23,107,55,.08);
}
@media(max-width:900px){
  .stu-likert-editor{flex-wrap:wrap!important}
  .stu-likert-editor>label{flex:1 1 calc(50% - 12px)!important;width:auto!important}
}
@media(max-width:560px){
  .stu-likert-editor{display:grid!important;grid-template-columns:1fr!important}
  .stu-likert-editor>label{width:100%!important}
}

/* v1.3.5：強制隱藏非目前學制的年級群組，避免佈景主題覆蓋 */
.stu-grade-linked-wrap[hidden], .stu-grade-options[hidden]{display:none!important;}
.stu-degree-options{gap:18px!important;}

/* v1.3.8 統計下載、雙色長條圖、單筆刪除 */
.stu-analysis-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.stu-analysis-head h3{margin:0 0 6px}
.stu-inline-export-form{margin:0}
.stu-question-chart-list{display:grid;gap:14px;margin-top:18px}
.stu-question-chart{border:1px solid #d9e3e1;border-radius:10px;padding:15px 16px;background:#fff}
.stu-question-chart-title{font-weight:700;color:#173f4c;margin-bottom:12px;line-height:1.6}
.stu-chart-row{display:grid;grid-template-columns:46px minmax(120px,1fr) 48px;gap:10px;align-items:center;margin:8px 0}
.stu-chart-label{font-weight:700;color:#425b63}
.stu-chart-track{height:18px;background:#eef2f2;border-radius:999px;overflow:hidden;position:relative}
.stu-chart-bar{height:100%;border-radius:999px;min-width:0;transition:width .25s ease}
.stu-chart-bar-pre{background:#6f97a3}
.stu-chart-bar-post{background:#285f8f}
.stu-chart-legend{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:18px;font-size:14px;color:#586c72}
.stu-chart-legend span{display:inline-flex;align-items:center;gap:7px}
.stu-chart-legend i{width:18px;height:10px;border-radius:999px;display:inline-block}
.stu-legend-pre{background:#6f97a3}
.stu-legend-post{background:#285f8f}
.stu-link-danger{border:0;background:transparent;color:#b42318;font-weight:700;cursor:pointer;padding:4px 0;text-decoration:underline;text-underline-offset:2px}
.stu-link-danger:hover{color:#7a1711}
@media(max-width:640px){.stu-chart-row{grid-template-columns:40px minmax(90px,1fr) 42px}.stu-analysis-head .stu-btn{width:100%}}


/* v1.3.9 內建感謝頁 */
.stu-thankyou-page{max-width:900px;margin:38px auto;font-family:'Microsoft JhengHei','Noto Sans TC',Arial,sans-serif}
.stu-thankyou-head{background:linear-gradient(135deg,#173f4c,#668f89);border-radius:18px 18px 0 0;padding:40px 30px;text-align:center;color:#fff}
.stu-thankyou-school{font-size:18px;letter-spacing:2px;margin-bottom:8px;opacity:.95}
.stu-thankyou-dept{font-size:16px;margin-bottom:12px;opacity:.9}
.stu-thankyou-head h2{margin:0;font-size:32px;line-height:1.35;letter-spacing:2px;color:#fff}
.stu-thankyou-body{background:#fff;border:1px solid #d8e4e1;border-top:0;border-radius:0 0 18px 18px;padding:42px 38px;box-sizing:border-box;text-align:center;box-shadow:0 10px 28px rgba(30,70,75,.08)}
.stu-thankyou-body .stu-thankyou-mark{width:64px;height:64px;margin:0 auto 22px;border-radius:50%;background:#e8f3f0;display:flex;align-items:center;justify-content:center;font-size:30px;color:#2f756d;font-weight:700}
.stu-thankyou-body h3{font-size:24px;color:#173f4c;margin:0 0 18px;font-weight:700}
.stu-thankyou-body p{max-width:800px;margin:5px auto;font-size:18px;line-height:1.9;color:#596b70}
.stu-thankyou-return{display:inline-block!important;margin-top:28px!important;padding:14px 30px!important;font-size:17px!important;letter-spacing:1px}
.stu-thankyou-note{margin-top:18px;font-size:13px;color:#8a999d}
.stu-thankyou-page .stu-version-badge{text-align:right;margin-top:10px;color:#8a999d;font-size:12px}
@media (max-width:640px){.stu-thankyou-page{margin:20px 10px}.stu-thankyou-head{padding:30px 18px}.stu-thankyou-head h2{font-size:26px}.stu-thankyou-body{padding:32px 20px}.stu-thankyou-body p{font-size:16px}.stu-thankyou-school{font-size:15px}}

/* v1.3.10：選課人數、完成率、期初期末高對比色、首頁版本標示 */
.stu-stage-badge{display:inline-flex;align-items:center;justify-content:center;min-width:48px;padding:5px 10px;border-radius:999px;font-weight:800;font-size:13px;line-height:1.2}
.stu-stage-pre{background:#e7f0ff;color:#0b57d0;border:1px solid #9fc0ff}
.stu-stage-post{background:#fdeaea;color:#c62828;border:1px solid #f0a8a8}
.stu-chart-bar-pre{background:#1565c0!important}
.stu-chart-bar-post{background:#d32f2f!important}
.stu-legend-pre{background:#1565c0!important}
.stu-legend-post{background:#d32f2f!important}
.stu-metric-pre{border-top:4px solid #1565c0!important}
.stu-metric-post{border-top:4px solid #d32f2f!important}
.stu-completion-summary{margin-bottom:18px}
.stu-completion-summary h3{margin-top:0}
.stu-completion-table{min-width:620px}
.stu-completion-table th,.stu-completion-table td{text-align:center}
.stu-completion-table th:first-child,.stu-completion-table td:first-child{text-align:left}
.stu-version-home{margin-top:20px!important;padding-top:10px;border-top:1px solid #e2e9e7;text-align:right!important;font-size:13px!important;font-weight:700;color:#6d7f84}
@media(max-width:720px){.stu-version-home{text-align:center!important}.stu-completion-table{min-width:560px}}

/* v1.3.11：日期欄位與學生填寫期間 */
.stu-front-editor-form input[type="date"]{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #cfd8df;border-radius:8px;background:#fff}
.stu-fill-period{margin-top:8px;color:#315f66;font-size:14px}
.stu-fill-period-detail{display:inline-block;margin:4px 0 16px;padding:8px 12px;border-radius:8px;background:#eef6f5;border:1px solid #d6e6e3;color:#244f58}

/* v1.3.15 登入錯誤提示與登入卡片美編 */
.stu-portal-login-panel{
  max-width:570px;
  margin:18px auto 0;
}
.stu-portal-login-panel .stu-portal-login-form{
  max-width:none;
  margin:0;
}
.stu-login-error{
  display:flex;
  align-items:flex-start;
  gap:14px;
  margin:0 0 14px;
  padding:16px 18px;
  border:1px solid #efc7c7;
  border-left:5px solid #c93f3f;
  border-radius:12px;
  background:#fff7f7;
  box-shadow:0 4px 14px rgba(130,35,35,.06);
  color:#6f2626;
  box-sizing:border-box;
}
.stu-login-error-mark{
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 32px;
  width:32px;
  height:32px;
  border-radius:50%;
  background:#c93f3f;
  color:#fff;
  font-size:20px;
  line-height:1;
  font-weight:800;
}
.stu-login-error-copy{min-width:0}
.stu-login-error-title{
  margin:0 0 4px;
  color:#9f2727;
  font-size:17px;
  line-height:1.45;
  font-weight:800;
}
.stu-login-error-text{
  color:#654242;
  font-size:15px;
  line-height:1.7;
}
.stu-login-error-help{
  margin-top:6px;
  padding-top:7px;
  border-top:1px solid #f0d7d7;
  color:#7d4a4a;
  font-size:14px;
  line-height:1.65;
}
.stu-portal-login-form label{
  color:#183f4c;
  font-size:16px;
  font-weight:700;
}
.stu-portal-login-form input[type="text"],
.stu-portal-login-form input[type="password"]{
  min-height:46px;
  background:#fff;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.stu-portal-login-form input[type="text"]:focus,
.stu-portal-login-form input[type="password"]:focus{
  outline:none;
  border-color:#2c7180;
  box-shadow:0 0 0 3px rgba(44,113,128,.12);
}
.stu-portal-login-form input[aria-invalid="true"]{
  border-color:#d79393;
}
.stu-login-submit{
  min-width:82px;
  margin-top:2px;
}
@media(max-width:720px){
  .stu-login-error{padding:14px;gap:11px}
  .stu-login-error-mark{width:28px;height:28px;flex-basis:28px;font-size:18px}
  .stu-login-error-title{font-size:16px}
  .stu-login-error-text,.stu-login-error-help{font-size:14px}
}

/* v1.3.20 統計分析首頁：統一卡片版面，避免空白卡片並強化資訊層級 */
.stu-course-stat-grid{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:16px!important;
  margin-top:12px;
}
.stu-course-stat-card{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:28px!important;
  width:100%!important;
  min-height:138px;
  padding:24px 26px!important;
  margin:0!important;
  box-sizing:border-box!important;
  border:1px solid #d6e2df!important;
  border-radius:14px!important;
  background:#fff!important;
  box-shadow:0 4px 14px rgba(23,62,76,.035);
  text-align:left!important;
}
.stu-course-stat-main{min-width:0!important;text-align:left!important}
.stu-course-stat-main h4{
  margin:0 0 10px!important;
  font-size:20px!important;
  font-weight:800!important;
  line-height:1.4!important;
  color:#173e4c!important;
}
.stu-course-stat-meta{
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:6px 10px!important;
  font-size:14px!important;
  line-height:1.6!important;
  color:#6e8085!important;
}
.stu-course-stat-meta span{font-weight:600!important}
.stu-course-stat-meta i{font-style:normal!important;color:#b4c1c3!important}
.stu-course-stat-summary{
  display:grid!important;
  grid-template-columns:92px 132px 132px!important;
  grid-template-areas:
    "total pre post"
    "action action action";
  align-items:stretch!important;
  gap:10px!important;
  min-width:376px!important;
}
.stu-course-stat-total{
  grid-area:total;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:64px;
  padding:9px 8px!important;
  box-sizing:border-box!important;
  border-radius:10px!important;
  background:#f4f8f7!important;
  border:1px solid #e1e9e7!important;
}
.stu-course-stat-total span{font-size:12px!important;font-weight:700!important;color:#667a80!important}
.stu-course-stat-total strong{
  position:static!important;
  grid-row:auto!important;
  grid-column:auto!important;
  align-self:auto!important;
  margin:3px 0 0!important;
  font-size:30px!important;
  line-height:1!important;
  color:#173e4c!important;
}
.stu-course-stat-stage{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  min-height:64px;
  padding:10px 11px!important;
  box-sizing:border-box!important;
  border-radius:10px!important;
  font-size:14px!important;
  font-weight:700!important;
  white-space:nowrap!important;
}
.stu-course-stat-stage svg{width:20px!important;height:20px!important;flex:0 0 20px!important;fill:currentColor!important}
.stu-course-stat-stage strong{
  position:static!important;
  grid-row:auto!important;
  grid-column:auto!important;
  align-self:auto!important;
  font-size:19px!important;
  line-height:1!important;
  color:inherit!important;
}
.stu-course-stat-pre{grid-area:pre;color:#0b63ce!important;background:#edf5ff!important;border:1px solid #bfd8fb!important}
.stu-course-stat-post{grid-area:post;color:#d52222!important;background:#fff0f0!important;border:1px solid #f4bebe!important}
.stu-course-stat-action{
  grid-area:action;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  min-height:38px;
  padding:8px 14px!important;
  border-radius:9px!important;
  background:#1f5d82!important;
  color:#fff!important;
  text-decoration:none!important;
  font-size:14px!important;
  font-weight:800!important;
  line-height:1.35!important;
  transition:filter .15s ease,transform .15s ease;
}
.stu-course-stat-action:hover{color:#fff!important;filter:brightness(.94);transform:translateY(-1px)}
.stu-course-stat-action span{font-weight:800!important;color:inherit!important}
@media(max-width:820px){
  .stu-course-stat-card{grid-template-columns:1fr!important;gap:18px!important;padding:20px!important}
  .stu-course-stat-summary{min-width:0!important;width:100%!important;grid-template-columns:90px minmax(0,1fr) minmax(0,1fr)!important}
}
@media(max-width:560px){
  .stu-course-stat-card{padding:18px 16px!important}
  .stu-course-stat-main h4{font-size:18px!important}
  .stu-course-stat-meta{display:grid!important;grid-template-columns:1fr!important;gap:2px!important}
  .stu-course-stat-meta i{display:none!important}
  .stu-course-stat-summary{
    grid-template-columns:1fr 1fr!important;
    grid-template-areas:
      "total total"
      "pre post"
      "action action";
  }
  .stu-course-stat-total{align-items:flex-start!important;padding-left:14px!important}
  .stu-course-stat-stage{padding:9px 6px!important;font-size:13px!important}
}

/* v1.3.20 統計分析首頁：緊湊雙層卡片版型 */
.stu-course-stat-grid{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:14px!important;
}
.stu-course-stat-card{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:16px!important;
  padding:22px 24px!important;
  min-height:0!important;
  align-items:start!important;
  border:1px solid #d8e4e2!important;
  border-radius:14px!important;
  background:#fff!important;
  box-shadow:0 3px 12px rgba(23,62,76,.035)!important;
}
.stu-course-stat-main{
  min-width:0!important;
  text-align:left!important;
}
.stu-course-stat-main h4{
  margin:0 0 7px!important;
  font-size:20px!important;
  line-height:1.35!important;
  font-weight:800!important;
  color:#173e4c!important;
}
.stu-course-stat-meta{
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:5px 9px!important;
  margin:0!important;
  font-size:14px!important;
  line-height:1.5!important;
  color:#6e8085!important;
}
.stu-course-stat-summary{
  display:grid!important;
  grid-template-columns:110px 150px 150px minmax(170px,1fr)!important;
  grid-template-areas:"total pre post action"!important;
  gap:10px!important;
  width:100%!important;
  min-width:0!important;
  align-items:stretch!important;
}
.stu-course-stat-total,
.stu-course-stat-stage,
.stu-course-stat-action{
  min-height:58px!important;
}
.stu-course-stat-total{
  grid-area:total!important;
  padding:8px 10px!important;
}
.stu-course-stat-stage{
  padding:9px 12px!important;
}
.stu-course-stat-action{
  grid-area:action!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-width:0!important;
  padding:10px 16px!important;
  box-sizing:border-box!important;
}
@media(max-width:820px){
  .stu-course-stat-card{padding:20px!important;gap:14px!important}
  .stu-course-stat-summary{
    grid-template-columns:90px minmax(0,1fr) minmax(0,1fr)!important;
    grid-template-areas:
      "total pre post"
      "action action action"!important;
  }
  .stu-course-stat-action{min-height:42px!important}
}
@media(max-width:560px){
  .stu-course-stat-card{padding:18px 16px!important}
  .stu-course-stat-summary{
    grid-template-columns:1fr 1fr!important;
    grid-template-areas:
      "total total"
      "pre post"
      "action action"!important;
  }
  .stu-course-stat-total{align-items:center!important;padding-left:10px!important}
}

/* v1.3.21 統計分析首頁：緊湊資訊卡，縮短操作按鈕與多餘留白 */
.stu-course-stat-grid{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:12px!important;
  margin-top:10px!important;
}
.stu-course-stat-card{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:12px!important;
  min-height:0!important;
  padding:18px 22px!important;
  margin:0!important;
  border:1px solid #d8e4e2!important;
  border-radius:14px!important;
  background:#fff!important;
  box-shadow:0 3px 10px rgba(23,62,76,.03)!important;
}
.stu-course-stat-main h4{
  margin:0 0 5px!important;
  font-size:19px!important;
  line-height:1.35!important;
}
.stu-course-stat-meta{
  gap:4px 8px!important;
  font-size:13.5px!important;
  line-height:1.45!important;
}
.stu-course-stat-summary{
  display:grid!important;
  grid-template-columns:105px 145px 145px 180px!important;
  grid-template-areas:"total pre post action"!important;
  justify-content:start!important;
  align-items:stretch!important;
  gap:9px!important;
  width:auto!important;
  min-width:0!important;
}
.stu-course-stat-total,
.stu-course-stat-stage,
.stu-course-stat-action{
  min-height:52px!important;
  height:52px!important;
  box-sizing:border-box!important;
}
.stu-course-stat-total{
  padding:6px 10px!important;
  border-radius:9px!important;
}
.stu-course-stat-total span{font-size:11.5px!important}
.stu-course-stat-total strong{font-size:27px!important;margin-top:2px!important}
.stu-course-stat-stage{
  padding:7px 10px!important;
  border-radius:9px!important;
  font-size:13.5px!important;
}
.stu-course-stat-stage svg{
  width:18px!important;
  height:18px!important;
  flex-basis:18px!important;
}
.stu-course-stat-stage strong{font-size:18px!important}
.stu-course-stat-action{
  width:180px!important;
  min-width:180px!important;
  max-width:180px!important;
  padding:8px 14px!important;
  border-radius:9px!important;
  font-size:13.5px!important;
  justify-self:start!important;
}
@media(max-width:900px){
  .stu-course-stat-summary{
    grid-template-columns:100px minmax(120px,1fr) minmax(120px,1fr) 170px!important;
    width:100%!important;
  }
  .stu-course-stat-action{width:170px!important;min-width:170px!important;max-width:170px!important}
}
@media(max-width:720px){
  .stu-course-stat-card{padding:17px!important;gap:10px!important}
  .stu-course-stat-summary{
    grid-template-columns:90px 1fr 1fr!important;
    grid-template-areas:
      "total pre post"
      "action action action"!important;
  }
  .stu-course-stat-action{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:42px!important;
    min-height:42px!important;
  }
}
@media(max-width:520px){
  .stu-course-stat-summary{
    grid-template-columns:1fr 1fr!important;
    grid-template-areas:
      "total total"
      "pre post"
      "action action"!important;
  }
  .stu-course-stat-total{align-items:center!important}
  .stu-course-stat-stage{white-space:normal!important}
}

/* v1.3.22 統計分析首頁：橫向資訊卡，依確認之視覺稿重新配置 */
.stu-course-stat-grid{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:16px!important;
  margin-top:12px!important;
}
.stu-course-stat-card{
  display:grid!important;
  grid-template-columns:minmax(0,1.15fr) minmax(500px,1fr)!important;
  align-items:center!important;
  gap:20px!important;
  min-height:0!important;
  padding:26px 28px!important;
  border:1px solid #d6e3e1!important;
  border-radius:15px!important;
  background:#fff!important;
  box-shadow:0 5px 16px rgba(23,62,76,.045)!important;
}
.stu-course-stat-main{
  min-width:0!important;
  padding-right:6px!important;
}
.stu-course-stat-main h4{
  margin:0 0 10px!important;
  color:#173f4c!important;
  font-size:21px!important;
  font-weight:800!important;
  line-height:1.35!important;
}
.stu-course-stat-meta{
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:6px 12px!important;
  color:#667b82!important;
  font-size:14px!important;
  line-height:1.5!important;
}
.stu-course-stat-meta span{font-weight:650!important}
.stu-course-stat-meta i{color:#c2cecf!important;font-style:normal!important}
.stu-course-stat-summary{
  display:grid!important;
  grid-template-columns:110px 145px 145px 190px!important;
  grid-template-areas:"total pre post action"!important;
  align-items:center!important;
  justify-content:end!important;
  gap:0!important;
  width:100%!important;
}
.stu-course-stat-total,
.stu-course-stat-stage{
  height:94px!important;
  min-height:94px!important;
  padding:8px 18px!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  box-sizing:border-box!important;
  border-left:1px solid #e1e8e7!important;
}
.stu-course-stat-total{grid-area:total!important;color:#173f4c!important}
.stu-course-stat-stage{gap:6px!important}
.stu-course-stat-pre{grid-area:pre!important;color:#1565c0!important}
.stu-course-stat-post{grid-area:post!important;color:#d32f2f!important}
.stu-course-stat-kicker{
  display:block!important;
  margin:0 0 5px!important;
  color:#6e8085!important;
  font-size:13px!important;
  font-weight:700!important;
  line-height:1.2!important;
}
.stu-course-stat-stage-label{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  font-size:14px!important;
  font-weight:800!important;
  line-height:1.2!important;
}
.stu-course-stat-stage-label svg{
  width:19px!important;
  height:19px!important;
  flex:0 0 19px!important;
  fill:currentColor!important;
}
.stu-course-stat-number{
  display:flex!important;
  align-items:baseline!important;
  justify-content:center!important;
  gap:4px!important;
  line-height:1!important;
}
.stu-course-stat-number strong{
  margin:0!important;
  color:inherit!important;
  font-size:38px!important;
  font-weight:800!important;
  line-height:1!important;
}
.stu-course-stat-number span{
  color:inherit!important;
  font-size:14px!important;
  font-weight:700!important;
}
.stu-course-stat-action{
  grid-area:action!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  justify-self:end!important;
  width:176px!important;
  min-width:176px!important;
  max-width:176px!important;
  height:56px!important;
  min-height:56px!important;
  padding:0 18px!important;
  margin-left:14px!important;
  border:0!important;
  border-radius:10px!important;
  background:#1f6388!important;
  color:#fff!important;
  font-size:14px!important;
  font-weight:800!important;
  line-height:1.3!important;
  text-decoration:none!important;
  box-shadow:0 4px 10px rgba(31,99,136,.12)!important;
}
.stu-course-stat-action:hover{
  background:#185571!important;
  color:#fff!important;
  transform:translateY(-1px)!important;
}
@media(max-width:980px){
  .stu-course-stat-card{
    grid-template-columns:1fr!important;
    gap:18px!important;
    padding:22px!important;
  }
  .stu-course-stat-summary{
    grid-template-columns:110px 1fr 1fr 180px!important;
    justify-content:start!important;
  }
}
@media(max-width:720px){
  .stu-course-stat-card{padding:19px 17px!important}
  .stu-course-stat-summary{
    grid-template-columns:1fr 1fr 1fr!important;
    grid-template-areas:
      "total pre post"
      "action action action"!important;
    row-gap:12px!important;
  }
  .stu-course-stat-total,
  .stu-course-stat-stage{
    height:84px!important;
    min-height:84px!important;
    padding:7px 10px!important;
  }
  .stu-course-stat-action{
    justify-self:stretch!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:46px!important;
    min-height:46px!important;
    margin-left:0!important;
  }
  .stu-course-stat-number strong{font-size:32px!important}
}
@media(max-width:480px){
  .stu-course-stat-meta{display:grid!important;grid-template-columns:1fr!important;gap:2px!important}
  .stu-course-stat-meta i{display:none!important}
  .stu-course-stat-summary{
    grid-template-columns:1fr 1fr!important;
    grid-template-areas:
      "total total"
      "pre post"
      "action action"!important;
  }
  .stu-course-stat-total{border-left:0!important;border-bottom:1px solid #e1e8e7!important}
}

/* v1.3.23：統計分析卡片三組數據垂直基準統一 */
.stu-course-stat-summary{
  grid-template-columns:120px 145px 145px 190px!important;
  align-items:center!important;
}
.stu-course-stat-total,
.stu-course-stat-stage{
  height:94px!important;
  min-height:94px!important;
  padding:8px 16px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
}
.stu-course-stat-kicker,
.stu-course-stat-stage-label{
  min-height:20px!important;
  margin:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:20px!important;
}
.stu-course-stat-kicker{
  font-size:13px!important;
}
.stu-course-stat-number{
  min-height:40px!important;
  margin:0!important;
  display:flex!important;
  align-items:baseline!important;
  justify-content:center!important;
  gap:4px!important;
  line-height:1!important;
}
.stu-course-stat-number strong{
  display:block!important;
  margin:0!important;
  font-size:38px!important;
  line-height:40px!important;
}
.stu-course-stat-number span{
  display:block!important;
  margin:0!important;
  font-size:15px!important;
  line-height:1!important;
}
.stu-course-stat-action{
  align-self:center!important;
  margin-top:0!important;
  margin-bottom:0!important;
}

/* v1.3.24：統計分析首頁重新排版，課程資訊與三組指標真正同軸對齊 */
.stu-course-stat-card-v24{
  display:grid!important;
  grid-template-columns:minmax(280px,1.15fr) minmax(520px,1.85fr)!important;
  align-items:center!important;
  gap:24px!important;
  padding:24px 28px!important;
  min-height:138px!important;
  box-sizing:border-box!important;
}
.stu-course-stat-card-v24 .stu-course-stat-main{
  align-self:center!important;
  padding-right:22px!important;
  border-right:1px solid #dde7e5!important;
}
.stu-course-stat-card-v24 .stu-course-stat-main h4{
  margin:0 0 10px!important;
  font-size:20px!important;
  line-height:1.3!important;
}
.stu-course-stat-card-v24 .stu-course-stat-meta{
  gap:5px 10px!important;
  font-size:14px!important;
  line-height:1.45!important;
}
.stu-course-stat-summary-v24{
  display:grid!important;
  grid-template-columns:108px 122px 122px minmax(150px,180px)!important;
  grid-template-areas:none!important;
  align-items:center!important;
  justify-content:end!important;
  gap:0!important;
  width:100%!important;
}
.stu-course-stat-metric{
  height:86px!important;
  min-height:86px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:9px!important;
  padding:0 14px!important;
  box-sizing:border-box!important;
  border-left:1px solid #dde7e5!important;
  background:transparent!important;
}
.stu-course-stat-metric-label{
  min-height:20px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  margin:0!important;
  font-size:14px!important;
  line-height:20px!important;
  font-weight:800!important;
  white-space:nowrap!important;
}
.stu-course-stat-metric-label svg{
  width:18px!important;
  height:18px!important;
  fill:currentColor!important;
  flex:0 0 18px!important;
}
.stu-course-stat-metric-value{
  height:38px!important;
  display:flex!important;
  align-items:baseline!important;
  justify-content:center!important;
  gap:4px!important;
  margin:0!important;
  line-height:1!important;
}
.stu-course-stat-metric-value strong{
  margin:0!important;
  font-size:36px!important;
  line-height:38px!important;
  font-weight:800!important;
  color:inherit!important;
}
.stu-course-stat-metric-value span{
  margin:0!important;
  font-size:15px!important;
  line-height:1!important;
  font-weight:700!important;
  color:inherit!important;
}
.stu-course-stat-total-v24{color:#173f4c!important}
.stu-course-stat-pre-v24{color:#0b63ce!important}
.stu-course-stat-post-v24{color:#d52222!important}
.stu-course-stat-action-v24{
  width:166px!important;
  min-width:166px!important;
  max-width:166px!important;
  height:52px!important;
  min-height:52px!important;
  justify-self:end!important;
  align-self:center!important;
  margin:0 0 0 18px!important;
  padding:0 16px!important;
  border-radius:10px!important;
  box-sizing:border-box!important;
}
@media(max-width:980px){
  .stu-course-stat-card-v24{
    grid-template-columns:1fr!important;
    gap:18px!important;
  }
  .stu-course-stat-card-v24 .stu-course-stat-main{
    padding-right:0!important;
    padding-bottom:15px!important;
    border-right:0!important;
    border-bottom:1px solid #dde7e5!important;
  }
  .stu-course-stat-summary-v24{
    grid-template-columns:1fr 1fr 1fr 170px!important;
    justify-content:stretch!important;
  }
}
@media(max-width:700px){
  .stu-course-stat-summary-v24{
    grid-template-columns:repeat(3,1fr)!important;
    grid-template-areas:
      "total pre post"
      "action action action"!important;
    row-gap:12px!important;
  }
  .stu-course-stat-total-v24{grid-area:total!important}
  .stu-course-stat-pre-v24{grid-area:pre!important}
  .stu-course-stat-post-v24{grid-area:post!important}
  .stu-course-stat-action-v24{
    grid-area:action!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
  }
}
@media(max-width:480px){
  .stu-course-stat-card-v24{padding:18px 16px!important}
  .stu-course-stat-summary-v24{
    grid-template-columns:1fr 1fr!important;
    grid-template-areas:
      "total total"
      "pre post"
      "action action"!important;
  }
  .stu-course-stat-total-v24{border-bottom:1px solid #dde7e5!important}
}


/* v1.3.25 學生問卷必填驗證 */
.stu-form-validation-summary,
.stu-form-server-error{
  margin:0 0 24px!important;
  padding:17px 20px!important;
  border:1px solid #efb5b5!important;
  border-left:5px solid #c62828!important;
  border-radius:10px!important;
  background:#fff6f6!important;
  color:#7c2020!important;
  box-sizing:border-box!important;
}
.stu-form-validation-summary[hidden]{display:none!important}
.stu-validation-title,
.stu-form-server-error strong{
  display:block!important;
  margin:0 0 5px!important;
  font-size:17px!important;
  line-height:1.45!important;
  font-weight:800!important;
  color:#a51f1f!important;
}
.stu-validation-text,
.stu-form-server-error span{
  display:block!important;
  font-size:15px!important;
  line-height:1.7!important;
  color:#6f3b3b!important;
}
.stu-form-validation-summary ul{
  margin:9px 0 0 22px!important;
  padding:0!important;
  line-height:1.75!important;
}
.stu-has-error{
  border-color:#df6666!important;
  background:#fffafa!important;
  box-shadow:0 0 0 2px rgba(198,40,40,.06)!important;
}
.stu-basic-input.stu-has-error{padding:15px!important;border:1px solid #df6666!important;border-radius:10px!important}
.stu-question.stu-has-error{border-color:#df6666!important;background:#fffafa!important}
.stu-inline-error{
  margin-top:10px!important;
  padding:8px 11px!important;
  border-radius:7px!important;
  background:#fdeaea!important;
  color:#b42318!important;
  font-size:14px!important;
  line-height:1.5!important;
  font-weight:700!important;
}

/* v1.3.26：題號、歷史題目保護與統計題號 */
.stu-question-card-top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}
.stu-question-number{display:inline-flex;align-items:center;justify-content:center;min-width:72px;padding:7px 12px;border-radius:999px;background:#e8f2f1;color:#174c58;font-weight:800;font-size:15px;line-height:1}
.stu-question-card .stu-drag{margin:0;color:#6c7f83}
.stu-history-note{margin:8px 0 0;padding:10px 12px;border-left:4px solid #d69a31;background:#fff8e9;color:#755619;font-size:14px;line-height:1.6}
.stu-qno-cell{width:56px;text-align:center!important;font-weight:800;color:#174c58;white-space:nowrap}
@media(max-width:680px){.stu-question-card-top{align-items:flex-start}.stu-question-number{min-width:64px}.stu-qno-cell{width:44px}}

/* v1.3.27：統計題號靠左＋TXT 批次匯入 */
.stu-analysis-table th:first-child,
.stu-analysis-table td.stu-qno-cell{
  text-align:left!important;
  padding-left:10px!important;
}
.stu-analysis-table th:nth-child(2),
.stu-analysis-table td:nth-child(2){text-align:left!important}
.stu-qno-cell{width:52px!important}
.stu-question-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.stu-txt-import-panel{margin:16px 0 20px;padding:18px;border:1px solid #cfe0dd;border-radius:12px;background:#f7fbfa}
.stu-txt-import-help>strong{display:block;font-size:18px;color:#173f4c;margin-bottom:6px}
.stu-txt-import-help p{margin:6px 0 12px;color:#5f7276;line-height:1.6}
.stu-import-format-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:10px 0}
.stu-import-format-grid>div{background:#fff;border:1px solid #d9e5e3;border-radius:9px;padding:12px}
.stu-import-format-grid b{color:#174c58}
.stu-import-format-grid pre{white-space:pre-wrap;word-break:break-word;margin:8px 0 0;padding:10px;background:#f2f6f5;border-radius:7px;font-family:'Microsoft JhengHei','Noto Sans TC',sans-serif;font-size:13px;line-height:1.6}
.stu-import-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px}
.stu-txt-file{max-width:320px}
.stu-import-preview{margin-top:14px;background:#fff;border:1px solid #d9e5e3;border-radius:9px;padding:14px}
.stu-import-preview-head{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:8px;color:#496066}
.stu-import-preview ol{margin:8px 0 0 24px;padding:0}
.stu-import-preview li{margin:6px 0;line-height:1.55}
.stu-import-success{padding:10px 12px;border-radius:8px;background:#e9f7ef;color:#17643b;font-weight:700}
@media(max-width:760px){.stu-import-format-grid{grid-template-columns:1fr}.stu-question-actions{justify-content:flex-start}}

/* v1.3.28：課程整體 Likert 平均、系所學期課程成效一覽 */
.stu-overall-card{border-color:#d5e2e7;background:linear-gradient(135deg,#fbfdfd 0%,#fff 62%,#f8fbfc 100%)}
.stu-overall-metrics{display:grid;grid-template-columns:minmax(0,1fr) 42px minmax(0,1fr) minmax(0,1.15fr);gap:14px;align-items:stretch;margin-top:16px}
.stu-overall-metric{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:138px;padding:18px;border:1px solid #dce5e8;border-radius:14px;background:#fff;text-align:center}
.stu-overall-metric span{font-size:14px;font-weight:700;color:#60747d}
.stu-overall-metric strong{display:block;margin:8px 0 4px;font-size:34px;line-height:1;color:#173e4c}
.stu-overall-metric small{font-size:12px;color:#849298}
.stu-overall-pre{background:#f7fafc}
.stu-overall-post{background:#f5faf8}
.stu-overall-diff{background:#fcfbf8}
.stu-overall-arrow{display:flex;align-items:center;justify-content:center;font-size:28px;color:#8a9da4;font-weight:700}
.stu-semester-overview-table{min-width:860px}
.stu-semester-overview-table th{white-space:nowrap;background:#f3f7f6}
.stu-semester-overview-table td:nth-child(n+4){text-align:center}
.stu-semester-overview-table td:first-child{font-weight:700;color:#173e4c}
@media(max-width:760px){
  .stu-overall-metrics{grid-template-columns:1fr 1fr}
  .stu-overall-arrow{display:none}
  .stu-overall-diff{grid-column:1/-1}
}
@media(max-width:520px){
  .stu-overall-metrics{grid-template-columns:1fr}
  .stu-overall-diff{grid-column:auto}
  .stu-overall-metric{min-height:112px}
}


/* v1.3.33：前台已完成問卷狀態 */
.stu-co-front .stu-btn-completed{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:132px;
    background:#b4233f !important;
    border-color:#b4233f !important;
    color:#fff !important;
    cursor:not-allowed;
    pointer-events:none;
    opacity:1;
    box-shadow:none;
}
.stu-co-front .stu-btn-completed:hover{
    background:#b4233f !important;
    color:#fff !important;
    transform:none !important;
}
.stu-co-front .stu-already-completed{
    line-height:1.8;
}
.stu-co-front .stu-already-completed .stu-btn{
    margin-top:14px;
}


/* v1.3.34：各題前後測圖表緊湊排列、進退步值、原始資料刪除操作固定顯示 */
.stu-question-chart-list{
  gap:16px!important;
}
.stu-question-chart{
  padding:18px 20px!important;
  border-radius:12px!important;
}
.stu-question-chart-title{
  margin-bottom:14px!important;
  font-size:17px!important;
  line-height:1.55!important;
  color:#173f4c!important;
}
.stu-chart-row{
  display:grid!important;
  grid-template-columns:118px minmax(180px,1fr)!important;
  gap:18px!important;
  align-items:center!important;
  margin:10px 0!important;
}
.stu-chart-stat{
  display:grid!important;
  grid-template-columns:44px 1fr!important;
  gap:10px!important;
  align-items:baseline!important;
  min-width:0!important;
}
.stu-chart-stat .stu-chart-label{
  display:block!important;
  font-size:14px!important;
  line-height:1.3!important;
  font-weight:800!important;
  color:#607078!important;
  white-space:nowrap!important;
}
.stu-chart-stat strong{
  display:block!important;
  margin:0!important;
  font-size:20px!important;
  line-height:1.2!important;
  font-weight:800!important;
  color:#173f4c!important;
  font-variant-numeric:tabular-nums!important;
}
.stu-chart-track{
  width:100%!important;
  height:14px!important;
  background:#edf1f0!important;
  border-radius:999px!important;
  overflow:hidden!important;
  position:relative!important;
}
.stu-chart-bar-pre{background:#527fa3!important}
.stu-chart-bar-post{background:#2f7d75!important}
.stu-legend-pre{background:#527fa3!important}
.stu-legend-post{background:#2f7d75!important}
.stu-chart-diff{
  display:flex!important;
  align-items:baseline!important;
  gap:9px!important;
  margin:12px 0 0 118px!important;
  padding-top:10px!important;
  border-top:1px dashed #dce5e3!important;
  font-variant-numeric:tabular-nums!important;
}
.stu-chart-diff span{
  font-size:13px!important;
  font-weight:800!important;
  color:#6b7b80!important;
}
.stu-chart-diff strong{
  font-size:18px!important;
  line-height:1!important;
  font-weight:900!important;
}
.stu-chart-diff small{
  font-size:12px!important;
  color:#8a989c!important;
  font-weight:600!important;
}

/* 原始填寫資料表：最右側操作欄固定，避免題目較多時看不到刪除功能 */
.stu-raw-table{
  border-collapse:separate!important;
  border-spacing:0!important;
}
.stu-raw-table .stu-raw-action-col{
  position:sticky!important;
  right:0!important;
  z-index:3!important;
  min-width:84px!important;
  width:84px!important;
  text-align:center!important;
  background:#fff!important;
  box-shadow:-8px 0 12px rgba(18,48,65,.06)!important;
}
.stu-raw-table thead .stu-raw-action-col{
  z-index:5!important;
  background:#f2f6f5!important;
}
.stu-raw-table .stu-link-danger{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:54px!important;
  padding:7px 10px!important;
  border:1px solid #e7b1ad!important;
  border-radius:8px!important;
  background:#fff7f6!important;
  color:#b42318!important;
  text-decoration:none!important;
  line-height:1.2!important;
}
.stu-raw-table .stu-link-danger:hover{
  background:#fde9e7!important;
  border-color:#d98f89!important;
  color:#8d1d14!important;
}
.stu-btn-danger-outline{
  border:1px solid #d98f89!important;
  background:#fff7f6!important;
  color:#a9271d!important;
}
.stu-btn-danger-outline:hover{
  border-color:#c86f67!important;
  background:#fde9e7!important;
  color:#811a13!important;
}
@media(max-width:700px){
  .stu-chart-row{
    grid-template-columns:105px minmax(120px,1fr)!important;
    gap:12px!important;
  }
  .stu-chart-stat{
    grid-template-columns:40px 1fr!important;
    gap:7px!important;
  }
  .stu-chart-stat strong{font-size:18px!important}
  .stu-chart-diff{margin-left:105px!important}
}
@media(max-width:480px){
  .stu-question-chart{padding:15px!important}
  .stu-chart-row{
    grid-template-columns:1fr!important;
    gap:7px!important;
  }
  .stu-chart-stat{
    grid-template-columns:48px auto!important;
    justify-content:start!important;
  }
  .stu-chart-diff{margin-left:0!important}
}

/* v1.3.35：填寫情況施測標註、各課程總平均表新增期初／期末人數 */


/* v1.3.36：統一施測人數計數來源，並適度縮小各頁過大的文字 */
/* 全站主要標題與區塊標題稍微收斂，保留清楚層級但降低壓迫感 */
.stu-co h1,.stu-co-front h1{font-size:28px!important;line-height:1.35!important}
.stu-co h2,.stu-co-front h2{font-size:23px!important;line-height:1.4!important}
.stu-co h3,.stu-co-front h3,.stu-portal-section-head h3{font-size:20px!important;line-height:1.4!important}
.stu-co h4,.stu-co-front h4{font-size:18px!important;line-height:1.4!important}
.stu-portal-section-head p{font-size:15px!important;line-height:1.65!important}

/* 表格資訊維持可讀，但避免桌機版字體過大造成欄位過度換行 */
.stu-table th,.stu-table td{font-size:14px!important;line-height:1.55!important}
.stu-table th{font-weight:800!important}
.stu-stage-badge{font-size:12px!important;padding:4px 8px!important;min-width:44px!important}
.stu-status{font-size:12px!important}

/* 統計首頁卡片：課名、摘要數字與按鈕縮小一級 */
.stu-course-stat-card-v24 .stu-course-stat-main h4{font-size:18px!important}
.stu-course-stat-card-v24 .stu-course-stat-meta{font-size:13px!important}
.stu-course-stat-metric-label{font-size:13px!important}
.stu-course-stat-metric-value strong{font-size:31px!important;line-height:34px!important}
.stu-course-stat-metric-value span{font-size:13px!important}
.stu-course-stat-action-v24{font-size:13px!important;height:48px!important;min-height:48px!important}

/* 分析頁三個整體平均指標避免數字過度搶畫面 */
.stu-overall-metric strong{font-size:29px!important}
.stu-overall-metric span{font-size:13px!important}
.stu-overall-arrow{font-size:23px!important}

/* 逐題圖表的標題與數字稍微縮小 */
.stu-question-chart-title{font-size:15px!important}
.stu-chart-stat strong{font-size:17px!important}

/* 原始資料頁與管理表格在寬螢幕上維持緊湊 */
.stu-raw-table th,.stu-raw-table td{font-size:13px!important}

/* 感謝頁仍保留主視覺，但不使用過大的字 */
.stu-thankyou-head h2{font-size:27px!important}
.stu-thankyou-body h3{font-size:21px!important}
.stu-thankyou-body p{font-size:16px!important}

@media(max-width:720px){
  .stu-co h1,.stu-co-front h1{font-size:24px!important}
  .stu-co h2,.stu-co-front h2{font-size:21px!important}
  .stu-co h3,.stu-co-front h3,.stu-portal-section-head h3{font-size:18px!important}
  .stu-table th,.stu-table td{font-size:13px!important}
  .stu-course-stat-metric-value strong{font-size:28px!important}
  .stu-course-stat-card-v24 .stu-course-stat-main h4{font-size:17px!important}
  .stu-thankyou-head h2{font-size:24px!important}
}


/* v1.3.37：施測標籤簡化為期初／期末；期初灰藍、期末青綠；進步藍、退步紅 */
.stu-stage-badge{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  min-width:48px!important;padding:5px 10px!important;border-radius:999px!important;
  font-size:12px!important;font-weight:800!important;line-height:1.2!important;white-space:nowrap!important;
}
.stu-stage-pre{
  color:#0b57d0!important;background:#eef4ff!important;border:1px solid #8fb6ff!important;
}
.stu-stage-post{
  color:#c62828!important;background:#fff0f0!important;border:1px solid #f3a0a0!important;
}
.stu-chart-bar-pre{background:#547a96!important;}
.stu-chart-bar-post{background:#00a58c!important;}
.stu-legend-pre{background:#547a96!important;}
.stu-legend-post{background:#00a58c!important;}
.stu-chart-diff.stu-positive,.stu-positive{color:#0066d6!important;}
.stu-chart-diff.stu-negative,.stu-negative{color:#e53935!important;}

/* v1.3.38：課程展示頁依學制／年級分組；填答頁題目與選項加大並美化 */
.stu-course-groups{
  display:grid;
  gap:24px;
  margin-top:18px;
}
.stu-degree-group{
  border:1px solid #d9e3e1;
  border-radius:16px;
  background:#fbfcfb;
  padding:18px 20px 20px;
}
.stu-degree-title{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 14px;
  color:#173f4c;
  font-size:21px;
  line-height:1.35;
  font-weight:900;
  letter-spacing:.02em;
}
.stu-degree-title::before{
  content:"";
  width:5px;
  height:23px;
  border-radius:999px;
  background:#2b7585;
}
.stu-grade-group + .stu-grade-group{
  margin-top:20px;
  padding-top:18px;
  border-top:1px solid #e4ebe9;
}
.stu-grade-title{
  display:inline-flex;
  align-items:center;
  margin:0 0 10px;
  padding:5px 11px;
  border-radius:999px;
  background:#edf4f3;
  color:#355c65;
  font-size:14px;
  line-height:1.3;
  font-weight:800;
}
.stu-degree-group .stu-course-list{
  display:grid;
  gap:10px;
}
.stu-degree-group .stu-course-card{
  margin:0;
  padding:16px 18px;
  border-color:#dbe4e2;
  box-shadow:0 3px 12px rgba(24,59,71,.035);
}
.stu-course-card-copy{
  min-width:0;
  flex:1 1 auto;
}
.stu-course-card-title-row{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:5px;
}
.stu-course-card-title-row h3{
  margin:0!important;
  color:#163d4a;
  font-size:18px!important;
}
.stu-course-card-title-row .stu-stage-badge{
  flex:0 0 auto;
}

/* 學生填答頁：題項字體與量表選項放大，增加留白與可點選範圍 */
.stu-assessment-box{
  border-color:#d7e1df!important;
  box-shadow:0 7px 24px rgba(24,59,71,.055)!important;
}
.stu-assessment-box .stu-form-section{
  margin:26px 0!important;
}
.stu-assessment-box .stu-question{
  margin:0!important;
  padding:25px 0 27px!important;
  border-top:1px solid #e1e9e7!important;
}
.stu-assessment-box .stu-question:first-of-type{
  border-top:0!important;
}
.stu-assessment-box .stu-question legend{
  width:100%;
  padding:0 0 13px!important;
  color:#143d4c!important;
  font-size:19px!important;
  line-height:1.7!important;
  font-weight:800!important;
  letter-spacing:.01em;
}
.stu-assessment-box .stu-likert{
  gap:10px!important;
}
.stu-assessment-box .stu-likert label{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:82px!important;
  margin:0!important;
  padding:13px 9px!important;
  border:1px solid #d2dedb!important;
  border-radius:12px!important;
  background:#fff!important;
  cursor:pointer!important;
  transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease!important;
}
.stu-assessment-box .stu-likert label:hover{
  border-color:#7ea9a4!important;
  background:#f7fbfa!important;
  box-shadow:0 4px 12px rgba(31,91,93,.07)!important;
  transform:translateY(-1px);
}
.stu-assessment-box .stu-likert label:has(input:checked){
  border-color:#2b837a!important;
  background:#edf8f6!important;
  box-shadow:0 0 0 2px rgba(43,131,122,.10)!important;
}
.stu-assessment-box .stu-likert input[type="radio"]{
  width:18px!important;
  height:18px!important;
  margin:0 0 5px!important;
  accent-color:#267d76;
}
.stu-assessment-box .stu-likert strong{
  color:#173f4c!important;
  font-size:18px!important;
  line-height:1.25!important;
  font-weight:900!important;
}
.stu-assessment-box .stu-likert small{
  margin-top:5px!important;
  color:#5f7075!important;
  font-size:14px!important;
  line-height:1.45!important;
  font-weight:600!important;
}
.stu-assessment-box .stu-basic-input>label{
  font-size:16px!important;
}
.stu-assessment-box .stu-option{
  font-size:15px!important;
  line-height:1.55!important;
}

@media(max-width:720px){
  .stu-degree-group{padding:15px 14px 16px}
  .stu-degree-title{font-size:19px}
  .stu-degree-group .stu-course-card{padding:15px}
  .stu-course-card-title-row h3{font-size:17px!important}
  .stu-assessment-box .stu-question legend{font-size:18px!important;line-height:1.65!important}
  .stu-assessment-box .stu-likert{grid-template-columns:1fr!important;gap:8px!important}
  .stu-assessment-box .stu-likert label{
    min-height:58px!important;
    flex-direction:row!important;
    justify-content:flex-start!important;
    gap:10px!important;
    padding:11px 13px!important;
    text-align:left!important;
  }
  .stu-assessment-box .stu-likert input[type="radio"]{margin:0!important}
  .stu-assessment-box .stu-likert strong{min-width:22px;font-size:17px!important}
  .stu-assessment-box .stu-likert small{margin:0!important;font-size:14px!important}
}

/* v1.3.40 批次課程匯入 */
.stu-import-courses .stu-subtitle{max-width:980px;color:#53677a;font-size:14px;line-height:1.8}.stu-import-courses label{display:block;font-weight:700;margin-bottom:7px}.stu-ocr-progress{display:inline-block;vertical-align:middle;width:180px;height:7px;margin-left:12px;background:#e8eef3;border-radius:999px;overflow:hidden}.stu-ocr-progress span{display:block;width:0;height:100%;background:#547a96;transition:width .2s}.stu-import-table-wrap{overflow:auto;margin:14px 0}.stu-import-table{min-width:1450px}.stu-import-table th{white-space:nowrap}.stu-import-table input,.stu-import-table select{min-height:34px;font-size:13px}.stu-import-table input{width:100%;min-width:150px}.stu-import-table .stu-small{min-width:175px}.stu-import-table .stu-mid{min-width:105px}.stu-import-table .stu-num{min-width:70px;width:70px}.stu-import-table select{min-width:115px}.stu-import-note{padding:10px 13px;background:#f6f9fb;border-left:4px solid #547a96;color:#42596d}


/* v1.3.42 課表欄位定位辨識與人工確認 */
.stu-import-table{min-width:1660px}.stu-import-table .stu-course-name-input{min-width:245px}.stu-import-table tr.stu-import-warning>td{background:#fff8f3!important}.stu-import-warning-text{margin-top:6px;max-width:130px;color:#b54708;font-size:11px;line-height:1.45;font-weight:700}.stu-import-table td:first-child{vertical-align:top}.stu-import-table .stu-source-image{display:block;max-width:150px;line-height:1.45;word-break:break-word}
