*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#1B2430;background:#F6F7F9}
nav{background:#fff;border-bottom:1px solid #D9DEE5;padding:0 32px;min-height:64px;display:flex;align-items:center;gap:24px}
nav a,.back{color:#0F766E;font-weight:600;text-decoration:none}.grow{flex:1}#who{font-size:14px;color:#5B6675}
main{max-width:1400px;margin:0 auto;padding:24px 32px}
.btn{min-height:44px;padding:0 16px;border:1px solid #C5CCD6;background:#fff;border-radius:8px;font:600 14px inherit;color:#1B2430;cursor:pointer}
.pri{background:#0F766E;border-color:#0F766E;color:#fff}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.drop{border:2px dashed #9AA5B4;border-radius:12px;background:#fff;min-height:130px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;margin-bottom:16px}
.drop.over{border-color:#0F766E;background:#E6F4F1}
.box{background:#fff;border:1px solid #D9DEE5;border-radius:12px;overflow-x:auto}
table{width:100%;border-collapse:collapse}th,td{padding:12px 16px;text-align:left;border-bottom:1px solid #E3E7EC;font-size:14px}
th{font-size:12px;color:#5B6675;text-transform:uppercase;letter-spacing:.04em}
.b{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}
.not_extracted,.unreviewed,.reject{background:#EEF0F3;color:#4B5563}.processing,.add,.warn{background:#FFF1D6;color:#7A4A00}
.extracted,.edit{background:#E4EEFB;color:#1D4F91}.reviewed,.accept{background:#DDF3E4;color:#17603A}.failed{background:#FBE3E3;color:#9B1C1C}
.m{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:#5B6675}.muted{color:#5B6675;font-size:13px}
.split{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap}
.split iframe{flex:1 1 480px;min-width:320px;height:85vh;border:1px solid #D9DEE5;border-radius:12px;background:#fff}
.feats{flex:1 1 520px;min-width:320px;display:flex;flex-direction:column;gap:12px}
.card{background:#fff;border:1px solid #D9DEE5;border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:8px}
.card.ed{border:2px solid #0F766E}.head{display:flex;gap:8px;align-items:center}.head .b{margin-left:auto}
textarea{font:inherit;padding:10px;border:1px solid #9AA5B4;border-radius:8px;resize:vertical;width:100%}
details{font-size:13px;color:#5B6675}mark{background:#C7DDF7}
.llm-bar{display:flex;align-items:center;gap:10px;background:#F1F4F8;padding:6px 14px;border-radius:10px;border:1px solid #D9DEE5}
.llm-selector-group{display:flex;align-items:center;gap:6px}
.llm-label{font-size:12px;font-weight:600;color:#5B6675}
.llm-select{min-height:30px;padding:2px 8px;font-size:12px;font-weight:600;border:1px solid #C5CCD6;border-radius:6px;background:#fff;color:#1B2430;cursor:pointer}
.llm-select:focus{outline:2px solid #0F766E}
.btn-sm{min-height:30px;padding:0 10px;font-size:12px;border-radius:6px}
.btn-danger{background:#FBE3E3;border-color:#F5B7B7;color:#9B1C1C}
.btn-danger:hover{background:#F7CECE}

/* --- Stepper review screen --- */
.stepbar{background:#fff;border-bottom:1px solid #E3E7EC;padding:14px 32px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.split2{display:flex;gap:24px;padding:24px 32px;align-items:flex-start;flex-wrap:wrap}
.textp{background:#fff;border:1px solid #D9DEE5;border-radius:12px;padding:24px;line-height:1.75;font-size:15px;max-height:72vh;overflow-y:auto;white-space:pre-wrap}
.dotsrow{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto;max-width:360px}
.dot{width:9px;height:9px;border-radius:50%;background:#C5CCD6;display:inline-block;cursor:pointer}
.dot.done{background:#17603A}.dot.warn{background:#D99A2B}.dot.cur{outline:2px solid #0F766E;outline-offset:2px}
.btn:disabled{opacity:.5;cursor:not-allowed}
select{min-height:44px;border:1px solid #C5CCD6;border-radius:8px;padding:0 10px;font:inherit;background:#fff}

/* --- PDF preview modal --- */
.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,32,.55);display:none;align-items:center;justify-content:center;z-index:50;padding:24px}
.modal{background:#fff;border-radius:12px;padding:20px;max-width:900px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,.3)}
#pdfCanvas{display:block;margin:12px auto 0;border:1px solid #D9DEE5;max-width:100%;height:auto}

/* --- LangExtract Visualizer styles --- */
.lx-panel-container{display:flex;flex-direction:column;gap:10px}
.lx-legend-box{background:#fff;border:1px solid #D9DEE5;border-radius:10px;padding:10px 14px;font-size:12px;line-height:1.6}
.lx-legend{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.lx-label{display:inline-block;padding:2px 8px;border-radius:4px;color:#111;font-weight:600;font-size:11px;white-space:nowrap}
.lx-highlight{position:relative;border-radius:3px;padding:1px 2px;cursor:pointer;transition:background-color .15s,outline .15s}
.lx-highlight:hover{filter:brightness(.92)}
.lx-highlight .lx-tooltip{
  visibility:hidden;opacity:0;transition:opacity .2s ease-in-out;
  background:#1B2430;color:#fff;text-align:left;border-radius:6px;
  padding:6px 10px;position:absolute;z-index:1000;bottom:125%;left:50%;
  transform:translateX(-50%);font-size:12px;max-width:320px;white-space:normal;
  box-shadow:0 4px 12px rgba(0,0,0,.25);pointer-events:none;line-height:1.4
}
.lx-highlight:hover .lx-tooltip{visibility:visible;opacity:1}
.lx-current-highlight{
  outline:3px solid #E11D48 !important;
  outline-offset:2px;
  border-bottom:3px solid #E11D48 !important;
  font-weight:700 !important;
  animation:lx-pulse 1.2s infinite alternate;
}
@keyframes lx-pulse{
  0%{box-shadow:0 0 0 0 rgba(225,29,72,.45)}
  100%{box-shadow:0 0 0 7px rgba(225,29,72,0)}
}
.lx-text-window{
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
  white-space:pre-wrap;
  word-break:break-word;
}


