.ticketing-return-button{color:#fff!important;background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.55)!important}.ticketing-return-button:hover{color:#0d0d0d!important;background:#fff!important}.ticketing-event-editor{max-width:1280px;margin:0 auto 30px;display:grid;grid-template-columns:minmax(0,3fr) minmax(330px,2fr);gap:22px;align-items:start}.ticketing-event-editor .ticketing-form-card,.ticketing-event-editor .ticketing-flyer-panel{margin:0;max-width:none;box-sizing:border-box}.ticketing-event-fields{min-width:0}.ticketing-flyer-panel{position:sticky;top:110px;padding:22px;border-radius:20px;background:#fff;box-shadow:0 6px 24px rgba(0,0,0,.07)}.ticketing-block-heading{display:flex;align-items:center;gap:12px;margin:6px 0 18px}.ticketing-block-heading:not(:first-child){margin-top:30px}.ticketing-block-heading>div{display:flex;flex-direction:column;gap:2px}.ticketing-block-heading small{color:#777}.ticketing-step{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border-radius:50%;background:#f7941d;color:#0d0d0d;font-weight:900}.ticketing-flyer-preview-shell{position:relative;width:100%;min-height:470px;display:grid;place-items:center;overflow:hidden;border-radius:18px;background:linear-gradient(145deg,#0d0d0d,#292929)}.ticketing-flyer-preview-shell img{display:block;width:100%;height:auto;max-height:640px;object-fit:contain}.ticketing-flyer-placeholder{padding:30px;display:grid;gap:8px;text-align:center;color:#fff}.ticketing-flyer-placeholder strong{font-size:1.2rem}.ticketing-flyer-placeholder span{color:#aaa}.ticketing-flyer-upload{margin-top:18px}.ticketing-flyer-upload input[type=file]{width:100%}.field-help{display:block;margin-top:6px;color:#777;line-height:1.35}.ticketing-volley-note,.ticketing-publication-rule,.ticketing-media-meta{margin-top:16px;padding:15px;border-radius:14px;background:#fff6e9;border-left:4px solid #f7941d}.ticketing-volley-note strong,.ticketing-volley-note span,.ticketing-media-meta span,.ticketing-media-meta strong{display:block}.ticketing-volley-note span{margin:5px 0 10px}.ticketing-volley-note a{font-weight:800}.ticketing-publication-rule{display:grid;gap:4px}.ticketing-publication-rule span{color:#555}.ticketing-media-meta span{color:#777;font-size:.85rem}.ticketing-desktop-submit{margin-top:28px}.ticketing-save-button{min-height:54px;font-weight:900}.ticketing-mobile-submit{display:none}.ticketing-public-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.ticketing-public-card{overflow:hidden;border-radius:18px;background:#fff;border:1px solid #ececec;box-shadow:0 6px 20px rgba(0,0,0,.06)}.ticketing-public-card-image{display:block;aspect-ratio:4/5;background:#111;overflow:hidden}.ticketing-public-card-image img{width:100%;height:100%;display:block;object-fit:contain}.ticketing-public-card-body{padding:18px;display:grid;gap:8px}.ticketing-public-card-body>span{color:#f7941d;font-size:.78rem;font-weight:900;text-transform:uppercase}.ticketing-public-card-body h2{margin:0}.ticketing-public-card-body small{color:#666}.ticketing-public-card-body .button{margin-top:8px;justify-self:start}.ticketing-public-detail{max-width:1280px;margin:0 auto 30px;display:grid;grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);gap:28px;align-items:start}.ticketing-public-poster{overflow:hidden;border-radius:20px;background:#111;box-shadow:0 10px 32px rgba(0,0,0,.12)}.ticketing-public-poster img{display:block;width:100%;height:auto}.ticketing-public-info{padding:30px;border-radius:20px;background:#fff;box-shadow:0 6px 24px rgba(0,0,0,.06)}.ticketing-public-info h1{margin:6px 0 18px}.ticketing-public-facts{display:grid;gap:6px;padding:16px;border-radius:14px;background:#f6f6f6}.ticketing-public-description{margin:22px 0;white-space:pre-line;line-height:1.65}.ticketing-public-tariffs{margin-top:24px}.ticketing-sale-coming{margin-top:22px;display:grid;gap:5px;padding:17px;border-radius:14px;background:#fff6e9;border-left:5px solid #f7941d}.ticketing-event-summary{max-width:1280px;margin:0 auto 24px;display:grid;grid-template-columns:220px 1fr;gap:22px;padding:20px;border-radius:20px;background:#fff;box-shadow:0 6px 24px rgba(0,0,0,.06)}.ticketing-event-summary-poster{overflow:hidden;border-radius:14px;background:#111}.ticketing-event-summary-poster img{width:100%;height:100%;max-height:300px;object-fit:contain;display:block}.ticketing-event-summary-copy dl{margin:15px 0 0;display:grid;gap:8px}.ticketing-event-summary-copy dl div{display:grid;grid-template-columns:180px 1fr;gap:12px}.ticketing-event-summary-copy dt{color:#777}.ticketing-event-summary-copy dd{margin:0;font-weight:800}.ticketing-club-logo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.ticketing-club-logo-card{padding:16px;display:grid;grid-template-columns:130px 1fr;gap:18px;border:1px solid #e8e8e8;border-radius:16px}.ticketing-club-logo-card.is-colonial{border-color:#f7941d;background:#fff8ee}.ticketing-club-logo-preview{height:130px;display:grid;place-items:center;border-radius:13px;background:#111;overflow:hidden}.ticketing-club-logo-preview img{max-width:110px;max-height:110px;object-fit:contain}.ticketing-logo-missing{text-align:center;color:#999;font-size:.78rem;font-weight:900}.ticketing-club-logo-copy{min-width:0;display:grid;align-content:start;gap:8px}.ticketing-club-logo-copy form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ticketing-club-logo-copy input[type=file]{max-width:260px}.ticketing-home-events{margin-top:28px}.ticketing-home-event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.ticketing-home-event-card{overflow:hidden;border-radius:18px;background:#fff;box-shadow:0 6px 24px rgba(0,0,0,.07)}.ticketing-home-event-card img{width:100%;aspect-ratio:4/5;object-fit:contain;display:block;background:#111}.ticketing-home-event-card-body{padding:18px;display:grid;gap:7px}.ticketing-home-event-card-body h3{margin:0}.ticketing-home-event-card-body small{color:#666}@media(max-width:900px){.ticketing-event-editor,.ticketing-public-detail{grid-template-columns:1fr}.ticketing-flyer-panel{position:static;grid-row:1}.ticketing-event-fields{grid-row:2}.ticketing-flyer-preview-shell{min-height:360px}.ticketing-public-grid,.ticketing-home-event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ticketing-club-logo-grid{grid-template-columns:1fr}}@media(max-width:620px){.ticketing-event-editor{display:flex;flex-direction:column;gap:14px;padding-bottom:78px}.ticketing-flyer-panel,.ticketing-event-fields{width:100%}.ticketing-flyer-panel{order:1;padding:16px}.ticketing-event-fields{order:2}.ticketing-flyer-preview-shell{min-height:300px}.ticketing-desktop-submit{display:none}.ticketing-mobile-submit{display:block;position:fixed;z-index:1100;left:10px;right:10px;bottom:10px}.ticketing-mobile-submit .button{width:100%;min-height:56px;box-shadow:0 8px 26px rgba(0,0,0,.25)}.ticketing-public-grid,.ticketing-home-event-grid{grid-template-columns:1fr}.ticketing-public-info{padding:20px 16px}.ticketing-event-summary{grid-template-columns:1fr}.ticketing-event-summary-poster{max-width:320px;margin:0 auto}.ticketing-event-summary-copy dl div{grid-template-columns:1fr;gap:2px}.ticketing-club-logo-card{grid-template-columns:96px 1fr;gap:12px}.ticketing-club-logo-preview{height:96px}.ticketing-club-logo-preview img{max-width:82px;max-height:82px}}
/* Billetterie V1.0.1.4 — finitions Volley & mobile */
.ticketing-volley-match-info{margin-top:10px;padding:13px 15px;display:grid;gap:4px;border-left:4px solid #f7941d;border-radius:12px;background:#fff6e9}.ticketing-volley-match-info[hidden]{display:none!important}.ticketing-volley-match-info strong{color:#d96f00;text-transform:uppercase;letter-spacing:.04em}.ticketing-volley-match-info span{color:#444}
.ticketing-logo-upload-form{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:end!important;gap:10px!important}.ticketing-file-picker{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;cursor:pointer}.ticketing-file-input{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;overflow:hidden!important;pointer-events:none}.ticketing-file-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 14px;border:1px solid #d6d6d6;border-radius:10px;background:#f4f4f4;font-weight:800;white-space:nowrap}.ticketing-file-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#666}
@media(max-width:900px){body:has(.ticketing-hero) .main-navigation,body:has(.ticketing-public-hero) .main-navigation,body:has(.ticketing-public-detail) .main-navigation{display:flex!important;flex-wrap:nowrap!important;justify-content:flex-start!important;overflow-x:auto!important;overflow-y:hidden!important;gap:6px!important;-webkit-overflow-scrolling:touch;scrollbar-width:thin}body:has(.ticketing-hero) .main-navigation a,body:has(.ticketing-public-hero) .main-navigation a,body:has(.ticketing-public-detail) .main-navigation a{flex:0 0 auto!important;white-space:nowrap!important}}
@media(max-width:620px){.ticketing-logo-upload-form{grid-template-columns:1fr;align-items:stretch!important}.ticketing-file-picker{grid-template-columns:1fr}.ticketing-file-button{width:100%;box-sizing:border-box}.ticketing-file-name{padding:0 2px}.ticketing-logo-upload-form .button{width:100%}.ticketing-volley-match-info{font-size:.92rem}}

/* Billetterie V1.1.0 — commandes, Stripe TEST, QR mobile */
.ticketing-test-banner {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    margin: 16px 0;
    padding: 13px 15px;
    border: 2px solid #f7941d;
    border-radius: 14px;
    background: #fff6e9;
}
.ticketing-test-banner strong {
    color: #c86400;
    white-space: nowrap;
}
.ticketing-test-banner-admin {
    margin-top: 0;
}
.ticketing-buy-form,
.ticketing-settings-form,
.ticketing-public-order,
.ticketing-ticket-verify {
    background: #fff;
    border-radius: 22px;
    padding: 24px;
    box-shadow: 0 10px 32px rgba(0,0,0,.07);
}
.ticketing-buy-form h2 {
    margin-top: 0;
}
.ticketing-buyer-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 14px;
}
.ticketing-buyer-grid label,
.ticketing-settings-form label {
    display: grid;
    gap: 6px;
    font-weight: 800;
}
.ticketing-buyer-grid input,
.ticketing-settings-form input[type="password"],
.ticketing-quantity-row input {
    min-height: 46px;
    border: 1px solid #d6d6d6;
    border-radius: 11px;
    padding: 8px 11px;
    font: inherit;
    box-sizing: border-box;
}
.ticketing-quantity-list {
    display: grid;
    gap: 9px;
    margin: 18px 0;
}
.ticketing-quantity-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 12px 14px;
    border-radius: 14px;
    background: #f6f6f6;
}
.ticketing-quantity-row span {
    display: grid;
    gap: 2px;
}
.ticketing-quantity-row small {
    color: #666;
}
.ticketing-quantity-row input {
    width: 88px;
    text-align: center;
}
.ticketing-buy-button,
.ticketing-pdf-button {
    width: 100%;
    justify-content: center;
    box-sizing: border-box;
}
.ticketing-payment-status-grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 12px;
    margin-bottom: 22px;
}
.ticketing-payment-status-grid article {
    display: grid;
    gap: 6px;
    padding: 16px;
    border-radius: 15px;
    background: #111;
    color: #fff;
}
.ticketing-payment-status-grid article span {
    color: #f7941d;
    font-size: .86rem;
    text-transform: uppercase;
    letter-spacing: .05em;
}
.ticketing-settings-form {
    display: grid;
    gap: 16px;
}
.ticketing-webhook-box {
    display: grid;
    gap: 7px;
    padding: 14px;
    border-radius: 14px;
    background: #f4f4f4;
}
.ticketing-webhook-box code {
    overflow-wrap: anywhere;
    color: #c86400;
}
.ticketing-check-label {
    display: flex !important;
    grid-template-columns: none !important;
    align-items: center;
    gap: 10px !important;
}
.field-error {
    color: #b00020;
}
.ticketing-order-list {
    display: grid;
    gap: 10px;
}
.ticketing-admin-order-card {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 18px;
    padding: 15px 17px;
    border: 1px solid #e3e3e3;
    border-radius: 14px;
}
.ticketing-admin-order-card > div {
    display: grid;
    gap: 3px;
}
.ticketing-admin-order-meta {
    text-align: right;
}
.ticketing-public-order {
    max-width: 860px;
    margin: 28px auto;
}
.ticketing-public-order-head {
    margin-bottom: 18px;
}
.ticketing-order-success,
.ticketing-order-pending {
    display: grid;
    gap: 4px;
    margin: 16px 0;
    padding: 15px;
    border-radius: 14px;
    background: #f4f4f4;
}
.ticketing-order-success {
    border-left: 5px solid #2e8b57;
}
.ticketing-mobile-tickets {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 14px;
    margin: 18px 0;
}
.ticketing-mobile-ticket {
    display: grid;
    gap: 8px;
    justify-items: center;
    padding: 18px;
    border-radius: 18px;
    background: #111;
    color: #fff;
    text-align: center;
}
.ticketing-mobile-ticket img {
    width: min(240px,80%);
    aspect-ratio: 1;
    padding: 8px;
    border-radius: 12px;
    background: #fff;
}
.ticketing-ticket-verify {
    max-width: 720px;
    margin: 28px auto;
}
.ticketing-ticket-status {
    margin: 18px 0;
    padding: 14px;
    border-radius: 14px;
    background: #f4f4f4;
}
.ticketing-ticket-status-issued {
    border-left: 5px solid #2e8b57;
}
.ticketing-ticket-verify dl {
    display: grid;
    gap: 8px;
}
.ticketing-ticket-verify dl div {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid #eee;
}
.ticketing-ticket-verify dt {
    color: #666;
}
.ticketing-ticket-verify dd {
    margin: 0;
    font-weight: 800;
}

@media (max-width: 760px) {
    .ticketing-buyer-grid,
    .ticketing-payment-status-grid,
    .ticketing-mobile-tickets {
        grid-template-columns: 1fr;
    }
    .ticketing-buy-form,
    .ticketing-settings-form,
    .ticketing-public-order,
    .ticketing-ticket-verify {
        padding: 17px;
        border-radius: 16px;
    }
    .ticketing-test-banner {
        display: grid;
    }
    .ticketing-admin-order-card {
        grid-template-columns: 1fr;
    }
    .ticketing-admin-order-meta {
        text-align: left;
    }
    .ticketing-quantity-row input {
        width: 76px;
    }
}
