.passport-v215{--card-bg:#ede2cc;--card-ink:#30271b;--card-muted:#62523d;--card-line:#ad9060;min-width:0;width:100%;color:#241d15}
.passport-v215[data-level="2"]{--card-bg:#1e3931;--card-ink:#fff5df;--card-muted:#d5c5a5;--card-line:#9a875d}
.passport-v215[data-level="3"]{--card-bg:#203144;--card-ink:#f4f5f3;--card-muted:#c8d3da;--card-line:#96a8b6}
.passport-v215[data-level="4"]{--card-bg:#171613;--card-ink:#f6dfab;--card-muted:#d2c19e;--card-line:#ba9656}
.passport-v215 *{box-sizing:border-box}
.passport-face{position:relative;display:flex;flex-direction:column;gap:20px;min-width:0;min-height:270px;padding:28px;border:1px solid var(--card-line);border-radius:16px;background:var(--card-bg);color:var(--card-ink);overflow:hidden}
.passport-face:after{content:"";position:absolute;inset:9px;border:1px solid var(--card-line);opacity:.35;border-radius:9px;pointer-events:none}
.passport-face header{display:flex;align-items:center;justify-content:space-between;gap:16px;position:relative;z-index:1}
.passport-face .passport-logo{width:min(58%,205px);height:auto;max-height:60px;object-fit:contain;background:#f2eadb;padding:7px 10px;border-radius:3px}
.passport-tier{font:600 12px/1.5 Inter,Arial,sans-serif;letter-spacing:.12em;text-align:right;color:var(--card-muted)}
.passport-face .passport-level-name{font:400 clamp(24px,3vw,34px)/1.2 Georgia,serif;margin:0;color:var(--card-ink);overflow-wrap:anywhere}
.passport-owner{font:600 17px/1.4 Inter,Arial,sans-serif;overflow-wrap:anywhere;margin:0;color:var(--card-ink)}
.passport-face .passport-code{font:12px/1.5 ui-monospace,monospace;color:var(--card-muted);overflow-wrap:anywhere}
.passport-face footer{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--card-line);padding-top:12px;font:600 11px/1.5 Inter,Arial,sans-serif;letter-spacing:.07em;color:var(--card-muted)}
.passport-sample{margin:12px 0 0;font:12px/1.5 Inter,Arial,sans-serif;color:#62523d}
.passport-details{background:#faf7f0;color:#2f291f;border:1px solid #ded2bf;border-radius:12px;margin-top:12px;padding:22px}
.passport-details h4{font:400 23px/1.3 Georgia,serif;margin:0 0 10px;color:#2f291f}
.passport-details p{font:14px/1.65 Inter,Arial,sans-serif;margin:8px 0;color:#514a3e}
.passport-stats{display:flex;flex-wrap:wrap;gap:16px 30px;margin:0 0 16px}.passport-stats div{min-width:0}.passport-stats dt{font:12px/1.5 Inter,Arial,sans-serif;color:#635b4e}.passport-stats dd{font:600 15px/1.5 Inter,Arial,sans-serif;margin:3px 0 0}
.passport-progress{display:block;width:100%;height:8px;accent-color:#876c36;margin:14px 0}
.passport-stamps{display:flex;flex-wrap:wrap;gap:5px;list-style:none;padding:0;margin:14px 0}.passport-stamps li{width:22px;height:22px;border:1px solid #c4b79e;border-radius:50%;display:grid;place-items:center;font:10px/1 Arial;color:#6c604c}.passport-stamps li.done{background:#35473b;color:#fff;border-color:#35473b}
.passport-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.passport-actions button,.passport-actions a{border:1px solid #786442;border-radius:6px;padding:11px 16px;font:600 13px/1.4 Inter,Arial,sans-serif;background:#fff;color:#302719;text-decoration:none;cursor:pointer}.passport-actions button:disabled{opacity:.55;cursor:wait}.passport-actions :focus-visible{outline:3px solid #967843;outline-offset:3px}
.passport-qr-panel{display:flex;align-items:center;gap:18px;margin-top:18px}.passport-qr-panel img{width:112px;height:112px;object-fit:contain;background:white;padding:6px;flex-shrink:0}.passport-qr-panel p{margin:0}.passport-feedback{color:#8c301c!important;font-size:13px!important}
.passport-level-card>.passport-v215{padding:24px 28px 12px}.passport-level-card .passport-face{max-width:480px}.passport-v215.compact .passport-face{padding:22px;min-height:245px}.passport-v215.compact .passport-details{padding:16px}
.passport-level-card--4{background:#211e18}.passport-level-card--4 .passport-sample{color:#d2c19e}.passport-level-list{gap:30px}.passport-privileges{padding-left:18px;margin:12px 0}.passport-privileges li{font:14px/1.6 Inter,Arial,sans-serif;margin:5px 0;color:#514a3e}
@media(max-width:640px){.passport-face{padding:23px;min-height:270px;gap:17px}.passport-face .passport-level-name{font-size:29px}.passport-level-card>.passport-v215{padding:0 16px 22px}.passport-details{padding:18px}.passport-owner{font-size:15px}.passport-tier{font-size:10px}.passport-qr-panel{align-items:flex-start}.passport-qr-panel img{width:100px;height:100px}.passport-actions>*{flex:1;text-align:center}}
@media(max-width:360px){.passport-face{padding:20px}.passport-face .passport-level-name{font-size:25px}.passport-stamps{gap:4px}}

/* V21.10 premium editions. Decorative layers never contain member data. */
.passport-v215 .passport-face{isolation:isolate;min-height:300px;padding:30px;gap:15px;border-radius:18px;box-shadow:0 14px 30px -20px #24190d80;background:linear-gradient(135deg,#f8f2e7,#e5d6b9)}
.passport-face>header,.passport-face>p,.passport-face>h3,.passport-face>div:not(.passport-ornament),.passport-face>footer{position:relative;z-index:1}
.passport-v215 .passport-face .passport-collection{margin:6px 0 -6px;font:600 9px/1.5 Arial,sans-serif;letter-spacing:.2em;color:var(--card-muted)}
.passport-v215 .passport-face .passport-level-name{font-size:clamp(26px,3vw,38px);letter-spacing:-.02em;font-weight:400;line-height:1.14}
.passport-v215 .passport-face .passport-owner{font-weight:500;letter-spacing:.02em}
.passport-v215 .passport-face .passport-code{letter-spacing:.09em;margin-top:7px}
.passport-v215 .passport-face .passport-logo{border:1px solid #c4ad76;max-width:190px;padding:6px 9px;border-radius:2px}
.passport-v215 .passport-face .passport-tier{font-size:10px;white-space:nowrap}
.passport-ornament{position:absolute;right:-55px;top:45px;width:220px;height:220px;border:1px solid var(--card-line);border-radius:50%;opacity:.16;pointer-events:none;z-index:0}
.passport-ornament:after{content:"";position:absolute;inset:16px;border:1px solid var(--card-line);border-radius:inherit}
.passport-v215[data-level="2"] .passport-face{background:linear-gradient(115deg,transparent 70%,#53644755 70%,#53644755 74%,transparent 74%),linear-gradient(135deg,#27483c,#102a22);border-left:5px solid #ad9565}
.passport-v215[data-level="2"] .passport-ornament{border-radius:45% 45% 0 0;right:26px;top:60px;width:100px;height:170px;transform:rotate(18deg)}
.passport-v215[data-level="3"] .passport-face{background:linear-gradient(125deg,transparent 60%,#b7cbd322 60%,#b7cbd322 61%,transparent 61%,transparent 68%,#b7cbd322 68%,#b7cbd322 69%,transparent 69%),linear-gradient(135deg,#293e51,#111d2b);border-color:#b7cbd3}
.passport-v215[data-level="3"] .passport-face:after{border:3px double #96a8b6;inset:8px;opacity:.55}
.passport-v215[data-level="3"] .passport-ornament{border-radius:0;transform:rotate(45deg);right:-75px;opacity:.12}
.passport-v215[data-level="4"] .passport-face{background:linear-gradient(110deg,transparent 68%,#b9924544 68%,#b9924511 82%,transparent 82%),linear-gradient(135deg,#29231b,#0e0d0b);border:1px solid #c4a269;box-shadow:0 18px 38px -22px #100b06b3}
.passport-v215[data-level="4"] .passport-face:after{border:3px double #bda06b;inset:7px;opacity:.8}
.passport-v215[data-level="4"] .passport-face .passport-level-name{letter-spacing:.025em;color:#f5dfad}
.passport-v215[data-level="4"] .passport-ornament{width:150px;height:190px;right:30px;top:80px;border-radius:50% 50% 42% 42%;border:3px double #bda06b;opacity:.19}
.passport-details{border-top:3px solid var(--card-line);box-shadow:none}
.passport-details>div+div{margin-top:22px}
.passport-qr-panel{padding:14px;border:1px solid #dfd3bf;border-radius:8px}
.passport-v215.compact .passport-face{min-height:280px;padding:26px;gap:13px}
@media(max-width:640px){.passport-v215 .passport-face{min-height:290px;padding:25px;gap:15px}.passport-v215 .passport-face .passport-level-name{font-size:30px}.passport-v215 .passport-face .passport-collection{font-size:8px;letter-spacing:.14em}.passport-v215 .passport-face footer{font-size:9px;flex-wrap:wrap}.passport-v215 .passport-face .passport-logo{max-width:165px}.passport-qr-panel{flex-wrap:wrap}.passport-v215.compact .passport-face{padding:24px}}
@media(max-width:360px){.passport-v215 .passport-face{padding:22px}.passport-v215 .passport-face .passport-level-name{font-size:27px}.passport-v215 .passport-face .passport-tier{font-size:9px}}
/* V21.10 multi-session booking: stable selection across dates, usable on narrow screens. */
.selected-sessions{margin:16px 0;padding:16px;border:1px solid #d8c6a2;border-radius:12px;background:#f8f3e9;color:#292017}
.selected-sessions>div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-top:1px solid #ded2bc}
.selected-sessions>div>span{overflow-wrap:anywhere;min-width:0}.selected-sessions button{flex-shrink:0;min-height:44px;padding:8px 12px;border:1px solid #947647;border-radius:6px;background:transparent;color:inherit}
.booking-date-tabs-v12{max-height:240px;overflow:auto;align-content:start}.booking-slot-grid-v12 .slot-button b{font-size:clamp(13px,2.6vw,17px);white-space:nowrap}
