/* The page a customer opens to pay a charge their salon added to their booking. One calm column, big taps, nothing that scrolls sideways. */
:root{
  --bg:#F5F2EC; --card:#FFFFFF; --ink:#26211D; --mut:#6A615A; --line:#E4DED5; --acc:#2F5D50; --acc-d:#254B40; --ok:#1D6B3E; --ok-bg:#E6F3EB;
  --warn:#8A5A00; --warn-bg:#FFF1D6; --bad:#9B2D1F; --bad-bg:#FBEAE7; --r:16px;
}
@media (prefers-color-scheme: dark){
  :root{ --bg:#14110F; --card:#1F1B18; --ink:#F1ECE6; --mut:#B3A99F; --line:#3A332D; --acc:#6FB39E; --acc-d:#8CC9B5; --ok:#7BD39B; --ok-bg:#16301F; --warn:#F2C46B; --warn-bg:#352A10; --bad:#F0988B; --bad-bg:#3A1A16; }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;min-height:100vh;min-height:100dvh}
.wrap{max-width:480px;margin:0 auto;padding:max(20px,env(safe-area-inset-top)) 16px max(28px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px}
.who{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin:6px 2px 0}
h1{font-size:1.65rem;line-height:1.2;margin:0 2px;overflow-wrap:anywhere}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;display:flex;flex-direction:column;gap:12px}
.what{font-size:1.15rem;font-weight:650;overflow-wrap:anywhere}
.lines{margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.lines div{display:flex;justify-content:space-between;gap:14px;font-size:.95rem}
.lines dt{color:var(--mut);flex:none}
.lines dd{margin:0;text-align:right;overflow-wrap:anywhere}
.total{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-top:1px solid var(--line);padding-top:12px}
.total span{color:var(--mut)}
.total b{font-size:2rem;line-height:1;font-variant-numeric:tabular-nums}
.gst{font-size:.85rem;color:var(--mut);margin:-6px 0 0;text-align:right}
.note{margin:0;padding:10px 12px;border-left:3px solid var(--acc);background:var(--bg);border-radius:0 10px 10px 0;white-space:pre-line;overflow-wrap:anywhere;font-size:.95rem}
.when{font-size:.9rem;color:var(--mut);margin:0;overflow-wrap:anywhere}
.btn{appearance:none;border:0;border-radius:14px;background:var(--acc);color:#fff;font:inherit;font-weight:650;font-size:1.1rem;min-height:56px;width:100%;padding:14px 18px;cursor:pointer}
@media (prefers-color-scheme: dark){ .btn{color:#10201A} }
.btn:hover{background:var(--acc-d)}
.btn[disabled]{opacity:.6;cursor:default}
.btn:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.small{font-size:.82rem;color:var(--mut);margin:0;text-align:center}
.badge{align-self:flex-start;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;background:#F5B041;color:#2B1D00;border-radius:99px;padding:4px 10px}
.msg{border-radius:12px;padding:12px 14px;font-size:.95rem;margin:0}
.msg.err{background:var(--bad-bg);color:var(--bad)}
.msg.wait{background:var(--warn-bg);color:var(--warn)}
.state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:26px 18px}
.state .mark{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.7rem;font-weight:700}
.state.paid .mark{background:var(--ok-bg);color:var(--ok)}
.state.bad .mark{background:var(--bad-bg);color:var(--bad)}
.state.wait .mark{background:var(--warn-bg);color:var(--warn)}
.state h2{margin:0;font-size:1.3rem}
.state p{margin:0;color:var(--mut);overflow-wrap:anywhere}
.receipt{align-self:stretch;text-align:left;border-top:1px solid var(--line);padding-top:12px;margin-top:6px}
.skeleton{display:flex;flex-direction:column;gap:12px;padding-top:40px}
.skeleton i{display:block;height:64px;border-radius:var(--r);background:var(--line);opacity:.6}
.plain{padding:20px;color:var(--mut)}
