/* Candidate research views. Equal treatment of reviewed and pending profiles. */
.candidate-workspace{min-width:0}
.candidate-workspace .section-top>div,.candidate-profile-head>div{min-width:0}
.candidate-workspace h1,.candidate-profile h1{overflow-wrap:anywhere}
.candidate-toolbar{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,1.2fr);gap:18px;align-items:end;margin:25px 0 18px}
.candidate-toolbar>div{min-width:0}
.candidate-toolbar label{display:block;font-size:13px;font-weight:650;margin-bottom:8px}
.candidate-toolbar input,.candidate-toolbar select{min-width:0;max-width:100%;min-height:48px}
.candidate-filter-count{font-size:13px;color:var(--muted);margin:14px 0 20px}
.candidate-coverage{background:var(--blue-soft);border:1px solid #cdd8f7;border-radius:12px;padding:19px 22px;margin:22px 0;color:var(--ink);font-size:14px;line-height:1.6}
.candidate-coverage p{color:inherit;margin:8px 0 0}
.candidate-coverage p:first-child{margin-top:0}
.candidate-coverage strong{font-weight:650}
.candidate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}
.candidate-brief-card{display:flex;flex-direction:column;min-width:0;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:24px;overflow-wrap:anywhere}
.candidate-card-meta{font-size:12px;color:var(--muted);line-height:1.55;margin-bottom:13px}
.candidate-card-meta p{font-size:inherit;margin:4px 0}
.candidate-card-meta .tag{margin:0 5px 7px 0}
.candidate-card-name{font-size:24px;line-height:1.2;letter-spacing:-.035em;margin:0 0 16px;color:var(--ink);overflow-wrap:anywhere}
.candidate-card-name a{color:inherit;text-decoration-thickness:1px}
.candidate-brief-card>p{font-size:14px;line-height:1.65;margin-bottom:17px}
.candidate-outlook{padding:15px 0;border-block:1px solid var(--line);font-size:13px;line-height:1.6;margin:0 0 17px}
.candidate-outlook p{font-size:inherit;margin:6px 0 0}
.candidate-outlook strong{color:var(--ink);font-size:13px;font-weight:650}
.candidate-highlights{padding-left:18px;margin:0 0 20px;color:var(--muted);font-size:14px;line-height:1.65}
.candidate-highlights li{padding-left:2px;margin-bottom:9px}
.candidate-highlights li:last-child{margin-bottom:0}
.candidate-highlights strong{color:var(--ink);font-weight:600}
.candidate-card-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:auto;padding-top:16px;align-items:center}
.candidate-card-actions .button{font-size:12px;gap:8px;padding:11px 13px;min-height:44px;flex:1 1 auto}
.candidate-card-actions .button[aria-pressed=true]{border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}
.candidate-shortlist{position:sticky;bottom:12px;z-index:15;display:flex;justify-content:space-between;align-items:center;gap:20px;background:var(--ink);color:var(--white);border:1px solid var(--ink);border-radius:14px;padding:18px 22px;margin-top:25px;box-shadow:0 8px 25px #152f4524;max-width:100%}
.candidate-shortlist>div{min-width:0}
.candidate-shortlist strong{font-size:15px;display:block;overflow-wrap:anywhere}
.candidate-shortlist p{color:#dce6ef;font-size:12px;margin:6px 0 0;overflow-wrap:anywhere}
.candidate-shortlist .actions{gap:9px;flex-shrink:0}
.candidate-shortlist .button{background:var(--white);border-color:var(--white);color:var(--ink);font-size:13px;padding:10px 15px;min-height:44px}
.candidate-shortlist .button.text{background:transparent;border-color:#8297a9;color:var(--white)}
.candidate-shortlist .button:focus-visible{outline-color:white;outline-offset:4px}
.candidate-profile{max-width:980px;margin:0 auto;min-width:0}
.candidate-profile-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin:0 0 26px}
.candidate-profile-head h1{font-size:clamp(34px,5vw,52px);line-height:1.12;margin-bottom:14px}
.candidate-profile-head p{font-size:15px;margin-bottom:10px}
.candidate-profile-head .actions{flex-shrink:0}
.candidate-overview,.candidate-outlook-panel{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:27px;margin-bottom:23px;min-width:0}
.candidate-overview h2,.candidate-outlook-panel h2{font-size:25px;line-height:1.25;margin-bottom:16px}
.candidate-overview p,.candidate-outlook-panel p{font-size:15px;line-height:1.7}
.candidate-overview p:last-child,.candidate-outlook-panel p:last-child{margin-bottom:0}
.candidate-overview ul,.candidate-outlook-panel ul{padding-left:21px;color:var(--muted);font-size:15px;line-height:1.65}
.candidate-overview li,.candidate-outlook-panel li{margin-bottom:10px}
.candidate-outlook-panel .source-type{margin-bottom:12px}
.promise-list{display:grid;gap:18px;margin:22px 0 28px}
.promise-card{background:white;border:1px solid var(--line);border-radius:14px;padding:25px;min-width:0;overflow-wrap:anywhere}
.promise-card h2,.promise-card h3{font-size:22px;line-height:1.3;margin:8px 0 14px;letter-spacing:-.025em}
.promise-card p{font-size:14px;line-height:1.7}
.promise-card>p:last-child{margin-bottom:0}
.promise-label{display:block;color:var(--muted);font:600 10px/1.5 ui-monospace,SFMono-Regular,monospace;text-transform:uppercase;letter-spacing:.08em;margin-bottom:9px}
.promise-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:20px 0;padding:20px 0;border-block:1px solid var(--line)}
.promise-facts>div{min-width:0}
.promise-facts dt{color:var(--ink);font-size:12px;font-weight:650;margin-bottom:8px}
.promise-facts dd{color:var(--muted);font-size:13px;line-height:1.6;margin:0;overflow-wrap:anywhere}
.candidate-source-list{font-size:13px;line-height:1.65;color:var(--muted);margin:22px 0;padding-left:20px}
.candidate-source-list li{margin-bottom:15px;padding-left:2px;overflow-wrap:anywhere}
.candidate-source-list p{font-size:12px;margin:7px 0}
.candidate-source-list a{overflow-wrap:anywhere}
.candidate-source-list small{display:block;font-size:12px;margin-top:6px}
.research-gap{color:var(--muted);background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:16px 18px;font-size:13px;line-height:1.65;margin:16px 0}
.research-gap p{font-size:inherit;margin:6px 0 0}
.research-gap p:first-child{margin-top:0}
.research-gap strong{color:var(--ink);font-weight:650}
.candidate-compare-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:20px;align-items:start;margin:24px 0}
.candidate-compare-card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:24px;min-width:0;overflow-wrap:anywhere}
.candidate-compare-card h2{font-size:24px;line-height:1.25;margin-bottom:16px}
.candidate-compare-card h3{font-size:17px;line-height:1.4;margin:23px 0 10px}
.candidate-compare-card>p,.candidate-compare-card li{font-size:14px;line-height:1.65}
.candidate-compare-card ul{padding-left:18px;color:var(--muted)}
.candidate-compare-card li{margin-bottom:10px}
.candidate-compare-card .promise-facts{grid-template-columns:1fr;gap:15px}
.candidate-empty{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:40px 28px;text-align:center;margin:22px 0}
.candidate-empty h2{font-size:26px;line-height:1.25}
.candidate-empty p{font-size:15px;max-width:660px;margin:0 auto 20px;line-height:1.65}
.candidate-empty .actions{justify-content:center}
.candidate-disclosure{padding:17px 20px;border-left:3px solid var(--blue);background:var(--blue-soft);border-radius:0 10px 10px 0;font-size:13px;line-height:1.65;margin:22px 0;color:var(--ink)}
.candidate-disclosure p{font-size:inherit;color:inherit;margin:8px 0 0}
.candidate-disclosure p:first-child{margin-top:0}
.source-type{display:inline-block;font-size:11px;line-height:1.5;font-weight:600;color:var(--muted);background:var(--paper);border:1px solid var(--line);border-radius:5px;padding:4px 7px;vertical-align:middle;max-width:100%;overflow-wrap:anywhere}
.candidate-workspace details,.candidate-profile details,.candidate-compare-card details{border-top:1px solid var(--line);padding-top:16px;margin-top:18px;font-size:13px}
.candidate-workspace summary,.candidate-profile summary,.candidate-compare-card summary{color:var(--ink);font-weight:650;line-height:1.55;min-height:32px;padding:3px 0;cursor:pointer}
.candidate-workspace :is(a,button,input,select,summary):focus-visible,.candidate-profile :is(a,button,input,select,summary):focus-visible,.candidate-compare-card :is(a,button,summary):focus-visible{outline:3px solid var(--blue);outline-offset:4px}
.candidate-workspace .candidate-shortlist .button:focus-visible{outline-color:white}

@media(max-width:1050px){
  .candidate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .candidate-profile-head{flex-wrap:wrap}
}
@media(max-width:760px){
  .candidate-toolbar{grid-template-columns:1fr;gap:15px;margin-top:22px}
  .candidate-grid,.candidate-compare-grid{grid-template-columns:minmax(0,1fr);gap:16px}
  .candidate-brief-card,.candidate-compare-card{padding:22px}
  .candidate-coverage{padding:17px 18px;font-size:13px}
  .candidate-card-name,.candidate-compare-card h2{font-size:24px}
  .candidate-shortlist{gap:14px;flex-wrap:wrap;padding:16px 18px;bottom:10px}
  .candidate-shortlist .actions{flex-shrink:1;flex-wrap:wrap;width:100%}
  .candidate-shortlist .button{flex:1 1 auto;font-size:12px;padding:10px 12px}
  .candidate-profile-head{flex-direction:column;gap:16px;margin-bottom:22px}
  .candidate-profile-head .actions{flex-wrap:wrap;width:100%}
  .candidate-profile-head .button{font-size:13px;padding:11px 14px}
  .candidate-overview,.candidate-outlook-panel{padding:22px}
  .candidate-overview h2,.candidate-outlook-panel h2{font-size:23px}
  .promise-card{padding:21px}
  .promise-card h2,.promise-card h3{font-size:21px}
  .promise-facts{grid-template-columns:1fr;gap:17px;padding:18px 0}
  .promise-facts dt{margin-bottom:5px}
  .candidate-empty{padding:30px 21px}
  .candidate-empty h2{font-size:23px}
  .candidate-disclosure{padding:16px 17px}
  .candidate-source-list{padding-left:18px}
}
@media(max-width:360px){
  .candidate-card-actions{align-items:stretch;flex-direction:column}
  .candidate-card-actions .button{width:100%}
  .candidate-brief-card,.candidate-compare-card,.candidate-overview,.candidate-outlook-panel{padding:19px}
  .candidate-profile-head h1{font-size:34px}
  .candidate-shortlist{padding:14px}
}
@media print{
  .candidate-toolbar,.candidate-card-actions,.candidate-shortlist,.candidate-filter-count,.candidate-profile-head .actions{display:none!important}
  .candidate-grid,.candidate-compare-grid{display:block;margin:16px 0}
  .candidate-profile{max-width:none}
  .candidate-profile-head{display:block;margin-bottom:18px}
  .candidate-brief-card,.candidate-compare-card,.promise-card,.candidate-overview,.candidate-outlook-panel{background:white;border:1px solid #aaa;border-radius:0;padding:16px;box-shadow:none;margin:0 0 16px;break-inside:avoid}
  .candidate-card-name,.candidate-compare-card h2{font-size:22px}
  .candidate-coverage,.candidate-disclosure,.research-gap{background:white;color:black;border:1px solid #999;padding:12px;border-radius:0;break-inside:avoid}
  .candidate-coverage p,.candidate-disclosure p,.research-gap p{color:black}
  .candidate-highlights,.candidate-overview p,.candidate-outlook-panel p,.promise-card p,.candidate-compare-card>p{font-size:12px;line-height:1.55}
  .promise-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;padding:14px 0;margin:15px 0}
  .promise-facts dt,.promise-facts dd{font-size:11px}
  .candidate-source-list{font-size:10px;line-height:1.5}
  .candidate-source-list a{color:black;text-decoration:underline;overflow-wrap:anywhere}
  .candidate-source-list a[href]::after{content:" (" attr(href) ")";font-size:9px;overflow-wrap:anywhere}
  .source-type{background:white;color:black;border-color:#aaa}
  .candidate-workspace details::details-content,.candidate-profile details::details-content,.candidate-compare-card details::details-content{display:block;content-visibility:visible}
}
/* Scannable card labels, with detailed context inside the full brief. */
.candidate-brief-card>.candidate-disclosure{border:0;padding:0;background:none;border-radius:0;margin:0 0 14px;font-size:11px;color:var(--muted)}
.candidate-highlights{padding:0}.candidate-highlights ul{padding-left:19px;margin:0}.candidate-highlights p{font-size:14px;margin:0}.candidate-highlights .mini-label{margin-bottom:12px}
.candidate-originals{gap:20px;margin:0 0 23px;font-size:13px}.candidate-overview .candidate-disclosure{display:block;margin:16px 0 0;padding:0;background:none;border:0;color:var(--muted);font-size:12px}.candidate-source-list{padding-left:0;margin-bottom:0}.candidate-source-list .source-type{display:block;width:max-content;max-width:100%;margin-bottom:10px}.candidate-sources li{margin:16px 0}.candidate-sources .source-type{display:block;width:max-content;max-width:100%;margin-top:8px}.candidate-more{margin-top:22px}.candidate-compare-card .promise-card{padding:18px;margin:18px 0}.candidate-compare-card .ask-box{padding:15px}.candidate-compare-card .ask-box p{font-size:15px}.candidate-hub-link{margin-bottom:22px}.candidate-toolbar small{display:block;margin-top:8px;font-size:11px}
.outlook-attribution{display:block;font-size:11px;line-height:1.6;margin-top:8px;color:var(--muted)}

.campaign-status{background:#fff5dd;border:1px solid #e5ce91;border-radius:10px;padding:15px 17px;margin:0 0 20px;color:#594617;font-size:13px;line-height:1.6}
.campaign-status strong{display:block}.campaign-status p{font-size:inherit;color:inherit;margin:7px 0}.campaign-status a{color:inherit}
#candidate-question-text{width:100%;min-height:190px;font:inherit;font-size:14px;line-height:1.6;padding:14px;border:1px solid var(--line);border-radius:10px;resize:vertical}

.candidate-quick-source{flex-basis:100%;font-size:12px;margin:0 0 8px;line-height:1.6}
.candidate-pilot-links{font-size:12px!important}
#candidate-shortlist:has(.candidate-shortlist){position:sticky;bottom:12px;z-index:15}.candidate-shortlist{position:static}
@media print{#candidate-shortlist{display:none!important}}

@media(min-width:761px){.candidate-toolbar:has(#candidate-ward){grid-template-columns:.8fr 1.2fr 1fr}}
