/* Shared look for the Dibs app screens (sign-in, the pile, settings). Same purple look as the home page. */
:root{
  --bg:#24124a; --text:#fff8ec; --text-soft:#d3c6ee; --card:rgba(255,255,255,.07); --field:rgba(255,255,255,.08); --line:rgba(255,255,255,.16);
  --you:#ffc93c; --you-ink:#3a2500; --you-deep:#c48f00;
  --p2:#3de0c0; --p3:#ff6f91; --err:#ff9b9b; --ok:#3de0c0;
  --sheet:#fff8ec; --sheet-ink:#24124a; --sheet-soft:#5a4a7d; --sheet-line:#eadfcb;
  --display:"Bricolage Grotesque", "Arial Black", system-ui, sans-serif;
  --body:"Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  color-scheme:dark;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){ --bg:#1b0d3a; } }
:root[data-theme="dark"]{ --bg:#1b0d3a; }
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none !important}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:var(--body);font-size:17px;line-height:1.55;overflow-x:hidden;padding-top:env(safe-area-inset-top,0px)}
h1,h2,h3{font-family:var(--display);line-height:1.05;margin:0;letter-spacing:-0.02em}
p{margin:0}
a{color:inherit}
:focus-visible{outline:3px solid var(--you);outline-offset:3px;border-radius:8px}
.sky{position:fixed;inset:-20%;z-index:0;pointer-events:none;
  background:radial-gradient(35% 30% at 20% 20%, #6a32d1 0%, transparent 70%),radial-gradient(30% 25% at 85% 35%, #a2329c 0%, transparent 70%),radial-gradient(40% 35% at 40% 85%, #2346a8 0%, transparent 70%);
  animation:drift 18s ease-in-out infinite alternate}
@keyframes drift{to{transform:translate(4%,-3%) rotate(6deg)}}
.app{position:relative;z-index:1;max-width:560px;margin:0 auto;padding:0 20px 48px}

/* Top bar and logo */
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;height:68px}
.logo{position:relative;flex:none;display:inline-block;font:800 24px/1 var(--display);letter-spacing:-.03em;text-decoration:none;
  background:var(--you);color:var(--you-ink);padding:7px 13px 9px;border-radius:15px;transform:rotate(-6deg);box-shadow:0 4px 0 var(--you-deep)}
.logo::after{content:"";position:absolute;left:15px;bottom:-10px;border-left:4px solid transparent;border-right:11px solid transparent;border-top:12px solid var(--you)}
.demo-note{font-size:13px;color:var(--you-ink);background:var(--you);border-radius:12px;padding:8px 12px;margin-top:4px}
.demo-note b{font-weight:800}

/* Text */
.title{font-size:34px;font-weight:800}
.sub{color:var(--text-soft);margin-top:10px;font-size:17px}
.fine{font-size:13px;color:var(--text-soft);margin-top:14px}
.err{color:var(--err);font-size:15px;font-weight:600;margin-top:10px;min-height:1.5em}
.hint{font-size:13px;color:var(--text-soft);margin-top:8px}

/* Buttons */
.btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;font:800 19px var(--display);border:0;border-radius:18px;padding:16px 22px;cursor:pointer;text-decoration:none;
  margin-top:18px;transition:transform .12s, box-shadow .12s;-webkit-tap-highlight-color:transparent}
.btn.go{background:var(--you);color:var(--you-ink);box-shadow:0 6px 0 var(--you-deep)}
.btn.go:active{transform:translateY(4px);box-shadow:0 2px 0 var(--you-deep)}
.btn.ghost{background:var(--field);color:var(--text);box-shadow:0 6px 0 rgba(0,0,0,.35), inset 0 0 0 2px var(--line)}
.btn.ghost:active{transform:translateY(4px);box-shadow:0 2px 0 rgba(0,0,0,.35), inset 0 0 0 2px var(--line)}
.btn.danger{background:transparent;color:var(--err);box-shadow:inset 0 0 0 2px rgba(255,155,155,.5)}
.btn.small{font-size:15px;padding:11px 12px;margin-top:0;border-radius:14px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.link{background:none;border:0;font:600 15px var(--body);color:var(--text-soft);text-decoration:underline;cursor:pointer;padding:0;margin-top:16px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}

/* Form fields */
label,.label{display:block;font-weight:700;font-size:15px;margin-top:22px}
.field{display:flex;align-items:center;margin-top:8px;border:2px solid var(--line);border-radius:16px;background:var(--field);overflow:hidden;transition:border-color .2s}
.field:focus-within{border-color:var(--you)}
.field input{font:600 19px var(--body);color:var(--text);background:transparent;border:0;padding:14px 16px;width:100%;outline:none;min-width:0}
.field input::placeholder{color:rgba(255,248,236,.4)}
.code-input{text-transform:uppercase;letter-spacing:.12em}
.choices{display:grid;gap:12px;margin-top:22px}
.choice{display:flex;gap:14px;align-items:flex-start;text-align:left;width:100%;font:inherit;color:inherit;background:var(--card);border:2px solid var(--line);border-radius:18px;padding:16px 18px;cursor:pointer}
.choice[aria-pressed="true"]{border-color:var(--you);background:rgba(255,201,60,.12)}
.choice b{display:block;font:800 18px var(--display)}
.choice small{display:block;color:var(--text-soft);font-size:15px;line-height:1.45;margin-top:2px}
.choice .dot{flex:none;width:22px;height:22px;border-radius:50%;border:2px solid var(--line);margin-top:2px}
.choice[aria-pressed="true"] .dot{border:7px solid var(--you)}
.pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.pill{font:700 14px var(--body);border:2px solid var(--line);background:transparent;color:var(--text);border-radius:999px;padding:6px 13px;cursor:pointer}
.pill[aria-pressed="true"]{background:var(--you);border-color:var(--you);color:var(--you-ink)}

/* People */
.av{flex:none;display:grid;place-items:center;border-radius:50%;font:800 16px var(--display);width:40px;height:40px}
.av.sm{width:28px;height:28px;font-size:12px}
.av.lg{width:64px;height:64px;font-size:26px}
.card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:16px}

/* Little "+2" and confetti on claims */
.conf{position:fixed;width:8px;height:12px;border-radius:2px;pointer-events:none;z-index:50;animation:conf .8s cubic-bezier(.2,.7,.4,1) forwards}
@keyframes conf{to{transform:translate(var(--dx),var(--dy)) rotate(var(--rot));opacity:0}}
.plus{position:fixed;pointer-events:none;z-index:50;font:800 18px var(--display);animation:plus .9s ease-out forwards}
@keyframes plus{to{transform:translateY(-44px);opacity:0}}

/* Toast */
.toast{position:fixed;left:50%;bottom:calc(92px + env(safe-area-inset-bottom,0px));z-index:40;display:flex;align-items:center;gap:14px;max-width:calc(100% - 32px);
  background:var(--sheet);color:var(--sheet-ink);font-weight:700;font-size:15px;border-radius:14px;padding:12px 16px;box-shadow:0 10px 30px rgba(0,0,0,.35);
  transform:translate(-50%,20px);opacity:0;pointer-events:none;transition:transform .25s, opacity .25s}
.toast.show{transform:translate(-50%,0);opacity:1;pointer-events:auto}
.toast button{font:800 15px var(--body);background:none;border:0;color:#7a3df0;cursor:pointer;padding:0}

/* Bottom sheet */
dialog.sheet{position:fixed;inset:auto 0 0 0;margin:0 auto;width:100%;max-width:560px;max-height:90vh;max-height:90dvh;padding:12px 20px calc(24px + env(safe-area-inset-bottom,0px));border:0;
  border-radius:28px 28px 0 0;background:var(--sheet);color:var(--sheet-ink);overflow:auto}
dialog.sheet[open]{animation:up .35s cubic-bezier(.2,1.1,.4,1)}
@keyframes up{from{transform:translateY(100%)}}
dialog.sheet::backdrop{background:rgba(20,8,45,.6);backdrop-filter:blur(3px)}
.grab{width:42px;height:5px;border-radius:3px;background:var(--sheet-line);margin:0 auto 12px}

@media (prefers-reduced-motion: reduce){ *,*::before,*::after{animation:none !important;transition:none !important} }
