:root{--purple:#6b02a8;--purple-dark:#470071;--lavender:#ca98ed;--orange:#eaa01c;--orange-dark:#a85e00;--ink:#21142a;--muted:#6c6172;--paper:#fffdfa;--line:#e9dff0;--ok:#18794e;--danger:#b42318;--radius:18px;--shadow:0 12px 40px rgba(71,0,113,.10)}
*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);font-family:"Atkinson Hyperlegible Next",system-ui,sans-serif}body{margin:0;min-height:100vh;background:linear-gradient(180deg,#fbf6ff 0,#fffdfa 34rem)}button,input{font:inherit}.topbar{height:68px;padding:0 max(20px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(107,2,168,.1);background:rgba(255,253,250,.96)}.brand{display:flex;align-items:center;gap:10px;font-family:Archivo,sans-serif;font-weight:700;font-size:.77rem;letter-spacing:.045em;color:var(--purple)}.brand img{width:36px;height:36px;border-radius:11px}main{width:min(100% - 32px,760px);margin:0 auto;padding:36px 0 80px}h1,h2,legend{font-family:Archivo,sans-serif}h1{font-size:clamp(2rem,8vw,3.4rem);line-height:.98;letter-spacing:-.045em;margin:.35rem 0 .75rem}h2{font-size:1.25rem}.eyebrow{font:700 .74rem Archivo,sans-serif;letter-spacing:.14em;color:var(--orange-dark)}.hero{display:flex;align-items:start;justify-content:space-between;gap:24px;margin-bottom:28px}.hero p,.auth-card p{color:var(--muted);font-size:1.05rem}.shadow-chip{white-space:nowrap;border:1px solid var(--lavender);color:var(--purple);padding:8px 11px;border-radius:999px;font:700 .68rem Archivo,sans-serif;letter-spacing:.08em}form,.auth-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:clamp(20px,5vw,38px);box-shadow:var(--shadow)}.auth-card{max-width:480px;margin:7vh auto}.auth-card h1{font-size:2.5rem}fieldset{border:0;padding:0;margin:0 0 30px}legend{font-size:1.05rem;margin-bottom:14px}label{display:grid;gap:7px;font-weight:600;margin:16px 0}input{width:100%;min-height:52px;border:1.5px solid #cdbfd4;border-radius:13px;padding:12px 14px;background:#fff;color:var(--ink);outline:0}input:focus{border-color:var(--purple);box-shadow:0 0 0 4px rgba(107,2,168,.12)}.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.card-option{min-height:50px;border:1.5px solid #d6c8dc;border-radius:13px;background:#fff;color:var(--ink);font-weight:700}.card-option[aria-pressed=true]{background:var(--purple);border-color:var(--purple);color:#fff}.capture{min-height:180px;border:2px dashed var(--lavender);border-radius:18px;background:#fcf7ff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer;margin:0;text-align:center}.capture:focus-within{outline:4px solid rgba(107,2,168,.12);border-color:var(--purple)}.capture input{position:absolute;inline-size:1px;block-size:1px;opacity:0}.camera-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--lavender);color:var(--purple-dark);font-size:1.8rem}.capture small,fieldset>small,.optional p{color:var(--muted)}.preview{width:100%;max-height:260px;object-fit:contain;border-radius:14px;margin-top:12px;background:#f5eef8}.optional{border-top:1px solid var(--line);padding:20px 0}.optional summary{cursor:pointer;font-weight:700;color:var(--purple)}.optional summary span{font-weight:400;color:var(--muted)}.optional-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.primary,.secondary{width:100%;min-height:54px;border:0;border-radius:14px;font-weight:800;cursor:pointer}.primary{background:var(--orange);color:#3b2100;box-shadow:0 6px 0 #bd7410}.primary:active{transform:translateY(3px);box-shadow:0 3px 0 #bd7410}.secondary{background:#f2e4fb;color:var(--purple)}button:disabled{opacity:.55;cursor:not-allowed}.text-button{min-height:44px;border:0;background:transparent;color:var(--purple);font-weight:700;cursor:pointer}.message{min-height:24px;margin:14px 0 0;color:var(--muted)}.message.error{color:var(--danger)}.message.success{color:var(--ok)}details{margin-top:18px}details summary{cursor:pointer}.recent{margin-top:38px}.section-heading{display:flex;align-items:center;justify-content:space-between}.receipt-list{display:grid;gap:10px}.receipt-item{display:grid;grid-template-columns:1fr auto;gap:12px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:15px 16px}.receipt-item strong{display:block}.receipt-item small{color:var(--muted)}.status{align-self:start;padding:6px 9px;border-radius:999px;background:#f1e2fb;color:var(--purple-dark);font-size:.72rem;font-weight:700}.empty{color:var(--muted)}.hidden{display:none!important}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:600px){main{width:min(100% - 24px,760px);padding-top:24px}.topbar{height:60px}.brand span{font-size:.7rem}.hero{display:block}.shadow-chip{display:inline-block;margin-top:8px}.card-grid{grid-template-columns:1fr 1fr}.optional-grid{grid-template-columns:1fr}form{padding:20px 16px;border-radius:20px}.capture{min-height:160px}h1{font-size:2.45rem}.receipt-item{grid-template-columns:1fr}.status{justify-self:start}}
@media(prefers-reduced-motion:no-preference){button,.card-option{transition:transform .15s ease,background-color .15s ease,border-color .15s ease}}
.device-card{margin-top:28px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px;box-shadow:var(--shadow)}.device-card h2{margin:.35rem 0}.device-card p{color:var(--muted)}.device-card .secondary{max-width:280px}.pairing{display:grid;grid-template-columns:180px 1fr;gap:22px;align-items:center;margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}.pairing img{width:180px;height:180px;border:8px solid #fff;border-radius:14px;box-shadow:0 4px 18px rgba(71,0,113,.14)}.pairing-expiry{font-weight:700;color:var(--orange-dark)!important}@media(max-width:600px){.pairing{grid-template-columns:1fr;text-align:center}.pairing img{margin:auto}.device-card .secondary{max-width:none}}
