/* ==========================================================================
   Keystone Funding Platform — additive styles
   Loaded only on /platform/*. Uses the tokens defined in styles.css and adds
   nothing to the global cascade for the rest of the site.
   ========================================================================== */

/* ---------- Overview page ---------------------------------------------- */
.psteps { display: grid; gap: var(--sp-5); }
.pstep {
  display: grid; grid-template-columns: auto auto 1fr; gap: var(--sp-5);
  align-items: start; background: var(--paper); border: 1px solid var(--line);
  border-radius: var(--r-lg); padding: var(--sp-6);
  transition: border-color .28s var(--ease), box-shadow .28s var(--ease);
}
.pstep:hover { border-color: var(--gold-300); box-shadow: var(--sh-md); }
.pstep__n {
  font-family: var(--font-display); font-size: 1.5rem; font-weight: 700;
  color: var(--gold-500); line-height: 1; width: 1.6em;
}
.pstep__ico {
  width: 46px; height: 46px; border-radius: var(--r-md); display: grid; place-items: center;
  background: linear-gradient(140deg, var(--navy-800), var(--navy-600));
  color: var(--gold-400); flex: none;
}
.pstep__ico svg { width: 22px; height: 22px; }
.pstep h3 { margin-bottom: var(--sp-2); }
.pstep p { font-size: .9375rem; }

.pgrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--sp-5); }
.pcard {
  background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: var(--sp-6);
}
.pcard__ico {
  width: 44px; height: 44px; border-radius: var(--r-md); display: grid; place-items: center;
  background: var(--navy-900); color: var(--gold-400); margin-bottom: var(--sp-4);
}
.pcard__ico svg { width: 21px; height: 21px; }
.pcard h3 { font-size: 1.15rem; margin-bottom: var(--sp-3); }
.pcard p { font-size: .9375rem; }

@media (max-width: 860px) {
  .pgrid { grid-template-columns: 1fr; }
  .pstep { grid-template-columns: auto 1fr; }
  .pstep__ico { display: none; }
}

/* ---------- Stage rail --------------------------------------------------- */
.pf { padding-bottom: var(--sp-10); overflow-x: clip; }
.pf__bar {
  position: sticky; top: var(--header-h); z-index: 60;
  background: rgba(255,255,255,.94);
  backdrop-filter: saturate(180%) blur(14px);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  border-bottom: 1px solid var(--line);
}
.pf__bar-in { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4);
  min-height: 62px; }
.pf__rail { display: flex; gap: var(--sp-2); list-style: none; padding: 0; margin: 0;
  overflow-x: auto; scrollbar-width: none; }
.pf__rail::-webkit-scrollbar { display: none; }
.pf__rail li {
  display: flex; align-items: center; gap: .5rem; white-space: nowrap;
  font-size: .82rem; font-weight: 600; color: var(--slate-400);
  padding: .45rem .8rem; border-radius: var(--r-pill); transition: all .25s var(--ease);
}
.pf__rail li span {
  width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center;
  background: var(--line-soft); color: var(--slate-500); font-size: .72rem; font-weight: 700;
}
.pf__rail li.is-done { color: var(--navy-700); }
.pf__rail li.is-done span { background: var(--success-bg); color: var(--success); }
.pf__rail li.is-on { color: var(--navy-900); background: var(--sand-deep); }
.pf__rail li.is-on span { background: var(--gold-500); color: #fff; }

.pf__trace-btn {
  display: inline-flex; align-items: center; gap: .45rem; flex: none;
  font-size: .8rem; font-weight: 650; color: var(--slate-600);
  border: 1px solid var(--line); border-radius: var(--r-pill); padding: .45rem .85rem;
  transition: all .2s var(--ease);
}
.pf__trace-btn:hover { border-color: var(--gold-400); color: var(--navy-800); }
.pf__trace-btn svg { width: 15px; height: 15px; }
@media (max-width: 700px) { .pf__trace-btn span { display: none; } }

/* ---------- Stages ------------------------------------------------------- */
.pf__stage { padding-block: clamp(2.5rem, 5vw, 4rem); }
.pf__stage[hidden] { display: none; }
.pf__form { margin-top: var(--sp-7); }
.pf__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--sp-4) var(--sp-5); }
.pf__grid .full { grid-column: 1 / -1; }
@media (max-width: 640px) { .pf__grid { grid-template-columns: 1fr; } }

.pf__more { margin-top: var(--sp-5); border-top: 1px solid var(--line); padding-top: var(--sp-4); }
.pf__more summary {
  cursor: pointer; font-weight: 600; font-size: .92rem; color: var(--navy-700);
  list-style: none; display: flex; align-items: center; gap: .5rem;
}
.pf__more summary::-webkit-details-marker { display: none; }
.pf__more summary::before { content: "+"; font-weight: 700; color: var(--gold-600); }
.pf__more[open] summary::before { content: "–"; }

.pf__checks { display: grid; gap: .6rem; }
.pf__check { display: flex; align-items: center; gap: .65rem; font-size: .92rem; cursor: pointer; }
.pf__check input { width: 18px; height: 18px; accent-color: var(--gold-600); flex: none; }

.pf__consent { margin-top: var(--sp-5); padding: var(--sp-4); background: var(--sand);
  border-radius: var(--r-md); border: 1px solid var(--line); }
.pf__consent p { margin: 0; }
.pf__actions { margin-top: var(--sp-6); }
.pf__err { margin-top: var(--sp-4); color: var(--danger); font-size: .9rem; font-weight: 600; }
.pf__err[hidden] { display: none; }

.pf__cols { display: grid; grid-template-columns: 1fr 340px; gap: var(--sp-7); align-items: start;
  margin-top: var(--sp-6); }
@media (max-width: 980px) { .pf__cols { grid-template-columns: 1fr; } }
.pf__side { position: sticky; top: calc(var(--header-h) + 78px); display: grid; gap: var(--sp-4); }
@media (max-width: 980px) { .pf__side { position: static; } }

/* ---------- Verdict banner ---------------------------------------------- */
.pf__verdict {
  border-radius: var(--r-lg); padding: var(--sp-6); margin-bottom: var(--sp-6);
  border: 1px solid var(--line); background: var(--paper);
}
.pf__verdict--ok { background: linear-gradient(140deg, var(--navy-900), var(--navy-700)); border: 0; }
.pf__verdict--ok h2, .pf__verdict--ok p { color: #fff; }
.pf__verdict--ok .pf__tier { color: var(--gold-300); }
.pf__verdict--no { background: var(--sand-deep); }
.pf__tier {
  display: inline-flex; align-items: center; gap: .5rem; font-size: .78rem; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase; color: var(--gold-600);
  margin-bottom: var(--sp-3);
}
.pf__verdict h2 { font-size: clamp(1.5rem, 3vw, 2.1rem); }
.pf__verdict p { margin-top: var(--sp-3); font-size: .98rem; }

/* ---------- Option cards -------------------------------------------------- */
.pf__opts { display: grid; gap: var(--sp-5); }
.pf__opt {
  border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--paper);
  padding: var(--sp-6); position: relative; overflow: hidden;
  transition: border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.pf__opt:hover { border-color: var(--gold-300); box-shadow: var(--sh-md); }
.pf__opt--best { border-color: var(--gold-400); box-shadow: var(--sh-sm); }
.pf__opt--best::before {
  content: "Best fit"; position: absolute; top: 0; right: 0;
  background: var(--gold-500); color: #fff; font-size: .68rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase; padding: .3rem .8rem;
  border-bottom-left-radius: var(--r-md);
}
.pf__opt-head { display: flex; align-items: flex-start; justify-content: space-between;
  gap: var(--sp-4); flex-wrap: wrap; }
.pf__opt h3 { margin-bottom: .3rem; }
.pf__opt-tag {
  font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  padding: .25rem .6rem; border-radius: var(--r-sm);
}
.pf__opt-tag--ok { background: var(--success-bg); color: var(--success); }
.pf__opt-tag--bl { background: #FEF6E7; color: var(--gold-700); }
.pf__narr { margin-top: var(--sp-4); font-size: .95rem; color: var(--slate-600); }
.pf__terms { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-3);
  margin-top: var(--sp-5); padding-top: var(--sp-5); border-top: 1px solid var(--line-soft); }
@media (max-width: 640px) { .pf__terms { grid-template-columns: repeat(2, 1fr); } }
.pf__term b { display: block; font-family: var(--font-display); font-size: 1rem;
  color: var(--navy-900); font-weight: 600; }
.pf__term span { font-size: .74rem; text-transform: uppercase; letter-spacing: .08em;
  color: var(--slate-400); font-weight: 650; }
.pf__opt-foot { display: flex; align-items: center; gap: var(--sp-4); flex-wrap: wrap;
  margin-top: var(--sp-5); }
.pf__why {
  margin-top: var(--sp-4); font-size: .86rem; border-top: 1px dashed var(--line);
  padding-top: var(--sp-4);
}
.pf__why summary { cursor: pointer; font-weight: 650; color: var(--navy-700); list-style: none; }
.pf__why summary::-webkit-details-marker { display: none; }
.pf__why summary::before { content: "▸ "; color: var(--gold-600); }
.pf__why[open] summary::before { content: "▾ "; }
.pf__rules { margin-top: var(--sp-3); display: grid; gap: .4rem; }
.pf__rule {
  display: grid; grid-template-columns: auto 1fr; gap: .6rem; align-items: baseline;
  font-size: .84rem; padding: .4rem .6rem; background: var(--sand); border-radius: var(--r-sm);
}
.pf__rule code { font-size: .72rem; font-weight: 700; color: var(--navy-600);
  background: var(--paper); padding: .1rem .35rem; border-radius: 3px; border: 1px solid var(--line); }
.pf__rule--hard code { color: var(--danger); }
.status-upload { margin-top: .55rem; display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; }
.status-upload .input { max-width: 24rem; padding: .55rem .65rem; font-size: .8rem; }
.pf__grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3); }
@media (max-width: 640px) { .pf__grid2 { grid-template-columns: 1fr; } }

/* ---------- Blocked list --------------------------------------------------- */
.pf__blocked { margin-top: var(--sp-7); }
.pf__block {
  border: 1px solid var(--line); border-radius: var(--r-md); padding: var(--sp-4) var(--sp-5);
  margin-bottom: .7rem; background: var(--paper);
}
.pf__block h4 { font-size: 1rem; margin-bottom: .35rem; }
.pf__block p { font-size: .88rem; margin: 0; }
.pf__block .pf__remedy { margin-top: .4rem; color: var(--navy-600); font-weight: 550; }

/* ---------- Side panels ---------------------------------------------------- */
.pf__panel {
  background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: var(--sp-5);
}
.pf__panel h4 { font-size: .95rem; margin-bottom: var(--sp-3); }
.pf__panel p, .pf__panel li { font-size: .86rem; }
.pf__panel--navy { background: var(--navy-900); border: 0; color: rgba(255,255,255,.72); }
.pf__panel--navy h4 { color: #fff; }
.pf__panel--gold { background: var(--sand-deep); border-color: var(--gold-300); }
.pf__kv { display: grid; gap: .5rem; margin-top: var(--sp-3); }
.pf__kv div { display: flex; justify-content: space-between; gap: 1rem; font-size: .85rem;
  padding-bottom: .45rem; border-bottom: 1px solid var(--line-soft); }
.pf__kv b { color: var(--navy-900); font-weight: 650; text-align: right; }
.pf__panel--navy .pf__kv div { border-color: rgba(255,255,255,.1); }
.pf__panel--navy .pf__kv b { color: var(--gold-300); }

/* ---------- Documents ------------------------------------------------------ */
.pf__docs { display: grid; gap: .75rem; }
.pf__doc {
  display: grid; grid-template-columns: auto 1fr auto; gap: var(--sp-4); align-items: center;
  border: 1px solid var(--line); border-radius: var(--r-md); padding: var(--sp-4) var(--sp-5);
  background: var(--paper); transition: border-color .2s var(--ease);
}
.pf__doc.is-done { border-color: var(--success); background: var(--success-bg); }
.pf__doc.is-review { border-color: var(--gold-400); background: #FEFAF0; }
.pf__doc-tick {
  width: 26px; height: 26px; border-radius: 50%; border: 2px solid var(--line);
  display: grid; place-items: center; color: transparent; flex: none;
}
.pf__doc.is-done .pf__doc-tick { border-color: var(--success); background: var(--success); color: #fff; }
.pf__doc.is-review .pf__doc-tick { border-color: var(--gold-500); background: var(--gold-500); color: #fff; }
.pf__doc-tick svg { width: 14px; height: 14px; }
.pf__doc h4 { font-size: .96rem; margin: 0 0 .15rem; }
.pf__doc p { font-size: .82rem; margin: 0; }
.pf__doc-why { font-size: .78rem; color: var(--gold-700); font-weight: 600; margin-top: .25rem; }
.pf__extract {
  grid-column: 1 / -1; margin-top: var(--sp-3); padding-top: var(--sp-3);
  border-top: 1px dashed var(--line); font-size: .84rem;
}
.pf__extract-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: var(--sp-3); margin-top: .5rem; }
.pf__extract-grid b { display: block; font-family: var(--font-display); color: var(--navy-900); }
.pf__extract-grid span { font-size: .72rem; text-transform: uppercase; letter-spacing: .07em;
  color: var(--slate-400); font-weight: 650; }

/* ---------- Submissions ----------------------------------------------------- */
.pf__packet {
  display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4);
  border: 1px solid var(--gold-300); border-radius: var(--r-md); padding: var(--sp-5);
  background: var(--sand-deep); margin-top: var(--sp-5);
}
.pf__packet p { margin-top: .35rem; }
.pf__packet-actions { display: flex; align-items: center; justify-content: flex-end;
  gap: .6rem; flex-wrap: wrap; }
.pf__packet code {
  background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-sm);
  color: var(--navy-700); font-size: .75rem; font-weight: 700; padding: .35rem .55rem;
}
@media (max-width: 760px) {
  .pf__packet { align-items: flex-start; flex-direction: column; }
  .pf__packet-actions { justify-content: flex-start; }
}

.pf__subs { display: grid; gap: var(--sp-4); margin-top: var(--sp-5); }
.pf__sub {
  border: 1px solid var(--line); border-radius: var(--r-md); padding: var(--sp-5);
  background: var(--paper);
}
.pf__sub-head { display: flex; align-items: center; justify-content: space-between;
  gap: var(--sp-4); flex-wrap: wrap; }
.pf__sub h4 { margin: 0; font-size: 1.05rem; }
.pf__method {
  font-size: .7rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase;
  padding: .22rem .55rem; border-radius: var(--r-sm); background: var(--line-soft);
  color: var(--slate-600);
}
.pf__method--api { background: #EAF3FF; color: #2C5B96; }
.pf__method--email { background: var(--sand-deep); color: var(--gold-700); }
.pf__method--portal { background: #F4EEFB; color: #6B4C9A; }
.pf__offer { margin-top: var(--sp-4); padding-top: var(--sp-4); border-top: 1px solid var(--line-soft); }
.pf__offer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: var(--sp-4); }
.pf__offer-grid b { display: block; font-family: var(--font-display); font-size: 1.15rem;
  color: var(--navy-900); }
.pf__offer-grid span { font-size: .72rem; text-transform: uppercase; letter-spacing: .07em;
  color: var(--slate-400); font-weight: 650; }
.pf__disc {
  margin-top: var(--sp-5); padding: var(--sp-4); background: var(--sand);
  border: 1px solid var(--line); border-radius: var(--r-md); font-size: .82rem;
}
.pf__disc strong { color: var(--navy-900); }
.pf__passed { margin-top: var(--sp-5); font-size: .86rem; }
.pf__passed li { margin-bottom: .3rem; }

/* ---------- Decision trace drawer -------------------------------------------- */
.pf__trace {
  position: fixed; top: 0; right: 0; bottom: 0; width: min(460px, 100vw);
  background: var(--navy-950); color: rgba(255,255,255,.78); z-index: 200;
  display: flex; flex-direction: column; box-shadow: var(--sh-xl);
  font-size: .85rem;
}
.pf__trace[hidden] { display: none; }
.pf__trace-head {
  display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4);
  padding: var(--sp-5); border-bottom: 1px solid rgba(255,255,255,.12);
}
.pf__trace-head strong { color: #fff; font-family: var(--font-display); font-size: 1.05rem; }
.pf__ver { display: block; font-size: .72rem; color: var(--gold-400); font-family: monospace;
  margin-top: .2rem; }
.pf__trace-close { color: rgba(255,255,255,.6); font-size: 1.8rem; line-height: 1; padding: 0 .3rem; }
.pf__trace-close:hover { color: #fff; }
.pf__trace-body { overflow-y: auto; padding: var(--sp-5); }
.pf__trace-body h5 { color: var(--gold-300); font-size: .74rem; letter-spacing: .12em;
  text-transform: uppercase; font-family: var(--font-body); font-weight: 700;
  margin: var(--sp-5) 0 var(--sp-3); }
.pf__trace-body h5:first-child { margin-top: 0; }
.pf__trace-row {
  display: grid; gap: .3rem; padding: .6rem .75rem; margin-bottom: .4rem;
  background: rgba(255,255,255,.045); border-radius: var(--r-sm);
  border-left: 2px solid rgba(255,255,255,.15);
}
.pf__trace-row--hard { border-left-color: #E4796F; }
.pf__trace-row--soft { border-left-color: var(--gold-400); }
.pf__trace-row code { font-family: monospace; font-size: .74rem; color: var(--gold-300); }
.pf__trace-row em { font-style: normal; color: rgba(255,255,255,.55); font-size: .78rem; }
.pf__trace-json {
  background: rgba(0,0,0,.35); border-radius: var(--r-sm); padding: var(--sp-4);
  font-family: monospace; font-size: .72rem; white-space: pre-wrap; word-break: break-word;
  color: rgba(255,255,255,.68); max-height: 300px; overflow: auto;
}
.pf__grounded {
  display: inline-flex; align-items: center; gap: .4rem; font-size: .72rem; font-weight: 700;
  letter-spacing: .06em; text-transform: uppercase; padding: .2rem .5rem;
  border-radius: var(--r-sm); background: var(--success-bg); color: var(--success);
}
.pf__grounded--bad { background: var(--danger-bg); color: var(--danger); }

/* ---------- Pipeline board ---------------------------------------------------- */
.pl { padding-block: var(--sp-8) var(--sp-10); }
.pl__head { display: grid; grid-template-columns: 1fr 340px; gap: var(--sp-7);
  align-items: center; margin-bottom: var(--sp-7); }
.pl__head > div:first-child { max-width: 620px; }
@media (max-width: 980px) { .pl__head { grid-template-columns: 1fr; } }
.pl__head code { font-family: monospace; font-size: .85em; background: var(--sand-deep);
  padding: .1rem .4rem; border-radius: 4px; }
.pl__digest {
  background: var(--navy-900); color: rgba(255,255,255,.75); border-radius: var(--r-lg);
  padding: var(--sp-5); font-size: .87rem;
}
.pl__digest h4 { color: #fff; font-size: .95rem; margin-bottom: var(--sp-3); }
.pl__digest ul { padding-left: 1.1em; margin: 0; }
.pl__digest li { margin-bottom: .45rem; }
.pl__digest b { color: var(--gold-300); }

.pl__stats { display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--sp-4);
  margin-bottom: var(--sp-7); }
@media (max-width: 900px) { .pl__stats { grid-template-columns: repeat(2, 1fr); } }
.pl__stat { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-md);
  padding: var(--sp-4) var(--sp-5); }
.pl__stat b { display: block; font-family: var(--font-display); font-size: 1.7rem;
  color: var(--navy-900); line-height: 1.1; }
.pl__stat span { font-size: .76rem; text-transform: uppercase; letter-spacing: .08em;
  color: var(--slate-400); font-weight: 650; }

.pl__toolbar { display: flex; align-items: center; justify-content: space-between;
  gap: var(--sp-4); flex-wrap: wrap; margin-bottom: var(--sp-5); }
.pl__filters { display: flex; gap: .5rem; flex-wrap: wrap; }
.pl__chip {
  font-size: .82rem; font-weight: 600; padding: .4rem .9rem; border-radius: var(--r-pill);
  border: 1px solid var(--line); color: var(--slate-600); transition: all .2s var(--ease);
}
.pl__chip:hover { border-color: var(--gold-400); }
.pl__chip.is-on { background: var(--navy-900); color: #fff; border-color: var(--navy-900); }
.pl__search { min-width: 260px; margin: 0; }

.pl__board { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: var(--sp-4); align-items: start; }
.pl__col { background: var(--sand); border-radius: var(--r-lg); padding: var(--sp-4); }
.pl__col h3 { font-size: .82rem; text-transform: uppercase; letter-spacing: .09em;
  font-family: var(--font-body); font-weight: 700; color: var(--slate-500);
  margin-bottom: var(--sp-4); display: flex; justify-content: space-between; }
.pl__col h3 em { font-style: normal; color: var(--slate-400); }
.pl__card {
  background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-md);
  padding: var(--sp-4); margin-bottom: .6rem; cursor: pointer; width: 100%; text-align: left;
  transition: all .2s var(--ease); display: block;
}
.pl__card:hover { border-color: var(--gold-400); box-shadow: var(--sh-sm); transform: translateY(-2px); }
.pl__card h4 { font-size: .95rem; margin: 0 0 .2rem; }
.pl__card p { font-size: .8rem; margin: 0; }
.pl__card-foot { display: flex; align-items: center; justify-content: space-between;
  gap: .5rem; margin-top: .6rem; font-size: .74rem; }
.pl__amt { font-weight: 700; color: var(--navy-900); font-family: var(--font-display); }
.pl__age { color: var(--slate-400); }
.pl__age--warn { color: var(--danger); font-weight: 650; }
.pl__blocker { font-size: .76rem; color: var(--gold-700); font-weight: 600; margin-top: .4rem;
  display: flex; gap: .35rem; align-items: baseline; }

.pl__panel { margin-top: var(--sp-9); }
.pl__panel h2 { margin-bottom: var(--sp-3); }
.pl__table-wrap { overflow-x: auto; margin-top: var(--sp-5); }
.pl__table { min-width: 720px; font-size: .88rem; }
.pl__table th, .pl__table td { text-align: left; padding: .7rem .9rem;
  border-bottom: 1px solid var(--line); }
.pl__table th { font-size: .74rem; text-transform: uppercase; letter-spacing: .08em;
  color: var(--slate-400); font-weight: 700; }
.pl__table tbody tr:hover { background: var(--sand); }
.pl__bar { height: 6px; border-radius: 3px; background: var(--line-soft); overflow: hidden;
  min-width: 70px; display: inline-block; vertical-align: middle; margin-right: .5rem; }
.pl__bar i { display: block; height: 100%; background: var(--gold-500); }

.pl__drawer {
  position: fixed; inset: 0; background: rgba(6,13,24,.55); z-index: 200;
  display: flex; justify-content: flex-end;
}
.pl__drawer[hidden] { display: none; }
.pl__drawer-in {
  background: var(--paper); width: min(560px, 100vw); height: 100%; overflow-y: auto;
  padding: var(--sp-7); box-shadow: var(--sh-xl);
}
.pl__drawer h3 { margin-bottom: var(--sp-2); }
.pl__close { position: absolute; top: var(--sp-5); right: var(--sp-5); font-size: 1.9rem;
  line-height: 1; color: var(--slate-400); }
.pl__close:hover { color: var(--navy-900); }
.pl__sec { margin-top: var(--sp-6); }
.pl__sec h5 { font-size: .74rem; text-transform: uppercase; letter-spacing: .1em;
  font-family: var(--font-body); color: var(--slate-400); font-weight: 700;
  margin-bottom: var(--sp-3); }

.pl__empty { padding: var(--sp-8); text-align: center; color: var(--slate-400);
  grid-column: 1 / -1; }

/* ---------- Portal home ---------------------------------------------------- */
.portal-home .pf__stage { padding-top: clamp(3rem, 7vw, 5.5rem); }
.portal-home__grid {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-5);
  margin-top: var(--sp-7);
}
.portal-home__card {
  display: flex; flex-direction: column; align-items: flex-start; gap: .8rem;
  min-height: 17rem; text-decoration: none; color: inherit;
}
.portal-home__card h2 { font-size: clamp(1.25rem, 2vw, 1.65rem); margin: 0; }
.portal-home__card p { color: var(--slate-600); margin: 0; }
.portal-home__card .btn { margin-top: auto; }
.portal-home__card--primary { border-color: var(--gold-400); box-shadow: var(--sh-sm); }
.pl__login { margin-bottom: var(--sp-6); }
.pl__login .pf__form { max-width: 44rem; }
.crm-tabs { display: flex; gap: .5rem; flex-wrap: wrap; margin: 0 0 var(--sp-5); }
.crm-tab {
  border: 1px solid var(--line); border-radius: var(--r-pill); padding: .45rem .95rem;
  color: var(--slate-600); font-size: .84rem; font-weight: 650;
}
.crm-tab.is-on { background: var(--navy-900); border-color: var(--navy-900); color: #fff; }
.crm-view { margin-top: var(--sp-4); }
.crm-view[hidden] { display: none; }
.crm-grid { display: grid; grid-template-columns: minmax(18rem, 24rem) 1fr; gap: var(--sp-5); align-items: start; }
.crm-form { position: sticky; top: calc(var(--header-h) + 1rem); }
.crm-list { display: grid; gap: .8rem; }
.crm-list--full { grid-column: 1 / -1; }
.crm-item {
  background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-md);
  padding: var(--sp-4); display: grid; gap: .35rem;
}
.crm-item h3, .crm-item h4 { margin: 0; font-size: 1rem; }
.crm-item p { margin: 0; font-size: .86rem; color: var(--slate-600); }
.crm-meta { display: flex; gap: .45rem; flex-wrap: wrap; color: var(--slate-400); font-size: .76rem; }
.crm-pill {
  display: inline-flex; border: 1px solid var(--line); border-radius: var(--r-pill);
  padding: .15rem .5rem; font-size: .72rem; font-weight: 700; color: var(--slate-500);
}
.crm-actions { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .4rem; }
.crm-correction {
  margin-top: .45rem; border-top: 1px solid var(--line-soft); padding-top: .65rem;
}
.crm-correction summary {
  cursor: pointer; color: var(--navy-800); font-weight: 700; font-size: .84rem;
}
.doc-correction-form {
  display: grid; gap: .75rem; margin-top: .75rem;
}
.doc-correction-form .field small { display: block; margin-top: .25rem; }
@media (max-width: 920px) {
  .crm-grid { grid-template-columns: 1fr; }
  .crm-form { position: static; }
}
@media (max-width: 900px) {
  .portal-home__grid { grid-template-columns: 1fr; }
  .portal-home__card { min-height: auto; }
}
