@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@500;600;700;800&display=swap');

:root{
  --ink:#0E2436; --ink-soft:#33475B; --paper:#EDF1F5; --wash:#E7ECF1; --card:#FFFFFF;
  --line:#E2E8EF; --line-2:#CED8E1; --muted:#5A6B7B; --muted-2:#8493A1;
  --green:#1F6E4C;--mint:#5FD09B; --green-soft:#E6F1EB; --green-line:#B8D6C7;
  --brick:#B0463A; --brick-soft:#F6E7E4; --slate:#8493A1; --slate-soft:#EAEEF2;
  --brass:#B08A3C; --brass-soft:#F3ECDC;
  --navy:#0B2239; --navy-hi:#164063;
  --radius:14px;
  --shadow:0 1px 2px rgba(14,36,54,.05),0 10px 30px rgba(14,36,54,.07);
  --shadow-lg:0 18px 50px rgba(14,36,54,.20);
  --display:"Plus Jakarta Sans","Inter",system-ui,sans-serif;
  --sans:"Inter",system-ui,-apple-system,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--sans);background:var(--paper);color:var(--ink);line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}
:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:4px}
.mono{font-family:var(--mono)}
.muted{color:var(--muted)}

.logo{display:flex;align-items:center;gap:10px;font-family:var(--display);font-size:20px;font-weight:700;letter-spacing:-.02em}
.logo .seal{width:29px;height:29px;border-radius:8px;background:linear-gradient(150deg,#2A855E,#1B5E41);display:grid;place-items:center;color:#fff;font-family:var(--display);font-weight:700;font-size:12.5px;box-shadow:inset 0 1px 0 rgba(255,255,255,.25)}
.tag{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#C9B078;border:1px solid rgba(201,176,120,.35);padding:3px 8px;border-radius:6px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;font-size:14px;padding:12px 20px;border-radius:10px;transition:.16s;letter-spacing:-.01em}
.btn-primary{background:var(--green);color:#fff;box-shadow:0 1px 2px rgba(14,36,54,.12),0 6px 16px rgba(31,110,76,.24)}
.btn-primary:hover{background:#1a5e41;box-shadow:0 2px 4px rgba(14,36,54,.14),0 10px 22px rgba(31,110,76,.30)}
.btn-primary:disabled{opacity:.6;cursor:default;box-shadow:none}
.btn-ghost{background:#fff;color:var(--ink);border:1px solid var(--line-2)}
.btn-ghost:hover{border-color:var(--ink-soft)}
.btn-new{border-color:var(--slate);color:var(--ink-soft)}
.btn-new:hover{border-color:var(--navy);color:var(--ink);background:var(--slate-soft)}
.btn-new:disabled{opacity:.55;cursor:default;border-color:var(--line-2);background:#fff}
.btn-block{width:100%}

.field{margin-bottom:15px}
.field label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-soft);margin-bottom:6px}
.field input,.field select{width:100%;padding:11px 13px;border:1px solid var(--line-2);border-radius:9px;font-size:14px;font-family:inherit;background:#fff;transition:.15s}
.field input:focus,.field select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}
.err{color:var(--brick);font-size:13px;min-height:18px;margin-bottom:6px}

/* ---- login ---- */
.auth-wrap{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}
.auth-left{background:linear-gradient(160deg,#0B2239 0%,#0E3050 55%,#123f60 100%);color:#fff;padding:54px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.auth-left:before{content:"";position:absolute;inset:0;background:
  linear-gradient(115deg,transparent 40%,rgba(255,255,255,.06) 46%,transparent 52%),
  linear-gradient(115deg,transparent 60%,rgba(255,255,255,.05) 66%,transparent 71%),
  radial-gradient(80% 60% at 100% 0,rgba(42,133,94,.30),transparent 60%)}
.auth-left>*{position:relative}
.auth-left .logo{color:#fff}
.auth-quote{max-width:24em}
.auth-quote p{font-family:var(--display);font-size:29px;font-weight:600;line-height:1.25;margin-bottom:16px;letter-spacing:-.02em}
.auth-quote .by{font-size:13px;color:#9FB2C4}
.auth-right{display:flex;align-items:center;justify-content:center;padding:40px;background:var(--card)}
.auth-card{width:100%;max-width:370px}
.auth-card h1{font-family:var(--display);font-size:30px;font-weight:700;margin-bottom:6px;letter-spacing:-.02em}
.auth-card .sub{color:var(--muted);font-size:14px;margin-bottom:24px}

/* ---- app shell ---- */
.app{display:grid;grid-template-columns:238px 1fr;min-height:100vh}
/* Grid items default to min-width:auto and will not shrink below their
   content, so one nowrap descendant can force the whole track wider than
   the viewport. This is what caused sideways scrolling on phones. */
.app>*{min-width:0}
.side{background:linear-gradient(178deg,#0B2239,#0D2B45);color:#AEBECD;padding:22px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow:hidden}
.side:before{content:"";position:absolute;inset:0;background:linear-gradient(125deg,transparent 55%,rgba(255,255,255,.035) 60%,transparent 66%);pointer-events:none}
.side>*{position:relative}
.side .logo{color:#fff;font-size:19px;padding:4px 8px 20px}
.nav-lbl{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#65798B;padding:16px 10px 8px}
.nav-item{display:flex;align-items:center;gap:11px;padding:10px 11px;border-radius:9px;font-size:14px;font-weight:500;color:#B7C5D2;transition:.14s;margin-bottom:2px}
.nav-item svg{opacity:.8}
/* collapsible sidebar rail */
.side-toggle{display:flex;align-items:center;gap:11px;width:100%;
padding:9px 11px;margin:2px 0 8px;border-radius:9px;color:#7D91A4;
font-family:inherit;font-size:12.5px;font-weight:500;transition:.14s}
.side-toggle:hover{background:rgba(255,255,255,.07);color:#fff}
.app.rail{grid-template-columns:64px 1fr}
.app.rail .side{padding:22px 9px}
.app.rail .nav-txt,.app.rail .nav-lbl,.app.rail .wordmark,
.app.rail .side .foot .nm,.app.rail .side .foot .rl,
.app.rail .side .tag{display:none}
.app.rail .nav-item,.app.rail .side-toggle{justify-content:center;
padding-left:0;padding-right:0;gap:0}
.app.rail .logo{justify-content:center;padding:4px 0 18px}
.app.rail .side .foot{justify-content:center;gap:0}
.app.rail .side .foot .out{margin-left:0}
@media(max-width:820px){
  /* the drawer owns the sidebar here; .app.rail would otherwise outrank .app */
  .app.rail{grid-template-columns:1fr}
  .side-toggle{display:none}
  .app.rail .nav-txt,.app.rail .nav-lbl,.app.rail .wordmark,
  .app.rail .side .foot .nm,.app.rail .side .foot .rl{display:block}
  .app.rail .nav-item{justify-content:flex-start;padding:12px 12px;gap:11px}
  .app.rail .side{padding:16px}
}
.nav-item:hover{background:rgba(255,255,255,.07);color:#fff}
.nav-item.active{background:linear-gradient(120deg,#2A855E,#1E6E4C);color:#fff;box-shadow:0 4px 14px rgba(31,110,76,.35)}
.nav-item.active svg{opacity:1}
.nav-item.soon{opacity:.45;cursor:default}
.nav-item.soon:hover{background:none;color:#B7C5D2}
.nav-item .s{margin-left:auto;font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:#65798B}
.side .foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.09);padding-top:14px;display:flex;align-items:center;gap:10px}
.side .foot .ava{width:34px;height:34px;border-radius:9px;background:linear-gradient(150deg,#2A855E,#1B5E41);color:#fff;display:grid;place-items:center;font-weight:700;font-size:12px;font-family:var(--display)}
.side .foot .nm{font-size:13px;color:#fff;font-weight:600;line-height:1.2}
.side .foot .rl{font-size:11px;color:#8497A8}
.side .foot .out{margin-left:auto;color:#8497A8;padding:6px;border-radius:7px}
.side .foot .out:hover{color:#fff;background:rgba(255,255,255,.09)}

.main{padding:32px 36px 64px;max-width:1180px}
.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px;gap:16px;flex-wrap:wrap}
.topbar .crumb{font-family:var(--mono);font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted-2)}
.topbar h1{font-family:var(--display);font-size:29px;font-weight:700;margin-top:5px;letter-spacing:-.025em}
.topbar .r{display:flex;gap:10px;align-items:center}
.delib-top{flex-wrap:nowrap}
.delib-top .tb-l{flex:1;min-width:0}
.delib-top .r{flex-shrink:0}
.ttl-row{display:flex;align-items:center;gap:8px;min-width:0}
.ttl-row h1{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ttl-edit{flex-shrink:0;margin-top:5px;padding:5px;border-radius:6px;color:var(--muted-2);transition:.13s;line-height:0}
.ttl-edit:hover{color:var(--green);background:var(--green-soft)}
@media(max-width:860px){.delib-top{flex-wrap:wrap}.ttl-row h1{white-space:normal}}
.pill{font-family:var(--mono);font-size:11px;padding:5px 11px;border-radius:20px;font-weight:500;display:inline-flex;align-items:center;gap:6px}
.pill.ok{background:var(--green-soft);color:var(--green)}
.pill.ok:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--green)}

/* ---- hero ---- */
.hero{position:relative;overflow:hidden;border-radius:18px;padding:38px 40px;margin-bottom:24px;color:#fff;
  background:linear-gradient(150deg,#0B2239 0%,#0E3050 55%,#123f60 100%)}
.hero:before{content:"";position:absolute;inset:0;background:
  linear-gradient(115deg,transparent 42%,rgba(255,255,255,.06) 48%,transparent 54%),
  linear-gradient(115deg,transparent 62%,rgba(255,255,255,.045) 68%,transparent 73%),
  radial-gradient(70% 90% at 100% 0,rgba(42,133,94,.28),transparent 60%)}
.hero>*{position:relative}
.hero h2{font-family:var(--display);font-size:30px;font-weight:700;letter-spacing:-.025em;line-height:1.15}
.hero h2 .accent{color:#5FD09B}
.hero p{font-size:14.5px;color:#B9CAD9;margin-top:10px;max-width:44em;line-height:1.6}
.hero .cta{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}
.hero .btn-ghost{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.22)}
.hero .btn-ghost:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.4)}

/* ---- feature cards ---- */
.feat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:24px}
.feat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);transition:.15s;display:block}
.feat:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--line-2)}
.feat.soon{opacity:.72}
.feat .fi{width:38px;height:38px;border-radius:10px;background:var(--green-soft);color:var(--green);display:grid;place-items:center;margin-bottom:13px}
.feat h4{font-family:var(--display);font-size:15.5px;font-weight:700;letter-spacing:-.01em;display:flex;align-items:center;gap:8px}
.feat .nw{font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;background:var(--brass-soft);color:#9a7530;padding:2px 7px;border-radius:5px}
.feat p{font-size:13px;color:var(--muted);margin-top:6px;line-height:1.5}

.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:22px}
.panel-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line)}
.panel-head h3{font-family:var(--display);font-size:17px;font-weight:700;letter-spacing:-.015em}
.panel-head p{font-size:13px;color:var(--muted);margin-top:2px}
.panel-body{padding:20px 22px}

.banner{background:linear-gradient(120deg,var(--green-soft),#fff);border:1px solid var(--green-line);border-radius:var(--radius);padding:22px 24px;margin-bottom:22px;display:flex;gap:14px;align-items:flex-start}
.banner .ic{width:40px;height:40px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;flex-shrink:0}
.banner h4{font-family:var(--display);font-size:16px;font-weight:700;margin-bottom:3px}
.banner p{font-size:13.5px;color:#3d6a52}
/* consultant list on a phone: wrap the row, scoped to this page by #sesswrap
   so the shared .sess-row used elsewhere is untouched */
@media(max-width:820px){
  .banner{padding:15px 16px;gap:11px}
  .banner>div{min-width:0}
  .banner h4{font-size:15px}
  #sesswrap .sess-row{flex-wrap:wrap;padding:12px 10px}
  /* flex-basis 0, not auto: under wrap the browser uses content width to
     decide whether an item fits, so auto bumped long names to their own
     line while short ones stayed beside the star. */
  #sesswrap .sess-main{flex:1 1 0;min-width:0}
  #sesswrap .sess-gen{flex:1 1 100%;max-width:none;margin-top:10px;
  white-space:nowrap;font-size:12.5px;padding:10px 12px}
  #sesswrap .badge{flex-shrink:0}
}

table{width:100%;border-collapse:collapse}
th{text-align:left;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);font-weight:500;padding:12px 8px;border-bottom:1px solid var(--line)}
td{padding:14px 8px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:middle}
tr:last-child td{border-bottom:none}
.u-cell{display:flex;align-items:center;gap:11px}
.u-ava{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-weight:700;font-size:12px;color:#fff;font-family:var(--display)}
.u-nm{font-weight:600;font-size:13.5px}.u-em{font-size:12px;color:var(--muted)}
.role{font-family:var(--mono);font-size:11px;padding:4px 9px;border-radius:6px;font-weight:500}
.role.admin{background:var(--brass-soft);color:var(--brass)}
.role.user{background:var(--green-soft);color:var(--green)}
.rowbtn{font-size:12.5px;font-weight:600;color:var(--brick);padding:6px 10px;border-radius:7px}
.rowbtn:hover{background:var(--brick-soft)}

@media(max-width:820px){
  .auth-wrap,.app{grid-template-columns:1fr}
  .auth-left{display:none}
  .main{padding:22px}
}
/* mobile navigation drawer */
.mnav{display:none;position:fixed;top:0;left:0;right:0;height:54px;
align-items:center;gap:10px;padding:0 12px;background:var(--navy);color:#fff;
z-index:70;box-shadow:0 1px 8px rgba(14,36,54,.18)}
.mnav-btn{width:40px;height:40px;display:grid;place-items:center;color:#fff;
border-radius:9px;flex-shrink:0}
.mnav-btn:active{background:rgba(255,255,255,.14)}
.mnav-title{font-family:var(--display);font-weight:700;font-size:16px;
letter-spacing:-.01em}
.nav-scrim{display:none;position:fixed;inset:0;background:rgba(11,34,57,.45);
z-index:65}
@media(max-width:820px){
  .mnav{display:flex}
  body.nav-open .nav-scrim{display:block}
  .side{display:flex;position:fixed;top:0;bottom:0;left:0;width:268px;
  max-width:82vw;height:auto;z-index:80;transform:translateX(-100%);
  transition:transform .22s ease;overflow-y:auto;padding-top:16px}
  body.nav-open .side{transform:none}
  body.nav-open{overflow:hidden}
  .main{padding:70px 16px 56px}
  /* comfortable tap targets on a phone */
  .side .nav-item{padding:12px 12px}
  .btn{padding:12px 18px}
}

/* ---- cases ---- */
.case-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.case-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);cursor:pointer;transition:.15s;display:flex;flex-direction:column;gap:10px;min-height:170px}
.case-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:var(--green-line)}
.case-tools{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.case-tools .ccount{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--muted-2)}
.case-list{display:flex;flex-direction:column;gap:6px}
.cl-row{position:relative;display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:11px 14px;cursor:pointer;transition:.13s}
.cl-row:hover{border-color:var(--green-line);box-shadow:var(--shadow)}
.cl-row .star{position:static;flex-shrink:0;order:-1}
.cl-main{flex:1;min-width:0}
.cl-name{font-family:var(--display);font-size:14.5px;font-weight:700;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cl-sub{font-family:var(--mono);font-size:11px;color:var(--muted-2);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cl-docs{font-family:var(--mono);font-size:11px;color:var(--muted-2);flex-shrink:0}
.cc-dates{display:flex;gap:12px;flex-wrap:wrap;font-family:var(--mono);font-size:10px;color:var(--muted-2);letter-spacing:.02em;margin-top:-4px}
.cl-date{font-family:var(--mono);font-size:11px;color:var(--muted-2);flex-shrink:0;min-width:82px;text-align:right}
/* cases Details view: column alignment. .clh not .cl-head, which is already used elsewhere. */
.clh{display:flex;align-items:center;gap:12px;padding:2px 15px 8px;font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted-2)}
.clh .clh-star{width:16px;flex-shrink:0}
.clh .cl-main{font-family:var(--mono);font-size:9.5px}
.clh .clh-type{width:132px;flex-shrink:0;text-align:center}
.cl-row .parea{width:132px;flex-shrink:0;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cl-docs{min-width:58px;text-align:right}
@media(max-width:820px){.clh .cl-date{display:none}}
@media(max-width:640px){.clh .clh-type{display:none}}
/* cases Details header: uniform type scale, roomier date columns */
.clh > *{font-family:var(--mono);font-size:10px;letter-spacing:.07em;text-transform:uppercase;font-weight:400}
.clh,.cl-row{gap:16px}
.cl-date{min-width:104px}
/* cases Details: clickable column headers */
.clh-btn{cursor:pointer;-webkit-user-select:none;user-select:none;transition:.12s}
.clh-btn:hover{color:var(--ink-soft)}
.clh-a{font-style:normal;margin-left:4px;color:var(--green)}
.cc-sep{color:var(--line-2)}
@media(max-width:820px){.cl-date{display:none}}
@media(max-width:640px){.cl-row .parea{display:none}}
.case-card h3{font-family:var(--display);font-size:18px;font-weight:700;line-height:1.2;letter-spacing:-.015em}
.case-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.parea{font-family:var(--mono);font-size:10.5px;letter-spacing:.02em;background:var(--slate-soft);color:#4d5f70;padding:3px 9px;border-radius:6px;font-weight:500}
.jur{font-size:12px;color:var(--muted)}
.facts-prev{font-size:13px;color:var(--muted);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cc-foot{margin-top:auto;font-size:12px;color:var(--muted-2);font-family:var(--mono);display:flex;align-items:center;gap:6px}
.empty{text-align:center;padding:60px 20px;color:var(--muted)}
.empty svg{color:var(--line-2);margin-bottom:12px}

/* ---- documents ---- */
.dropzone{border:1.5px dashed var(--line-2);border-radius:11px;padding:26px;text-align:center;cursor:pointer;transition:.15s;background:#fff;display:block}
.dropzone:hover,.dropzone.drag{border-color:var(--green);background:var(--green-soft)}
.dropzone .plus{width:34px;height:34px;border-radius:9px;background:var(--slate-soft);color:var(--muted);display:grid;place-items:center;margin:0 auto 8px}
.dropzone .t{font-size:13.5px;font-weight:600;color:var(--ink)}
.dropzone .s{font-size:11px;font-family:var(--mono);color:var(--muted-2);margin-top:4px}

.docrow{display:flex;align-items:center;gap:13px;padding:13px 0;border-bottom:1px solid var(--line)}
.docrow:last-child{border-bottom:none}
.docrow .pdf{width:34px;height:34px;border-radius:8px;background:var(--brick-soft);color:var(--brick);display:grid;place-items:center;font-family:var(--mono);font-size:9px;font-weight:600;flex-shrink:0}
.docrow .pdf.docx{background:#E4EDF6;color:#2F6FB0}
.docrow .pdf.txt{background:var(--slate-soft);color:var(--muted)}
.docrow .dn{font-size:14px;font-weight:600}
.docrow .dm{font-size:11.5px;color:var(--muted-2);font-family:var(--mono);margin-top:2px}
.docrow .right{margin-left:auto;display:flex;align-items:center;gap:10px}
.badge{font-family:var(--mono);font-size:11px;font-weight:500;padding:4px 9px;border-radius:20px;display:inline-flex;align-items:center;gap:5px}
.badge.green{background:var(--green-soft);color:var(--green)}
.badge.amber{background:var(--brass-soft);color:#9a7530}
.dup-warn{margin-top:9px;padding:10px 12px;border-radius:9px;background:var(--brass-soft);border:1px solid rgba(176,138,60,.35);font-size:12.5px;color:#7c5f27;line-height:1.5}
.dup-warn a{display:block;font-weight:700;color:#6b5120;text-decoration:underline;margin-top:4px}
.dup-warn em{display:block;margin-top:6px;font-style:normal;color:#9a7530;font-size:11.5px}
.badge.red{background:var(--brick-soft);color:var(--brick)}
.badge.gray{background:var(--slate-soft);color:var(--muted)}
.btn-mini{font-size:12px;font-weight:600;color:var(--ink);border:1px solid var(--line-2);border-radius:8px;padding:6px 11px;background:#fff}
.btn-mini:hover{background:var(--green);color:#fff;border-color:var(--green)}
.btn-mini:disabled{opacity:.6;cursor:default}
/* .btn-mini is also used on links now (View jurors), which are inline and underlined by default. */
a.btn-mini{display:inline-flex;align-items:center;text-decoration:none;line-height:1.2}
.x-btn{color:var(--muted-2);padding:5px;border-radius:6px;display:grid;place-items:center}
.x-btn:hover{color:var(--brick);background:var(--brick-soft)}

/* ---- modal ---- */
.modal-overlay{position:fixed;inset:0;background:rgba(11,34,57,.55);backdrop-filter:blur(2px);display:none;align-items:center;justify-content:center;padding:20px;z-index:100}
.modal-overlay.show{display:flex}
.modal{background:var(--card);border-radius:16px;box-shadow:var(--shadow-lg);width:100%;max-width:520px;max-height:90vh;overflow:auto}
.modal.wide{max-width:640px}
.modal-head{padding:20px 24px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}
.modal-head h3{font-family:var(--display);font-size:19px;font-weight:700;letter-spacing:-.015em}
.modal-body{padding:22px 24px}
.modal-foot{padding:16px 24px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end}
textarea{width:100%;padding:11px 13px;border:1px solid var(--line-2);border-radius:9px;font-size:14px;font-family:inherit;line-height:1.55;resize:vertical;min-height:110px}
textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}

/* ---- run a panel ---- */
.fld-lbl{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:7px;letter-spacing:.01em}
.sec-lbl{font-family:var(--display);font-size:17px;font-weight:700;color:var(--ink);letter-spacing:-.015em;margin-bottom:10px}
select{width:100%;padding:11px 13px;border:1px solid var(--line-2);border-radius:9px;font-size:14px;font-family:inherit;background:#fff;cursor:pointer}
select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}
.hint{font-size:12px;color:var(--muted-2);margin-top:7px;font-style:italic}
.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:9px;overflow:hidden}
.seg button{padding:9px 16px;font-size:13.5px;font-weight:600;color:var(--muted);background:#fff;border-right:1px solid var(--line-2)}
.seg button:last-child{border-right:none}
.seg button.on{background:var(--green);color:#fff}
.grid-2{display:grid;grid-template-columns:1.6fr 1fr;gap:18px;align-items:start}
@media (max-width:900px){.grid-2{grid-template-columns:1fr}}

.juror-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(144px,1fr));gap:12px}
.juror-card{border:1px solid var(--line);border-radius:12px;padding:14px;text-align:center;background:#fff;transition:.15s;cursor:pointer;position:relative}
.juror-card:hover{box-shadow:var(--shadow);border-color:var(--green-line);transform:translateY(-2px)}
.juror-card:after{content:"View";position:absolute;top:11px;left:11px;font-family:var(--mono);font-size:8.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2);opacity:0;transition:.15s}
.juror-card:hover:after{opacity:1}
.jc-ava{width:44px;height:44px;border-radius:50%;color:#fff;font-family:var(--display);font-size:14px;font-weight:700;display:grid;place-items:center;margin:0 auto 9px}
.jc-name{font-size:13.5px;font-weight:600;line-height:1.2}
.jc-sub{font-size:11px;color:var(--muted-2);font-family:var(--mono);margin-top:3px}
.jc-occ{font-size:12px;color:var(--muted);margin-top:6px;line-height:1.3}
.jc-lean{font-size:10.5px;color:var(--muted-2);margin-top:6px;padding:3px 8px;background:var(--wash);border-radius:12px;display:inline-block}

.stat-row{display:flex;gap:10px;margin-bottom:20px}
.stat{flex:1;text-align:center;background:var(--wash);border-radius:10px;padding:12px 6px}
.stat .sv{font-family:var(--display);font-size:22px;font-weight:700;color:var(--ink)}
.stat .sl{font-size:10.5px;color:var(--muted-2);margin-top:2px;text-transform:uppercase;letter-spacing:.04em}
.comp-lbl{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:18px 0 10px}
.crow{display:flex;align-items:center;gap:9px;margin-bottom:8px}
.crow .ck{width:120px;font-size:12px;color:var(--ink-soft);flex-shrink:0}
.crow .ctrack{flex:1;height:8px;background:var(--wash);border-radius:5px;overflow:hidden}
.crow .cfill{height:100%;border-radius:5px}
.crow .cv{width:22px;text-align:right;font-family:var(--mono);font-size:12px;color:var(--muted);flex-shrink:0}

.next-note{display:flex;align-items:center;gap:14px;background:var(--green-soft);border-radius:12px}
.next-note .t{font-family:var(--display);font-size:14px;font-weight:700;color:var(--green)}
.next-note .s{font-size:13px;color:var(--ink-soft);line-height:1.55;margin-top:3px}

/* ---- juror profile ---- */
.prof-head{display:flex;align-items:center;gap:15px;padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:18px}
.prof-ava{width:56px;height:56px;border-radius:50%;color:#fff;font-family:var(--display);font-size:18px;font-weight:700;display:grid;place-items:center;flex-shrink:0}
.prof-name{font-family:var(--display);font-size:20px;font-weight:700;letter-spacing:-.015em}
.prof-sub{font-size:12.5px;color:var(--muted);margin-top:2px}
.prof-pool{font-family:var(--mono);font-size:10px;letter-spacing:.04em;text-transform:uppercase;background:var(--slate-soft);color:#4d5f70;padding:3px 9px;border-radius:6px;margin-left:auto;flex-shrink:0}
.prof-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 22px;margin-bottom:6px}
.kv{display:flex;flex-direction:column;gap:2px;padding:7px 0;border-bottom:1px solid var(--line)}
.kv .k{font-size:10.5px;font-family:var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--muted-2)}
.kv .v{font-size:13.5px;color:var(--ink);font-weight:500}
.prof-sec{margin-top:20px}
.prof-sec .sh{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px}
.prof-list{list-style:none;display:flex;flex-direction:column;gap:8px}
.prof-list li{position:relative;padding-left:18px;font-size:13.5px;color:var(--ink-soft);line-height:1.5}
.prof-list li:before{content:"";position:absolute;left:2px;top:8px;width:6px;height:6px;border-radius:50%;background:var(--green-line)}
.att-row{display:flex;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}
.att-row .ak{width:150px;flex-shrink:0;color:var(--muted);text-transform:capitalize}
.att-row .av{color:var(--ink);font-weight:500}
.prof-voice{background:var(--wash);border-left:3px solid var(--green);border-radius:0 10px 10px 0;padding:12px 15px;font-size:13.5px;color:var(--ink-soft);font-style:italic;line-height:1.55}

/* ---- deliberation ---- */
.delib-grid{display:grid;grid-template-columns:262px 1fr 302px;gap:18px;align-items:start}
@media(max-width:1120px){.delib-grid{grid-template-columns:1fr}}
/* deliberation on one column: unstick the rails and lead with the chat */
@media(max-width:1120px){
  .col-stick{position:static;max-height:none;overflow:visible}
  .delib-grid > .delib-center{order:1}
  .delib-grid > .col-stick:first-child{order:2}
  .delib-grid > .col-stick:last-child{order:3}
  .delib-center{min-height:0}
  .transcript{min-height:200px;overflow-y:visible}
  .mpanel .panel-head{cursor:pointer;-webkit-user-select:none;user-select:none}
  .mpanel .mp-caret{display:flex;margin-left:auto;color:var(--muted-2);
  transition:transform .18s;flex-shrink:0}
  .mpanel.collapsed .mp-caret{transform:rotate(-90deg)}
  .mpanel.collapsed > .panel-body{display:none}
  .mpanel.collapsed .panel-head{border-bottom:none}
}
.mp-caret{display:none}
.col-stick{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow:auto}
.cf-name{font-family:var(--display);font-size:17px;font-weight:700;letter-spacing:-.01em;line-height:1.25}
.cf-lbl{font-size:10.5px;font-weight:700;color:var(--muted-2);text-transform:uppercase;letter-spacing:.06em;margin:18px 0 8px}
.cf-lbl.cf-tog{display:flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none}
.cf-lbl.cf-tog:hover{color:var(--ink-soft)}
.cf-caret{margin-left:auto;flex-shrink:0;transition:transform .18s;color:var(--muted-2)}
.cf-sec.collapsed .cf-caret{transform:rotate(-90deg)}
.cf-sec.collapsed .cf-body{display:none}
.cf-facts{font-size:12.5px;color:var(--ink-soft);line-height:1.55}
.cf-doc{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--ink-soft);padding:5px 0}
.cf-doc svg{color:var(--brick);flex-shrink:0}
.cf-doc span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cf-doc em{margin-left:auto;font-style:normal;font-family:var(--mono);font-size:10px;color:var(--muted-2);flex-shrink:0}
.roster-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);cursor:pointer}
.roster-row:last-child{border-bottom:none}
.roster-row:hover .rn{color:var(--green)}
.roster-row .ra{width:30px;height:30px;border-radius:50%;color:#fff;font-family:var(--display);font-size:11px;font-weight:700;display:grid;place-items:center;flex-shrink:0}
.roster-row .rn{font-size:13px;font-weight:600;line-height:1.15;transition:.12s}
.roster-row .ro{font-size:11px;color:var(--muted-2);line-height:1.2}

.delib-center{display:flex;flex-direction:column;min-height:calc(100vh - 130px)}
.transcript{flex:1;overflow-y:auto;padding-right:6px;min-height:340px}
.tr-empty{text-align:center;color:var(--muted);padding:60px 20px}
.tr-empty svg{color:var(--line-2);margin-bottom:12px}
.tr-empty p{font-size:14px;max-width:22em;margin:0 auto}
.tr-round{margin-bottom:26px}
.q-round{margin-bottom:14px}
.q-round .ql{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);margin-bottom:5px}
.q-round .qt{font-family:var(--display);font-size:17px;font-weight:600;letter-spacing:-.01em;color:var(--ink);line-height:1.35;padding-left:13px;border-left:3px solid var(--green)}
.resp-card{display:flex;gap:11px;padding:13px 14px;border:1px solid var(--line);border-radius:12px;margin-bottom:10px;background:#fff;box-shadow:0 1px 2px rgba(14,36,54,.03)}
.resp-card .ra{width:36px;height:36px;border-radius:50%;color:#fff;font-family:var(--display);font-size:12px;font-weight:700;display:grid;place-items:center;flex-shrink:0}
.rc-head{display:flex;align-items:center;gap:9px;margin-bottom:5px}
.rc-name{font-size:13.5px;font-weight:700;letter-spacing:-.01em}
.rc-text{font-size:13.5px;color:var(--ink-soft);line-height:1.55}
.lean-chip{font-family:var(--mono);font-size:9.5px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:12px}
.lean-chip.plaintiff{background:var(--green-soft);color:var(--green)}
.lean-chip.defense{background:var(--brick-soft);color:var(--brick)}
.lean-chip.undecided{background:var(--slate-soft);color:var(--muted)}
.deliberating{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13.5px;padding:6px 2px}
.dots{display:inline-flex;gap:4px}
.dots i{width:6px;height:6px;border-radius:50%;background:var(--green);opacity:.4;animation:bl 1s infinite}
.dots i:nth-child(2){animation-delay:.2s}.dots i:nth-child(3){animation-delay:.4s}
@keyframes bl{0%,100%{opacity:.35;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}

.askbox{position:sticky;bottom:0;background:linear-gradient(to top,var(--paper) 78%,transparent);padding:14px 0 4px;margin-top:10px}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:11px}
.chip{font-size:12.5px;border:1px solid var(--line-2);border-radius:20px;padding:7px 13px;background:#fff;color:var(--ink-soft);transition:.14s}
.chip:hover{border-color:var(--green);color:var(--green)}
.ask-row{display:flex;gap:10px;align-items:flex-end;background:#fff;border:1px solid var(--line-2);border-radius:14px;padding:8px 8px 8px 14px;box-shadow:var(--shadow)}
.ask-row textarea{flex:1;border:none;box-shadow:none;padding:8px 0;min-height:24px;resize:none;font-size:14px;line-height:1.5}
.ask-row textarea:focus{outline:none;box-shadow:none}
.ask-row .btn-primary{padding:11px 13px;border-radius:10px;flex-shrink:0}
.ask-note{font-size:12px;color:var(--muted-2);margin-top:8px;min-height:16px}
.ask-note.errline{color:var(--brick)}
.ask-note b{color:var(--ink-soft)}

.live-lbl{font-size:10.5px;font-weight:700;color:var(--muted-2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:9px}
.leanbar{display:flex;height:12px;border-radius:6px;overflow:hidden;background:var(--wash)}
.leanbar span{display:block;transition:width .4s ease}
.lean-key{display:flex;flex-direction:column;gap:6px;margin-top:12px}
.lean-key div{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-soft)}
.lean-key i{width:9px;height:9px;border-radius:2px;flex-shrink:0}
.lean-key b{margin-left:auto;font-family:var(--mono);font-size:12px;color:var(--ink)}
.theme-list{list-style:none;display:flex;flex-direction:column;gap:7px}
.theme-list li{position:relative;padding-left:16px;font-size:13px;color:var(--ink-soft);line-height:1.4}
.theme-list li:before{content:"";position:absolute;left:2px;top:7px;width:5px;height:5px;border-radius:50%;background:var(--green-line)}
.takeaway{font-size:13px;color:var(--ink-soft);line-height:1.55;background:var(--wash);border-radius:10px;padding:11px 13px}

/* ---- prompt library ---- */
.party-toggle{display:flex;border:1px solid var(--line-2);border-radius:9px;overflow:hidden;margin-bottom:14px}
.party-toggle button{flex:1;padding:8px 10px;font-size:12.5px;font-weight:600;color:var(--muted);background:#fff;border-right:1px solid var(--line-2)}
.party-toggle button:last-child{border-right:none}
.party-toggle button.on{background:var(--ink);color:#fff}
.lib-cat{border-bottom:1px solid var(--line)}
.lib-cat:last-child{border-bottom:none}
.lib-head{display:flex;align-items:center;gap:9px;width:100%;padding:11px 2px;text-align:left;font-size:13px;font-weight:600;color:var(--ink);transition:.12s}
.lib-head:hover{color:var(--green)}
.lib-head svg{color:var(--muted-2);flex-shrink:0}
.lib-head:hover svg{color:var(--green)}
.lib-head span{flex:1}
.lib-head em{font-style:normal;font-family:var(--mono);font-size:10px;color:var(--muted-2);background:var(--wash);padding:2px 6px;border-radius:10px}
.lib-head .chev{transition:transform .18s;color:var(--muted-2)}
.lib-cat.open .lib-head .chev{transform:rotate(180deg)}
.lib-body{display:none;padding:2px 0 12px;flex-direction:column;gap:5px}
.lib-cat.open .lib-body{display:flex}
.lib-item{text-align:left;font-size:12.5px;color:var(--ink-soft);padding:8px 11px;border-radius:8px;background:var(--wash);border:1px solid transparent;transition:.13s;line-height:1.35}
.lib-item:hover{background:var(--green-soft);border-color:var(--green-line);color:var(--green)}
.chips-lbl{width:100%;font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);margin-bottom:2px}
.chip.follow{background:var(--green-soft);border-color:var(--green-line);color:var(--green)}
.chip.follow:hover{background:#d9ebe1}

/* ---- drafted work product ---- */
.draft-list{margin:11px 0 2px;padding-left:0;list-style:none;counter-reset:d}
.draft-list li{counter-increment:d;position:relative;padding:9px 12px 9px 34px;margin-bottom:7px;background:var(--wash);border-radius:9px;font-size:13px;line-height:1.5;color:var(--ink);border-left:2px solid var(--green-line)}
.draft-list li:before{content:counter(d) ")";position:absolute;left:11px;top:9px;font-family:var(--mono);font-size:11.5px;font-weight:500;color:var(--green)}
.copy-btn{margin-left:auto;font-family:var(--mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line-2);background:#fff;padding:4px 9px;border-radius:6px;transition:.13s;flex-shrink:0}
.copy-btn:hover{border-color:var(--green);color:var(--green)}
.copy-btn.ok{background:var(--green-soft);border-color:var(--green-line);color:var(--green)}
.lib-item[data-mode="draft"]{border-left:2px solid var(--green-line)}

/* ---- sessions ---- */
.sess-row{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:9px;cursor:pointer;transition:.13s;margin-bottom:3px;border:1px solid transparent}
.sess-row:hover{background:var(--wash)}
.sess-row.on{background:var(--green-soft);border-color:var(--green-line)}
.sess-main{flex:1;min-width:0}
.sess-row .sn{font-size:13px;font-weight:600;color:var(--ink);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sess-row.on .sn{color:var(--green)}
.sess-row .sm{font-size:10.5px;color:var(--muted-2);font-family:var(--mono);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* session subheader note */
.sess-note{font-size:11.5px;color:var(--muted);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:italic}
.sess-row.on .sess-note{color:var(--green)}
.sess-sub{font-size:13px;color:var(--muted);margin-top:4px;font-style:italic}
.sess-x{color:var(--muted-2);padding:4px;border-radius:6px;opacity:0;transition:.13s;flex-shrink:0}
.sess-row:hover .sess-x{opacity:1}
.sess-x:hover{color:var(--brick);background:var(--brick-soft)}
.sess-active{font-family:var(--mono);font-size:9px;letter-spacing:.07em;text-transform:uppercase;color:var(--green);background:#fff;border:1px solid var(--green-line);padding:3px 7px;border-radius:5px;flex-shrink:0;align-self:flex-start;line-height:1.1}

/* ---- collapsible chips ---- */
.chips-wrap{margin-bottom:10px;padding-top:14px}
/* space above the follow-ups label at every width, not just on phones */
.chips-bar{display:flex;align-items:center;margin-bottom:7px}
.chips-toggle{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);padding:3px 6px;border-radius:6px;transition:.13s}
.chips-toggle:hover{color:var(--green);background:var(--green-soft)}
.chips-toggle svg{transition:transform .18s}
.chips{display:flex;gap:8px;flex-wrap:wrap}

/* ---- chat attachments ---- */
.attach-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:9px}
.attach-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;background:var(--green-soft);border:1px solid var(--green-line);color:var(--green);padding:5px 10px;border-radius:18px;max-width:280px}
.attach-chip svg{flex-shrink:0}
.attach-chip button{color:var(--green);font-size:15px;line-height:1;padding:0 0 0 3px;opacity:.65}
.attach-chip button:hover{opacity:1}
.attach-chip.static{background:var(--wash);border-color:var(--line-2);color:var(--muted)}
.attach-note{font-size:11px;color:var(--muted-2);font-style:italic}
.q-att{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px;padding-left:16px}
.clip-btn{color:var(--muted-2);padding:8px;border-radius:9px;flex-shrink:0;align-self:flex-end;transition:.13s}
.clip-btn:hover{color:var(--green);background:var(--green-soft)}
.sess-open{font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2);border:1px solid var(--line-2);padding:4px 9px;border-radius:6px;flex-shrink:0;transition:.13s}
.sess-rep{display:inline-flex;align-items:center;margin-top:6px;font-size:11px;font-weight:600;color:var(--green);background:var(--green-soft);border:1px solid var(--green-line);padding:3px 9px;border-radius:6px;transition:.13s}
.sess-rep:hover{border-color:var(--green);box-shadow:0 1px 4px rgba(31,110,76,.18)}
.sess-row:hover .sess-open{border-color:var(--green);color:var(--green)}
.logo .dotai{color:var(--green);font-weight:600;letter-spacing:-.01em}
.side .logo .dotai,.auth-left .logo .dotai{color:#5FD09B}
.logo .wordmark{display:inline-flex;align-items:baseline}

/* ---- consultant report ---- */
.rep-meta{margin-bottom:20px}
.rep-meta-in{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 18px;box-shadow:var(--shadow)}
.rep-meta-in b{font-family:var(--display);font-size:15px;font-weight:700;display:block}
.rep-meta-in span{font-size:12px;color:var(--muted-2);font-family:var(--mono)}
.rep-sec{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:26px 28px;margin-bottom:20px}
.rep-h{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.rep-n{width:28px;height:28px;border-radius:8px;background:var(--green);color:#fff;font-family:var(--mono);font-size:13px;display:grid;place-items:center;flex-shrink:0}
.rep-h h3{font-family:var(--display);font-size:19px;font-weight:700;letter-spacing:-.02em}
.rep-p{font-size:14px;line-height:1.7;color:var(--ink-soft)}
.rep-p.sm{font-size:13px;color:var(--muted);margin-bottom:8px}
.rep-sub{margin-top:20px}
.rep-sub-h{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.rep-sub h4{font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:9px}
.rep-sub-h h4{margin-bottom:0}
.rep-foot{font-size:11.5px;color:var(--muted-2);font-style:italic;text-align:center;margin:22px 0 10px}
.only-print{display:none}

@media print{
  .no-print,.side{display:none!important}
  body{background:#fff}
  .app{display:block}
  .main{padding:0;max-width:none}
  .only-print{display:block}
  .rep-print-head{margin-bottom:22px;padding-bottom:14px;border-bottom:2px solid var(--green)}
  .rep-print-head h1{font-family:var(--display);font-size:23px}
  .rep-print-head p{font-size:12px;color:#555}
  .rep-sec{box-shadow:none;border:none;border-top:1px solid #ddd;border-radius:0;padding:16px 0;margin:0;page-break-inside:avoid}
  .draft-list li{background:#f6f6f6;border-left:2px solid #999}
  .copy-btn{display:none}
}

/* ---- search and favorites ---- */
.searchbox{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line-2);border-radius:10px;padding:0 11px;height:42px;min-width:240px;transition:.15s}
.searchbox:focus-within{border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}
.searchbox svg{color:var(--muted-2);flex-shrink:0}
.searchbox input{border:none;outline:none;font-family:inherit;font-size:14px;background:none;width:100%;color:var(--ink)}
.searchbox .sx{color:var(--muted-2);font-size:19px;line-height:1;padding:0 2px}
.searchbox .sx:hover{color:var(--brick)}
/* narrow screens: stop the toolbar forcing horizontal scroll */
@media(max-width:820px){
  .topbar{align-items:flex-start}
  .topbar .r{flex-wrap:wrap;width:100%;gap:8px}
  .searchbox{min-width:0;flex:1 1 100%}
  .topbar .r .btn{flex:1 1 auto;justify-content:center}
  .rep-pick{max-width:none;min-width:0;flex:1 1 100%}
  .case-tools{gap:8px}
  .case-tools .ccount{margin-left:0;width:100%}
  .case-grid{grid-template-columns:1fr}
  .case-card{min-height:0}
}
@media(max-width:420px){
  .cc-dates{gap:6px;font-size:9.5px}
}
.case-card{position:relative}
.star{position:absolute;top:14px;right:14px;color:var(--line-2);fill:none;padding:3px;border-radius:6px;transition:.14s;z-index:2}
.star:hover{color:var(--brass)}
.star.on{color:var(--brass);fill:var(--brass)}
.star.inline{position:static;flex-shrink:0;margin-right:2px}
.case-card h3{padding-right:26px}

/* ---- integrations ---- */
.int-group{margin-bottom:26px}
.int-glabel{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px}
.int-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}
.int-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);display:flex;flex-direction:column;transition:.15s}
.int-card:hover{border-color:var(--line-2);box-shadow:0 10px 30px rgba(14,36,54,.09)}
.int-top{position:relative;min-height:56px;margin-bottom:12px}
.int-mark{position:absolute;left:0;top:50%;transform:translateY(-50%);width:56px;height:56px;border-radius:13px;color:#fff;font-family:var(--display);font-size:17px;font-weight:700;display:grid;place-items:center;flex-shrink:0;box-shadow:inset 0 1px 0 rgba(255,255,255,.22)}
.int-name{position:absolute;left:0;right:0;top:0;bottom:0;font-family:var(--display);font-size:20px;font-weight:700;letter-spacing:-.015em;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.2;padding:0 60px}
.int-pill{position:absolute;top:0;right:0;font-family:var(--mono);font-size:9px;letter-spacing:.07em;text-transform:uppercase;background:var(--brass-soft);color:#9a7530;padding:3px 8px;border-radius:5px;font-weight:500}
.int-count{position:absolute;top:26px;right:0;font-family:var(--mono);font-size:11px;color:var(--green);background:var(--green-soft);border:1px solid var(--green-line);padding:2px 8px;border-radius:12px;flex-shrink:0}
.int-blurb{font-size:13px;color:var(--muted);line-height:1.55;flex:1;margin-bottom:16px}
.int-btn{width:100%;padding:10px;font-size:13.5px}
.int-btn.is-req{background:var(--green-soft);border-color:var(--green-line);color:var(--green)}
.prev-note{display:flex;gap:11px;align-items:flex-start;background:var(--brass-soft);border:1px solid #E8DCC0;border-radius:11px;padding:13px 15px;font-size:13px;color:#7d6127;line-height:1.55;margin-bottom:16px}
.prev-note svg{color:#9a7530;flex-shrink:0;margin-top:1px}

/* ---- searchable pool picker ---- */
.combo{position:relative;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line-2);border-radius:10px;padding:0 11px;height:42px;transition:.15s}
.combo:focus-within{border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}
.combo .cs-ic{color:var(--muted-2);flex-shrink:0}
.combo input{border:none;outline:none;font-family:inherit;font-size:14px;background:none;width:100%;color:var(--ink)}
.combo .cs-x{color:var(--muted-2);font-size:18px;line-height:1;padding:0 2px;background:none;border:none;cursor:pointer}
.combo .cs-x:hover{color:var(--brick)}
.combo .cs-caret{color:var(--muted-2);flex-shrink:0;transition:.15s}
.combo.open .cs-caret{transform:rotate(180deg)}
.combo-list{display:none;position:absolute;top:46px;left:0;right:0;max-height:290px;overflow-y:auto;background:#fff;border:1px solid var(--line-2);border-radius:11px;box-shadow:0 14px 40px rgba(14,36,54,.16);z-index:40}
.combo.open .combo-list{display:block}
.cl-head{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2);padding:9px 13px 5px;border-bottom:1px solid var(--line)}
.cl-row{display:flex;align-items:center;gap:10px;padding:9px 13px;cursor:pointer;border-bottom:1px solid var(--line)}
.cl-row:last-child{border-bottom:none}
.cl-row:hover{background:var(--wash)}
.cl-row.on{background:var(--green-soft)}
.cl-main{flex:1;min-width:0}
.cl-name{font-size:13.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cl-sub{font-size:11.5px;color:var(--muted-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cl-tag{font-family:var(--mono);font-size:9px;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:5px;flex-shrink:0}
.cl-tag.green{background:var(--green-soft);color:var(--green)}
.cl-tag.gray{background:var(--slate-soft);color:var(--muted)}
.cl-count{font-family:var(--mono);font-size:11.5px;color:var(--muted-2);flex-shrink:0;min-width:24px;text-align:right}
.cl-empty{padding:18px 14px;font-size:13px;color:var(--muted);text-align:center}
.cl-empty span{font-size:12px;color:var(--muted-2)}

/* ---- draw filters ---- */
.filt-bar{display:flex;align-items:center;gap:14px;padding:0 18px 14px;flex-wrap:wrap}
.filt-toggle{display:inline-flex;align-items:center;gap:7px;background:none;border:1px solid var(--line-2);border-radius:9px;padding:7px 12px;font-family:inherit;font-size:13px;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:.14s}
.filt-toggle:hover{border-color:var(--green);color:var(--green)}
.filt-toggle .filt-caret{transition:.15s}
.filt-toggle.open .filt-caret{transform:rotate(180deg)}
.filt-count{background:var(--green);color:#fff;font-family:var(--mono);font-size:10px;padding:1px 6px;border-radius:9px}
.filt-match{font-size:12.5px;color:var(--muted)}
.filt-match b{color:var(--ink);font-family:var(--mono)}
.filt-match.ok b{color:var(--green)}
.filt-match.warn{color:var(--brick)}
.filt-match.warn b{color:var(--brick)}
.filt-reset{background:none;border:none;font-family:inherit;font-size:12.5px;color:var(--muted-2);cursor:pointer;text-decoration:underline;margin-left:auto}
.filt-reset:hover{color:var(--brick)}
.filt-body{border-top:1px solid var(--line);padding:16px 18px 18px;background:var(--wash)}
.filt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.filt-lbl{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:7px}
.filt-opts{display:flex;flex-wrap:wrap;gap:6px}
.filt-chip{background:#fff;border:1px solid var(--line-2);border-radius:14px;padding:5px 11px;font-family:inherit;font-size:12.5px;color:var(--ink-soft);cursor:pointer;transition:.13s}
.filt-chip:hover{border-color:var(--green)}
.filt-chip.on{background:var(--green);border-color:var(--green);color:#fff;font-weight:600}
.filt-age{display:flex;align-items:center;gap:8px}
.filt-age input{width:74px;padding:6px 9px;border:1px solid var(--line-2);border-radius:8px;font-family:inherit;font-size:13px;background:#fff}
.filt-age input:focus{outline:none;border-color:var(--green)}
.filt-age span{font-size:12.5px;color:var(--muted-2)}

/* ---- juror swap ---- */
.juror-card{position:relative}
.jc-swap{position:absolute;top:7px;right:7px;width:26px;height:26px;display:grid;place-items:center;border-radius:7px;
  border:1px solid var(--line);background:#fff;color:var(--muted-2);cursor:pointer;transition:.14s;opacity:0}
.juror-card:hover .jc-swap{opacity:1}
.jc-swap:hover{color:#fff;border-color:var(--green);background:var(--green)}
/* touch devices never fire hover, so keep the control reachable */
@media (hover:none){.jc-swap{opacity:.55}.juror-card:after{opacity:.55}}
.juror-card.swapping{opacity:.45}
.juror-card.just-added{animation:jcAdded 2.4s ease}
@keyframes jcAdded{0%{box-shadow:0 0 0 3px var(--green)}55%{box-shadow:0 0 0 3px var(--green-line)}100%{box-shadow:none}}

/* ---- drafted items block ---- */
.items-block{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.items-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.items-lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--green);font-weight:500}
.items-head .copy-btn{margin-left:auto;display:inline-flex;align-items:center;gap:5px}
.draft-list li{position:relative;padding-right:34px}
.copy-one{position:absolute;top:7px;right:7px;width:22px;height:22px;display:grid;place-items:center;border-radius:5px;border:1px solid transparent;background:none;color:var(--line-2);cursor:pointer;transition:.13s}
.draft-list li:hover .copy-one{color:var(--muted-2)}
.copy-one:hover{color:var(--green);border-color:var(--green-line);background:#fff}
.copy-one.ok{color:var(--green);border-color:var(--green-line);background:var(--green-soft)}

/* ---- ask one juror ---- */
.ask-btn{margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--muted);border:1px solid var(--line-2);background:#fff;padding:4px 9px;border-radius:6px;cursor:pointer;transition:.13s;flex-shrink:0}
.ask-btn:hover{border-color:var(--green);color:var(--green)}
.fu-box{margin-top:11px;padding:12px;background:var(--wash);border:1px solid var(--line);border-radius:10px}
.fu-lbl{font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:7px}
.fu-input{width:100%;padding:9px 11px;border:1px solid var(--line-2);border-radius:8px;font-family:inherit;font-size:13.5px;line-height:1.5;resize:vertical;background:#fff;color:var(--ink)}
.fu-input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}
.fu-actions{display:flex;align-items:center;gap:9px;margin-top:9px}
.fu-actions .btn{padding:7px 14px;font-size:13px}
.fu-actions .fu-cancel{margin-left:auto}
.fu-err{font-size:12.5px;color:var(--brick)}
.fu-thread{margin:0 0 10px 26px;padding-left:14px;border-left:2px solid var(--green-line)}
.fu-q{font-size:13px;color:var(--ink);background:var(--green-soft);border-radius:9px;padding:9px 12px;margin-bottom:9px}
.fu-qlbl{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--green);margin-bottom:3px}
.resp-card.follow{border-color:var(--green-line)}
@media print{.ask-btn,.jc-swap,.copy-one{display:none}}

/* ---- feedback notepad (quiet by design) ---- */
.pjf-fab{position:fixed;right:18px;bottom:18px;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;
  background:#fff;border:1px solid var(--line-2);color:var(--muted-2);cursor:pointer;z-index:900;opacity:.42;
  box-shadow:0 2px 8px rgba(14,36,54,.10);transition:.16s}
.pjf-fab:hover{opacity:1;color:var(--green);border-color:var(--green-line)}
.pjf-fab.on{opacity:1;background:var(--green);border-color:var(--green);color:#fff}
.pjf-panel{position:fixed;right:18px;bottom:62px;width:352px;max-height:min(600px,78vh);display:none;flex-direction:column;
  background:#fff;border:1px solid var(--line-2);border-radius:14px;box-shadow:0 20px 56px rgba(14,36,54,.24);z-index:901;overflow:hidden}
.pjf-panel.show{display:flex}
.pjf-head{display:flex;align-items:flex-start;gap:10px;padding:14px 15px 12px;border-bottom:1px solid var(--line);background:var(--wash)}
.pjf-title{font-family:var(--display);font-size:15px;font-weight:700;color:var(--ink)}
.pjf-sub{font-size:11px;color:var(--muted-2);margin-top:2px;line-height:1.4}
.pjf-x{margin-left:auto;background:none;border:none;font-size:20px;line-height:1;color:var(--muted-2);cursor:pointer;padding:0 2px}
.pjf-x:hover{color:var(--brick)}
.pjf-firm{padding:10px 15px 0}
.pjf-firm input{width:100%;padding:7px 10px;border:1px solid var(--line-2);border-radius:8px;font-family:inherit;font-size:12.5px;color:var(--ink)}
.pjf-firm input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}
.pjf-cats{display:flex;flex-wrap:wrap;gap:5px;padding:10px 15px}
.pjf-cat{background:#fff;border:1px solid var(--line-2);border-radius:12px;padding:3px 9px;font-family:inherit;font-size:11.5px;color:var(--muted);cursor:pointer;transition:.13s}
.pjf-cat:hover{border-color:var(--green)}
.pjf-cat.on{background:var(--green);border-color:var(--green);color:#fff;font-weight:600}
.pjf-list{flex:1;overflow-y:auto;padding:4px 15px 8px;min-height:70px}
.pjf-empty{font-size:12.5px;color:var(--muted-2);text-align:center;padding:18px 8px}
.pjf-item{border-bottom:1px solid var(--line);padding:9px 0}
.pjf-item:last-child{border-bottom:none}
.pjf-meta{display:flex;align-items:center;gap:6px;margin-bottom:4px}
.pjf-tag{font-family:var(--mono);font-size:9px;letter-spacing:.05em;text-transform:uppercase;background:var(--green-soft);color:var(--green);padding:1px 6px;border-radius:4px}
.pjf-firmtag{font-size:10.5px;color:var(--ink-soft);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:110px}
.pjf-when{font-size:10.5px;color:var(--muted-2);margin-left:auto}
.pjf-del{background:none;border:none;color:var(--line-2);font-size:15px;line-height:1;cursor:pointer;padding:0 1px}
.pjf-del:hover{color:var(--brick)}
.pjf-note{font-size:12.5px;line-height:1.5;color:var(--ink-soft);white-space:pre-wrap}
.pjf-compose{border-top:1px solid var(--line);padding:11px 15px 13px;background:var(--wash)}
.pjf-compose textarea{width:100%;padding:9px 11px;border:1px solid var(--line-2);border-radius:9px;font-family:inherit;font-size:13px;line-height:1.5;resize:vertical;background:#fff;color:var(--ink)}
.pjf-compose textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}
.pjf-row{display:flex;align-items:center;gap:9px;margin-top:8px}
.pjf-hint{font-size:10.5px;color:var(--muted-2);margin-left:auto}
.pjf-err{font-size:11.5px;color:var(--brick)}
.pjf-send{background:var(--green);color:#fff;border:none;border-radius:8px;padding:7px 13px;font-family:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:.13s}
.pjf-send:hover{background:#2A855E}
.pjf-send:disabled{opacity:.6;cursor:default}
@media print{.pjf-fab,.pjf-panel{display:none!important}}
@media (max-width:520px){.pjf-panel{right:10px;left:10px;width:auto}}

/* ---- feedback admin page ---- */
.fb-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:14px;margin-bottom:20px}
.fb-stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:15px 18px;box-shadow:var(--shadow)}
.fb-stat .fs-v{font-family:var(--display);font-size:26px;font-weight:800;letter-spacing:-.02em}
.fb-stat .fs-l{font-size:11.5px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.05em;margin-top:2px}
.fb-filters{display:flex;gap:8px;flex-wrap:wrap}
.fb-filters select{padding:7px 10px;border:1px solid var(--line-2);border-radius:8px;font-family:inherit;font-size:12.5px;background:#fff;color:var(--ink)}
.fb-card{border:1px solid var(--line);border-left:3px solid var(--line-2);border-radius:10px;padding:13px 15px;margin-bottom:10px;background:#fff}
.fb-card.new{border-left-color:var(--green)}
.fb-card.triaged{border-left-color:var(--brass)}
.fb-card.done{border-left-color:var(--line-2);opacity:.68}
.fb-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:7px}
.fb-cat{font-family:var(--mono);font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:5px;background:var(--slate-soft);color:var(--muted)}
.fb-cat.c-bug{background:var(--brick-soft);color:var(--brick)}
.fb-cat.c-featurerequest{background:var(--green-soft);color:var(--green)}
.fb-cat.c-pricing{background:var(--brass-soft);color:#9a7530}
.fb-firm{font-size:12.5px;font-weight:700;color:var(--ink)}
.fb-who{font-size:12px;color:var(--muted)}
.fb-when{font-size:11.5px;color:var(--muted-2);font-family:var(--mono)}
.fb-actions{margin-left:auto;display:flex;gap:4px}
.fb-st{background:#fff;border:1px solid var(--line-2);border-radius:6px;padding:2px 8px;font-family:inherit;font-size:10.5px;color:var(--muted-2);cursor:pointer;text-transform:capitalize;transition:.13s}
.fb-st:hover{border-color:var(--green);color:var(--green)}
.fb-st.on{background:var(--green);border-color:var(--green);color:#fff;font-weight:600}
.fb-note{font-size:13.5px;line-height:1.6;color:var(--ink);white-space:pre-wrap}
.fb-ctx{font-family:var(--mono);font-size:10.5px;color:var(--muted-2);margin-top:7px;padding-top:6px;border-top:1px dashed var(--line)}

/* ---- filtered swap popover ---- */
.sw-pop{position:fixed;width:320px;max-height:min(460px,80vh);display:flex;flex-direction:column;background:#fff;
  border:1px solid var(--line-2);border-radius:13px;box-shadow:0 20px 56px rgba(14,36,54,.26);z-index:1200;overflow:hidden}
.sw-head{display:flex;align-items:flex-start;gap:9px;padding:13px 14px 11px;border-bottom:1px solid var(--line);background:var(--wash)}
.sw-title{font-family:var(--display);font-size:14px;font-weight:700;color:var(--ink);line-height:1.25}
.sw-sub{font-size:11px;color:var(--muted-2);margin-top:3px;line-height:1.4}
.sw-x{margin-left:auto;background:none;border:none;font-size:19px;line-height:1;color:var(--muted-2);cursor:pointer;padding:0 2px}
.sw-x:hover{color:var(--brick)}
.sw-body{flex:1;overflow-y:auto;padding:11px 14px}
.sw-group{margin-bottom:11px}
.sw-lbl{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px}
.sw-opts{display:flex;flex-wrap:wrap;gap:4px}
.sw-chip{background:#fff;border:1px solid var(--line-2);border-radius:12px;padding:3px 9px;font-family:inherit;font-size:11.5px;color:var(--ink-soft);cursor:pointer;transition:.12s}
.sw-chip:hover{border-color:var(--green)}
.sw-chip.on{background:var(--green);border-color:var(--green);color:#fff;font-weight:600}
.sw-age{display:flex;align-items:center;gap:6px}
.sw-age input{width:62px;padding:4px 8px;border:1px solid var(--line-2);border-radius:7px;font-family:inherit;font-size:12px}
.sw-age input:focus{outline:none;border-color:var(--green)}
.sw-age span{font-size:11.5px;color:var(--muted-2)}
.sw-foot{display:flex;align-items:center;gap:8px;padding:10px 14px;border-top:1px solid var(--line);background:var(--wash)}
.sw-count{font-size:11.5px;color:var(--muted)}
.sw-count b{font-family:var(--mono);color:var(--green)}
.sw-count.none{color:var(--brick)}
.sw-clear{background:none;border:none;font-family:inherit;font-size:11.5px;color:var(--muted-2);cursor:pointer;text-decoration:underline;margin-left:auto}
.sw-clear:hover{color:var(--brick)}
.sw-go{padding:6px 14px;font-size:12.5px}
.sw-err{font-size:11.5px;color:var(--brick);padding:0 14px 10px}
.sw-err:empty{display:none}

/* ---- roster swap ---- */
.roster-row{position:relative}
.rr-main{flex:1;min-width:0}
.rr-swap{margin-left:auto;width:24px;height:24px;display:grid;place-items:center;border-radius:6px;border:1px solid var(--line);
  background:#fff;color:var(--muted-2);cursor:pointer;transition:.13s;opacity:0;flex-shrink:0}
.roster-row:hover .rr-swap{opacity:1}
.rr-swap:hover{color:#fff;border-color:var(--green);background:var(--green)}
.roster-row.just-added{animation:jcAdded 2.4s ease}
@media (hover:none){.rr-swap{opacity:.55}}

/* ---- new session modal ---- */
.seg.wide button{flex:1}
.s-note{background:var(--green-soft);border:1px solid var(--green-line);border-radius:9px;padding:10px 12px;
  font-size:12.5px;line-height:1.55;color:#1c5c41;margin-bottom:4px}
.s-filtn{background:var(--green);color:#fff;font-family:var(--mono);font-size:9.5px;padding:1px 6px;border-radius:8px;margin-left:5px}
.s-filts{display:flex;flex-direction:column;gap:7px;max-height:180px;overflow-y:auto;padding:9px 10px;
  background:var(--wash);border:1px solid var(--line);border-radius:9px}
.s-fg{display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.s-fl{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;width:62px;flex-shrink:0}
.s-fc{background:#fff;border:1px solid var(--line-2);border-radius:11px;padding:2px 8px;font-family:inherit;font-size:11px;color:var(--ink-soft);cursor:pointer;transition:.12s}
.s-fc:hover{border-color:var(--green)}
.s-fc.on{background:var(--green);border-color:var(--green);color:#fff;font-weight:600}
.s-match{font-size:12px;color:var(--muted);margin-top:8px}
.s-match b{font-family:var(--mono);color:var(--ink)}
.s-match.ok b{color:var(--green)}
.s-match.warn{color:var(--brick)}
.s-match.warn b{color:var(--brick)}
/* Generated juror portraits sit on top of the initials circle. If a juror has no face,
   or the file fails to load, the img removes itself and the initials show through, so a
   missing portrait is never a broken avatar. */
.jc-ava,.prof-ava,.roster-row .ra,.resp-card .ra{position:relative;overflow:hidden}
.jc-ava>img.javatar,.prof-ava>img.javatar,.roster-row .ra>img.javatar,.resp-card .ra>img.javatar{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}

@media print{.rr-swap,.sw-pop{display:none!important}}
.sw-presets{display:flex;flex-wrap:wrap;gap:4px;padding-bottom:11px;margin-bottom:11px;border-bottom:1px solid var(--line)}
.sw-pre{background:var(--wash);border:1px solid var(--line-2);border-radius:12px;padding:4px 10px;font-family:inherit;font-size:11.5px;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:.12s}
.sw-pre:hover{border-color:var(--green);color:var(--green)}
.sw-pre.on{background:var(--green);border-color:var(--green);color:#fff}

/* feedback: labelled firm field */
.pjf-firm label{display:block;font-size:10.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}
.pjf-fhint{font-size:10.5px;color:var(--muted-2);margin-top:4px;line-height:1.4}

/* feedback admin: edit and delete */
.fb-icon{width:24px;height:24px;display:grid;place-items:center;border:1px solid var(--line-2);border-radius:6px;background:#fff;color:var(--muted-2);cursor:pointer;transition:.13s}
.fb-icon:hover{border-color:var(--green);color:var(--green)}
.fb-icon.danger:hover{border-color:var(--brick);color:var(--brick)}
.fb-card.editing{border-left-color:var(--green);box-shadow:0 4px 16px rgba(14,36,54,.08)}
.fb-edit{display:flex;flex-direction:column;gap:9px}
.fb-erow{display:flex;gap:8px;flex-wrap:wrap}
.fb-ecat,.fb-efirm{padding:7px 10px;border:1px solid var(--line-2);border-radius:8px;font-family:inherit;font-size:12.5px;background:#fff;color:var(--ink)}
.fb-efirm{flex:1;min-width:160px}
.fb-ecat:focus,.fb-efirm:focus,.fb-enote:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}
.fb-enote{width:100%;padding:10px 12px;border:1px solid var(--line-2);border-radius:9px;font-family:inherit;font-size:13.5px;line-height:1.6;resize:vertical;background:#fff;color:var(--ink)}
.fb-eactions{display:flex;align-items:center;gap:9px}
.fb-eactions .btn{padding:7px 14px;font-size:13px}
.fb-eactions .btn-ghost{margin-left:auto}
.fb-eerr{font-size:12.5px;color:var(--brick)}

/* ---- pool rename ---- */
.pool-name{display:flex;align-items:center;gap:7px}
.pool-edit{width:22px;height:22px;display:grid;place-items:center;border:1px solid transparent;border-radius:5px;
  background:none;color:var(--line-2);cursor:pointer;transition:.13s;flex-shrink:0}
tr:hover .pool-edit{color:var(--muted-2)}
.pool-edit:hover{color:var(--green);border-color:var(--green-line);background:var(--green-soft)}
.pool-rename{display:flex;align-items:center;gap:5px}
.pr-input{padding:5px 9px;border:1px solid var(--green);border-radius:7px;font-family:inherit;font-size:13px;
  font-weight:600;color:var(--ink);background:#fff;min-width:180px;box-shadow:0 0 0 3px var(--green-soft)}
.pr-input:focus{outline:none}
.pr-input:disabled{opacity:.6}
.pr-ok,.pr-no{width:24px;height:24px;display:grid;place-items:center;border:1px solid var(--line-2);border-radius:6px;
  background:#fff;cursor:pointer;font-size:13px;line-height:1;transition:.13s}
.pr-ok{color:var(--green)}
.pr-ok:hover{background:var(--green);border-color:var(--green);color:#fff}
.pr-no{color:var(--muted-2)}
.pr-no:hover{background:var(--brick);border-color:var(--brick);color:#fff}
.pr-err{font-size:11.5px;color:var(--brick);margin-top:4px}
.pr-err:empty{display:none}
.btn-mini.deepen{background:#fff;border-color:var(--line-2);color:var(--muted)}
.btn-mini.deepen:hover{border-color:var(--green);color:var(--green);background:var(--green-soft)}

/* ---- guided tour ---- */
.pjt-launch{position:fixed;right:18px;bottom:18px;display:inline-flex;align-items:center;gap:7px;
  background:var(--navy);color:#fff;border:none;border-radius:10px;padding:9px 14px;
  font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;z-index:900;
  box-shadow:0 4px 16px rgba(11,34,57,.28);transition:.16s}
.pjt-launch:hover{background:#14395c;transform:translateY(-1px)}
.pjf-fab{bottom:64px}
/* phone: hide the floating buttons entirely rather than fight the ask box */
@media(max-width:820px){
  .pjt-launch,.pjf-fab,.pjf-panel{display:none!important}
  .askbox{padding-top:4px}
}
.pjt-spot{position:fixed;border-radius:10px;z-index:1400;pointer-events:none;
  box-shadow:0 0 0 3px var(--mint),0 0 0 9999px rgba(11,34,57,.62);transition:top .2s,left .2s,width .2s,height .2s}
.pjt-tip{position:fixed;width:340px;background:#fff;border-radius:13px;z-index:1401;
  box-shadow:0 22px 60px rgba(11,34,57,.34);overflow:hidden;transition:top .2s,left .2s}
.pjt-head{display:flex;align-items:center;padding:11px 14px 0}
.pjt-count{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--green)}
.pjt-x{margin-left:auto;background:none;border:none;font-size:19px;line-height:1;color:var(--muted-2);cursor:pointer;padding:0 2px}
.pjt-x:hover{color:var(--brick)}
.pjt-title{font-family:var(--display);font-size:16.5px;font-weight:700;color:var(--ink);padding:5px 14px 0;line-height:1.3}
.pjt-body{font-size:13.5px;line-height:1.6;color:var(--muted);padding:7px 14px 13px}
.pjt-waiting{font-size:12px;color:var(--green);background:var(--green-soft);border-top:1px solid var(--green-line);padding:8px 14px;font-weight:600}
.pjt-foot{display:flex;align-items:center;gap:8px;padding:10px 14px;border-top:1px solid var(--line);background:var(--wash)}
.pjt-back,.pjt-skip{background:none;border:none;font-family:inherit;font-size:12.5px;color:var(--muted-2);cursor:pointer;padding:5px 6px;border-radius:6px}
.pjt-back:hover,.pjt-skip:hover{color:var(--ink);background:#fff}
.pjt-skip{margin-left:auto}
.pjt-next{background:var(--green);color:#fff;border:none;border-radius:8px;padding:7px 15px;
  font-family:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:.13s}
.pjt-next:hover{background:#2A855E}
.pjt-wait{font-size:11.5px;font-weight:600;color:var(--green);background:var(--green-soft);
  border:1px solid var(--green-line);border-radius:7px;padding:5px 9px;white-space:nowrap}
@media print{.pjt-launch,.pjt-tip,.pjt-spot{display:none!important}}
@media (max-width:560px){.pjt-tip{width:calc(100vw - 24px)!important;left:12px!important}}
.tour-invite{position:relative;display:flex;align-items:center;gap:15px;background:linear-gradient(105deg,#0B2239,#14395c);
  border-radius:var(--radius);padding:18px 22px;margin-bottom:20px;box-shadow:0 10px 30px rgba(11,34,57,.20)}
.tour-invite .ti-ic{width:42px;height:42px;border-radius:11px;background:rgba(95,208,155,.16);color:var(--mint);
  display:grid;place-items:center;flex-shrink:0}
.tour-invite .ti-main{flex:1;min-width:0}
.tour-invite h4{font-family:var(--display);font-size:16px;font-weight:700;color:#fff;letter-spacing:-.015em}
.tour-invite p{font-size:13px;color:#B9CAD9;margin-top:2px;line-height:1.5}
.tour-invite .btn-primary{flex-shrink:0}
.tour-invite .ti-x{position:absolute;top:9px;right:11px;background:none;border:none;color:#6E8399;
  font-size:18px;line-height:1;cursor:pointer;padding:0 3px}
.tour-invite .ti-x:hover{color:#fff}
@media(max-width:700px){.tour-invite{flex-wrap:wrap}}

/* compact "first time here" launcher in the topbar */
.tour-pill{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line-2);
  color:var(--ink-soft);border-radius:20px;padding:5px 12px;font-family:inherit;font-size:12.5px;font-weight:600;
  cursor:pointer;transition:.14s;margin-right:10px}
.tour-pill:hover{border-color:var(--green);color:var(--green);background:var(--green-soft)}
.tour-pill svg{color:var(--green)}

/* ---- documents: source tag + integration row + upload guidance ---- */
.src-tag{font-family:var(--mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;
  background:var(--slate-soft);color:var(--muted);padding:3px 9px;border-radius:6px;align-self:center}
.src-row{display:flex;align-items:center;gap:14px;padding:13px 15px;margin-bottom:16px;
  background:linear-gradient(100deg,var(--green-soft),#fff);border:1px solid var(--green-line);border-radius:11px}
.src-row .ir-main{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.src-row .ir-main>svg{color:var(--green);flex-shrink:0}
.src-row .ir-t{font-size:13.5px;font-weight:700;color:var(--ink)}
.src-row .ir-s{font-size:12.5px;color:var(--muted);line-height:1.5;margin-top:2px}
.src-row .btn{flex-shrink:0}
.up-guide{background:var(--wash);border:1px solid var(--line);border-radius:11px;padding:13px 15px;margin-bottom:14px}
.ug-head{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:9px}
.ug-head b{color:var(--ink)}
.ug-chips{display:flex;flex-wrap:wrap;gap:6px}
.ug-chip{background:#fff;border:1px solid var(--line-2);border-radius:14px;padding:4px 11px;font-size:12.5px;color:var(--ink-soft)}
.ug-note{font-size:12.5px;line-height:1.55;color:var(--muted);margin-top:10px}
@media(max-width:600px){.src-row{flex-wrap:wrap}}

/* ---- image evidence ---- */
.doc-thumb{width:46px;height:46px;object-fit:cover;border-radius:8px;border:1px solid var(--line-2);cursor:pointer;flex-shrink:0;transition:.14s}
.doc-thumb:hover{border-color:var(--green);transform:scale(1.03)}
.img-lightbox{position:fixed;inset:0;background:rgba(11,34,57,.82);z-index:1500;display:grid;place-items:center;padding:32px}
.img-lightbox .il-inner{max-width:92vw;max-height:92vh;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.4)}
.img-lightbox .il-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--line);font-size:13px;font-weight:600;color:var(--ink)}
.img-lightbox .il-x{background:none;border:none;font-size:22px;line-height:1;color:var(--muted-2);cursor:pointer}
.img-lightbox .il-x:hover{color:var(--brick)}
.img-lightbox img{display:block;max-width:92vw;max-height:80vh;object-fit:contain}
.badge.green svg{vertical-align:-2px}
.rep-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;padding-top:20px;border-top:1px solid var(--line);justify-content:flex-end}
.rep-actions .btn:disabled{opacity:.6;cursor:default;box-shadow:none}
@media print{body *{visibility:hidden}#body,#body *{visibility:visible}#body{position:absolute;left:0;top:0;width:100%}.rep-actions{display:none!important}.panel{box-shadow:none!important;border:none!important}.rep-sec{break-inside:avoid;page-break-inside:avoid}}
/* case-file drawer thumbnails + banner */
.cf-thumb{width:22px;height:22px;object-fit:cover;border-radius:4px;border:1px solid var(--line-2);vertical-align:-6px}
.cf-see{color:var(--green)!important;font-style:normal!important;font-weight:600}
.img-banner{display:flex;align-items:center;gap:8px;background:var(--green-soft);border:1px solid var(--green-line);
  border-radius:9px;padding:9px 12px;margin-bottom:10px;font-size:12.5px;font-weight:600;color:#1c5c41}
.img-banner svg{color:var(--green);flex-shrink:0}

/* ---- collapsible case facts ---- */
.facts-toggle{display:inline-flex;align-items:center;gap:8px;background:none;border:none;cursor:pointer;padding:0;font-family:inherit}
.facts-toggle h3{margin:0}
.facts-toggle .ft-caret{color:var(--muted-2);transition:transform .18s}
.facts-toggle:hover .ft-caret{color:var(--green)}
#factsPanel.collapsed .ft-caret{transform:rotate(-90deg)}
#factsPanel.collapsed #factsBody{display:none}
#factsPanel.collapsed .panel-head{border-bottom:none}
.btn-mini.grow{background:var(--green);border-color:var(--green);color:#fff}
.btn-mini.grow:hover{background:#2A855E;border-color:#2A855E}

/* integration logo: white tile so any brand logo reads cleanly, replaces lettermark */
.int-mark.logo{background:#fff;border:1px solid var(--line);box-shadow:none;padding:3px}
.int-mark.logo img{max-width:100%;max-height:100%;object-fit:contain;display:block}

/* juror seat number, as referred to at trial */
.jnum{display:inline-block;font-family:var(--mono);font-size:11px;font-weight:600;color:var(--green);
  background:var(--green-soft);border:1px solid var(--green-line);border-radius:5px;padding:0 5px;margin-right:2px;vertical-align:1px}
.rn .jnum{font-size:10.5px}

/* ---- generate-report call to action ---- */
.report-cta{display:flex;align-items:center;gap:18px;justify-content:center;
  background:linear-gradient(100deg,var(--green-soft),#fff);border:1px solid var(--green-line);
  border-radius:13px;padding:15px 20px;margin:4px 0 14px}
.report-cta .rc-text{text-align:left}
.report-cta .rc-title{font-family:var(--display);font-size:15.5px;font-weight:700;color:var(--ink)}
.report-cta .rc-sub{font-size:12.5px;color:var(--muted);margin-top:2px;line-height:1.45}
.report-cta .rc-go{flex-shrink:0;display:inline-flex;align-items:center;gap:8px;padding:11px 20px;font-size:14px;font-weight:600}
@media(max-width:640px){.report-cta{flex-direction:column;text-align:center}.report-cta .rc-text{text-align:center}}

/* generate button inside a consultant session row */
.sess-gen{flex-shrink:0;padding:8px 14px;font-size:12.5px;font-weight:600;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
/* jury consultant on a phone */
@media(max-width:820px){
  /* let the long generate button wrap instead of forcing the row wider than
     the screen. .sess-row itself is left alone: it is shared with the
     deliberation rail and the case lists. */
  .sess-gen{white-space:normal;flex-shrink:1;min-width:0;max-width:44%;
  font-size:11.5px;padding:8px 10px;line-height:1.3;text-align:center}
  .rep-sec{padding:16px 14px;margin-bottom:14px}
  .rep-h{cursor:pointer;-webkit-user-select:none;user-select:none;
  padding-bottom:12px;gap:9px}
  .rep-h h3{font-size:16.5px}
  .rep-h:after{content:"";width:9px;height:9px;margin-left:auto;
  flex-shrink:0;border-right:2px solid var(--muted-2);
  border-bottom:2px solid var(--muted-2);transform:rotate(45deg)
  translate(-2px,-2px);transition:transform .18s}
  .rep-sec.collapsed .rep-h{border-bottom:none;padding-bottom:0}
  .rep-sec.collapsed .rep-h:after{transform:rotate(-45deg) translate(-2px,2px)}
  .rep-sec.collapsed > *:not(.rep-h){display:none}
  .rep-actions{justify-content:stretch}
  .rep-actions .btn{flex:1 1 100%}
  .rep-meta-in{padding:12px 14px}
}

/* prominent generate-report button in the deliberation header */
.report-hero{font-size:14px;font-weight:600;padding:10px 18px;display:inline-flex;align-items:center;gap:8px;box-shadow:0 2px 10px rgba(31,110,76,.22)}
.report-hero:hover{box-shadow:0 4px 16px rgba(31,110,76,.3)}
.rep-pick{font-family:var(--sans);font-size:13.5px;font-weight:600;color:var(--ink);background:#fff;border:1px solid var(--line-2);border-radius:10px;padding:11px 13px;cursor:pointer;max-width:260px;transition:.16s}
.rep-pick:hover{border-color:var(--ink-soft)}
