/* SETAP RDC — participant surface.
   One stylesheet, no framework. The deployed app and the offline preview share
   this file byte for byte, so what is reviewed is what ships. */

:root{
  --ink:#14201c; --ink-2:#3d4b45; --ink-3:#6b7a72;
  --line:#dfe5e1; --line-2:#eef2ef;
  --bg:#f7f9f8; --card:#ffffff;
  --brand:#146b4f; --brand-2:#0f5540; --brand-soft:#e8f3ee;
  --warn:#8a5a00; --warn-soft:#fdf4e3;
  --stop:#8c2f27; --stop-soft:#fbecea;
  --focus:#2f7d62;
  --r:10px; --r-sm:7px;
  --sans:"Inter","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--sans); color:var(--ink); background:var(--bg);
  font-size:15px; line-height:1.55; -webkit-font-smoothing:antialiased;
}
a{color:var(--brand-2)}
h1,h2,h3{line-height:1.25; margin:0 0 .4em; font-weight:650; letter-spacing:-.011em}
h1{font-size:1.42rem} h2{font-size:1.12rem} h3{font-size:.98rem}
p{margin:0 0 .8em}
small{font-size:.82rem}

/* ---------- shell ---------- */
.topbar{
  position:sticky; top:0; z-index:20; background:rgba(255,255,255,.96);
  border-bottom:1px solid var(--line); backdrop-filter:blur(12px);
}
.topbar-inner{width:min(1180px,100%); min-height:72px; margin:0 auto; padding:.6rem 1.5rem; display:flex; align-items:center; gap:1.5rem}
.brand{display:flex; align-items:baseline; gap:.55rem; color:var(--ink); text-decoration:none; white-space:nowrap}
.brand b{font-size:1.02rem; letter-spacing:-.01em}
.brand span{color:var(--ink-3); font-size:.8rem}
.site-nav{display:flex; align-items:center; gap:1.25rem; margin-left:auto}
.site-nav a{color:var(--ink-2); font-size:.9rem; font-weight:700; letter-spacing:.01em; text-decoration:none}
.site-nav a:hover,.site-nav a:focus-visible,.site-nav a[aria-current="page"]{color:var(--brand)}
.langswitch{display:inline-flex; border:1px solid var(--line); border-radius:99px; overflow:hidden}
.langswitch button{
  border:0; background:transparent; padding:.32rem .78rem; font:inherit; font-size:.84rem;
  color:var(--ink-2); cursor:pointer;
}
.langswitch button[aria-pressed="true"]{background:var(--brand); color:#fff}

.hold{
  background:var(--warn-soft); border-bottom:1px solid #f0e0bd;
  padding:.55rem 1.1rem; font-size:.84rem; color:var(--warn);
}
.hold b{color:#6d4700}

.wrap{max-width:1180px; margin:0 auto; padding:1.2rem 1.1rem 4rem; display:grid; grid-template-columns:250px 1fr; gap:1.4rem}
@media(max-width:900px){ .wrap{grid-template-columns:1fr} .side{position:static !important} }

/* ---------- stepper ---------- */
.side{position:sticky; top:64px; align-self:start}
.steps{list-style:none; margin:0; padding:0; border:1px solid var(--line); border-radius:var(--r); background:var(--card); overflow:hidden}
.steps li{border-bottom:1px solid var(--line-2)}
.steps li:last-child{border-bottom:0}
.steps button{
  width:100%; text-align:left; border:0; background:transparent; font:inherit;
  padding:.6rem .8rem; cursor:pointer; display:flex; gap:.6rem; align-items:flex-start; color:var(--ink-2);
}
.steps button:hover{background:var(--line-2)}
.steps li[data-active="true"] button{background:var(--brand-soft); color:var(--ink); font-weight:600}
.steps .n{
  flex:0 0 20px; height:20px; border-radius:99px; background:var(--line); color:var(--ink-3);
  font-size:.72rem; display:grid; place-items:center; margin-top:.12rem; font-variant-numeric:tabular-nums;
}
.steps li[data-active="true"] .n{background:var(--brand); color:#fff}
.steps li[data-done="true"] .n{background:var(--brand-2); color:#fff}
.steps .t{font-size:.86rem}

.meter{margin-top:.9rem; border:1px solid var(--line); border-radius:var(--r); background:var(--card); padding:.75rem .8rem}
.meter h3{font-size:.78rem; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-3); margin-bottom:.5rem}
.bar{height:6px; background:var(--line); border-radius:99px; overflow:hidden; margin:.25rem 0 .35rem}
.bar i{display:block; height:100%; background:var(--brand)}
.meter dl{margin:.5rem 0 0; display:grid; grid-template-columns:1fr auto; gap:.15rem .5rem; font-size:.8rem}
.meter dt{color:var(--ink-3)} .meter dd{margin:0; font-variant-numeric:tabular-nums}

/* ---------- cards ---------- */
.card{background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:1.1rem 1.2rem; margin-bottom:1rem}
.card > h2{margin-bottom:.15rem}
.lede{color:var(--ink-3); font-size:.9rem; margin-bottom:1rem}

.notice{border-left:3px solid var(--brand); background:var(--brand-soft); padding:.65rem .85rem; border-radius:var(--r-sm); font-size:.87rem; margin:0 0 1rem}
.notice.warn{border-color:#c99a2e; background:var(--warn-soft)}
.notice.stop{border-color:var(--stop); background:var(--stop-soft)}
.notice p:last-child{margin-bottom:0}

/* ---------- fields ---------- */
.field{padding:.85rem 0; border-bottom:1px solid var(--line-2)}
.field:last-child{border-bottom:0}
.qhead{display:flex; gap:.55rem; align-items:baseline; flex-wrap:wrap; margin-bottom:.45rem}
.qid{font:600 .68rem/1.4 ui-monospace,SFMono-Regular,Menlo,monospace; color:var(--ink-3); background:var(--line-2); padding:.1rem .38rem; border-radius:4px}
.q{font-weight:550; flex:1 1 260px; min-width:0}
.tag{font-size:.68rem; padding:.1rem .4rem; border-radius:4px; border:1px solid var(--line); color:var(--ink-3); white-space:nowrap}
.tag.core{border-color:#bcd8cb; background:var(--brand-soft); color:var(--brand-2)}
.tag.ext{color:var(--ink-3)}
.tag.verif{border-color:#e3c98d; background:var(--warn-soft); color:var(--warn)}
.tag.priv{border-color:#d9b7b3; background:var(--stop-soft); color:var(--stop)}

.hint{font-size:.79rem; color:var(--ink-3); margin:-.15rem 0 .45rem; font-style:italic}
.opts{display:flex; flex-wrap:wrap; gap:.35rem}
.opt{
  display:inline-flex; align-items:center; gap:.4rem; border:1px solid var(--line); background:#fff;
  border-radius:99px; padding:.3rem .7rem; font-size:.86rem; cursor:pointer; color:var(--ink-2);
}
.opt:hover{border-color:#bcd8cb}
.opt input{accent-color:var(--brand); margin:0}
.opt[data-on="true"]{background:var(--brand-soft); border-color:#9fc9b6; color:var(--ink); font-weight:550}
.opt[data-escape="true"]{border-style:dashed; color:var(--ink-3)}
.opt[data-escape="true"][data-on="true"]{background:#f1f3f2; border-color:var(--ink-3)}

input[type=text],input[type=email],input[type=number],input[type=date],textarea,select{
  width:100%; font:inherit; padding:.45rem .6rem; border:1px solid var(--line); border-radius:var(--r-sm);
  background:#fff; color:var(--ink);
}
textarea{min-height:74px; resize:vertical}
:focus-visible{outline:2px solid var(--focus); outline-offset:1px}

.authored{margin-top:.45rem; font-size:.78rem; color:var(--ink-3); display:flex; gap:.5rem; flex-wrap:wrap; align-items:center}
.who{display:inline-flex; align-items:center; gap:.3rem}
.dot{width:16px; height:16px; border-radius:99px; background:var(--brand); color:#fff; font-size:.6rem; display:grid; place-items:center; font-weight:700}
.dot.b{background:#6a4fb3}
.corrected{color:var(--warn); font-weight:600}
.conf{border:1px solid var(--line); border-radius:4px; padding:0 .3rem}

.grid2{display:grid; grid-template-columns:1fr 1fr; gap:.7rem}
@media(max-width:640px){.grid2{grid-template-columns:1fr}}
label.lbl{display:block; font-size:.82rem; color:var(--ink-2); margin-bottom:.2rem; font-weight:550}

.btnrow{display:flex; gap:.55rem; flex-wrap:wrap; margin-top:1.1rem; padding-top:.9rem; border-top:1px solid var(--line-2)}
button.primary{background:var(--brand); color:#fff; border:0; border-radius:var(--r-sm); padding:.5rem 1.05rem; font:inherit; font-weight:600; cursor:pointer}
button.primary:hover{background:var(--brand-2)}
button.primary[disabled]{background:#b9c6bf; cursor:not-allowed}
button.ghost{background:#fff; color:var(--ink-2); border:1px solid var(--line); border-radius:var(--r-sm); padding:.5rem 1rem; font:inherit; cursor:pointer}
button.ghost:hover{border-color:var(--ink-3)}

.gate{border:1px solid var(--line); border-radius:var(--r); margin-bottom:.7rem; overflow:hidden}
.gate > header{display:flex; gap:.6rem; align-items:center; padding:.6rem .8rem; background:#fbfcfb; border-bottom:1px solid var(--line-2)}
.gate h3{margin:0; flex:1}
.gate .body{padding:.8rem; font-size:.88rem; color:var(--ink-2); max-height:190px; overflow:auto; background:#fff}
.gate .accept{padding:.65rem .8rem; border-top:1px solid var(--line-2); background:#fbfcfb; font-size:.87rem}
.gate[data-accepted="true"] > header{background:var(--brand-soft)}
.pill{font-size:.7rem; padding:.12rem .45rem; border-radius:99px; border:1px solid var(--line); color:var(--ink-3)}
.pill.ok{background:var(--brand); border-color:var(--brand); color:#fff}

table.sum{width:100%; border-collapse:collapse; font-size:.87rem}
table.sum th,table.sum td{text-align:left; padding:.4rem .5rem; border-bottom:1px solid var(--line-2)}
table.sum th{color:var(--ink-3); font-weight:600; font-size:.78rem; text-transform:uppercase; letter-spacing:.04em}
td.num{text-align:right; font-variant-numeric:tabular-nums}

.sechead{display:flex; gap:.6rem; align-items:center; margin:1.4rem 0 .1rem}
.sechead .code{width:26px;height:26px;border-radius:6px;background:var(--brand-soft);color:var(--brand-2);display:grid;place-items:center;font-weight:700;font-size:.8rem}
.muted{color:var(--ink-3)}
.hidden{display:none !important}
.previewbar{background:#1f2b26;color:#cfe0d8;font-size:.8rem;padding:.4rem 1.1rem;text-align:center}
.previewbar code{color:#9fd9bf}

/* ---- guided pickers (address cascade + KBLI cascade) -------------------- */
.picker{margin-top:1rem}
.picker > .lbl{margin-bottom:.35rem}
.sublbl{display:block; font-size:.76rem; font-weight:600; color:var(--ink-3); margin:.15rem 0 .2rem; text-transform:uppercase; letter-spacing:.02em}
.kctl{display:flex; gap:.4rem; align-items:center}
.kctl .ksearch{flex:0 0 42%}
.kctl .ksel{flex:1 1 auto}
.kctl #k-direct{flex:0 0 42%}
.krow{margin:0}
.pmsg{font-size:.82rem; color:var(--ink-3); margin-top:.4rem}
#k-chosen:not(:empty){margin-top:.6rem}
.tag{display:inline-block; font-size:.68rem; font-weight:600; background:var(--warn-soft); color:var(--warn); padding:.05rem .38rem; border-radius:4px; margin-left:.3rem; vertical-align:middle}
.btn-sm{background:var(--brand); color:#fff; border:0; border-radius:var(--r-sm); padding:.5rem .9rem; font:inherit; font-weight:600; cursor:pointer; white-space:nowrap}
.btn-sm:hover{background:var(--brand-2)}
@media (max-width:640px){
  .grid2{grid-template-columns:1fr}
  .kctl{flex-wrap:wrap}
  .kctl .ksearch,.kctl .ksel,.kctl #k-direct{flex:1 1 100%}
}

.req{color:var(--stop); font-weight:700}

/* ---- brand (GBN) + partner strip --------------------------------------- */
.brand{display:flex; align-items:center; gap:.55rem}
.brand-logo{display:block; flex:0 0 auto; height:30px; width:auto}
.site-footer{
  display:flex; flex-direction:column; align-items:center;
  padding:1.8rem 1.2rem 2.2rem; margin-top:1.5rem; border-top:1px solid var(--line-2);
  color:var(--ink-3); font-size:.8rem;
}
.partners{
  display:flex; align-items:flex-start; justify-content:center;
  gap:1.5rem 3.25rem; flex-wrap:wrap; width:min(880px,100%);
}
.partner{
  display:flex; flex-direction:column; align-items:center; text-align:center;
  gap:.7rem; flex:1 1 150px; max-width:240px; min-width:132px;
  text-decoration:none; color:var(--ink-3);
}
.partner:hover .partner-name,.partner:focus-visible .partner-name{color:var(--brand-2)}
.partner-mark{
  display:flex; align-items:center; justify-content:center;
  width:100%; height:56px;
}
.partner-mark img{
  display:block; width:auto; max-width:100%; max-height:56px; height:auto;
  object-fit:contain; opacity:.92;
}
.partner-name{font-size:.78rem; line-height:1.35; font-weight:600; max-width:12rem}
@media (max-width:640px){
  .partners{gap:1.4rem 1.2rem}
  .partner{flex:1 1 140px; max-width:none}
  .partner-mark{height:48px}
  .partner-mark img{max-height:48px}
}
@media (max-width:640px){
  .topbar-inner{min-height:64px; padding:.45rem 1rem; gap:.8rem}
  .brand-logo{height:38px}.brand b{font-size:.98rem}.brand span{display:none}
  .site-nav{gap:.7rem}.site-nav a{font-size:.8rem}
  .langswitch button{padding:.3rem .52rem;font-size:.78rem}
}
