:root {
  --tickets-ink: #132238;
  --tickets-navy: #0b1f33;
  --tickets-coral: #ff6b5f;
  --tickets-coral-dark: #df5047;
  --tickets-mint: #c9f2df;
  --tickets-cream: #fff8ef;
  --tickets-sky: #dcefff;
  --bs-primary: #ff6b5f;
  --bs-primary-rgb: 255, 107, 95;
  --bs-link-color: #cf4038;
  --bs-link-hover-color: #9f2c27;
  --bs-focus-ring-color: rgba(255,107,95,.28);
}

html { scroll-behavior: smooth; }
body { min-height: 100vh; display: flex; flex-direction: column; color: var(--tickets-ink); background: #fff; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
a { color: var(--bs-link-color); }
a:hover { color: var(--bs-link-hover-color); }
.site-nav { background: rgba(11,31,51,.97); backdrop-filter: blur(12px); }
.navbar-brand { letter-spacing: -.03em; }
.brand-logo-wrap { display: inline-flex; padding: .18rem .55rem; border-radius: .7rem; background: #fff; }
.brand-logo { display: block; width: 8.7rem; height: auto; }
.footer-logo { display: block; width: 10rem; height: auto; padding: .4rem .65rem; border-radius: .7rem; background: #fff; }
.brand-mark { width: 2rem; height: 2rem; display: inline-grid; place-items: center; border-radius: .65rem .65rem .65rem .1rem; color: var(--tickets-navy); background: var(--tickets-coral); transform: rotate(-4deg); }
.brand-mark i { transform: rotate(4deg); }
.brand-mark-sm { width: 1.65rem; height: 1.65rem; font-size: .8rem; }
.btn-coral, .btn-primary { --bs-btn-color: #142237; --bs-btn-bg: var(--tickets-coral); --bs-btn-border-color: var(--tickets-coral); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--tickets-coral-dark); --bs-btn-hover-border-color: var(--tickets-coral-dark); --bs-btn-active-bg: #c9443d; --bs-btn-active-border-color: #c9443d; --bs-btn-disabled-bg: #d9a09b; --bs-btn-disabled-border-color: #d9a09b; font-weight: 700; }
.btn-outline-primary { --bs-btn-color: #c94039; --bs-btn-border-color: #e25b53; --bs-btn-hover-bg: var(--tickets-coral); --bs-btn-hover-border-color: var(--tickets-coral); --bs-btn-active-bg: var(--tickets-coral-dark); --bs-btn-active-border-color: var(--tickets-coral-dark); }
.form-control:focus, .form-select:focus { border-color: var(--tickets-coral); box-shadow: 0 0 0 .25rem rgba(255,107,95,.18); }
.form-check-input:checked { background-color: var(--tickets-coral); border-color: var(--tickets-coral); }
.hero { position: relative; overflow: hidden; background: var(--tickets-navy); color: #fff; padding: 7rem 0 6rem; }
.hero::after { content: ""; position: absolute; width: 28rem; height: 28rem; right: -8rem; top: -8rem; border-radius: 50%; background: radial-gradient(circle at 35% 35%, var(--tickets-coral), #ffb26d 55%, transparent 56%); opacity: .95; }
.hero .container { position: relative; z-index: 1; }
.hero-title { max-width: 780px; font-size: clamp(3.2rem, 7.5vw, 6.8rem); line-height: .92; letter-spacing: -.065em; }
.hero-title em { color: var(--tickets-coral); font-style: normal; }
.hero-copy { max-width: 600px; font-size: 1.2rem; color: rgba(255,255,255,.72); }
.eyebrow { text-transform: uppercase; letter-spacing: .16em; font-size: .76rem; font-weight: 800; color: var(--tickets-coral); }
.stat-strip { margin-top: -2rem; position: relative; z-index: 2; }
.stat-card { background: #fff; border: 1px solid rgba(19,34,56,.08); box-shadow: 0 18px 50px rgba(14,36,57,.1); border-radius: 1.25rem; }
.payment-integrations { padding: 5rem 0; background: var(--tickets-cream); }
.payment-integration-card { display: flex; align-items: flex-start; gap: 1rem; width: 100%; min-height: 100%; padding: 1.35rem; border: 1px solid rgba(19,34,56,.08); border-radius: 1.25rem; background: #fff; box-shadow: 0 12px 35px rgba(16,36,56,.06); }
.payment-integration-card .icon-box { flex: 0 0 3.25rem; }
.payment-integration-card h3 { margin: .1rem 0 .35rem; font-size: 1rem; font-weight: 800; }
.payment-integration-card p { margin: 0; color: #657286; font-size: .9rem; line-height: 1.55; }
.section-space { padding: 6rem 0; }
.section-soft { background: var(--tickets-cream); }
.section-mint { background: var(--tickets-mint); }
.feature-card { height: 100%; border: 0; border-radius: 1.25rem; padding: 1.65rem; box-shadow: 0 14px 45px rgba(16,36,56,.07); }
#features .row.g-4 > div { display: flex; }
#features .feature-card { width: 100%; }
.icon-box { width: 3.25rem; height: 3.25rem; display: grid; place-items: center; border-radius: 1rem; background: var(--tickets-sky); color: var(--tickets-navy); font-size: 1.15rem; }
.price-card { max-width: 850px; margin: 0 auto; padding: clamp(2rem,5vw,4rem); border-radius: 2rem; color: white; background: var(--tickets-navy); box-shadow: 0 30px 70px rgba(11,31,51,.18); }
.display-price { font-size: clamp(4rem, 10vw, 7rem); font-weight: 800; letter-spacing: -.07em; line-height: .85; color: var(--tickets-coral); }
.pricing-grid .price-card { display: flex; flex-direction: column; width: 100%; padding: 2rem 1.4rem; }
.pricing-grid > div { display: flex; }
.pricing-grid .display-price { font-size: clamp(3.4rem, 5vw, 5rem); }
.pricing-limit { padding: .75rem; border: 1px solid rgba(255,255,255,.14); border-radius: .8rem; color: #fff; font-size: .88rem; font-weight: 700; }
.price-card-contact { background: linear-gradient(145deg, #173a55, var(--tickets-navy)); }
.site-footer { position: relative; overflow: hidden; background: #071522; color: white; }
.footer-cta { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 4.5rem 0; border-bottom: 1px solid rgba(255,255,255,.12); }
.footer-cta > div { max-width: 720px; }
.footer-main { padding: 4.5rem 0 3.5rem; }
.footer-intro { max-width: 31rem; color: rgba(255,255,255,.72); font-size: 1.05rem; line-height: 1.7; }
.footer-contact, .footer-link, .footer-list a, .footer-bottom a { color: rgba(255,255,255,.72); text-decoration: none; }
.footer-contact { display: inline-flex; align-items: center; font-weight: 700; }
.footer-contact:hover, .footer-link:hover, .footer-list a:hover, .footer-bottom a:hover { color: white; }
.footer-address { min-height: 4.8rem; margin: 0 0 1rem; color: rgba(255,255,255,.72); line-height: 1.65; }
.footer-heading { margin: .35rem 0 1.25rem; color: var(--tickets-coral); font-size: .76rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.footer-list { display: grid; gap: .8rem; margin: 0; padding: 0; list-style: none; }
.footer-details { display: grid; gap: .75rem; margin: 0; }
.footer-details div { display: grid; grid-template-columns: 3.2rem minmax(0, 1fr); gap: .5rem; }
.footer-details dd { overflow-wrap: anywhere; }
.footer-details dt { color: rgba(255,255,255,.48); font-weight: 500; }
.footer-details dd { margin: 0; color: rgba(255,255,255,.82); }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.5rem 0 2.5rem; border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.48); font-size: .82rem; }
.footer-bottom div { display: flex; gap: .65rem; }
.surlinio-credit { position: absolute; right: 1rem; bottom: .5rem; color: rgba(255,255,255,.45); font-size: .72rem; text-decoration: none; }
.auth-shell { flex: 1; background: linear-gradient(135deg, var(--tickets-cream), #fff 60%); padding: 4rem 0; }
.auth-card, .panel-card { border: 1px solid rgba(19,34,56,.08); border-radius: 1.25rem; box-shadow: 0 18px 55px rgba(14,36,57,.08); }
.kvk-company-card { padding: 1.25rem; border: 1px solid rgba(19,34,56,.1); border-radius: 1rem; background: var(--tickets-cream); }
.dashboard-shell { flex: 1; background: #f5f7fa; padding: 3rem 0 5rem; }
.app-shell { display: flex; flex: 1 0 auto; min-height: 100vh; background: #f5f7fa; }
.app-sidebar { --bs-offcanvas-width: 17rem; width: 17rem; flex: 0 0 17rem; color: #fff; background: var(--tickets-navy); border: 0; }
.app-sidebar-inner { display: flex; flex-direction: column; min-height: 100vh; padding: 1.25rem 1rem; }
.app-brand { display: inline-flex; align-self: flex-start; margin: 0 .5rem 2rem; padding: .35rem .6rem; border-radius: .75rem; background: #fff; }
.app-brand img { display: block; width: 8.7rem; height: auto; }
.app-sidebar-label { margin: 0 .75rem .75rem; color: rgba(255,255,255,.48); font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; overflow-wrap: anywhere; }
.app-menu { display: grid; gap: .35rem; }
.app-menu-link { display: flex; align-items: center; gap: .85rem; min-height: 2.9rem; padding: .7rem .8rem; border-radius: .75rem; color: rgba(255,255,255,.72); font-weight: 700; text-decoration: none; }
.app-menu-link i { width: 1.35rem; color: rgba(255,255,255,.46); text-align: center; }
.app-menu-link:hover { color: #fff; background: rgba(255,255,255,.08); }
.app-menu-link.active { color: var(--tickets-navy); background: var(--tickets-coral); }
.app-menu-link.active i { color: var(--tickets-navy); }
.app-sidebar-bottom { display: grid; gap: .35rem; margin-top: auto; padding-top: 2rem; border-top: 1px solid rgba(255,255,255,.1); }
.app-content { display: flex; flex: 1 1 auto; flex-direction: column; min-width: 0; }
.app-content > main { flex: 1 0 auto; }
.impersonation-bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .65rem 1rem; color: #fff; background: #8a3d18; font-size: .88rem; }
.impersonation-bar form { margin: 0; }
.app-mobile-header { display: flex; align-items: center; justify-content: space-between; min-height: 4.5rem; padding: .75rem 1rem; background: var(--tickets-navy); }
.app-mobile-header img { display: block; width: 8.25rem; height: auto; padding: .25rem .45rem; border-radius: .55rem; background: #fff; }
.app-menu-toggle { color: #fff; border: 1px solid rgba(255,255,255,.22); }
.app-menu-toggle:hover, .app-menu-toggle:focus { color: #fff; background: rgba(255,255,255,.1); }
.app-footer { padding: 1rem 1.5rem; color: #718096; background: #fff; border-top: 1px solid #e4e8ed; font-size: .8rem; text-align: right; }
.report-bars { display: grid; gap: .9rem; }
.report-bar-row { display: grid; grid-template-columns: 3.4rem minmax(6rem,1fr) 6.5rem; gap: .8rem; align-items: center; }
.report-bar-row .progress, .progress { --bs-progress-bar-bg: var(--tickets-coral); }
.order-history { display: grid; gap: 0; }
.order-history-item { position: relative; padding: 0 0 1.25rem 1.4rem; border-left: 2px solid #e2e8ef; }
.order-history-item::before { content: ""; position: absolute; top: .25rem; left: -.38rem; width: .65rem; height: .65rem; border-radius: 50%; background: var(--tickets-coral); }
.order-history-item:last-child { padding-bottom: 0; }
.metric { font-size: 2rem; font-weight: 800; letter-spacing: -.04em; }
.status-pill { display: inline-flex; padding: .3rem .65rem; border-radius: 999px; font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.status-draft { background: #e7ebef; color: #52606d; }
.status-payment_pending { background: #fff0cc; color: #815d00; }
.status-published { background: #d8f7e8; color: #146442; }
.status-cancelled { background: #fbe0df; color: #8a2a26; }
.event-card { transition: transform .2s ease, box-shadow .2s ease; }
.event-card:hover { transform: translateY(-3px); box-shadow: 0 20px 55px rgba(14,36,57,.12); }
.shop-hero { background: linear-gradient(135deg, var(--tickets-navy), #183d5a); color: white; padding: 5rem 0; }
.ticket-row { border: 1px solid rgba(19,34,56,.1); border-radius: 1rem; padding: 1.25rem; }
.ticket-scanner { padding: 1rem; border: 1px solid rgba(19,34,56,.1); border-radius: 1rem; background: #f7f9fb; }
.ticket-scanner-view { overflow: hidden; border-radius: .8rem; background: var(--tickets-navy); }
.ticket-scanner-view:empty { min-height: 12rem; }
.ticket-scanner-view video { object-fit: cover; }
.ticket-scanner-view img { max-width: 100%; }
.onboarding-payment-preview { padding: 1rem; border: 1px solid rgba(19,34,56,.1); border-radius: 1rem; background: #f7f9fb; }
.onboarding-payment-preview > div { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .55rem; }
.onboarding-payment-preview span { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .65rem; border-radius: 999px; color: var(--tickets-navy); background: #fff; border: 1px solid rgba(19,34,56,.1); font-size: .75rem; font-weight: 700; }
.onboarding-payment-preview small { color: #657286; }
.onboarding-steps { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.onboarding-steps article { display: grid; grid-template-columns: 2.7rem 1fr; gap: .85rem; padding: 1.25rem; border: 1px solid #dce2e8; border-radius: 1rem; }
.onboarding-steps article > span { display: grid; place-items: center; width: 2.7rem; height: 2.7rem; border-radius: .8rem; color: #657286; background: #edf1f4; }
.onboarding-steps article.is-complete > span { color: #146442; background: #d8f7e8; }
.onboarding-steps article.is-current { border-color: var(--tickets-coral); box-shadow: 0 0 0 .2rem rgba(255,107,95,.1); }
.onboarding-steps article.is-current > span { color: var(--tickets-navy); background: var(--tickets-coral); }
.onboarding-steps small { color: #8994a3; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.onboarding-steps h3 { margin: .15rem 0 .4rem; font-size: 1rem; font-weight: 800; }
.onboarding-steps p { color: #657286; font-size: .86rem; line-height: 1.5; }
.mollie-method-divider { display: flex; align-items: center; gap: .75rem; margin: 1.75rem 0; color: #8994a3; font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.mollie-method-divider::before,.mollie-method-divider::after { content: ""; flex: 1; height: 1px; background: #e1e6eb; }
.mollie-api-method { padding: 1.25rem; border: 1px solid #dce2e8; border-radius: 1rem; background: #f8fafb; }
@media (max-width: 991.98px) { .onboarding-steps { grid-template-columns: 1fr; } }.payment-choice { position: relative; display: flex; flex-direction: column; gap: .7rem; height: 100%; padding: 1.35rem; border: 2px solid #dce2e8; border-radius: 1.15rem; cursor: pointer; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; }
.payment-choice:hover { border-color: #ee9a93; }
.payment-choice.is-selected { border-color: var(--tickets-coral); background: #fff8f6; box-shadow: 0 0 0 .2rem rgba(255,107,95,.12); }
.payment-choice > .form-check-input { position: absolute; top: 1.25rem; right: 1.25rem; }
.payment-choice-icon { display: grid; place-items: center; width: 2.8rem; height: 2.8rem; border-radius: .85rem; background: var(--tickets-sky); color: var(--tickets-navy); }
.payment-choice strong { font-size: 1.05rem; }
.payment-choice > span:not(.payment-choice-icon) { color: #657286; line-height: 1.55; }
.payment-choice small { margin-top: auto; }
@media (max-width: 767.98px) { .app-sidebar { width: 13.5rem; flex-basis: 13.5rem; } .app-sidebar-inner { min-height: 100vh; padding: 1rem .65rem; } .app-brand { margin-bottom: 1.5rem; } .app-brand img { width: 7.4rem; } .app-menu-link { gap: .6rem; padding: .65rem; font-size: .86rem; } .hero { padding: 5rem 0 4.5rem; } .hero::after { width: 15rem; height: 15rem; right: -7rem; top: -5rem; opacity: .55; } .section-space { padding: 4rem 0; } .footer-cta { align-items: flex-start; flex-direction: column; padding: 3.5rem 0; } .footer-main { padding: 3.5rem 0 2.5rem; } .footer-bottom { align-items: flex-start; flex-direction: column; padding-bottom: 3.25rem; } .dashboard-shell { padding-top: 2rem; } .impersonation-bar { align-items: flex-start; flex-direction: column; } }

.hero-fee-note { display: flex; align-items: center; gap: 1rem; max-width: 48rem; margin: 0 0 1.5rem; padding: .9rem 1rem; border: 1px solid rgba(255,255,255,.2); border-radius: 1rem; background: rgba(255,255,255,.08); backdrop-filter: blur(8px); }
.hero-fee-value { flex: 0 0 auto; color: var(--tickets-coral); font-size: 2rem; font-weight: 900; line-height: 1; }
.hero-fee-note strong,.hero-fee-note small { display: block; }
.hero-fee-note strong { color: #fff; font-size: .95rem; }
.hero-fee-note small { margin-top: .15rem; color: rgba(255,255,255,.62); line-height: 1.4; }
.pricing-zero-commission { display: inline-block; margin: 0; padding: .75rem 1rem; border-radius: 999px; color: #146442; background: #d8f7e8; font-size: .9rem; }
@media (max-width: 575.98px) {
  .hero-fee-note { align-items: flex-start; }
  .hero-fee-value { font-size: 1.65rem; }
  .pricing-zero-commission { border-radius: 1rem; }
}/* Homepage scanner story */
.scan-story { overflow: hidden; background: linear-gradient(180deg,#fff 0%,#f4f8f7 100%); }
.scan-benefits { display: grid; gap: 1.15rem; margin-bottom: 1.5rem; }
.scan-benefits > div { display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; align-items: start; }
.scan-benefits > div > span { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: .9rem; color: var(--tickets-navy); background: var(--tickets-mint); }
.scan-benefits h3 { margin: 0 0 .25rem; font-size: 1rem; font-weight: 800; }
.scan-benefits p { margin: 0; color: #657286; line-height: 1.55; }
.scan-demo-wrap { position: relative; max-width: 31rem; margin: 0 auto; padding: 1.5rem; }
.scan-demo-phone { overflow: hidden; padding: 1.1rem; color: #fff; background: #081827; border: .65rem solid #132238; border-radius: 2.35rem; box-shadow: 0 2.2rem 5rem rgba(14,36,57,.24); transform: rotate(1.5deg); }
.scan-demo-top { display: flex; justify-content: space-between; gap: 1rem; align-items: start; }
.scan-demo-top div { display: grid; }
.scan-demo-top small { color: var(--tickets-coral); font-size: .58rem; font-weight: 900; letter-spacing: .12em; }
.scan-demo-top strong { font-size: 1.2rem; }
.scan-demo-top div span { color: rgba(255,255,255,.58); font-size: .7rem; }
.scan-demo-offline { display: inline-flex; align-items: center; gap: .35rem; padding: .35rem .55rem; border-radius: 999px; color: #ffd166; background: rgba(255,209,102,.12); font-size: .65rem; font-weight: 800; white-space: nowrap; }
.scan-demo-offline i { font-size: .42rem; }
.scan-demo-stats { display: grid; grid-template-columns: repeat(3,1fr); margin: 1rem 0; overflow: hidden; border: 1px solid rgba(255,255,255,.1); border-radius: .8rem; background: rgba(255,255,255,.06); }
.scan-demo-stats div { padding: .65rem .25rem; text-align: center; }
.scan-demo-stats div + div { border-left: 1px solid rgba(255,255,255,.1); }
.scan-demo-stats strong,.scan-demo-stats span { display: block; }
.scan-demo-stats strong { font-size: 1.1rem; }
.scan-demo-stats span { color: rgba(255,255,255,.52); font-size: .55rem; }
.scan-demo-camera { position: relative; min-height: 25rem; overflow: hidden; display: grid; place-items: center; border-radius: 1rem; background: radial-gradient(circle at 40% 25%,#334b5d 0,transparent 25%),linear-gradient(145deg,#1b2d3c,#02080e 72%); }
.scan-demo-corners { position: absolute; inset: 2.2rem; border: 2px solid rgba(255,255,255,.22); border-radius: 1rem; }
.scan-demo-success { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 1.25rem; text-align: center; background: rgba(17,148,93,.94); }
.scan-demo-success i { width: 4.4rem; height: 4.4rem; display: grid; place-items: center; margin-bottom: 1rem; border: .28rem solid #fff; border-radius: 50%; font-size: 2.1rem; }
.scan-demo-success small { font-weight: 900; letter-spacing: .1em; }
.scan-demo-success strong { margin: .5rem 0 .15rem; font-size: 1.65rem; }
.scan-demo-success span { color: rgba(255,255,255,.8); font-size: .75rem; }
.scan-demo-foot { padding: .85rem .2rem .1rem; color: rgba(255,255,255,.58); font-size: .68rem; text-align: center; }
.scan-demo-badge { position: absolute; right: -.5rem; bottom: 3.25rem; padding: .8rem 1rem; border-radius: .85rem; color: var(--tickets-navy); background: #fff; box-shadow: 0 1rem 2.5rem rgba(14,36,57,.18); font-size: .78rem; font-weight: 800; }
@media (max-width: 575.98px) {
  .scan-demo-wrap { padding: .5rem; }
  .scan-demo-phone { padding: .8rem; border-width: .45rem; border-radius: 1.75rem; transform: none; }
  .scan-demo-camera { min-height: 20rem; }
  .scan-demo-badge { right: -.2rem; bottom: 2rem; }
}/* Fullscreen ticket scanner */
.scan-app { min-height: 100dvh; background: #081827; color: #fff; padding: clamp(1rem, 3vw, 2rem); }
.scan-topbar { max-width: 980px; margin: 0 auto; display: grid; grid-template-columns: 3rem 1fr auto; gap: 1rem; align-items: center; }
.scan-back { width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.1); color: #fff; text-decoration: none; }
.scan-kicker { color: #ff756a; font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.scan-event-title { margin: 0; font-size: clamp(1.25rem, 4vw, 2rem); font-weight: 800; }
.scan-event-meta { color: rgba(255,255,255,.62); font-size: .9rem; }
.scan-network { display: flex; align-items: center; gap: .45rem; padding: .55rem .75rem; border-radius: 999px; background: rgba(38,185,126,.15); color: #75e5b5; font-size: .8rem; }
.scan-network span { width: .55rem; height: .55rem; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 .2rem rgba(117,229,181,.12); }
.scan-network.is-offline { color: #ffd166; background: rgba(255,209,102,.12); }
.scan-stats { max-width: 980px; margin: 1.25rem auto; display: grid; grid-template-columns: repeat(3,1fr); background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.1); border-radius: 1rem; overflow: hidden; }
.scan-stats div { padding: .85rem; text-align: center; }
.scan-stats div + div { border-left: 1px solid rgba(255,255,255,.1); }
.scan-stats strong,.scan-stats span { display: block; }
.scan-stats strong { font-size: 1.45rem; line-height: 1.1; }
.scan-stats span { color: rgba(255,255,255,.58); font-size: .72rem; margin-top: .25rem; }
.scan-workspace { max-width: 760px; margin: 0 auto; }
.scan-camera-card { padding: 1rem; border-radius: 1.5rem; background: rgba(255,255,255,.07); box-shadow: 0 1.5rem 4rem rgba(0,0,0,.24); }
.scan-camera { position: relative; min-height: min(56vh,540px); overflow: hidden; border-radius: 1rem; background: #02080e; display: grid; place-items: center; }
.scan-camera video { width: 100% !important; min-height: min(56vh,540px); object-fit: cover; }
.scan-camera img { max-width: 100%; }
.scan-camera-placeholder { display: grid; justify-items: center; gap: 1rem; color: rgba(255,255,255,.45); }
.scan-camera-placeholder i { font-size: 5rem; }
.scan-camera-placeholder span { font-weight: 700; }
.scan-status { min-height: 1.5rem; margin: 1rem 0; text-align: center; color: rgba(255,255,255,.72); }
.scan-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: .75rem; }
.scan-manual { margin-top: 1.25rem; padding: 1rem; border-radius: 1rem; background: rgba(255,255,255,.07); }
.scan-manual .form-label { color: rgba(255,255,255,.72); }
.scan-offline-note { margin: .85rem 0 0; color: rgba(255,255,255,.58); font-size: .82rem; }
.scan-result { position: fixed; inset: 0; z-index: 2000; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 2rem; text-align: center; color: #fff; }
.scan-result[hidden] { display: none; }
.scan-result.is-success { background: #11945d; }
.scan-result.is-warning { background: #d68400; }
.scan-result.is-danger { background: #c73545; }
.scan-result-icon { width: 7.5rem; height: 7.5rem; display: grid; place-items: center; border: .45rem solid rgba(255,255,255,.8); border-radius: 50%; margin-bottom: 1.5rem; font-size: 4rem; }
.scan-result-label { margin: 0 0 .5rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.scan-result h2 { font-size: clamp(2rem, 8vw, 4.5rem); font-weight: 900; }
.scan-result p:not(.scan-result-label) { font-size: clamp(1rem, 3vw, 1.4rem); }
.scan-result .btn { margin-top: 1.5rem; min-width: 14rem; }
@media (max-width: 575.98px) {
  .scan-app { padding: .85rem; }
  .scan-topbar { grid-template-columns: 2.75rem 1fr; }
  .scan-network { grid-column: 2; justify-self: start; padding: .35rem .6rem; }
  .scan-event-meta { max-width: 17rem; }
  .scan-camera { min-height: 48vh; }
  .scan-camera video { min-height: 48vh; }
  .scan-actions .btn { flex: 1 1 auto; }
  .scan-manual .input-group { display: grid; gap: .6rem; }
  .scan-manual .form-control,.scan-manual .btn { width: 100%; border-radius: .7rem !important; }
}
