:root{--pass-bg:#080b18;--pass-card:#11162c;--pass-line:rgba(145,116,255,.28);--pass-muted:#8f96aa;--pass-text:#f7f8ff;--pass-accent:#7b61ff;--pass-blue:#3e8cff;--pass-green:#67e6b3}
.rudi-pass-page{min-height:100vh;background:radial-gradient(circle at 50% 0,rgba(97,65,255,.18),transparent 34%),linear-gradient(180deg,#090c1b 0%,#050813 100%);color:var(--pass-text)}
.pass-shell{max-width:980px;margin:0 auto;padding:42px 22px 110px}.pass-topline{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:18px 0 28px}.pass-topline h1{font-size:clamp(34px,6vw,64px);line-height:1;margin:0}.pass-topline p{margin:9px 0 0;color:var(--pass-muted);font-size:16px}.pass-actions{display:flex;gap:10px;flex-wrap:wrap}.pass-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 18px;border-radius:15px;text-decoration:none;font-weight:800;border:1px solid rgba(255,255,255,.1);color:#fff;background:#12182b}.pass-btn.primary{background:linear-gradient(135deg,#347dff,#8a45ff);border-color:transparent;box-shadow:0 12px 32px rgba(97,65,255,.24)}
.pass-card{position:relative;overflow:hidden;border:1px solid var(--pass-line);border-radius:34px;padding:30px;min-height:420px;background:linear-gradient(145deg,rgba(23,29,59,.97),rgba(12,15,33,.98));box-shadow:0 30px 80px rgba(0,0,0,.38)}.pass-card:before{content:"";position:absolute;inset:-30%;background:radial-gradient(circle at 20% 15%,rgba(62,140,255,.30),transparent 25%),radial-gradient(circle at 82% 14%,rgba(143,69,255,.34),transparent 28%),radial-gradient(circle at 74% 85%,rgba(89,70,255,.18),transparent 28%);pointer-events:none}.pass-card:after{content:"R";position:absolute;right:22px;bottom:-58px;font-size:300px;line-height:1;font-weight:900;color:rgba(255,255,255,.035);pointer-events:none}.pass-card>*{position:relative;z-index:1}.pass-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.pass-brand{display:flex;align-items:center;gap:13px}.pass-logo{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;font-size:26px;font-weight:900;background:linear-gradient(145deg,#2c7cff,#9a42ff);box-shadow:0 10px 30px rgba(87,69,255,.34)}.pass-brand small{display:block;color:#a8afd0;letter-spacing:.18em;font-weight:800}.pass-brand strong{display:block;font-size:24px;margin-top:2px}.pass-status{padding:10px 14px;border-radius:999px;border:1px solid rgba(106,227,183,.28);background:rgba(50,178,129,.10);color:#78e7bd;font-weight:800;font-size:13px}
.pass-main{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:end;margin-top:62px}.pass-person{display:flex;gap:18px;align-items:center}.pass-avatar{width:84px;height:84px;border-radius:26px;display:grid;place-items:center;font-size:34px;font-weight:900;background:linear-gradient(145deg,#2d78ff,#8a4cff);box-shadow:0 15px 32px rgba(75,73,255,.26)}.pass-person small{display:block;color:#9da5bd;font-size:13px;letter-spacing:.12em;text-transform:uppercase;font-weight:800}.pass-person h2{margin:4px 0 3px;font-size:clamp(28px,5vw,44px);line-height:1.05}.pass-person p{margin:0;color:#9da5bd;font-size:15px}.pass-rank{min-width:150px;text-align:right}.pass-rank small{display:block;color:#919ab4;font-size:12px;text-transform:uppercase;letter-spacing:.1em}.pass-rank strong{display:block;font-size:28px;margin-top:4px}.pass-rank em{display:inline-block;margin-top:8px;padding:7px 10px;border-radius:999px;background:rgba(124,88,255,.14);border:1px solid rgba(145,116,255,.25);color:#c6b7ff;font-style:normal;font-weight:800;font-size:12px}
.pass-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:34px}.pass-meta article{padding:14px 15px;border-radius:18px;background:rgba(6,9,24,.38);border:1px solid rgba(255,255,255,.07)}.pass-meta span{display:block;color:#9098b2;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.pass-meta strong{display:block;font-size:20px;margin-top:4px}.pass-id{margin-top:15px;padding-top:15px;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;gap:15px;align-items:center;color:#9ba4bd;font-size:13px}.pass-id code{color:#d8dbeb;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;word-break:break-all}.pass-note{margin-top:18px;color:#8f97ae;font-size:13px;line-height:1.55}.pass-empty{border:1px solid rgba(145,116,255,.22);border-radius:26px;padding:28px;background:rgba(15,20,41,.84)}.pass-empty h2{margin-top:0}.pass-empty p{color:#9ba3ba;line-height:1.6}.pass-mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}.pass-mini-grid a{display:block;padding:18px;border-radius:20px;text-decoration:none;color:#fff;border:1px solid rgba(255,255,255,.08);background:#0e1428}.pass-mini-grid strong{display:block}.pass-mini-grid small{display:block;color:#8f97ae;margin-top:5px}
@media(max-width:720px){.pass-shell{padding:22px 16px 96px}.pass-topline{display:block;margin-top:8px}.pass-topline h1{font-size:36px}.pass-actions{margin-top:18px}.pass-card{border-radius:28px;padding:22px;min-height:auto}.pass-card-head{align-items:center}.pass-brand strong{font-size:20px}.pass-logo{width:50px;height:50px;border-radius:16px}.pass-status{font-size:11px;padding:8px 10px}.pass-main{display:block;margin-top:42px}.pass-person{align-items:flex-start}.pass-avatar{width:72px;height:72px;border-radius:22px;font-size:28px}.pass-person h2{font-size:30px}.pass-rank{text-align:left;margin:22px 0 0 90px;min-width:0}.pass-rank strong{font-size:24px}.pass-meta{grid-template-columns:repeat(2,1fr);margin-top:28px}.pass-id{display:block}.pass-id code{display:block;margin-top:6px}.pass-mini-grid{grid-template-columns:1fr}.pass-card:after{font-size:210px;right:-8px;bottom:-38px}}

/* v51 — interactive Rudi Pass */
.pass-id>div{display:flex;flex-direction:column;gap:5px}.pass-id-date{text-align:right}.pass-id-date strong{color:#f2f4ff;font-size:13px}.pass-tools{display:grid;grid-template-columns:1.35fr .9fr;gap:16px;margin-top:18px}.pass-qr-card,.pass-profile-card,.pass-panel{border:1px solid rgba(145,116,255,.18);border-radius:26px;background:rgba(13,18,38,.88);padding:22px}.pass-section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.pass-section-title h2{font-size:22px;margin:3px 0 0}.pass-section-title .eyebrow{font-size:11px}.pass-local-chip,.pass-counter{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 10px;border-radius:999px;background:rgba(103,230,179,.1);border:1px solid rgba(103,230,179,.22);color:#7fe5bd;font-size:11px;font-weight:800}.pass-qr-card>p{color:#929bb4;line-height:1.55;font-size:13px;margin:12px 0 18px}.pass-qr-wrap{display:flex;gap:22px;align-items:center}.pass-qr-wrap #passQr{width:212px;height:212px;flex:0 0 212px;box-sizing:border-box;overflow:hidden;border-radius:24px;background:#fff;padding:12px;display:grid;place-items:center;box-shadow:0 16px 35px rgba(0,0,0,.22)}.pass-qr-wrap #passQr canvas{display:block!important;width:188px!important;height:188px!important;max-width:100%;border-radius:8px}.pass-qr-wrap #passQr img{display:none!important}.pass-qr-info{display:flex;flex-direction:column;align-items:flex-start;gap:9px}.pass-qr-info>strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:16px;letter-spacing:.04em}.pass-qr-info>small{color:#8992aa;margin-bottom:5px}.pass-qr-info .pass-btn{width:100%;min-height:42px;border:0;cursor:pointer}.pass-feedback{min-height:20px;margin-top:10px;color:#7fe5bd;font-size:12px}.pass-qr-fallback{color:#222;font-size:12px;text-align:center}.pass-details{display:grid;gap:0;margin-top:12px}.pass-details>div{padding:14px 0;border-bottom:1px solid rgba(255,255,255,.07);display:flex;justify-content:space-between;gap:12px}.pass-details>div:last-child{border-bottom:0}.pass-details span{color:#8992aa;font-size:12px}.pass-details strong{font-size:13px;text-align:right}.pass-content-grid{display:grid;grid-template-columns:.9fr 1.35fr;gap:16px;margin-top:16px;align-items:start}.pass-badges{display:flex;gap:9px;flex-wrap:wrap;margin-top:16px}.pass-badge{display:flex;flex-direction:column;gap:2px;padding:11px 13px;border-radius:16px;background:linear-gradient(145deg,rgba(68,103,255,.12),rgba(130,68,255,.12));border:1px solid rgba(125,104,255,.2)}.pass-badge strong{font-size:12px}.pass-badge small{font-size:10px;color:#929ab3}.pass-products{margin-top:12px}.pass-product-row{display:grid;grid-template-columns:44px 1fr auto;gap:11px;align-items:center;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.07)}.pass-product-row:last-child{border-bottom:0}.pass-product-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#2d78ff,#8a4cff);font-weight:900}.pass-product-row strong{display:block;font-size:13px}.pass-product-row small{display:block;color:#8992aa;font-size:11px;margin-top:3px}.pass-product-row em{font-style:normal;color:#bba9ff;font-size:11px;font-weight:800}.pass-empty-inline{color:#8992aa;font-size:13px}
@media(max-width:720px){.pass-tools,.pass-content-grid{grid-template-columns:1fr}.pass-qr-card,.pass-profile-card,.pass-panel{padding:18px;border-radius:22px}.pass-qr-wrap{display:block}.pass-qr-wrap #passQr{width:min(100%,252px);height:auto;aspect-ratio:1;margin:0 auto 18px;flex-basis:auto}.pass-qr-info{align-items:stretch}.pass-qr-info>strong,.pass-qr-info>small{text-align:center}.pass-id-date{text-align:left;margin-top:10px}.pass-section-title h2{font-size:20px}}

/* v53 — Rudi Pass lives inside the authenticated Rudi ID page.
   This intentionally removes the second Supabase auth client/session boundary. */
.rudi-pass-inline{margin:0 0 22px;padding:2px 0 8px;scroll-margin-top:92px}
.pass-inline-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 16px;padding:18px 2px 4px}
.pass-inline-head h3{font-size:32px;line-height:1.05;margin:4px 0 6px}.pass-inline-head p{margin:0;color:#8f97ae}
body.rudi-pass-mode .rudi-mobile-plus-card,body.rudi-pass-mode .rudi-pass-entry,body.rudi-pass-mode .rudi-dashboard-stats,body.rudi-pass-mode .rudi-dashboard-grid{display:none!important}
body.rudi-pass-mode .rudi-pass-inline{display:block!important}
body.rudi-pass-mode .rudi-account-heading p{display:none}
.rudi-dashboard-sidebar nav a[data-pass-nav].active{background:rgba(121,88,255,.13);border-color:rgba(139,104,255,.24);color:#fff}
@media(max-width:720px){.pass-inline-head{align-items:flex-start}.pass-inline-head h3{font-size:26px}.pass-inline-head .pass-btn{min-height:42px;padding:0 13px;font-size:12px}.rudi-pass-inline .pass-card{margin:0}.rudi-pass-inline .pass-tools,.rudi-pass-inline .pass-content-grid{margin-top:14px}}

/* v55 — Pass is a real cabinet sub-view; keep normal dashboard sections out of Pass mode. */
body.rudi-pass-mode .rudi-connected-products,body.rudi-pass-mode .rudi-id-security{display:none!important}


/* v56 — Rudi Pass 2: Levels, badge rarity and signed public verification. */
.pass-level-progress{margin-top:14px;padding:15px 16px;border-radius:18px;background:rgba(6,9,24,.30);border:1px solid rgba(255,255,255,.07)}
.pass-level-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.pass-level-progress-head span{color:#929bb4;font-size:12px;text-transform:uppercase;letter-spacing:.07em}.pass-level-progress-head strong{font-size:12px;color:#d9ddf4}.pass-level-track{height:8px;margin:10px 0 8px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden}.pass-level-track i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2f7cff,#8f45ff);box-shadow:0 0 18px rgba(100,78,255,.45);transition:width .45s ease}.pass-level-progress>small{color:#8992aa;font-size:11px}
.pass-badge{position:relative;overflow:hidden;min-width:112px}.pass-badge:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#68718d}.pass-badge-rarity{font-size:8px!important;text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px}.pass-badge.rarity-common:before{background:#7e879f}.pass-badge.rarity-common .pass-badge-rarity{color:#aeb5c6}.pass-badge.rarity-rare{background:linear-gradient(145deg,rgba(43,112,255,.15),rgba(63,91,189,.10));border-color:rgba(74,137,255,.25)}.pass-badge.rarity-rare:before{background:#4a8cff}.pass-badge.rarity-rare .pass-badge-rarity{color:#73a9ff}.pass-badge.rarity-epic{background:linear-gradient(145deg,rgba(128,63,255,.18),rgba(94,53,184,.12));border-color:rgba(151,92,255,.30)}.pass-badge.rarity-epic:before{background:#a05cff}.pass-badge.rarity-epic .pass-badge-rarity{color:#c18cff}.pass-badge.rarity-legendary{background:linear-gradient(145deg,rgba(255,174,56,.15),rgba(132,75,255,.16));border-color:rgba(255,192,81,.30);box-shadow:inset 0 0 24px rgba(255,160,50,.035)}.pass-badge.rarity-legendary:before{background:linear-gradient(#ffd36a,#a865ff)}.pass-badge.rarity-legendary .pass-badge-rarity{color:#ffd479}
.pass-public-settings{margin-top:18px;padding-top:17px;border-top:1px solid rgba(255,255,255,.08)}.pass-public-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:11px}.pass-public-title strong{display:block;font-size:14px;margin-top:3px}.pass-public-title>span{font-size:10px;color:#7fe5bd;border:1px solid rgba(103,230,179,.2);background:rgba(103,230,179,.08);border-radius:999px;padding:6px 9px}.pass-public-settings label{display:flex;align-items:center;gap:10px;padding:8px 0;color:#d5d9e9;font-size:12px;cursor:pointer}.pass-public-settings input{width:16px;height:16px;accent-color:#7958ff}.pass-public-settings p{color:#7f899f;font-size:10px;line-height:1.5;margin:10px 0 0}.pass-qr-loading{font-size:11px;color:#566078;text-align:center;padding:18px}.pass-qr-info .is-disabled{opacity:.55;pointer-events:none}
@media(max-width:720px){.pass-level-progress{padding:13px}.pass-public-settings label{padding:9px 0}.pass-badge{min-width:0}}
