.cmc-public-ticket-map{max-width:1280px;margin:0 auto;font-family:Arial,Helvetica,sans-serif}.cmc-public-ticket-header{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:18px;margin-bottom:18px}.cmc-public-ticket-header h3{margin-top:0;font-size:28px}.cmc-ticket-timer{font-weight:700;font-size:16px}.cmc-ticket-message{min-height:22px;font-weight:700}.cmc-ticket-message.is-error{color:#b91c1c}.cmc-ticket-message.is-success{color:#166534}.cmc-ticket-warning{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:8px;padding:10px}.cmc-public-legend{display:flex;flex-wrap:wrap;gap:14px;align-items:center;background:#fff;border:1px solid #e5e7eb;padding:12px;border-radius:12px;margin-bottom:18px}.cmc-public-legend span{display:inline-flex;align-items:center;gap:6px;font-weight:600}.cmc-public-legend i{display:inline-block;width:16px;height:16px;border-radius:4px}.cmc-public-legend .available{background:#16a34a}.cmc-public-legend .selected{background:#eab308}.cmc-public-legend .reserved{background:#f97316}.cmc-public-legend .sold{background:#dc2626}.cmc-public-legend .vip{background:#1d4ed8}.cmc-public-stage{background:#111827;color:#fff;text-align:center;font-weight:800;letter-spacing:1px;padding:18px;border-radius:12px;margin:16px auto 20px;max-width:760px}.cmc-public-seat-map{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px;overflow-x:auto}.cmc-public-seat-row{display:flex;align-items:center;margin-bottom:8px;min-width:960px}.cmc-public-row-label{width:76px;font-weight:800}.cmc-public-seat-group{display:flex;align-items:center;gap:4px}.cmc-public-seat{width:26px;height:26px;border-radius:5px;color:#fff;border:0;font-size:11px;font-weight:800;line-height:26px;text-align:center;cursor:pointer;padding:0}.cmc-public-seat:disabled{cursor:not-allowed;opacity:.95}.cmc-state-available{background:#16a34a}.cmc-state-selected_by_me{background:#eab308;color:#111827}.cmc-state-reserved_by_other,.cmc-state-reserved_temp{background:#f97316}.cmc-state-sold{background:#dc2626}.cmc-state-vip_available,.cmc-state-vip_assigned{background:#1d4ed8}.cmc-state-disabled{background:#6b7280}.cmc-public-vertical-aisle{width:34px}.cmc-public-horizontal-aisle{min-width:960px;text-align:center;background:#f3f4f6;color:#374151;font-weight:800;padding:10px;border-radius:8px;margin:14px 0}.cmc-selected-summary{background:#fff;border:1px solid #e5e7eb;border-radius:12px;margin-top:18px;padding:18px}.cmc-selected-summary h4{margin-top:0}.cmc-selected-list{font-weight:700}.cmc-holder-form-wrap{margin-top:16px;border-top:1px solid #e5e7eb;padding-top:16px}.cmc-holder-row{display:flex;gap:12px;align-items:center;margin-bottom:10px}.cmc-holder-row label{width:90px;font-weight:800}.cmc-holder-row input{max-width:360px;width:100%;padding:8px;border:1px solid #d1d5db;border-radius:8px}.cmc-add-to-cart-button{background:#111827;color:#fff;border:0;border-radius:8px;padding:12px 18px;font-weight:800;cursor:pointer}.cmc-add-to-cart-button:disabled{background:#9ca3af;cursor:not-allowed}@media(max-width:768px){.cmc-public-ticket-header h3{font-size:22px}.cmc-public-seat{width:24px;height:24px;line-height:24px}.cmc-holder-row{display:block}.cmc-holder-row label{display:block;width:auto;margin-bottom:4px}}
.cmc-mini-cart h4{margin-top:0}.cmc-mini-cart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:12px 0 16px}.cmc-mini-cart-grid div{background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;padding:12px}.cmc-mini-cart-grid span{display:block;color:#6b7280;font-size:13px;font-weight:700;margin-bottom:4px}.cmc-mini-cart-grid strong{display:block;color:#111827;font-size:24px;font-weight:900}.cmc-mini-cart-total{color:#166534!important}

.cmc-reset-selection-button{margin-top:12px;background:#fff;color:#b91c1c;border:1px solid #fecaca;border-radius:8px;padding:10px 14px;font-weight:800;cursor:pointer}.cmc-reset-selection-button:hover{background:#fef2f2}.cmc-reset-selection-button:disabled{opacity:.65;cursor:not-allowed}
.cmc-state-reserved_order{background:#7c3aed;color:#fff}

.cmc-holder-row input.cmc-field-error{border:2px solid #dc2626!important;background:#fef2f2!important;color:#7f1d1d}.cmc-ticket-message.is-error{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:10px;color:#b91c1c}.cmc-ticket-message.is-success{background:#ecfdf5;border:1px solid #bbf7d0;border-radius:8px;padding:10px;color:#166534}


.cmc-ticket-error.cmc-ticket-sales-disabled {
    max-width: 760px;
    margin: 24px auto;
    padding: 18px 22px;
    border-radius: 14px;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    color: #9a3412;
    font-weight: 700;
    text-align: center;
}


.cmc-event-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 220px;
    gap: 28px;
    align-items: start;
}

.cmc-event-hero-content h3 {
    margin-bottom: 12px;
}

.cmc-event-description {
    max-width: 760px;
    margin: 0 0 18px;
    color: #374151;
    font-size: 16px;
    line-height: 1.55;
}

.cmc-event-description p {
    margin: 0 0 10px;
}

.cmc-event-program {
    margin: 18px 0;
    padding: 16px 18px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
}

.cmc-event-program h4 {
    margin: 0 0 12px;
    font-size: 18px;
    font-weight: 800;
    color: #111827;
}

.cmc-event-program ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 9px;
}

.cmc-event-program li {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    color: #111827;
    font-weight: 600;
    line-height: 1.35;
}

.cmc-event-clock {
    display: inline-flex;
    width: 22px;
    height: 22px;
    border: 2px solid #111827;
    border-radius: 50%;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    line-height: 1;
    color: #111827;
    background: #fff;
    flex: 0 0 22px;
}

.cmc-event-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin: 16px 0 10px;
    color: #111827;
    font-size: 16px;
}

.cmc-event-poster {
    width: 220px;
}

.cmc-event-poster img {
    width: 100%;
    height: auto;
    max-height: 300px;
    object-fit: contain;
    border-radius: 16px;
    border: 1px solid #e5e7eb;
    background: #fff;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .12);
}

@media (max-width: 820px) {
    .cmc-event-hero {
        grid-template-columns: 1fr;
    }

    .cmc-event-poster {
        width: 100%;
        max-width: 260px;
    }
}


/* Frontend ticket map refinement */
.cmc-public-ticket-map {
    max-width: 1180px;
    padding: 0 14px;
}

.cmc-public-ticket-header {
    border-radius: 22px;
    padding: 24px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .08);
}

.cmc-event-hero {
    grid-template-columns: minmax(0, 1fr) 260px;
    gap: 34px;
}

.cmc-event-hero-content h3 {
    font-size: clamp(30px, 4vw, 48px);
    line-height: 1.05;
    letter-spacing: -0.04em;
    margin: 0 0 14px;
    color: #111827;
}

.cmc-event-description {
    font-size: 17px;
    line-height: 1.65;
    color: #4b5563;
}

.cmc-event-program {
    background: linear-gradient(180deg, #ffffff 0%, #f9fafb 100%);
    border-radius: 18px;
    padding: 18px 20px;
}

.cmc-event-program h4 {
    font-size: 20px;
}

.cmc-event-program li {
    font-size: 15px;
}

.cmc-event-meta {
    margin-top: 18px;
}

.cmc-event-meta span {
    display: inline-flex;
    align-items: center;
    border: 1px solid #e5e7eb;
    background: #f9fafb;
    border-radius: 999px;
    padding: 9px 13px;
}

.cmc-ticket-timer {
    margin: 16px 0 0;
    padding: 12px 14px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1e3a8a;
    border-radius: 14px;
    font-weight: 800;
}

.cmc-ticket-message {
    margin-top: 12px;
}

.cmc-event-poster {
    width: 260px;
}

.cmc-event-poster img {
    max-height: 360px;
    border-radius: 20px;
}

.cmc-public-legend {
    border-radius: 16px;
    padding: 14px 16px;
    gap: 10px 16px;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .05);
}

.cmc-public-legend span {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    padding: 7px 10px;
}

.cmc-public-stage {
    max-width: 640px;
    border-radius: 18px;
    letter-spacing: 2px;
    box-shadow: 0 12px 30px rgba(17, 24, 39, .18);
}

.cmc-public-seat-map {
    border-radius: 20px;
    padding: 24px;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.5), 0 18px 45px rgba(15, 23, 42, .06);
}

.cmc-public-row-label {
    color: #374151;
}

.cmc-public-seat {
    transition: transform .08s ease, box-shadow .08s ease, filter .08s ease;
}

.cmc-public-seat:not(:disabled):hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(15, 23, 42, .18);
    filter: brightness(1.04);
}

.cmc-state-selected_by_me {
    box-shadow: 0 0 0 2px #111827 inset;
}

.cmc-selected-summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 420px);
    gap: 22px;
    border-radius: 22px;
    padding: 22px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .08);
}

.cmc-selected-summary h4 {
    font-size: 22px;
    margin: 0 0 12px;
    color: #111827;
}

.cmc-mini-cart-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cmc-mini-cart-grid div {
    border-radius: 16px;
    padding: 15px;
}

.cmc-selected-list {
    margin-top: 12px;
}

.cmc-selected-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}

.cmc-selected-chips span {
    display: inline-flex;
    background: #111827;
    color: #fff;
    border-radius: 999px;
    padding: 7px 10px;
    font-weight: 800;
    font-size: 13px;
}

.cmc-empty-selection {
    display: inline-block;
    color: #6b7280;
    font-weight: 700;
    padding: 10px 0;
}

.cmc-holder-form-wrap {
    margin-top: 0;
    border-top: 0;
    padding-top: 0;
    border-left: 1px solid #e5e7eb;
    padding-left: 22px;
}

.cmc-holder-form-wrap p {
    color: #6b7280;
    margin-top: -4px;
}

.cmc-holder-row {
    align-items: stretch;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    padding: 12px;
}

.cmc-holder-row label {
    width: 100px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    color: #6b7280;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.cmc-holder-row label strong {
    color: #111827;
    font-size: 18px;
    letter-spacing: 0;
}

.cmc-holder-row input {
    flex: 1;
    max-width: none;
    min-height: 42px;
    font-size: 15px;
}

.cmc-add-to-cart-button {
    width: 100%;
    margin-top: 8px;
    min-height: 48px;
    border-radius: 14px;
    font-size: 16px;
}

.cmc-reset-selection-button {
    border-radius: 12px;
}

@media (max-width: 920px) {
    .cmc-selected-summary {
        grid-template-columns: 1fr;
    }

    .cmc-holder-form-wrap {
        border-left: 0;
        border-top: 1px solid #e5e7eb;
        padding-left: 0;
        padding-top: 18px;
    }
}

@media (max-width: 820px) {
    .cmc-event-hero {
        grid-template-columns: 1fr;
    }

    .cmc-event-poster {
        width: 100%;
        max-width: 300px;
    }

    .cmc-public-ticket-header {
        padding: 18px;
    }

    .cmc-mini-cart-grid {
        grid-template-columns: 1fr;
    }

    .cmc-holder-row {
        display: block;
    }

    .cmc-holder-row label {
        width: auto;
        margin-bottom: 8px;
    }
}


/* Compact mobile refinement */
@media (max-width: 820px) {
    .cmc-public-ticket-map {
        padding: 0 8px;
        max-width: 100%;
    }

    .cmc-public-ticket-header {
        padding: 16px;
        border-radius: 18px;
        margin-bottom: 14px;
        box-shadow: 0 10px 26px rgba(15, 23, 42, .06);
    }

    .cmc-event-hero {
        gap: 16px;
    }

    .cmc-event-hero-content h3 {
        font-size: 34px;
        line-height: 1.05;
        margin-bottom: 8px;
        letter-spacing: -0.04em;
    }

    .cmc-event-description {
        font-size: 18px;
        line-height: 1.35;
        margin-bottom: 14px;
    }

    .cmc-event-description p {
        margin: 0 0 8px;
    }

    .cmc-event-program {
        padding: 14px 16px;
        border-radius: 16px;
        margin-bottom: 14px;
    }

    .cmc-event-program h4 {
        font-size: 22px;
        margin-bottom: 10px;
    }

    .cmc-event-program ul {
        margin: 0;
    }

    .cmc-event-program li {
        font-size: 16px;
        line-height: 1.35;
        margin-bottom: 8px;
    }

    .cmc-event-clock {
        width: 26px;
        height: 26px;
        min-width: 26px;
        font-size: 15px;
    }

    .cmc-event-meta {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        margin-top: 10px;
    }

    .cmc-event-meta span {
        font-size: 15px;
        padding: 7px 10px;
        border-radius: 999px;
    }

    .cmc-ticket-timer {
        font-size: 17px;
        line-height: 1.45;
        padding: 12px 14px;
        margin-top: 12px;
        border-radius: 14px;
    }

    .cmc-event-poster {
        width: 100%;
        max-width: 260px;
        margin: 0 auto;
    }

    .cmc-event-poster img {
        max-height: 320px;
        object-fit: cover;
        border-radius: 18px;
    }

    .cmc-public-legend {
        padding: 12px;
        gap: 8px;
        border-radius: 16px;
        margin-bottom: 14px;
    }

    .cmc-public-legend span {
        font-size: 15px;
        padding: 7px 9px;
        gap: 6px;
    }

    .cmc-public-legend i {
        width: 15px;
        height: 15px;
        min-width: 15px;
    }

    .cmc-public-stage {
        padding: 14px;
        font-size: 20px;
        border-radius: 16px;
        margin: 14px auto 16px;
        letter-spacing: 1.5px;
    }

    .cmc-public-seat-map {
        padding: 16px;
        border-radius: 18px;
    }

    .cmc-public-seat-row {
        margin-bottom: 6px;
        min-width: 820px;
    }

    .cmc-public-row-label {
        width: 64px;
        font-size: 18px;
    }

    .cmc-public-seat-group {
        gap: 3px;
    }

    .cmc-public-seat {
        width: 24px;
        height: 24px;
        line-height: 24px;
        border-radius: 6px;
        font-size: 11px;
    }

    .cmc-public-vertical-aisle {
        width: 24px;
    }

    .cmc-public-horizontal-aisle {
        min-width: 820px;
        padding: 8px;
        font-size: 13px;
        margin: 10px 0;
    }

    .cmc-selected-summary {
        padding: 16px;
        border-radius: 18px;
        gap: 16px;
        margin-top: 14px;
        box-shadow: 0 10px 26px rgba(15, 23, 42, .06);
    }

    .cmc-selected-summary h4 {
        font-size: 24px;
        margin-bottom: 10px;
    }

    .cmc-mini-cart-grid {
        gap: 8px;
        margin: 8px 0 12px;
    }

    .cmc-mini-cart-grid div {
        padding: 12px;
        border-radius: 14px;
    }

    .cmc-mini-cart-grid span {
        font-size: 13px;
    }

    .cmc-mini-cart-grid strong {
        font-size: 24px;
    }

    .cmc-selected-list {
        margin-top: 8px;
        font-size: 18px;
    }

    .cmc-selected-chips {
        gap: 7px;
        margin-top: 8px;
    }

    .cmc-selected-chips span {
        font-size: 14px;
        padding: 7px 10px;
    }

    .cmc-reset-selection-button {
        padding: 9px 12px;
        font-size: 15px;
        margin-top: 10px;
    }

    .cmc-holder-form-wrap {
        padding-top: 16px;
    }

    .cmc-holder-form-wrap h4 {
        font-size: 26px;
        margin-bottom: 8px;
    }

    .cmc-holder-form-wrap p {
        font-size: 18px;
        line-height: 1.45;
        margin-bottom: 14px;
    }

    .cmc-holder-row {
        padding: 12px;
        border-radius: 16px;
        margin-bottom: 10px;
    }

    .cmc-holder-row label {
        margin-bottom: 6px;
        font-size: 12px;
    }

    .cmc-holder-row label strong {
        font-size: 20px;
    }

    .cmc-holder-row input {
        min-height: 42px;
        font-size: 16px;
        padding: 8px 10px;
        border-radius: 12px;
    }

    .cmc-add-to-cart-button {
        min-height: 48px;
        font-size: 17px;
        border-radius: 14px;
        margin-top: 8px;
    }
}

@media (max-width: 520px) {
    .cmc-public-ticket-header {
        padding: 14px;
    }

    .cmc-event-hero-content h3 {
        font-size: 30px;
    }

    .cmc-event-description {
        font-size: 16px;
    }

    .cmc-event-program h4 {
        font-size: 20px;
    }

    .cmc-event-program li {
        font-size: 15px;
    }

    .cmc-event-meta span {
        font-size: 14px;
    }

    .cmc-ticket-timer {
        font-size: 16px;
    }

    .cmc-event-poster {
        max-width: 230px;
    }

    .cmc-event-poster img {
        max-height: 280px;
    }

    .cmc-public-legend span {
        font-size: 14px;
    }

    .cmc-public-stage {
        font-size: 18px;
        padding: 13px;
    }

    .cmc-selected-summary h4 {
        font-size: 22px;
    }

    .cmc-holder-form-wrap h4 {
        font-size: 24px;
    }

    .cmc-holder-form-wrap p {
        font-size: 16px;
    }

    .cmc-mini-cart-grid strong {
        font-size: 22px;
    }
}


/* Mobile row label refinement */
@media (max-width: 820px){
  .cmc-public-seat-row{align-items:center;}
  .cmc-public-row-label{
    width:58px;
    min-width:58px;
    margin-right:8px;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    white-space:nowrap;
    word-break:keep-all;
    overflow-wrap:normal;
    font-size:16px;
    line-height:1;
    letter-spacing:-.02em;
  }
}
@media (max-width: 520px){
  .cmc-public-row-label{
    width:54px;
    min-width:54px;
    margin-right:6px;
    font-size:15px;
  }
}


/* Participant form alert */
.cmc-holder-message {
    margin: 10px 0 12px;
    font-weight: 800;
    line-height: 1.35;
}

.cmc-holder-message.is-error {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #b91c1c;
    border-radius: 12px;
    padding: 10px 12px;
}

.cmc-holder-message.is-success {
    background: #ecfdf5;
    border: 1px solid #bbf7d0;
    color: #166534;
    border-radius: 12px;
    padding: 10px 12px;
}

@media (max-width: 820px) {
    .cmc-ticket-message.is-error,
    .cmc-ticket-message.is-success {
        font-size: 15px;
        line-height: 1.35;
        padding: 10px 12px;
        border-radius: 12px;
        margin-top: 10px;
    }

    .cmc-holder-message {
        font-size: 15px;
        padding: 10px 12px;
        border-radius: 12px;
        margin: 8px 0 10px;
    }
}

@media (max-width: 520px) {
    .cmc-holder-message {
        font-size: 14px;
        line-height: 1.35;
    }

    .cmc-ticket-message.is-error,
    .cmc-ticket-message.is-success {
        font-size: 14px;
    }
}


/* Ticket cart clear action */
.cmc-selection-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 12px;
}

.cmc-clear-cart-selection-button {
    background: #fff;
    color: #92400e;
    border: 1px solid #fed7aa;
    border-radius: 12px;
    padding: 10px 14px;
    font-weight: 800;
    cursor: pointer;
}

.cmc-clear-cart-selection-button:hover {
    background: #fff7ed;
}

.cmc-clear-cart-selection-button:disabled {
    opacity: .65;
    cursor: not-allowed;
}

@media (max-width: 520px) {
    .cmc-selection-actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .cmc-clear-cart-selection-button,
    .cmc-reset-selection-button {
        width: 100%;
        text-align: center;
    }
}


/* Ticket cart clear visibility */
.cmc-clear-cart-selection-button[style*="display: none"] {
    margin: 0;
}


/* Contextual selection/cart message */
.cmc-selection-context-message {
    margin: 10px 0 0;
    padding: 10px 12px;
    border-radius: 12px;
    font-weight: 800;
    line-height: 1.35;
}

.cmc-selection-context-message.is-error {
    background: #fff7ed;
    border: 1px solid #fed7aa;
    color: #92400e;
}

.cmc-selection-context-message.is-success {
    background: #ecfdf5;
    border: 1px solid #bbf7d0;
    color: #166534;
}

.cmc-selection-context-message.is-info {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1d4ed8;
}

@media (max-width: 520px) {
    .cmc-selection-context-message {
        font-size: 14px;
        padding: 9px 10px;
    }
}


/* 28-row map visual correction */
.cmc-public-row-label{
    width:86px;
    min-width:86px;
    flex:0 0 86px;
    white-space:nowrap;
    line-height:1.1;
}

button.cmc-public-seat,
.cmc-public-seat{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:28px !important;
    min-width:28px !important;
    max-width:28px !important;
    height:28px !important;
    min-height:28px !important;
    padding:0 !important;
    margin:0 !important;
    border:0 !important;
    border-radius:6px !important;
    font-size:11px !important;
    font-weight:800 !important;
    line-height:1 !important;
    text-align:center !important;
    box-shadow:none !important;
    background-image:none !important;
    text-shadow:none !important;
}

button.cmc-public-seat:disabled,
.cmc-public-seat:disabled{
    opacity:1 !important;
}

.cmc-public-seat-group{
    gap:4px;
}

.cmc-public-seat-placeholder{
    width:28px;
    min-width:28px;
    max-width:28px;
    height:28px;
    flex:0 0 28px;
}

.cmc-public-vertical-aisle{
    width:30px;
    min-width:30px;
    flex:0 0 30px;
}

button.cmc-public-seat.cmc-state-available{background:#16a34a !important;color:#ffffff !important;}
button.cmc-public-seat.cmc-state-selected_by_me{background:#eab308 !important;color:#111827 !important;}
button.cmc-public-seat.cmc-state-reserved_by_other,
button.cmc-public-seat.cmc-state-reserved_temp,
button.cmc-public-seat.cmc-state-reserved_order{background:#f97316 !important;color:#ffffff !important;}
button.cmc-public-seat.cmc-state-sold{background:#dc2626 !important;color:#ffffff !important;}
button.cmc-public-seat.cmc-state-vip_available,
button.cmc-public-seat.cmc-state-vip_assigned{background:#1d4ed8 !important;color:#ffffff !important;}
button.cmc-public-seat.cmc-state-disabled{background:#6b7280 !important;color:#ffffff !important;}

@media (max-width: 820px){
    .cmc-public-row-label{
        width:62px;
        min-width:62px;
        flex:0 0 62px;
        white-space:normal;
    }
    button.cmc-public-seat,
    .cmc-public-seat,
    .cmc-public-seat-placeholder{
        width:24px !important;
        min-width:24px !important;
        max-width:24px !important;
        height:24px !important;
        min-height:24px !important;
        border-radius:6px !important;
        font-size:10px !important;
    }
    .cmc-public-vertical-aisle{
        width:22px;
        min-width:22px;
        flex:0 0 22px;
    }
}


/* Last row alignment and selection UI refinement */
.cmc-public-seat-placeholder{display:none !important;}

/* Ultima fila: il posto 15 parte sotto il 15 della fila sopra */
.cmc-public-seat-row[data-row-total="28"] .cmc-public-vertical-aisle{
    margin-left: 0 !important;
}

/* Affinatura area selezione */
.cmc-selected-summary{
    border:1px solid #e5e7eb;
    background:#ffffff;
}

.cmc-mini-cart-grid div{
    background:#f9fafb;
    border:1px solid #e5e7eb;
}

.cmc-selected-chips{
    gap:10px;
}

.cmc-selected-chips span{
    min-height:46px;
    padding:0 16px;
    border-radius:999px;
    align-items:center;
    justify-content:center;
    background:#0b1535;
    color:#ffffff;
    font-size:16px;
    line-height:1;
    letter-spacing:0;
    box-shadow:0 1px 2px rgba(15,23,42,.08);
}

.cmc-selection-actions{
    gap:14px;
    margin-top:16px;
}

.cmc-reset-selection-button,
.cmc-clear-cart-selection-button,
.cmc-add-to-cart-button{
    min-height:56px;
    border-radius:18px;
    padding:0 24px;
    font-weight:800;
    font-size:15px;
    line-height:1;
    box-shadow:none;
}

.cmc-add-to-cart-button{
    background:#0b1535;
    border:1px solid #0b1535;
    color:#ffffff;
}
.cmc-add-to-cart-button:hover{
    background:#111c44;
    border-color:#111c44;
    color:#ffffff;
}

.cmc-reset-selection-button{
    background:#fff8f8;
    color:#b42318;
    border:1px solid #f3c4c4;
}
.cmc-reset-selection-button:hover{
    background:#fef2f2;
}

.cmc-clear-cart-selection-button{
    background:#ffffff;
    color:#0b1535;
    border:1px solid #cfd6e4;
}
.cmc-clear-cart-selection-button:hover{
    background:#f8fafc;
}

@media (max-width: 820px){
    .cmc-selected-chips span{
        min-height:40px;
        padding:0 14px;
        font-size:15px;
    }
    .cmc-reset-selection-button,
    .cmc-clear-cart-selection-button,
    .cmc-add-to-cart-button{
        min-height:50px;
        border-radius:16px;
        font-size:14px;
        padding:0 18px;
    }
}


/* Last row and selection UI consistency */
.cmc-selected-summary .cmc-selected-chips span{
    background:#0f172a !important;
    color:#ffffff !important;
    border:0 !important;
    border-radius:999px !important;
    padding:8px 14px !important;
    font-weight:800 !important;
    box-shadow:none !important;
}

.cmc-selected-summary .cmc-reset-selection-button{
    background:#ffffff !important;
    color:#b42318 !important;
    border:1px solid #f3c4c1 !important;
    border-radius:18px !important;
    padding:14px 26px !important;
    font-size:16px !important;
    font-weight:800 !important;
    box-shadow:none !important;
}

.cmc-selected-summary .cmc-reset-selection-button:hover{
    background:#fff7f7 !important;
    color:#9f1d16 !important;
}

.cmc-selected-summary .cmc-add-to-cart-button{
    background:#0f172a !important;
    color:#ffffff !important;
    border:0 !important;
    border-radius:18px !important;
    padding:16px 26px !important;
    min-height:56px !important;
    font-size:16px !important;
    font-weight:800 !important;
    box-shadow:none !important;
}

.cmc-selected-summary .cmc-add-to-cart-button:hover{
    background:#0b1220 !important;
}

.cmc-selected-summary .cmc-clear-cart-selection-button{
    background:#ffffff !important;
    color:#92400e !important;
    border:1px solid #fed7aa !important;
    border-radius:18px !important;
    padding:14px 22px !important;
    font-weight:800 !important;
}

.cmc-public-seat-map .cmc-public-seat-placeholder{
    display:inline-flex;
    width:28px;
    min-width:28px;
    max-width:28px;
    height:28px;
    min-height:28px;
    flex:0 0 28px;
}

@media (max-width: 820px){
    .cmc-public-seat-map .cmc-public-seat-placeholder{
        width:24px;
        min-width:24px;
        max-width:24px;
        height:24px;
        min-height:24px;
        flex:0 0 24px;
    }

    .cmc-selected-summary .cmc-reset-selection-button,
    .cmc-selected-summary .cmc-add-to-cart-button,
    .cmc-selected-summary .cmc-clear-cart-selection-button{
        width:100% !important;
        justify-content:center;
    }
}


/* Readable selected seat label */
.cmc-selected-summary .cmc-selected-chips span {
    white-space: nowrap;
}


/* Last row initial alignment */
.cmc-public-seat-row[data-row-label="28"] .cmc-public-last-row-first-right-seat{
    margin-left:32px !important;
}

@media (max-width: 820px){
    .cmc-public-seat-row[data-row-label="28"] .cmc-public-last-row-first-right-seat{
        margin-left:28px !important;
    }
}


/* Last row final alignment */
.cmc-public-seat-row[data-row-total="28"] .cmc-public-vertical-aisle{
    width:62px !important;
    min-width:62px !important;
    flex:0 0 62px !important;
}
.cmc-public-seat-row[data-row-label="28"] .cmc-public-last-row-first-right-seat{
    margin-left:0 !important;
}

@media (max-width: 820px){
    .cmc-public-seat-row[data-row-total="28"] .cmc-public-vertical-aisle{
        width:50px !important;
        min-width:50px !important;
        flex:0 0 50px !important;
    }
    .cmc-public-seat-row[data-row-label="28"] .cmc-public-last-row-first-right-seat{
        margin-left:0 !important;
    }
}


/* Participant input text color */
.cmc-holder-row input.cmc-holder-input,
.cmc-holder-form-wrap input.cmc-holder-input,
.cmc-public-ticket-map .cmc-holder-input {
    color: #0f172a !important;
    -webkit-text-fill-color: #0f172a !important;
    caret-color: #0f172a !important;
    font-weight: 600 !important;
    background: #ffffff !important;
}

.cmc-holder-row input.cmc-holder-input::placeholder,
.cmc-holder-form-wrap input.cmc-holder-input::placeholder,
.cmc-public-ticket-map .cmc-holder-input::placeholder {
    color: #6b7280 !important;
    -webkit-text-fill-color: #6b7280 !important;
    opacity: 1 !important;
    font-weight: 500 !important;
}

.cmc-holder-row input.cmc-holder-input:focus,
.cmc-holder-form-wrap input.cmc-holder-input:focus,
.cmc-public-ticket-map .cmc-holder-input:focus {
    color: #0f172a !important;
    -webkit-text-fill-color: #0f172a !important;
    border-color: #111827 !important;
    outline: none !important;
    box-shadow: 0 0 0 2px rgba(17, 24, 39, .08) !important;
}


/* Frontend message stability */
.cmc-ticket-timer {
    min-height: 46px;
    display: flex;
    align-items: center;
    white-space: normal;
}

.cmc-ticket-message {
    min-height: 0;
    line-height: 1.35;
}

.cmc-ticket-message:empty {
    display: none;
}

.cmc-ticket-message.is-success,
.cmc-ticket-message.is-error {
    display: block;
    min-height: 0;
}


/* Expiry message stability and event meta spacing */
.cmc-event-meta .cmc-meta-value {
    margin-left: 4px;
}

.cmc-ticket-message:empty,
.cmc-ticket-message:not(.is-error):not(.is-success):empty {
    display: none !important;
}


/* Seat button number stability */
button.cmc-public-seat,
button.cmc-public-seat:hover,
button.cmc-public-seat:focus,
button.cmc-public-seat:active,
button.cmc-public-seat:focus-visible {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    vertical-align: middle !important;
    text-align: center !important;
    line-height: 1 !important;
    padding: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    border: 0 !important;
    outline: none !important;
    box-shadow: none !important;
    transform: none !important;
    text-decoration: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}

button.cmc-public-seat:focus,
button.cmc-public-seat:active,
button.cmc-public-seat:focus-visible {
    outline: none !important;
    box-shadow: inset 0 0 0 2px rgba(15, 23, 42, .18) !important;
}

button.cmc-public-seat::-moz-focus-inner {
    border: 0 !important;
    padding: 0 !important;
}


/* Stable selected-seat success message */
.cmc-ticket-message.is-success {
    display: block !important;
    min-height: 28px;
    margin-top: 8px;
    margin-bottom: 0;
    line-height: 1.35;
}

/* Official 27-row Sala Giove map v1.6.0-a */
.cmc-public-seat-map {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
}

.cmc-public-seat-row {
    min-width: 1120px !important;
    align-items: center !important;
}

.cmc-public-row-label {
    width: 88px !important;
    min-width: 88px !important;
    flex: 0 0 88px !important;
    white-space: nowrap !important;
    position: sticky;
    left: 0;
    z-index: 4;
    background: #ffffff;
    padding: 4px 10px 4px 0;
    border-radius: 8px;
}

.cmc-public-seat-group {
    flex: 0 0 auto;
}

.cmc-public-vertical-aisle {
    width: 62px !important;
    min-width: 62px !important;
    flex: 0 0 62px !important;
    min-height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.cmc-public-area-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    min-height: 78px;
    padding: 8px 5px;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    color: #111827;
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .08em;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    box-shadow: 0 8px 18px rgba(15, 23, 42, .06);
}

.cmc-public-horizontal-aisle {
    min-width: 1120px !important;
    min-height: 32px;
    padding: 0 !important;
    margin: 16px 0 !important;
    background: repeating-linear-gradient(90deg, #f3f4f6 0, #f3f4f6 18px, #ffffff 18px, #ffffff 28px) !important;
    border: 1px dashed #d1d5db;
    border-radius: 12px !important;
}

@media (max-width: 768px) {
    .cmc-public-seat-map {
        padding: 16px !important;
    }

    .cmc-public-seat-row {
        min-width: 1080px !important;
    }

    .cmc-public-row-label {
        width: 86px !important;
        min-width: 86px !important;
        flex-basis: 86px !important;
        font-size: 12px;
        box-shadow: 8px 0 12px rgba(255,255,255,.92);
    }

    .cmc-public-seat {
        width: 28px !important;
        height: 28px !important;
        min-width: 28px !important;
        min-height: 40px !important;
        font-size: 11px !important;
    }

    .cmc-public-horizontal-aisle {
        min-width: 1080px !important;
        min-height: 30px;
    }
}


/* v1.6.0-b map refinements */
.cmc-public-seat-row {
    margin-bottom: 0 !important;
}

.cmc-public-area-zone .cmc-public-vertical-aisle {
    position: relative;
}

.cmc-public-area-zone .cmc-public-vertical-aisle::before {
    content: '';
    position: absolute;
    left: 50%;
    top: -2px;
    bottom: -2px;
    width: 2px;
    transform: translateX(-50%);
    background: #d1d5db;
    border-radius: 999px;
}

.cmc-public-area-label {
    position: relative;
    z-index: 1;
    background: #ffffff;
}


/* v1.6.0-c desktop compact map fixes */
.cmc-public-seat-map {
    overflow-x: visible !important;
}

.cmc-public-seat-row {
    min-width: 0 !important;
    width: 100% !important;
    margin-bottom: 4px !important;
    gap: 0 !important;
}

.cmc-public-row-label {
    width: 58px !important;
    min-width: 58px !important;
    flex: 0 0 58px !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
    padding: 2px 6px 2px 0 !important;
}

.cmc-public-seat-group {
    gap: 3px !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
}

.cmc-public-seat {
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    min-height: 22px !important;
    line-height: 22px !important;
    font-size: 10px !important;
    border-radius: 4px !important;
}

.cmc-public-vertical-aisle {
    width: 46px !important;
    min-width: 46px !important;
    flex: 0 0 46px !important;
}

.cmc-public-area-label {
    min-width: 24px !important;
    min-height: 66px !important;
    padding: 6px 4px !important;
    font-size: 9px !important;
}

.cmc-public-horizontal-aisle {
    min-width: 0 !important;
    width: 100% !important;
    margin: 12px 0 !important;
}

@media (max-width: 1180px) {
    .cmc-public-seat-map {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
    }

    .cmc-public-seat-row,
    .cmc-public-horizontal-aisle {
        min-width: 1080px !important;
    }

    .cmc-public-row-label {
        position: sticky;
        left: 0;
        width: 86px !important;
        min-width: 86px !important;
        flex-basis: 86px !important;
        font-size: 12px !important;
    }

    .cmc-public-seat {
        width: 28px !important;
        height: 28px !important;
        min-width: 28px !important;
        min-height: 40px !important;
        line-height: 28px !important;
        font-size: 11px !important;
    }

    .cmc-public-vertical-aisle {
        width: 62px !important;
        min-width: 62px !important;
        flex-basis: 62px !important;
    }
}


/* v1.6.0-d area labels above center */
.cmc-public-area-heading-row{
    display:flex;
    align-items:center;
    margin: 2px 0 6px !important;
    min-width:0 !important;
    width:100% !important;
}
.cmc-public-vertical-aisle-heading{
    display:flex;
    align-items:center;
    justify-content:center;
    position:relative;
}
.cmc-public-vertical-aisle-heading::before{display:none !important;}
.cmc-public-area-label-top{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width: 94px !important;
    min-height: 40px !important;
    padding: 8px 18px !important;
    font-size: 19px !important;
    font-weight: 900 !important;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    border:1px solid #d1d5db;
    border-radius:999px;
    background:#ffffff;
    color:#374151;
    writing-mode: horizontal-tb !important;
    transform:none !important;
}
.cmc-public-area-zone .cmc-public-vertical-aisle::before{
    top:-4px !important;
    bottom:-4px !important;
}
@media (max-width:1180px){
    .cmc-public-area-heading-row{min-width:1080px !important;}
}


/* v1.6.0-f final area label visibility */
.cmc-public-area-label-top,
.cmc-area-label-top {
    min-width: 120px !important;
    min-height: 34px !important;
    padding: 7px 18px !important;
    font-size: 17px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: .12em !important;
    white-space: nowrap !important;
    text-align: center !important;
    box-shadow: 0 8px 18px rgba(15,23,42,.10) !important;
}

.cmc-public-area-heading-row,
.cmc-area-heading-row {
    margin: 0 0 8px !important;
}

.cmc-public-area-heading-row + .cmc-public-seat-row,
.cmc-area-heading-row + .cmc-seat-row {
    margin-top: 0 !important;
}


/* v1.6.0-g selected seat price details */
.cmc-selected-detail-chips span {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
}
.cmc-mini-cart-price {
    font-size: 14px !important;
    line-height: 1.25 !important;
}


/* v1.6.0-h selected price summary rows */
.cmc-mini-cart-price {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 3px !important;
    white-space: normal !important;
}
.cmc-mini-cart-price span {
    display: block !important;
    line-height: 1.2 !important;
}


/* v1.6.7 Safari mobile tap fix + centered row labels */
.cmc-public-seat,
.cmc-reset-selection-button,
.cmc-clear-cart-selection-button,
.cmc-add-to-cart-button {
    touch-action: manipulation !important;
    -webkit-tap-highlight-color: transparent !important;
    -webkit-touch-callout: none !important;
    user-select: none !important;
}

.cmc-public-seat {
    cursor: pointer !important;
}

.cmc-public-row-label {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    box-sizing: border-box !important;
    line-height: 1 !important;
}

@media (max-width: 1180px) {
    .cmc-public-row-label {
        height: 34px !important;
        min-height: 34px !important;
        padding: 0 10px !important;
        border-radius: 999px !important;
        background: #ffffff !important;
        box-shadow: 8px 0 14px rgba(255,255,255,.96) !important;
    }

    .cmc-public-seat-map {
        overscroll-behavior-x: contain !important;
        -webkit-overflow-scrolling: touch !important;
    }
}

@media (max-width: 768px) {
    .cmc-public-row-label {
        height: 36px !important;
        min-height: 36px !important;
        font-size: 12px !important;
    }

    .cmc-public-seat {
        touch-action: manipulation !important;
    }
}


/* v1.6.8 mobile scroll guard: allow map scroll, activate only on real tap */
.cmc-public-seat-map {
    touch-action: pan-x pan-y !important;
}

.cmc-public-seat {
    touch-action: auto !important;
}

.cmc-reset-selection-button,
.cmc-clear-cart-selection-button,
.cmc-add-to-cart-button {
    touch-action: manipulation !important;
}


/* v1.6.30 - Frontend event meta and legend readability */
.cmc-public-ticket-map .cmc-public-legend span {
    color: #111827 !important;
    -webkit-text-fill-color: #111827 !important;
    font-weight: 800 !important;
}

.cmc-public-ticket-map .cmc-public-legend span i {
    -webkit-text-fill-color: initial !important;
    flex: 0 0 auto;
}

.cmc-event-location-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 16px 0 0;
    color: #111827;
    font-size: 16px;
}

.cmc-event-location-meta .cmc-meta-location {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    border: 1px solid #e5e7eb;
    background: #f9fafb;
    border-radius: 999px;
    padding: 9px 14px;
    color: #111827 !important;
    -webkit-text-fill-color: #111827 !important;
}

.cmc-event-location-meta .cmc-meta-location .cmc-meta-value {
    display: inline;
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: normal;
    line-height: 1.35;
}

.cmc-event-meta {
    margin-top: 10px;
}

@media (max-width: 640px) {
    .cmc-event-location-meta .cmc-meta-location {
        align-items: flex-start;
        border-radius: 18px;
        width: 100%;
    }
}
