:root{color-scheme:dark;--bg:#0b1014;--panel:#121a21;--line:#29343e;--ink:#edf1ee;--muted:#a1b1ba;--green:#bded96}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.55 system-ui,sans-serif}h1,h2,h3,p{margin-top:0}h1{font-size:29px;letter-spacing:-1.2px;margin-bottom:0}h1 span{color:var(--green)}h2{font-size:19px}h3{font-size:15px}button,input,textarea,select{font:inherit}button,.file{border:1px solid var(--line);border-radius:8px;padding:9px 12px;background:#1c2831;color:var(--ink);cursor:pointer}button:hover,.file:hover{border-color:var(--green)}button:disabled{opacity:.4;cursor:not-allowed}input,textarea,select{background:#0b1218;color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:10px;max-width:100%}textarea{width:100%;resize:vertical}input[type=checkbox]{accent-color:var(--green)}label{display:block;font-size:12px;color:var(--muted)}label input:not([type=checkbox]),label select{display:block;width:100%;margin:5px 0 10px}button.primary,form button[type=submit],#loginForm button{background:var(--green);color:#14250d;font-weight:650}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--green);font-weight:700;margin-bottom:8px}.muted{color:var(--muted);font-size:12px}.badge{font-size:10px;font-weight:700;letter-spacing:1px;border:1px solid var(--line);border-radius:20px;padding:7px 12px;white-space:nowrap}header{display:flex;align-items:center;justify-content:space-between;padding:28px 32px;border-bottom:1px solid var(--line)}.headerActions{display:flex;gap:10px;align-items:center}main{display:grid;grid-template-columns:250px minmax(360px,1fr) 310px;max-width:1800px;margin:auto}aside{padding:24px 20px}.room{border-inline:1px solid var(--line);padding:24px;min-width:0}.roomHead,.sectionTitle{display:flex;justify-content:space-between;align-items:center;gap:10px}.roomHead{margin-bottom:14px}.roomHead h2{font-size:26px;margin:0}.agent{padding:12px 0;border-bottom:1px solid var(--line)}.agent label.check{font-size:14px;color:var(--ink);font-weight:650}.agent p{margin:2px 0 4px 23px}.agent select{font-size:11px;width:100%;padding:5px;margin-top:6px}.file{display:block;text-align:center;margin:18px 0 10px}.file input{font-size:11px}details{margin-top:18px}summary{cursor:pointer;color:var(--muted);margin-bottom:12px}.source{padding:16px;background:var(--panel);border-radius:10px;border:1px solid var(--line);margin-bottom:25px}.source p{font-size:12px;color:var(--muted)}.source a{color:var(--green)}.check{display:flex;gap:7px;align-items:flex-start;margin-top:12px}.check input{margin-top:4px;flex-shrink:0}.empty{text-align:center;padding:70px 10px;color:var(--muted)}.empty h3{color:var(--ink);font-size:20px;margin-bottom:8px}.orb{border:1px solid #557b43;border-radius:50%;width:70px;height:70px;display:grid;place-items:center;font-size:30px;color:var(--green);margin:0 auto 25px;background:#1d2d22}#transcript{height:440px;overflow:auto;scroll-behavior:smooth;padding-right:8px}.message{margin:10px 0 18px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.message.user{border-color:#4d673f}.message b{color:var(--green)}.message small{float:right;color:var(--muted);font-size:10px}.message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0}.controls{display:flex;gap:8px;margin:9px 0 15px}.debateControls{display:flex;flex-wrap:wrap;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:15px}.debateControls label{flex:1}.danger{color:#ffaca5}.card{padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:8px;margin-bottom:12px;overflow-wrap:anywhere}.card p{font-size:12px;white-space:pre-wrap}.card button{font-size:12px;margin-right:6px}.card small{display:block;color:var(--muted)}#notice{padding:0 30px;color:#f3d797}#notice:not(:empty){padding-block:12px;border-bottom:1px solid var(--line)}footer{text-align:center;padding:22px;color:var(--muted);font-size:12px;border-top:1px solid var(--line)}.login{max-width:450px;margin:14vh auto;padding:30px}.login h1{font-size:38px;margin-bottom:18px}.login button{width:100%;margin:10px 0 20px}[hidden]{display:none!important}a{color:var(--green)}:focus-visible{outline:2px solid var(--green);outline-offset:3px}@media(max-width:1100px){main{grid-template-columns:220px minmax(0,1fr)}.right{grid-column:1/-1;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:15px}.right>h2{grid-column:1/-1}}@media(max-width:650px){header{padding:18px;display:block}.headerActions{margin-top:15px;flex-wrap:wrap}main{display:flex;flex-direction:column}aside{padding:18px}.room{border:0;border-block:1px solid var(--line);padding:18px;order:-1}.right{display:block}#roster{display:grid;grid-template-columns:1fr 1fr;gap:12px}#transcript{height:370px}.debateControls button{flex:1}h1{font-size:26px}.roomHead h2{font-size:23px}}
#meetingStage{margin:20px 0;padding:18px;background:linear-gradient(145deg,#17262a,#111920);border:1px solid #34484b;border-radius:16px}.stageToolbar{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.stageToolbar h3{font-size:22px;margin:0}.meetingGrid{display:grid;grid-template-columns:1fr 2fr;gap:10px}.teamTiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.videoTile{position:relative;min-height:135px;overflow:hidden;border:1px solid #3b4b55;border-radius:12px;background:radial-gradient(ellipse at top,#2b414a,#111b23);display:flex;align-items:center;justify-content:center;padding-bottom:55px}.videoTile.active{border-color:var(--green);box-shadow:0 0 0 2px #bded9640}.avatar{display:grid;place-items:center;border-radius:50%;width:52px;height:52px;background:#334c51;color:#e0f2db;font-weight:650;font-size:19px;margin-top:18px}.active .avatar{animation:voicePulse 1.1s ease-in-out infinite}.tileLabel{position:absolute;bottom:9px;left:10px;right:8px;display:flex;flex-direction:column;line-height:1.3}.tileLabel strong{font-size:12px}.tileLabel span{font-size:10px;color:#b5c5cb;margin-top:3px}.selfTile{min-height:220px}.selfTile video{position:absolute;width:100%;height:100%;object-fit:cover;transform:scaleX(-1);inset:0}.selfTile .tileLabel{background:#10191bc9;padding:7px;border-radius:5px}.brainControls{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.brainControls label{min-width:230px}#transcript{height:290px}@keyframes voicePulse{50%{box-shadow:0 0 0 10px #bded9625;transform:scale(1.05)}}@media(prefers-reduced-motion:reduce){.active .avatar{animation:none}}@media(max-width:850px){.meetingGrid{grid-template-columns:1fr}.selfTile{min-height:180px}.teamTiles{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:450px){.teamTiles{grid-template-columns:repeat(2,minmax(0,1fr))}.stageToolbar .controls{flex-wrap:wrap}}
.videoTile{min-height:155px;padding-bottom:65px}.tileLabel strong{overflow-wrap:anywhere}.selfTile{max-height:320px;align-self:start;width:100%}.selfAvatar{margin-top:0}@media(min-width:851px) and (max-width:1400px){.meetingGrid{grid-template-columns:1fr}.selfTile{min-height:170px}.teamTiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
.openControls{border:1px solid #557b43;border-radius:12px;padding:15px;margin:15px 0;background:#17251c}.openControls>button{margin:4px 8px 4px 0}.openControls .muted{margin:8px 0 0}#openDiscussion{background:var(--green);color:#14250d;font-weight:700}

.characterPhoto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 22%;z-index:1}.videoTile:has(.characterPhoto){min-height:220px}.videoTile:has(.characterPhoto) .avatar{visibility:hidden}.videoTile:has(.characterPhoto) .tileLabel{z-index:2;bottom:0;left:0;right:0;padding:28px 10px 10px;background:linear-gradient(transparent,#071015f5)}.photoCredit{position:absolute;top:6px;right:6px;z-index:3;font-size:9px;background:#071015b8;padding:3px 5px;border-radius:4px;color:#fff}.speakingIndicator{display:none;position:absolute;left:7px;top:7px;z-index:3;background:#bdec96;color:#122016;font-size:10px;padding:4px 6px;border-radius:5px}.speaking .speakingIndicator{display:block}.videoTile.speaking{box-shadow:0 0 0 3px #bdec96}.videoTile.active:not(.speaking){border-color:#97abb1;box-shadow:none}
#documentWorkspace { margin: 18px 0; border: 1px solid #33434c; border-radius: 12px; padding: 16px; }
#documentWorkspace details[open] { display: grid; gap: 12px; }
#documentWorkspace input, #documentWorkspace select, #documentWorkspace textarea { width:100%; box-sizing:border-box; }
#documentWorkspace textarea { font-family: inherit; line-height:1.5; }
#documentWorkspace button { margin: 4px 6px 4px 0; }

/* One workspace, separate pages. Switching pages preserves forms and the meeting. */
main{display:block;max-width:1200px;padding:0 24px}.workspaceNav{display:flex;gap:8px;flex-wrap:wrap;padding:16px 24px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg);z-index:10}.workspaceNav button[aria-current=page]{background:var(--green);color:#14250d;font-weight:700}.workspacePage{padding:24px 0;border:0;display:block}.right.workspacePage{display:block}.clientLauncher{padding:20px;border:1px solid #557b43;border-radius:12px;background:#17251c;margin:18px 0}.clientLauncher h3{font-size:18px}.clientLauncher select{width:100%;margin-bottom:12px}.clientLauncher button{margin:4px 8px 0 0}.clientLauncher p{color:var(--muted)}#page-team #roster{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}#page-work{max-width:900px}#transcript{height:440px}#documentWorkspace{margin-top:0}.openControls>.muted{display:none}@media(max-width:650px){main{padding:0 16px}.workspaceNav{position:static;padding:12px 16px}.workspacePage{padding:16px 0}.clientLauncher button{width:100%}}
.workProgress{border:1px solid #354653;border-radius:12px;padding:16px;margin:12px 0;background:#131d24}.workProgress strong{display:block;color:#c1ed92}.workProgress progress{display:block;width:100%;height:16px;margin:12px 0;accent-color:#b9e88a}.workProgress p{margin:7px 0}.workProgress small{color:#acbac4}
.audit-dashboard{padding:24px;margin:16px 0;border:1px solid #33464f;border-radius:16px;background:#121c22}.audit-status{font-size:1.2rem;font-weight:700;color:#c5ef97}.audit-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin:18px 0}.audit-metrics div{padding:14px;background:#0b1217;border-radius:8px}.audit-metrics strong{display:block;font-size:1.6rem}.audit-metrics span,.audit-dashboard small{display:block;color:#a9b8c1}.audit-dashboard details{margin-top:14px;padding:12px;border:1px solid #33464f;border-radius:8px}.audit-dashboard summary{cursor:pointer;font-weight:600}.audit-dashboard progress{width:100%}.audit-section-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65;padding:16px 0}.audit-dashboard a{overflow-wrap:anywhere}.audit-dashboard blockquote{border-left:3px solid #e7b870;padding-left:16px;margin:12px 0}.audit-dashboard li{margin:10px 0}

/* Human presence is separate from the self/agent grid, not a third grid column. */
.humanTiles{margin-top:12px;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr))}.humanTiles[hidden]{display:none}.meetingGrid>*{min-width:0}.humanTiles .videoTile{min-width:0}.humanTiles .tileLabel strong,#selfIdentity{overflow-wrap:anywhere;word-break:break-word}

.connections{max-width:1100px;margin:24px auto;padding:16px}.connectionCards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:12px}.connectionCards article,.connectionResults article{padding:16px;border:1px solid #34484b;border-radius:10px;margin:12px 0;overflow-wrap:anywhere}.connections form{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.connections form label{flex:1;min-width:180px}.connectionResults p{white-space:pre-wrap}.connectionResults a{display:block;margin-top:10px}

#newMeetingDialog{max-width:min(34rem,calc(100vw - 3rem));color:inherit;background:#131c22;border:1px solid #627350;border-radius:16px;padding:24px}#newMeetingDialog::backdrop{background:rgb(0 0 0 / 65%)}.new-meeting-actions{display:flex;gap:12px;flex-wrap:wrap}#newMeetingError{color:#ffb4a9}

/* Keep exact handoff and template previews readable at narrow widths. */
#action-preview,#preview-output{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0;max-width:100%}

/* Sourced-claim flags on agent messages and the per-meeting claim summary. */
.sourceWarn{color:#f3b4a8}.sourceOk{color:var(--green)}.sourceUnverified{color:#f0d38a}.sourceReported{color:#a9c7f0}.sourceReworded{color:#9fe0d4}
/* Round 5: the badge on an agent message is its own block, never floated or muted like the timestamp (".message small"
   beat the state classes before, so every state rendered the same 10px grey). Each state has its own colour, border and
   leading mark, all at WCAG AA contrast (4.5:1 or more) on the message panel. */
.message>small.sourceOk,.message>small.sourceReworded,.message>small.sourceUnverified,.message>small.sourceWarn,.message>small.sourceReported{float:none;display:block;clear:both;margin:10px 0 4px;padding:5px 9px;border:1px solid;border-radius:6px;font-size:12.5px;line-height:1.45;font-weight:600}
.message>small.sourceOk{color:#bded96;background:#14261a;border-color:#4f8a3c}
.message>small.sourceReworded{color:#9fe0d4;background:#10262a;border-color:#3b8379}
.message>small.sourceUnverified{color:#f7cf6b;background:#2b2210;border-color:#94742a}
.message>small.sourceWarn{color:#ffb3a3;background:#2e1512;border-color:#a14a3b}
.message>small.sourceReported{color:#a9c7f0;background:#131e2d;border-color:#41608f}
.message>small.sourceOk::before{content:'✓ '}.message>small.sourceReworded::before{content:'≈ '}.message>small.sourceUnverified::before{content:'! '}.message>small.sourceWarn::before{content:'✕ '}.message>small.sourceReported::before{content:'“ '}
.message .claimCompare{display:flex;flex-direction:column;margin:2px 0 4px 10px}
.message .claimCompare small{float:none;display:block;font-size:12px;color:#d6e0e5}
.message .claimCompare small.claimCompareHeld{color:#9fe0d4}
/* Receipts: each row label takes its row's state colour (".message b" painted every label green before). */
.message .claimReceipts{margin-top:4px;font-size:12px;color:var(--ink)}
.message .claimReceipts summary{cursor:pointer;color:#d6e0e5}
.message .claimReceipts p{margin:6px 0;color:var(--ink)}
.message .claimReceipts p>b{color:var(--ink)}
.message .claimReceipts p.sourceOk>b{color:#bded96}.message .claimReceipts p.sourceReworded>b{color:#9fe0d4}.message .claimReceipts p.sourceUnverified>b{color:#f7cf6b}.message .claimReceipts p.sourceWarn>b{color:#ffb3a3}.message .claimReceipts p.sourceReported>b{color:#a9c7f0}
.message .claimReceipts small{float:none;font-size:12px;color:#c9d4da}
.message .claimContext{display:flex;flex-direction:column;margin:2px 0 6px 12px;white-space:pre-wrap}
.message .claimContext small{display:block;float:none}
.message .claimContext small.claimCheckReason,.message .claimContext small.claimDiffers{color:#f7cf6b}
.message .claimContext small.claimLine{color:var(--ink)}
.message .claimReceipts p.sourceOk .claimSentence{color:#bded96;font-weight:600}.message .claimReceipts p.sourceReworded .claimSentence{color:#9fe0d4;font-weight:600}.message .claimReceipts p.sourceUnverified .claimSentence{color:#f7cf6b;font-weight:600}.message .claimReceipts p.sourceWarn .claimSentence{color:#ffb3a3;font-weight:600}.message .claimReceipts p.sourceReported .claimSentence{color:#a9c7f0;font-weight:600}
#claimsSummary.sourceWarn{color:#f3b4a8}#roomBuilderResult{margin-top:10px}#roomBuilder,#riskForm,#scorecardSection{margin-top:16px}


/* R5/R7/R9: frozen votes, owner overrides, outcome track record, team room. */
.overrideNote{border-left:3px solid #f0b35a;padding-left:8px;margin:6px 0}.overrideForm{margin-top:6px}.myVote{display:block;color:var(--green)}.trackRecord{font-weight:600}#teamRoom{margin-top:16px}#inviteResult code{user-select:all;word-break:break-all}
.roomNotice{border-left:3px solid #f0b35a;padding:6px 8px;margin:6px 0}.teamMark{display:block;color:#f0b35a}#memorySection{margin-top:16px}
.roomBuilder{border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:12px 14px;margin:12px 0}.roomBuilder ul.seats{list-style:none;padding-left:0;margin:6px 0}.roomBuilder ul.seats li{margin:4px 0;line-height:1.4}.roomBuilder ul.seats label.check{display:inline-flex;gap:4px;align-items:center}.roomBuilder button.link{background:none;border:0;padding:0 2px;color:inherit;text-decoration:underline;cursor:pointer;font-size:.85em;opacity:.8}.roomBuilder button.link[aria-pressed=true]{font-weight:600;opacity:1}
.roomBuilder .meetingChoice{border:1px solid rgba(255,255,255,.18);border-radius:8px;padding:8px 12px;margin:10px 0}.roomBuilder .meetingChoice legend{padding:0 4px;font-weight:600}.roomBuilder .choiceOption{margin:6px 0;line-height:1.4}.roomBuilder .choiceOption small{display:block;margin-left:22px}.roomBuilder .builderConsent{margin:8px 0;line-height:1.4}.roomBuilder .builderConsent small{display:block}
