:root{
  --navy:#111c33; --navy-2:#18243f; --navy-3:#22314f;
  --ink:#131a26; --muted:#5d6b82; --line:#e2e7ef;
  --bg:#f5f7fb; --card:#fff;
  --accent:#2f6df0; --accent-dark:#2457c8;
  --good:#0f9d63; --warn:#b7791f; --warn-bg:#fdf6e7;
  --radius:12px;
  --shadow:0 1px 2px rgba(16,24,40,.05), 0 8px 24px rgba(16,24,40,.07);
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; display:flex; background:var(--bg); color:var(--ink);
  font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
h1{font-size:22px; margin:0 0 4px; letter-spacing:-.01em}
h2{font-size:16px; margin:0}
h3{font-size:12px; margin:22px 0 8px; text-transform:uppercase;
   letter-spacing:.08em; color:var(--muted)}
p{margin:0; color:var(--muted)}
.hidden{display:none !important}

/* ── sidebar ─────────────────────────────────────────────────── */
.sidebar{
  width:268px; flex:0 0 268px; background:var(--navy); color:#dbe3f0;
  display:flex; flex-direction:column; padding:22px 16px;
}
.brand{display:flex; gap:11px; align-items:center; padding:0 6px 22px}
.brand-mark{
  width:36px; height:36px; border-radius:9px; background:var(--accent);
  color:#fff; display:grid; place-items:center; font-weight:700; font-size:14px;
  letter-spacing:.02em;
}
.brand-name{font-weight:650; color:#fff; font-size:15px}
.brand-sub{font-size:11.5px; color:#8ea0c0}

.steps{display:flex; flex-direction:column; gap:4px}
.step{
  display:flex; align-items:center; gap:11px; width:100%; text-align:left;
  padding:11px 12px; border:0; border-radius:10px; background:transparent;
  color:#b8c6de; cursor:pointer; font:inherit; transition:background .15s;
}
.step:hover:not(:disabled){background:var(--navy-2)}
.step:disabled{opacity:.42; cursor:default}
.step.active{background:var(--navy-3); color:#fff}
.step-dot{
  width:9px; height:9px; border-radius:50%; flex:0 0 9px;
  background:#42557a; box-shadow:0 0 0 3px rgba(66,85,122,.22);
}
.step.active .step-dot{background:var(--accent); box-shadow:0 0 0 3px rgba(47,109,240,.28)}
.step.done .step-dot{background:var(--good); box-shadow:0 0 0 3px rgba(15,157,99,.22)}
.step-body{display:flex; flex-direction:column; flex:1; min-width:0}
.step-title{font-size:14px; font-weight:550}
.step-note{font-size:11.5px; color:#8093b3; overflow:hidden; text-overflow:ellipsis;
           white-space:nowrap}
.step.active .step-note{color:#a9bcdc}
.step-check{color:var(--good); font-size:14px; opacity:0; transition:opacity .2s}
.step.done .step-check{opacity:1}

.sidebar-foot{margin-top:auto; padding-top:18px; border-top:1px solid #23304c}
.claimant-chip{display:flex; gap:10px; align-items:center; padding:4px 6px}
.claimant-name{font-size:13.5px; color:#fff; font-weight:550}
.claimant-claim{font-size:11px; color:#8093b3; font-variant-numeric:tabular-nums}

/* ── main ────────────────────────────────────────────────────── */
.main{flex:1; min-width:0; display:flex; flex-direction:column; overflow:hidden}
.panel{flex:1; min-height:0; display:flex; flex-direction:column; padding:26px 30px 0}
.panel-head{padding-bottom:18px; flex:0 0 auto}
.panel-head.row{display:flex; justify-content:space-between; align-items:flex-start; gap:24px}
.panel-head p{font-size:13.5px; max-width:62ch}

/* ── period list ─────────────────────────────────────────────── */
/* its own scroll region: .main hides overflow so the chat and review panes can
   manage theirs, and with more than four weeks the list ran off the screen */
.period-list{display:flex; flex-direction:column; gap:11px; max-width:660px;
  flex:1 1 auto; min-height:0; overflow-y:auto; padding:2px 6px 28px 2px}
.period-list > *{flex:0 0 auto}   /* scroll, never squash the cards or pack groups */
.period{
  display:flex; align-items:center; gap:16px; padding:16px 18px; background:var(--card);
  border:1px solid var(--line); border-radius:var(--radius); cursor:pointer;
  text-align:left; font:inherit; color:inherit; transition:border-color .15s, box-shadow .15s;
}
.period:hover{border-color:#c3cede; box-shadow:var(--shadow)}
.period-avatar{
  width:38px; height:38px; flex:0 0 38px; border-radius:50%; background:var(--navy-3);
  color:#fff; display:grid; place-items:center; font-size:13px; font-weight:650;
}
.period-main{flex:1; min-width:0}
.period-who{font-weight:650; font-size:14.5px; display:flex; align-items:center; gap:8px}
.period-combo{
  font-size:10.5px; font-weight:700; letter-spacing:.06em; color:var(--muted);
  background:#eef1f6; padding:2px 7px; border-radius:5px; font-variant-numeric:tabular-nums;
}
.period-persona{font-size:11px; color:#9aa8bf; margin-top:4px}
.period-label{font-size:12.5px; color:var(--muted); font-variant-numeric:tabular-nums}
.period-dates{font-size:12.5px; color:var(--muted); font-variant-numeric:tabular-nums}
.period-scope{font-size:12px; color:var(--accent); margin-top:5px; font-weight:550}
.period-scope.muted{color:#9aa8bf; font-weight:400}
.period-q{color:var(--muted); font-weight:400; margin-left:8px}

.tag{
  font-size:11px; font-weight:600; padding:4px 10px; border-radius:999px;
  letter-spacing:.02em; white-space:nowrap;
}
.tag-action{background:var(--warn-bg); color:var(--warn)}
.tag-done{background:#eaf6f0; color:var(--good)}
.period-go{color:var(--muted); font-size:18px}

/* ── chat ────────────────────────────────────────────────────── */
.progress{width:190px; flex:0 0 auto}
.progress-label{font-size:11.5px; color:var(--muted); margin-bottom:6px; text-align:right}
.progress-track{height:6px; background:var(--line); border-radius:999px; overflow:hidden}
.progress-fill{height:100%; width:0; background:var(--accent); border-radius:999px;
               transition:width .45s cubic-bezier(.2,.7,.3,1)}

.chat-wrap{flex:1; min-height:0; display:flex; gap:22px; padding-bottom:14px}
.chat{
  flex:1; min-width:0; overflow-y:auto; padding:20px 22px; background:var(--card);
  border:1px solid var(--line); border-radius:var(--radius);
  display:flex; flex-direction:column; gap:16px;
}
.msg{display:flex; gap:11px; max-width:76%; animation:rise .28s ease both}
.msg.user{align-self:flex-end; flex-direction:row-reverse}
@keyframes rise{from{opacity:0; transform:translateY(7px)} to{opacity:1; transform:none}}
.avatar{
  width:31px; height:31px; flex:0 0 31px; border-radius:50%; display:grid;
  place-items:center; font-size:11.5px; font-weight:650; color:#fff; margin-top:2px;
}
.avatar-bot{background:var(--navy-3)}
.avatar-user{background:var(--accent)}
.bubble{
  padding:11px 14px; border-radius:13px; background:#f1f4f9; font-size:14.5px;
  border-top-left-radius:4px; white-space:pre-wrap; word-break:break-word;
}
.msg.user .bubble{background:var(--accent); color:#fff;
                  border-top-left-radius:13px; border-top-right-radius:4px}
.msg-meta{font-size:10.5px; color:var(--muted); margin-top:5px; letter-spacing:.03em}
.msg.user .msg-meta{text-align:right}
.typing{display:flex; gap:4px; padding:14px}
.typing span{width:6px; height:6px; border-radius:50%; background:#9aa8bf;
             animation:blink 1.3s infinite}
.typing span:nth-child(2){animation-delay:.18s}
.typing span:nth-child(3){animation-delay:.36s}
@keyframes blink{0%,60%,100%{opacity:.28} 30%{opacity:1}}

.bubble-actions{display:flex; gap:8px; margin-top:9px; flex-wrap:wrap}
.btn-inline-upload{
  display:inline-flex; align-items:center; gap:7px; padding:8px 13px; border:0;
  border-radius:9px; background:var(--accent); color:#fff; font:inherit; font-size:13px;
  font-weight:600; cursor:pointer;
}
.btn-inline-upload:hover{background:var(--accent-dark)}
.btn-inline-skip{
  padding:8px 12px; border:1px solid var(--line); border-radius:9px; background:var(--card);
  color:var(--muted); font:inherit; font-size:12.5px; cursor:pointer;
}
.btn-inline-skip:hover{color:var(--ink); border-color:#c3cede}

/* ── documents ───────────────────────────────────────────────── */
.docs{
  width:252px; flex:0 0 252px; background:var(--card); border:1px solid var(--line);
  border-radius:var(--radius); padding:16px; display:flex; flex-direction:column;
  overflow-y:auto;
}
.docs-head{display:flex; justify-content:space-between; align-items:center}
.docs-hint{font-size:11.5px; margin:7px 0 12px; line-height:1.45}
.doc-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px}
.doc{
  display:flex; align-items:center; gap:9px; padding:9px 10px; border:1px solid var(--line);
  border-radius:9px; background:#fbfcfe; animation:rise .25s ease both;
}
.doc-icon{
  width:26px; height:26px; flex:0 0 26px; border-radius:6px; background:#e8eefb;
  color:var(--accent); display:grid; place-items:center; font-size:10px; font-weight:700;
}
.doc-body{flex:1; min-width:0}
.doc-name{font-size:12.5px; font-weight:550; overflow:hidden; text-overflow:ellipsis;
          white-space:nowrap}
.doc-meta{font-size:10.5px; color:var(--muted)}
.doc-del{
  border:0; background:transparent; color:#9aa8bf; cursor:pointer; font-size:17px;
  line-height:1; padding:2px 4px; border-radius:5px;
}
.doc-del:hover{color:#d0455b; background:#fdeef0}
.doc-empty{font-size:12px; color:#9aa8bf; padding:10px 2px}
.doc-list.compact .doc{background:#fff}

/* ── composer ────────────────────────────────────────────────── */
.composer{
  display:flex; gap:10px; align-items:center; padding:14px 0 22px; flex:0 0 auto;
}
.composer input[type=text]{
  flex:1; padding:13px 16px; border:1px solid var(--line); border-radius:11px;
  font:inherit; background:var(--card); outline:none; transition:border-color .15s;
}
.composer input[type=text]:focus{border-color:var(--accent)}
.composer input[type=text]:disabled{background:#eef1f6; color:#9aa8bf}
.btn-clip{
  width:44px; height:44px; flex:0 0 44px; border:1px solid var(--line); background:var(--card);
  border-radius:11px; color:var(--muted); cursor:pointer; display:grid; place-items:center;
}
.btn-clip:hover{color:var(--accent); border-color:var(--accent)}

/* ── buttons ─────────────────────────────────────────────────── */
.btn-primary,.btn-send{
  border:0; background:var(--accent); color:#fff; padding:12px 20px; border-radius:11px;
  font:inherit; font-weight:600; cursor:pointer; transition:background .15s;
}
.btn-primary:hover,.btn-send:hover{background:var(--accent-dark)}
.btn-primary:disabled,.btn-send:disabled{background:#c2cee3; cursor:not-allowed}
.btn-ghost{
  border:1px solid var(--line); background:var(--card); color:var(--ink);
  padding:9px 15px; border-radius:9px; font:inherit; font-size:13px; cursor:pointer;
}
.btn-ghost:hover{border-color:#c3cede; background:#f7f9fc}
.btn-close{border:0; background:transparent; font-size:26px; line-height:1; color:var(--muted);
           cursor:pointer; padding:0 6px}
.btn-close:hover{color:var(--ink)}

/* ── modal ───────────────────────────────────────────────────── */
.modal-backdrop{
  position:fixed; inset:0; background:rgba(17,28,51,.5); backdrop-filter:blur(2px);
  display:grid; place-items:center; padding:24px; z-index:50; animation:fade .2s ease both;
}
@keyframes fade{from{opacity:0} to{opacity:1}}
.modal{
  background:var(--card); border-radius:16px; width:min(680px,100%);
  max-height:min(86vh,860px); display:flex; flex-direction:column; overflow:hidden;
  box-shadow:0 24px 64px rgba(16,24,40,.28); animation:pop .26s cubic-bezier(.2,.8,.3,1) both;
}
.modal.narrow{width:min(420px,100%)}
@keyframes pop{from{opacity:0; transform:translateY(14px) scale(.985)} to{opacity:1; transform:none}}
.modal-head{
  display:flex; justify-content:space-between; align-items:flex-start; gap:16px;
  padding:22px 26px 16px; border-bottom:1px solid var(--line);
}
.modal-head p{font-size:12.5px}
.modal-body{padding:20px 26px; overflow-y:auto; flex:1}
.modal-body.center{text-align:center; padding:34px 30px}
.modal-body h3:first-of-type{margin-top:18px}
.review-lead{font-size:13.5px; background:#f4f7fd; border:1px solid #e0e8f8;
             padding:11px 13px; border-radius:9px; color:#41546f}
.modal-foot{
  padding:16px 26px 20px; border-top:1px solid var(--line); background:#fbfcfe;
  display:flex; flex-direction:column; gap:14px;
}
.attest{display:flex; gap:10px; align-items:flex-start; font-size:13px; cursor:pointer;
        line-height:1.45}
.attest input{margin-top:2px; width:16px; height:16px; accent-color:var(--accent);
              cursor:pointer; flex:0 0 16px}
.modal-actions{display:flex; gap:10px; justify-content:flex-end}

.summary{margin:0; display:grid; grid-template-columns:minmax(150px,34%) 1fr; gap:1px;
         background:var(--line); border:1px solid var(--line); border-radius:10px;
         overflow:hidden}
.summary dt{background:#fbfcfe; padding:10px 13px; font-size:12.5px; color:var(--muted);
            font-weight:550}
.summary dd{background:var(--card); padding:10px 13px; margin:0; font-size:13.5px}

.summary dd.val-missing{color:var(--warn)}
.val-note{display:block; font-size:11.5px; color:var(--muted); margin-top:3px;
          font-style:italic}

.elig{width:100%; border-collapse:collapse; border:1px solid var(--line);
      border-radius:10px; overflow:hidden; font-size:13.5px}
.elig td{padding:10px 13px; border-bottom:1px solid var(--line)}
.elig tr:last-child td{border-bottom:0}
.elig td:first-child{color:var(--muted); font-size:12.5px}
.elig td:last-child{text-align:right; font-weight:600; width:74px}

.tick{width:54px; height:54px; margin:0 auto 14px; border-radius:50%; background:#eaf6f0;
      color:var(--good); display:grid; place-items:center; font-size:26px}
.modal-body.center h2{margin-bottom:7px}
.modal-body.center p{font-size:13.5px; margin-bottom:18px}
.receipt{display:grid; grid-template-columns:auto 1fr; gap:7px 16px; text-align:left;
         font-size:12.5px; background:#fbfcfe; border:1px solid var(--line);
         border-radius:9px; padding:13px 15px; margin:0 0 20px}
.receipt dt{color:var(--muted)}
.receipt dd{margin:0; font-weight:550; font-variant-numeric:tabular-nums}

@media (max-width:1000px){
  .docs{display:none}
  .sidebar{width:74px; flex:0 0 74px; padding:18px 10px}
  .brand-name,.brand-sub,.step-body,.step-check,.claimant-name,.claimant-claim{display:none}
  .step{justify-content:center}
}

/* ── test packs ──────────────────────────────────────────────── */
.pack-section{margin-top:18px; padding-top:14px; border-top:1px solid var(--line)}
.pack-section p{font-size:13px; color:var(--muted); margin:4px 0 0; max-width:62ch}
.pack-group{flex:0 0 auto; border:1px solid var(--line); border-radius:var(--radius);
  background:var(--card); padding:4px 10px}
.pack-group > summary{cursor:pointer; padding:10px 4px; font-weight:550; font-size:14px}
.pack-group > .period.pack{margin:0 0 8px; width:100%; box-shadow:none}
.pack-hint{font-size:12.5px; color:var(--muted); margin:6px 0 0}
.pack-hint a{color:var(--accent)}
.pack-hint code{font-size:11.5px}

/* ── adjudicator view ────────────────────────────────────────── */
.done-actions{display:flex; gap:10px; justify-content:center; flex-wrap:wrap}
.adj{flex:1 1 auto; min-height:0; overflow-y:auto; padding:2px 8px 40px 2px;
  display:flex; flex-direction:column; gap:16px; max-width:1020px}
.adj > *{flex:0 0 auto}
.adj-route{display:grid; grid-template-columns:repeat(4, 1fr); gap:1px; background:var(--line);
  border:1px solid var(--line); border-radius:var(--radius); overflow:hidden}
.adj-route > div{background:var(--card); padding:13px 15px; display:flex; flex-direction:column; gap:2px}
.adj-route span, .adj-metrics span{font-size:11px; text-transform:uppercase; letter-spacing:.07em; color:var(--muted)}
.adj-route b{font-size:15px; text-transform:capitalize}
.adj-route em, .adj-metrics em{font-style:normal; font-size:12px; color:var(--muted)}
.route-review{border-color:#e6c878}
.adj-card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:18px 20px}
.adj-card > summary{cursor:pointer; list-style:none}
.adj-card > summary h2{display:inline}
.adj-card-head{display:flex; justify-content:space-between; gap:16px; align-items:flex-start}
.adj-card h3{margin:18px 0 8px}
.adj-code{font-size:11.5px; color:var(--muted); font-weight:400}
.verdict{font-size:12.5px; font-weight:650; padding:6px 12px; border-radius:999px; white-space:nowrap}
.v-inelig{background:#fdecea; color:#a1261a}
.v-ok{background:#e7f6ee; color:#0d7a4c}
.v-none{background:#eef1f6; color:var(--muted)}
.adj-metrics{display:grid; grid-template-columns:repeat(4, 1fr); gap:10px; margin-top:14px}
.adj-metrics > div{background:#f6f8fb; border-radius:9px; padding:10px 12px; display:flex; flex-direction:column}
.adj-metrics b{font-size:15px; text-transform:capitalize}
.adj-reason{color:var(--ink); line-height:1.6; font-size:14px}
.adj-quote{margin:0; padding:10px 14px; border-left:3px solid var(--accent); background:#f5f8ff;
  font-size:13.5px; color:var(--ink)}
.adj-scroll{overflow-x:auto}
.adj-table{width:100%; border-collapse:collapse; font-size:13px}
.adj-table th{text-align:left; font-size:11px; text-transform:uppercase; letter-spacing:.06em;
  color:var(--muted); padding:6px 8px; border-bottom:1px solid var(--line)}
.adj-table td{padding:8px; border-bottom:1px solid #f0f2f6; vertical-align:top}
.chip{font-size:10.5px; font-weight:650; padding:2px 7px; border-radius:5px; background:#eef1f6;
  text-transform:capitalize}
.chip-ESTABLISHED{background:#e7f6ee; color:#0d7a4c}
.chip-NOT_PROVIDED{background:#fdf6e7; color:var(--warn)}
.adj-cite{border-bottom:1px solid #f0f2f6; padding:6px 0}
.adj-cite summary{cursor:pointer; font-size:13.5px}
.adj-cite p{font-size:13px; margin:6px 0 4px 14px; color:var(--ink)}
.adj-list{margin:0; padding-left:18px; font-size:13.5px; color:var(--ink)}
.adj-list li{margin:4px 0}
.adj-warn{background:var(--warn-bg); border:1px solid #f0dca8; border-radius:10px; padding:10px 14px;
  font-size:13.5px; color:#6b4a10}
.adj-warn ul{margin:6px 0 0; padding-left:18px}
.adj-exempt{background:#e7f6ee; border:1px solid #b9e2cc; border-radius:10px; padding:10px 14px;
  margin-top:12px; font-size:13.5px}
.adj-exempt p{color:var(--ink); margin:4px 0 0}
.adj-turn{padding:8px 0; border-bottom:1px solid #f0f2f6}
.adj-turn p{color:var(--ink); font-size:13.5px; margin:2px 0}
.adj-turn.me p{color:var(--accent-dark)}
.adj-json{max-height:420px; overflow:auto; background:#0f1728; color:#d6e2f5; font-size:11.5px;
  padding:12px; border-radius:8px}

/* ── client feedback: per-question drawer and end-of-conversation rating ── */
.btn-feedback{
  display:inline-flex; align-items:center; gap:5px; border:1px solid #cddbfa; background:#eef3fe;
  color:var(--accent); font:inherit; font-size:11px; font-weight:650; letter-spacing:.02em;
  padding:4px 10px 4px 8px; border-radius:999px; cursor:pointer; flex:0 0 auto;
  transition:background .15s,border-color .15s,color .15s;
}
.btn-feedback:hover{background:#e2ebfd; border-color:#a9c1f7}
.btn-feedback.given{background:#eaf6f0; border-color:#bcdfcb; color:var(--good)}
.btn-feedback.given:hover{background:#ddf0e6; border-color:#9fd4b6}
.btn-close{border:0; background:transparent; font-size:26px; line-height:1; color:var(--muted);
           cursor:pointer; padding:0 6px}
.btn-close:hover{color:var(--ink)}
.conv-feedback{
  text-align:left; background:#fbfcfe; border:1px solid var(--line); border-radius:9px;
  padding:14px 16px; margin:0 0 20px;
}
.cf-title{font-size:13px; font-weight:600; color:var(--ink); margin:0 0 9px}
.cf-thumbs{display:flex; gap:10px}
.cf-thumb{
  flex:1; display:flex; align-items:center; justify-content:center; gap:8px;
  padding:8px 12px; border-radius:9px; border:1px solid var(--line); background:var(--card);
  font:inherit; font-size:13px; font-weight:550; color:var(--muted); cursor:pointer;
  transition:border-color .15s, background .15s, color .15s;
}
.cf-thumb:hover{border-color:#c3cede; background:#f7f9fc}
.cf-thumb.cf-good.active{border-color:var(--good); background:#eaf6f0; color:var(--good)}
.cf-thumb.cf-bad.active{border-color:var(--warn); background:var(--warn-bg); color:var(--warn)}
.cf-detail{margin-top:10px; display:flex; flex-direction:column; gap:8px}
.cf-detail-title{font-size:12.5px; font-weight:600; color:var(--ink); margin:0}
.cf-tags{flex-direction:row; flex-wrap:wrap; gap:6px 14px}
.cf-tags label{font-size:12.5px}
.cf-note{min-height:38px}
.cf-submit{align-self:flex-start}
.cf-thanks{margin-top:10px; font-size:13px; color:var(--good); font-weight:550}
.feedback-panel{
  position:fixed; top:0; right:0; bottom:0; width:min(440px,92vw); z-index:60;
  background:var(--card); box-shadow:-16px 0 44px rgba(16,24,40,.16), -1px 0 0 var(--line);
  display:flex; flex-direction:column;
  transform:translateX(100%); pointer-events:none;
  transition:transform .26s cubic-bezier(.2,.8,.3,1);
}
.feedback-panel.open{transform:translateX(0); pointer-events:auto}
.feedback-head{
  display:flex; justify-content:space-between; align-items:flex-start; gap:14px;
  padding:20px 22px 16px; border-bottom:1px solid var(--line); flex:0 0 auto;
}
.feedback-head h2{font-size:15.5px; line-height:1.4}
.feedback-head-actions{display:flex; align-items:center; gap:4px; flex:0 0 auto}
.fb-question{
  font-size:13px; color:var(--ink); background:#f6f8fb; border-bottom:1px solid var(--line);
  padding:12px 22px; line-height:1.5; flex:0 0 auto;
}
.feedback-form{flex:1; min-height:0; overflow-y:auto; padding:20px 22px; display:flex;
  flex-direction:column; gap:22px}
.fb-block{display:flex; flex-direction:column; gap:9px}
.fb-q-title{margin:0; text-transform:none; letter-spacing:0; font-size:13.5px;
  font-weight:650; color:var(--ink)}
.fb-hint{font-size:11.5px; color:var(--muted); background:#f6f8fb; border-radius:8px;
  padding:9px 11px; line-height:1.5; margin:0}
.fb-hint b{color:#5d6b82}
.fb-select{
  width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:9px; font:inherit;
  font-size:13.5px; background:var(--card); color:var(--ink); outline:none;
}
.fb-select:focus{border-color:var(--accent)}
.fb-checks{display:flex; flex-direction:column; gap:9px}
.fb-checks label{display:flex; align-items:center; gap:9px; font-size:13px; color:var(--ink);
  cursor:pointer}
.fb-checks input{width:15px; height:15px; accent-color:var(--accent); cursor:pointer; flex:0 0 15px}
.fb-textarea{
  width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:9px; font:inherit;
  font-size:13px; color:var(--ink); background:var(--card); outline:none; resize:vertical;
  min-height:60px; line-height:1.5;
}
.fb-textarea:focus{border-color:var(--accent)}
.fb-radio-row{display:flex; gap:20px}
.fb-radio-row label{display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:550;
  color:var(--ink); cursor:pointer}
.fb-radio-row input{width:15px; height:15px; accent-color:var(--accent); cursor:pointer}
.fb-followup{display:flex; flex-direction:column; gap:7px; margin-top:11px; font-size:12.5px;
  color:var(--muted)}
.feedback-foot{
  display:flex; justify-content:flex-end; gap:10px; padding:16px 22px 20px;
  border-top:1px solid var(--line); background:#fbfcfe; flex:0 0 auto;
}

/* ── custom claimant form ── */
.week-layout{display:flex; gap:24px; flex:1; min-height:0}
.scenario-card{
  flex:1 1 320px; min-width:0; max-width:400px; align-self:flex-start; max-height:100%; overflow-y:auto;
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:20px 22px 22px;
}
.scenario-head h2{font-size:15px}
.scenario-head p{font-size:12.5px; margin-top:6px; line-height:1.5}
.sf-section{display:flex; gap:12px; padding:16px 0; border-top:1px solid var(--line)}
.sf-section:first-of-type{margin-top:16px}
.sf-num{
  width:22px; height:22px; flex:0 0 22px; border-radius:50%; background:var(--navy-3);
  color:#fff; display:grid; place-items:center; font-size:11px; font-weight:650;
}
.sf-body{flex:1; min-width:0}
.sf-body h3{margin:0 0 12px; text-transform:none; letter-spacing:0; font-size:13.5px;
  font-weight:650; color:var(--ink)}
.sf-row{display:flex; flex-wrap:wrap; gap:10px}
.sf-field{flex:1 1 120px; min-width:0; display:flex; flex-direction:column; gap:6px;
  font-size:11.5px; color:var(--muted)}
.sf-field input,.sf-field select{
  width:100%; padding:9px 10px; border:1px solid var(--line); border-radius:9px; font:inherit;
  font-size:13px; background:var(--card); color:var(--ink); outline:none; transition:border-color .15s;
}
.sf-field input:focus,.sf-field select:focus{border-color:var(--accent)}
.sf-toggle-row{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap:8px 10px}
.sf-toggle-row.sub{padding:10px 0; border-top:1px solid #f0f2f6}
.sf-toggle-row.sub:first-of-type{border-top:0; padding-top:2px}
.sf-toggle-row span,.sf-inline{margin:0; font-size:13px; font-weight:550; color:var(--ink)}
.sf-toggle{display:flex; border:1px solid var(--line); border-radius:9px; overflow:hidden; flex:0 0 auto}
.sf-opt{
  border:0; background:var(--card); color:var(--muted); font:inherit; font-size:12px;
  font-weight:650; padding:6px 13px; cursor:pointer; transition:background .15s,color .15s;
}
.sf-opt + .sf-opt{border-left:1px solid var(--line)}
.sf-opt:hover:not(.active){background:#f7f9fc}
.sf-opt.active{color:#fff; background:var(--navy-3)}
.sf-opt.active[data-value="true"]{background:var(--good)}
.sf-foot{
  padding:16px 22px 22px; margin:2px -22px -22px; border-top:1px solid var(--line);
  position:sticky; bottom:-22px; background:var(--card);
}
.sf-foot .btn-primary{width:100%; text-align:center}

/* ── conversations held: list and transcript ─────────────────────────────── */
.side-extra{margin-top:8px; border-top:1px solid rgba(255,255,255,.08); padding-top:8px}

.review-list{display:flex; flex-direction:column; gap:10px; padding:20px 24px 28px}
.review-row{
  display:flex; align-items:center; gap:14px; width:100%; text-align:left;
  padding:14px 16px; background:var(--card); border:1px solid var(--line);
  border-left:3px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow); cursor:pointer; font:inherit; color:inherit;
}
.review-row:hover{border-color:var(--accent); border-left-color:var(--accent)}
.review-row.has-feedback{border-left-color:var(--good)}
.review-avatar{
  width:38px; height:38px; flex:0 0 38px; border-radius:50%;
  display:grid; place-items:center; background:var(--navy); color:#fff;
  font-size:13px; font-weight:600;
}
.review-main{flex:1; min-width:0}
.review-name{font-weight:600; display:flex; align-items:center; gap:8px}
.review-combo{
  font:11px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace; color:var(--muted);
  border:1px solid var(--line); border-radius:5px; padding:1px 5px;
}
.review-meta{font-size:13px; color:var(--muted); margin-top:2px}
.review-chips{display:flex; flex-wrap:wrap; gap:6px; margin-top:7px}
.review-when{font-size:12px; color:var(--muted); white-space:nowrap}

.chip{
  font-size:11px; padding:2px 8px; border-radius:20px; white-space:nowrap;
  border:1px solid var(--line); color:var(--muted); background:#fff;
}
.chip-fb{color:var(--good); border-color:rgba(15,157,99,.35); background:rgba(15,157,99,.08)}
.chip-ok{color:var(--good); border-color:rgba(15,157,99,.35)}
.chip-warn{color:var(--warn); border-color:rgba(183,121,31,.4); background:var(--warn-bg)}
.chip-none{opacity:.75}

.transcript{padding:20px 24px 40px; display:flex; flex-direction:column; gap:12px}
.tr-overall{
  background:rgba(15,157,99,.07); border:1px solid rgba(15,157,99,.3);
  border-radius:var(--radius); padding:14px 16px;
}
.tr-overall p{margin-top:6px; color:var(--ink)}
.tr-tags{display:flex; flex-wrap:wrap; gap:6px; margin-top:8px}

.tr-turn{
  background:var(--card); border:1px solid var(--line);
  border-left:3px solid var(--line); border-radius:var(--radius); padding:12px 16px;
}
.tr-claimant{background:#fbfcfe}
.tr-rated{border-left-color:var(--good); background:rgba(15,157,99,.05)}
.tr-head{display:flex; align-items:center; gap:8px; font-size:12px; color:var(--muted)}
.tr-head b{color:var(--ink); font-size:13px}
.tr-n{font:11px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace; color:var(--accent)}
.tr-tag{font:11px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace}
.tr-text{margin:6px 0 0; color:var(--ink); white-space:pre-wrap}
.tr-facts{margin-top:6px; font:11px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace; color:var(--muted)}

.fb-detail{margin-top:10px; border-top:1px dashed rgba(15,157,99,.4); padding-top:8px}
.fb-detail summary{
  cursor:pointer; font-size:12px; font-weight:600; color:var(--good);
  display:flex; gap:8px; align-items:baseline;
}
.fb-when{font-weight:400; color:var(--muted)}
.fb-dl{display:grid; grid-template-columns:150px 1fr; gap:4px 14px; margin:8px 0 0; font-size:13px}
.fb-dl dt{color:var(--muted)}
.fb-dl dd{margin:0}

/* ── feedback drawer: who is reviewing, and what the question was reacting to ── */
.fb-reviewer{
  display:flex; align-items:center; gap:8px; padding:10px 22px;
  border-bottom:1px solid var(--line); background:#fbfcfe; font-size:13px;
}
.fb-reviewer-label{color:var(--muted); white-space:nowrap}
.fb-input{
  flex:1; min-width:0; font:inherit; font-size:13px; padding:6px 9px;
  border:1px solid var(--line); border-radius:8px; background:#fff;
}
.fb-rev-role{flex:0 0 130px; font-size:13px; padding:6px 8px}
.fb-context:empty{display:none}
.fb-context{padding:12px 22px; border-bottom:1px solid var(--line); background:#f7f9fc}
.fb-ctx{display:grid; grid-template-columns:150px 1fr; gap:5px 12px; margin:0; font-size:12.5px}
.fb-ctx dt{color:var(--muted)}
.fb-ctx dd{margin:0; color:var(--ink)}
.fb-ctx code{font-size:11px; color:var(--muted)}
.fb-none{color:var(--warn)}
.fb-error{margin:0 auto 0 0; align-self:center; color:#b42318; font-size:13px}

/* ── expert review, preview ──────────────────────────────────────────────── */
.rv-card, .rv-panel{
  background:#fff; border:1px solid var(--line); border-left:3px solid var(--accent);
  border-radius:var(--radius); padding:14px 18px 12px; margin:4px 0 14px 46px;
  box-shadow:var(--shadow); font-size:13.5px;
}
.rv-panel{margin:16px 0 4px; border-left-color:var(--navy)}
.rv-claim{margin:0 0 18px}
.rv-loading{color:var(--muted); margin:6px 0}
.rv-head{display:flex; align-items:baseline; gap:10px; margin-bottom:10px}
.rv-head b{font-size:14px}
.rv-head span{color:var(--muted); font-size:12.5px}
.rv-who{display:flex; align-items:center; gap:8px; margin-bottom:8px; font-size:12.5px; color:var(--muted)}
.rv-who .fb-input{max-width:200px}
.rv-who .fb-select{width:auto; padding:6px 8px; font-size:12.5px}
.rv-sec{padding:10px 0; border-top:1px solid var(--line)}
.rv-sec h4{margin:0 0 7px; font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted)}
.rv-quote{margin:0; color:var(--ink); font-style:italic}
.rv-row{display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; padding:5px 0}
.rv-row-main{flex:1 1 260px; display:flex; flex-direction:column}
.rv-fact{color:var(--ink); font-weight:600; font-size:13px}
.rv-val{color:var(--muted); font-size:12.5px}
.rv-fix{flex:1 1 100%}
.rv-seg{display:inline-flex; border:1px solid var(--line); border-radius:8px; overflow:hidden; flex:0 0 auto}
.rv-seg button{
  font:inherit; font-size:12.5px; padding:6px 11px; background:#fff; color:var(--ink);
  border:0; border-right:1px solid var(--line); cursor:pointer;
}
.rv-seg button:last-child{border-right:0}
.rv-seg button:hover{background:#f3f6fb}
.rv-seg button.on{background:var(--navy); color:#fff}
.rv-seg button.good.on{background:var(--good)}
.rv-seg button.bad.on{background:#b42318}
.rv-when{margin-top:8px; display:flex; flex-direction:column; gap:8px}
.rv-chips{display:flex; flex-wrap:wrap; gap:6px 14px; font-size:12.5px}
.rv-chips label{display:flex; align-items:center; gap:5px}
.rv-hint{margin:6px 0; font-size:12px; color:var(--muted)}
.rv-link{background:none; border:0; padding:4px 0; color:var(--accent); font:inherit; font-size:12.5px; cursor:pointer}
.rv-missed-row{display:flex; gap:8px; margin-top:6px}
.rv-missed-row .fb-select{flex:0 0 240px}
.rv-foot{display:flex; justify-content:flex-end; gap:8px; padding-top:10px; border-top:1px solid var(--line)}
.rv-foot .btn-primary, .rv-foot .btn-ghost{padding:8px 14px; font-size:13px}
.rv-preview{margin:8px 0 0; font-size:11.5px; color:var(--warn)}
.rv-record details{margin-top:8px}
.rv-record summary{cursor:pointer; font-size:12.5px; color:var(--accent)}
.rv-record pre{
  margin:6px 0 0; padding:10px; background:#f6f8fb; border-radius:8px; font-size:11px;
  max-height:260px; overflow:auto; white-space:pre-wrap;
}
.rv-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); column-gap:24px}
.btn-feedback.rv-flag{color:#b42318; border-color:rgba(180,35,24,.35); background:#fef3f2}
.rv-switch{padding:10px 12px 4px; display:flex; flex-direction:column; gap:6px; font-size:12px;
  color:rgba(255,255,255,.6)}
.rv-seg-dark{border-color:rgba(255,255,255,.2)}
.rv-seg-dark button{background:transparent; color:rgba(255,255,255,.75); border-right-color:rgba(255,255,255,.2)}
.rv-seg-dark button.on{background:rgba(255,255,255,.16); color:#fff}
.rv-done-cta{background:#f7f9fc; border:1px solid var(--line); border-radius:var(--radius);
  padding:14px 16px; margin-top:12px; text-align:left}
.rv-done-cta p{margin:0 0 10px; font-size:13px}
.rv-when .rv-seg{align-self:flex-start}

/* ── sign-in ─────────────────────────────────────────────────────────────── */
.login-backdrop{position:fixed; inset:0; z-index:80; display:grid; place-items:center;
  background:linear-gradient(160deg, var(--navy) 0%, var(--navy-3) 100%)}
.login-card{width:min(380px, 92vw); background:#fff; border-radius:16px; padding:28px 28px 24px;
  box-shadow:0 20px 60px rgba(0,0,0,.35); display:flex; flex-direction:column; gap:12px}
.login-card .brand{display:flex; align-items:center; gap:10px; margin-bottom:6px}
.login-card .brand-name{color:var(--ink)}
.login-card .brand-sub{color:var(--muted)}
.login-card h1{margin:4px 0 0; font-size:20px}
.login-card p{font-size:13px}
.login-card label{display:flex; flex-direction:column; gap:5px; font-size:12.5px; color:var(--muted)}
.login-card input{font:inherit; font-size:14px; padding:9px 11px; border:1px solid var(--line);
  border-radius:8px; color:var(--ink)}
.login-card .btn-primary{margin-top:4px; padding:10px}
.signed-in{margin:10px 12px 0; padding:9px 10px; border-radius:10px; background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.75); font-size:12px; display:flex; align-items:center; justify-content:space-between; gap:8px}
.signed-in b{color:#fff; font-weight:600}
.btn-signout{background:none; border:1px solid rgba(255,255,255,.25); color:rgba(255,255,255,.8);
  border-radius:7px; padding:3px 8px; font:inherit; font-size:11.5px; cursor:pointer}
.btn-signout:hover{background:rgba(255,255,255,.1)}

/* ── review card: technical and quality groups ───────────────────────────── */
.rv-group{margin:12px 0 2px; padding:5px 10px; border-radius:7px; background:#f3f6fb;
  font-size:12px; color:var(--muted)}
.rv-group span{font-weight:700; color:var(--ink); text-transform:uppercase; letter-spacing:.06em}
.rv-open{margin:4px 0 8px; padding-left:18px; font-size:12.5px; line-height:1.55}
.rv-open li.rv-this{font-weight:600; color:var(--ink)}
.rv-said{border-top:0}
#signed-in-who{display:flex; flex-direction:column; min-width:0}
#signed-in-who b{white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
#signed-in-who span{font-size:11px; text-transform:capitalize}
.btn-signout{white-space:nowrap; flex:0 0 auto}

.rv-law{align-items:flex-start}
.rv-passage summary{cursor:pointer; font-size:12.5px; color:var(--muted); line-height:1.45; margin-top:3px}
.rv-passage p{margin:6px 0 0; font-size:12.5px; color:var(--ink); line-height:1.5}
.rv-ffq{margin-top:8px}
.rv-ffq summary{cursor:pointer; font-size:12.5px; color:var(--accent)}
.rv-ffq ul{margin:6px 0 0; padding-left:18px; font-size:12.5px; line-height:1.5}
.rv-sec > .fb-input{display:block; width:100%; margin-top:8px}
