/* =====================================================================
   ELYRIA BIO · PARTNER ROUTE

   Deliberately does NOT look like the shop. The storefront is warm gold
   on near-black — appetite, product, browsing. Earning is a different
   relationship: this is cooler, flatter, more ledger than boutique, so
   that nobody confuses "my commissions" with "my orders" at a glance.
   That separation is the whole reason this is a route and not a tab.

   Scoped under .partner-route so nothing here can leak into
   account.css's dashboard.
   ===================================================================== */

.partner-route{
  /* A cool teal replaces the storefront gold as the accent of record. */
  --pt: #7fd4c1;
  --pt-dim: #4c9d8c;
  --pt-deep: #0d1a19;
  --pt-line: rgba(127,212,193,.20);
}

/* ---------- hero ---------- */
.partner-route .pt-hero{
  padding:54px 0 40px;
  border-bottom:1px solid var(--line);
  background:
    radial-gradient(1100px 300px at 12% -40%, rgba(127,212,193,.10), transparent 70%),
    linear-gradient(180deg, var(--pt-deep), transparent);
}
.partner-route .pt-hero .crumbs{margin-bottom:22px}
.pt-eyebrow{
  display:inline-block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--pt);border:1px solid var(--pt-line);border-radius:100px;
  padding:6px 14px;margin-bottom:18px
}
.partner-route .pt-hero h1{
  font-family:"Instrument Serif",serif;font-weight:400;
  font-size:clamp(30px,4.4vw,46px);line-height:1.05;color:var(--paper);
  max-width:20ch;text-wrap:balance
}
.pt-sub{margin-top:14px;color:var(--mist);font-size:16px;line-height:1.65;max-width:56ch;text-wrap:pretty}

/* ---------- layout ---------- */
.pt-wrap{padding:38px 0 80px}
.pt-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:22px;align-items:start}
@media (max-width:900px){.pt-grid{grid-template-columns:1fr}}

.pt-card{
  border:1px solid var(--line);border-radius:18px;
  background:linear-gradient(180deg, rgba(127,212,193,.03), rgba(255,255,255,.012));
  padding:28px 26px;margin-bottom:20px
}
.pt-card h2{font-family:"Instrument Serif",serif;font-weight:400;font-size:25px;color:var(--paper);line-height:1.15;margin-bottom:10px}
.pt-card h3{font-family:"Instrument Serif",serif;font-weight:400;font-size:19px;color:var(--paper)}
.pt-card p{color:var(--mist);font-size:14.5px;line-height:1.72;text-wrap:pretty}
.pt-card p+p{margin-top:12px}
.pt-card b{color:var(--paper);font-weight:600}
.pt-lede{margin-bottom:22px}
.pt-fine{font-size:12.5px;color:var(--mist);opacity:.82;line-height:1.6}
.pt-card .card-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}

/* ---------- buttons ---------- */
.pt-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  height:44px;padding:0 20px;border-radius:100px;
  border:1px solid var(--pt-line);background:transparent;color:var(--paper);
  font-size:13.5px;font-weight:500;cursor:pointer;
  transition:border-color .18s,background .18s,color .18s,opacity .18s
}
.pt-btn:hover:not(:disabled){border-color:var(--pt);background:rgba(127,212,193,.07)}
.pt-btn.primary{background:linear-gradient(180deg,#8fe0cc,#4fae9a);border-color:transparent;color:#06110f;font-weight:650}
.pt-btn.primary:hover:not(:disabled){box-shadow:0 10px 30px -10px rgba(127,212,193,.55)}
.pt-btn.wide{width:100%}
.pt-btn:disabled{opacity:.34;cursor:not-allowed;box-shadow:none}
.pt-btn.danger{border-color:rgba(198,64,44,.45);color:#ffc9c0}
.pt-btn.danger:hover:not(:disabled){background:rgba(198,64,44,.12);border-color:rgba(198,64,44,.75)}
.pt-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}

/* ---------- form ---------- */
.partner-route .field{margin-bottom:18px}
.partner-route .field label{display:block;font-size:12.5px;letter-spacing:.04em;color:var(--paper);margin-bottom:7px}
.partner-route .field input,.partner-route .field select{
  width:100%;height:46px;padding:0 14px;border-radius:11px;
  border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--paper);
  font-size:14.5px;transition:border-color .18s
}
.partner-route .field input:focus,.partner-route .field select:focus{outline:none;border-color:var(--pt)}
.partner-route .field input[readonly]{opacity:.72;cursor:default}
/* Native selects render their option list with the OS palette; without an
   explicit colour the items are white-on-white and unreadable. Same bug
   already fixed once in the payments modal. */
.partner-route .field select option{background:#101816;color:#f3efe7}
.field-hint{margin-top:7px;font-size:12px;color:var(--mist);line-height:1.55}

.code-state{margin-top:9px;font-size:12.5px;font-family:"IBM Plex Mono",monospace;letter-spacing:.03em;min-height:17px}
.code-state[data-state="ok"]{color:#8fe0cc}
.code-state[data-state="bad"]{color:#ff9d8e}
.code-state[data-state="busy"]{color:var(--mist)}

/* The network acknowledgement. Deliberately not styled as fine print: it is
   the only defence against a wrong-network send, which no amount of address
   validation can catch, so it has to read as a decision rather than a
   formality. */
.pt-ack{display:flex;gap:11px;align-items:flex-start;cursor:pointer;
        font-size:13.5px;line-height:1.55;color:var(--bone)}
.pt-ack input[type="checkbox"]{flex:0 0 auto;margin-top:2px;width:17px;height:17px;
        accent-color:var(--gold);cursor:pointer}
#apAckField,#poAckField{border:1px solid var(--line);border-radius:10px;
        padding:14px 15px;background:rgba(255,255,255,.02)}
#apAckField .field-hint,#poAckField .field-hint{margin-top:9px;margin-left:28px}

/* ---------- status panels ---------- */
.pt-status{text-align:center;max-width:640px;margin:0 auto}
.pt-status-dot{width:12px;height:12px;border-radius:50%;margin:0 auto 18px}
.pt-status-dot.pending{background:#e7c06a;box-shadow:0 0 0 6px rgba(231,192,106,.14)}
.pt-status-dot.denied{background:#c6402c;box-shadow:0 0 0 6px rgba(198,64,44,.14)}
.pt-reason{border:1px solid rgba(198,64,44,.35);background:rgba(198,64,44,.08);border-radius:11px;padding:12px 16px;color:#ffd9d2 !important}
.pt-facts{display:flex;flex-wrap:wrap;gap:26px;justify-content:center;margin:24px 0 4px;text-align:left}
.pt-facts dt{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--pt-dim);margin-bottom:5px}
.pt-facts dd{color:var(--paper);font-size:15px}

/* ---------- terms sidebar ---------- */
.pt-terms-list{list-style:none;margin:16px 0 0;padding:0}
.pt-terms-list li{position:relative;padding-left:20px;margin-bottom:12px;color:var(--mist);font-size:13.5px;line-height:1.6}
.pt-terms-list li::before{content:"";position:absolute;left:0;top:8px;width:6px;height:6px;border-radius:50%;background:var(--pt-dim)}
.pt-terms-list b{color:var(--paper)}
.pt-terms .pt-fine{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}

/* ---------- the code + link card ---------- */
.pt-code-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:34px;align-items:center}
@media (max-width:760px){.pt-code-card{grid-template-columns:1fr;gap:22px}}
.pt-label{display:block;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--pt-dim);margin-bottom:8px}
.pt-code{font-size:clamp(26px,4vw,38px);letter-spacing:.14em;color:var(--pt);font-weight:600}
.pt-copy{display:flex;gap:9px}
.pt-copy input{
  flex:1;min-width:0;height:44px;padding:0 14px;border-radius:11px;
  border:1px solid var(--line);background:rgba(0,0,0,.28);color:var(--paper);
  font-family:"IBM Plex Mono",monospace;font-size:12.5px
}
.pt-copy .pt-btn{flex:none}
.pt-link-row .pt-fine{margin-top:9px}

/* ---------- stats ---------- */
.pt-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:20px}
.pt-stat{border:1px solid var(--line);border-radius:15px;padding:20px 18px;background:rgba(255,255,255,.014)}
.pt-stat .k{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--pt-dim);margin-bottom:9px}
.pt-stat .v{font-family:"Instrument Serif",serif;font-weight:400;font-size:27px;color:var(--paper);line-height:1}
.pt-stat .d{margin-top:8px;font-size:12px;color:var(--mist);line-height:1.5}
.pt-stat.accent{border-color:var(--pt-line);background:rgba(127,212,193,.05)}
.pt-stat.accent .v{color:var(--pt)}

/* ---------- ledger ---------- */
.led-row{display:grid;grid-template-columns:minmax(0,1.2fr) auto auto auto;gap:14px;align-items:center;
  padding:13px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.led-row:last-child{border-bottom:none}
.led-row.head{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--pt-dim);padding-bottom:9px}
.led-order{font-family:"IBM Plex Mono",monospace;color:var(--paper);font-size:12.5px;letter-spacing:.03em}
.led-date{color:var(--mist);font-size:12.5px}
.led-amt{color:var(--paper);font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.led-status{justify-self:end}
@media (max-width:640px){
  .led-row{grid-template-columns:1fr auto;row-gap:6px}
  .led-row.head{display:none}
  .led-date{grid-column:1}
  .led-status{grid-column:2}
}
.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:100px;
  font-size:11px;letter-spacing:.05em;border:1px solid}
.pill .d{width:5px;height:5px;border-radius:50%;background:currentColor}
.pill.pending{color:#e7c06a;border-color:rgba(231,192,106,.35);background:rgba(231,192,106,.08)}
.pill.approved{color:#8fe0cc;border-color:var(--pt-line);background:rgba(127,212,193,.08)}
.pill.paid{color:#9fd8a8;border-color:rgba(120,200,140,.32);background:rgba(120,200,140,.08)}
.pill.reversed{color:#ff9d8e;border-color:rgba(198,64,44,.38);background:rgba(198,64,44,.08)}
.pill.test{color:var(--mist);border-color:var(--line);background:transparent}

/* ---------- shared message styling, scoped ---------- */
.partner-route .auth-msg{margin:0 0 14px;padding:11px 14px;border-radius:11px;font-size:13.5px;line-height:1.6;border:1px solid;text-wrap:pretty}
.partner-route .auth-msg[data-kind="error"]{color:#ffd9d2;background:rgba(198,64,44,.12);border-color:rgba(198,64,44,.42)}
.partner-route .auth-msg[data-kind="info"]{color:var(--paper);background:rgba(127,212,193,.07);border-color:var(--pt-line)}
.partner-route .auth-msg[data-kind="ok"]{color:#cdf3dd;background:rgba(58,150,98,.12);border-color:rgba(58,150,98,.42)}
.partner-route .auth-blocked{margin:9px 0 0;min-height:15px;font-size:11.5px;letter-spacing:.05em;color:var(--mist);line-height:1.5}
.partner-route .auth-blocked:empty{min-height:0;margin:0}

.pt-empty{border:1px dashed var(--line);border-radius:14px;padding:30px 24px;text-align:center}
.pt-empty h4{font-family:"Instrument Serif",serif;font-weight:400;font-size:17px;color:var(--paper);margin-bottom:8px}
.pt-empty p{color:var(--mist);font-size:13.5px;line-height:1.65;max-width:48ch;margin:0 auto}
