.portal{min-height:100vh;background:radial-gradient(900px 500px at 90% 0%,rgba(208,100,61,.12),transparent 60%),var(--ink)}
.portal section{padding:0}
.pmain{padding:56px 24px 96px}
.pcard{background:var(--ink2);border:1px solid var(--line);border-radius:20px;padding:28px}
.pcard.narrow{max-width:480px;margin:24px auto}
.pcard h1{font-size:clamp(1.6rem,4vw,2.1rem);color:#fff;margin:12px 0 10px}
.portal h2{font-size:1.35rem;color:#fff;margin:0 0 16px}
.portal h3{font-size:1.08rem;color:#fff}
.portal h4{font-size:.95rem;color:#fff;margin:16px 0 8px}
.muted{color:var(--dim)}
.pform{display:grid;gap:16px;margin-top:20px}
.codein{font:700 1.6rem var(--mono);letter-spacing:.4em;text-align:center}
.linkbtn{background:none;border:0;color:var(--terra2);font:inherit;cursor:pointer;padding:0;text-decoration:underline}
.msg{min-height:1.2em;font-size:.92rem;margin:0}
.msg.ok{color:#6fcf97}.msg.err{color:#ff8a7a}
.dhead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:28px}
.dhead h1{font-size:clamp(1.7rem,4vw,2.4rem);color:#fff;margin:10px 0 6px}
.dgrid{display:grid;grid-template-columns:380px 1fr;gap:28px;align-items:start}
.tagp{display:inline-block;background:rgba(208,100,61,.16);color:var(--terra2);border:1px solid rgba(208,100,61,.4);border-radius:999px;padding:3px 12px;font-size:.82rem;font-weight:600}
.ocard{margin-bottom:16px;display:grid;gap:10px}
.orow{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.sbadge{border-radius:999px;padding:5px 12px;font-size:.8rem;font-weight:700;white-space:nowrap;background:#2a2f39;color:var(--silver)}
.s-received{background:#2a3446;color:#9cc2ff}.s-awaiting_payment{background:#4a3a1d;color:#ffd27a}
.s-in_progress{background:#3b2a22;color:var(--terra2)}.s-ready{background:#1f3b2c;color:#7be0a5}
.s-delivered{background:#243028;color:#a9d8b8}.s-cancelled{background:#3a2224;color:#ff9a9a}
.kv{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:8px;font-size:.95rem}
.kv span{color:var(--dim)}.kv b{color:#fff;word-break:break-all}
.pay{background:var(--ink);border:1px solid #4a3a1d;border-radius:14px;padding:16px;display:grid;gap:8px}
.files{display:grid;gap:8px}
.frow{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--ink);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:.9rem}
.frow span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.anote{background:var(--ink);border-radius:12px;padding:10px 12px;font-size:.93rem}
.who{font-size:.95rem}
.cdet p{margin:0 0 4px;font-size:.93rem;color:var(--silver);word-break:break-word}
.aform{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:end}
.aform .wide{grid-column:1/-1}
.upl{display:grid;gap:6px;font-size:.9rem;color:var(--dim)}
.filters{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.filters select{width:auto;min-width:200px}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chipb{background:transparent;border:1px solid var(--line);color:var(--silver);border-radius:999px;padding:7px 14px;font:600 .88rem var(--sans);cursor:pointer}
.chipb.on{background:var(--terra);border-color:var(--terra);color:#14110f}
.tools{display:flex;gap:10px;flex-wrap:wrap}
.bankbox{margin-top:28px}.bankbox summary{cursor:pointer;color:#fff;font-weight:650}
@media (max-width:860px){.dgrid,.aform{grid-template-columns:1fr}}
@media (max-width:820px){.portal .hright a.btn{display:inline-flex}}
.agree{font-size:.85rem;margin:0}.agree a{color:var(--terra2)}
