.pbo-plan {
    max-width: 1480px;
    margin: 0 auto;
    color: #1c1917;
}

.pbo-box [hidden] {
    display: none !important;
}

.pbo-bowl__guide-arc {
    fill: none;
    stroke: #a8a29e;
    stroke-width: 1.25;
    stroke-dasharray: 6 5;
}

.pbo-bowl__guide-ray {
    stroke: #a8a29e;
    stroke-width: 1;
}

.pbo-bowl {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
}

.pbo-bowl__court {
    pointer-events: none;
}

.pbo-bowl__court-floor {
    fill: #fff;
    stroke: #44403c;
    stroke-width: 2;
}

.pbo-bowl__court-logo {
    pointer-events: none;
}

.pbo-bowl__court-word {
    fill: #1e3a5f;
    font-weight: 800;
    letter-spacing: 0.5px;
}

.pbo-bowl__court-sub,
.pbo-bowl__court-stars {
    fill: #1e3a5f;
    font-weight: 700;
}

.pbo-bowl__aisle {
    pointer-events: none;
}

.pbo-bowl__aisle polygon {
    fill: #3f3f46;
    stroke: #27272a;
    stroke-width: 1;
}

.pbo-bowl__desk {
    pointer-events: none;
}

.pbo-bowl__desk rect {
    fill: #fff;
    stroke: #44403c;
    stroke-width: 1;
}

.pbo-bowl__desk-crew rect {
    fill: #f9a8d4;
}

.pbo-bowl__desk-label {
    fill: #44403c;
    font-size: 9px;
}

.pbo-wedge {
    cursor: pointer;
}

.pbo-wedge polygon {
    fill: var(--pbo-sec, #fafafa);
    fill-opacity: 0.38;
    stroke: #44403c;
    stroke-width: 1.5;
    stroke-linejoin: miter;
}

.pbo-wedge:hover polygon,
.pbo-wedge:focus polygon,
.pbo-wedge:focus-visible polygon {
    fill-opacity: 0.55;
}

.pbo-wedge--bench {
    cursor: default;
    pointer-events: none;
}

.pbo-wedge--bench polygon {
    fill: var(--pbo-sec, #64748b);
    fill-opacity: 0.9;
}

.pbo-bowl__seams {
    pointer-events: none;
}

.pbo-bowl__edge {
    fill: none;
    stroke: #44403c;
    stroke-width: 1.5;
    stroke-linejoin: miter;
    stroke-linecap: square;
}

.pbo-wedge:focus {
    outline: none;
}

.pbo-wedge__seats {
    pointer-events: none;
}

.pbo-dot {
    fill: var(--pbo-mark, #e7e5e4);
    stroke: #44403c;
    stroke-width: 0.35;
    pointer-events: auto;
}

.pbo-dot-n {
    fill: #1c1917;
    font-weight: 700;
    display: none;
}

.pbo-wedge__code {
    pointer-events: none;
    fill: #1c1917;
    font-size: 20px;
    font-weight: 700;
    stroke: #fff;
    stroke-width: 5px;
    paint-order: stroke;
}

.pbo-plan__legend {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 20px;
    margin: 16px 0 0;
    padding: 0;
    list-style: none;
    font-size: 13px;
}

.pbo-plan__legend li {
    display: flex;
    align-items: center;
    gap: 6px;
}

.pbo-plan__swatch {
    width: 12px;
    height: 12px;
    border-radius: 3px;
    background: var(--pbo-section);
}

.pbo-plan__count {
    color: #78716c;
}

.pbo-plan__count::before {
    content: "×";
}

.pbo-seats {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, 32%);
    gap: 12px 28px;
    align-items: start;
}

.pbo-seats__top {
    grid-column: 1 / -1;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.pbo-seats__tools {
    grid-column: 1 / -1;
}

.pbo-seats__tools:empty {
    display: none;
}

.pbo-seats__main {
    min-width: 0;
}

.pbo-seats__preview {
    position: sticky;
    top: 12px;
}

.pbo-seats__back {
    flex: 0 0 auto;
    margin-left: auto;
    padding: 6px 12px;
    border: 1px solid #d6d3d1;
    border-radius: 6px;
    background: #fff;
    cursor: pointer;
}

.pbo-seats__head {
    min-width: 0;
}

.pbo-seats__title {
    margin: 0;
    font-size: 18px;
}

.pbo-seats__facing {
    margin: 4px 0 0;
    font-size: 14px;
    color: #44403c;
}

.pbo-locator {
    display: block;
    width: 100%;
    height: auto;
    border: 1px solid #e7e5e4;
    border-radius: 8px;
    background: #fff;
}

@media (max-width: 900px) {
    .pbo-seats {
        grid-template-columns: 1fr;
    }

    .pbo-seats__preview {
        position: static;
        max-width: 320px;
    }
}

.pbo-locator__court rect {
    fill: #fff;
    stroke: #1e3a5f;
    stroke-width: 3;
}

.pbo-locator__court text {
    fill: #1e3a5f;
    font-size: 48px;
    font-weight: 800;
}

.pbo-locator__sec {
    fill: #e7e5e4;
    stroke: #44403c;
    stroke-width: 1.25;
}

.pbo-locator__sec.is-on {
    fill: #f97316;
}

.pbo-seats__rail {
    text-align: center;
    margin: 0 0 12px;
    padding: 8px 12px;
    border: 1px dashed #1e3a5f;
    border-radius: 8px;
    background: #eff6ff;
    color: #1e3a5f;
    font-size: 14px;
    font-weight: 700;
}

.pbo-seats__grid {
    display: flex;
    flex-direction: column;
    gap: 4px;
    overflow-x: auto;
    padding-bottom: 8px;
}

.pbo-seats__row {
    display: flex;
    align-items: center;
    gap: 6px;
}

.pbo-seats__rn,
.pbo-seats__aisle {
    width: 22px;
    flex: 0 0 22px;
    text-align: center;
    font-size: 12px;
    color: #57534e;
}

button.pbo-seats__rn {
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}

button.pbo-seats__rn:hover {
    color: #1c1917;
    font-weight: 700;
}

.pbo-seats__block {
    display: flex;
    gap: 3px;
}

.pbo-seats--aisle-left .pbo-seats__block--left,
.pbo-seats--center .pbo-seats__block--left {
    width: calc(13 * 28px + 12 * 3px);
    justify-content: flex-end;
}

.pbo-seats--aisle-left .pbo-seats__block--right {
    width: calc(12 * 28px + 11 * 3px);
}

.pbo-seats--aisle-right .pbo-seats__block--left {
    width: calc(12 * 28px + 11 * 3px);
}

.pbo-seats--aisle-right .pbo-seats__block--right,
.pbo-seats--center .pbo-seats__block--right {
    width: calc(13 * 28px + 12 * 3px);
}

.pbo-seats--orange .pbo-seats__block--left,
.pbo-seats--orange .pbo-seats__block--right {
    width: calc(4 * 28px + 3 * 3px);
}

.pbo-wedge--mach .pbo-wedge__code {
    font-size: 11px;
    stroke-width: 3px;
}

.pbo-wedge--bench .pbo-wedge__code {
    font-size: 7.5px;
    stroke-width: 2px;
}

.pbo-seats--mach .pbo-seats__block--line,
.pbo-seats--line .pbo-seats__block--line {
    width: auto;
}

.pbo-mark {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    margin-bottom: 12px;
    padding: 10px 12px;
    border: 1px solid #e7e5e4;
    border-radius: 10px;
    background: #fff;
}

.pbo-mark__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.pbo-mark__group {
    flex: 0 0 3em;
    font-size: 12px;
    font-weight: 700;
    color: #57534e;
}

.pbo-mark__label {
    font-size: 13px;
    font-weight: 700;
}

.pbo-mark__swatch {
    width: 22px;
    height: 22px;
    padding: 0;
    border: 1px solid #44403c;
    border-radius: 4px;
    cursor: pointer;
}

.pbo-mark__swatch.is-on {
    outline: 2px solid #1c1917;
    outline-offset: 1px;
}

.pbo-mark__picker {
    width: 28px;
    height: 22px;
    padding: 0;
    border: 1px solid #d6d3d1;
    background: #fff;
    cursor: pointer;
}

.pbo-mark__btn,
.pbo-mark__mode {
    font-size: 13px;
}

.pbo-mark__btn {
    padding: 4px 10px;
    border: 1px solid #d6d3d1;
    border-radius: 6px;
    background: #fff;
    cursor: pointer;
}

.pbo-mark__mode {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.pbo-mark__status {
    font-size: 12px;
    color: #57534e;
}

.pbo-seat {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border-radius: 4px;
    background: #fff;
    color: #1c1917;
    border: 1px solid #44403c;
    font-size: 11px;
    font-variant-numeric: tabular-nums;
    cursor: pointer;
}

.pbo-seat.is-available,
.pbo-dot.is-available {
    background: #fff;
    --pbo-mark: #e7e5e4;
}

.pbo-seat.is-held,
.pbo-dot.is-held {
    background: #d6d3d1;
    --pbo-mark: #d6d3d1;
}

.pbo-seat.is-sold,
.pbo-dot.is-sold {
    background: #57534e;
    color: #fff;
    --pbo-mark: #57534e;
}

.pbo-seat.is-blocked {
    background: repeating-linear-gradient(45deg, #fff 0 4px, #e11d48 4px 7px);
    color: transparent;
    --pbo-mark: #e11d48;
}

.pbo-dot.is-blocked {
    fill: url(#pbo-hatch-blocked);
    --pbo-mark: #e11d48;
}

.pbo-seat.is-blocked.is-reserved {
    background: var(--pbo-reserve, #6d28d9);
    color: #fff;
    border-color: var(--pbo-reserve, #6d28d9);
}

.pbo-dot.is-blocked.is-reserved {
    fill: var(--pbo-reserve, #6d28d9);
}

.pbo-seat.is-picked {
    outline: 2px solid #2563eb;
    outline-offset: 1px;
}

.pbo-seat.is-focus {
    box-shadow: 0 0 0 3px #fbbf24;
}

.pbo-plan__legend-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-right: 16px;
    font-size: 13px;
}

.pbo-box .pbo-wedge__left:empty {
    display: none;
}

.pbo-mark__price {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
}

.pbo-console__title {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
}

.pbo-console__game {
    display: inline-flex;
    margin: 0;
}

.pbo-console__game select {
    font-size: 20px;
    font-weight: 600;
    line-height: 1.3;
    max-width: min(100%, 28em);
    margin: 0;
}

.pbo-copy-dialog {
    border: 1px solid #c3c4c7;
    border-radius: 2px;
    padding: 16px 20px 12px;
    width: min(36em, calc(100vw - 32px));
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}

.pbo-copy-dialog::backdrop {
    background: rgba(0, 0, 0, 0.45);
}

.pbo-copy-dialog h2 {
    margin: 0 0 8px;
    font-size: 16px;
}

.pbo-copy-dialog__row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin: 8px 0 12px;
}

.pbo-copy-dialog__actions {
    display: flex;
    gap: 8px;
    margin: 4px 0 0;
}

.pbo-type-swatch {
    display: inline-block;
    width: 12px;
    height: 12px;
    margin-right: 4px;
    border-radius: 2px;
    vertical-align: -1px;
}

.pbo-type-key {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    color: #44403c;
}

.pbo-mark__sep {
    width: 1px;
    height: 22px;
    background: #dcdcde;
    margin: 0 4px;
}

.pbo-reserve-sponsor {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.pbo-reserve-hits {
    position: absolute;
    z-index: 20;
    top: 100%;
    left: 0;
    min-width: 220px;
    margin: 4px 0 0;
    padding: 4px 0;
    background: #fff;
    border: 1px solid #dcdcde;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08);
}

.pbo-reserve-hits button {
    display: block;
    width: 100%;
    margin: 0;
    padding: 4px 10px;
    border: 0;
    background: transparent;
    text-align: left;
    cursor: pointer;
}

.pbo-reserve-hits button:hover,
.pbo-reserve-hits button:focus {
    background: #f6f7f7;
}

.pbo-price-cards {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: flex-start;
}

.pbo-price-card {
    flex: 1 1 320px;
    max-width: 480px;
    margin: 0;
    padding: 12px 16px;
    border: 1px solid #dcdcde;
    background: #fff;
    box-sizing: border-box;
}

.pbo-price-card summary {
    cursor: pointer;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
}

.pbo-price-card__default {
    font-weight: 400;
}

.pbo-price-card .widefat {
    margin-top: 12px;
}

.pbo-price-swatch {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 1px solid #50575e;
    vertical-align: -2px;
    margin-right: 4px;
}

.pbo-price-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 12px;
}

.pbo-price-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border: 1px solid #dcdcde;
    background: #fff;
    cursor: pointer;
    font-size: 13px;
}

.pbo-price-tag::before {
    content: "";
    width: 12px;
    height: 12px;
    background: var(--pbo-tag, #dcdcde);
    border: 1px solid #50575e;
}

.pbo-price-tag.is-clear::before {
    display: none;
}

.pbo-price-tag.is-on {
    outline: 2px solid #1d2327;
    outline-offset: 1px;
}

.pbo-plan__port {
    position: relative;
    overflow: auto;
    border: 1px solid #dcdcde;
    background: #f6f7f7;
    max-height: 720px;
    flex: 1 1 640px;
    min-width: 0;
}

.pbo-plan__zoom {
    position: sticky;
    top: 8px;
    left: 8px;
    z-index: 2;
    display: flex;
    gap: 4px;
    width: max-content;
    margin: 8px;
}

.pbo-plan__stage {
    transform-origin: 50% 40%;
}

.pbo-plan__body {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: flex-start;
}

.pbo-plan__side {
    flex: 1 1 280px;
    max-width: 420px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-height: 720px;
    overflow: auto;
}

.pbo-stat-card {
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #dcdcde;
    background: #fff;
}

.pbo-stat-card summary {
    cursor: pointer;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.pbo-stat-card__sum {
    font-size: 13px;
    color: #50575e;
}

.pbo-stat-card__table {
    margin-top: 10px;
}

.pbo-box.is-price-filter .pbo-wedge:not(.is-price-on):not(.is-price-has):not(.pbo-wedge--bench) > polygon,
.pbo-box.is-price-filter .pbo-wedge:not(.is-price-on):not(.is-price-has):not(.pbo-wedge--bench) > .pbo-wedge__code,
.pbo-box.is-price-filter .pbo-wedge:not(.is-price-on):not(.is-price-has):not(.pbo-wedge--bench) > .pbo-wedge__left {
    opacity: 0.22;
}

.pbo-box.is-price-filter .pbo-dot:not(.is-price-on),
.pbo-box.is-price-filter .pbo-seat:not(.is-price-on) {
    opacity: 0.16;
}

.pbo-box.is-price-filter .pbo-dot.is-price-on,
.pbo-box.is-price-filter .pbo-seat.is-price-on {
    opacity: 1;
}

.pbo-box.is-price-filter .pbo-dot.is-price-on {
    stroke: #1d2327;
    stroke-width: 1.4;
}
