:root{--teal-deep:#0e7c86;--teal-deeper:#0a5c64;--teal-surface:#eaf7f6;--coral:#ff6b4a;--coral-dark:#e5512f;--gold:#ffb400;--gold-dark:#c98700;--ink:#0b2b33;--ink-soft:#46666b;--white:#fff;--paper:#fbfefe;--radius-card:24px;--shadow-card:0 10px 30px -12px rgba(11,43,51,.22)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--teal-surface);background-image:radial-gradient(circle at 10% 0,rgba(14,124,134,.1),transparent 40%),radial-gradient(circle at 90% 15%,rgba(255,180,0,.12),transparent 35%);font-family:Plus Jakarta Sans,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased}.app,body{min-height:100vh}.app{max-width:480px;margin:0 auto;position:relative;padding-bottom:96px}.boarding-pass{background:linear-gradient(160deg,var(--teal-deep),var(--teal-deeper) 80%);color:var(--white);padding:20px 20px 0;border-radius:0 0 28px 28px;box-shadow:var(--shadow-card);position:relative}.bp-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.bp-logo{font-family:Baloo\ 2,sans-serif;font-weight:800;font-size:19px}.bp-logo span{color:var(--gold)}.bp-user{font-size:13px;font-weight:600;background:hsla(0,0%,100%,.14);padding:6px 12px;border-radius:999px}.bp-stats{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px 10px;gap:14px 10px;padding:14px 2px 18px}.stat-label{display:block;font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:1.4px;color:hsla(0,0%,100%,.65);margin-bottom:4px}.stat-value{font-family:Baloo\ 2,sans-serif;font-weight:700;font-size:22px;line-height:1.1;display:block}.stat-value.small{font-size:15px;font-weight:600;font-family:Plus Jakarta Sans,sans-serif}.bp-perf{height:0;border-bottom:2px dashed hsla(0,0%,100%,.35);margin:0 -4px;position:relative}.bp-perf:after,.bp-perf:before{content:"";position:absolute;width:18px;height:18px;background:var(--teal-surface);border-radius:50%;top:-9px}.bp-perf:before{left:-9px}.bp-perf:after{right:-9px}.badges-row{display:flex;gap:10px;overflow-x:auto;padding:18px 20px 4px;scrollbar-width:none}.badges-row::-webkit-scrollbar{display:none}.badge-chip{flex:0 0 auto;display:flex;flex-direction:column;gap:2px;background:var(--white);border:1px solid rgba(11,43,51,.08);border-radius:16px;padding:9px 14px;box-shadow:0 4px 14px -8px rgba(11,43,51,.18);min-width:128px}.badge-chip .emoji{font-size:18px}.badge-chip .label{font-family:JetBrains Mono,monospace;font-size:9px;letter-spacing:.8px;color:var(--ink-soft)}.badge-chip .value{font-weight:700;font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}.section-head{display:flex;align-items:baseline;justify-content:space-between;padding:22px 20px 10px}.section-head h2{font-family:Baloo\ 2,sans-serif;font-size:21px;margin:0}.section-head .sub{font-size:12px;color:var(--ink-soft);font-weight:600}.ticket-list{display:flex;flex-direction:column;gap:16px;padding:0 20px}.ticket{display:grid;grid-template-columns:1fr 96px;background:var(--white);border-radius:var(--radius-card);box-shadow:var(--shadow-card);position:relative;transition:transform .15s ease;cursor:pointer}.ticket:active{transform:scale(.985)}.ticket-info{padding:18px 14px 16px 18px;display:flex;flex-direction:column;gap:6px;min-width:0}.ticket-rank{position:absolute;top:-10px;left:14px;font-size:11px;letter-spacing:.5px;color:var(--white);background:var(--ink);padding:4px 10px;border-radius:999px;transform:rotate(-3deg);box-shadow:0 4px 10px -4px rgba(0,0,0,.4)}.ticket-rank,.ticket-type{font-family:JetBrains Mono,monospace;font-weight:700}.ticket-type{font-size:10px;letter-spacing:1.2px;color:var(--coral-dark);margin-top:6px}.ticket-title{font-family:Baloo\ 2,sans-serif;font-size:18px;font-weight:700;margin:0;color:var(--ink);line-height:1.2}.ticket-meta{margin:0;font-size:12.5px;color:var(--ink-soft);font-weight:500}.ticket-tags{display:flex;gap:6px;margin-top:2px}.tag{font-size:10.5px;background:var(--teal-surface);color:var(--teal-deeper);border-radius:999px;padding:3px 9px;font-weight:700}.ticket-perf{position:relative;border-left:2px dashed rgba(11,43,51,.18)}.ticket-perf:after,.ticket-perf:before{content:"";position:absolute;width:16px;height:16px;background:var(--teal-surface);border-radius:50%;left:-9px}.ticket-perf:before{top:-8px}.ticket-perf:after{bottom:-8px}.ticket-stub{background:linear-gradient(160deg,var(--teal-deep),var(--teal-deeper));border-radius:0 var(--radius-card) var(--radius-card) 0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--white);gap:2px;padding:8px 4px}.stub-score{font-family:Baloo\ 2,sans-serif;font-weight:800;font-size:26px;line-height:1}.stub-score.unrated{font-size:14px;opacity:.85;font-family:Plus Jakarta Sans,sans-serif;font-weight:700}.stub-label{font-family:JetBrains Mono,monospace;font-size:8.5px;letter-spacing:1px;opacity:.8}.stub-votes{font-size:9.5px;background:hsla(0,0%,100%,.18);padding:2px 7px;border-radius:999px;margin-top:3px;font-weight:600}.sheet-backdrop{position:fixed;inset:0;background:rgba(11,43,51,.45);opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:40}.sheet-backdrop.open{opacity:1;pointer-events:auto}.rate-sheet{position:fixed;left:50%;bottom:0;transform:translate(-50%,100%);width:100%;max-width:480px;background:var(--paper);border-radius:28px 28px 0 0;box-shadow:0 -20px 50px -10px rgba(11,43,51,.35);padding:10px 22px 28px;z-index:50;transition:transform .28s cubic-bezier(.2,.9,.3,1)}.rate-sheet.open{transform:translate(-50%)}.sheet-handle{width:40px;height:4px;background:rgba(11,43,51,.18);border-radius:999px;margin:8px auto 14px}.sheet-title{font-family:Baloo\ 2,sans-serif;font-size:19px;margin:0 0 2px}.sheet-sub{font-size:12.5px;color:var(--ink-soft);margin:0 0 16px;font-weight:600}.score-grid{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:8px;gap:8px;margin-bottom:18px}.score-btn{aspect-ratio:1;border-radius:14px;border:none;background:var(--white);box-shadow:0 3px 10px -6px rgba(11,43,51,.3);font-family:Baloo\ 2,sans-serif;font-weight:700;font-size:17px;color:var(--ink);cursor:pointer}.score-btn:active{transform:scale(.92)}.score-btn.selected{background:linear-gradient(135deg,var(--coral),var(--coral-dark));color:var(--white);box-shadow:0 6px 16px -6px rgba(229,81,47,.6)}.field{margin-bottom:14px;display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;font-weight:700;color:var(--ink-soft);font-family:JetBrains Mono,monospace;letter-spacing:.5px}.field input,.field select,.field textarea{font-family:Plus Jakarta Sans,sans-serif;font-size:15px;padding:12px 14px;border-radius:14px;border:1px solid rgba(11,43,51,.15);background:var(--white)}.sheet-confirm{width:100%;border:none;background:var(--ink);color:var(--white);font-weight:700;font-size:15px;padding:15px;border-radius:16px;font-family:Plus Jakarta Sans,sans-serif;cursor:pointer}.sheet-confirm:disabled{opacity:.35}.bottom-nav{position:fixed;left:50%;bottom:14px;transform:translateX(-50%);width:calc(100% - 32px);max-width:448px;background:rgba(11,43,51,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:24px;justify-content:space-around;padding:8px 6px;box-shadow:0 14px 30px -8px rgba(11,43,51,.45);z-index:30}.bottom-nav,.nav-item{display:flex;align-items:center}.nav-item{background:none;border:none;color:hsla(0,0%,100%,.6);font-size:18px;flex-direction:column;gap:2px;padding:8px 12px;border-radius:14px;cursor:pointer}.nav-item span{font-size:9.5px;font-weight:700;letter-spacing:.3px;font-family:JetBrains Mono,monospace}.nav-item.active{color:var(--gold)}.nav-fab{width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,var(--coral),var(--coral-dark));color:var(--white);border:none;font-size:24px;font-weight:700;box-shadow:0 8px 18px -4px rgba(255,107,74,.6);margin-top:-22px;cursor:pointer}.credit{text-align:center;font-size:11px;color:var(--ink-soft);padding:18px 0 4px;font-family:JetBrains Mono,monospace}.name-gate{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:32px;text-align:center;gap:16px}.name-gate h1{font-family:Baloo\ 2,sans-serif;font-size:26px;margin:0}.name-gate input{font-size:16px;padding:14px 16px;border-radius:14px;border:1px solid rgba(11,43,51,.15);width:100%;max-width:320px}.name-gate button{background:var(--coral);color:var(--white);border:none;font-weight:700;padding:14px 28px;border-radius:14px;font-size:15px;cursor:pointer}