:root{--bg:#fff;--surface:#fff;--surface-soft:#f4f4f5;--ink:#242428;--muted:#74747b;--line:#e6e6e8;--brand:#242428;--on-brand:#fff;--mint:#f2f2f3;--accent:#d93632;--scan:var(--accent);--on-scan:#fff}*{box-sizing:border-box}body,html{min-height:100%;margin:0}body{font-family:Segoe UI,Tahoma,Arial,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}a,button,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button:disabled{cursor:default}.karti-shell{min-height:100dvh;background:var(--bg)}.karti-shell.theme-dark{--bg:#17171b;--surface:#222227;--surface-soft:#2c2c32;--ink:#f8f7f4;--muted:#aaaab3;--line:#393940;--brand:#f4f3ef;--on-brand:#242428;--mint:#343235;color-scheme:dark}.karti-app{position:relative;max-width:480px;min-height:100dvh;margin:0 auto;background:var(--bg)}.bottom-nav{position:fixed;z-index:50;inset:auto 0 0;width:min(100%,480px);margin:auto;display:grid;grid-template-columns:repeat(4,1fr);align-items:center;min-height:calc(77px + env(safe-area-inset-bottom));padding:5px 10px calc(5px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surface) 96%,transparent);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.nav-item{position:relative;min-height:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:5px 0;border:0;border-radius:10px;background:transparent;color:var(--muted)}.nav-item b{font-size:10px;font-weight:600}.nav-item.active{color:var(--brand)}.nav-item.active:after{content:"";position:absolute;inset:auto 40% 2px;height:3px;border-radius:3px;background:var(--brand)}.scan-nav span{display:grid;place-items:center;width:56px;height:56px;margin-top:-12px;border:4px solid var(--surface);background:var(--scan);border-radius:50%;color:var(--on-scan);box-shadow:0 5px 14px rgba(0,0,0,.12)}.nav-reward-badge{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--brand);top:10px;left:calc(50% + 8px);box-shadow:0 0 0 2px var(--surface)}.overlay{position:fixed;z-index:100;inset:0;display:grid;place-items:center;background:rgba(5,22,22,.65);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.scanner-panel{width:min(100%,480px);height:100dvh;display:flex;flex-direction:column;background:#17171b;color:#fff;position:relative}.scanner-head{display:flex;justify-content:space-between;align-items:center;padding:16px}.scanner-head button{display:grid;place-items:center;width:40px;height:40px;border:1px solid #4e6464;border-radius:50%;background:transparent;color:inherit}.scanner-camera{flex:1 1;position:relative;display:grid;place-items:center;overflow:hidden}.scanner-camera video{width:100%;height:100%;object-fit:cover}.scanner-frame{position:absolute;width:72%;aspect-ratio:1;border:2px solid #f3eee4;border-radius:24px;box-shadow:0 0 0 100vmax rgba(0,0,0,.25)}.scanner-camera small{bottom:85px;background:rgba(8,25,25,.6)}.scan-error,.scanner-camera small{position:absolute;padding:12px;font-size:12px;border-radius:10px}.scan-error{bottom:16px;inset-inline:16px;color:white;background:#9b4038}.qr-sheet{max-width:820px;margin:auto;padding:24px}.qr-sheet-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.qr-sheet-head h1{font-size:26px}.qr-sheet-head a,.qr-sheet-head p{font-size:12px;color:var(--muted)}.qr-sheet-head button{display:flex;align-items:center;gap:8px;padding:11px 16px;border:0;border-radius:10px;background:var(--brand);color:var(--on-brand);font-size:12px;white-space:nowrap}.qr-sheet-actions{display:flex;align-items:center;gap:16px}.qr-print-page{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:18px;gap:18px;margin-bottom:18px}@media (max-width:500px){.qr-print-page{grid-template-columns:1fr}.qr-sheet-head{flex-direction:column;align-items:flex-start}}@media (min-width:700px){.karti-app{border-inline:1px solid var(--line)}}@media print{@page{size:A4;margin:10mm}.qr-sheet{padding:0}.qr-sheet-head{display:none}.qr-print-page{grid-template-columns:minmax(0,1fr);gap:6mm;margin-bottom:0;page-break-after:always;break-after:page}.qr-print-page:last-child{page-break-after:auto;break-after:auto}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}