/* Secure team access + Follow-up Hub. Kept separate from the consult script UI. */
body.auth-pending>:not(#authGate):not(script),body.auth-locked>:not(#authGate):not(script){display:none!important}
.authgate{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(900px 520px at 50% -5%,var(--teal-tint),transparent 64%),var(--ground)}
body.auth-ready .authgate{display:none}
.trainingworkspace{display:none;align-items:center;justify-content:center;gap:9px;padding:7px 14px;background:#fff4d8;border-bottom:1px solid #ead29a;color:#6f5317;font-size:.78rem;line-height:1.35;text-align:center}
body.crm-training .trainingworkspace{display:flex}
.trainingworkspace b{text-transform:uppercase;letter-spacing:.06em;font-size:.68rem}
.authcard{width:min(440px,100%);background:var(--surface);border:1px solid var(--hair);border-radius:24px;padding:32px;box-shadow:var(--shadow-lg)}
.authbrand{display:flex;align-items:center;gap:9px;margin-bottom:34px;font-weight:700}
.authbrand .mark{width:13px;height:13px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px var(--teal-tint)}
.authbrand span:last-child{margin-left:auto;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}
.autheyebrow{font-size:.7rem;font-weight:750;letter-spacing:.15em;text-transform:uppercase;color:var(--teal)}
.authcard h1{font-family:var(--serif);font-size:2rem;letter-spacing:-.025em;margin:6px 0 8px}
.authcard>p{margin:0 0 22px;color:var(--ink-soft);line-height:1.55}
.authform label{display:block;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px}
.authform #authPasswordWrap{margin-top:10px}
.authform input{width:100%;border:1px solid var(--line);border-radius:12px;padding:13px 14px;font-size:1rem;color:var(--ink);background:var(--surface)}
.authform input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 4px var(--teal-tint)}
.authform button{width:100%;margin-top:10px;border:0;border-radius:12px;padding:13px;background:var(--teal);color:#fff;font-weight:700}
.authform button:hover{background:var(--teal-deep)}
.authform button:disabled{opacity:.55;cursor:wait}
.authform .authlink{margin-top:8px;padding:8px 4px;background:transparent;color:var(--teal-deep);font-size:.82rem;line-height:1.35}
.authform .authlink:hover{background:var(--teal-tint)}
.authstatus{min-height:1.4em;margin-top:12px;font-size:.85rem;color:var(--ink-soft)}
.authstatus.error,.formerror,.formstatus.error{color:var(--coral)}

body:not(.crm-admin) [data-admin-only]{display:none!important}
.hubbtn{background:var(--teal-tint);color:var(--teal-deep)}
.hubdot{width:8px;height:8px;border-radius:50%;background:var(--teal)}
.hubcount{min-width:21px;border-radius:999px;padding:0 6px;background:var(--surface);font-size:.72rem;text-align:center}
.userchip{padding:6px 10px 6px 6px}
.userinitials{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:var(--teal);color:#fff;font-size:.7rem;font-weight:800;letter-spacing:.02em}

.completesheet select,.completesheet input[type=datetime-local]{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:var(--surface);font:inherit;font-size:.95rem;color:var(--ink)}
.crmformgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fieldhint{margin:6px 0 0;color:var(--ink-faint);font-size:.78rem}
.datequick{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.datequick button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 10px;font-weight:650;font-size:.78rem;color:var(--ink-soft)}
.datequick button:hover{border-color:var(--teal-line);color:var(--teal-deep)}
.formerror{min-height:1.2em;margin-top:8px;font-size:.82rem;font-weight:600}

#consultsDrawer{z-index:70}
#consultsDrawer .hubpanel{width:min(1180px,100vw);padding:26px 28px;border-radius:22px 0 0 22px;background:var(--ground)}
.hubhead{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-right:34px}
.hubhead h2{font-size:1.8rem;margin-top:2px}
.hubhead .sub{margin-bottom:14px}
.hubheadactions{display:flex;gap:8px;padding-top:4px;white-space:nowrap}
.hubheadactions button,.primarymini{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:9px 12px;font-weight:700;font-size:.84rem;color:var(--ink-soft)}
.hubheadactions .primarymini{border-color:var(--teal);background:var(--teal);color:#fff}
.secure-note{font-size:.8rem;color:var(--teal-deep);background:var(--teal-tint);border:1px solid var(--teal-line);border-radius:11px;padding:9px 12px;margin-bottom:14px}
.secure-note.error{color:var(--coral);background:var(--coral-tint);border-color:#f2c8c1}
.hubmetrics{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:9px;margin:0 0 12px}
.hubmetric{min-height:54px;border:1px solid var(--line);background:var(--surface);border-radius:13px;padding:11px 13px;box-shadow:var(--shadow);text-align:left}
button.hubmetric{cursor:pointer}
.hubmetric .mn{display:block;font-size:1.45rem;font-weight:800;line-height:1.1;color:var(--ink);font-variant-numeric:tabular-nums}
.hubmetric .ml{display:block;margin-top:3px;font-size:.72rem;font-weight:700;color:var(--ink-faint)}
.hubmetric.alert .mn{color:var(--coral)}
.hubmetric.today .mn{color:var(--gold)}
.hubmetric.on{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-tint)}
.hubfilters{display:grid;grid-template-columns:minmax(210px,1.5fr) repeat(4,minmax(120px,.7fr));gap:8px;margin-bottom:12px}
.hubfilters input,.hubfilters select{width:100%;min-width:0;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:10px 11px;font:inherit;font-size:.82rem;color:var(--ink);box-shadow:var(--shadow)}
.hubgrid{display:grid;grid-template-columns:minmax(330px,420px) minmax(0,1fr);gap:12px;min-height:440px;height:calc(100vh - 330px)}
.leadlist,.detailpanel{min-height:0;overflow:auto;border:1px solid var(--line);background:var(--surface);border-radius:15px;box-shadow:var(--shadow)}
.leadlist{padding:8px}
.hubloading,.detailempty{height:100%;min-height:210px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--ink-faint);padding:28px}
.detailempty b{color:var(--ink-soft);font-size:1rem}.detailempty span{max-width:34ch;margin-top:4px;font-size:.86rem}
.queuegroup{font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);padding:10px 8px 5px}
.leadcard{width:100%;min-height:56px;display:block;text-align:left;border:1px solid transparent;background:transparent;border-radius:12px;padding:11px;margin-bottom:4px;color:var(--ink);transition:background .14s,border-color .14s}
.leadcard:hover{background:var(--paper)}
.leadcard.on{background:var(--teal-tint);border-color:var(--teal-line)}
.leadtop{display:flex;align-items:center;gap:7px;min-width:0}
.leadname{min-width:0;flex:1;font-size:1rem;font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.leadstatus{border-radius:999px;padding:2px 7px;font-size:.61rem;font-weight:800;letter-spacing:.035em;text-transform:uppercase;background:var(--mat);color:var(--ink-soft)}
.leadstatus.new{background:var(--coral-tint);color:var(--coral)}
.leadstatus.follow_up{background:var(--gold-tint);color:var(--gold)}
.leadstatus.booked{background:#eaf6ee;color:var(--green)}
.leaddue{max-width:48%;margin-left:auto;font-size:.72rem;font-weight:700;color:var(--ink-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.leaddue.overdue{color:var(--coral)}.leaddue.today{color:var(--gold)}
.leadmeta{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:6px;color:var(--ink-soft);font-size:.78rem}
.leadmeta .owner{margin-left:auto;color:var(--ink-faint)}
.leadmeta .lastcontact{color:var(--ink-faint);font-size:.68rem}
.contactpill{border-radius:999px;background:var(--mat);padding:2px 7px;font-weight:650;font-size:.7rem}

.detailpanel{padding:18px 20px}
.detailhead{display:flex;align-items:flex-start;gap:12px;border-bottom:1px solid var(--hair);padding-bottom:14px;margin-bottom:14px}
.detailhead h3{font-family:var(--serif);font-size:1.55rem;line-height:1.15;margin:0}
.detailhead .subline{margin-top:4px;color:var(--ink-faint);font-size:.78rem}
.detailhead .detailstatus{margin-left:auto}
.detailactions{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}
.detailactions button,.detailactions a{min-height:42px;display:inline-flex;align-items:center;border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:8px 10px;text-decoration:none;font-weight:700;font-size:.78rem;color:var(--ink-soft)}
.detailactions .primary{background:var(--teal);border-color:var(--teal);color:#fff}
.contactgrid,.detailcontrols{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:14px}
.contactcell,.contextbox{border:1px solid var(--hair);background:var(--paper);border-radius:11px;padding:9px 11px;min-width:0}
.contactcell .lab,.contextbox .lab{font-size:.64rem;font-weight:800;letter-spacing:.075em;text-transform:uppercase;color:var(--ink-faint)}
.contactcell .val,.contextbox .val{margin-top:3px;font-size:.87rem;color:var(--ink);overflow-wrap:anywhere;white-space:pre-wrap}
.detailcontrols label,.editorgrid label{display:block;font-size:.66rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:4px}
.detailcontrols select,.detailcontrols input,.activitycomposer select,.activitycomposer textarea,.editorgrid input,.editorgrid select,.editorgrid textarea{width:100%;border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:9px 10px;font:inherit;font-size:.83rem;color:var(--ink)}
.contextgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}
.contextbox.wide{grid-column:1/-1}
.sectiontitle{font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin:16px 0 7px}
.activitycomposer{border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--paper);display:grid;grid-template-columns:150px 1fr auto;gap:7px;align-items:start}
.activitycomposer textarea{min-height:40px;resize:vertical}
.activitycomposer button{min-height:44px;border:0;background:var(--teal);color:#fff;border-radius:9px;padding:10px 12px;font-weight:700}
.timeline{margin-top:10px}
.timelineitem{position:relative;padding:0 0 12px 17px;border-left:1px solid var(--line);margin-left:5px}
.timelineitem::before{content:"";position:absolute;left:-4px;top:4px;width:7px;height:7px;border-radius:50%;background:var(--teal)}
.timelineitem .tmain{font-size:.83rem;color:var(--ink)}
.timelineitem .tmeta{font-size:.7rem;color:var(--ink-faint);margin-top:2px}
.liveartifacts{display:grid;gap:8px}.crmtranscriptsession{border:1px solid var(--line);border-radius:11px;background:var(--paper);overflow:hidden}.crmtranscriptsession summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;cursor:pointer}.crmtranscriptsession summary span:first-child{display:flex;flex-direction:column}.crmtranscriptsession summary small{color:var(--ink-faint);font-size:.7rem}.consentbadge{font-size:.64rem;font-weight:800;color:var(--green)}.crmtranscriptbody{display:grid;gap:7px;padding:10px 12px;border-top:1px solid var(--hair)}.crmtranscriptrow{display:grid;grid-template-columns:90px 1fr;gap:8px;font-size:.78rem}.crmtranscriptspeaker{font-weight:800;color:var(--ink-faint);display:flex;flex-direction:column}.crmtranscriptspeaker small{font-size:.6rem;font-weight:600;color:var(--ink-faint)}.crmlastcoach,.crmmeetlink{padding:8px 12px;border-top:1px solid var(--hair);font-size:.76rem}.crmlastcoach span{display:block;color:var(--ink-faint);font-size:.65rem;text-transform:uppercase}.crmmeetlink a{color:var(--teal-deep)}.crmmeetlink small{display:block;margin-top:3px;color:var(--ink-faint)}.crmmeetlink .diarizationbadge{color:var(--teal-deep);font-weight:700}.crmmeetlink .diarizationbadge.failed{color:var(--red)}
.legacyimport{display:flex;align-items:center;gap:14px;justify-content:space-between;margin-top:10px;padding:10px 12px;border:1px solid #e8d9b0;background:var(--gold-tint);border-radius:11px;color:#7a5a14}
.legacyimport div{display:flex;flex-direction:column}.legacyimport span{font-size:.76rem}
.legacyimport button{border:0;border-radius:9px;padding:8px 11px;background:var(--gold);color:#fff;font-weight:700}
.hubexports{margin-top:9px;margin-bottom:0;justify-content:flex-end}

.teampanel{width:min(480px,96vw)}
.teamlist{display:grid;gap:8px;margin:12px 0 20px}
.teammember{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:11px;padding:10px}
.teamavatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--teal-tint);color:var(--teal-deep);font-weight:800;font-size:.72rem}
.teamwho{min-width:0;flex:1}.teamwho b,.teamwho span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teamwho span{font-size:.74rem;color:var(--ink-faint)}
.teamrole{font-size:.67rem;font-weight:800;text-transform:uppercase;color:var(--ink-faint)}
.inviteform{display:grid;border-top:1px solid var(--hair);padding-top:16px;gap:8px}
.inviteform h3{font-size:.95rem;margin:0 0 2px}
.inviteform input,.inviteform select{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px;font:inherit}
.inviteform button{border:0;border-radius:10px;padding:10px;background:var(--teal);color:#fff;font-weight:700}
.passwordform{display:grid;border-top:1px solid var(--hair);padding:16px 0;gap:8px}
.passwordform h3{font-size:.95rem;margin:0}
.passwordform p{margin:0 0 2px;color:var(--ink-faint);font-size:.78rem;line-height:1.4}
.passwordform input{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px;font:inherit}
.passwordform button{border:0;border-radius:10px;padding:10px;background:var(--teal);color:#fff;font-weight:700}
.formstatus{min-height:1.2em;font-size:.82rem;color:var(--ink-soft)}
body.crm-training .passwordform{display:none}
.signoutbtn{width:100%;margin-top:16px;border:0;border-radius:10px;padding:11px;background:var(--mat);color:var(--ink-soft);font-weight:700}

.crmeditor{position:fixed;inset:0;z-index:90;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(0,0,0,.38);backdrop-filter:blur(6px)}
.crmeditor.show{display:flex}
.editorcard{width:min(700px,100%);max-height:92vh;overflow:auto;background:var(--surface);border-radius:20px;padding:22px;box-shadow:var(--shadow-lg)}
.editorcard h2{font-family:var(--serif);margin:0 0 3px}.editorcard>.sub{margin:0 0 14px;color:var(--ink-soft);font-size:.86rem}
.editorgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.editorgrid .wide{grid-column:1/-1}.editorgrid textarea{min-height:70px;resize:vertical}
.editoractions{display:flex;gap:9px;margin-top:16px}.editoractions button{border:0;border-radius:10px;padding:11px 15px;font-weight:700}.editoractions .save{flex:1;background:var(--teal);color:#fff}.editoractions .cancel{background:var(--mat);color:var(--ink-soft)}

@media(max-width:900px){
  #consultsDrawer .hubpanel{width:100vw;border-radius:0;padding:20px 16px}
  .hubmetrics{grid-template-columns:repeat(3,1fr)}
  .hubfilters{grid-template-columns:1fr 1fr}.hubfilters input{grid-column:1/-1}
  .hubgrid{grid-template-columns:1fr;height:auto;min-height:0}.leadlist{max-height:42vh}.detailpanel{min-height:42vh}
}
@media(max-width:560px){
  .authcard{padding:24px 20px}.authbrand span:last-child{display:none}
  .hubhead{display:block}.hubheadactions{margin-bottom:10px}.hubmetrics{grid-template-columns:repeat(2,1fr)}
  .hubfilters{grid-template-columns:1fr}.hubfilters input{grid-column:auto}
  .crmformgrid,.contactgrid,.detailcontrols,.contextgrid,.editorgrid{grid-template-columns:1fr}.contextbox.wide,.editorgrid .wide{grid-column:auto}
  .activitycomposer{grid-template-columns:1fr}.activitycomposer button{width:100%}
  .hubbtn .btxt,.userchip .btxt{display:none}.hubbtn,.userchip{padding:8px}
  .leadtop{flex-wrap:wrap}.leaddue{order:3;max-width:none;width:100%;margin-left:0;white-space:normal}.leadmeta .owner{width:100%;margin-left:0}.crmtranscriptrow{grid-template-columns:1fr}.crmtranscriptspeaker{font-size:.65rem}
}


/* ---- session recording: toggle + post-call save panel ---- */
.livecheck.reccheck{border-color:#c9a227}
.recsave{
  margin-top:14px;padding:14px 15px;border:1px solid #d7dde3;border-radius:8px;
  background:#fbfcfd;display:flex;flex-direction:column;gap:10px;
}
.recsave>b{font-size:14px;letter-spacing:-.01em}
.recsave .recmeta{font-size:12.5px;color:#5b6774}
.recsave .liveactions{margin:0;display:flex;gap:8px;flex-wrap:wrap}
.recsave .livemessage{margin:0}
.recsave .livemessage a{color:#0d6efd}

/* ---- post-call diarization, file drop, and operator dictation ---- */
.audiolab{grid-column:1/-1;min-width:0}
.audiolabhead{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.audiolabhead h3{margin-bottom:4px}.audiolabhead p{margin:0;color:var(--ink-soft);font-size:.78rem;line-height:1.45;max-width:760px}
.audiolabhead>span{flex:0 0 auto;border:1px solid var(--line);border-radius:999px;padding:5px 8px;color:var(--ink-faint);font-size:.66rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.audiodrop{margin-top:12px;border:1px dashed #9ba8b5;border-radius:12px;padding:18px;display:grid;place-items:center;text-align:center;gap:5px;background:#fbfcfd;transition:border-color .15s ease,background .15s ease,opacity .15s ease;cursor:pointer}
.audiodrop:hover,.audiodrop:focus-visible,.audiodrop.over{border-color:var(--teal);background:var(--teal-tint);outline:none}
.audiodrop.busy{cursor:progress;opacity:.72}.audiodrop>b{font-size:.9rem}.audiodrop>span{color:var(--ink-faint);font-size:.7rem}
.audiodrop .liveactions{margin:8px 0 0;justify-content:center;flex-wrap:wrap}
.audioresult{margin-top:11px;border:1px solid var(--line);border-radius:11px;padding:11px;background:var(--paper)}
.audioresulthead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.audioresulthead b{font-size:.82rem}.audioresulthead span{color:var(--ink-faint);font-size:.67rem;text-align:right}
.audioresult textarea{display:block;width:100%;min-height:150px;max-height:300px;resize:vertical;border:1px solid var(--line);border-radius:9px;padding:10px;background:var(--surface);color:var(--ink);font:500 .76rem/1.55 var(--sans)}
.audioresult .liveactions{margin:9px 0 0;flex-wrap:wrap}.audioprivacy{display:block;margin-top:9px;color:var(--ink-faint);font-size:.66rem;line-height:1.45}
@media(max-width:560px){.audiolabhead,.audioresulthead{display:block}.audiolabhead>span{display:inline-block;margin-top:8px}.audioresulthead span{display:block;text-align:left;margin-top:3px}}
