/* CCCI Core: portal, login card, application form helpers. Colour tokens match the CCCI theme. */
:root{
  color-scheme:light;
  --brand:#283180;        /* CCCI logo navy */
  --brand-deep:#1a1e55;
  --reef:#0077aa;         /* link blue, darkened logo blue */
  --coral:#c4620f;        /* EDA buttons: logo orange, deepened for white text */
  --charcoal:#343436;
  /* logo accents: replace with exact CCCI logo hex codes */
  --c-ocean:#009cde;--c-leaf:#43b649;--c-sun:#fdca10;--c-coral:#f69b39;
  --tint-ocean:#e6f5fc;--tint-leaf:#edf7e8;--tint-sun:#fff8db;--tint-coral:#fef1e2;
  --stripe:linear-gradient(90deg,var(--c-sun) 0 20%,var(--c-coral) 20% 40%,var(--c-leaf) 40% 60%,var(--c-ocean) 60% 80%,var(--brand) 80% 100%);
  --paper:#fcfbf8;         /* off-white */
  --sand:#f6efe2;--sand-line:#e8dcc6;  /* sand bands */
  --sky:#e1f1fb;          /* soft blue bands */
  --blue:#009cde;--blue-ink:#ffffff;  /* feature band, logo blue */
  --mist:#f5f7fb;         /* light blue-tinted neutral band */
  --ink:#171a3a;
  --muted:#565b7a;
  --line:#dadded;
  --card:#ffffff;
  --on-brand:#ffffff;
  --btn:#282e79;--btn-ink:#ffffff;
  --ok:#1d7a4c;--ok-bg:#e1f2e9;
  --warn:#8f5a00;--warn-bg:#fbefd6;
  --bad:#ad2f27;--bad-bg:#fae3e0;
  --info:#0d7480;--info-bg:#dff1f2;
  --display:"Jost","Century Gothic",Arial,sans-serif;
  --body:"Roboto","Segoe UI",Arial,sans-serif;
  --wrap:1200px;
}
/* Base pieces used by plugin output (also provided by the CCCI theme) */
.ccci-portal,.ccci-login,.ccci-apply,.ccci-repo{font-family:var(--body);color:var(--ink)}
.ccci-portal .btn,.ccci-login .btn{justify-self:start;display:inline-flex;align-items:center;gap:8px;background:var(--btn);color:var(--btn-ink);border:1px solid var(--btn);border-radius:4px;padding:10px 18px;font:inherit;font-weight:500;text-decoration:none;cursor:pointer;font-size:.95rem}
.ccci-portal .btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.ccci-portal .btn.coral{background:var(--coral);border-color:var(--coral);color:#fff}
.ccci-portal .btn.sm{padding:6px 12px;font-size:.84rem}
.ccci-portal .btn:disabled{opacity:.5;cursor:wait}
.ccci-portal h1{font-family:var(--display);font-weight:300;text-transform:uppercase;letter-spacing:.04em;line-height:1.12;margin:0}
.ccci-portal h3{font-family:var(--display);font-weight:400;margin:0}
.ccci-portal .eyebrow{font-family:var(--display);font-weight:500;font-size:.86rem;letter-spacing:.16em;text-transform:uppercase;color:var(--reef)}
.ccci-portal .field{display:grid;gap:6px;min-width:0}
.ccci-portal .field label{font-weight:500;font-size:.9rem}
.ccci-portal .field input,.ccci-portal .field select,.ccci-portal .field textarea{width:100%;min-width:0;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:4px;padding:10px 12px;font:inherit}
.ccci-portal .field textarea{min-height:96px;resize:vertical}
.ccci-portal .row2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:14px}
.ccci-portal .note{font-size:.84rem;color:var(--muted)}
.ccci-portal .err{color:var(--bad)}
.ccci-portal p{margin:0}
.ccci-portal a{color:var(--reef)}
.ccci-portal .kv{display:grid;grid-template-columns:160px minmax(0,1fr);gap:8px 16px;font-size:.95rem;margin:0}
.ccci-portal .kv dt{color:var(--muted)}
.ccci-portal .kv dd{margin:0;font-weight:500;min-width:0;overflow-wrap:anywhere}
@media (max-width:520px){.ccci-portal .kv{grid-template-columns:1fr}}
.ccci-portal .stepper{display:flex;list-style:none;margin:0;padding:0;counter-reset:s;flex-wrap:wrap}
.ccci-portal .stepper li{flex:1;min-width:110px;padding:10px 12px 10px 0;border-top:3px solid var(--line);font-size:.84rem;color:var(--muted);counter-increment:s}
.ccci-portal .stepper li::before{content:counter(s) ". ";font-weight:700}
.ccci-portal .stepper li.on{border-color:var(--coral);color:var(--ink);font-weight:500}
.ccci-portal .stepper li.done{border-color:var(--brand);color:var(--brand)}
.ccci-portal .cols2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));gap:18px}
.pill{display:inline-block;font-size:.72rem;font-weight:500;border-radius:999px;padding:2px 9px;white-space:nowrap;background:var(--mist);color:var(--brand);border:1px solid var(--line)}
.pill.ok{background:var(--ok-bg);color:var(--ok);border-color:transparent}
.pill.warn{background:var(--warn-bg);color:var(--warn);border-color:transparent}
.pill.bad{background:var(--bad-bg);color:var(--bad);border-color:transparent}
.pill.info{background:var(--info-bg);color:var(--info);border-color:transparent}
.pill.sample{background:transparent;border:1px dashed var(--line);color:var(--muted);font-weight:400}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}

/* Portal (matches the approved concept) */
/* ============ PORTAL ============ */
.app{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:80vh;background:var(--mist)}
@media (max-width:900px){.app{grid-template-columns:1fr}}
nav.side{background:var(--card);color:var(--muted);border-right:1px solid var(--line);padding:29px 12px 18px;display:grid;gap:2px;align-content:start}
nav.side .who{display:grid;gap:2px;padding:0 10px 16px;border-bottom:1px solid var(--line);margin-bottom:10px}
nav.side .who b{color:var(--reef);font-family:var(--display);font-weight:500;font-size:.86rem;line-height:1.6;text-transform:uppercase;letter-spacing:.16em}
nav.side .who span{font-size:.8rem}
nav.side .who select{margin-top:8px;background:var(--mist);color:var(--ink);border:1px solid var(--line);border-radius:4px;padding:6px 8px;font:inherit;font-size:.85rem}

nav.side button{display:flex;justify-content:space-between;align-items:center;gap:8px;background:none;border:0;color:var(--ink);text-align:left;padding:9px 10px;border-radius:4px;font:inherit;font-size:.93rem;cursor:pointer}
nav.side button:hover{background:var(--mist);color:var(--brand)}
nav.side button[aria-current="true"]{background:var(--tint-ocean);color:var(--brand);box-shadow:inset 3px 0 0 var(--c-ocean);font-weight:500}
nav.side .count{font-size:.72rem;background:var(--tint-coral);color:var(--coral);border-radius:999px;padding:1px 8px}
nav.side .foot{margin-top:16px;padding-top:12px;border-top:1px solid var(--line);display:grid;gap:4px}
nav.side .foot a{color:var(--reef);font-size:.86rem;padding:4px 10px;text-decoration:none}
@media (max-width:900px){nav.side{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}nav.side .who,nav.side .foot{grid-column:1/-1}}
.pmain{padding:26px clamp(16px,3vw,36px) 48px;display:grid;gap:22px;align-content:start;min-width:0}
.pmain .top{display:flex;justify-content:space-between;gap:14px;align-items:end;flex-wrap:wrap}
.pmain h1{font-size:clamp(1.6rem,3vw,2.2rem)}
.box{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:20px;display:grid;gap:12px;min-width:0;align-content:start}
.box h3{font-size:1.1rem;text-transform:uppercase;letter-spacing:.05em}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:14px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:16px;display:grid;gap:2px}
.kpi b{font-family:var(--display);font-weight:300;font-size:2rem;color:var(--brand);font-variant-numeric:tabular-nums;line-height:1.1}
.kpi span{font-size:.84rem;color:var(--muted)}
.kpi{border-top:3px solid var(--c-ocean)}.kpi:nth-child(2){border-top-color:var(--c-leaf)}.kpi:nth-child(3){border-top-color:var(--c-sun)}.kpi:nth-child(4){border-top-color:var(--brand)}.kpi.alert{border-top-color:var(--c-coral)}
.cols2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));gap:18px}
.tbl{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:.9rem}
th{text-align:left;font-weight:500;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top}
tr[data-open]{cursor:pointer}
tr[data-open]:hover td{background:var(--mist)}
td.num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.li{display:grid;gap:2px;padding:10px 0;border-top:1px solid var(--line)}
.li:first-child{border-top:0}
.li[data-open]{cursor:pointer}
.li .m{font-size:.8rem;color:var(--muted)}
.pipe{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
@media (max-width:760px){.pipe{grid-template-columns:repeat(3,minmax(0,1fr))}}
.pipe button{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:12px;text-align:left;cursor:pointer;font:inherit;color:var(--ink);display:grid;gap:2px}
.pipe button[aria-pressed="true"]{border-color:var(--brand);box-shadow:inset 0 3px 0 var(--brand)}
.pipe b{font-family:var(--display);font-size:1.6rem;font-weight:300;font-variant-numeric:tabular-nums;line-height:1}
.pipe span{font-size:.78rem;color:var(--muted)}
.backlink{background:none;border:0;color:var(--reef);font:inherit;cursor:pointer;padding:0;justify-self:start}
.logrow{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px;font-size:.86rem;padding:8px 0;border-top:1px solid var(--line)}
.logrow span{color:var(--muted)}
.od{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 10px;align-items:center;font-size:.86rem;background:var(--mist);border:1px solid var(--line);border-radius:4px;padding:12px}
.od code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.8rem;overflow-wrap:anywhere}
.files{display:grid;gap:6px}
.files div{display:flex;justify-content:space-between;gap:10px;font-size:.86rem;padding:8px 10px;border:1px solid var(--line);border-radius:4px;background:var(--card);flex-wrap:wrap}
.bar{height:8px;background:var(--mist);border-radius:4px;overflow:hidden;display:flex}
.bar i{display:block;height:100%}
.hint{font-size:.82rem;color:var(--muted);border:1px dashed var(--line);border-radius:4px;padding:10px 12px}
.flash{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--paper);padding:12px 18px;border-radius:4px;z-index:100;font-size:.92rem;max-width:min(560px,calc(100vw - 32px));box-shadow:0 10px 30px rgba(0,0,0,.25)}
nav.side{min-width:0;overflow:hidden}
nav.side>*{min-width:0}
nav.side .who select{width:100%;min-width:0;max-width:100%}
nav.side button{width:100%}
nav.side .foot a{display:block}
.ccci-portal tr[data-open]:focus-visible,.ccci-portal .li[data-open]:focus-visible{outline:3px solid var(--reef);outline-offset:-3px}
.ccci-portal .files a.btn{padding:4px 10px}
.ccci-portal details>summary{list-style-position:outside}

/* Portal sign-in card */
.ccci-login{display:grid;place-items:center;padding-block:64px}
.ccci-login .card{width:min(460px,100%);background:var(--card);border:1px solid var(--line);border-radius:4px;padding:30px;display:grid;gap:16px}
.ccci-login form{display:grid;gap:14px}
.ccci-login form p{margin:0;display:grid;gap:6px}
.ccci-login form label{font-weight:500;font-size:.9rem}
.ccci-login form input[type=text],.ccci-login form input[type=password]{width:100%;border:1px solid var(--line);border-radius:4px;padding:10px 12px;font:inherit;background:var(--card)}
.ccci-login form .login-remember label{display:flex;gap:8px;align-items:center;font-weight:400}
.ccci-login form input[type=submit]{background:var(--btn);color:var(--btn-ink);border:1px solid var(--btn);border-radius:4px;padding:10px 18px;font:inherit;font-weight:500;cursor:pointer;justify-self:start}
.ccci-login h2{font-family:var(--display);font-weight:300;text-transform:uppercase;letter-spacing:.04em;margin:0}

/* Public pieces */
.logos a{border:1px solid var(--line);border-radius:4px;height:96px;display:grid;place-items:center;text-align:center;padding:10px;background:var(--card);text-decoration:none;font-family:var(--display);color:var(--brand)}
.logos a:hover{border-color:var(--c-ocean)}
.logos img{max-height:58px;max-width:100%;width:auto;object-fit:contain}
.doc[hidden],tr[hidden]{display:none!important}
.ccci-apply .stepper li{cursor:default}
.ccci-portal .callout{display:grid;gap:4px;background:var(--tint-coral);border-left:3px solid var(--coral);border-radius:4px;padding:10px 14px;font-size:.92rem}
.ccci-portal .callout b{color:var(--coral);font-weight:500}
.ccci-portal form[data-askform],.ccci-portal form[data-reply]{margin-top:6px;padding-top:10px;border-top:1px dashed var(--line)}
/* Event questions (dashboard) */
.evcard{gap:14px}
.evtop{display:flex;justify-content:space-between;gap:16px;align-items:start}
.evtop h3{font-size:1.15rem}
.evcount{text-align:right;display:grid;line-height:1.1}
.evcount b{font-family:var(--display);font-weight:300;font-size:2rem;color:var(--brand)}
.evcount span{font-size:.8rem;color:var(--muted)}
.evacts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.evacts .pill{margin-right:4px}
.evdel{color:var(--bad)!important}
.evshare{display:grid;gap:14px;border-top:1px dashed var(--line);padding-top:14px}
.evqr{display:grid;grid-template-columns:180px minmax(0,1fr);gap:16px;align-items:center}
.qrbox{width:180px;height:180px;background:#fff;border:1px solid var(--line);border-radius:4px}
.qrbox svg{width:100%;height:100%;display:block}
@media (max-width:560px){.evqr{grid-template-columns:1fr}}
.evq{border:1px solid var(--line);border-radius:4px;padding:12px;display:grid;gap:10px;background:var(--card);margin-bottom:10px}
.evq.evhead{background:var(--mist)}
.evqbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.evqbar select{width:auto;border:1px solid var(--line);border-radius:4px;padding:6px 8px;font:inherit;font-size:.88rem;background:var(--card);color:var(--ink)}
.qnum{font-family:var(--display);font-weight:500;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--reef);min-width:56px}
.evqbtns{margin-left:auto;display:flex;gap:6px}
.chk{display:flex;gap:8px;align-items:center;font-size:.9rem}
.evbars{display:grid;gap:8px;margin-top:6px}
.evbar{display:grid;grid-template-columns:minmax(80px,40%) minmax(0,1fr) 34px;gap:10px;align-items:center;font-size:.9rem}
.evbar i{height:10px;background:var(--mist);border-radius:5px;overflow:hidden;display:block}
.evbar i b{display:block;height:100%;background:var(--c-ocean);border-radius:5px}
.evbar em{font-style:normal;text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}
.evtext{margin:6px 0 0;padding-left:18px;display:grid;gap:6px;font-size:.93rem}
/* Participant page */
.ccci-event{max-width:720px;display:grid;gap:18px}
.ccci-event .ev-head{display:grid;gap:8px}
.ccci-event .ev-head h2{font-family:var(--display);font-weight:300;text-transform:uppercase;letter-spacing:.03em;font-size:clamp(1.5rem,4vw,2.1rem);line-height:1.15;margin:0;color:var(--brand)}
.ccci-event .ev-head p{white-space:normal;color:var(--muted)}
.ccci-event .ev-form{display:grid;gap:18px}
.ccci-event .ev-sec{font-family:var(--display);font-weight:500;font-size:.86rem;letter-spacing:.16em;text-transform:uppercase;color:var(--reef);border-top:1px solid var(--line);padding-top:14px;margin:4px 0 0}
.ccci-event .ev-sec:first-of-type{border-top:0;padding-top:0}
.ccci-event fieldset{border:0;padding:0;margin:0}
.ccci-event legend{font-weight:500;font-size:.95rem;padding:0;margin-bottom:6px}
.ccci-event .field label{font-size:.95rem}
.ccci-event .qn{color:var(--reef);font-weight:500}
.ccci-event .req{font-size:.72rem;font-weight:400;color:var(--coral);margin-left:4px}
.ccci-event .ev-choices{display:grid;gap:8px}
.ccci-event .ev-rating .ev-choices{grid-template-columns:repeat(5,minmax(0,1fr))}
.ccci-event .ev-choice{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:4px;padding:10px 12px;cursor:pointer;background:var(--card);font-weight:400}
.ccci-event .ev-rating .ev-choice{justify-content:center}
.ccci-event .ev-choice input{width:18px;height:18px;margin:0;accent-color:var(--brand)}
.ccci-event .ev-choice:has(input:checked){border-color:var(--brand);background:var(--tint-ocean)}
.ccci-event .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ccci-event .btn{justify-self:start;padding:12px 22px;font-size:1rem}
.ccci-event .ev-done{gap:8px}
.ccci-event .ev-done h2{font-family:var(--display);font-weight:300;text-transform:uppercase;margin:0}
.ccci-portal h3.evqh{font-family:var(--body);font-weight:500;text-transform:none;letter-spacing:0;font-size:1rem;line-height:1.4}
.evcard h3{text-transform:none;letter-spacing:.01em}
/* Participant page: rating grids, 1 to 10 scales, Other box */
.ccci-event .ev-scale10{grid-template-columns:repeat(5,minmax(0,1fr))!important}
.ccci-event .ev-rating .ev-choices,.ccci-event .ev-mrow .ev-choices{grid-template-columns:repeat(5,minmax(0,1fr))}
.ccci-event .ev-scale5 .ev-choice,.ccci-event .ev-scale10 .ev-choice{justify-content:center;padding:10px 4px;gap:6px}
.ccci-event .ev-matrix{display:grid;gap:4px}
.ccci-event .ev-mrow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.ccci-event .ev-mrow:first-of-type{border-top:0}
.ccci-event .ev-mlabel{font-size:.95rem}
@media (max-width:640px){.ccci-event .ev-mrow{grid-template-columns:1fr;gap:6px}}
.ccci-event .ev-other{flex-wrap:wrap}
.ccci-event .ev-othertext{flex:1;min-width:140px;border:1px solid var(--line);border-radius:4px;padding:8px 10px;font:inherit;background:var(--card)}
.evq .evq-row{display:flex;gap:10px;flex-wrap:wrap;align-items:end}
.evq .evq-row .field{flex:1;min-width:150px}
.evq .evq-row select{border:1px solid var(--line);border-radius:4px;padding:8px;font:inherit;background:var(--card)}
.evavg{display:grid;gap:8px;margin-top:6px}
.evavg div{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) 54px;gap:10px;align-items:center;font-size:.9rem}
.evavg i{height:10px;background:var(--mist);border-radius:5px;overflow:hidden;display:block}
.evavg i b{display:block;height:100%;background:var(--c-leaf);border-radius:5px}
.evavg em{font-style:normal;text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}
