/* JagdIQ – mündliche KI-Prüfung */
.oral-shell{
  width:min(100vw,432px);
  min-height:100dvh;
  margin:0 auto;
  overflow-y:auto;
  color:var(--green,#0b4a38);
  background:
    radial-gradient(circle at 82% 3%,rgba(255,255,255,.24),transparent 25%),
    linear-gradient(180deg,#f6e5d0 0%,#eed7ba 100%);
}
.oral-intro,.oral-session,.oral-evaluation,.oral-summary{
  width:100%;
  min-height:100dvh;
  box-sizing:border-box;
  margin:0 auto;
  padding:max(18px,env(safe-area-inset-top)) 15px max(28px,calc(env(safe-area-inset-bottom) + 20px));
}
.oral-topbar,.oral-session-head{
  display:grid;
  grid-template-columns:44px minmax(0,1fr) 44px;
  align-items:center;
  gap:10px;
  margin-bottom:15px;
}
.oral-topbar{grid-template-columns:44px minmax(0,1fr)}
.oral-topbar>div,.oral-session-head>div{min-width:0}
.oral-topbar span,.oral-session-head span,.oral-kicker{
  display:block;
  color:#9a711d;
  font-size:7px;
  font-weight:900;
  letter-spacing:1.15px;
}
.oral-topbar h1{
  margin:3px 0 0;
  font-family:Georgia,serif;
  font-size:27px;
  line-height:1;
}
.oral-session-head strong{
  display:block;
  margin-top:3px;
  font-family:Georgia,serif;
  font-size:16px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.oral-back,.oral-speak{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.78);
  border-radius:50%;
  background:rgba(255,249,241,.54);
  color:var(--green,#0b4a38);
  box-shadow:0 7px 18px rgba(86,60,37,.08),inset 0 1px 0 rgba(255,255,255,.92);
}
.oral-back svg,.oral-speak svg{
  width:21px;
  height:21px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.oral-hero{
  display:grid;
  gap:12px;
  padding:20px 17px;
  border:1px solid rgba(255,255,255,.8);
  border-radius:28px;
  background:rgba(255,249,241,.57);
  box-shadow:0 10px 25px rgba(91,62,37,.08),inset 0 1px 0 rgba(255,255,255,.92);
}
.oral-hero h2{
  margin:0;
  font-family:Georgia,serif;
  font-size:28px;
  line-height:1.08;
}
.oral-hero p,.oral-note p,.oral-summary>p{
  margin:0;
  color:#6f6960;
  font-size:11px;
  line-height:1.48;
}
.oral-facts{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:7px;
}
.oral-facts>div{
  padding:11px 7px;
  border-radius:17px;
  background:rgba(235,224,202,.55);
  text-align:center;
}
.oral-facts strong,.oral-facts span{display:block}
.oral-facts strong{font-family:Georgia,serif;font-size:23px}
.oral-facts span{margin-top:2px;color:#746e65;font-size:8px}
.oral-note{
  display:grid;
  gap:5px;
  margin:12px 0;
  padding:15px;
  border:1px solid rgba(255,255,255,.75);
  border-radius:23px;
  background:rgba(255,249,241,.52);
}
.oral-note strong{font-family:Georgia,serif;font-size:15px}
.oral-primary,.oral-secondary{
  width:100%;
  min-height:50px;
  border-radius:17px;
  font:inherit;
  font-weight:900;
}
.oral-primary{
  border:0;
  background:linear-gradient(180deg,#08704d 0%,#07583c 100%);
  color:#fff;
  box-shadow:0 10px 20px rgba(9,97,63,.16);
}
.oral-secondary{
  margin-top:9px;
  border:1px solid rgba(11,74,56,.15);
  background:rgba(255,249,241,.52);
  color:var(--green,#0b4a38);
}
.oral-primary:disabled,.oral-secondary:disabled{opacity:.48}
.oral-loading{
  min-height:100dvh;
  display:grid;
  place-items:center;
  align-content:center;
  gap:13px;
  padding:24px;
  text-align:center;
}
.oral-loading>span{
  width:34px;height:34px;
  border:3px solid rgba(11,74,56,.15);
  border-top-color:var(--green,#0b4a38);
  border-radius:50%;
  animation:oral-spin .8s linear infinite;
}
.oral-loading strong{font-family:Georgia,serif}
@keyframes oral-spin{to{transform:rotate(360deg)}}
.oral-error{
  min-height:100dvh;
  display:grid;
  place-items:center;
  align-content:center;
  gap:12px;
  padding:24px;
  text-align:center;
  box-sizing:border-box;
}
.oral-error>div{
  width:70px;height:70px;
  display:grid;place-items:center;
  border-radius:23px;
  background:rgba(255,249,241,.58);
  font-family:Georgia,serif;
  font-size:34px;
  color:#9a711d;
}
.oral-error h1{margin:0;font-family:Georgia,serif;font-size:28px}
.oral-error p{max-width:300px;margin:0;color:#6f6960;font-size:11px;line-height:1.4}
.oral-progress{
  height:5px;
  margin:0 2px 14px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(11,74,56,.1);
}
.oral-progress i{display:block;height:100%;border-radius:inherit;background:var(--green,#0b4a38)}
.oral-question-card,.oral-recorder-card,.oral-transcript-wrap,.oral-eval-grid article,.oral-summary-list article{
  border:1px solid rgba(255,255,255,.78);
  background:rgba(255,249,241,.56);
  box-shadow:0 9px 22px rgba(91,62,37,.07);
}
.oral-question-card{
  display:grid;
  gap:11px;
  padding:16px;
  border-radius:24px;
}
.oral-question-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.oral-question-meta>span{
  color:#9a711d;
  font-size:7px;
  font-weight:900;
  letter-spacing:1px;
}
.oral-question-meta small{color:#746e65;font-size:8px}
.oral-question-card h1{
  margin:0;
  font-family:Georgia,serif;
  font-size:clamp(21px,5.6vw,27px);
  line-height:1.13;
}
.oral-support-options{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  padding-top:3px;
}
.oral-support-options>span{
  width:100%;
  color:#746e65;
  font-size:7px;
  font-weight:900;
  letter-spacing:.8px;
}
.oral-support-options small{
  padding:6px 8px;
  border-radius:999px;
  background:rgba(235,224,202,.55);
  color:#665f57;
  font-size:8px;
}
.oral-recorder-card{
  display:grid;
  justify-items:center;
  gap:8px;
  margin-top:12px;
  padding:17px;
  border-radius:23px;
  text-align:center;
}
.oral-recorder-icon{
  width:52px;height:52px;
  display:grid;place-items:center;
  border-radius:18px;
  background:rgba(11,74,56,.08);
}
.oral-recorder-icon svg,.oral-record svg{
  width:23px;height:23px;
  fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;
}
.oral-recorder-card h2{margin:0;font-family:Georgia,serif;font-size:20px}
.oral-recorder-card>p{margin:0;color:#6f6960;font-size:9.5px;line-height:1.4}
.oral-record{
  width:100%;
  min-height:50px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-top:3px;
  border:0;
  border-radius:17px;
  background:linear-gradient(180deg,#08704d 0%,#07583c 100%);
  color:#fff;
  font:inherit;
  font-weight:900;
}
.oral-record.is-recording{background:linear-gradient(180deg,#9a4f42 0%,#7f3d34 100%)}
.oral-record.is-recording>span{width:10px;height:10px;border-radius:2px;background:#fff}
.oral-record-meta{
  width:100%;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  text-align:left;
}
.oral-record-meta strong{font-size:8px;white-space:nowrap}
.oral-status{color:#746e65;font-size:8px;line-height:1.35}
.oral-status.is-recording{color:#8d443a}.oral-status.is-error{color:#9b3f36}.oral-status.is-ready{color:#0b6949}
.oral-transcript-wrap{
  display:grid;
  gap:8px;
  margin-top:12px;
  padding:15px;
  border-radius:21px;
}
.oral-transcript-wrap[hidden]{display:none}
.oral-transcript-wrap label{
  color:#746e65;
  font-size:8px;
  font-weight:900;
  letter-spacing:.8px;
}
.oral-transcript-wrap textarea{
  width:100%;
  min-height:125px;
  box-sizing:border-box;
  resize:vertical;
  border:1px solid rgba(11,74,56,.12);
  border-radius:14px;
  padding:12px 13px;
  background:rgba(255,255,255,.52);
  color:var(--green,#0b4a38);
  font:inherit;
  font-size:12px;
  line-height:1.45;
  outline:none;
}
.oral-transcript-wrap textarea:focus{
  border-color:rgba(11,74,56,.42);
  box-shadow:0 0 0 3px rgba(11,74,56,.06);
}
.oral-transcript-wrap small{color:#746e65;font-size:8px}
.oral-evaluation,.oral-summary{
  display:grid;
  justify-items:center;
  align-content:start;
  gap:11px;
  padding-top:max(30px,env(safe-area-inset-top));
}
.oral-score-ring{
  --oral-score:0deg;
  width:126px;height:126px;
  display:grid;place-items:center;
  border-radius:50%;
  background:conic-gradient(var(--green,#0b4a38) var(--oral-score),rgba(71,63,55,.09) 0);
  padding:7px;
  box-sizing:border-box;
}
.oral-score-ring>div{
  width:100%;height:100%;
  display:grid;place-content:center;
  text-align:center;
  border-radius:50%;
  background:#f2ddc4;
}
.oral-score-ring strong{font-family:Georgia,serif;font-size:30px;line-height:1}
.oral-score-ring span{margin-top:4px;color:#746e65;font-size:8px}
.oral-score-ring--large{width:148px;height:148px}
.oral-evaluation h1,.oral-summary h1{margin:0;font-family:Georgia,serif;font-size:27px;text-align:center}
.oral-feedback{max-width:360px;margin:0;color:#6f6960;font-size:10px;line-height:1.48;text-align:center}
.oral-eval-grid{
  width:100%;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.oral-eval-grid article{
  padding:13px;
  border-radius:18px;
}
.oral-eval-grid small,.oral-followup-preview small{
  color:#9a711d;
  font-size:7px;
  font-weight:900;
  letter-spacing:.9px;
}
.oral-eval-grid p{margin:6px 0 0;color:#665f57;font-size:9px;line-height:1.4}
.oral-followup-preview{
  width:100%;
  box-sizing:border-box;
  display:grid;
  gap:5px;
  padding:14px;
  border:1px solid rgba(11,74,56,.12);
  border-radius:18px;
  background:rgba(197,218,188,.42);
}
.oral-followup-preview strong{font-family:Georgia,serif;font-size:16px;line-height:1.3}
.oral-summary-list{
  width:100%;
  display:grid;
  gap:8px;
  margin:7px 0;
}
.oral-summary-list article{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:7px;
  padding:12px 13px;
  border-radius:18px;
}
.oral-summary-list article>div{display:flex;gap:9px;min-width:0}
.oral-summary-list article>div>span{
  width:28px;height:28px;flex:0 0 28px;
  display:grid;place-items:center;
  border-radius:10px;
  background:rgba(11,74,56,.07);
  font-size:8px;font-weight:900;
}
.oral-summary-list article>div>div{display:grid;gap:2px;min-width:0}
.oral-summary-list strong{font-size:10px}
.oral-summary-list small{
  color:#746e65;
  font-size:8px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.oral-summary-list b{font-family:Georgia,serif;font-size:18px}
.oral-summary-list p{grid-column:1/-1;margin:0;color:#746e65;font-size:8.5px;line-height:1.35}
@media(max-width:380px){
  .oral-hero h2{font-size:25px}
  .oral-question-card h1{font-size:21px}
  .oral-eval-grid{grid-template-columns:1fr}
}


/* Phase 6 · Mündlich ↔ Bibliothek */
.oral-library-links{
  width:100%;
  box-sizing:border-box;
  display:grid;
  gap:9px;
  padding:12px;
  border:1px solid rgba(255,255,255,.78);
  border-radius:18px;
  background:rgba(255,249,241,.56);
}
.oral-library-links[hidden]{display:none}
.oral-library-links-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.oral-library-links-head>div{display:grid;gap:2px;min-width:0}
.oral-library-links-head small{
  color:#9a711d;
  font-size:7px;
  font-weight:900;
  letter-spacing:.9px;
}
.oral-library-links-head strong{
  font-family:Georgia,serif;
  font-size:14px;
}
.oral-library-links-head>span{
  padding:5px 7px;
  border-radius:999px;
  background:rgba(11,74,56,.07);
  font-size:7px;
  font-weight:900;
}
.oral-library-link-list{display:grid;gap:6px}
.oral-library-link-list button{
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,1fr) 18px;
  align-items:center;
  gap:7px;
  padding:8px 9px;
  border:1px solid rgba(11,74,56,.08);
  border-radius:13px;
  background:rgba(255,255,255,.45);
  color:inherit;
  text-align:left;
}
.oral-library-link-list button>span{display:grid;gap:2px;min-width:0}
.oral-library-link-list strong{
  overflow:hidden;
  font-size:9px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.oral-library-link-list small{
  display:-webkit-box;
  overflow:hidden;
  color:#746e65;
  font-size:7.5px;
  line-height:1.3;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}
.oral-library-link-list i{
  font-family:Georgia,serif;
  font-size:20px;
  font-style:normal;
}
