:root {
  --bg:#f5f7fb; --panel:#fff; --text:#172033; --muted:#667085; --line:#e6eaf2;
  --primary:#2458ff; --primary-soft:#eaf0ff; --accent:#0f9b8e; --accent-soft:#e8fbf8;
  --danger:#c62828; --danger-soft:#fff3f2; --radius:18px;
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans KR",sans-serif;background:linear-gradient(180deg,#f7faff 0%,#f3f6fb 100%);color:var(--text)}
.page{max-width:1180px;margin:0 auto;padding:28px 16px 56px}
.hero{margin-bottom:18px}
.hero-badge{display:inline-block;padding:6px 12px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-weight:700;font-size:.84rem;margin-bottom:10px}
.hero h1{margin:0 0 8px;font-size:2rem;line-height:1.2}
.hero p{margin:0;color:var(--muted)}
.panel,.big-card,.action-card,.quick-card,.compact-card,.details-panel,.report-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 10px 28px rgba(15,23,42,.06)}
.form-panel{padding:20px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.form-grid .full{grid-column:1/-1}
label span{display:block;margin-bottom:6px;font-weight:700;font-size:.95rem}
input,select,textarea{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:#fff;font:inherit;color:var(--text)}
textarea{resize:vertical;min-height:96px}
.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:18px}
.primary-btn,.secondary-btn{border:0;border-radius:14px;padding:12px 18px;font-weight:800;cursor:pointer}
.primary-btn{background:var(--primary);color:#fff}
.secondary-btn{background:#eef2ff;color:#2440a8}
.loading-text{color:var(--primary);font-weight:700}
.status-message.error{color:var(--danger);margin-top:12px}
.result-section{display:grid;gap:16px}
.student-top{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.big-card{padding:20px;background:linear-gradient(180deg,#fff,#f9fbff)}
.big-card h2{margin:6px 0 8px;font-size:1.55rem;line-height:1.35}
.big-card p{margin:0;color:var(--muted);line-height:1.65}
.mini-label{display:inline-block;padding:5px 10px;border-radius:999px;background:#eef3ff;color:var(--primary);font-size:.8rem;font-weight:800;margin-bottom:10px}
.action-card{padding:20px;background:linear-gradient(180deg,#2458ff 0%,#3d6cff 100%);color:#fff}
.action-card .mini-label{background:rgba(255,255,255,.18);color:#fff}
.action-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.step-item{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:16px;padding:14px}
.step-no{display:inline-flex;width:28px;height:28px;border-radius:999px;align-items:center;justify-content:center;background:#fff;color:var(--primary);font-weight:900;margin-bottom:8px}
.student-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.quick-card,.compact-card,.report-panel{padding:18px}
.quick-card h3,.compact-card h3,.report-panel h3{margin:0 0 10px;font-size:1.02rem}
.quick-card p,.quick-card li,.compact-card p,.compact-card li,.student-report p,.student-report li{line-height:1.65}
.quick-card ul,.compact-card ul{margin:0;padding-left:18px}
.frame-list,.mini-block-list{display:grid;gap:10px}
.frame-item,.mini-item{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fbfcfe}
.frame-item b,.mini-item b{display:block;margin-bottom:6px}
.do-dont-wrap{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.do-box,.dont-box{border-radius:14px;padding:12px}
.do-box{background:var(--accent-soft);border:1px solid #c9f2eb}
.dont-box{background:var(--danger-soft);border:1px solid #ffd6d2}
.do-box h4,.dont-box h4{margin:0 0 8px;font-size:.95rem}
.report-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.student-report{border:1px solid var(--line);border-radius:16px;padding:18px;background:#fcfdff}
.student-report h4{margin:18px 0 8px;font-size:1rem}
.student-report h4:first-child{margin-top:0}
.student-report ul{margin:0;padding-left:18px}
.details-panel{padding:0;overflow:hidden}
.details-panel summary{list-style:none;cursor:pointer;padding:16px 18px;font-weight:800;background:#fafbfd;border-bottom:1px solid var(--line)}
.details-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:16px}
.muted{color:var(--muted)}
@media (max-width:980px){.student-top,.student-grid,.details-grid,.action-steps,.do-dont-wrap{grid-template-columns:1fr}}
@media (max-width:760px){.form-grid{grid-template-columns:1fr}}
/* ===== Content article output block (v27 fixed) ===== */
#contentOutputSection{
  margin:0;
}

.content-output-card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:0 10px 28px rgba(15,23,42,.06);
  padding:20px;
}

.content-output-card h2{
  margin:0 0 12px;
  font-size:1.45rem;
  line-height:1.4;
  color:var(--text);
}

.content-output-card h3{
  margin:20px 0 10px;
  font-size:1.02rem;
  line-height:1.4;
  color:var(--text);
}

.content-output-card p,
.content-output-card li,
.content-output-card div{
  line-height:1.65;
}

.content-intro{
  margin:0;
  color:var(--muted);
}

.content-section-list{
  display:grid;
  gap:12px;
}

.content-section-item{
  border:1px solid var(--line);
  border-radius:14px;
  padding:14px;
  background:#fbfcfe;
}

.content-section-title{
  font-weight:800;
  margin-bottom:8px;
  color:var(--text);
}

.content-output-card ul{
  margin:0;
  padding-left:18px;
}

@media (max-width:980px){
  #contentOutputSection{
    margin:0;
  }
}

@media (max-width:760px){
  .content-output-card{
    padding:18px;
  }

  .content-output-card h2{
    font-size:1.2rem;
  }
}

/* ===== Strong intuitive content block v28 ===== */
#contentOutputSection{margin:0;}
.content-output-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 10px 28px rgba(15,23,42,.06);padding:22px;}
.content-headline-badge{display:inline-block;padding:6px 12px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-weight:800;font-size:.82rem;margin-bottom:12px;}
.content-output-card h2{margin:0 0 14px;font-size:1.55rem;line-height:1.38;color:var(--text);}
.content-one-pick{background:linear-gradient(180deg,#f7faff 0%,#eef4ff 100%);border:1px solid #d9e4ff;border-radius:16px;padding:14px 16px;margin-bottom:14px;}
.content-one-pick-label{font-size:.82rem;font-weight:800;color:var(--primary);margin-bottom:6px;}
.content-one-pick-text{font-size:1.02rem;font-weight:800;line-height:1.5;color:var(--text);}
.content-intro{margin:0 0 14px;color:var(--muted);line-height:1.72;}
.content-why-box{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fbfcfe;margin-bottom:14px;line-height:1.68;}
.content-output-card h3{margin:22px 0 10px;font-size:1.05rem;line-height:1.4;color:var(--text);}
.content-section-list{display:grid;gap:12px;}
.content-section-item{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fbfcfe;}
.content-section-title{font-weight:800;margin-bottom:8px;color:var(--text);}
.content-output-card p,.content-output-card li,.content-output-card div{line-height:1.68;}
.content-output-card ul,.content-output-card ol{margin:0;padding-left:20px;}
@media (max-width:760px){
  .content-output-card{padding:18px;}
  .content-output-card h2{font-size:1.22rem;}
}

/* ===== v29 personalized button flow ===== */
.pick-layout{display:grid;gap:16px;margin-top:24px;}
.pick-block{border:1px solid var(--line);border-radius:16px;padding:16px;background:#fcfdff;}
.pick-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.pick-head h4{margin:0;font-size:1rem;}
.pick-guide{font-size:.82rem;color:var(--muted);font-weight:700;}
.pick-buttons{display:flex;flex-wrap:wrap;gap:10px;}
.pick-btn{border:1px solid #dbe3f4;background:#fff;color:var(--text);padding:10px 14px;border-radius:999px;font:inherit;font-weight:800;cursor:pointer;transition:.15s ease;}
.pick-btn:hover{border-color:#9cb6ff;background:#f7faff;}
.pick-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 6px 16px rgba(36,88,255,.18);}
.personal-guide-card{margin-top:20px;border:1px solid var(--line);border-radius:16px;padding:18px;background:linear-gradient(180deg,#ffffff 0%,#fbfcff 100%);}
.personal-guide-card h3{margin:0 0 12px;font-size:1.08rem;}
.personal-summary{display:grid;gap:8px;border:1px solid var(--line);border-radius:14px;padding:14px;background:#fbfcfe;margin-bottom:14px;line-height:1.65;}
.guide-section{border-top:1px dashed var(--line);padding-top:14px;margin-top:14px;}
.guide-section:first-of-type{border-top:0;padding-top:0;margin-top:0;}
.guide-section h4{margin:0 0 8px;font-size:1rem;}
.starter-box{margin-top:8px;border-radius:12px;background:var(--primary-soft);padding:10px 12px;line-height:1.6;}
@media (max-width:760px){
  .pick-block,.personal-guide-card{padding:14px;}
  .pick-buttons{gap:8px;}
  .pick-btn{width:100%;text-align:left;border-radius:14px;}
}
/* ===== v30 career-major-keyword selector ===== */
.major-selector-section{
  margin: 0 0 18px;
}
.major-selector-card{
  border:1px solid var(--line);
  border-radius:20px;
  background:linear-gradient(180deg,#ffffff 0%, #fbfcff 100%);
  padding:20px;
  box-shadow:0 10px 24px rgba(15,23,42,.05);
}
.major-selector-kicker{
  display:inline-flex;
  align-items:center;
  padding:6px 12px;
  border-radius:999px;
  background:var(--accent-soft);
  color:var(--accent);
  font-size:.82rem;
  font-weight:800;
}
.major-selector-title{
  margin:12px 0 8px;
  font-size:1.45rem;
  line-height:1.35;
}
.major-selector-desc{
  margin:0;
  color:var(--muted);
  line-height:1.7;
}
.selector-block{
  margin-top:18px;
  border:1px solid var(--line);
  border-radius:18px;
  padding:16px;
  background:#fff;
}
.selector-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:10px;
}
.selector-head h3{
  margin:0;
  font-size:1.02rem;
}
.selector-guide{
  color:var(--muted);
  font-size:.84rem;
  font-weight:800;
}
.selector-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.selector-btn{
  border:1px solid #dbe3f4;
  background:#fff;
  color:var(--text);
  padding:10px 14px;
  border-radius:999px;
  font:inherit;
  font-weight:800;
  cursor:pointer;
  transition:.15s ease;
}
.selector-btn:hover{
  border-color:#9cb6ff;
  background:#f7faff;
}
.selector-btn.active{
  background:var(--primary);
  color:#fff;
  border-color:var(--primary);
  box-shadow:0 6px 16px rgba(36,88,255,.16);
}
.selector-empty{
  color:var(--muted);
  line-height:1.7;
}
.selector-cluster-wrap{
  margin-top:18px;
}
.selector-cluster-grid{
  display:grid;
  gap:14px;
}
.selector-cluster-card{
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px;
  background:#fbfcfe;
}
.selector-cluster-title{
  font-weight:900;
  margin-bottom:10px;
}
.selected-keyword-box{
  margin-top:18px;
  border:1px solid var(--line);
  border-radius:18px;
  padding:16px;
  background:#fbfcfe;
}
.selected-keyword-label{
  font-size:.85rem;
  font-weight:800;
  color:var(--primary);
  margin-bottom:10px;
}
.selected-keyword-summary{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  min-height:28px;
  line-height:1.7;
}
.selected-chip{
  display:inline-flex;
  align-items:center;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid #dbe3f4;
  background:#fff;
  font-size:.92rem;
  font-weight:800;
}
.selected-keyword-help{
  margin-top:10px;
  color:var(--muted);
  font-size:.88rem;
  line-height:1.7;
}
@media (max-width:760px){
  .major-selector-card,
  .selector-block,
  .selected-keyword-box,
  .selector-cluster-card{
    padding:14px;
  }
  .selector-btn{
    width:100%;
    text-align:left;
    border-radius:14px;
  }
}
/* ===== v35 acceptance output structure ===== */
.admission-spotlight-card{
  margin:16px 0;
  border:1px solid var(--line);
  border-radius:18px;
  padding:16px 18px;
  background:linear-gradient(180deg,#f8fbff 0%, #f1f6ff 100%);
}
.admission-spotlight-label{
  font-size:.85rem;
  font-weight:900;
  color:var(--primary);
  margin-bottom:8px;
}
.admission-spotlight-text{
  font-size:1.05rem;
  font-weight:900;
  line-height:1.6;
  color:var(--text);
}
.admission-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin:16px 0;
}
.admission-card{
  border:1px solid var(--line);
  border-radius:18px;
  padding:16px;
  background:#fff;
}
.admission-card h3{
  margin:0 0 10px;
}
.admission-card p,
.admission-card li{
  line-height:1.7;
}
.record-card{
  margin:16px 0 8px;
  border:1px solid #d7e4ff;
  border-radius:18px;
  padding:16px 18px;
  background:#f7faff;
}
.record-card-label{
  font-size:.84rem;
  font-weight:900;
  color:var(--primary);
  margin-bottom:8px;
}
.record-card-text{
  line-height:1.8;
  font-weight:700;
  color:var(--text);
}
@media (max-width:760px){
  .admission-grid{
    grid-template-columns:1fr;
  }
}


/* ===== v36 report navigation addon ===== */
.report-navigation-guide-wrap{
  margin-bottom:18px;
}
.report-nav-card{
  border:1px solid var(--line);
  border-radius:20px;
  background:linear-gradient(180deg,#ffffff 0%,#fbfcff 100%);
  padding:20px;
  box-shadow:0 10px 24px rgba(15,23,42,.05);
}
.report-nav-kicker{
  display:inline-flex;
  align-items:center;
  padding:6px 12px;
  border-radius:999px;
  background:var(--accent-soft);
  color:var(--accent);
  font-size:.82rem;
  font-weight:800;
}
.report-nav-main-title{
  margin:12px 0 8px;
  font-size:1.35rem;
  line-height:1.4;
}
.report-nav-summary{
  margin:0 0 14px;
  color:var(--muted);
  line-height:1.7;
}
.report-nav-section{
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  padding:16px;
  margin-top:14px;
}
.report-nav-title{
  font-size:1.02rem;
  font-weight:900;
  margin-bottom:10px;
}
.report-nav-row{
  line-height:1.75;
  margin-top:7px;
}
.report-nav-tip{
  color:var(--primary);
}
.report-nav-hint{
  margin-top:10px;
  padding-top:10px;
  border-top:1px dashed var(--line);
}
.report-nav-check{
  margin-top:16px;
  border:1px solid #d7e4ff;
  border-radius:18px;
  padding:16px;
  background:#f7faff;
  line-height:1.8;
  font-weight:800;
}
@media (max-width:760px){
  .report-nav-card,
  .report-nav-section,
  .report-nav-check{
    padding:14px;
  }
}


/* ===== v37 student focus addon ===== */
.student-focus-guide-wrap{
  margin-bottom:18px;
}
.student-focus-card{
  border:1px solid var(--line);
  border-radius:20px;
  background:linear-gradient(180deg,#ffffff 0%,#fbfcff 100%);
  padding:20px;
  box-shadow:0 10px 24px rgba(15,23,42,.05);
}
.student-focus-kicker{
  display:inline-flex;
  align-items:center;
  padding:6px 12px;
  border-radius:999px;
  background:var(--accent-soft);
  color:var(--accent);
  font-size:.82rem;
  font-weight:800;
  margin-bottom:14px;
}
.student-focus-topic-card,
.student-focus-steps-card{
  border:1px solid var(--line);
  border-radius:18px;
  padding:16px;
  background:#fff;
  margin-bottom:14px;
}
.student-focus-topic-label,
.student-focus-steps-label{
  font-size:.84rem;
  font-weight:900;
  color:var(--primary);
  margin-bottom:8px;
}
.student-focus-topic-text{
  font-size:1.15rem;
  font-weight:900;
  line-height:1.6;
  color:var(--text);
}
.student-focus-steps-list{
  margin:0;
  padding-left:20px;
  line-height:1.9;
}
.student-focus-summary{
  margin:0 0 14px;
  color:var(--muted);
  line-height:1.7;
}
.student-focus-section{
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  padding:16px;
  margin-top:14px;
}
.student-focus-section-title{
  font-size:1.02rem;
  font-weight:900;
  margin-bottom:10px;
}
.student-focus-line{
  line-height:1.8;
  margin-top:7px;
}
.student-focus-tip{
  color:var(--primary);
}
.student-focus-check{
  margin-top:16px;
  border:1px solid #d7e4ff;
  border-radius:18px;
  padding:16px;
  background:#f7faff;
  line-height:1.8;
  font-weight:800;
}
@media (max-width:760px){
  .student-focus-card,
  .student-focus-topic-card,
  .student-focus-steps-card,
  .student-focus-section,
  .student-focus-check{
    padding:14px;
  }
}
/* ===== v38 draft report addon ===== */
.draft-report-wrap{
  margin-bottom:18px;
}
.draft-report-card{
  border:1px solid var(--line);
  border-radius:20px;
  background:linear-gradient(180deg,#ffffff 0%,#fbfcff 100%);
  padding:20px;
  box-shadow:0 10px 24px rgba(15,23,42,.05);
}
.draft-report-kicker{
  display:inline-flex;
  align-items:center;
  padding:6px 12px;
  border-radius:999px;
  background:var(--accent-soft);
  color:var(--accent);
  font-size:.82rem;
  font-weight:800;
  margin-bottom:14px;
}
.draft-report-title{
  font-size:1.2rem;
  font-weight:900;
  line-height:1.6;
  margin-bottom:14px;
}
.draft-report-body{
  border:1px solid var(--line);
  border-radius:18px;
  padding:16px;
  background:#fff;
  line-height:1.9;
}
.draft-report-body p{
  margin:0 0 14px;
}
.draft-placeholder{
  display:inline-block;
  padding:2px 6px;
  border-radius:8px;
  background:#f3f7ff;
  border:1px solid #d7e4ff;
  font-weight:800;
}
.draft-options-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  margin-top:14px;
}
.draft-option-card{
  border:1px solid var(--line);
  border-radius:18px;
  padding:16px;
  background:#fff;
}
.draft-option-title{
  font-size:1rem;
  font-weight:900;
  margin-bottom:8px;
}
.draft-option-help{
  color:var(--muted);
  line-height:1.6;
  margin-bottom:10px;
}
.draft-option-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.draft-option-btn{
  border:1px solid #dbe3f4;
  background:#fff;
  color:var(--text);
  padding:10px 14px;
  border-radius:999px;
  font:inherit;
  font-weight:800;
  cursor:pointer;
}
.draft-option-btn.active{
  background:var(--primary);
  color:#fff;
  border-color:var(--primary);
}
.draft-final-tip{
  margin-top:16px;
  border:1px solid #d7e4ff;
  border-radius:18px;
  padding:16px;
  background:#f7faff;
  line-height:1.8;
  font-weight:800;
}
@media (max-width:760px){
  .draft-report-card,
  .draft-report-body,
  .draft-option-card,
  .draft-final-tip{
    padding:14px;
  }
  .draft-option-btn{
    width:100%;
    text-align:left;
    border-radius:14px;
  }
}

/* ===== textbook concept addon ===== */
.textbook-concept-section{
  margin-top:14px;
}
.textbook-concept-card{
  border:1px solid var(--line);
  border-radius:20px;
  background:linear-gradient(180deg,#ffffff 0%,#fbfcff 100%);
  padding:20px;
  box-shadow:0 10px 24px rgba(15,23,42,.05);
}
.textbook-concept-kicker{
  display:inline-flex;
  align-items:center;
  padding:6px 12px;
  border-radius:999px;
  background:var(--accent-soft);
  color:var(--accent);
  font-size:.82rem;
  font-weight:800;
  margin-bottom:12px;
}
.textbook-concept-title{
  margin:0 0 8px;
  font-size:1.35rem;
  line-height:1.4;
}
.textbook-concept-desc{
  margin:0 0 14px;
  color:var(--muted);
  line-height:1.7;
}
.textbook-block{
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  padding:16px;
  margin-top:14px;
}
.textbook-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:10px;
}
.textbook-head h3{
  margin:0;
  font-size:1rem;
}
.textbook-guide{
  color:var(--muted);
  font-size:.86rem;
  font-weight:800;
}
.textbook-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.textbook-btn{
  border:1px solid #dbe3f4;
  background:#fff;
  color:var(--text);
  padding:10px 14px;
  border-radius:999px;
  font:inherit;
  font-weight:800;
  cursor:pointer;
}
.textbook-btn.active{
  background:var(--primary);
  color:#fff;
  border-color:var(--primary);
}
.textbook-empty,
.textbook-selected-subject{
  color:var(--muted);
  line-height:1.7;
}
.textbook-selection-summary{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.textbook-chip{
  display:inline-flex;
  align-items:center;
  padding:8px 12px;
  border-radius:999px;
  background:#f3f7ff;
  border:1px solid #d7e4ff;
  font-weight:800;
}
@media (max-width:760px){
  .textbook-concept-card,
  .textbook-block{
    padding:14px;
  }
  .textbook-head{
    flex-direction:column;
    align-items:flex-start;
  }
  .textbook-btn{
    width:100%;
    text-align:left;
    border-radius:14px;
  }
}


/* ===== textbook concept addon v2 ===== */
.textbook-concept-section{
  margin-top:14px;
}
.textbook-concept-card{
  border:1px solid var(--line);
  border-radius:20px;
  background:linear-gradient(180deg,#ffffff 0%,#fbfcff 100%);
  padding:20px;
  box-shadow:0 10px 24px rgba(15,23,42,.05);
}
.textbook-concept-kicker{
  display:inline-flex;
  align-items:center;
  padding:6px 12px;
  border-radius:999px;
  background:var(--accent-soft);
  color:var(--accent);
  font-size:.82rem;
  font-weight:800;
  margin-bottom:12px;
}
.textbook-concept-title{
  margin:0 0 8px;
  font-size:1.35rem;
  line-height:1.4;
}
.textbook-concept-desc{
  margin:0 0 14px;
  color:var(--muted);
  line-height:1.7;
}
.textbook-block{
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  padding:16px;
  margin-top:14px;
}
.textbook-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:10px;
}
.textbook-head h3{
  margin:0;
  font-size:1rem;
}
.textbook-guide{
  color:var(--muted);
  font-size:.86rem;
  font-weight:800;
}
.textbook-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.textbook-btn{
  border:1px solid #dbe3f4;
  background:#fff;
  color:var(--text);
  padding:10px 14px;
  border-radius:999px;
  font:inherit;
  font-weight:800;
  cursor:pointer;
}
.textbook-btn.active{
  background:var(--primary);
  color:#fff;
  border-color:var(--primary);
}
.textbook-empty,
.textbook-selected-subject{
  color:var(--muted);
  line-height:1.7;
}
.textbook-selection-summary{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.textbook-chip{
  display:inline-flex;
  align-items:center;
  padding:8px 12px;
  border-radius:999px;
  background:#f3f7ff;
  border:1px solid #d7e4ff;
  font-weight:800;
}
@media (max-width:760px){
  .textbook-concept-card,
  .textbook-block{
    padding:14px;
  }
  .textbook-head{
    flex-direction:column;
    align-items:flex-start;
  }
  .textbook-btn{
    width:100%;
    text-align:left;
    border-radius:14px;
  }
}

/* ===== textbook concept addon v2.1 safe fix ===== */
.textbook-concept-section{
  margin-top:14px;
}
.textbook-concept-card{
  border:1px solid var(--line);
  border-radius:20px;
  background:linear-gradient(180deg,#ffffff 0%,#fbfcff 100%);
  padding:20px;
  box-shadow:0 10px 24px rgba(15,23,42,.05);
}
.textbook-concept-kicker{
  display:inline-flex;
  align-items:center;
  padding:6px 12px;
  border-radius:999px;
  background:var(--accent-soft);
  color:var(--accent);
  font-size:.82rem;
  font-weight:800;
  margin-bottom:12px;
}
.textbook-concept-title{
  margin:0 0 8px;
  font-size:1.35rem;
  line-height:1.4;
}
.textbook-concept-desc{
  margin:0 0 14px;
  color:var(--muted);
  line-height:1.7;
}
.textbook-block{
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  padding:16px;
  margin-top:14px;
}
.textbook-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:10px;
}
.textbook-head h3{
  margin:0;
  font-size:1rem;
}
.textbook-guide{
  color:var(--muted);
  font-size:.86rem;
  font-weight:800;
}
.textbook-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.textbook-btn{
  border:1px solid #dbe3f4;
  background:#fff;
  color:var(--text);
  padding:10px 14px;
  border-radius:999px;
  font:inherit;
  font-weight:800;
  cursor:pointer;
}
.textbook-btn.active{
  background:var(--primary);
  color:#fff;
  border-color:var(--primary);
}
.textbook-empty,
.textbook-selected-subject{
  color:var(--muted);
  line-height:1.7;
}
.textbook-selection-summary{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.textbook-chip{
  display:inline-flex;
  align-items:center;
  padding:8px 12px;
  border-radius:999px;
  background:#f3f7ff;
  border:1px solid #d7e4ff;
  font-weight:800;
}
@media (max-width:760px){
  .textbook-concept-card,
  .textbook-block{
    padding:14px;
  }
  .textbook-head{
    flex-direction:column;
    align-items:flex-start;
  }
  .textbook-btn{
    width:100%;
    text-align:left;
    border-radius:14px;
  }
}


/* ===== textbook reason major-readable v3.1 ===== */
.textbook-reason-box{
  border:1px solid var(--line);
  border-radius:16px;
  background:#fbfcff;
  padding:16px;
}
.reason-card{
  display:grid;
  gap:12px;
}
.reason-topline{
  display:inline-flex;
  width:max-content;
  padding:6px 10px;
  border-radius:999px;
  background:#eef3ff;
  color:var(--primary);
  font-size:.8rem;
  font-weight:800;
}
.reason-title{
  margin:0;
  font-size:1.05rem;
  line-height:1.45;
}
.reason-lead{
  margin:0;
  color:var(--text);
  line-height:1.7;
}
.reason-grid--major{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.reason-mini-card{
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  padding:12px;
}
.reason-mini-label{
  font-size:.82rem;
  font-weight:800;
  color:var(--primary);
  margin-bottom:8px;
}
.reason-mini-card p,
.reason-example p{
  margin:0;
  line-height:1.7;
  color:var(--text);
}
.reason-chip-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.reason-chip{
  display:inline-flex;
  align-items:center;
  padding:7px 11px;
  border-radius:999px;
  background:#f3f7ff;
  border:1px solid #d7e4ff;
  font-size:.92rem;
  font-weight:800;
  color:var(--text);
}
.muted-chip{
  color:var(--muted);
  font-weight:700;
}
.reason-example{
  border-radius:14px;
  background:var(--primary-soft);
  padding:12px;
}
@media (max-width:980px){
  .reason-grid--major{grid-template-columns:1fr;}
}


.reason-major-summary{
  margin:12px 0 14px;
  padding:12px 14px;
  border:1px solid #dfe7ff;
  border-radius:14px;
  background:#f7f9ff;
}
.reason-chip-list--highlight .reason-chip{
  background:#eef3ff;
  border-color:#cfd9ff;
  font-weight:700;
}


.reason-example--simple{
  margin-top:12px;
  background:#f8faff;
  border:1px solid #d7e3ff;
}

/* assessment-keyword bridge v1 */
.assessment-data-basis-card{
  margin:18px 0;
  padding:18px;
  border:1px solid rgba(40,80,120,.18);
  border-radius:16px;
  background:rgba(245,249,253,.92);
  line-height:1.75;
}
.assessment-data-basis-card .record-card-label{
  margin-bottom:8px;
}
.assessment-data-basis-card .content-intro{
  margin:8px 0 0;
  font-size:.92rem;
}
