/* German Studio — Schreiben module styles.
   Deliberately additive: this file only defines .gsx-w-* classes and
   reuses the palette variables already declared in exam.css, so it can
   never restyle an existing Lesen or Hören paper. */

.gsx-writing .gsx-w-part{
  margin-top:40px;
  padding-top:28px;
  border-top:1px solid var(--line);
}
.gsx-writing .gsx-w-part:first-of-type{border-top:none; padding-top:8px}

.gsx-writing .gsx-w-parth{
  font-family:"Newsreader",Georgia,serif;
  font-size:22px; font-weight:600; margin:0 0 6px; color:var(--ink);
}
.gsx-writing .gsx-w-instr{color:var(--muted); font-size:14.5px; margin:0 0 16px}

.gsx-writing .gsx-w-context,
.gsx-writing .gsx-w-situation{
  background:var(--soft);
  border:1px solid var(--line);
  border-left:3px solid var(--accent);
  border-radius:10px;
  padding:18px 20px;
  margin:0 0 20px;
}
.gsx-writing .gsx-w-context p:last-child,
.gsx-writing .gsx-w-situation p:last-child{margin-bottom:0}

/* --- Teil 1 form fields ---------------------------------------- */

.gsx-writing .gsx-w-form{
  display:grid; gap:12px;
  background:#fff; border:1px solid var(--line); border-radius:12px; padding:20px 22px;
}
.gsx-writing .gsx-w-field{
  display:grid;
  grid-template-columns:minmax(140px,32%) 1fr auto;
  align-items:center; gap:14px;
}
@media(max-width:600px){
  .gsx-writing .gsx-w-field{grid-template-columns:1fr; gap:6px}
}
.gsx-writing .gsx-w-field label{font-size:14px; font-weight:600; color:var(--ink)}
.gsx-writing .gsx-w-input{
  width:100%; font:inherit; font-size:15px; color:var(--ink);
  padding:9px 12px; border:1px solid var(--line-strong); border-radius:8px;
  background:#fff;
}
.gsx-writing .gsx-w-input:focus{outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent)}
.gsx-writing .gsx-w-input[readonly]{background:var(--soft); color:var(--muted)}
.gsx-writing .gsx-w-fmark{font-size:15px; font-weight:700; min-width:14px}

/* --- Teil 2 writing box ----------------------------------------- */

.gsx-writing .gsx-w-leit{
  list-style:none; margin:0 0 18px; padding:0;
  display:grid; gap:8px;
}
.gsx-writing .gsx-w-leit li{
  display:flex; align-items:flex-start; gap:10px;
  font-size:15px; color:var(--ink);
}
.gsx-writing .gsx-w-lpdot{
  flex:none; width:7px; height:7px; border-radius:50%;
  background:var(--accent); margin-top:8px;
}

.gsx-writing .gsx-w-text{
  width:100%; font:inherit; font-size:16px; line-height:1.7; color:var(--ink);
  padding:18px 20px; border:1px solid var(--line-strong); border-radius:12px;
  background:#fff; resize:vertical; min-height:220px;
}
.gsx-writing .gsx-w-text:focus{outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent)}
.gsx-writing .gsx-w-text[readonly]{background:var(--soft)}

.gsx-writing .gsx-w-count{
  margin-top:8px; font-size:13px; color:var(--muted);
  font-variant-numeric:tabular-nums;
}
.gsx-writing .gsx-w-target{color:var(--muted)}
.gsx-writing .gsx-w-err{color:var(--no-tx)}

/* --- Feedback panel --------------------------------------------- */

.gsx-w-feedback{display:none}
.gsx-w-feedback.show{display:block; margin-top:34px}

.gsx-w-fbsec{
  margin-top:26px; padding:24px 26px;
  background:#fff; border:1px solid var(--line); border-radius:14px;
}
.gsx-w-fbh{
  font-family:"Newsreader",Georgia,serif; font-size:20px; font-weight:600;
  margin:0 0 14px; color:var(--ink);
}
.gsx-w-fbsub{
  font-size:12px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--accent-deep); font-weight:700; margin:24px 0 10px;
}
.gsx-w-summary{
  margin:0 0 18px; font-size:15.5px; line-height:1.65; color:var(--ink);
  padding-left:14px; border-left:3px solid var(--accent);
}

/* Teil 1 field results */
.gsx-w-fields{list-style:none; margin:0; padding:0; display:grid; gap:8px}
.gsx-w-fields li{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:10px;
  padding:10px 14px; border-radius:8px; font-size:14.5px;
}
.gsx-w-fields li.ok{background:var(--ok-bg); color:var(--ok-tx)}
.gsx-w-fields li.no{background:var(--no-bg); color:var(--no-tx)}
.gsx-w-flabel{font-weight:600; min-width:130px}
.gsx-w-fgiven{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.gsx-w-fexp{margin-left:auto; font-size:13px; opacity:.85}
.gsx-w-ftol{margin-left:auto; font-size:13px; color:var(--ok-tx); opacity:.9}

/* Rubric criteria */
.gsx-w-crits{display:grid; gap:16px}
.gsx-w-crit{padding-bottom:2px}
.gsx-w-crithead{display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-bottom:6px}
.gsx-w-critname{font-size:15px; font-weight:600; color:var(--ink)}
.gsx-w-critname em{font-style:normal; font-weight:400; color:var(--muted); font-size:13.5px}
.gsx-w-critpts{font-variant-numeric:tabular-nums; font-weight:700; font-size:15px; color:var(--accent-deep)}
.gsx-w-critbar{height:7px; background:var(--soft); border-radius:999px; overflow:hidden}
.gsx-w-critbar span{display:block; height:100%; background:var(--accent); border-radius:999px; transition:width .5s ease}
.gsx-w-critnote{margin:8px 0 0; font-size:14px; color:var(--muted); line-height:1.55}

/* Leitpunkte coverage */
.gsx-w-lplist{list-style:none; margin:0; padding:0; display:grid; gap:7px}
.gsx-w-lplist li{padding:9px 14px; border-radius:8px; font-size:14.5px}
.gsx-w-lplist li.ok{background:var(--ok-bg); color:var(--ok-tx)}
.gsx-w-lplist li.partial{background:#fff6df; color:#76520f}
.gsx-w-lplist li.optional{background:#f2f3f5; color:#5f6368}
.gsx-w-lplist li.no{background:var(--no-bg); color:var(--no-tx)}

/* Corrections */
.gsx-w-corr{list-style:none; margin:0; padding:0; display:grid; gap:12px}
.gsx-w-corr li{
  padding:14px 16px; border:1px solid var(--line); border-radius:10px; background:var(--soft);
}
.gsx-w-corrtype{
  display:inline-block; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase;
  font-weight:700; color:var(--accent-deep); background:#fff;
  border:1px solid var(--line-strong); border-radius:999px; padding:2px 8px; margin-right:10px;
}
.gsx-w-corrwrong{text-decoration:line-through; color:var(--no-tx)}
.gsx-w-corrarrow{margin:0 8px; color:var(--muted)}
.gsx-w-corrright{font-weight:600; color:var(--ok-tx)}
.gsx-w-corrnote{margin:8px 0 0; font-size:13.5px; color:var(--muted); line-height:1.5}

.gsx-w-plain{margin:0; padding-left:20px; display:grid; gap:6px; font-size:14.5px; color:var(--ink)}

.gsx-w-aidisc{
  margin:22px 0 0; padding-top:16px; border-top:1px solid var(--line);
  font-size:12.5px; color:var(--muted); line-height:1.55;
}

/* Simple document table used inside Teil 1 context blocks
   (the part of the form that is already filled in for the student). */
.gsx-writing .gsx-w-doc{
  width:100%; border-collapse:collapse; margin:14px 0 0;
  background:#fff; border:1px solid var(--line); border-radius:8px;
}
.gsx-writing .gsx-w-doc td{
  padding:9px 14px; font-size:14.5px; border-bottom:1px solid var(--line);
}
.gsx-writing .gsx-w-doc tr:last-child td{border-bottom:none}
.gsx-writing .gsx-w-doc td:first-child{
  width:38%; color:var(--muted); font-weight:600;
}

/* B2 task choice */
.gsx-w-choicebox{margin:18px 0 16px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}
.gsx-w-choicehint{margin:0 0 12px;font-size:14px;color:var(--muted);line-height:1.5}
.gsx-w-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.gsx-w-choice{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line-strong);border-radius:9px;background:#fff;cursor:pointer;font-weight:600;color:var(--ink);transition:border-color .15s,box-shadow .15s,background .15s}
.gsx-w-choice:hover{border-color:var(--accent)}
.gsx-w-choice.selected{border-color:var(--accent);background:#fffaf0;box-shadow:0 0 0 2px rgba(185,139,47,.12)}
.gsx-w-choice input{margin:0;accent-color:var(--accent-deep)}
.gsx-w-choicepanel{margin:0 0 18px}
.gsx-w-choiceheading{font-family:"Newsreader",Georgia,serif;font-size:21px;font-weight:600;margin:0 0 10px;color:var(--ink)}
.gsx-w-choicepanel[hidden]{display:none!important}
@media (max-width:640px){.gsx-w-choices{grid-template-columns:1fr}}
