/* Client portal — WESFED brand (guide v1.1). Public shares only.
   Kit contrast pass Nov 5 2026 + Boris client UX Nov 5 (stepper, status words). */
body.pub{
  color-scheme:light;
  --wf-slate:#303E4D;
  --wf-accent:#209AC8;
  --wf-action:#146A8C;
  --wf-mist:#F0F4F8;
  --wf-border:#DDE4EA;
  --wf-mid:#4E6070;
  --wf-ink:#152030;
  --wf-white:#FFFFFF;
  --paper:var(--wf-mist);
  --surface:var(--wf-white);
  --ink:var(--wf-slate);
  --ink-2:var(--wf-mid);
  --muted:var(--wf-mid);
  --rule:var(--wf-border);
  --accent:var(--wf-action);
  --blue:var(--wf-action);
  background:var(--wf-mist);
  color:var(--wf-ink);
  max-width:none;
  margin:0;
  padding:0;
  font-family:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:16px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
body.pub .pubwrap{max-width:900px;margin:0 auto;padding:0 24px 72px}
.pubhead{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:24px 0 20px;border-bottom:1px solid var(--wf-border);
}
.pubbrand{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit}
.pubbrand img{height:28px;width:auto;display:block}
.pubhead-titles{flex:1;min-width:0}
.pubhead h1{margin:0;font-size:clamp(1.35rem,3.5vw,1.75rem);letter-spacing:-.02em;color:var(--wf-slate);font-weight:700}
.pubsub{margin:4px 0 0;color:var(--wf-mid);font-size:.95rem}
.pubmain{padding-top:28px}
.pubsec{margin-bottom:32px}
.pubsec h2{
  font-size:.75rem;font-family:"DM Mono",ui-monospace,Menlo,Consolas,monospace;
  text-transform:uppercase;letter-spacing:.12em;color:var(--wf-mid);margin:0 0 14px;font-weight:500;
}

/* Domino's-style horizontal stepper (stacks on mobile) */
.pubstepper{
  list-style:none;margin:0;padding:20px 16px 8px;
  display:flex;align-items:flex-start;justify-content:space-between;gap:0;
  border:1px solid var(--wf-border);border-radius:16px;background:var(--wf-white);
  box-shadow:0 1px 2px rgba(15,28,40,.04);
  overflow:hidden;
}
.pubstep{
  position:relative;flex:1;display:flex;flex-direction:column;align-items:center;gap:10px;
  text-align:center;min-width:0;padding:0 4px 12px;
}
.pubstep:not(:last-child)::after{
  content:"";position:absolute;top:11px;left:calc(50% + 14px);right:calc(-50% + 14px);
  height:3px;background:var(--wf-border);z-index:0;
}
.pubstep-done:not(:last-child)::after,
.pubstep-current:not(:last-child)::after{background:var(--wf-action)}
.pubstep-dot{
  position:relative;z-index:1;width:22px;height:22px;border-radius:50%;
  background:var(--wf-border);border:3px solid var(--wf-white);
  box-shadow:0 0 0 2px var(--wf-border);flex-shrink:0;
}
.pubstep-done .pubstep-dot{background:var(--wf-action);box-shadow:0 0 0 2px var(--wf-action)}
.pubstep-current .pubstep-dot{
  background:var(--wf-slate);box-shadow:0 0 0 2px var(--wf-slate),0 0 0 5px rgba(48,62,77,.18);
}
.pubstep-label{
  font-size:.72rem;line-height:1.25;color:var(--wf-mid);font-weight:500;
  letter-spacing:-.01em;
}
.pubstep-current .pubstep-label{color:var(--wf-slate);font-weight:700}
.pubstep-done .pubstep-label{color:var(--wf-action)}
.pubtrack-label{font-size:.85rem;color:var(--wf-mid);margin:10px 0 0}

/* Legacy progress cards (kept if used elsewhere) */
.publist{display:flex;flex-direction:column;gap:12px}
.pubproj{
  display:flex;flex-direction:column;gap:10px;
  border:1px solid var(--wf-border);border-radius:16px;
  padding:24px 28px;background:var(--wf-white);
  box-shadow:0 1px 2px rgba(15,28,40,.04);
}
.pubproj-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.pubproj b{font-size:1.05rem;color:var(--wf-slate);font-weight:650}
.pubproj .pubbadge{
  font-family:"DM Mono",ui-monospace,Menlo,Consolas,monospace;
  font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;
  color:var(--wf-action);background:rgba(20,106,140,.1);
  border-radius:999px;padding:5px 10px;white-space:nowrap;
}
.pubproj .pubbadge.done{color:var(--wf-mid);background:var(--wf-mist)}
.pubtrack{height:8px;background:var(--wf-border);border-radius:999px;overflow:hidden}
.pubtrack > i{display:block;height:100%;width:var(--p,0%);background:var(--wf-accent);border-radius:999px}

/* Task board */
.pubgroup{margin-bottom:20px}
.pubgroup h3{font-size:.95rem;margin:0 0 8px;display:flex;align-items:baseline;gap:8px;color:var(--wf-slate)}
.pubgroup h3 em{
  font-style:normal;font-family:"DM Mono",ui-monospace,Menlo,Consolas,monospace;
  font-size:.72rem;color:var(--wf-mid);background:var(--wf-mist);border-radius:999px;padding:2px 8px;
}
.pubtask{
  display:flex;align-items:flex-start;justify-content:space-between;gap:14px;
  padding:14px 4px;border-bottom:1px solid var(--wf-border);
}
.pubtask:last-child{border-bottom:0}
.pubtask.done b{color:var(--wf-mid);text-decoration:line-through;text-decoration-thickness:1px}
.pubwhere{display:block;color:var(--wf-mid);font-size:.85rem;margin-top:2px}
.pubwhen{font-family:"DM Mono",ui-monospace,Menlo,Consolas,monospace;font-size:.78rem;color:var(--wf-mid);white-space:normal;padding-top:2px;text-align:right}
.pubempty{color:var(--wf-mid);padding:28px 0;text-align:center}
.pubnote{color:var(--wf-mid);max-width:48ch;font-size:.92rem;margin:.35rem 0 0;line-height:1.45}
.pubfoot{
  margin-top:48px;padding-top:18px;border-top:1px solid var(--wf-border);
  color:var(--wf-mid);font-size:.8rem;
}

.pubactions{display:grid;grid-template-columns:1fr;gap:16px;margin-top:.25rem}
@media (min-width:720px){
  .pubactions{grid-template-columns:1fr 1fr}
}
.pubaction{
  display:flex;flex-direction:column;gap:8px;
  background:var(--wf-white);border:1px solid var(--wf-border);border-radius:16px;
  padding:24px 28px;box-shadow:0 1px 2px rgba(15,28,40,.04);
}
.pubbtn{
  display:flex;align-items:center;justify-content:center;gap:8px;
  width:100%;box-sizing:border-box;text-align:center;
  background:var(--wf-slate);color:#fff !important;text-decoration:none;
  padding:16px 20px;border-radius:12px;font-weight:700;font-size:1.05rem;
  letter-spacing:-.01em;min-height:52px;
  box-shadow:0 1px 0 rgba(15,28,40,.06);
  border-left:4px solid var(--wf-accent);
}
.pubbtn:hover{filter:brightness(1.08)}
.pubbtn.secondary{background:var(--wf-action);border-left-color:var(--wf-accent)}
.pubbtn:focus-visible{outline:3px solid var(--wf-action);outline-offset:2px}

.pubform{display:flex;flex-direction:column;gap:16px;max-width:560px}
.pubform label{display:flex;flex-direction:column;gap:6px;font-size:.95rem;color:var(--wf-mid);font-weight:500}
.pubform input,.pubform textarea{
  font:inherit;font-size:16px;color:var(--wf-ink);background:var(--wf-white);
  border:1px solid var(--wf-border);border-radius:10px;padding:12px 14px;
}
.pubform input:focus,.pubform textarea:focus{outline:2px solid var(--wf-action);outline-offset:-1px;border-color:transparent}
.pubrow{display:flex;gap:14px;flex-wrap:wrap}
.pubrow label{flex:1;min-width:200px}
.pubform button{
  align-self:stretch;background:var(--wf-slate);color:#fff;border:0;border-radius:12px;
  padding:14px 20px;font:inherit;font-size:1.05rem;font-weight:700;cursor:pointer;min-height:52px;
  border-left:4px solid var(--wf-accent);
}
.pubform button:hover{filter:brightness(1.08)}
.pubform button:focus-visible{outline:3px solid var(--wf-action);outline-offset:2px}

body.signin{
  color-scheme:light;
  --wf-slate:#303E4D;--wf-accent:#209AC8;--wf-action:#146A8C;--wf-mist:#F0F4F8;
  --wf-border:#DDE4EA;--wf-mid:#4E6070;--wf-ink:#152030;--wf-white:#FFFFFF;
  --accent:var(--wf-action);--paper:var(--wf-mist);--ink:var(--wf-slate);
  display:flex;min-height:100dvh;align-items:center;justify-content:center;max-width:none;padding:24px;background:var(--wf-mist);
  font-family:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
.signbox{width:100%;max-width:360px;background:var(--wf-white);border:1px solid var(--wf-border);border-radius:16px;padding:28px 24px}
.signbox h1{font-size:1.6rem;margin:0 0 18px;letter-spacing:-.02em;color:var(--wf-slate);font-weight:700}
.signbox .pubform{gap:12px}
.signbox .pubform button{align-self:stretch;text-align:center}
.signnote{color:var(--wf-mid);font-size:.92rem;margin:0 0 14px;line-height:1.5}
.signerr{color:#fff;background:#b42318;border-radius:10px;padding:10px 12px;font-size:.92rem;margin:0 0 14px}

@media (max-width:720px){
  .pubstepper{
    flex-direction:column;align-items:stretch;gap:0;padding:12px 16px;
  }
  .pubstep{
    flex-direction:row;justify-content:flex-start;gap:12px;
    text-align:left;padding:10px 0;border-bottom:1px solid var(--wf-border);
  }
  .pubstep:last-child{border-bottom:0}
  .pubstep:not(:last-child)::after{
    content:"";left:10px;right:auto;top:32px;bottom:-2px;width:3px;height:auto;
  }
  .pubstep-label{font-size:.85rem}
}
@media (max-width:520px){
  body.pub .pubwrap{padding:0 16px 56px}
  .pubhead{align-items:flex-start;flex-wrap:wrap}
  .pubbrand img{height:24px}
  .pubproj{padding:16px 20px;border-radius:12px}
  .pubaction{padding:16px 20px;border-radius:12px}
  .pubproj-top{flex-direction:column;align-items:flex-start}
  .pubtask{flex-direction:column;gap:6px}
  .pubwhen{text-align:left}
  .pubbtn,.pubform button{min-height:48px}
}
