:root{
  --tb-bg:#111;
  --tb-panel:#1f1f1f;
  --tb-panel-2:#181818;
  --tb-panel-3:#242424;
  --tb-border:#333;
  --tb-border-soft:#2b2b2b;
  --tb-text:#fff;
  --tb-muted:#bbb;
  --tb-muted-2:#8f8f8f;
  --tb-green:#4CAF50;
  --tb-green-2:#66ff88;
  --tb-red:#ff5555;
  --tb-yellow:#ffcc00;
  --tb-radius:14px;
  --tb-shadow:0 16px 40px rgba(0,0,0,.28);
}

/* TicketBlossom v2.6.39 - global color scheme lock
   TicketBlossom already ships with its own dark theme.
   Keep browsers from auto-adjusting/inverting colors, SVGs, gradients and controls. */
:root{
  color-scheme: dark;
}
html,
body{
  color-scheme: dark;
}
img,
svg,
canvas,
video,
.tb-layout-map,
#stadium,
#stadiumInner{
  forced-color-adjust: none;
}
*{box-sizing:border-box;}
html{background:var(--tb-bg);}
body{
  font-family:Arial,Helvetica,sans-serif;
  background:radial-gradient(circle at top,#1b1b1b 0,#111 42%,#0b0b0b 100%);
  color:var(--tb-text);
  margin:0 auto;
  padding:18px;
  max-width:900px;
  min-height:100vh;
}
a{color:var(--tb-green);text-decoration:none;}
a:hover{text-decoration:underline;}
h1,h2,h3{line-height:1.15;}
h1{font-size:clamp(30px,8vw,46px);text-align:center;margin:18px 0 22px;letter-spacing:-.5px;}
h2{font-size:clamp(21px,5vw,30px);margin:0 0 12px;}
h3{font-size:20px;margin:0 0 12px;}
button,.tb-btn{
  border:none;
  border-radius:10px;
  background:var(--tb-green);
  color:#fff;
  cursor:pointer;
  padding:13px 16px;
  font-weight:700;
  font-size:15px;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  text-decoration:none;
}
button:hover,.tb-btn:hover{opacity:.88;text-decoration:none;}
button:disabled,.tb-btn.disabled{background:#555;cursor:not-allowed;opacity:.8;}
.tb-btn.secondary{background:#333;}
.tb-btn.full,button.full{width:100%;}
input,select,textarea{
  width:100%;
  padding:13px 14px;
  margin-top:8px;
  border:1px solid #3a3a3a;
  border-radius:10px;
  background:#141414;
  color:#fff;
  font-size:16px;
}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--tb-green);box-shadow:0 0 0 3px rgba(76,175,80,.14);}
input[readonly]{background:#202020;color:#ddd;cursor:not-allowed;}
label{display:block;margin:14px 0 4px;font-weight:700;}
.card,.tb-card{
  background:linear-gradient(180deg,#222,#1b1b1b);
  border:1px solid var(--tb-border);
  border-radius:var(--tb-radius);
  padding:18px;
  margin-top:16px;
  box-shadow:var(--tb-shadow);
}
.tb-card.soft{background:var(--tb-panel-2);box-shadow:none;}
.tb-page-title{text-align:center;margin-bottom:8px;}
.tb-subtitle{text-align:center;color:var(--tb-muted);margin:-4px 0 18px;}
.tb-muted,.small{color:var(--tb-muted);font-size:13px;}
.tb-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #303030;}
.tb-row:last-child{border-bottom:none;}
.tb-row span:first-child{color:var(--tb-muted);}
.tb-price{font-size:clamp(24px,7vw,34px);font-weight:800;color:var(--tb-green-2);}
.tb-grid{display:grid;gap:14px;}
.tb-actions{display:flex;gap:10px;flex-wrap:wrap;}
.tb-actions > *{flex:1;}
.tb-pill{display:inline-flex;align-items:center;gap:6px;background:#2a2a2a;border:1px solid #3a3a3a;border-radius:999px;padding:7px 10px;font-size:13px;color:#ddd;}
.message{margin-top:12px;padding:10px;border-radius:8px;display:none;}
.success{background:#14351b;color:#66ff88;}
.error{background:#3a1515;color:#ff7777;}
.tb-loading,.tb-empty,.tb-error{padding:22px;text-align:center;color:var(--tb-muted);}

/* Index */

.tb-banner-card{
  padding:10px;
  margin:12px auto 18px;
  border-radius:22px;
}
.tb-banner-img{
  width:100%;
  height:auto;
  display:block;
  border-radius:16px;
}
.tb-hero{text-align:center;margin:8px 0 18px;}
.tb-hero .logo{font-size:48px;margin-bottom:4px;}
.auth-panel{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;}
.auth-panel .links{display:flex;gap:8px;flex-wrap:wrap;}
.userBadge{display:flex;align-items:center;gap:9px;min-width:0;}
.avatarMini{width:36px;height:36px;border-radius:50%;display:flex;justify-content:center;align-items:center;background:var(--tb-green);font-size:20px;flex:0 0 36px;overflow:hidden;}
.event-list{display:grid;gap:14px;}
.event-card{position:relative;overflow:hidden;}
.event-card:before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:linear-gradient(90deg,#4CAF50,#8e44ff,#ff4fc3);}
.event-meta{display:grid;gap:8px;margin:12px 0 16px;color:#ddd;}
.event-title{font-size:24px;font-weight:800;margin-top:4px;}

/* Event page */
.event-header{text-align:center;}
.event-header h1{margin-bottom:8px;}
.event-facts{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:10px;}
#stadium{
  width:min(100%,550px);
  aspect-ratio:1/1;
  margin:18px auto 4px;
  border:1px solid #3a3a3a;
  border-radius:18px;
  background:radial-gradient(circle at center,#222 0,#171717 62%,#101010 100%);
  overflow:hidden;
  position:relative;
  box-shadow:inset 0 0 22px rgba(0,0,0,.6),0 10px 28px rgba(0,0,0,.25);
}
#stadiumInner{position:relative;width:550px;height:550px;transform-origin:top left;}
.section{position:absolute;display:flex;justify-content:center;align-items:center;flex-direction:column;border-radius:12px;font-size:12px;text-align:center;cursor:pointer;border:1px solid rgba(255,255,255,.18);transition:.2s;padding:6px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5);box-shadow:0 8px 18px rgba(0,0,0,.22);}
.section:hover{transform:scale(1.04);z-index:100;border-color:#fff;}
.section.selected{
  border:1.5px solid rgba(238,244,255,.82)!important;
  box-shadow:0 0 0 1px rgba(255,255,255,.12),0 0 8px rgba(180,205,245,.18)!important;
  background:rgba(255,255,255,.035);
}
.section b{font-size:13px;margin-bottom:3px;}
.event-panels{display:grid;gap:14px;margin-top:16px;}
.selected-panel,.summary-panel{background:#181818;border:1px solid #333;border-radius:14px;padding:16px;}
.qty-control input{font-size:18px;font-weight:700;text-align:center;}
.registeredBuyer{display:flex;align-items:center;gap:10px;background:#151515;border:1px solid #333;border-radius:12px;padding:12px;margin:10px 0;cursor:pointer;}
.registeredBuyer:hover{border-color:var(--tb-green);}
.miniAvatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;background:var(--tb-green);flex-shrink:0;overflow:hidden;}
.miniAvatar img{width:25px;height:25px;display:block;}
.registeredName{font-weight:800;}
.registeredText{font-size:13px;color:#aaa;}
.userCheckoutNote{font-size:13px;color:#9be79b;margin-top:12px;}
.summary-total{font-size:28px;font-weight:900;color:#66ff88;margin-top:10px;}

/* Checkout / payment */
.checkout-summary,.payment-summary{display:grid;gap:8px;}
.hold-monitor{margin-top:18px;background:#181818;border:1px solid #333;border-radius:14px;padding:14px;display:none;overflow:auto;}
.hold-monitor table{width:100%;border-collapse:collapse;font-size:13px;min-width:520px;}
.hold-monitor th,.hold-monitor td{border-bottom:1px solid #333;padding:8px;text-align:left;}
.hold-monitor th{color:var(--tb-yellow);}
.pagadito-logo{max-width:320px;width:100%;border-radius:16px;margin:18px auto 10px;display:block;box-shadow:0 0 18px rgba(0,0,0,.4);}
.timer{font-size:42px;font-weight:900;color:var(--tb-yellow);margin:14px 0;text-align:center;}
.expired{color:#ff6666!important;font-weight:800;}

/* Scanner */
.scanner-shell{text-align:center;}
.scanner-icon{font-size:46px;margin-bottom:6px;}
#result{margin-top:18px;padding:18px;border-radius:14px;background:#181818;border:1px solid #333;text-align:center;}
.scan-ok{color:#66ff88;font-size:24px;font-weight:900;}
.scan-bad{color:#ff6666;font-size:22px;font-weight:900;}

@media (max-width:600px){
  body{padding:14px;max-width:480px;}
  .card,.tb-card{padding:16px;border-radius:16px;}
  .tb-actions{flex-direction:column;}
  .auth-panel{align-items:flex-start;}
  .auth-panel .links{width:100%;}
  .auth-panel .links a{flex:1;text-align:center;}
  .event-title{font-size:22px;}
  .section{font-size:11px;}
}


/* Ajustes seguros para botones especiales */
.copy-user-id{
  width:auto !important;
  min-height:auto !important;
  padding:6px 10px !important;
  font-size:13px !important;
  border-radius:8px !important;
}
.tb-ticket-modal-actions button,
.transfer-ticket-btn,
.ticket-modal-save-btn{
  width:auto !important;
  min-height:auto !important;
  padding:10px 14px !important;
  font-size:16px !important;
  border-radius:10px !important;
}
.tb-ticket-actions-row{
  text-align:center;
  margin:-4px 0 22px;
  display:flex;
  gap:10px;
  justify-content:center;
  flex-wrap:wrap;
}

/* Admin Panel V1 */
.admin-pin-card{
  text-align:center;
}
.admin-pin-wrap{
  max-width:360px;
  margin:0 auto;
}
.admin-pin-input{
  text-align:center;
  letter-spacing:6px;
  font-size:22px;
  font-weight:800;
}
.admin-modules{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-top:16px;
}
.admin-module-btn{
  min-height:70px;
  border-radius:14px;
  background:#333;
  border:1px solid #444;
  color:#fff;
  font-weight:800;
  font-size:15px;
  transition:.2s;
}
.admin-module-btn:disabled{
  opacity:.38;
  cursor:not-allowed;
  background:#242424;
  color:#aaa;
}
.admin-module-btn:not(:disabled):hover{
  transform:translateY(-1px);
  border-color:var(--tb-green-2);
}
.admin-status-msg{
  margin-top:12px;
  font-size:16px;
  color:var(--tb-muted);
}
@media(max-width:420px){
  .admin-modules{gap:8px;}
  .admin-module-btn{font-size:13px;min-height:62px;padding:10px 8px;}
}

/* Admin Events V1 */
.admin-events-panel h2{
  margin-bottom:6px;
}
.admin-event-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-top:16px;
}
.admin-field-note{
  font-size:12px;
  color:var(--tb-muted);
  margin-top:6px;
}
.admin-field-edit{
  border-color:#ffcc66 !important;
  background:#2b2415 !important;
}
.admin-event-actions{
  margin-top:18px;
}
.admin-module-btn{
  background:#333 !important;
  border:1px solid #444 !important;
  color:#fff !important;
  box-shadow:0 8px 20px rgba(0,0,0,.22);
}
.admin-module-btn:not(:disabled){
  background:linear-gradient(180deg,#3a3a3a,#2d2d2d) !important;
}
.admin-module-btn:disabled{
  opacity:.38;
  cursor:not-allowed;
  background:#242424 !important;
  color:#aaa !important;
  box-shadow:none;
}
@media(max-width:700px){
  .admin-event-grid{
    grid-template-columns:1fr;
  }
}


/* Admin V2.1 refinements */
.admin-lock-x{
  color:#ff5555;
  font-weight:900;
  margin-right:4px;
}
.admin-module-btn:not(:disabled){
  background:linear-gradient(180deg,#333,#2b2b2b) !important;
  border:1px solid #3b3b3b !important;
  color:#fff !important;
  box-shadow:0 8px 20px rgba(0,0,0,.22);
}
.admin-module-btn:disabled{
  opacity:.65 !important;
  cursor:not-allowed;
  background:#242424 !important;
  color:#d0d0d0 !important;
  box-shadow:none;
}
.admin-event-id-row{
  display:flex;
  gap:8px;
  align-items:flex-end;
}
.admin-event-id-row input{
  flex:1;
  min-width:0;
}
.admin-event-id-actions{
  display:flex;
  gap:6px;
  flex:0 0 auto;
}
.admin-small-btn{
  width:auto !important;
  min-height:auto !important;
  padding:8px 11px !important;
  font-size:13px !important;
  border-radius:9px !important;
  white-space:nowrap;
}
.admin-event-picker{
  margin-top:8px;
}
@media(max-width:420px){
  .admin-event-id-row{
    align-items:stretch;
  }
  .admin-event-id-actions{
    flex-direction:column;
  }
  .admin-small-btn{
    padding:7px 9px !important;
    font-size:12px !important;
  }
}

/* Admin Sections V1 - visual layouts */
.admin-sections-panel{
  width:100%;
}
.tb-stadium-canvas{
  margin-top:16px;
  width:100%;
}
.tb-layout-map{
  position:relative;
  width:min(100%, 820px);
  max-width:820px;
  aspect-ratio:1/1;
  margin:0 auto;
  overflow:hidden;
  border-radius:24px;
  border:1px solid rgba(255,255,255,.12);
  background:
    radial-gradient(circle at 50% 44%,rgba(255,255,255,.07),transparent 28%),
    linear-gradient(180deg,#202020,#111 72%,#0b0b0b);
  box-shadow:inset 0 0 35px rgba(0,0,0,.65),0 18px 45px rgba(0,0,0,.35);
}
.tb-layout-glow{
  pointer-events:none;
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,rgba(242,139,174,.08),transparent 36%,rgba(125,134,177,.08));
}
.tb-layout-field{
  position:absolute;
  left:var(--field-x);
  top:var(--field-y);
  width:var(--field-w);
  height:var(--field-h);
  transform:rotate(var(--field-r));
  transform-origin:center;
  border-radius:16px;
  overflow:hidden;
  background:
    repeating-linear-gradient(90deg,#176b32 0,#176b32 8%,#1f7f3d 8%,#1f7f3d 16%),
    linear-gradient(180deg,#1f8b45,#12622e);
  border:3px solid rgba(255,255,255,.78);
  box-shadow:
    inset 0 0 28px rgba(0,0,0,.35),
    inset 0 -20px 40px rgba(0,0,0,.18),
    0 18px 35px rgba(0,0,0,.48),
    -12px 0 26px rgba(42,151,255,.28),
    12px 0 26px rgba(242,139,174,.28);
}
.tb-layout-field:before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,rgba(255,255,255,.10),transparent 42%,rgba(0,0,0,.10));
  pointer-events:none;
}
.tb-field-line,
.tb-field-center-circle,
.tb-field-center-dot,
.tb-field-box,
.tb-field-small-box,
.tb-field-goal{
  position:absolute;
  z-index:2;
}
.tb-field-midline{
  left:50%;
  top:0;
  width:2px;
  height:100%;
  background:rgba(255,255,255,.72);
  transform:translateX(-50%);
}
.tb-field-center-circle{
  left:50%;
  top:50%;
  width:17%;
  aspect-ratio:1/1;
  border:2px solid rgba(255,255,255,.78);
  border-radius:50%;
  transform:translate(-50%,-50%);
}
.tb-field-center-dot{
  left:50%;
  top:50%;
  width:7px;
  height:7px;
  border-radius:50%;
  background:rgba(255,255,255,.82);
  transform:translate(-50%,-50%);
}
.tb-field-box{
  top:23%;
  width:15%;
  height:54%;
  border:2px solid rgba(255,255,255,.76);
}
.tb-field-box-left{left:0;border-left:none;border-radius:0 10px 10px 0;}
.tb-field-box-right{right:0;border-right:none;border-radius:10px 0 0 10px;}
.tb-field-small-box{
  top:36%;
  width:6%;
  height:28%;
  border:2px solid rgba(255,255,255,.76);
}
.tb-field-small-box-left{left:0;border-left:none;border-radius:0 7px 7px 0;}
.tb-field-small-box-right{right:0;border-right:none;border-radius:7px 0 0 7px;}
.tb-field-goal{
  top:43%;
  width:2%;
  height:14%;
  border:2px solid rgba(255,255,255,.78);
  background:rgba(255,255,255,.08);
}
.tb-field-goal-left{left:-2%;border-right:none;}
.tb-field-goal-right{right:-2%;border-left:none;}
.tb-layout-track{
  position:absolute;
  left:var(--track-x);
  top:var(--track-y);
  width:var(--track-w);
  height:var(--track-h);
  transform:rotate(var(--track-r));
  transform-origin:center;
  border-radius:999px;
  background:#7fc8f5;
  border:2px solid rgba(255,255,255,.88);
  overflow:hidden;
  box-shadow:
    /* Olympic track lanes: alternating light/dark blue with white dividers */
    inset 0 0 0 7px  rgba(255,255,255,.92),
    inset 0 0 0 18px #72bff0,
    inset 0 0 0 21px rgba(255,255,255,.82),
    inset 0 0 0 32px #1459b7,
    inset 0 0 0 35px rgba(255,255,255,.82),
    inset 0 0 0 46px #62b7ec,
    inset 0 0 0 49px rgba(255,255,255,.82),
    inset 0 0 0 60px #1764c7,
    inset 0 0 0 63px rgba(255,255,255,.82),
    inset 0 0 0 74px #8bcdf6,
    inset 0 0 0 77px rgba(255,255,255,.75),
    0 18px 36px rgba(0,0,0,.48),
    0 0 26px rgba(70,165,255,.34);
  z-index:1;
}
.tb-layout-track:before{
  content:"";
  position:absolute;
  inset:78px 100px;
  border-radius:999px;
  background:rgba(20,20,20,.92);
  box-shadow:inset 0 0 18px rgba(0,0,0,.42);
}
.tb-layout-track:after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:999px;
  background:
    linear-gradient(90deg, transparent 0 11%, rgba(255,255,255,.95) 11% 11.35%, transparent 11.35% 88.65%, rgba(255,255,255,.95) 88.65% 89%, transparent 89% 100%),
    radial-gradient(circle at 50% 50%, transparent 0 57%, rgba(255,255,255,.08) 57.4%, transparent 58%);
  pointer-events:none;
}
.tb-layout-field{
  z-index:2;
}
.tb-layout-stage{
  position:absolute;
  left:var(--stage-x);
  top:var(--stage-y);
  width:var(--stage-w);
  height:var(--stage-h);
  transform:rotate(var(--stage-r));
  display:block;
  z-index:5;
  overflow:visible !important;
  clip-path:none !important;
  border-radius:18px;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  color:#fff;
  font-weight:900;
  letter-spacing:2px;
  text-shadow:0 2px 6px rgba(0,0,0,.55);
}
.tb-layout-stage-body{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  clip-path:polygon(12% 0,88% 0,100% 100%,0 100%);
  border-radius:18px;
  background:
    radial-gradient(circle at 50% 0,rgba(255,255,255,.18),transparent 28%),
    linear-gradient(180deg,#4b3b56,#231b2a 58%,#111);
  border:1px solid rgba(255,255,255,.16);
  box-shadow:
    0 18px 36px rgba(0,0,0,.55),
    0 0 26px rgba(242,139,174,.36),
    inset 0 0 22px rgba(255,255,255,.08);
  pointer-events:none;
}
.tb-layout-stage-body:before,
.tb-layout-stage-body:after{
  content:"";
  position:absolute;
  top:12%;
  width:9px;
  height:9px;
  border-radius:50%;
  background:#f28bae;
  box-shadow:0 0 16px #f28bae;
}
.tb-layout-stage-body:before{left:18%;}
.tb-layout-stage-body:after{right:18%;}
.tb-layout-stage-body span{position:relative;z-index:2;font-size:clamp(13px,2.6vw,22px);}
.admin-layout-data{
  display:grid;
  gap:8px;
  margin-top:12px;
}
.admin-layout-row{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
  padding:9px 10px;
  border:1px solid #333;
  border-radius:12px;
  background:#181818;
  color:#ddd;
  font-size:12px;
}
.admin-layout-row b{color:#fff;margin-right:4px;}
.admin-layout-row span{
  color:#bbb;
  background:#252525;
  border-radius:999px;
  padding:4px 7px;
}
@media(max-width:600px){
  .tb-layout-map{aspect-ratio:1/1; border-radius:20px;}
  .tb-layout-track{
    box-shadow:
      inset 0 0 0 4px rgba(255,255,255,.92),
      inset 0 0 0 11px #72bff0,
      inset 0 0 0 13px rgba(255,255,255,.82),
      inset 0 0 0 20px #1459b7,
      inset 0 0 0 22px rgba(255,255,255,.82),
      inset 0 0 0 29px #62b7ec,
      inset 0 0 0 31px rgba(255,255,255,.82),
      inset 0 0 0 38px #1764c7,
      inset 0 0 0 40px rgba(255,255,255,.75),
      0 18px 36px rgba(0,0,0,.48),
      0 0 22px rgba(70,165,255,.32);
  }
  .tb-layout-track:before{inset:42px 54px;}
  .tb-layout-stage{letter-spacing:1px;}
}


/* Sections visual editor V1.1 */
.admin-section-tools{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin:12px 0 14px;
}
.admin-adjust-menu{
  width:auto;
  min-width:170px;
  margin-top:0;
  padding:9px 12px;
  font-size:14px;
}
.tb-layout-map{
  touch-action:none;
}
.tb-editable-layout-object{
  cursor:pointer;
  user-select:none;
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease, outline .18s ease;
}
.tb-editable-layout-object::after{
  transition:opacity .42s ease, box-shadow .42s ease;
}
.tb-editable-layout-object.is-transforming::after{
  opacity:.12 !important;
  box-shadow:none !important;
}
.tb-editable-layout-object.selected{
  outline:none;
  filter:brightness(1.08) saturate(1.06);
  box-shadow:
    inset 0 0 22px rgba(255,255,255,.05),
    0 12px 30px rgba(0,0,0,.42),
    -7px 0 16px rgba(42,151,255,.20),
    7px 0 16px rgba(242,139,174,.20) !important;
  z-index:20;
  overflow:visible;
}
.tb-editable-layout-object.selected::after{
  content:"";
  position:absolute;
  inset:-4px;
  border-radius:inherit;
  padding:3px;
  background:linear-gradient(90deg,#2a97ff 0%,#7d86b1 38%,#f28bae 72%,#f7b2c6 100%);
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  pointer-events:none;
  z-index:45;
  opacity:.92;
  box-shadow:
    -4px 0 14px rgba(42,151,255,.22),
    4px 0 14px rgba(242,139,174,.22);
}
.tb-layout-stage.selected::after{
  inset:-6px !important;
  border-radius:20px !important;
  z-index:70 !important;
}
.tb-layout-stage.selected .tb-layout-stage-body{
  filter:brightness(1.08) saturate(1.06);
}
.tb-adjust-handle{
  position:absolute;
  width:42px;
  height:42px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(20,24,34,.48);
  border:1.5px solid rgba(255,255,255,.72);
  color:#fff;
  font-size:23px;
  font-weight:900;
  cursor:grab;
  z-index:60;
  box-shadow:
    -4px 0 13px rgba(42,151,255,.42),
    4px 0 13px rgba(242,139,174,.42),
    inset 0 0 10px rgba(255,255,255,.10),
    0 10px 20px rgba(0,0,0,.35);
  touch-action:none;
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
  opacity:.82;
}
.tb-adjust-handle:hover{
  opacity:1;
  transform:scale(1.04);
}
.tb-adjust-handle:active{
  cursor:grabbing;
}
.tb-move-handle{
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  font-size:26px;
  background:rgba(20,24,34,.72);
}
.tb-move-handle:hover{transform:translate(-50%,-50%) scale(1.04);}
.tb-move-handle:active{transform:translate(-50%,-50%) scale(.96);}
.tb-corner-nw{left:-22px;top:-22px;}
.tb-corner-ne{right:-22px;top:-22px;}
.tb-corner-sw{left:-22px;bottom:-22px;}
.tb-corner-se{right:-22px;bottom:-22px;}
.tb-side-left{left:-22px;top:50%;transform:translateY(-50%);}
.tb-side-right{right:-22px;top:50%;transform:translateY(-50%);}
.tb-side-top{left:50%;top:-22px;transform:translateX(-50%);}
.tb-side-bottom{left:50%;bottom:-22px;transform:translateX(-50%);}
.tb-side-left:hover,.tb-side-right:hover{transform:translateY(-50%) scale(1.04);}
.tb-side-left:active,.tb-side-right:active{transform:translateY(-50%) scale(.96);}
.tb-side-top:hover,.tb-side-bottom:hover{transform:translateX(-50%) scale(1.04);}
.tb-side-top:active,.tb-side-bottom:active{transform:translateX(-50%) scale(.96);}
.tb-rotate-handle{
  left:50%;
  top:8px;
  transform:translateX(-50%);
  background:rgba(20,24,34,.52);
  color:#fff;
  font-size:26px;
  border-color:rgba(255,255,255,.78);
}
.tb-rotate-handle:hover{transform:translateX(-50%) scale(1.05);}
.tb-rotate-handle:active{transform:translateX(-50%) scale(.96);}
.tb-layout-dragging,
.tb-layout-dragging *{
  cursor:grabbing !important;
}
.tb-layout-stage-square{
  clip-path:none;
  border-radius:18px;
}
.tb-layout-stage-oval{
  clip-path:none;
  border-radius:999px;
}
.tb-layout-stage-trapezoid{
  clip-path:polygon(12% 0,88% 0,100% 100%,0 100%);
}
.admin-layout-row.selected{
  border-color:rgba(42,151,255,.75);
  box-shadow:-8px 0 18px rgba(42,151,255,.22),8px 0 18px rgba(242,139,174,.22);
}
@media(max-width:600px){
  .admin-section-tools{
    gap:7px;
  }
  .admin-adjust-menu{
    width:100%;
  }
  .tb-adjust-handle{
    width:38px;
    height:38px;
    font-size:21px;
  }
  .tb-move-handle{font-size:24px;}
  .tb-corner-nw{left:-19px;top:-19px;}
  .tb-corner-ne{right:-19px;top:-19px;}
  .tb-corner-sw{left:-19px;bottom:-19px;}
  .tb-corner-se{right:-19px;bottom:-19px;}
  .tb-side-left{left:-19px;}
  .tb-side-right{right:-19px;}
  .tb-side-top{top:-19px;}
  .tb-side-bottom{bottom:-19px;}
  .tb-rotate-handle{top:7px;}
}


/* Sections V1.5 - Section objects */
.admin-section-tools{
  align-items:flex-start;
}
body.tb-modal-open{
  overflow:hidden;
  touch-action:none;
}
body.tb-modal-open .admin-sections-panel,
body.tb-modal-open .admin-page{
  overscroll-behavior:contain;
}
.tb-modal-backdrop{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(0,0,0,.72);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}
.tb-modal-card{
  width:min(100%,620px);
  max-height:92vh;
  overflow:auto;
  background:linear-gradient(180deg,#242424,#171717);
  border:1px solid rgba(255,255,255,.12);
  border-radius:22px;
  padding:14px;
  box-shadow:0 24px 70px rgba(0,0,0,.6);
}
.tb-modal-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:8px;
}
.tb-modal-head h2{margin:0;}
.tb-modal-close{
  width:34px !important;
  height:34px !important;
  min-height:auto !important;
  padding:0 !important;
  border-radius:50% !important;
  background:#333 !important;
  font-size:22px !important;
  line-height:1 !important;
}
.tb-section-form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px 10px;
}
.tb-section-form-grid label{
  margin:6px 0 3px;
  font-size:13px;
}
.tb-section-form-grid input,
.tb-section-form-grid select{
  padding:9px 10px;
  margin-top:3px;
  min-height:38px;
  font-size:14px;
}
.tb-section-shape-row{
  grid-column:1 / -1;
}
.tb-field-error-msg{
  display:none;
  color:#ff7777;
  font-size:12px;
  margin-top:5px;
}
.tb-shape-preview-label{
  margin-top:5px;
  color:#bbb;
  font-size:13px;
}
.tb-section-modal-actions{
  display:flex;
  gap:8px;
  margin-top:12px;
  flex-wrap:wrap;
}
.tb-section-modal-actions button{flex:1;}
.tb-section-props-box{
  margin-top:10px;
  display:grid;
  gap:7px;
  background:#141414;
  border:1px solid #333;
  border-radius:14px;
  padding:12px;
  font-size:12px;
}
.tb-section-props-box div{
  display:flex;
  justify-content:space-between;
  gap:10px;
  border-bottom:1px solid #262626;
  padding-bottom:6px;
}
.tb-section-props-box div:last-child{border-bottom:none;padding-bottom:0;}
.tb-section-props-box b{color:#fff;}
.tb-section-props-box span{color:#bbb;text-align:right;word-break:break-word;}
.tb-shape-modal-card{width:min(100%,460px);}
.tb-shape-catalog{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.tb-shape-option{
  background:#1b1b1b !important;
  border:1px solid #333 !important;
  color:#fff !important;
  border-radius:16px !important;
  padding:14px !important;
  min-height:92px !important;
  display:flex !important;
  flex-direction:column;
  gap:10px;
}
.tb-shape-option:hover{border-color:#f28bae !important;opacity:1 !important;}
.tb-shape-icon{
  display:block;
  margin:auto;
  background:#7D86B1;
  border:1px solid rgba(255,255,255,.72);
}
.tb-shape-icon-rectangle{width:64px;height:28px;}
.tb-shape-icon-vertical{width:30px;height:62px;}
.tb-layout-shape{
  position:absolute;
  transform-origin:center center;
  border-radius:0;
  background:var(--shape-color,#7D86B1);
  border:1.5px solid rgba(255,255,255,.72);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  font-weight:800;
  font-size:clamp(10px,2.2vw,13px);
  letter-spacing:.15px;
  text-shadow:0 1px 2px rgba(0,0,0,.5);
  box-shadow:none;
  overflow:visible;
  touch-action:none;
}
.tb-layout-shape span{
  pointer-events:none;
  max-width:94%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  display:flex;
  flex-direction:column;
  gap:1px;
  align-items:center;
  line-height:1.05;
}
.tb-layout-shape span b{
  font-size:1em;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
}
.tb-layout-shape span small{
  font-size:.78em;
  opacity:.9;
}
.tb-layout-shape-rectangle{clip-path:none;}
@media(max-width:600px){
  .tb-section-form-grid{grid-template-columns:1fr;}
  .tb-shape-catalog{grid-template-columns:1fr;}
  .tb-modal-card{padding:16px;border-radius:18px;}
  .tb-section-modal-actions{flex-direction:column;}
  .tb-layout-shape{font-size:11px;}
}

/* Sections V1.6 - editor refinements */
.admin-adjust-toolbar{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  align-items:center;
}
.admin-tool-btn{
  width:58px;
  min-height:54px !important;
  padding:6px 5px !important;
  border-radius:10px !important;
  background:#202020 !important;
  border:1px solid #3a3a3a !important;
  color:#ddd !important;
  display:flex !important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  font-size:12px !important;
  font-weight:700 !important;
  box-shadow:none !important;
}
.admin-tool-btn span{font-size:18px;line-height:1;}
.admin-tool-btn small{font-size:10px;line-height:1;color:#bbb;}
.admin-tool-btn:hover{border-color:#5a6f9f !important;background:#252b36 !important;opacity:1 !important;}
.admin-tool-btn.active{
  background:#263449 !important;
  border-color:#5d86ff !important;
  color:#fff !important;
  box-shadow:0 0 0 2px rgba(93,134,255,.13) !important;
}
.admin-tool-btn.active small{color:#dbe5ff;}
.tb-btn.danger{background:#9d2f2f !important;}
.tb-section-modal-head{align-items:flex-start;}
.tb-section-edit-bar{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  align-items:center;
  flex:1;
}
.tb-section-edit-select{
  width:auto;
  min-width:170px;
  margin-top:0;
  padding:8px 10px;
  font-size:13px;
}
.tb-layout-field{z-index:var(--field-z,10);}
.tb-layout-stage{z-index:var(--stage-z,20);}
.tb-layout-shape{z-index:100;}
.tb-layout-shape.selected{z-index:120;}
.tb-layout-field.selected{z-index:var(--field-z,10) !important;}
.tb-layout-stage.selected{z-index:var(--stage-z,20) !important;}
.tb-layout-glow{z-index:1;}
.admin-layout-data .single-props{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}
@media(max-width:600px){
  .admin-tool-btn{width:54px;min-height:50px !important;}
  .tb-section-edit-select{width:100%;}
}


/* Sections V1.7 refinements */
.tb-modal-backdrop{ overscroll-behavior:contain; }
.tb-modal-card{ overscroll-behavior:contain; }
.tb-layout-dragging .tb-editable-layout-object.selected::after{ opacity:.12 !important; }

/* Sections v1.8 - compact editor + shape catalog + 3 colors */
.admin-events-panel{
  padding:16px !important;
}
.admin-events-panel h2{font-size:20px;margin-bottom:4px;}
.admin-events-panel .tb-muted{font-size:13px;margin:0 0 8px;}
.admin-event-grid{
  gap:8px 10px !important;
  margin-top:10px !important;
}
.admin-event-grid label{
  margin:5px 0 3px !important;
  font-size:12px !important;
}
.admin-event-grid input,
.admin-event-grid select{
  min-height:38px !important;
  padding:8px 10px !important;
  font-size:14px !important;
}
.admin-event-actions{margin-top:12px !important;gap:8px !important;}
.admin-event-id-row{gap:8px !important;}
.admin-event-id-actions{gap:6px !important;}
@media(min-width:760px){
  .admin-event-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .admin-event-grid > div:nth-child(2),
  .admin-event-grid > div:nth-child(4),
  .admin-event-grid > div:nth-child(13){grid-column:auto;}
}
@media(max-width:700px){
  .admin-event-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .admin-event-grid > div:first-child,
  .admin-event-grid > div:nth-child(2),
  .admin-event-grid > div:nth-child(4),
  .admin-event-grid > div:nth-child(13){grid-column:1 / -1;}
  .admin-event-grid input,
  .admin-event-grid select{font-size:13px !important;}
}

.tb-section-color-row{grid-column:1 / -1;}
.tb-color-three-row{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
  align-items:end;
}
.tb-color-three-row small{
  display:block;
  color:#aaa;
  font-size:11px;
  margin:0 0 3px;
}
.tb-color-three-row select{
  width:100%;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  padding-left:7px !important;
  padding-right:7px !important;
}
.tb-section-form-grid{gap:7px 9px !important;}
.tb-section-form-grid input,
.tb-section-form-grid select{min-height:36px !important;padding:8px 9px !important;}
.tb-section-form-grid label{font-size:12px !important;margin:4px 0 2px !important;}
.tb-section-modal-card{padding:13px !important;}
.tb-section-modal-actions{margin-top:9px !important;}

.tb-shape-catalog{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:8px !important;
}
.tb-shape-option{
  min-height:88px !important;
  padding:10px !important;
  gap:7px !important;
}
.tb-shape-option b{font-size:12px;line-height:1.15;}
.tb-shape-icon{background:#7D86B1;}
.tb-shape-icon-rectangle{width:64px;height:28px;clip-path:none;}
.tb-shape-icon-vertical{width:30px;height:62px;clip-path:none;}
.tb-shape-icon-trap-north{width:64px;height:30px;clip-path:polygon(18% 0,82% 0,100% 100%,0 100%);}
.tb-shape-icon-trap-south{width:64px;height:30px;clip-path:polygon(0 0,100% 0,82% 100%,18% 100%);}
.tb-shape-icon-trap-east{width:34px;height:62px;clip-path:polygon(0 0,100% 18%,100% 82%,0 100%);}
.tb-shape-icon-trap-west{width:34px;height:62px;clip-path:polygon(100% 0,0 18%,0 82%,100% 100%);}
.tb-shape-icon-stand-horizontal{width:68px;height:30px;clip-path:polygon(12% 0,88% 0,100% 100%,0 100%);}
.tb-shape-icon-stand-vertical{width:34px;height:66px;clip-path:polygon(0 10%,100% 0,100% 100%,0 90%);}
.tb-shape-icon-corner-inner-left{width:48px;height:48px;clip-path:polygon(0 0,100% 0,72% 28%,72% 100%,0 100%);}
.tb-shape-icon-corner-inner-right{width:48px;height:48px;clip-path:polygon(0 0,100% 0,100% 100%,28% 100%,28% 28%);}
.tb-shape-icon-corner-outer-left{width:48px;height:48px;clip-path:polygon(0 0,72% 0,100% 28%,100% 100%,0 100%);}
.tb-shape-icon-corner-outer-right{width:48px;height:48px;clip-path:polygon(28% 0,100% 0,100% 100%,0 100%,0 28%);}
.tb-shape-icon-upper-level{width:68px;height:22px;clip-path:polygon(6% 0,94% 0,100% 100%,0 100%);}
.tb-shape-icon-palco{width:52px;height:24px;clip-path:polygon(8% 0,92% 0,92% 100%,8% 100%);}
.tb-shape-icon-vip{width:62px;height:28px;clip-path:polygon(0 0,100% 0,88% 100%,12% 100%);}

.tb-layout-shape-trapezoid_north{clip-path:polygon(18% 0,82% 0,100% 100%,0 100%);}
.tb-layout-shape-trapezoid_south{clip-path:polygon(0 0,100% 0,82% 100%,18% 100%);}
.tb-layout-shape-trapezoid_east{clip-path:polygon(0 0,100% 18%,100% 82%,0 100%);}
.tb-layout-shape-trapezoid_west{clip-path:polygon(100% 0,0 18%,0 82%,100% 100%);}
.tb-layout-shape-stand_horizontal{clip-path:polygon(12% 0,88% 0,100% 100%,0 100%);}
.tb-layout-shape-stand_vertical{clip-path:polygon(0 10%,100% 0,100% 100%,0 90%);}
.tb-layout-shape-corner_inner_left{clip-path:polygon(0 0,100% 0,72% 28%,72% 100%,0 100%);}
.tb-layout-shape-corner_inner_right{clip-path:polygon(0 0,100% 0,100% 100%,28% 100%,28% 28%);}
.tb-layout-shape-corner_outer_left{clip-path:polygon(0 0,72% 0,100% 28%,100% 100%,0 100%);}
.tb-layout-shape-corner_outer_right{clip-path:polygon(28% 0,100% 0,100% 100%,0 100%,0 28%);}
.tb-layout-shape-upper_level{clip-path:polygon(6% 0,94% 0,100% 100%,0 100%);}
.tb-layout-shape-palco{clip-path:polygon(8% 0,92% 0,92% 100%,8% 100%);}
.tb-layout-shape-vip{clip-path:polygon(0 0,100% 0,88% 100%,12% 100%);}
@media(max-width:600px){
  .tb-section-form-grid{grid-template-columns:1fr !important;}
  .tb-color-three-row{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
  .tb-shape-catalog{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
}


/* v1.8.1 - visual fixes for non-rectangular shapes
   Keep handles/selection outside the clipped shape by drawing the real
   section face in ::before. The parent remains unclipped. */
.tb-layout-shape{
  background:transparent !important;
  border:0 !important;
  clip-path:none !important;
  overflow:visible !important;
}
.tb-layout-shape::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:var(--tb-shape-bg,var(--shape-color,#7D86B1));
  border:1.5px solid rgba(255,255,255,.72);
  box-sizing:border-box;
  clip-path:none;
}
.tb-layout-shape span{
  position:relative;
  z-index:4;
}
.tb-layout-shape-rectangle::before,
.tb-layout-shape-rectangle_vertical::before{clip-path:none;}
.tb-layout-shape-trapezoid_north::before{clip-path:polygon(18% 0,82% 0,100% 100%,0 100%);}
.tb-layout-shape-trapezoid_south::before{clip-path:polygon(0 0,100% 0,82% 100%,18% 100%);}
.tb-layout-shape-trapezoid_east::before{clip-path:polygon(0 0,100% 18%,100% 82%,0 100%);}
.tb-layout-shape-trapezoid_west::before{clip-path:polygon(100% 0,0 18%,0 82%,100% 100%);}
.tb-layout-shape-stand_horizontal::before{clip-path:polygon(12% 0,88% 0,100% 100%,0 100%);}
.tb-layout-shape-stand_vertical::before{clip-path:polygon(0 10%,100% 0,100% 100%,0 90%);}
.tb-layout-shape-corner_inner_left::before{clip-path:polygon(0 0,100% 0,72% 28%,72% 100%,0 100%);}
.tb-layout-shape-corner_inner_right::before{clip-path:polygon(0 0,100% 0,100% 100%,28% 100%,28% 28%);}
.tb-layout-shape-corner_outer_left::before{clip-path:polygon(0 0,72% 0,100% 28%,100% 100%,0 100%);}
.tb-layout-shape-corner_outer_right::before{clip-path:polygon(28% 0,100% 0,100% 100%,0 100%,0 28%);}
.tb-layout-shape-upper_level::before{clip-path:polygon(6% 0,94% 0,100% 100%,0 100%);}
.tb-layout-shape-palco::before{clip-path:polygon(8% 0,92% 0,92% 100%,8% 100%);}
.tb-layout-shape-vip::before{clip-path:polygon(0 0,100% 0,88% 100%,12% 100%);}

/* Make the selection feedback a clean rectangular tool overlay, independent
   from the actual shape geometry. */
.tb-layout-shape.selected::after{
  clip-path:none !important;
  border-radius:4px !important;
}

/* v1.9 Fase 1 - Objetos del estadio (catálogo CSS, sin upload todavía) */
.tb-object-modal-card{width:min(100%,520px);}
.tb-object-section-title{
  color:#fff;
  font-weight:900;
  font-size:14px;
  margin:4px 0 10px;
  letter-spacing:.2px;
}
.tb-object-catalog{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}
.tb-object-option{
  background:#1b1b1b !important;
  border:1px solid #333 !important;
  color:#fff !important;
  border-radius:15px !important;
  padding:11px !important;
  min-height:94px !important;
  display:flex !important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  box-shadow:none !important;
}
.tb-object-option:hover{border-color:#5d86ff !important;background:#202633 !important;opacity:1 !important;}
.tb-object-option b{font-size:12px;line-height:1.15;}
.tb-object-separator{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:10px;
  margin:16px 0 8px;
  color:#cfcfcf;
  font-size:13px;
  font-weight:900;
}
.tb-object-separator span{height:1px;background:linear-gradient(90deg,transparent,#444,transparent);}
.tb-object-custom-note{
  border:1px dashed #3a3a3a;
  border-radius:14px;
  color:#aaa;
  padding:12px;
  font-size:13px;
  text-align:center;
  background:#181818;
}
.tb-object-icon{
  position:relative;
  width:66px;
  height:50px;
  display:block;
  margin:auto;
}
.tb-layout-object{
  position:absolute;
  transform-origin:center center;
  background:transparent;
  border:1px dashed rgba(255,255,255,.28);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  touch-action:none;
  overflow:visible;
  z-index:70;
}
.tb-layout-object.selected{z-index:125;}
.tb-object-face{
  position:absolute;
  inset:0;
  display:block;
  pointer-events:none;
}
/* Shared object drawing helpers */
.tb-object-face i,
.tb-object-icon::before,
.tb-object-icon::after,
.tb-object-icon i{position:absolute;display:block;content:"";}
/* Tree */
.tb-object-icon-tree::before,.tb-object-face-tree .leaf{background:#2ecc71;border:1px solid rgba(255,255,255,.45);border-radius:50%;}
.tb-object-icon-tree::before{left:16px;top:4px;width:34px;height:34px;box-shadow:-12px 8px 0 #27ae60,12px 8px 0 #27ae60;}
.tb-object-icon-tree::after{left:30px;top:34px;width:8px;height:18px;background:#8b5a2b;border-radius:2px;}
.tb-object-face-tree .leaf{width:42%;height:42%;}
.tb-object-face-tree .l1{left:28%;top:5%;}.tb-object-face-tree .l2{left:12%;top:25%;background:#27ae60;}.tb-object-face-tree .l3{right:12%;top:25%;background:#27ae60;}
.tb-object-face-tree .trunk{left:45%;bottom:5%;width:10%;height:38%;background:#8b5a2b;border-radius:3px;}
/* Palm */
.tb-object-icon-palm::before{left:31px;top:24px;width:8px;height:24px;background:#8b5a2b;border-radius:6px;transform:skewX(-8deg);}
.tb-object-icon-palm::after{left:18px;top:4px;width:34px;height:24px;background:#2ecc71;clip-path:polygon(50% 100%,0 10%,35% 40%,50% 0,65% 40%,100% 10%);}
.tb-object-face-palm .palm-trunk{left:46%;top:34%;width:9%;height:60%;background:#8b5a2b;border-radius:8px;transform:skewX(-8deg);}
.tb-object-face-palm .palm-leaf{background:#2ecc71;top:3%;left:22%;width:58%;height:38%;clip-path:polygon(50% 100%,0 10%,35% 38%,50% 0,65% 38%,100% 10%);}
.tb-object-face-palm .b{transform:rotate(-34deg);}.tb-object-face-palm .c{transform:rotate(34deg);}
/* Light tower */
.tb-object-icon-light::before{left:22px;top:4px;width:24px;height:12px;background:#f1c40f;border-radius:12px;box-shadow:0 0 14px rgba(241,196,15,.8);}
.tb-object-icon-light::after{left:32px;top:15px;width:4px;height:34px;background:#cfd8dc;border-radius:2px;}
.tb-object-face-light_tower .light-head{left:25%;top:0;width:50%;height:18%;background:#f1c40f;border-radius:30px;box-shadow:0 0 20px rgba(241,196,15,.75);}
.tb-object-face-light_tower .light-pole{left:47%;top:16%;width:6%;height:72%;background:#cfd8dc;border-radius:3px;}
.tb-object-face-light_tower .light-base{left:31%;bottom:0;width:38%;height:9%;background:#7f8c8d;border-radius:4px;}
/* Road */
.tb-object-icon-road,.tb-object-face-road{background:#2e3138;border-radius:6px;border:1px solid rgba(255,255,255,.22);}
.tb-object-icon-road::before,.tb-object-face-road .road-line{left:8%;right:8%;top:47%;height:7%;background:repeating-linear-gradient(90deg,#f1c40f 0 14px,transparent 14px 24px);}
/* Parking */
.tb-object-icon-parking,.tb-object-face-parking{background:#263449;border:1px solid #5d86ff;border-radius:8px;}
.tb-object-icon-parking::before{content:"P";left:0;right:0;top:7px;text-align:center;color:#fff;font:bold 30px Arial;}
.tb-object-face-parking b{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:bold clamp(18px,4vw,36px) Arial;color:#fff;}
/* Entrance */
.tb-object-icon-entrance::before{left:14px;top:10px;width:38px;height:30px;border:5px solid #d7dde8;border-bottom:0;border-radius:18px 18px 0 0;}
.tb-object-icon-entrance::after{left:7px;top:38px;width:52px;height:7px;background:#d7dde8;border-radius:4px;}
.tb-object-face-entrance .gate-post{top:25%;width:11%;height:62%;background:#d7dde8;border-radius:4px;}
.tb-object-face-entrance .left{left:18%;}.tb-object-face-entrance .right{right:18%;}
.tb-object-face-entrance .gate-top{left:14%;right:14%;top:12%;height:18%;border:5px solid #d7dde8;border-bottom:0;border-radius:20px 20px 0 0;}
/* House */
.tb-object-icon-house::before{left:14px;top:4px;width:38px;height:24px;background:#e74c3c;clip-path:polygon(50% 0,100% 100%,0 100%);}
.tb-object-icon-house::after{left:18px;top:25px;width:30px;height:22px;background:#f5d7b5;border:1px solid rgba(255,255,255,.4);}
.tb-object-face-house .roof{left:10%;top:0;width:80%;height:42%;background:#e74c3c;clip-path:polygon(50% 0,100% 100%,0 100%);}
.tb-object-face-house .home-body{left:18%;top:39%;width:64%;height:55%;background:#f5d7b5;border:1px solid rgba(255,255,255,.45);}
.tb-object-face-house .door{left:45%;bottom:6%;width:13%;height:28%;background:#8b5a2b;}
/* Building */
.tb-object-icon-building,.tb-object-face-building .tower{background:#6d7788;border:1px solid rgba(255,255,255,.35);border-radius:4px;}
.tb-object-icon-building{width:44px;height:52px;}
.tb-object-icon-building::before{left:8px;top:9px;width:8px;height:8px;background:#dbe5ff;box-shadow:18px 0 #dbe5ff,0 16px #dbe5ff,18px 16px #dbe5ff;}
.tb-object-face-building .tower{inset:0;}
.tb-object-face-building .win{width:16%;height:12%;background:#dbe5ff;border-radius:2px;}
.tb-object-face-building .w1{left:22%;top:20%;}.tb-object-face-building .w2{right:22%;top:20%;}.tb-object-face-building .w3{left:22%;top:50%;}.tb-object-face-building .w4{right:22%;top:50%;}
/* Wall */
.tb-object-icon-wall,.tb-object-face-wall{background:#8d6e63;border:1px solid rgba(255,255,255,.35);border-radius:4px;}
.tb-object-icon-wall::before,.tb-object-face-wall::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 14px,rgba(0,0,0,.22) 14px 16px),repeating-linear-gradient(0deg,transparent 0 14px,rgba(0,0,0,.18) 14px 16px);}
/* Flag */
.tb-object-icon-flag::before{left:20px;top:6px;width:5px;height:42px;background:#d7dde8;border-radius:3px;}
.tb-object-icon-flag::after{left:25px;top:7px;width:30px;height:19px;background:linear-gradient(180deg,#3498db 0 33%,#fff 33% 66%,#e74c3c 66%);clip-path:polygon(0 0,100% 12%,82% 55%,100% 100%,0 88%);}
.tb-object-face-flag .flag-pole{left:22%;top:4%;width:8%;height:90%;background:#d7dde8;border-radius:4px;}
.tb-object-face-flag .flag-cloth{left:30%;top:8%;width:56%;height:35%;background:linear-gradient(180deg,#3498db 0 33%,#fff 33% 66%,#e74c3c 66%);clip-path:polygon(0 0,100% 12%,82% 55%,100% 100%,0 88%);}
@media(max-width:600px){
  .tb-object-catalog{grid-template-columns:repeat(2,minmax(0,1fr));}
  .tb-object-option{min-height:86px !important;padding:9px !important;}
}

/* v1.9.1 custom PNG objects */
.tb-custom-upload-row{
  display:flex;
  align-items:center;
  gap:10px;
  margin:10px 0 12px;
  flex-wrap:wrap;
}
.tb-upload-object-btn{min-width:92px;}
.tb-custom-object-catalog{margin-top:6px;}
.tb-custom-object-option img{
  width:66px;
  height:50px;
  object-fit:contain;
  display:block;
  margin:auto;
  border-radius:8px;
  background:#101010;
  border:1px solid rgba(255,255,255,.08);
}
.tb-object-face-custom_image{display:flex;align-items:center;justify-content:center;overflow:visible;}
.tb-object-face-custom_image img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  pointer-events:none;
  user-select:none;
}

/* TicketBlossom v1.9.3 - menu + compact confirmations + smarter gestures */
.tb-layout-map{
  touch-action:auto !important;
}
.tb-layout-dragging .tb-layout-map,
.tb-layout-dragging .tb-layout-map *{
  touch-action:none !important;
}
.tb-adjust-handle,
.tb-move-handle{
  touch-action:none !important;
}
.tb-quick-menu{
  position:absolute;
  z-index:1200;
  background:#1f1f1f;
  border:1px solid rgba(255,255,255,.16);
  border-radius:14px;
  padding:8px;
  min-width:168px;
  box-shadow:0 18px 45px rgba(0,0,0,.45);
}
.tb-quick-menu-title{
  font-size:12px;
  font-weight:900;
  color:#eee;
  padding:2px 30px 6px 6px;
}
.tb-quick-menu button:not(.tb-quick-menu-close){
  width:100%;
  display:flex;
  align-items:center;
  gap:8px;
  padding:7px 8px;
  border:0;
  border-radius:11px;
  background:transparent;
  color:#eee;
  font-size:13px;
  font-weight:800;
  text-align:left;
  cursor:pointer;
}
.tb-quick-menu button:not(.tb-quick-menu-close):hover{
  background:rgba(255,255,255,.08);
}
.tb-quick-menu button.disabled{
  opacity:.58;
  cursor:default;
}
.tb-quick-menu button.disabled:hover{
  background:transparent;
}
.tb-quick-menu-close{
  position:absolute;
  top:5px;
  right:6px;
  width:24px;
  height:24px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.06);
  color:#fff;
  font-size:17px;
  font-weight:900;
  line-height:18px;
  cursor:pointer;
}
.tb-quick-menu-close:hover{
  background:rgba(255,80,110,.22);
  border-color:rgba(255,80,110,.45);
}
.tb-quick-sep{
  height:1px;
  margin:5px 4px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);
}
.tb-mini-confirm-backdrop{
  position:fixed;
  inset:0;
  z-index:10020;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,.44);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
  padding:18px;
}
.tb-mini-confirm-card{
  position:relative;
  width:min(260px,92vw);
  border-radius:16px;
  border:1px solid rgba(255,255,255,.15);
  background:#1f1f1f;
  box-shadow:0 18px 45px rgba(0,0,0,.5);
  padding:16px 14px 13px;
}
.tb-mini-confirm-x{
  position:absolute;
  top:6px;
  right:7px;
  width:24px;
  height:24px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.06);
  color:#fff;
  font-weight:900;
  cursor:pointer;
}
.tb-mini-confirm-text{
  padding:4px 28px 12px 4px;
  color:#fff;
  font-weight:900;
  font-size:14px;
}
.tb-mini-confirm-actions{
  display:flex;
  gap:8px;
  justify-content:flex-end;
}
.tb-mini-confirm-actions .tb-btn{
  width:auto !important;
  min-width:72px;
  padding:8px 12px !important;
  font-size:13px !important;
}
@media(max-width:600px){
  .tb-quick-menu{min-width:160px;}
  .tb-mini-confirm-card{width:min(240px,90vw);}
}

/* v1.9.4 visual polish: compact menu, CSS icons, soft popups */
.tb-gear-menu-btn{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  gap:6px;
}
.tb-gear-menu-btn small{font-size:12px;font-weight:900;line-height:1;}
.tb-menu-gear-icon,
.tb-menu-gear-mini{
  position:relative;
  display:inline-block;
  width:16px;
  height:16px;
  border:2px solid rgba(235,235,235,.9);
  border-radius:50%;
  box-sizing:border-box;
  flex:0 0 auto;
}
.tb-menu-gear-icon::before,
.tb-menu-gear-mini::before{
  content:"";
  position:absolute;
  inset:4px;
  border-radius:50%;
  background:rgba(235,235,235,.9);
}
.tb-menu-gear-icon::after,
.tb-menu-gear-mini::after{
  content:"";
  position:absolute;
  left:50%;
  top:-4px;
  width:3px;
  height:22px;
  background:rgba(235,235,235,.88);
  transform:translateX(-50%);
  box-shadow:6px 0 0 rgba(235,235,235,.88),-6px 0 0 rgba(235,235,235,.88);
  opacity:.55;
}
.tb-menu-gear-mini{width:13px;height:13px;border-width:1.5px;}
.tb-menu-gear-mini::before{inset:3.5px;}
.tb-menu-gear-mini::after{height:18px;top:-3.5px;width:2px;box-shadow:5px 0 0 rgba(235,235,235,.88),-5px 0 0 rgba(235,235,235,.88);}
.tb-quick-menu{
  transform:scale(.96);
  opacity:0;
  transition:opacity .14s ease, transform .14s ease;
  transform-origin:top left;
}
.tb-quick-menu.is-open{
  transform:scale(1);
  opacity:1;
}
.tb-quick-menu-title{
  display:flex;
  align-items:center;
  gap:7px;
  min-height:18px;
}
.tb-quick-menu-close{
  width:18px !important;
  height:18px !important;
  top:7px !important;
  right:8px !important;
  border:none !important;
  border-radius:5px !important;
  background:transparent !important;
  color:rgba(255,255,255,.72) !important;
  font-size:16px !important;
  line-height:16px !important;
  padding:0 !important;
}
.tb-quick-menu-close:hover{
  color:#fff !important;
  background:rgba(255,255,255,.08) !important;
}
.tb-menu-icon{
  position:relative;
  display:inline-block;
  width:24px;
  height:22px;
  flex:0 0 24px;
  opacity:.95;
}
.tb-menu-icon-section::before,
.tb-menu-icon-section::after{
  content:"";
  position:absolute;
  left:4px;
  bottom:4px;
  width:16px;
  height:4px;
  border-radius:2px;
  background:linear-gradient(90deg,#3b82f6,#f8fafc,#ef4444);
  box-shadow:0 -6px 0 -1px rgba(255,255,255,.82),0 -11px 0 -2px rgba(255,255,255,.48);
  transform:skewX(-14deg);
}
.tb-menu-icon-section::after{
  left:7px;
  bottom:14px;
  width:10px;
  height:2px;
  background:rgba(255,255,255,.72);
  box-shadow:none;
}
.tb-menu-icon-object::before{
  content:"";
  position:absolute;
  left:5px;
  top:4px;
  width:14px;
  height:14px;
  border-radius:5px 5px 7px 7px;
  background:linear-gradient(135deg,#9ca3af,#f8fafc);
  box-shadow:0 5px 0 rgba(59,130,246,.55);
  transform:rotate(-8deg);
}
.tb-menu-icon-object::after{
  content:"";
  position:absolute;
  left:9px;
  top:1px;
  width:7px;
  height:7px;
  border-radius:50%;
  background:rgba(255,255,255,.88);
}
.tb-menu-icon-reset::before{
  content:"";
  position:absolute;
  left:5px;
  top:4px;
  width:13px;
  height:13px;
  border:2px solid rgba(255,255,255,.85);
  border-right-color:transparent;
  border-radius:50%;
}
.tb-menu-icon-reset::after{
  content:"";
  position:absolute;
  right:4px;
  top:3px;
  width:0;
  height:0;
  border-left:6px solid rgba(255,255,255,.85);
  border-top:4px solid transparent;
  border-bottom:4px solid transparent;
  transform:rotate(-20deg);
}
.tb-menu-icon-scenario::before{
  content:"";
  position:absolute;
  left:4px;
  top:3px;
  width:16px;
  height:16px;
  border-radius:4px;
  background:#2f3946;
  border:1px solid rgba(255,255,255,.55);
}
.tb-menu-icon-scenario::after{
  content:"";
  position:absolute;
  left:8px;
  top:5px;
  width:8px;
  height:5px;
  border-radius:1px;
  background:rgba(255,255,255,.82);
  box-shadow:0 8px 0 rgba(59,130,246,.58);
}
.tb-mini-confirm-backdrop{
  opacity:0;
  transition:opacity .14s ease;
}
.tb-mini-confirm-backdrop.is-open{opacity:1;}
.tb-mini-confirm-card{
  transform:scale(.96);
  transition:transform .14s ease;
}
.tb-mini-confirm-backdrop.is-open .tb-mini-confirm-card{transform:scale(1);}
.tb-mini-confirm-x{display:none !important;}
.tb-mini-confirm-text{
  padding:3px 4px 12px 4px !important;
}


/* TicketBlossom v1.9.5 - menu icon correction to match approved mockup */
/* Restore clear gear icon */
.tb-menu-gear-icon,
.tb-menu-gear-mini{
  position:relative !important;
  display:inline-block !important;
  width:18px !important;
  height:18px !important;
  border:0 !important;
  border-radius:50% !important;
  background:conic-gradient(
    from 0deg,
    transparent 0 8deg,
    rgba(235,235,235,.92) 8deg 22deg,
    transparent 22deg 38deg,
    rgba(235,235,235,.92) 38deg 52deg,
    transparent 52deg 68deg,
    rgba(235,235,235,.92) 68deg 82deg,
    transparent 82deg 98deg,
    rgba(235,235,235,.92) 98deg 112deg,
    transparent 112deg 128deg,
    rgba(235,235,235,.92) 128deg 142deg,
    transparent 142deg 158deg,
    rgba(235,235,235,.92) 158deg 172deg,
    transparent 172deg 188deg,
    rgba(235,235,235,.92) 188deg 202deg,
    transparent 202deg 218deg,
    rgba(235,235,235,.92) 218deg 232deg,
    transparent 232deg 248deg,
    rgba(235,235,235,.92) 248deg 262deg,
    transparent 262deg 278deg,
    rgba(235,235,235,.92) 278deg 292deg,
    transparent 292deg 308deg,
    rgba(235,235,235,.92) 308deg 322deg,
    transparent 322deg 338deg,
    rgba(235,235,235,.92) 338deg 352deg,
    transparent 352deg 360deg
  ) !important;
  box-sizing:border-box !important;
  flex:0 0 auto !important;
}
.tb-menu-gear-icon::before,
.tb-menu-gear-mini::before{
  content:"" !important;
  position:absolute !important;
  inset:3px !important;
  border-radius:50% !important;
  background:#1f1f1f !important;
  border:3px solid rgba(235,235,235,.92) !important;
}
.tb-menu-gear-icon::after,
.tb-menu-gear-mini::after{
  content:"" !important;
  position:absolute !important;
  inset:7px !important;
  border-radius:50% !important;
  background:#1f1f1f !important;
  box-shadow:none !important;
  opacity:1 !important;
  width:auto !important;
  height:auto !important;
  left:7px !important;
  top:7px !important;
  transform:none !important;
}
.tb-menu-gear-mini{
  width:18px !important;
  height:18px !important;
}
.tb-menu-gear-mini::before{inset:3px !important;}
.tb-menu-gear-mini::after{inset:7px !important;left:7px !important;top:7px !important;}

/* Make quick menu close simple and compact */
.tb-quick-menu-close{
  width:18px !important;
  height:18px !important;
  top:8px !important;
  right:10px !important;
  border:0 !important;
  border-radius:4px !important;
  background:transparent !important;
  color:rgba(255,255,255,.78) !important;
  font-size:20px !important;
  line-height:16px !important;
  padding:0 !important;
}
.tb-quick-menu-close:hover{
  color:#fff !important;
  background:rgba(255,255,255,.08) !important;
}

/* Larger, clearer app-style menu icons */
.tb-menu-icon{
  position:relative !important;
  display:inline-block !important;
  width:34px !important;
  height:32px !important;
  flex:0 0 34px !important;
  opacity:1 !important;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.45));
}

/* Section = green gradería / levels */
.tb-menu-icon-section::before{
  content:"" !important;
  position:absolute !important;
  left:4px !important;
  bottom:3px !important;
  width:10px !important;
  height:10px !important;
  border-radius:1px !important;
  background:#52c653 !important;
  box-shadow:
    10px -10px 0 #52c653,
    20px -20px 0 #52c653,
    10px 0 0 #52c653,
    20px -10px 0 #52c653 !important;
  transform:none !important;
}
.tb-menu-icon-section::after{
  content:"" !important;
  position:absolute !important;
  left:4px !important;
  bottom:2px !important;
  width:30px !important;
  height:2px !important;
  border-radius:3px !important;
  background:rgba(82,198,83,.45) !important;
  box-shadow:none !important;
  transform:none !important;
}

/* Object = blue isometric cube */
.tb-menu-icon-object::before{
  content:"" !important;
  position:absolute !important;
  left:8px !important;
  top:8px !important;
  width:17px !important;
  height:17px !important;
  border-radius:2px !important;
  background:linear-gradient(135deg,#60a5fa 0 50%,#3b82f6 50% 100%) !important;
  transform:rotate(45deg) skew(-8deg,-8deg) !important;
  box-shadow:9px 7px 0 #2563eb !important;
}
.tb-menu-icon-object::after{
  content:"" !important;
  position:absolute !important;
  left:17px !important;
  top:11px !important;
  width:16px !important;
  height:17px !important;
  border-radius:2px !important;
  background:#1d4ed8 !important;
  transform:skewY(30deg) !important;
  opacity:.95 !important;
}

/* Reset = orange circular arrow */
.tb-menu-icon-reset::before{
  content:"" !important;
  position:absolute !important;
  left:5px !important;
  top:5px !important;
  width:22px !important;
  height:22px !important;
  border:5px solid #f59e0b !important;
  border-right-color:transparent !important;
  border-radius:50% !important;
  transform:rotate(-28deg) !important;
}
.tb-menu-icon-reset::after{
  content:"" !important;
  position:absolute !important;
  left:4px !important;
  top:4px !important;
  width:0 !important;
  height:0 !important;
  border-right:9px solid #f59e0b !important;
  border-top:7px solid transparent !important;
  border-bottom:7px solid transparent !important;
  border-left:0 !important;
  transform:rotate(-12deg) !important;
}

/* Scenario = purple floppy disk */
.tb-menu-icon-scenario::before{
  content:"" !important;
  position:absolute !important;
  left:6px !important;
  top:4px !important;
  width:24px !important;
  height:24px !important;
  border-radius:4px !important;
  background:#a855f7 !important;
  border:0 !important;
  box-shadow:inset 0 -5px 0 rgba(0,0,0,.22) !important;
}
.tb-menu-icon-scenario::after{
  content:"" !important;
  position:absolute !important;
  left:11px !important;
  top:7px !important;
  width:13px !important;
  height:7px !important;
  border-radius:1px !important;
  background:#1f1f1f !important;
  box-shadow:
    0 12px 0 #1f1f1f,
    13px 0 0 rgba(255,255,255,.28) !important;
}

/* Roomier rows for the larger icons without making the menu huge */
.tb-quick-menu button:not(.tb-quick-menu-close){
  gap:12px !important;
  padding:8px 10px !important;
  font-size:15px !important;
}
.tb-quick-menu{
  min-width:190px !important;
}

/* TicketBlossom v1.9.6 - custom object cleanup + menu polish */
.tb-quick-menu-title{
  font-family:inherit !important;
  font-weight:900 !important;
  letter-spacing:.01em !important;
}

/* Reset icon: cleaner circular arrow */
.tb-menu-icon-reset::before{
  border-color:#f59e0b !important;
  border-right-color:transparent !important;
  box-shadow:0 0 0 1px rgba(245,158,11,.15) !important;
}
.tb-menu-icon-reset::after{
  border-right-color:#f59e0b !important;
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.35)) !important;
}

/* Scenario: classic pretty floppy, not purple */
.tb-menu-icon-scenario::before{
  content:"" !important;
  position:absolute !important;
  left:5px !important;
  top:4px !important;
  width:25px !important;
  height:24px !important;
  border-radius:4px !important;
  background:linear-gradient(180deg,#3f4854 0%,#252c34 100%) !important;
  border:1px solid rgba(255,255,255,.38) !important;
  box-shadow:inset 0 -5px 0 rgba(0,0,0,.28), 0 2px 4px rgba(0,0,0,.35) !important;
}
.tb-menu-icon-scenario::after{
  content:"" !important;
  position:absolute !important;
  left:9px !important;
  top:7px !important;
  width:12px !important;
  height:7px !important;
  border-radius:1px !important;
  background:#e5e7eb !important;
  box-shadow:13px 0 0 #7aa7ff, 2px 13px 0 #111827, 11px 13px 0 #111827 !important;
}

.tb-custom-object-option{
  position:relative !important;
  overflow:visible !important;
}
.tb-custom-object-delete{
  position:absolute;
  top:4px;
  right:5px;
  width:19px;
  height:19px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  background:rgba(239,68,68,.88);
  border:1px solid rgba(255,255,255,.35);
  font-weight:1000;
  font-size:15px;
  line-height:1;
  z-index:5;
  box-shadow:0 2px 6px rgba(0,0,0,.35);
}
.tb-custom-object-delete:hover,
.tb-custom-object-delete:active{
  background:#ef4444;
  transform:scale(1.06);
}
.tb-custom-object-option img{
  max-width:66px;
  max-height:50px;
}

/* TicketBlossom v1.9.7 - Flip H + Curva superior + scenario icon final polish */
.admin-adjust-toolbar .admin-tool-btn[data-tool="flipH"] span{
  font-size:22px;
}
.admin-adjust-toolbar .admin-tool-btn[data-tool="curve"] span{
  font-size:24px;
  transform:translateY(-1px);
}

/* Flip lives on the visual face, not the selection box. */
.tb-layout-shape::before,
.tb-object-face{
  transform:translateY(var(--tb-curve-lift,0%)) scaleX(var(--tb-flip-x,1));
  transform-origin:center center;
  transition:border-radius .12s ease, transform .12s ease;
}

/* Curva superior: simple, stable arch effect. It keeps the object as a square hitbox
   but gives the upper edge a soft stadium-style bend. */
.tb-layout-shape.is-curved-top::before,
.tb-layout-object.is-curved-top .tb-object-face{
  border-radius:50% 50% 8px 8px / calc(8% + var(--tb-curve-top-pct,0%)) calc(8% + var(--tb-curve-top-pct,0%)) 8px 8px;
}
.tb-layout-shape.is-curved-top::before{
  box-shadow:0 -1px 0 rgba(255,255,255,.12), inset 0 1px 0 rgba(255,255,255,.18);
}
.tb-layout-object.is-curved-top .tb-object-face-custom_image img{
  border-radius:50% 50% 8px 8px / calc(8% + var(--tb-curve-top-pct,0%)) calc(8% + var(--tb-curve-top-pct,0%)) 8px 8px;
}

.tb-curve-handle{
  left:50%;
  top:-26px;
  transform:translateX(-50%);
  background:rgba(20,24,34,.62);
  color:#fff;
  font-size:26px;
  border-color:rgba(255,255,255,.78);
}
.tb-curve-handle:hover{transform:translateX(-50%) scale(1.05);}
.tb-curve-handle:active{transform:translateX(-50%) scale(.96);}
@media(max-width:600px){
  .tb-curve-handle{top:-22px;}
}

/* Scenario icon: retro, readable, not purple. */
.tb-menu-icon-scenario::before{
  content:"" !important;
  position:absolute !important;
  left:5px !important;
  top:4px !important;
  width:25px !important;
  height:24px !important;
  border-radius:5px !important;
  background:linear-gradient(180deg,#5d6570 0%,#343b44 42%,#20262d 100%) !important;
  border:1px solid rgba(255,255,255,.45) !important;
  box-shadow:inset 0 -5px 0 rgba(0,0,0,.32), inset 0 1px 0 rgba(255,255,255,.26), 0 2px 4px rgba(0,0,0,.35) !important;
}
.tb-menu-icon-scenario::after{
  content:"" !important;
  position:absolute !important;
  left:9px !important;
  top:7px !important;
  width:12px !important;
  height:7px !important;
  border-radius:1px !important;
  background:#e5e7eb !important;
  box-shadow:
    13px 0 0 #6f8fcf,
    1px 12px 0 #f1f5f9,
    1px 15px 0 #d1d5db,
    1px 18px 0 #f1f5f9 !important;
}


/* TicketBlossom v1.9.8 - fixed square editor + simple menu emojis */
.tb-layout-map{
  width:min(100%, 820px) !important;
  max-width:820px !important;
  aspect-ratio:1/1 !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
@media(max-width:600px){
  .tb-layout-map{
    width:100% !important;
    max-width:100% !important;
    border-radius:18px !important;
  }
}
.tb-quick-menu{
  position:fixed !important;
  min-width:168px !important;
  width:auto !important;
  transform-origin:top left !important;
}
.tb-gear-menu-btn{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:5px !important;
}
.tb-menu-emoji{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:24px !important;
  height:24px !important;
  flex:0 0 24px !important;
  font-size:19px !important;
  line-height:1 !important;
  filter:none !important;
}
.tb-menu-main-emoji{
  width:18px !important;
  height:18px !important;
  flex-basis:18px !important;
  font-size:17px !important;
}
.tb-quick-menu-title{
  font-family:inherit !important;
  display:flex !important;
  align-items:center !important;
  gap:7px !important;
  padding:2px 30px 6px 6px !important;
}
.tb-quick-menu button:not(.tb-quick-menu-close){
  gap:8px !important;
  padding:7px 9px !important;
  font-size:14px !important;
  font-weight:850 !important;
}
/* Disable older CSS icon drawings when menu uses emojis */
.tb-menu-emoji::before,
.tb-menu-emoji::after{
  content:none !important;
  display:none !important;
}

/* TicketBlossom v1.9.9 - final 1.x productivity polish */
@media (min-width: 701px){
  .tb-layout-map{
    width:min(100%, 680px) !important;
    max-width:680px !important;
  }
}
@media (min-width: 1100px){
  .tb-layout-map{
    width:min(100%, 700px) !important;
    max-width:700px !important;
  }
}
.tb-undo-btn{
  min-height:54px !important;
  padding:7px 10px !important;
  display:inline-flex !important;
  flex-direction:column;
  align-items:center !important;
  justify-content:center !important;
  gap:2px !important;
  border-radius:10px !important;
}
.tb-undo-btn span{font-size:20px;line-height:1;font-weight:900;}
.tb-undo-btn small{font-size:10px;line-height:1;font-weight:900;}
.tb-undo-btn:disabled,
.tb-undo-btn.is-disabled{
  opacity:.42 !important;
  filter:grayscale(1);
  cursor:not-allowed !important;
}
.admin-adjust-toolbar .admin-tool-btn[data-tool="copy"] span{
  font-size:20px;
}
@media (max-width: 600px){
  .tb-undo-btn{
    min-height:50px !important;
    padding:6px 9px !important;
  }
}

/* TicketBlossom v1.9.9.1 - final hotfix: global tools, copy guard tooltip, Flip V */
.admin-section-tools{
  align-items:flex-start !important;
}
.admin-global-tools{
  display:flex;
  gap:8px;
  align-items:center;
  justify-content:flex-start;
  flex-wrap:wrap;
  width:100%;
  margin-bottom:8px;
}
.admin-global-tools .admin-small-btn{
  min-width:64px !important;
  min-height:50px !important;
  padding:7px 10px !important;
  border-radius:10px !important;
  display:inline-flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:2px !important;
}
.admin-global-tools .admin-small-btn span{
  font-size:19px !important;
  line-height:1 !important;
}
.admin-global-tools .admin-small-btn small{
  font-size:10px !important;
  line-height:1 !important;
  font-weight:900 !important;
}
.admin-adjust-toolbar .admin-tool-btn[data-tool="copy"] span{
  font-size:22px !important;
  line-height:1 !important;
  font-weight:900 !important;
}
.admin-adjust-toolbar .admin-tool-btn[data-tool="flipV"] span{
  font-size:22px !important;
  line-height:1 !important;
}
.tb-layout-shape::before,
.tb-object-face{
  transform:translateY(var(--tb-curve-lift,0%)) scaleX(var(--tb-flip-x,1)) scaleY(var(--tb-flip-y,1)) !important;
}
.tb-anchor-tip{
  position:fixed;
  z-index:99999;
  max-width:min(260px, calc(100vw - 20px));
  padding:9px 12px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(22,26,34,.96);
  color:#f8fafc;
  font-size:13px;
  font-weight:850;
  line-height:1.25;
  box-shadow:0 14px 36px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.08);
  opacity:0;
  transform:translateY(6px) scale(.97);
  pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
}
.tb-anchor-tip.show{
  opacity:1;
  transform:translateY(0) scale(1);
}
.tb-anchor-tip::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-6px;
  width:10px;
  height:10px;
  background:rgba(22,26,34,.96);
  border-right:1px solid rgba(255,255,255,.14);
  border-bottom:1px solid rgba(255,255,255,.14);
  transform:translateX(-50%) rotate(45deg);
}
.tb-anchor-tip.below::after{
  bottom:auto;
  top:-6px;
  border-right:0;
  border-bottom:0;
  border-left:1px solid rgba(255,255,255,.14);
  border-top:1px solid rgba(255,255,255,.14);
}
@media(max-width:600px){
  .admin-global-tools{gap:7px;margin-bottom:7px;}
  .admin-global-tools .admin-small-btn{min-width:60px !important;min-height:48px !important;}
}


/* TicketBlossom v1.9.9.2 - precision panel, fast delete, compact global tools */
.admin-global-tools .admin-small-btn{
  min-width:58px !important;
  min-height:42px !important;
  height:42px !important;
  padding:5px 8px !important;
  border-radius:10px !important;
  background:#242424 !important;
  border-color:#3a3a3a !important;
}
.admin-global-tools .admin-small-btn span{
  font-size:16px !important;
  line-height:1 !important;
}
.admin-global-tools .admin-small-btn small{
  font-size:9px !important;
  line-height:1 !important;
  font-weight:900 !important;
}
.admin-global-tools .admin-small-btn.is-disabled,
.admin-global-tools .admin-small-btn:disabled{
  opacity:.45 !important;
  filter:grayscale(.55);
}
.tb-delete-fast-btn span{color:#ff7070 !important;font-weight:950 !important;}
.tb-precision-panel{
  position:relative;
  width:min(100%, 360px);
  margin:0 0 8px 0;
  padding:8px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.14);
  background:#1f1f1f;
  box-shadow:0 12px 34px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.06);
  opacity:0;
  transform:translateY(-4px) scale(.98);
  transition:opacity .14s ease, transform .14s ease;
  z-index:50;
}
.tb-precision-panel.is-open{
  opacity:1;
  transform:translateY(0) scale(1);
}
.tb-precision-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:0 0 6px 2px;
  font-size:12px;
  font-weight:950;
  color:#f2f2f2;
}
.tb-precision-title button{
  width:22px;
  height:22px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.06);
  color:#fff;
  font-size:15px;
  font-weight:900;
  cursor:pointer;
}
.tb-precision-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
}
.tb-precision-row{
  min-width:0;
  display:grid;
  grid-template-columns:18px 26px minmax(34px,1fr) 26px;
  align-items:center;
  gap:4px;
  padding:5px;
  border-radius:10px;
  background:#151515;
  border:1px solid rgba(255,255,255,.08);
}
.tb-precision-row-wide{grid-column:1 / -1; max-width:178px;}
.tb-precision-row b{
  color:#cbd5e1;
  font-size:11px;
  font-weight:950;
  text-align:center;
}
.tb-precision-row span{
  display:block;
  min-width:34px;
  padding:3px 4px;
  border-radius:7px;
  background:#0e0e0e;
  color:#fff;
  font-size:11px;
  font-weight:950;
  text-align:center;
  border:1px solid rgba(255,255,255,.09);
}
.tb-precision-row button{
  width:26px;
  height:24px;
  border-radius:7px;
  border:1px solid rgba(255,255,255,.12);
  background:#272727;
  color:#fff;
  font-size:14px;
  font-weight:950;
  cursor:pointer;
}
.tb-precision-row button:hover{background:#303a4c;border-color:#5d86ff;}
@media(max-width:600px){
  .admin-global-tools .admin-small-btn{min-width:55px !important;height:40px !important;min-height:40px !important;padding:4px 7px !important;}
  .admin-global-tools .admin-small-btn span{font-size:15px !important;}
  .admin-global-tools .admin-small-btn small{font-size:8.5px !important;}
  .tb-precision-panel{width:100%; padding:7px; margin-bottom:7px;}
  .tb-precision-grid{gap:5px;}
  .tb-precision-row{grid-template-columns:16px 24px minmax(30px,1fr) 24px;gap:3px;padding:4px;}
  .tb-precision-row button{width:24px;height:23px;}
  .tb-precision-row span{font-size:10px;min-width:30px;}
}

/* TicketBlossom v2.0 fase 1 - Guardar Scenario */
.tb-save-scenario-card{
  width:min(340px, calc(100vw - 28px));
  padding:14px !important;
  border-radius:18px !important;
}
.tb-save-scenario-card .tb-modal-head{
  margin-bottom:8px;
}
.tb-save-scenario-card h2{
  font-size:16px;
  margin:0;
}
.tb-save-scenario-body{
  display:grid;
  gap:8px;
}
.tb-save-scenario-body label{
  font-size:12px;
  font-weight:900;
  color:#dbe3ee;
}
.tb-save-scenario-body input{
  width:100%;
  box-sizing:border-box;
  min-height:40px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.14);
  background:#111827;
  color:#fff;
  padding:9px 11px;
  font-weight:800;
}
.tb-save-scenario-body .tb-btn{
  width:100%;
  min-height:38px;
  margin-top:2px;
}
#saveScenarioStatus{
  min-height:16px;
  font-size:12px;
  font-weight:800;
}

/* TicketBlossom v2.0 fase 2 - Cargar / eliminar Scenario */
.tb-load-scenario-card{
  width:min(380px, calc(100vw - 28px));
  padding:14px !important;
  border-radius:18px !important;
}
.tb-load-scenario-card .tb-modal-head{margin-bottom:8px;}
.tb-load-scenario-card h2{font-size:16px;margin:0;}
.tb-load-scenario-body{display:grid;gap:8px;}
.tb-scenario-list{
  display:grid;
  gap:7px;
  max-height:min(46vh, 330px);
  overflow:auto;
  padding:2px;
}
.tb-scenario-row{
  display:flex;
  align-items:center;
  gap:9px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.045);
  border-radius:13px;
  padding:8px 9px;
  cursor:pointer;
  transition:background .16s ease, border-color .16s ease, transform .16s ease;
}
.tb-scenario-row:hover,
.tb-scenario-row.selected{
  background:rgba(87,255,147,.10);
  border-color:rgba(87,255,147,.34);
}
.tb-scenario-row input{accent-color:#57ff93;}
.tb-scenario-main{display:grid;gap:2px;min-width:0;}
.tb-scenario-main b{
  color:#fff;
  font-size:13px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.tb-scenario-main small{color:#9aa6b2;font-size:11px;font-weight:700;}
.tb-scenario-empty{
  border:1px dashed rgba(255,255,255,.18);
  border-radius:13px;
  color:#aab4c0;
  font-size:12px;
  font-weight:800;
  padding:12px;
  text-align:center;
}
.tb-load-scenario-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.tb-load-scenario-actions .tb-btn{min-height:38px;}
#loadScenarioStatus{
  min-height:16px;
  font-size:12px;
  font-weight:800;
}

/* TicketBlossom v2.1 - UX hotfixes */
body.tb-quick-menu-open{
  overflow:hidden !important;
  touch-action:none;
}
.admin-global-tools .admin-small-btn.has-undo:not(:disabled){
  background:#303030 !important;
  border-color:#595959 !important;
  color:#fff !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
  filter:none !important;
  opacity:1 !important;
  transition:background .14s ease, border-color .14s ease, color .14s ease, box-shadow .14s ease;
}
.admin-global-tools .admin-small-btn.has-undo:not(:disabled) span,
.admin-global-tools .admin-small-btn.has-undo:not(:disabled) small{
  color:#fff !important;
}
.tb-scenario-list{
  display:grid;
  gap:6px;
  max-height:min(42vh, 280px);
  overflow-y:auto;
  padding:2px 3px 2px 2px;
}
.tb-scenario-row{
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.045);
  border-radius:12px;
  padding:9px 10px;
  text-align:left;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:0;
  transition:background .16s ease, border-color .16s ease, transform .16s ease;
}
.tb-scenario-row:hover,
.tb-scenario-row.selected{
  background:rgba(87,255,147,.10);
  border-color:rgba(87,255,147,.34);
}
.tb-scenario-main{
  min-width:0;
  display:block;
  width:100%;
}
.tb-scenario-main b{
  display:block;
  color:#fff;
  font-size:13px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.tb-scenario-main small,
.tb-scenario-row input{
  display:none !important;
}

/* TicketBlossom v2.2 - editor cleanup and production save polish */
.admin-adjust-toolbar{
  border-top:1px solid rgba(255,255,255,.08) !important;
  padding-top:8px !important;
  margin-top:2px !important;
}
.tb-section-modal-head h2{
  margin:0;
  font-size:16px;
  line-height:1.1;
}
.tb-edit-fast-btn span{
  color:#e8ecff !important;
  font-weight:950 !important;
}
@media(max-width:600px){
  .admin-adjust-toolbar{padding-top:7px !important;}
  .tb-section-modal-head h2{font-size:15px;}
}

/* TicketBlossom v2.3 - production save button */
.tb-production-save-row{
  margin:10px 0 8px;
}
.tb-production-save-btn{
  min-height:44px;
  font-weight:950 !important;
  letter-spacing:.2px;
}
@media(max-width:600px){
  .tb-production-save-row{margin:8px 0 7px;}
  .tb-production-save-btn{min-height:42px;}
}

/* TicketBlossom 2.4 - Colores V2 para secciones */
.tb-color-picker-field{position:relative;min-width:0;}
.tb-native-color-select{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
  pointer-events:none !important;
  min-height:0 !important;
  padding:0 !important;
}
.tb-color-three-row small{
  display:flex !important;
  align-items:center;
  gap:6px;
}
.tb-color-mini-bar{
  display:inline-block;
  width:34px;
  height:8px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.25);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.25);
  vertical-align:middle;
}
.tb-color-mini-bar.is-empty{background:transparent !important;opacity:.35;}
.tb-color-choice-btn{
  width:100%;
  min-height:36px;
  padding:8px 26px 8px 9px;
  border-radius:11px;
  border:1px solid rgba(255,255,255,.16);
  background:#111;
  color:#fff;
  font-weight:700;
  font-size:13px;
  text-align:left;
  cursor:pointer;
  position:relative;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.tb-color-choice-btn:after{
  content:'⌄';
  position:absolute;
  right:9px;
  top:50%;
  transform:translateY(-50%);
  color:#ddd;
  font-size:14px;
}
.tb-color-choice-btn.has-color{border-color:rgba(74,185,82,.65);box-shadow:0 0 0 1px rgba(74,185,82,.18);}
.tb-color-choice-btn.field-error{border-color:#ff5b5b !important;box-shadow:0 0 0 2px rgba(255,91,91,.18) !important;}
.tb-color-choice-menu{
  display:none;
  position:absolute;
  z-index:99999;
  left:0;
  right:auto;
  top:calc(100% + 8px);
  width:min(235px, calc(100vw - 72px));
  min-width:205px;
  padding:8px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.16);
  background:linear-gradient(180deg,#222,#101010);
  box-shadow:0 16px 35px rgba(0,0,0,.55);
  max-height:360px;
  overflow:auto;
}
.tb-color-picker-field:nth-child(2) .tb-color-choice-menu{left:50%;transform:translateX(-50%);}
.tb-color-picker-field:nth-child(3) .tb-color-choice-menu{left:auto;right:0;}

.tb-color-choice-menu.is-open{display:block;}
.tb-color-menu-item{
  width:100%;
  display:flex;
  align-items:center;
  gap:12px;
  padding:13px 12px;
  border:0;
  border-radius:11px;
  background:transparent;
  color:#fff;
  font-weight:700;
  font-size:16px;
  text-align:left;
  cursor:pointer;
}
.tb-color-menu-item span:first-child{font-size:22px;line-height:1;}
.tb-color-menu-item:hover{background:rgba(255,255,255,.09);}
.tb-color-menu-custom{
  margin-top:8px;
  border-top:1px solid rgba(255,255,255,.12);
  color:#66ff88;
}
.tb-custom-color-backdrop{z-index:10080 !important;}
.tb-custom-color-card{max-width:640px;width:min(92vw,640px);padding:16px !important;}
.tb-custom-color-help{color:#bbb;margin:2px 0 12px;font-size:13px;}
.tb-custom-color-grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:3px;
  padding:5px;
  border-radius:10px;
  background:#080808;
  border:1px solid rgba(255,255,255,.13);
}
.tb-custom-swatch{
  aspect-ratio:1 / 1;
  min-height:26px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:3px;
  cursor:pointer;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.18);
}
.tb-custom-swatch:hover{transform:scale(1.08);box-shadow:0 0 0 2px #fff;}
.tb-custom-color-manual{
  margin-top:12px;
  display:flex;
  gap:8px;
  align-items:center;
}
.tb-custom-color-manual input[type="color"]{
  width:52px;
  min-width:52px;
  height:42px;
  padding:3px !important;
  border-radius:10px;
  background:#111;
  border:1px solid rgba(255,255,255,.16);
}
@media(max-width:600px){
  .tb-color-choice-menu{width:min(250px, calc(100vw - 40px));min-width:220px;max-height:390px;}
  .tb-color-menu-item{padding:14px 13px;font-size:17px;}
  .tb-color-menu-item span:first-child{font-size:24px;}
  .tb-custom-color-grid{grid-template-columns:repeat(8,1fr);}
  .tb-custom-swatch{min-height:24px;}
}

/* TicketBlossom Colores V2 - modal elegante, sin dropdown anclado */
.tb-section-color-backdrop{
  z-index:10070 !important;
  align-items:center !important;
  justify-content:center !important;
  padding:18px !important;
}
.tb-section-color-card{
  width:min(86vw, 330px) !important;
  max-height:min(78vh, 520px) !important;
  padding:18px !important;
  border-radius:18px !important;
  background:linear-gradient(180deg, rgba(36,36,36,.98), rgba(18,18,18,.98)) !important;
  border:1px solid rgba(255,255,255,.16) !important;
  box-shadow:0 18px 45px rgba(0,0,0,.62) !important;
  overflow:hidden !important;
}
.tb-section-color-card .tb-modal-head{
  margin-bottom:10px !important;
}
.tb-section-color-card .tb-modal-head h2{
  font-size:22px !important;
  line-height:1.1 !important;
}
.tb-section-color-list{
  max-height:calc(min(78vh, 520px) - 76px);
  overflow:auto;
  padding:2px 3px 4px;
  scrollbar-width:thin;
}
.tb-section-color-item{
  width:100%;
  min-height:42px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:8px 8px;
  border:0;
  border-radius:11px;
  background:transparent;
  color:#fff;
  font-size:16px;
  font-weight:800;
  text-align:left;
  cursor:pointer;
}
.tb-section-color-item:hover,
.tb-section-color-item:active{
  background:rgba(255,255,255,.08);
}
.tb-section-color-dot{
  width:24px;
  height:24px;
  min-width:24px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.22), 0 2px 6px rgba(0,0,0,.24);
}
.tb-section-color-separator{
  height:1px;
  margin:9px 4px;
  background:rgba(255,255,255,.15);
}
.tb-section-color-custom{
  color:#67f285;
}
.tb-section-color-gear{
  width:24px;
  min-width:24px;
  text-align:center;
  font-size:21px;
  line-height:1;
  color:#ddd;
}
.tb-color-choice-menu{
  display:none !important;
}
.tb-custom-color-backdrop{
  z-index:10080 !important;
  align-items:center !important;
  justify-content:center !important;
  padding:16px !important;
}
.tb-custom-color-card{
  width:min(90vw, 620px) !important;
  max-height:min(82vh, 680px) !important;
  padding:18px !important;
  border-radius:18px !important;
  background:linear-gradient(180deg, rgba(36,36,36,.98), rgba(18,18,18,.98)) !important;
  border:1px solid rgba(255,255,255,.16) !important;
  box-shadow:0 18px 45px rgba(0,0,0,.62) !important;
  overflow:hidden !important;
}
.tb-custom-color-card .tb-modal-head h2{
  font-size:22px !important;
  line-height:1.1 !important;
}
.tb-custom-color-grid{
  max-height:calc(min(82vh, 680px) - 76px);
  overflow:auto;
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:6px;
  padding:8px;
  border-radius:13px;
  background:#080808;
  border:1px solid rgba(255,255,255,.13);
}
.tb-custom-swatch{
  aspect-ratio:1 / 1;
  min-height:32px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:6px;
  cursor:pointer;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.18);
}
.tb-custom-swatch:hover,
.tb-custom-swatch:active{
  transform:scale(1.04);
  box-shadow:0 0 0 2px rgba(255,255,255,.72);
}
.tb-custom-color-manual,
.tb-custom-color-help{
  display:none !important;
}
@media(max-width:600px){
  .tb-section-color-card{
    width:min(84vw, 320px) !important;
    padding:17px !important;
  }
  .tb-section-color-item{
    min-height:40px;
    font-size:16px;
    padding:7px 8px;
  }
  .tb-section-color-dot{
    width:22px;
    height:22px;
    min-width:22px;
  }
  .tb-custom-color-card{
    width:min(90vw, 620px) !important;
    padding:16px !important;
  }
  .tb-custom-color-grid{
    grid-template-columns:repeat(8,1fr);
    gap:5px;
    padding:7px;
  }
  .tb-custom-swatch{
    min-height:30px;
    border-radius:6px;
  }
}

/* TicketBlossom Patch - Color modal compacto + Olympic Field unificado */
.tb-section-color-backdrop,
.tb-custom-color-backdrop{
  background:transparent !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  align-items:center !important;
  justify-content:center !important;
  padding:12px !important;
}
.tb-section-color-card{
  width:min(78vw, 300px) !important;
  max-height:none !important;
  padding:12px !important;
  border-radius:18px !important;
  background:linear-gradient(180deg,#252525,#141414) !important;
  border:1px solid rgba(255,255,255,.14) !important;
  box-shadow:0 16px 38px rgba(0,0,0,.42) !important;
  overflow:hidden !important;
}
.tb-section-color-card .tb-modal-head{
  margin-bottom:7px !important;
  padding-bottom:6px !important;
  border-bottom:1px solid rgba(255,255,255,.08) !important;
}
.tb-section-color-card .tb-modal-head h2{
  font-size:15px !important;
  line-height:1.1 !important;
  font-weight:800 !important;
  letter-spacing:.2px !important;
}
.tb-section-color-card .tb-modal-close{
  width:28px !important;
  height:28px !important;
  min-height:28px !important;
  font-size:18px !important;
  line-height:1 !important;
}
.tb-section-color-list{
  max-height:none !important;
  overflow:visible !important;
  padding:0 !important;
}
.tb-section-color-grid{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  column-gap:8px !important;
  row-gap:2px !important;
}
.tb-section-color-item{
  width:100% !important;
  min-height:30px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:7px !important;
  padding:5px 7px !important;
  border:0 !important;
  border-radius:10px !important;
  background:transparent !important;
  color:#f7f7f7 !important;
  font-size:13px !important;
  font-weight:700 !important;
  line-height:1.1 !important;
  text-align:left !important;
  cursor:pointer !important;
  white-space:nowrap !important;
}
.tb-section-color-item:hover,
.tb-section-color-item:active{
  background:rgba(255,255,255,.075) !important;
}
.tb-section-color-dot{
  width:14px !important;
  height:14px !important;
  min-width:14px !important;
  border-radius:999px !important;
  border:1px solid rgba(255,255,255,.25) !important;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.18) !important;
}
.tb-section-color-separator{
  height:1px !important;
  margin:8px 4px 6px !important;
  background:rgba(255,255,255,.14) !important;
}
.tb-section-color-custom{
  color:#f7f7f7 !important;
  font-size:13px !important;
  min-height:30px !important;
}
.tb-section-color-gear{
  width:14px !important;
  min-width:14px !important;
  text-align:center !important;
  font-size:14px !important;
  line-height:1 !important;
  color:#ddd !important;
}
.tb-custom-color-card{
  width:min(88vw, 500px) !important;
  max-height:min(78vh, 560px) !important;
  padding:12px !important;
  border-radius:18px !important;
  background:linear-gradient(180deg,#252525,#141414) !important;
  border:1px solid rgba(255,255,255,.14) !important;
  box-shadow:0 16px 38px rgba(0,0,0,.42) !important;
}
.tb-custom-color-card .tb-modal-head h2{
  font-size:15px !important;
  font-weight:800 !important;
}
.tb-custom-color-grid{
  grid-template-columns:repeat(12,1fr) !important;
  gap:4px !important;
  padding:6px !important;
  border-radius:12px !important;
  max-height:calc(min(78vh, 560px) - 62px) !important;
}
.tb-custom-swatch{
  min-height:24px !important;
  border-radius:4px !important;
}
@media(max-width:600px){
  .tb-section-color-card{width:min(80vw, 295px) !important;padding:11px !important;}
  .tb-section-color-item{min-height:29px !important;font-size:12.5px !important;padding:5px 6px !important;}
  .tb-section-color-dot{width:13px !important;height:13px !important;min-width:13px !important;}
  .tb-custom-color-grid{grid-template-columns:repeat(8,1fr) !important;}
  .tb-custom-swatch{min-height:25px !important;}
}

/* Olympic Field: una sola pieza visual y seleccionable usando field_x/y/w/h/r */
.tb-layout-olympic-field{
  border-radius:999px !important;
  overflow:hidden !important;
  background:#8ed3fb !important;
  border:2px solid rgba(255,255,255,.82) !important;
  box-shadow:
    inset 0 0 0 6px rgba(255,255,255,.92),
    inset 0 0 0 15px #84cdf7,
    inset 0 0 0 18px rgba(255,255,255,.78),
    inset 0 0 0 27px #1867c9,
    inset 0 0 0 30px rgba(255,255,255,.78),
    inset 0 0 0 39px #6fc0ee,
    inset 0 0 0 42px rgba(255,255,255,.78),
    inset 0 0 0 51px #0e57b5,
    inset 0 0 0 54px rgba(255,255,255,.74),
    inset 0 0 0 63px #8ed3fb,
    0 18px 35px rgba(0,0,0,.48),
    0 0 24px rgba(70,165,255,.28) !important;
  z-index:2 !important;
}
.tb-layout-olympic-field:before,
.tb-layout-olympic-field:after{display:none !important;}
.tb-olympic-pitch{
  position:absolute;
  left:23%;
  top:25%;
  width:54%;
  height:50%;
  border-radius:10px;
  overflow:hidden;
  background:
    repeating-linear-gradient(90deg,#176b32 0,#176b32 8%,#1f7f3d 8%,#1f7f3d 16%),
    linear-gradient(180deg,#1f8b45,#12622e);
  border:2px solid rgba(255,255,255,.82);
  box-shadow:inset 0 0 18px rgba(0,0,0,.28),0 6px 12px rgba(0,0,0,.25);
}
.tb-olympic-pitch:before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,rgba(255,255,255,.09),transparent 42%,rgba(0,0,0,.10));
  pointer-events:none;
}
.tb-olympic-pitch .tb-field-goal-left{left:-2.3%;}
.tb-olympic-pitch .tb-field-goal-right{right:-2.3%;}


/* TicketBlossom Olympic Field SVG patch - official approved asset */
.tb-layout-olympic-field{
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  overflow:visible !important;
  box-shadow:none !important;
  z-index:2 !important;
}
.tb-layout-olympic-field::before{display:none !important;}
.tb-layout-olympic-field .tb-olympic-field-img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  pointer-events:none;
  user-select:none;
  -webkit-user-drag:none;
  filter:drop-shadow(0 12px 22px rgba(0,0,0,.45));
}
.tb-layout-olympic-field.selected{
  filter:none !important;
  box-shadow:none !important;
}
.tb-layout-olympic-field.selected::after{
  inset:-4px !important;
  border-radius:20px !important;
}


/* TicketBlossom patch: Olympic SVG transparent + selected frame like Stage */
.tb-layout-olympic-field{
  background:transparent !important;
  border:0 !important;
  border-radius:18px !important;
  overflow:visible !important;
  box-shadow:none !important;
}
.tb-layout-olympic-field .tb-olympic-field-img{
  background:transparent !important;
}
.tb-layout-olympic-field.selected{
  overflow:visible !important;
  z-index:20 !important;
}
.tb-layout-olympic-field.selected::after{
  content:"" !important;
  position:absolute !important;
  inset:-6px !important;
  border-radius:22px !important;
  padding:3px !important;
  background:linear-gradient(90deg,#2a97ff 0%,#7d86b1 38%,#f28bae 72%,#f7b2c6 100%) !important;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0) !important;
  -webkit-mask-composite:xor !important;
  mask-composite:exclude !important;
  pointer-events:none !important;
  z-index:80 !important;
  opacity:.95 !important;
}

.tb-mini-confirm-text b{display:block;font-size:15px;margin-bottom:6px;}
.tb-mini-confirm-text span{display:block;font-size:13px;font-weight:700;color:#d8d8d8;line-height:1.35;}

/* TicketBlossom v2.5 - Scenario Type Picker */
.tb-hidden-native-select{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
  pointer-events:none !important;
  left:-9999px !important;
}
.tb-scenario-picker-trigger{
  width:100%;
  min-height:42px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:12px;
  background:linear-gradient(180deg,#171717,#101010);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  font-size:14px;
  font-weight:800;
  cursor:pointer;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.03),0 8px 18px rgba(0,0,0,.22);
}
.tb-scenario-picker-trigger:active{transform:scale(.99);}
.tb-scenario-picker-caret{color:#66ff88;font-size:13px;}
.tb-scenario-type-backdrop{z-index:10010;}
.tb-scenario-type-card{
  width:min(360px,92vw);
  border-radius:18px;
  padding:12px;
  background:linear-gradient(180deg,#1a1a1a,#111);
  border:1px solid rgba(255,255,255,.13);
  box-shadow:0 22px 55px rgba(0,0,0,.55);
}
.tb-scenario-type-head{padding:2px 2px 9px !important;}
.tb-scenario-type-head h3{font-size:15px !important;margin:0 !important;}
.tb-scenario-type-list{display:grid;gap:8px;}
.tb-scenario-type-option{
  width:100%;
  border:1px solid rgba(255,255,255,.10);
  border-radius:14px;
  background:linear-gradient(180deg,#202020,#151515);
  color:#fff;
  min-height:48px;
  padding:8px 10px;
  display:grid;
  grid-template-columns:58px 1fr;
  align-items:center;
  gap:10px;
  text-align:left;
  font-size:13px;
  font-weight:850;
  cursor:pointer;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.025),0 8px 18px rgba(0,0,0,.22);
}
.tb-scenario-type-option:hover,
.tb-scenario-type-option.is-active{
  border-color:rgba(102,255,136,.38);
  box-shadow:0 0 0 1px rgba(102,255,136,.16),0 8px 20px rgba(0,0,0,.28);
}
.tb-scenario-mini{
  width:54px;
  height:30px;
  position:relative;
  display:block;
  border-radius:9px;
  overflow:hidden;
  background:#0d0d0d;
  border:1px solid rgba(255,255,255,.15);
}
.tb-scenario-mini-regular span,
.tb-scenario-mini-combo-regular::after{
  content:"";
  position:absolute;
  inset:6px 6px 5px 6px;
  border-radius:4px;
  background:repeating-linear-gradient(90deg,#147738 0,#147738 7px,#1d9448 7px,#1d9448 14px);
  border:1.5px solid rgba(255,255,255,.86);
  box-shadow:inset 50% 0 0 rgba(255,255,255,.6);
}
.tb-scenario-mini-regular span::before,
.tb-scenario-mini-combo-regular::before{
  content:"";
  position:absolute;
  left:50%;top:0;bottom:0;
  width:1.5px;background:rgba(255,255,255,.86);
  transform:translateX(-50%);
}
.tb-scenario-mini-regular span::after{
  content:"";
  position:absolute;
  left:50%;top:50%;
  width:10px;height:10px;
  border:1.5px solid rgba(255,255,255,.86);
  border-radius:50%;
  transform:translate(-50%,-50%);
}
.tb-scenario-mini-olympic span,
.tb-scenario-mini-combo-olympic::after{
  content:"";
  position:absolute;
  inset:5px 4px;
  border-radius:999px;
  background:
    radial-gradient(ellipse at center,#14813a 0 36%,transparent 37%),
    repeating-radial-gradient(ellipse at center,#73d4ff 0 13%,#fff 13% 15%,#0767c8 15% 27%,#fff 27% 29%,#73d4ff 29% 42%,#fff 42% 44%,#0757b3 44% 58%);
  border:1px solid rgba(255,255,255,.8);
}
.tb-scenario-mini-concert span,
.tb-scenario-mini-combo-regular span,
.tb-scenario-mini-combo-olympic span{
  position:absolute;
  left:12px;right:12px;top:5px;height:11px;
  background:linear-gradient(180deg,#8c45ff,#5122b6);
  clip-path:polygon(13% 0,87% 0,100% 100%,0 100%);
  border-radius:2px 2px 4px 4px;
  box-shadow:0 0 10px rgba(140,69,255,.45);
}
.tb-scenario-mini-concert span::before,
.tb-scenario-mini-combo-regular span::before,
.tb-scenario-mini-combo-olympic span::before{
  content:"";
  position:absolute;
  left:6px;right:6px;top:3px;height:2px;
  background:rgba(255,255,255,.55);
  border-radius:999px;
}
.tb-scenario-mini-concert::before{
  content:"";
  position:absolute;
  left:9px;right:9px;bottom:6px;height:3px;
  background:rgba(255,255,255,.22);
  border-radius:999px;
}
.tb-scenario-mini-combo-regular::after{top:16px;bottom:4px;inset-inline:5px;}
.tb-scenario-mini-combo-regular::before{top:17px;bottom:5px;left:50%;height:auto;}
.tb-scenario-mini-combo-olympic::after{top:15px;bottom:4px;inset-inline:5px;}
.tb-mini-confirm-text{
  display:flex;
  align-items:center;
  gap:10px;
  line-height:1.35;
}
.tb-mini-confirm-text .tb-warning-triangle{
  width:0;
  height:0;
  border-left:10px solid transparent;
  border-right:10px solid transparent;
  border-bottom:18px solid #ffd34d;
  filter:drop-shadow(0 0 8px rgba(255,211,77,.38));
  flex:0 0 auto;
  position:relative;
}
.tb-mini-confirm-text .tb-warning-triangle::after{
  content:"!";
  position:absolute;
  left:-3px;
  top:4px;
  color:#241700;
  font-size:11px;
  font-weight:1000;
}
/* show Olympic selected frame; older CSS hid ::after globally */
.tb-layout-olympic-field.selected::after{
  display:block !important;
}
@media(max-width:600px){
  .tb-scenario-type-card{width:min(330px,92vw);padding:11px;}
  .tb-scenario-type-option{min-height:45px;font-size:12.5px;grid-template-columns:55px 1fr;}
}


/* v2.5b - Catálogo de shapes por familia */
.tb-shape-tabs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin:0 0 16px 0;
}
.tb-shape-tab{
  min-height:62px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.12);
  background:#2a2a2a;
  color:#f5f5f5;
  font-weight:900;
  font-size:20px;
  cursor:pointer;
}
.tb-shape-tab.active{
  background:linear-gradient(135deg,rgba(44,110,57,.7),rgba(38,78,47,.82));
  border-color:rgba(90,210,110,.55);
  box-shadow:0 0 0 1px rgba(80,200,100,.15), inset 0 0 18px rgba(80,200,100,.12);
}
.tb-shape-catalog-group{display:grid;}

/* v2.5b - Olímpicas reales: máscara SVG, no rectángulo disfrazado */
.tb-olympic-mask{
  background:#7286ea !important;
  border:0 !important;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.42), inset 0 0 10px rgba(255,255,255,.18), 0 8px 18px rgba(0,0,0,.25);
}
.tb-shape-icon-olympic-left-full{width:74px;height:74px;}
.tb-shape-icon-olympic-right-full{width:74px;height:74px;}
.tb-shape-icon-olympic-left-tight-full{width:74px;height:74px;}
.tb-shape-icon-olympic-right-tight-full{width:74px;height:74px;}
.tb-shape-icon-olympic-left-top,.tb-shape-icon-olympic-left-bottom,.tb-shape-icon-olympic-right-top,.tb-shape-icon-olympic-right-bottom{width:62px;height:74px;}
.tb-shape-icon-olympic-left-full{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%200%20C35%200%200%2042%200%20100%20C0%20158%2035%20200%20100%20200%20L100%20164%20C55%20164%2038%20135%2038%20100%20C38%2065%2055%2036%20100%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%200%20C35%200%200%2042%200%20100%20C0%20158%2035%20200%20100%20200%20L100%20164%20C55%20164%2038%20135%2038%20100%20C38%2065%2055%2036%20100%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;}
.tb-shape-icon-olympic-left-tight-full{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%200%20C58%200%2025%2042%2025%20100%20C25%20158%2058%20200%20100%20200%20L100%20164%20C78%20164%2063%20135%2063%20100%20C63%2065%2078%2036%20100%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%200%20C58%200%2025%2042%2025%20100%20C25%20158%2058%20200%20100%20200%20L100%20164%20C78%20164%2063%20135%2063%20100%20C63%2065%2078%2036%20100%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;}
.tb-shape-icon-olympic-right-full{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%200%20C65%200%20100%2042%20100%20100%20C100%20158%2065%20200%200%20200%20L0%20164%20C45%20164%2062%20135%2062%20100%20C62%2065%2045%2036%200%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%200%20C65%200%20100%2042%20100%20100%20C100%20158%2065%20200%200%20200%20L0%20164%20C45%20164%2062%20135%2062%20100%20C62%2065%2045%2036%200%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;}
.tb-shape-icon-olympic-right-tight-full{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%200%20C42%200%2075%2042%2075%20100%20C75%20158%2042%20200%200%20200%20L0%20164%20C22%20164%2037%20135%2037%20100%20C37%2065%2022%2036%200%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%200%20C42%200%2075%2042%2075%20100%20C75%20158%2042%20200%200%20200%20L0%20164%20C22%20164%2037%20135%2037%20100%20C37%2065%2022%2036%200%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;}
.tb-shape-icon-olympic-left-top{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%200%20C35%200%200%2042%200%20100%20L38%20100%20C38%2065%2055%2036%20100%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%200%20C35%200%200%2042%200%20100%20L38%20100%20C38%2065%2055%2036%20100%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;}
.tb-shape-icon-olympic-left-bottom{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%20100%20C0%20158%2035%20200%20100%20200%20L100%20164%20C55%20164%2038%20135%2038%20100%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%20100%20C0%20158%2035%20200%20100%20200%20L100%20164%20C55%20164%2038%20135%2038%20100%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;}
.tb-shape-icon-olympic-right-top{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%200%20C65%200%20100%2042%20100%20100%20L62%20100%20C62%2065%2045%2036%200%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%200%20C65%200%20100%2042%20100%20100%20L62%20100%20C62%2065%2045%2036%200%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;}
.tb-shape-icon-olympic-right-bottom{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%20100%20C100%20158%2065%20200%200%20200%20L0%20164%20C45%20164%2062%20135%2062%20100%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%20100%20C100%20158%2065%20200%200%20200%20L0%20164%20C45%20164%2062%20135%2062%20100%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;}
.tb-shape-icon-olympic-left-full,.tb-shape-icon-olympic-right-full,.tb-shape-icon-olympic-left-tight-full,.tb-shape-icon-olympic-right-tight-full,.tb-shape-icon-olympic-left-top,.tb-shape-icon-olympic-left-bottom,.tb-shape-icon-olympic-right-top,.tb-shape-icon-olympic-right-bottom{
  background:#7D86E8 !important;
  border:0 !important;
}

.tb-layout-shape-olympic_left_full::before{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%200%20C35%200%200%2042%200%20100%20C0%20158%2035%20200%20100%20200%20L100%20164%20C55%20164%2038%20135%2038%20100%20C38%2065%2055%2036%20100%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%200%20C35%200%200%2042%200%20100%20C0%20158%2035%20200%20100%20200%20L100%20164%20C55%20164%2038%20135%2038%20100%20C38%2065%2055%2036%20100%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;clip-path:none !important;}
.tb-layout-shape-olympic_left_tight_full::before{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%200%20C58%200%2025%2042%2025%20100%20C25%20158%2058%20200%20100%20200%20L100%20164%20C78%20164%2063%20135%2063%20100%20C63%2065%2078%2036%20100%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%200%20C58%200%2025%2042%2025%20100%20C25%20158%2058%20200%20100%20200%20L100%20164%20C78%20164%2063%20135%2063%20100%20C63%2065%2078%2036%20100%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;clip-path:none !important;}
.tb-layout-shape-olympic_right_full::before{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%200%20C65%200%20100%2042%20100%20100%20C100%20158%2065%20200%200%20200%20L0%20164%20C45%20164%2062%20135%2062%20100%20C62%2065%2045%2036%200%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%200%20C65%200%20100%2042%20100%20100%20C100%20158%2065%20200%200%20200%20L0%20164%20C45%20164%2062%20135%2062%20100%20C62%2065%2045%2036%200%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;clip-path:none !important;}
.tb-layout-shape-olympic_right_tight_full::before{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%200%20C42%200%2075%2042%2075%20100%20C75%20158%2042%20200%200%20200%20L0%20164%20C22%20164%2037%20135%2037%20100%20C37%2065%2022%2036%200%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%200%20C42%200%2075%2042%2075%20100%20C75%20158%2042%20200%200%20200%20L0%20164%20C22%20164%2037%20135%2037%20100%20C37%2065%2022%2036%200%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;clip-path:none !important;}
.tb-layout-shape-olympic_left_top::before{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%200%20C35%200%200%2042%200%20100%20L38%20100%20C38%2065%2055%2036%20100%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%200%20C35%200%200%2042%200%20100%20L38%20100%20C38%2065%2055%2036%20100%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;clip-path:none !important;}
.tb-layout-shape-olympic_left_bottom::before{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%20100%20C0%20158%2035%20200%20100%20200%20L100%20164%20C55%20164%2038%20135%2038%20100%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%20100%20C0%20158%2035%20200%20100%20200%20L100%20164%20C55%20164%2038%20135%2038%20100%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;clip-path:none !important;}
.tb-layout-shape-olympic_right_top::before{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%200%20C65%200%20100%2042%20100%20100%20L62%20100%20C62%2065%2045%2036%200%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%200%20C65%200%20100%2042%20100%20100%20L62%20100%20C62%2065%2045%2036%200%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;clip-path:none !important;}
.tb-layout-shape-olympic_right_bottom::before{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%20100%20C100%20158%2065%20200%200%20200%20L0%20164%20C45%20164%2062%20135%2062%20100%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%20100%20C100%20158%2065%20200%200%20200%20L0%20164%20C45%20164%2062%20135%2062%20100%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;clip-path:none !important;}
.tb-layout-shape-olympic_left_full::before,.tb-layout-shape-olympic_right_full::before,.tb-layout-shape-olympic_left_tight_full::before,.tb-layout-shape-olympic_right_tight_full::before,.tb-layout-shape-olympic_left_top::before,.tb-layout-shape-olympic_left_bottom::before,.tb-layout-shape-olympic_right_top::before,.tb-layout-shape-olympic_right_bottom::before{
  border:0 !important;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.42), inset 0 0 14px rgba(255,255,255,.12);
}

/* TicketBlossom Renderer v1 - Render button, popup and Classic mode */
.tb-production-save-row{
  display:flex;
  gap:10px;
  align-items:stretch;
}
.tb-render-mode-btn{
  flex:0 0 38%;
  min-height:44px;
  font-weight:950 !important;
  display:flex !important;
  align-items:center;
  justify-content:center;
  gap:6px;
  white-space:nowrap;
}
.tb-render-mode-btn small{
  font-size:10px;
  opacity:.85;
  margin-left:2px;
}
.tb-render-mode-btn.is-render-active{
  background:linear-gradient(180deg, rgba(50,56,82,.98), rgba(30,34,54,.98)) !important;
  border-color:rgba(255,255,255,.18) !important;
  color:#fff !important;
}
.tb-production-save-btn{flex:1 1 auto;}
.tb-render-mode-card{max-width:390px;width:min(94vw,390px);}
.tb-render-mode-body{display:grid;gap:9px;margin:8px 0 12px;}
.tb-render-option{
  width:100%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  background:rgba(255,255,255,.045);
  color:#f4f6ff;
  padding:11px 12px;
  text-align:left;
  cursor:pointer;
  transition:background .14s ease,border-color .14s ease,transform .14s ease;
}
.tb-render-option b{font-size:14px;}
.tb-render-option small{font-size:11px;color:#aab2cf;text-align:right;}
.tb-render-option:hover{background:rgba(255,255,255,.075);border-color:rgba(255,255,255,.20);}
.tb-render-option.is-active{
  background:linear-gradient(180deg, rgba(46,204,113,.18), rgba(46,204,113,.08));
  border-color:rgba(46,204,113,.65);
  box-shadow:0 0 0 1px rgba(46,204,113,.12) inset;
}
.tb-render-option.is-disabled{opacity:.62;}
.tb-render-mode-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:12px;}

.tb-render-classic .tb-layout-map{
  box-shadow:inset 0 0 28px rgba(255,255,255,.05), 0 18px 34px rgba(0,0,0,.32);
}
.tb-render-classic .tb-layout-field,
.tb-render-classic .tb-layout-olympic-field{
  filter:drop-shadow(0 8px 12px rgba(0,0,0,.38));
}
.tb-render-classic .tb-layout-stage-body{
  box-shadow:inset 0 2px 0 rgba(255,255,255,.30), inset 0 -7px 12px rgba(0,0,0,.30), 0 9px 15px rgba(0,0,0,.34) !important;
}
.tb-render-classic .tb-layout-shape::before{
  filter:drop-shadow(0 8px 8px rgba(0,0,0,.28));
  box-shadow:inset 0 2px 0 rgba(255,255,255,.32), inset 0 -8px 14px rgba(0,0,0,.24), 0 8px 10px rgba(0,0,0,.18) !important;
  border-color:rgba(255,255,255,.58) !important;
}
.tb-render-classic .tb-layout-shape span{
  text-shadow:0 2px 4px rgba(0,0,0,.72), 0 0 10px rgba(255,255,255,.16);
}
.tb-render-classic .tb-layout-object{
  filter:drop-shadow(0 7px 8px rgba(0,0,0,.34));
}
.tb-render-classic .tb-layout-glow{
  opacity:.65;
}
@media(max-width:600px){
  .tb-production-save-row{gap:8px;}
  .tb-render-mode-btn{flex-basis:42%;min-height:42px;}
  .tb-render-option{padding:10px 11px;}
}

/* =========================================================
   TicketBlossom Render Classic v2 - Stadium Grade Look
   Editor keeps geometry; Classic only adds visual depth.
   ========================================================= */
.tb-render-classic .tb-layout-map{
  box-shadow:
    inset 0 0 34px rgba(255,255,255,.06),
    inset 0 -22px 34px rgba(0,0,0,.16),
    0 22px 44px rgba(0,0,0,.38) !important;
}

.tb-render-classic .tb-layout-shape{
  filter:drop-shadow(7px 12px 8px rgba(0,0,0,.36));
}

/* Main face: stronger bevel + visible stadium rows */
.tb-render-classic .tb-layout-shape::before{
  border-color:rgba(255,255,255,.76) !important;
  border-width:1.7px !important;
  box-shadow:
    inset 0 3px 0 rgba(255,255,255,.42),
    inset 0 -10px 18px rgba(0,0,0,.34),
    inset 7px 0 14px rgba(255,255,255,.08),
    inset -7px 0 14px rgba(0,0,0,.18) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.34) 0%, rgba(255,255,255,.10) 20%, rgba(0,0,0,.10) 58%, rgba(0,0,0,.32) 100%),
    repeating-linear-gradient(0deg, rgba(255,255,255,.24) 0px, rgba(255,255,255,.24) 1.5px, rgba(0,0,0,0) 1.5px, rgba(0,0,0,0) 8px),
    var(--tb-shape-bg,var(--shape-color,#7D86B1)) !important;
}

/* Fake 2.5D wall under simple CSS shapes. Exclude olympic SVG-mask pieces. */
.tb-render-classic .tb-layout-shape:not(.selected):not([class*="olympic_"])::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  transform:translate(6px,9px) scale(.995);
  background:
    linear-gradient(180deg, rgba(255,255,255,.10), rgba(0,0,0,.56)),
    var(--tb-shape-bg,var(--shape-color,#7D86B1));
  opacity:.72;
  border:1px solid rgba(0,0,0,.32);
  box-sizing:border-box;
  filter:brightness(.70) saturate(.88);
}

/* Match depth layer with the same basic geometry. */
.tb-render-classic .tb-layout-shape-rectangle:not(.selected)::after,
.tb-render-classic .tb-layout-shape-rectangle_vertical:not(.selected)::after{clip-path:none;}
.tb-render-classic .tb-layout-shape-trapezoid_north:not(.selected)::after{clip-path:polygon(18% 0,82% 0,100% 100%,0 100%);}
.tb-render-classic .tb-layout-shape-trapezoid_south:not(.selected)::after{clip-path:polygon(0 0,100% 0,82% 100%,18% 100%);}
.tb-render-classic .tb-layout-shape-trapezoid_east:not(.selected)::after{clip-path:polygon(0 0,100% 18%,100% 82%,0 100%);}
.tb-render-classic .tb-layout-shape-trapezoid_west:not(.selected)::after{clip-path:polygon(100% 0,0 18%,0 82%,100% 100%);}
.tb-render-classic .tb-layout-shape-stand_horizontal:not(.selected)::after{clip-path:polygon(12% 0,88% 0,100% 100%,0 100%);}
.tb-render-classic .tb-layout-shape-stand_vertical:not(.selected)::after{clip-path:polygon(0 10%,100% 0,100% 100%,0 90%);}
.tb-render-classic .tb-layout-shape-corner_inner_left:not(.selected)::after{clip-path:polygon(0 0,100% 0,72% 28%,72% 100%,0 100%);}
.tb-render-classic .tb-layout-shape-corner_inner_right:not(.selected)::after{clip-path:polygon(0 0,100% 0,100% 100%,28% 100%,28% 28%);}
.tb-render-classic .tb-layout-shape-corner_outer_left:not(.selected)::after{clip-path:polygon(0 0,72% 0,100% 28%,100% 100%,0 100%);}
.tb-render-classic .tb-layout-shape-corner_outer_right:not(.selected)::after{clip-path:polygon(28% 0,100% 0,100% 100%,0 100%,0 28%);}
.tb-render-classic .tb-layout-shape-upper_level:not(.selected)::after{clip-path:polygon(6% 0,94% 0,100% 100%,0 100%);}
.tb-render-classic .tb-layout-shape-palco:not(.selected)::after{clip-path:polygon(8% 0,92% 0,92% 100%,8% 100%);}
.tb-render-classic .tb-layout-shape-vip:not(.selected)::after{clip-path:polygon(0 0,100% 0,88% 100%,12% 100%);}

/* Orientation-aware rows: east/west and vertical pieces keep rows along their long side. */
.tb-render-classic .tb-layout-shape-rectangle_vertical::before,
.tb-render-classic .tb-layout-shape-trapezoid_east::before,
.tb-render-classic .tb-layout-shape-trapezoid_west::before,
.tb-render-classic .tb-layout-shape-stand_vertical::before,
.tb-render-classic .tb-layout-shape-corner_inner_left::before,
.tb-render-classic .tb-layout-shape-corner_inner_right::before,
.tb-render-classic .tb-layout-shape-corner_outer_left::before,
.tb-render-classic .tb-layout-shape-corner_outer_right::before{
  background:
    linear-gradient(90deg, rgba(255,255,255,.34) 0%, rgba(255,255,255,.10) 20%, rgba(0,0,0,.10) 58%, rgba(0,0,0,.32) 100%),
    repeating-linear-gradient(90deg, rgba(255,255,255,.24) 0px, rgba(255,255,255,.24) 1.5px, rgba(0,0,0,0) 1.5px, rgba(0,0,0,0) 8px),
    var(--tb-shape-bg,var(--shape-color,#7D86B1)) !important;
}

/* Olympic SVG-mask shapes: rows follow the curve using radial bands. */
.tb-render-classic .tb-layout-shape-olympic_left_full::before,
.tb-render-classic .tb-layout-shape-olympic_left_tight_full::before,
.tb-render-classic .tb-layout-shape-olympic_left_top::before,
.tb-render-classic .tb-layout-shape-olympic_left_bottom::before{
  background:
    linear-gradient(90deg, rgba(255,255,255,.35), rgba(255,255,255,.08) 42%, rgba(0,0,0,.30)),
    repeating-radial-gradient(circle at 112% 50%, rgba(255,255,255,.25) 0 1.6px, rgba(255,255,255,0) 1.6px 8px),
    var(--tb-shape-bg,var(--shape-color,#7D86B1)) !important;
  filter:drop-shadow(8px 11px 8px rgba(0,0,0,.38));
}
.tb-render-classic .tb-layout-shape-olympic_right_full::before,
.tb-render-classic .tb-layout-shape-olympic_right_tight_full::before,
.tb-render-classic .tb-layout-shape-olympic_right_top::before,
.tb-render-classic .tb-layout-shape-olympic_right_bottom::before{
  background:
    linear-gradient(270deg, rgba(255,255,255,.35), rgba(255,255,255,.08) 42%, rgba(0,0,0,.30)),
    repeating-radial-gradient(circle at -12% 50%, rgba(255,255,255,.25) 0 1.6px, rgba(255,255,255,0) 1.6px 8px),
    var(--tb-shape-bg,var(--shape-color,#7D86B1)) !important;
  filter:drop-shadow(-8px 11px 8px rgba(0,0,0,.38));
}

/* Text gets a carved sign look but stays readable. */
.tb-render-classic .tb-layout-shape span{
  text-shadow:
    0 2px 2px rgba(0,0,0,.82),
    0 0 9px rgba(0,0,0,.48),
    0 0 12px rgba(255,255,255,.14) !important;
}
.tb-render-classic .tb-layout-shape span small{
  opacity:.96;
}

/* Objects, field and stage should also feel integrated, but not overdone. */
.tb-render-classic .tb-layout-object{
  filter:drop-shadow(0 9px 9px rgba(0,0,0,.40)) drop-shadow(0 0 8px rgba(255,255,255,.10)) !important;
}
.tb-render-classic .tb-layout-field,
.tb-render-classic .tb-layout-olympic-field{
  filter:drop-shadow(0 11px 14px rgba(0,0,0,.42)) saturate(1.08) contrast(1.03) !important;
}
.tb-render-classic .tb-layout-stage-body{
  box-shadow:
    inset 0 4px 0 rgba(255,255,255,.38),
    inset 0 -12px 18px rgba(0,0,0,.40),
    0 12px 18px rgba(0,0,0,.42),
    0 0 14px rgba(255,255,255,.08) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.26), rgba(255,255,255,.06) 32%, rgba(0,0,0,.30) 100%),
    #1f1f2a !important;
}
.tb-render-classic .tb-layout-glow{
  opacity:.82 !important;
  filter:blur(10px);
}

@media(max-width:600px){
  .tb-render-classic .tb-layout-shape::before{
    box-shadow:
      inset 0 2px 0 rgba(255,255,255,.38),
      inset 0 -8px 14px rgba(0,0,0,.30),
      0 7px 9px rgba(0,0,0,.22) !important;
  }
  .tb-render-classic .tb-layout-shape:not(.selected):not([class*="olympic_"])::after{
    transform:translate(4px,7px) scale(.995);
  }
}

/* TicketBlossom Public Stadium Renderer
   event.html uses the same visual classes as the editor, but without edit handles. */
#stadium.tb-public-stadium{
  width:min(100%,820px);
  aspect-ratio:auto;
  border:0;
  border-radius:0;
  background:transparent;
  overflow:visible;
  box-shadow:none;
  margin:18px auto 4px;
}
.tb-public-stadium .tb-layout-map{
  width:min(100%,820px);
  cursor:default;
}
.tb-public-stadium .tb-layout-shape{
  cursor:pointer;
  touch-action:manipulation;
  transition:filter .18s ease, transform .18s ease;
}
.tb-public-stadium .tb-layout-shape:hover{filter:brightness(1.08) saturate(1.08);}
.tb-public-stadium .tb-layout-shape.is-sold-out{opacity:.55;filter:grayscale(.65);cursor:not-allowed;}
.tb-public-stadium .tb-layout-object{
  border:0 !important;
  pointer-events:none;
}
.tb-public-stadium .tb-layout-object::before,
.tb-public-stadium .tb-layout-object::after{display:none !important;}
.tb-public-stadium .tb-layout-shape.selected{z-index:160;}
.tb-public-stadium .tb-layout-shape.selected::after{
  content:"";
  position:absolute;
  inset:-4px;
  z-index:3;
  pointer-events:none;
  border:1.5px solid rgba(238,244,255,.78);
  background:linear-gradient(135deg,rgba(255,255,255,.10),rgba(160,190,230,.055));
  box-shadow:0 0 0 1px rgba(255,255,255,.10),0 0 7px rgba(180,205,245,.18),inset 0 0 10px rgba(255,255,255,.07);
  border-radius:10px;
  animation:tbPublicSelectPulse 2.1s ease-in-out infinite;
}
@keyframes tbPublicSelectPulse{
  0%,100%{opacity:.72;filter:brightness(1);}
  50%{opacity:.88;filter:brightness(1.04);}
}
.tb-public-stadium .tb-layout-shape-rectangle.selected::after,
.tb-public-stadium .tb-layout-shape-rectangle_vertical.selected::after{clip-path:none;}
.tb-public-stadium .tb-layout-shape-trapezoid_north.selected::after{clip-path:polygon(18% 0,82% 0,100% 100%,0 100%);}
.tb-public-stadium .tb-layout-shape-trapezoid_south.selected::after{clip-path:polygon(0 0,100% 0,82% 100%,18% 100%);}
.tb-public-stadium .tb-layout-shape-trapezoid_east.selected::after{clip-path:polygon(0 0,100% 18%,100% 82%,0 100%);}
.tb-public-stadium .tb-layout-shape-trapezoid_west.selected::after{clip-path:polygon(100% 0,0 18%,0 82%,100% 100%);}
.tb-public-stadium .tb-layout-shape-stand_horizontal.selected::after{clip-path:polygon(12% 0,88% 0,100% 100%,0 100%);}
.tb-public-stadium .tb-layout-shape-stand_vertical.selected::after{clip-path:polygon(0 10%,100% 0,100% 100%,0 90%);}
.tb-public-stadium .tb-layout-shape-corner_inner_left.selected::after{clip-path:polygon(0 0,100% 0,72% 28%,72% 100%,0 100%);}
.tb-public-stadium .tb-layout-shape-corner_inner_right.selected::after{clip-path:polygon(0 0,100% 0,100% 100%,28% 100%,28% 28%);}
.tb-public-stadium .tb-layout-shape-corner_outer_left.selected::after{clip-path:polygon(0 0,72% 0,100% 28%,100% 100%,0 100%);}
.tb-public-stadium .tb-layout-shape-corner_outer_right.selected::after{clip-path:polygon(28% 0,100% 0,100% 100%,0 100%,0 28%);}
.tb-public-stadium .tb-layout-shape-upper_level.selected::after{clip-path:polygon(6% 0,94% 0,100% 100%,0 100%);}
.tb-public-stadium .tb-layout-shape-palco.selected::after{clip-path:polygon(8% 0,92% 0,92% 100%,8% 100%);}
.tb-public-stadium .tb-layout-shape-vip.selected::after{clip-path:polygon(0 0,100% 0,88% 100%,12% 100%);}
.tb-public-stadium .tb-layout-shape-olympic_left_full.selected::after{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%200%20C35%200%200%2042%200%20100%20C0%20158%2035%20200%20100%20200%20L100%20164%20C55%20164%2038%20135%2038%20100%20C38%2065%2055%2036%20100%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%200%20C35%200%200%2042%200%20100%20C0%20158%2035%20200%20100%20200%20L100%20164%20C55%20164%2038%20135%2038%20100%20C38%2065%2055%2036%20100%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;clip-path:none !important;}
.tb-public-stadium .tb-layout-shape-olympic_left_tight_full.selected::after{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%200%20C58%200%2025%2042%2025%20100%20C25%20158%2058%20200%20100%20200%20L100%20164%20C78%20164%2063%20135%2063%20100%20C63%2065%2078%2036%20100%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%200%20C58%200%2025%2042%2025%20100%20C25%20158%2058%20200%20100%20200%20L100%20164%20C78%20164%2063%20135%2063%20100%20C63%2065%2078%2036%20100%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;clip-path:none !important;}
.tb-public-stadium .tb-layout-shape-olympic_right_full.selected::after{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%200%20C65%200%20100%2042%20100%20100%20C100%20158%2065%20200%200%20200%20L0%20164%20C45%20164%2062%20135%2062%20100%20C62%2065%2045%2036%200%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%200%20C65%200%20100%2042%20100%20100%20C100%20158%2065%20200%200%20200%20L0%20164%20C45%20164%2062%20135%2062%20100%20C62%2065%2045%2036%200%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;clip-path:none !important;}
.tb-public-stadium .tb-layout-shape-olympic_right_tight_full.selected::after{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%200%20C42%200%2075%2042%2075%20100%20C75%20158%2042%20200%200%20200%20L0%20164%20C22%20164%2037%20135%2037%20100%20C37%2065%2022%2036%200%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%200%20C42%200%2075%2042%2075%20100%20C75%20158%2042%20200%200%20200%20L0%20164%20C22%20164%2037%20135%2037%20100%20C37%2065%2022%2036%200%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;clip-path:none !important;}
.tb-public-stadium .tb-layout-shape-olympic_left_top.selected::after{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%200%20C35%200%200%2042%200%20100%20L38%20100%20C38%2065%2055%2036%20100%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%200%20C35%200%200%2042%200%20100%20L38%20100%20C38%2065%2055%2036%20100%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;clip-path:none !important;}
.tb-public-stadium .tb-layout-shape-olympic_left_bottom.selected::after{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%20100%20C0%20158%2035%20200%20100%20200%20L100%20164%20C55%20164%2038%20135%2038%20100%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%20100%20C0%20158%2035%20200%20100%20200%20L100%20164%20C55%20164%2038%20135%2038%20100%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;clip-path:none !important;}
.tb-public-stadium .tb-layout-shape-olympic_right_top.selected::after{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%200%20C65%200%20100%2042%20100%20100%20L62%20100%20C62%2065%2045%2036%200%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%200%20C65%200%20100%2042%20100%20100%20L62%20100%20C62%2065%2045%2036%200%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;clip-path:none !important;}
.tb-public-stadium .tb-layout-shape-olympic_right_bottom.selected::after{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%20100%20C100%20158%2065%20200%200%20200%20L0%20164%20C45%20164%2062%20135%2062%20100%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%20100%20C100%20158%2065%20200%200%20200%20L0%20164%20C45%20164%2062%20135%2062%20100%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;clip-path:none !important;}




/* v2.6.86 candidate - public selection follows curveTop visual face.
   The visible curve is produced by .is-curved-top::before with CSS border-radius,
   so the public selection pseudo-element must use the same curve instead of the old rectangle. */
.tb-public-stadium .tb-layout-shape.is-curved-top.selected::after{
  clip-path:none !important;
  border-radius:50% 50% 8px 8px / calc(8% + var(--tb-curve-top-pct,0%)) calc(8% + var(--tb-curve-top-pct,0%)) 8px 8px !important;
  transform:translateY(var(--tb-curve-lift,0%));
}
.tb-public-stadium .tb-public-stadium .tb-layout-shape[class*="olympic_"].is-curved-top.selected::after{
  transform:none;
}

/* v2.6.1 - Public event selection fix
   Only one public section remains selected, and the selected glow follows
   the rendered section geometry instead of staying as a rectangular tool box. */
.tb-public-stadium .tb-layout-shape.selected::after{
  border-radius:0 !important;
}
.tb-public-stadium .tb-layout-shape-rectangle.selected::after,
.tb-public-stadium .tb-layout-shape-rectangle_vertical.selected::after{clip-path:none !important;}
.tb-public-stadium .tb-layout-shape-trapezoid_north.selected::after{clip-path:polygon(18% 0,82% 0,100% 100%,0 100%) !important;}
.tb-public-stadium .tb-layout-shape-trapezoid_south.selected::after{clip-path:polygon(0 0,100% 0,82% 100%,18% 100%) !important;}
.tb-public-stadium .tb-layout-shape-trapezoid_east.selected::after{clip-path:polygon(0 0,100% 18%,100% 82%,0 100%) !important;}
.tb-public-stadium .tb-layout-shape-trapezoid_west.selected::after{clip-path:polygon(100% 0,0 18%,0 82%,100% 100%) !important;}
.tb-public-stadium .tb-layout-shape-stand_horizontal.selected::after{clip-path:polygon(12% 0,88% 0,100% 100%,0 100%) !important;}
.tb-public-stadium .tb-layout-shape-stand_vertical.selected::after{clip-path:polygon(0 10%,100% 0,100% 100%,0 90%) !important;}
.tb-public-stadium .tb-layout-shape-corner_inner_left.selected::after{clip-path:polygon(0 0,100% 0,72% 28%,72% 100%,0 100%) !important;}
.tb-public-stadium .tb-layout-shape-corner_inner_right.selected::after{clip-path:polygon(0 0,100% 0,100% 100%,28% 100%,28% 28%) !important;}
.tb-public-stadium .tb-layout-shape-corner_outer_left.selected::after{clip-path:polygon(0 0,72% 0,100% 28%,100% 100%,0 100%) !important;}
.tb-public-stadium .tb-layout-shape-corner_outer_right.selected::after{clip-path:polygon(28% 0,100% 0,100% 100%,0 100%,0 28%) !important;}
.tb-public-stadium .tb-layout-shape-upper_level.selected::after{clip-path:polygon(6% 0,94% 0,100% 100%,0 100%) !important;}
.tb-public-stadium .tb-layout-shape-palco.selected::after{clip-path:polygon(8% 0,92% 0,92% 100%,8% 100%) !important;}
.tb-public-stadium .tb-layout-shape-vip.selected::after{clip-path:polygon(0 0,100% 0,88% 100%,12% 100%) !important;}

/* TicketBlossom public precision selection v2.1
   Público: el click y el borde seleccionado siguen la geometría visible real. */
.tb-stadium-render-public .tb-layout-shape{
  cursor:pointer;
}
.tb-stadium-render-public .tb-layout-shape::after{
  pointer-events:none !important;
}
.tb-stadium-render-public .tb-layout-shape.selected::after{
  content:none !important;
  display:none !important;
}
.tb-stadium-render-public .tb-section-geometry{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:6;
  overflow:visible;
  transform:translateY(var(--tb-curve-lift,0%)) scaleX(var(--tb-flip-x,1)) scaleY(var(--tb-flip-y,1));
  transform-origin:center center;
}
.tb-stadium-render-public .tb-section-hit-path{
  fill:rgba(255,255,255,.001);
  stroke:transparent;
  stroke-width:2.8;
  vector-effect:non-scaling-stroke;
  pointer-events:visiblePainted;
  transition:stroke .12s ease, filter .12s ease, stroke-width .12s ease, fill .12s ease;
}
.tb-stadium-render-public .tb-layout-shape.selected .tb-section-hit-path{
  fill:rgba(255,255,255,.018);
  stroke:rgba(238,244,255,.82);
  stroke-width:2.1;
  filter:drop-shadow(0 0 2px rgba(255,255,255,.35)) drop-shadow(0 0 7px rgba(170,190,230,.20));
}
.tb-stadium-render-public .tb-layout-shape.is-sold-out .tb-section-hit-path{
  cursor:not-allowed;
}
.tb-stadium-render-public .tb-layout-shape span{
  pointer-events:none !important;
}


/* v2.6.21 - Premium selection cleanup
   Removes old green/neon selection feedback from the public map.
   This is cosmetic only: renderer, SVG geometry, masks and click logic remain unchanged. */
#stadium,
#stadium *{
  -webkit-tap-highlight-color:transparent !important;
}
.section.selected{
  border:1.5px solid rgba(238,244,255,.82) !important;
  background:rgba(255,255,255,.025) !important;
  box-shadow:0 0 0 1px rgba(255,255,255,.10),0 0 7px rgba(180,205,245,.16) !important;
}
.tb-public-stadium .tb-layout-shape.selected{
  box-shadow:none !important;
  outline:0 !important;
}
.tb-public-stadium .tb-layout-shape.selected::after{
  border-color:rgba(238,244,255,.72) !important;
  background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(170,190,230,.045)) !important;
  box-shadow:0 0 0 1px rgba(255,255,255,.10),0 0 6px rgba(180,205,245,.14),inset 0 0 9px rgba(255,255,255,.055) !important;
  filter:none !important;
}
#stadium.tb-public-stadium .tb-stadium-render-public .tb-layout-shape.selected .tb-section-hit-path{
  fill:rgba(255,255,255,.012) !important;
  stroke:rgba(238,244,255,.78) !important;
  stroke-width:2 !important;
  filter:drop-shadow(0 0 2px rgba(255,255,255,.30)) drop-shadow(0 0 6px rgba(170,190,230,.18)) !important;
}
#stadium.tb-public-stadium .tb-stadium-render-public .tb-layout-shape:active,
#stadium.tb-public-stadium .tb-stadium-render-public .tb-layout-shape:focus{
  background:transparent !important;
  box-shadow:none !important;
  outline:0 !important;
}


/* v2.6.23 - Plan B selection geometry support
   Selection geometry can now come from shape_data.selection_path / shape_data.selection.
   Olympic CSS-mask shapes use preserveAspectRatio="xMidYMid meet" so the
   SVG hit/selection layer follows the same aspect-ratio behavior as the visible mask.
   Renderer Classic remains untouched. */
.tb-stadium-render-public .tb-layout-shape[class*="olympic_"] .tb-section-geometry{
  pointer-events:none;
}
.tb-stadium-render-public .tb-layout-shape[class*="olympic_"] .tb-section-hit-path{
  pointer-events:visiblePainted;
}


/* v2.6.27 - Nuevas piezas partidas oficiales
   - Básicas CSS: medias piezas de trapecio con bounding box real reducido.
   - Olímpicas SVG: medias piezas tight, agregadas sin reemplazar las existentes.
*/
.tb-shape-icon-trap-north-half{width:34px;height:30px;clip-path:polygon(36% 0,100% 0,100% 100%,0 100%);}
.tb-shape-icon-trap-south-half{width:34px;height:30px;clip-path:polygon(0 0,100% 0,100% 100%,36% 100%);}
.tb-shape-icon-trap-east-half{width:34px;height:34px;clip-path:polygon(0 0,100% 36%,100% 100%,0 100%);}
.tb-shape-icon-trap-west-half{width:34px;height:34px;clip-path:polygon(100% 0,0 36%,0 100%,100% 100%);}

.tb-layout-shape-trapezoid_north_half::before{clip-path:polygon(36% 0,100% 0,100% 100%,0 100%) !important;}
.tb-layout-shape-trapezoid_south_half::before{clip-path:polygon(0 0,100% 0,100% 100%,36% 100%) !important;}
.tb-layout-shape-trapezoid_east_half::before{clip-path:polygon(0 0,100% 36%,100% 100%,0 100%) !important;}
.tb-layout-shape-trapezoid_west_half::before{clip-path:polygon(100% 0,0 36%,0 100%,100% 100%) !important;}
.tb-layout-shape-trapezoid_north_half{clip-path:none !important;}
.tb-layout-shape-trapezoid_south_half{clip-path:none !important;}
.tb-layout-shape-trapezoid_east_half{clip-path:none !important;}
.tb-layout-shape-trapezoid_west_half{clip-path:none !important;}

.tb-render-classic .tb-layout-shape-trapezoid_north_half:not(.selected)::after{clip-path:polygon(36% 0,100% 0,100% 100%,0 100%) !important;}
.tb-render-classic .tb-layout-shape-trapezoid_south_half:not(.selected)::after{clip-path:polygon(0 0,100% 0,100% 100%,36% 100%) !important;}
.tb-render-classic .tb-layout-shape-trapezoid_east_half:not(.selected)::after{clip-path:polygon(0 0,100% 36%,100% 100%,0 100%) !important;}
.tb-render-classic .tb-layout-shape-trapezoid_west_half:not(.selected)::after{clip-path:polygon(100% 0,0 36%,0 100%,100% 100%) !important;}
.tb-public-stadium .tb-layout-shape-trapezoid_north_half.selected::after{clip-path:polygon(36% 0,100% 0,100% 100%,0 100%) !important;}
.tb-public-stadium .tb-layout-shape-trapezoid_south_half.selected::after{clip-path:polygon(0 0,100% 0,100% 100%,36% 100%) !important;}
.tb-public-stadium .tb-layout-shape-trapezoid_east_half.selected::after{clip-path:polygon(0 0,100% 36%,100% 100%,0 100%) !important;}
.tb-public-stadium .tb-layout-shape-trapezoid_west_half.selected::after{clip-path:polygon(100% 0,0 36%,0 100%,100% 100%) !important;}

.tb-render-classic .tb-layout-shape-trapezoid_east_half::before,
.tb-render-classic .tb-layout-shape-trapezoid_west_half::before{
  background:
    linear-gradient(90deg, rgba(255,255,255,.34) 0%, rgba(255,255,255,.10) 20%, rgba(0,0,0,.10) 58%, rgba(0,0,0,.32) 100%),
    repeating-linear-gradient(90deg, rgba(255,255,255,.24) 0px, rgba(255,255,255,.24) 1.5px, rgba(0,0,0,0) 1.5px, rgba(0,0,0,0) 8px),
    var(--tb-shape-bg,var(--shape-color,#7D86B1)) !important;
}
.tb-shape-icon-olympic-left-tight-top{width:62px;height:74px;}
.tb-shape-icon-olympic-left-tight-top{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%200%20C58%200%2025%2042%2025%20100%20L63%20100%20C63%2065%2078%2036%20100%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%200%20C58%200%2025%2042%2025%20100%20L63%20100%20C63%2065%2078%2036%20100%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;}
.tb-shape-icon-olympic-left-tight-bottom{width:62px;height:74px;}
.tb-shape-icon-olympic-left-tight-bottom{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M25%20100%20C25%20158%2058%20200%20100%20200%20L100%20164%20C78%20164%2063%20135%2063%20100%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M25%20100%20C25%20158%2058%20200%20100%20200%20L100%20164%20C78%20164%2063%20135%2063%20100%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;}
.tb-shape-icon-olympic-right-tight-top{width:62px;height:74px;}
.tb-shape-icon-olympic-right-tight-top{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%200%20C42%200%2075%2042%2075%20100%20L37%20100%20C37%2065%2022%2036%200%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%200%20C42%200%2075%2042%2075%20100%20L37%20100%20C37%2065%2022%2036%200%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;}
.tb-shape-icon-olympic-right-tight-bottom{width:62px;height:74px;}
.tb-shape-icon-olympic-right-tight-bottom{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M75%20100%20C75%20158%2042%20200%200%20200%20L0%20164%20C22%20164%2037%20135%2037%20100%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M75%20100%20C75%20158%2042%20200%200%20200%20L0%20164%20C22%20164%2037%20135%2037%20100%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;}
.tb-layout-shape-olympic_left_tight_top::before{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%200%20C58%200%2025%2042%2025%20100%20L63%20100%20C63%2065%2078%2036%20100%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%200%20C58%200%2025%2042%2025%20100%20L63%20100%20C63%2065%2078%2036%20100%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;clip-path:none !important;}
.tb-public-stadium .tb-layout-shape-olympic_left_tight_top.selected::after{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%200%20C58%200%2025%2042%2025%20100%20L63%20100%20C63%2065%2078%2036%20100%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M100%200%20C58%200%2025%2042%2025%20100%20L63%20100%20C63%2065%2078%2036%20100%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;clip-path:none !important;}
.tb-layout-shape-olympic_left_tight_bottom::before{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M25%20100%20C25%20158%2058%20200%20100%20200%20L100%20164%20C78%20164%2063%20135%2063%20100%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M25%20100%20C25%20158%2058%20200%20100%20200%20L100%20164%20C78%20164%2063%20135%2063%20100%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;clip-path:none !important;}
.tb-public-stadium .tb-layout-shape-olympic_left_tight_bottom.selected::after{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M25%20100%20C25%20158%2058%20200%20100%20200%20L100%20164%20C78%20164%2063%20135%2063%20100%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M25%20100%20C25%20158%2058%20200%20100%20200%20L100%20164%20C78%20164%2063%20135%2063%20100%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;clip-path:none !important;}
.tb-layout-shape-olympic_right_tight_top::before{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%200%20C42%200%2075%2042%2075%20100%20L37%20100%20C37%2065%2022%2036%200%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%200%20C42%200%2075%2042%2075%20100%20L37%20100%20C37%2065%2022%2036%200%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;clip-path:none !important;}
.tb-public-stadium .tb-layout-shape-olympic_right_tight_top.selected::after{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%200%20C42%200%2075%2042%2075%20100%20L37%20100%20C37%2065%2022%2036%200%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M0%200%20C42%200%2075%2042%2075%20100%20L37%20100%20C37%2065%2022%2036%200%2036%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;clip-path:none !important;}
.tb-layout-shape-olympic_right_tight_bottom::before{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M75%20100%20C75%20158%2042%20200%200%20200%20L0%20164%20C22%20164%2037%20135%2037%20100%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M75%20100%20C75%20158%2042%20200%200%20200%20L0%20164%20C22%20164%2037%20135%2037%20100%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;clip-path:none !important;}
.tb-public-stadium .tb-layout-shape-olympic_right_tight_bottom.selected::after{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M75%20100%20C75%20158%2042%20200%200%20200%20L0%20164%20C22%20164%2037%20135%2037%20100%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20200%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20d%3D%22M75%20100%20C75%20158%2042%20200%200%20200%20L0%20164%20C22%20164%2037%20135%2037%20100%20Z%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;clip-path:none !important;}

.tb-layout-shape-olympic_left_tight_top::before,.tb-layout-shape-olympic_left_tight_bottom::before,.tb-layout-shape-olympic_right_tight_top::before,.tb-layout-shape-olympic_right_tight_bottom::before{
  border:0 !important;
}
.tb-render-classic .tb-layout-shape-olympic_left_tight_top::before,
.tb-render-classic .tb-layout-shape-olympic_left_tight_bottom::before{
  background:
    linear-gradient(90deg, rgba(255,255,255,.35), rgba(255,255,255,.08) 42%, rgba(0,0,0,.30)),
    repeating-radial-gradient(circle at 112% 50%, rgba(255,255,255,.25) 0 1.6px, rgba(255,255,255,0) 1.6px 8px),
    var(--tb-shape-bg,var(--shape-color,#7D86B1)) !important;
  filter:drop-shadow(8px 11px 8px rgba(0,0,0,.38));
}
.tb-render-classic .tb-layout-shape-olympic_right_tight_top::before,
.tb-render-classic .tb-layout-shape-olympic_right_tight_bottom::before{
  background:
    linear-gradient(270deg, rgba(255,255,255,.35), rgba(255,255,255,.08) 42%, rgba(0,0,0,.30)),
    repeating-radial-gradient(circle at -12% 50%, rgba(255,255,255,.25) 0 1.6px, rgba(255,255,255,0) 1.6px 8px),
    var(--tb-shape-bg,var(--shape-color,#7D86B1)) !important;
  filter:drop-shadow(-8px 11px 8px rgba(0,0,0,.38));
}

/* TicketBlossom v2.6.30 - Field app-style dialog + field catalog */
.tb-field-edit-backdrop,
.tb-field-catalog-backdrop{
  background:rgba(0,0,0,.34) !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  z-index:10040 !important;
}
.tb-field-edit-card{width:min(92vw,360px) !important;padding:14px !important;border-radius:22px !important;}
.tb-field-edit-body{display:grid;gap:11px;}
.tb-priority-row{display:grid;grid-template-columns:1fr 82px auto;gap:8px;align-items:center;}
.tb-priority-row label{font-weight:900;color:#fff;}
.tb-priority-row input{margin-top:0;text-align:center;font-weight:900;min-height:38px;}
.tb-field-scenary-block{display:grid;gap:7px;}
.tb-field-scenary-label{font-weight:900;color:#fff;font-size:14px;}
.tb-field-scenary-picker{
  width:100%;
  min-height:44px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.15);
  background:linear-gradient(180deg,#232323,#151515);
  color:#fff;
  padding:0 13px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-weight:900;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 10px 24px rgba(0,0,0,.22);
}
.tb-field-scenary-arrow{font-size:19px;color:#bdbdbd;line-height:1;}
.tb-field-apply-btn{min-height:42px;border-radius:14px !important;font-weight:950 !important;}
.tb-field-catalog-card{width:min(92vw,520px) !important;padding:16px !important;}
.tb-field-catalog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;}
.tb-field-catalog-item{
  border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(180deg,#232323,#151515);
  border-radius:18px;
  padding:12px;
  color:#fff;
  text-align:left;
  display:grid;
  gap:8px;
  cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 12px 30px rgba(0,0,0,.22);
}
.tb-field-catalog-item.active{border-color:#6aa6ff;box-shadow:0 0 0 2px rgba(80,140,255,.25),0 0 22px rgba(80,140,255,.18);}
.tb-field-catalog-item b{font-size:15px;}
.tb-field-catalog-item small{color:#bdbdbd;font-size:12px;line-height:1.25;}
.tb-field-catalog-preview{
  height:86px;
  border-radius:14px;
  background:radial-gradient(circle at center,rgba(255,255,255,.08),rgba(0,0,0,.18));
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.tb-field-mini{
  position:relative;
  display:block;
  width:150px;
  height:64px;
  border-radius:12px;
  overflow:hidden;
  background:repeating-linear-gradient(90deg,#176b32 0,#176b32 8%,#1f7f3d 8%,#1f7f3d 16%),linear-gradient(180deg,#1f8b45,#12622e);
  border:2px solid rgba(255,255,255,.78);
  box-shadow:inset 0 0 16px rgba(0,0,0,.35),0 8px 18px rgba(0,0,0,.35);
}
.tb-field-mini .tb-field-line,
.tb-field-mini .tb-field-center-circle,
.tb-field-mini .tb-field-center-dot,
.tb-field-mini .tb-field-box,
.tb-field-mini .tb-field-small-box,
.tb-field-mini .tb-field-goal{position:absolute;z-index:2;}
.tb-field-mini .tb-field-midline{left:50%;top:0;width:2px;height:100%;background:rgba(255,255,255,.72);}
.tb-field-mini .tb-field-center-circle{left:50%;top:50%;width:25%;height:48%;border:2px solid rgba(255,255,255,.72);border-radius:50%;transform:translate(-50%,-50%);}
.tb-field-mini .tb-field-center-dot{left:50%;top:50%;width:5px;height:5px;background:#fff;border-radius:50%;transform:translate(-50%,-50%);}
.tb-field-mini .tb-field-box{top:27%;width:17%;height:46%;border:2px solid rgba(255,255,255,.72);}
.tb-field-mini .tb-field-box-left{left:0;border-left:0;}
.tb-field-mini .tb-field-box-right{right:0;border-right:0;}
.tb-field-mini .tb-field-small-box{top:37%;width:8%;height:26%;border:2px solid rgba(255,255,255,.72);}
.tb-field-mini .tb-field-small-box-left{left:0;border-left:0;}
.tb-field-mini .tb-field-small-box-right{right:0;border-right:0;}
.tb-field-mini .tb-field-goal{top:42%;width:4%;height:16%;border:1px solid rgba(255,255,255,.55);}
.tb-field-mini .tb-field-goal-left{left:-3%;}.tb-field-mini .tb-field-goal-right{right:-3%;}
@media(max-width:520px){.tb-priority-row{grid-template-columns:1fr 76px auto}.tb-field-catalog-grid{grid-template-columns:1fr}}

/* TicketBlossom v2.6.31 - Field dialog polish + field scenary catalog */
.tb-field-edit-card{width:min(92vw,340px) !important;padding:13px 14px 14px !important;}
.tb-field-edit-body{gap:10px !important;}
.tb-field-edit-section{display:grid;gap:7px;}
.tb-field-edit-separator{height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.16),transparent);margin:1px 0;}
.tb-priority-row{grid-template-columns:1fr 78px auto !important;gap:7px !important;}
.tb-priority-row input{min-height:36px !important;padding:9px 10px !important;border-radius:11px !important;}
.tb-priority-row .admin-small-btn{min-height:36px !important;padding:8px 11px !important;border-radius:11px !important;}
.tb-field-scenary-picker{min-height:42px !important;border-radius:13px !important;}
.tb-field-actions{display:flex;justify-content:center;padding-top:1px;}
.tb-field-apply-btn{
  width:auto !important;
  min-width:116px;
  min-height:40px !important;
  padding:10px 22px !important;
  border-radius:13px !important;
  font-weight:950 !important;
  background:linear-gradient(180deg,#64d56f,#35a646) !important;
  color:#fff !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.24),0 9px 20px rgba(40,185,75,.24),0 4px 10px rgba(0,0,0,.32) !important;
  transition:transform .12s ease,filter .12s ease,box-shadow .12s ease;
}
.tb-field-apply-btn:hover{opacity:1 !important;filter:brightness(1.06);text-decoration:none !important;}
.tb-field-apply-btn:active{transform:translateY(1px) scale(.985);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 4px 12px rgba(40,185,75,.20) !important;}

/* Shared field scenary geometry. Default stays visually unchanged; variants add an inner playable field. */
.tb-layout-field .tb-field-lines,
.tb-field-mini .tb-field-lines{
  position:absolute;
  inset:0;
  z-index:1;
  overflow:hidden;
  border-radius:12px;
  pointer-events:none;
}
.tb-layout-field .tb-field-stripe,
.tb-field-mini .tb-field-stripe{
  position:absolute;
  inset:0;
  z-index:0;
  background:transparent;
  pointer-events:none;
}
.tb-field-scenary-soccer_grass_border,
.tb-field-scenary-american_football,
.tb-field-mini-soccer_grass_border,
.tb-field-mini-american_football{
  border-color:rgba(255,255,255,.30) !important;
  background:
    radial-gradient(circle at 50% 50%,rgba(255,255,255,.05),transparent 40%),
    repeating-linear-gradient(90deg,#145c2b 0,#145c2b 8%,#1d7135 8%,#1d7135 16%),
    linear-gradient(180deg,#19793a,#0f4d25) !important;
}
.tb-field-scenary-soccer_grass_border .tb-soccer-lines,
.tb-field-mini-soccer_grass_border .tb-soccer-lines{
  inset:8% 6%;
  border:2px solid rgba(255,255,255,.78);
  border-radius:10px;
  background:
    repeating-linear-gradient(90deg,#176b32 0,#176b32 8%,#1f7f3d 8%,#1f7f3d 16%),
    linear-gradient(180deg,#1f8b45,#12622e);
  box-shadow:inset 0 0 18px rgba(0,0,0,.32),0 0 0 1px rgba(0,0,0,.12);
}
.tb-field-scenary-soccer_grass_border .tb-soccer-lines .tb-field-box-left,
.tb-field-mini-soccer_grass_border .tb-soccer-lines .tb-field-box-left{left:0;}
.tb-field-scenary-soccer_grass_border .tb-soccer-lines .tb-field-box-right,
.tb-field-mini-soccer_grass_border .tb-soccer-lines .tb-field-box-right{right:0;}
.tb-field-scenary-soccer_grass_border .tb-soccer-lines .tb-field-goal-left,
.tb-field-mini-soccer_grass_border .tb-soccer-lines .tb-field-goal-left{left:-2%;}
.tb-field-scenary-soccer_grass_border .tb-soccer-lines .tb-field-goal-right,
.tb-field-mini-soccer_grass_border .tb-soccer-lines .tb-field-goal-right{right:-2%;}

.tb-field-scenary-american_football .tb-football-lines,
.tb-field-mini-american_football .tb-football-lines{
  inset:8% 5.5%;
  border:2px solid rgba(255,255,255,.78);
  border-radius:9px;
  background:
    repeating-linear-gradient(90deg,#1d7435 0,#1d7435 8%,#17662f 8%,#17662f 16%),
    linear-gradient(180deg,#1f8742,#12602d);
  box-shadow:inset 0 0 18px rgba(0,0,0,.34),0 0 0 1px rgba(0,0,0,.10);
}
.tb-football-yardline,
.tb-football-midline,
.tb-football-hash,
.tb-football-number,
.tb-football-endzone{position:absolute;z-index:2;pointer-events:none;}
.tb-football-yardline{top:0;bottom:0;width:1.5px;background:rgba(255,255,255,.62);transform:translateX(-50%);}
.tb-football-midline{left:50%;top:0;bottom:0;width:2.5px;background:rgba(255,255,255,.82);transform:translateX(-50%);}
.tb-football-hash{width:1.2px;height:10%;background:rgba(255,255,255,.66);transform:translateX(-50%);}
.tb-football-hash.top{top:31%;}.tb-football-hash.bottom{bottom:31%;}
.tb-football-endzone{top:0;bottom:0;width:10%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:950;letter-spacing:1px;color:rgba(255,255,255,.58);background:rgba(0,0,0,.10);writing-mode:vertical-rl;text-orientation:mixed;}
.tb-football-endzone-left{left:0;border-right:1.5px solid rgba(255,255,255,.70);}
.tb-football-endzone-right{right:0;border-left:1.5px solid rgba(255,255,255,.70);transform:rotate(180deg);}
.tb-football-number{top:50%;font-size:11px;font-weight:950;color:rgba(255,255,255,.60);text-shadow:0 1px 3px rgba(0,0,0,.35);transform:translate(-50%,-50%);}
.tb-football-number.n20.left{left:25%;}.tb-football-number.n40.left{left:42%;}.tb-football-number.n40.right{left:58%;}.tb-football-number.n20.right{left:75%;}

/* Field catalog miniatures inherit the same scenary renderer, with lighter typography/details. */
.tb-field-mini .tb-football-endzone{font-size:6px;letter-spacing:.5px;}
.tb-field-mini .tb-football-number{font-size:7px;}
.tb-field-mini .tb-football-hash{height:8%;}
.tb-field-mini-soccer_default .tb-field-lines{inset:0;}
@media(max-width:520px){.tb-field-edit-card{width:min(92vw,328px) !important}.tb-priority-row{grid-template-columns:1fr 74px auto !important}}

/* TicketBlossom v2.6.32 - Field grass polish + Stage scenary catalog */
.tb-field-scenary-soccer_grass_border,
.tb-field-scenary-american_football,
.tb-field-mini-soccer_grass_border,
.tb-field-mini-american_football{
  background:
    radial-gradient(circle at 50% 50%,rgba(255,255,255,.045),transparent 42%),
    linear-gradient(180deg,#1f7f3d,#1d7135) !important;
}
.tb-stage-scenary-stage_oval .tb-layout-stage-body,
.tb-stage-mini-stage_oval{
  clip-path:none !important;
  border-radius:999px !important;
  background:
    radial-gradient(circle at 50% 32%,rgba(255,255,255,.24),transparent 38%),
    linear-gradient(180deg,rgba(82,82,92,.88),rgba(29,29,34,.78) 62%,rgba(12,12,16,.70)) !important;
  border:1px solid rgba(255,255,255,.22) !important;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.24),inset 0 -8px 16px rgba(0,0,0,.34),0 14px 26px rgba(0,0,0,.40),0 0 22px rgba(255,255,255,.08) !important;
}
.tb-stage-scenary-stage_square .tb-layout-stage-body,
.tb-stage-mini-stage_square{
  clip-path:none !important;
  border-radius:18px !important;
  background:
    linear-gradient(145deg,rgba(255,255,255,.16),transparent 24%),
    linear-gradient(180deg,rgba(77,78,88,.90),rgba(31,31,37,.82) 56%,rgba(12,12,15,.78)) !important;
  border:1px solid rgba(255,255,255,.23) !important;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.25),inset 0 -9px 18px rgba(0,0,0,.36),0 16px 28px rgba(0,0,0,.42),0 0 20px rgba(70,140,255,.08) !important;
}
.tb-stage-scenary-stage_catwalk .tb-layout-stage-body,
.tb-stage-mini-stage_catwalk{
  clip-path:none !important;
  border-radius:16px !important;
  background:
    linear-gradient(145deg,rgba(255,255,255,.16),transparent 22%),
    linear-gradient(180deg,rgba(76,77,86,.90),rgba(29,29,36,.82) 58%,rgba(10,10,14,.78)) !important;
  border:1px solid rgba(255,255,255,.23) !important;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.24),inset 0 -9px 18px rgba(0,0,0,.38),0 17px 30px rgba(0,0,0,.44),0 0 20px rgba(242,139,174,.10) !important;
}
.tb-stage-scenary-stage_catwalk .tb-layout-stage-body::before,
.tb-stage-mini-stage_catwalk::before{
  content:"";
  position:absolute;
  left:50%;
  top:100%;
  width:34%;
  height:82%;
  transform:translateX(-50%);
  border-radius:0 0 14px 14px;
  background:
    linear-gradient(90deg,rgba(255,255,255,.13),transparent 24%,transparent 76%,rgba(255,255,255,.08)),
    linear-gradient(180deg,rgba(55,56,65,.82),rgba(16,16,20,.74));
  border:1px solid rgba(255,255,255,.19);
  border-top:0;
  box-shadow:inset 0 -7px 14px rgba(0,0,0,.32),0 16px 26px rgba(0,0,0,.34);
  pointer-events:none;
  z-index:-1;
}
.tb-stage-scenary-stage_catwalk{overflow:visible !important;}
.tb-stage-scenary-stage_oval .tb-layout-stage-body span,
.tb-stage-scenary-stage_square .tb-layout-stage-body span,
.tb-stage-scenary-stage_catwalk .tb-layout-stage-body span,
.tb-stage-mini span{
  color:rgba(255,255,255,.82);
  text-shadow:0 2px 5px rgba(0,0,0,.65);
}
.tb-stage-mini{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:140px;
  height:54px;
  color:rgba(255,255,255,.82);
  font-size:13px;
  font-weight:950;
  letter-spacing:2px;
  text-shadow:0 2px 5px rgba(0,0,0,.65);
  background:
    radial-gradient(circle at 50% 0,rgba(255,255,255,.18),transparent 28%),
    linear-gradient(180deg,#4b3b56,#231b2a 58%,#111);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:inset 0 2px 0 rgba(255,255,255,.24),inset 0 -8px 16px rgba(0,0,0,.34),0 9px 18px rgba(0,0,0,.32);
  overflow:visible;
}
.tb-stage-mini-stage_default{
  clip-path:polygon(12% 0,88% 0,100% 100%,0 100%);
  border-radius:14px;
}
.tb-stage-mini-stage_catwalk{margin-bottom:28px;}
.tb-stage-catalog-preview{overflow:visible !important;min-height:96px;}


/* TicketBlossom v2.6.33 - Olympic field scenary catalog */
.tb-field-mini-olympic{
  width:168px;
  height:88px;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  border-radius:0 !important;
  overflow:visible !important;
  display:flex;
  align-items:center;
  justify-content:center;
}
.tb-field-mini-olympic img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  pointer-events:none;
  user-select:none;
  -webkit-user-drag:none;
  filter:drop-shadow(0 7px 12px rgba(0,0,0,.42));
}
.tb-field-catalog-item .tb-field-mini-olympic + b{margin-top:0;}

/* TicketBlossom v2.6.34 - Object editor + section priority polish */
.tb-object-edit-backdrop{background:rgba(0,0,0,.34) !important;backdrop-filter:none !important;-webkit-backdrop-filter:none !important;z-index:10040 !important;}
.tb-object-edit-card{width:min(92vw,340px) !important;padding:13px 14px 14px !important;border-radius:22px !important;}
.tb-object-type-picker span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tb-section-priority-block{display:grid;gap:10px;margin-top:2px;}
.tb-section-priority-row{max-width:100%;}
.tb-section-modal-actions{justify-content:center !important;}
#sectionSubmitBtn{min-width:142px;}
@media(max-width:520px){.tb-section-priority-row{grid-template-columns:1fr 74px auto !important;}}


/* TicketBlossom v2.6.35 - UI polish + object catalog modal flow */
.tb-field-edit-card,
.tb-stage-edit-card,
.tb-object-edit-card{
  width:min(92vw,330px) !important;
  padding:13px !important;
  border-radius:20px !important;
}
.tb-field-edit-card .tb-modal-head,
.tb-stage-edit-card .tb-modal-head,
.tb-object-edit-card .tb-modal-head{
  margin-bottom:7px !important;
}
.tb-field-edit-card .tb-modal-head h2,
.tb-stage-edit-card .tb-modal-head h2,
.tb-object-edit-card .tb-modal-head h2{
  font-size:24px !important;
  letter-spacing:-.25px;
}
.tb-field-edit-body{gap:8px !important;}
.tb-field-edit-section{gap:6px !important;}
.tb-field-edit-separator{margin:0 !important;}
.tb-priority-row{
  grid-template-columns:1fr 68px auto !important;
  gap:7px !important;
}
.tb-priority-row label{
  font-size:14px !important;
  font-weight:900 !important;
}
.tb-priority-row input{
  min-height:34px !important;
  height:34px !important;
  padding:7px 8px !important;
  border-radius:10px !important;
  font-size:16px !important;
  font-weight:800 !important;
  line-height:1 !important;
}
.tb-priority-row .admin-small-btn{
  min-height:34px !important;
  height:34px !important;
  padding:7px 10px !important;
  border-radius:10px !important;
  font-size:13px !important;
  font-weight:850 !important;
}
.tb-field-scenary-label{font-size:13px !important;margin-bottom:0 !important;}
.tb-field-scenary-picker{
  min-height:38px !important;
  border-radius:11px !important;
  padding:0 11px !important;
  font-size:15px !important;
}
.tb-field-scenary-arrow{font-size:17px !important;}
.tb-field-actions{padding-top:0 !important;}
.tb-field-apply-btn{
  min-width:108px !important;
  min-height:38px !important;
  height:38px !important;
  padding:9px 20px !important;
  border-radius:12px !important;
  font-size:15px !important;
  font-weight:900 !important;
  background:linear-gradient(180deg,#60d66d,#43b750) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.24),0 10px 20px rgba(42,190,77,.25),0 4px 10px rgba(0,0,0,.30) !important;
  transition:transform .11s ease,filter .11s ease,box-shadow .11s ease,opacity .11s ease !important;
}
.tb-field-apply-btn:hover{opacity:1 !important;filter:brightness(1.04) !important;}
.tb-field-apply-btn:active{
  transform:translateY(1px) scale(.975) !important;
  filter:brightness(.98) !important;
  box-shadow:inset 0 2px 4px rgba(0,0,0,.18),0 4px 12px rgba(42,190,77,.18) !important;
}
.tb-section-priority-block{gap:7px !important;margin-top:0 !important;}
.tb-section-priority-row{
  grid-template-columns:1fr 68px auto !important;
  gap:7px !important;
  align-items:center !important;
}
.tb-section-priority-row label{font-size:14px !important;}
.tb-section-priority-row input{font-size:16px !important;min-height:34px !important;height:34px !important;padding:7px 8px !important;}
.tb-section-priority-row .admin-small-btn{min-height:34px !important;height:34px !important;font-size:13px !important;}
.tb-section-modal-card .tb-field-edit-separator{margin:2px 0 0 !important;}
@media(max-width:520px){
  .tb-field-edit-card,.tb-stage-edit-card,.tb-object-edit-card{width:min(92vw,326px) !important;}
  .tb-priority-row,.tb-section-priority-row{grid-template-columns:1fr 66px auto !important;}
}

/* TicketBlossom v2.6.38 - editor UX final polish */
.tb-modal-card{
  transition:transform .18s ease, opacity .18s ease !important;
  will-change:transform;
}
.tb-modal-card.tb-keyboard-lift{
  transform:translateY(var(--tb-keyboard-lift, -120px)) !important;
}

/* Use Editar sección as the visual reference for compact property dialogs */
.tb-field-edit-card,
.tb-stage-edit-card,
.tb-object-edit-card{
  width:min(92vw,326px) !important;
  padding:13px 14px 14px !important;
  border-radius:20px !important;
}
.tb-field-edit-card .tb-modal-head,
.tb-stage-edit-card .tb-modal-head,
.tb-object-edit-card .tb-modal-head{
  margin-bottom:8px !important;
}
.tb-field-edit-card .tb-modal-head h2,
.tb-stage-edit-card .tb-modal-head h2,
.tb-object-edit-card .tb-modal-head h2{
  font-size:18px !important;
  line-height:1.05 !important;
  letter-spacing:-.02em !important;
}
.tb-field-edit-body{
  gap:8px !important;
}
.tb-field-edit-section{
  gap:6px !important;
}
.tb-field-edit-separator{
  margin:0 !important;
}
.tb-priority-row,
.tb-section-priority-row{
  grid-template-columns:1fr 66px auto !important;
  gap:7px !important;
  align-items:center !important;
}
.tb-priority-row label,
.tb-section-priority-row label{
  font-size:14px !important;
  line-height:1.1 !important;
  font-weight:850 !important;
  letter-spacing:-.01em !important;
}
#fieldPriorityInput,
#stagePriorityInput,
#objectPriorityInput,
#sectionPriorityInput,
.tb-priority-row input,
.tb-section-priority-row input{
  min-height:34px !important;
  height:34px !important;
  padding:7px 8px !important;
  border-radius:11px !important;
  font-size:16px !important;
  line-height:1.1 !important;
  font-weight:800 !important;
  text-align:center !important;
}
.tb-priority-row .admin-small-btn,
.tb-section-priority-row .admin-small-btn{
  min-height:34px !important;
  height:34px !important;
  padding:7px 10px !important;
  border-radius:11px !important;
  font-size:13px !important;
  line-height:1 !important;
  font-weight:850 !important;
}
.tb-field-scenary-label{
  font-size:14px !important;
  line-height:1.1 !important;
  font-weight:850 !important;
}
.tb-field-scenary-picker{
  min-height:38px !important;
  border-radius:12px !important;
  padding:0 12px !important;
  font-size:15px !important;
  font-weight:850 !important;
}
.tb-field-actions{
  padding-top:0 !important;
}
.tb-field-apply-btn{
  min-width:112px !important;
  min-height:38px !important;
  padding:9px 21px !important;
  border-radius:13px !important;
  background:linear-gradient(180deg,#62d96e,#34a745) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.24),0 10px 22px rgba(47,190,77,.28),0 4px 12px rgba(0,0,0,.32) !important;
  transform:translateZ(0);
  transition:transform .12s ease, filter .12s ease, box-shadow .12s ease, opacity .12s ease !important;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.tb-field-apply-btn:active,
.tb-field-apply-btn.is-pressed{
  transform:translateY(1px) scale(.975) !important;
  filter:brightness(.98) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 4px 12px rgba(47,190,77,.22),0 2px 7px rgba(0,0,0,.35) !important;
}
.tb-section-priority-block{
  gap:7px !important;
  margin-top:0 !important;
}
.tb-section-modal-card .tb-section-priority-row{
  margin-top:0 !important;
}
@media(max-width:520px){
  .tb-field-edit-card,
  .tb-stage-edit-card,
  .tb-object-edit-card{width:min(92vw,322px) !important;}
  .tb-priority-row,
  .tb-section-priority-row{grid-template-columns:1fr 64px auto !important;}
  #fieldPriorityInput,
  #stagePriorityInput,
  #objectPriorityInput,
  #sectionPriorityInput{font-size:15px !important;}
}

/* TicketBlossom v2.6.38 - editor UX final polish */
.admin-optional-toggle-wrap{
  grid-column:1 / -1;
}
.admin-optional-toggle{
  width:100%;
  min-height:38px;
  padding:8px 11px;
  border-radius:13px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.055);
  color:#f4f7ff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-weight:850;
  font-size:14px;
  letter-spacing:-.01em;
  cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 8px 18px rgba(0,0,0,.22);
  transition:transform .12s ease, background .12s ease, border-color .12s ease;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.admin-optional-toggle:hover,
.admin-optional-toggle.is-open{
  background:rgba(255,255,255,.08);
  border-color:rgba(120,185,255,.35);
}
.admin-optional-toggle:active{
  transform:translateY(1px) scale(.99);
}
.admin-optional-toggle b{
  font-size:16px;
  line-height:1;
  opacity:.9;
}
.admin-optional-fields{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px 10px;
  padding:10px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  background:rgba(0,0,0,.16);
}
.admin-optional-fields label{
  margin:5px 0 3px !important;
  font-size:12px !important;
}
.admin-optional-fields input,
.admin-optional-fields select{
  min-height:38px !important;
  padding:8px 10px !important;
  font-size:14px !important;
}
@media(max-width:700px){
  .admin-optional-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
}
.tb-datetime-picker-field{
  cursor:pointer;
  color-scheme:dark;
}
.tb-datetime-picker-field::-webkit-calendar-picker-indicator{
  cursor:pointer;
  filter:invert(1) brightness(1.9) contrast(1.1);
  opacity:.9;
}
.tb-datetime-picker-field:hover::-webkit-calendar-picker-indicator{
  opacity:1;
}
.tb-layout-map .tb-editable-layout-object.selected{
  touch-action:none;
}
.tb-layout-map .tb-editable-layout-object.selected:has(.tb-move-handle){
  cursor:grab;
}
body.tb-layout-dragging .tb-layout-map .tb-editable-layout-object.selected{
  cursor:grabbing;
}


/* TicketBlossom v2.6.39 - optional panel polish */
.admin-optional-toggle-wrap{
  grid-column:1 / -1;
  display:flex;
  justify-content:flex-start;
}
.admin-optional-toggle{
  width:auto !important;
  min-width:132px;
  min-height:38px !important;
  height:38px;
  padding:8px 13px !important;
  border-radius:9px !important;
  border:1px solid rgba(255,255,255,.12) !important;
  background:#333 !important;
  color:#fff !important;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-size:13px !important;
  font-weight:800 !important;
  letter-spacing:0 !important;
  box-shadow:none !important;
  cursor:pointer;
  transition:background .12s ease, transform .12s ease, border-color .12s ease;
}
.admin-optional-toggle:hover,
.admin-optional-toggle.is-open{
  background:#3a3a3a !important;
  border-color:rgba(255,255,255,.18) !important;
  opacity:1 !important;
}
.admin-optional-toggle:active{
  transform:translateY(1px) scale(.99);
}
.admin-optional-toggle b{
  font-size:14px !important;
  line-height:1;
  opacity:.95;
}
.admin-optional-fields{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px 10px;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
}
.admin-optional-fields > div{
  min-width:0;
  grid-column:auto !important;
}
.admin-optional-fields > div:first-child{
  grid-column:1 / -1 !important;
}
.admin-optional-fields label{
  margin:5px 0 3px !important;
  font-size:12px !important;
}
.admin-optional-fields input,
.admin-optional-fields select{
  min-height:38px !important;
  height:38px;
  padding:8px 10px !important;
  font-size:14px !important;
}
@media(max-width:700px){
  .admin-optional-fields{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px 10px !important;
  }
  .admin-optional-fields > div:first-child{
    grid-column:1 / -1 !important;
  }
}

/* TicketBlossom v2.6.39 - date/time picker visibility */
.tb-datetime-picker-field{
  cursor:pointer;
  color-scheme:dark;
}
.tb-datetime-picker-field::-webkit-calendar-picker-indicator{
  cursor:pointer;
  opacity:1 !important;
  filter:invert(1) brightness(2.4) contrast(1.15) drop-shadow(0 0 1px rgba(255,255,255,.65)) !important;
}
.tb-datetime-picker-field:hover::-webkit-calendar-picker-indicator{
  opacity:1 !important;
  filter:invert(1) brightness(2.8) contrast(1.2) drop-shadow(0 0 2px rgba(255,255,255,.8)) !important;
}

/* TicketBlossom v2.6.41 - generic native select replacement modal */
.tb-generic-select-backdrop{z-index:10020;}
.tb-generic-select-card{
  width:min(360px,92vw);
  max-height:min(78vh,620px);
  border-radius:18px;
  padding:12px;
  background:linear-gradient(180deg,#1a1a1a,#111);
  border:1px solid rgba(255,255,255,.13);
  box-shadow:0 22px 55px rgba(0,0,0,.55);
  display:flex;
  flex-direction:column;
}
.tb-generic-select-head{padding:2px 2px 9px !important;}
.tb-generic-select-head h3{font-size:15px !important;margin:0 !important;}
.tb-generic-select-list{
  display:grid;
  gap:8px;
  overflow:auto;
  overscroll-behavior:contain;
  padding-right:2px;
}
.tb-generic-select-option{
  width:100%;
  border:1px solid rgba(255,255,255,.10);
  border-radius:14px;
  background:linear-gradient(180deg,#202020,#151515);
  color:#fff;
  min-height:48px;
  padding:8px 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  text-align:left;
  font-size:13px;
  font-weight:850;
  cursor:pointer;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.025),0 8px 18px rgba(0,0,0,.22);
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.tb-generic-select-option:hover,
.tb-generic-select-option.is-active{
  border-color:rgba(102,255,136,.38);
  box-shadow:0 0 0 1px rgba(102,255,136,.16),0 8px 20px rgba(0,0,0,.28);
}
.tb-generic-select-option b{color:#66ff88;font-size:14px;}
.tb-generic-select-trigger{
  width:100%;
  min-height:38px !important;
  height:38px;
  padding:8px 10px !important;
  border-radius:12px !important;
  font-size:14px !important;
  font-weight:650 !important;
}
.admin-optional-fields .tb-generic-select-trigger{
  min-height:38px !important;
  height:38px;
}
@media(max-width:700px){
  .tb-generic-select-card{width:min(340px,92vw);padding:11px;}
  .tb-generic-select-option{min-height:45px;font-size:12.5px;}
}

/* TicketBlossom v2.6.41 - Samsung Internet forced dark mode defense */
html.tb-samsung-internet,
html.tb-samsung-internet body{
  color-scheme:only dark !important;
  background:#050505 !important;
}
html.tb-samsung-internet body,
html.tb-samsung-internet .tb-card,
html.tb-samsung-internet .admin-events-panel,
html.tb-samsung-internet .admin-sections-panel,
html.tb-samsung-internet .tb-modal-card,
html.tb-samsung-internet .event-card,
html.tb-samsung-internet .checkout-card,
html.tb-samsung-internet .profile-card{
  forced-color-adjust:none !important;
  -webkit-print-color-adjust:exact !important;
  print-color-adjust:exact !important;
}
html.tb-samsung-internet img,
html.tb-samsung-internet svg,
html.tb-samsung-internet canvas,
html.tb-samsung-internet video,
html.tb-samsung-internet picture,
html.tb-samsung-internet .tb-layout-map,
html.tb-samsung-internet .tb-layout-field,
html.tb-samsung-internet .tb-layout-stage,
html.tb-samsung-internet .tb-layout-track,
html.tb-samsung-internet .tb-editable-layout-object,
html.tb-samsung-internet .tb-section-art,
html.tb-samsung-internet .tb-olympic-field-img,
html.tb-samsung-internet .tb-stadium-object,
html.tb-samsung-internet .section-shape,
html.tb-samsung-internet .stadium-object{
  filter:none !important;
  mix-blend-mode:normal !important;
  forced-color-adjust:none !important;
}
html.tb-samsung-internet input,
html.tb-samsung-internet select,
html.tb-samsung-internet textarea,
html.tb-samsung-internet button,
html.tb-samsung-internet .tb-btn,
html.tb-samsung-internet .tb-generic-select-option,
html.tb-samsung-internet .tb-scenario-type-option{
  color-scheme:dark !important;
  forced-color-adjust:none !important;
}


/* =========================================================
   TicketBlossom v2.6.41 - Public selection passthrough + softer render shadows
   - In public maps, only the real SVG hit path receives taps/clicks.
     The element viewbox never blocks another section underneath.
   - Classic renderer shadows are softened so depth stays elegant.
   ========================================================= */
.tb-public-stadium .tb-stadium-render-public .tb-layout-shape{
  pointer-events:none !important;
}
.tb-public-stadium .tb-stadium-render-public .tb-section-geometry{
  pointer-events:none !important;
}
.tb-public-stadium .tb-stadium-render-public .tb-section-hit-path{
  pointer-events:visiblePainted !important;
  cursor:pointer;
}
.tb-public-stadium .tb-stadium-render-public .tb-layout-shape span,
.tb-public-stadium .tb-stadium-render-public .tb-layout-shape::before,
.tb-public-stadium .tb-stadium-render-public .tb-layout-shape::after{
  pointer-events:none !important;
}

.tb-render-classic .tb-layout-shape{
  filter:drop-shadow(4px 6px 5px rgba(0,0,0,.18)) !important;
}
.tb-render-classic .tb-layout-shape::before{
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.34),
    inset 0 -7px 13px rgba(0,0,0,.22),
    inset 5px 0 10px rgba(255,255,255,.055),
    inset -5px 0 10px rgba(0,0,0,.10) !important;
}
.tb-render-classic .tb-layout-shape:not(.selected):not([class*="olympic_"])::after{
  transform:translate(3px,5px) scale(.995) !important;
  opacity:.34 !important;
  border-color:rgba(0,0,0,.14) !important;
  filter:brightness(.82) saturate(.92) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(0,0,0,.26)),
    var(--tb-shape-bg,var(--shape-color,#7D86B1)) !important;
}
.tb-render-classic .tb-layout-shape-olympic_left_full::before,
.tb-render-classic .tb-layout-shape-olympic_left_tight_full::before,
.tb-render-classic .tb-layout-shape-olympic_left_top::before,
.tb-render-classic .tb-layout-shape-olympic_left_bottom::before{
  filter:drop-shadow(4px 6px 5px rgba(0,0,0,.18)) !important;
}
.tb-render-classic .tb-layout-shape-olympic_right_full::before,
.tb-render-classic .tb-layout-shape-olympic_right_tight_full::before,
.tb-render-classic .tb-layout-shape-olympic_right_top::before,
.tb-render-classic .tb-layout-shape-olympic_right_bottom::before{
  filter:drop-shadow(-4px 6px 5px rgba(0,0,0,.18)) !important;
}
.tb-render-classic .tb-layout-object{
  filter:drop-shadow(0 5px 5px rgba(0,0,0,.20)) drop-shadow(0 0 5px rgba(255,255,255,.055)) !important;
}
.tb-render-classic .tb-layout-field,
.tb-render-classic .tb-layout-olympic-field{
  filter:drop-shadow(0 6px 8px rgba(0,0,0,.22)) saturate(1.06) contrast(1.02) !important;
}
.tb-render-classic .tb-layout-stage-body{
  box-shadow:
    inset 0 3px 0 rgba(255,255,255,.30),
    inset 0 -8px 13px rgba(0,0,0,.26),
    0 7px 10px rgba(0,0,0,.22),
    0 0 8px rgba(255,255,255,.055) !important;
}
.tb-render-classic .tb-layout-glow{
  opacity:.48 !important;
  filter:blur(8px) !important;
}
@media(max-width:600px){
  .tb-render-classic .tb-layout-shape:not(.selected):not([class*="olympic_"])::after{
    transform:translate(2px,4px) scale(.995) !important;
    opacity:.30 !important;
  }
}


/* =========================================================
   TicketBlossom Presentation Engine - Premium 3D v1
   v2.6.41 patch: visual-only, geometry/data remain untouched.
   Premium keeps the same shape/shape_data contract as Classic.
   ========================================================= */
.tb-render-premium .tb-layout-map{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    inset 0 0 42px rgba(255,255,255,.055),
    inset 0 -30px 44px rgba(0,0,0,.22),
    0 24px 48px rgba(0,0,0,.40) !important;
}

.tb-render-premium .tb-layout-shape{
  filter:
    drop-shadow(4px 6px 2px rgba(0,0,0,.30))
    drop-shadow(10px 16px 10px rgba(0,0,0,.38));
}

/* Premium front face: stronger bevel, specular light and stadium rows. */
.tb-render-premium .tb-layout-shape::before{
  border-color:rgba(255,255,255,.88) !important;
  border-width:1.8px !important;
  box-shadow:
    inset 0 3px 0 rgba(255,255,255,.64),
    inset 2px 0 0 rgba(255,255,255,.22),
    inset -3px 0 5px rgba(0,0,0,.18),
    inset 0 -5px 0 rgba(0,0,0,.18),
    inset 0 -16px 24px rgba(0,0,0,.34),
    0 1px 0 rgba(255,255,255,.18) !important;
  background:
    linear-gradient(135deg, rgba(255,255,255,.38) 0%, rgba(255,255,255,.10) 24%, rgba(255,255,255,0) 45%),
    linear-gradient(180deg, rgba(255,255,255,.30) 0%, rgba(255,255,255,.08) 22%, rgba(0,0,0,.08) 56%, rgba(0,0,0,.38) 100%),
    repeating-linear-gradient(0deg, rgba(255,255,255,.28) 0 1.5px, rgba(0,0,0,.12) 1.5px 2.5px, transparent 2.5px 8px),
    var(--tb-shape-bg,var(--shape-color,#7D86B1)) !important;
}

/* True-looking visual extrusion for CSS shapes; never changes hitbox or geometry. */
.tb-render-premium .tb-layout-shape:not(.selected):not([class*="olympic_"])::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  transform:translate(9px,13px) scale(.992);
  transform-origin:center;
  box-sizing:border-box;
  border:1px solid rgba(0,0,0,.42);
  background:
    linear-gradient(135deg, rgba(255,255,255,.16) 0%, rgba(255,255,255,.02) 25%, rgba(0,0,0,.24) 55%, rgba(0,0,0,.68) 100%),
    var(--tb-shape-bg,var(--shape-color,#7D86B1));
  opacity:.90;
  filter:brightness(.58) saturate(.92) contrast(1.08);
  box-shadow:5px 7px 8px rgba(0,0,0,.28);
}

/* Same extrusion geometry as the editor shapes. */
.tb-render-premium .tb-layout-shape-rectangle:not(.selected)::after,
.tb-render-premium .tb-layout-shape-rectangle_vertical:not(.selected)::after{clip-path:none;}
.tb-render-premium .tb-layout-shape-trapezoid_north:not(.selected)::after{clip-path:polygon(18% 0,82% 0,100% 100%,0 100%);}
.tb-render-premium .tb-layout-shape-trapezoid_south:not(.selected)::after{clip-path:polygon(0 0,100% 0,82% 100%,18% 100%);}
.tb-render-premium .tb-layout-shape-trapezoid_east:not(.selected)::after{clip-path:polygon(0 0,100% 18%,100% 82%,0 100%);}
.tb-render-premium .tb-layout-shape-trapezoid_west:not(.selected)::after{clip-path:polygon(100% 0,0 18%,0 82%,100% 100%);}
.tb-render-premium .tb-layout-shape-stand_horizontal:not(.selected)::after{clip-path:polygon(12% 0,88% 0,100% 100%,0 100%);}
.tb-render-premium .tb-layout-shape-stand_vertical:not(.selected)::after{clip-path:polygon(0 10%,100% 0,100% 100%,0 90%);}
.tb-render-premium .tb-layout-shape-corner_inner_left:not(.selected)::after{clip-path:polygon(0 0,100% 0,72% 28%,72% 100%,0 100%);}
.tb-render-premium .tb-layout-shape-corner_inner_right:not(.selected)::after{clip-path:polygon(0 0,100% 0,100% 100%,28% 100%,28% 28%);}
.tb-render-premium .tb-layout-shape-corner_outer_left:not(.selected)::after{clip-path:polygon(0 0,72% 0,100% 28%,100% 100%,0 100%);}
.tb-render-premium .tb-layout-shape-corner_outer_right:not(.selected)::after{clip-path:polygon(28% 0,100% 0,100% 100%,0 100%,0 28%);}
.tb-render-premium .tb-layout-shape-upper_level:not(.selected)::after{clip-path:polygon(6% 0,94% 0,100% 100%,0 100%);}
.tb-render-premium .tb-layout-shape-palco:not(.selected)::after{clip-path:polygon(8% 0,92% 0,92% 100%,8% 100%);}
.tb-render-premium .tb-layout-shape-vip:not(.selected)::after{clip-path:polygon(0 0,100% 0,88% 100%,12% 100%);}
.tb-render-premium .tb-layout-shape-trapezoid_north_half:not(.selected)::after{clip-path:polygon(36% 0,100% 0,100% 100%,0 100%) !important;}
.tb-render-premium .tb-layout-shape-trapezoid_south_half:not(.selected)::after{clip-path:polygon(0 0,100% 0,100% 100%,36% 100%) !important;}

/* Vertical families: rows follow the long axis. */
.tb-render-premium .tb-layout-shape-rectangle_vertical::before,
.tb-render-premium .tb-layout-shape-trapezoid_east::before,
.tb-render-premium .tb-layout-shape-trapezoid_west::before,
.tb-render-premium .tb-layout-shape-stand_vertical::before,
.tb-render-premium .tb-layout-shape-corner_inner_left::before,
.tb-render-premium .tb-layout-shape-corner_inner_right::before,
.tb-render-premium .tb-layout-shape-corner_outer_left::before,
.tb-render-premium .tb-layout-shape-corner_outer_right::before{
  background:
    linear-gradient(135deg, rgba(255,255,255,.36), transparent 42%),
    linear-gradient(90deg, rgba(255,255,255,.30) 0%, rgba(255,255,255,.08) 22%, rgba(0,0,0,.08) 56%, rgba(0,0,0,.38) 100%),
    repeating-linear-gradient(90deg, rgba(255,255,255,.28) 0 1.5px, rgba(0,0,0,.12) 1.5px 2.5px, transparent 2.5px 8px),
    var(--tb-shape-bg,var(--shape-color,#7D86B1)) !important;
}

/* Olympic SVG/mask pieces: preserve exact shape_data geometry and add curved 3D bands. */
.tb-render-premium .tb-layout-shape-olympic_left_full::before,
.tb-render-premium .tb-layout-shape-olympic_left_tight_full::before,
.tb-render-premium .tb-layout-shape-olympic_left_top::before,
.tb-render-premium .tb-layout-shape-olympic_left_bottom::before{
  background:
    linear-gradient(115deg, rgba(255,255,255,.42), rgba(255,255,255,.06) 38%, rgba(0,0,0,.36)),
    repeating-radial-gradient(circle at 112% 50%, rgba(255,255,255,.30) 0 1.5px, rgba(0,0,0,.12) 1.5px 2.5px, transparent 2.5px 8px),
    var(--tb-shape-bg,var(--shape-color,#7D86B1)) !important;
  filter:drop-shadow(5px 7px 2px rgba(0,0,0,.28)) drop-shadow(10px 15px 9px rgba(0,0,0,.38));
}
.tb-render-premium .tb-layout-shape-olympic_right_full::before,
.tb-render-premium .tb-layout-shape-olympic_right_tight_full::before,
.tb-render-premium .tb-layout-shape-olympic_right_top::before,
.tb-render-premium .tb-layout-shape-olympic_right_bottom::before{
  background:
    linear-gradient(245deg, rgba(255,255,255,.42), rgba(255,255,255,.06) 38%, rgba(0,0,0,.36)),
    repeating-radial-gradient(circle at -12% 50%, rgba(255,255,255,.30) 0 1.5px, rgba(0,0,0,.12) 1.5px 2.5px, transparent 2.5px 8px),
    var(--tb-shape-bg,var(--shape-color,#7D86B1)) !important;
  filter:drop-shadow(-4px 7px 2px rgba(0,0,0,.28)) drop-shadow(-9px 15px 9px rgba(0,0,0,.38));
}

.tb-render-premium .tb-layout-shape span{
  text-shadow:
    0 1px 0 rgba(255,255,255,.22),
    0 3px 2px rgba(0,0,0,.88),
    0 0 8px rgba(0,0,0,.54) !important;
}
.tb-render-premium .tb-layout-shape span small{opacity:.98;}

.tb-render-premium .tb-layout-object{
  filter:drop-shadow(3px 5px 2px rgba(0,0,0,.30)) drop-shadow(0 12px 10px rgba(0,0,0,.42)) !important;
}
.tb-render-premium .tb-layout-field,
.tb-render-premium .tb-layout-olympic-field{
  filter:drop-shadow(3px 5px 2px rgba(0,0,0,.28)) drop-shadow(0 15px 16px rgba(0,0,0,.44)) saturate(1.10) contrast(1.04) !important;
}
.tb-render-premium .tb-layout-stage-body{
  box-shadow:
    inset 0 4px 0 rgba(255,255,255,.56),
    inset 3px 0 0 rgba(255,255,255,.14),
    inset -4px 0 7px rgba(0,0,0,.24),
    inset 0 -15px 22px rgba(0,0,0,.48),
    6px 10px 3px rgba(0,0,0,.24),
    10px 17px 14px rgba(0,0,0,.38) !important;
  background:
    linear-gradient(135deg, rgba(255,255,255,.32), transparent 42%),
    linear-gradient(180deg, rgba(255,255,255,.24), rgba(255,255,255,.04) 34%, rgba(0,0,0,.38) 100%),
    #1f1f2a !important;
}
.tb-render-premium .tb-layout-glow{opacity:.72 !important;filter:blur(12px);}

@media(max-width:600px){
  .tb-render-premium .tb-layout-shape{filter:drop-shadow(3px 5px 2px rgba(0,0,0,.28)) drop-shadow(7px 11px 7px rgba(0,0,0,.34));}
  .tb-render-premium .tb-layout-shape:not(.selected):not([class*="olympic_"])::after{transform:translate(6px,9px) scale(.993);}
  .tb-render-premium .tb-layout-shape::before{
    box-shadow:
      inset 0 2px 0 rgba(255,255,255,.58),
      inset 0 -4px 0 rgba(0,0,0,.16),
      inset 0 -12px 18px rgba(0,0,0,.32) !important;
  }
}


/* =========================================================
   TicketBlossom Presentation Engine - Premium 3D v1 Polish
   - Graderios always follow the same geometry/orientation as Classic.
   - Shadows are neutral transparent shadows, not colored shape copies.
   - Visual-only: no geometry/data/hitbox changes.
   ========================================================= */
.tb-render-premium .tb-layout-shape:not(.selected):not([class*="olympic_"])::after{
  background:
    radial-gradient(ellipse at 38% 16%, rgba(255,255,255,.10), rgba(255,255,255,0) 36%),
    linear-gradient(135deg, rgba(0,0,0,.10) 0%, rgba(0,0,0,.24) 44%, rgba(0,0,0,.54) 100%) !important;
  opacity:.44 !important;
  filter:blur(.15px) !important;
  border-color:rgba(0,0,0,.26) !important;
  box-shadow:4px 6px 9px rgba(0,0,0,.22) !important;
}

/* Premium front face polish: keep rows readable, reduce plastic shine. */
.tb-render-premium .tb-layout-shape::before{
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.50),
    inset 2px 0 0 rgba(255,255,255,.16),
    inset -3px 0 5px rgba(0,0,0,.14),
    inset 0 -4px 0 rgba(0,0,0,.14),
    inset 0 -13px 20px rgba(0,0,0,.30),
    0 1px 0 rgba(255,255,255,.14) !important;
}

/* Tight/split Olympic SVG pieces were falling back to linear rows.
   Premium must preserve Classic's curved graderio direction. */
.tb-render-premium .tb-layout-shape-olympic_left_tight_top::before,
.tb-render-premium .tb-layout-shape-olympic_left_tight_bottom::before{
  background:
    linear-gradient(90deg, rgba(255,255,255,.38), rgba(255,255,255,.08) 40%, rgba(0,0,0,.31)),
    repeating-radial-gradient(circle at 112% 50%, rgba(255,255,255,.30) 0 1.5px, rgba(0,0,0,.10) 1.5px 2.3px, transparent 2.3px 8px),
    var(--tb-shape-bg,var(--shape-color,#7D86B1)) !important;
  filter:drop-shadow(4px 6px 2px rgba(0,0,0,.22)) drop-shadow(8px 11px 8px rgba(0,0,0,.30)) !important;
}
.tb-render-premium .tb-layout-shape-olympic_right_tight_top::before,
.tb-render-premium .tb-layout-shape-olympic_right_tight_bottom::before{
  background:
    linear-gradient(270deg, rgba(255,255,255,.38), rgba(255,255,255,.08) 40%, rgba(0,0,0,.31)),
    repeating-radial-gradient(circle at -12% 50%, rgba(255,255,255,.30) 0 1.5px, rgba(0,0,0,.10) 1.5px 2.3px, transparent 2.3px 8px),
    var(--tb-shape-bg,var(--shape-color,#7D86B1)) !important;
  filter:drop-shadow(-4px 6px 2px rgba(0,0,0,.22)) drop-shadow(-8px 11px 8px rgba(0,0,0,.30)) !important;
}

/* Premium selected state: cleaner outline/glow without washing out labels. */
.tb-render-premium .tb-layout-shape.selected::after{
  box-shadow:0 0 0 2px rgba(73,169,255,.92), 0 0 0 4px rgba(255,129,181,.65), 0 0 20px rgba(73,169,255,.22) !important;
  opacity:.94 !important;
}
.tb-render-premium .tb-layout-shape span{
  text-shadow:
    0 1px 0 rgba(255,255,255,.16),
    0 2px 2px rgba(0,0,0,.82),
    0 0 7px rgba(0,0,0,.56) !important;
}

@media(max-width:600px){
  .tb-render-premium .tb-layout-shape:not(.selected):not([class*="olympic_"])::after{
    transform:translate(5px,7px) scale(.994) !important;
    opacity:.40 !important;
    box-shadow:3px 5px 7px rgba(0,0,0,.20) !important;
  }
}

/* =========================================================
   TicketBlossom v2.6.44 - Presentation Engine Object Layer
   Objects now participate in Classic/Premium without changing
   object data, geometry, hitboxes, z-index, editor or production logic.
   ========================================================= */

/* OFF remains clean: no extra object make-up. */
.tb-render-off .tb-layout-object,
.tb-render-off .tb-layout-object .tb-object-face,
.tb-render-off .tb-layout-object .tb-object-face *{
  filter:none !important;
  box-shadow:none !important;
}

/* Classic: soft neutral presence for all system/custom objects. */
.tb-render-classic .tb-layout-object{
  filter:drop-shadow(0 5px 5px rgba(0,0,0,.24)) drop-shadow(0 0 4px rgba(255,255,255,.045)) !important;
}
.tb-render-classic .tb-layout-object .tb-object-face{
  filter:drop-shadow(0 4px 4px rgba(0,0,0,.22)) saturate(1.03) contrast(1.02) !important;
}
.tb-render-classic .tb-object-face-road,
.tb-render-classic .tb-object-face-parking,
.tb-render-classic .tb-object-face-wall,
.tb-render-classic .tb-object-face-building .tower{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.28),
    inset 0 -5px 8px rgba(0,0,0,.22),
    0 4px 6px rgba(0,0,0,.20) !important;
}
.tb-render-classic .tb-object-face-house .roof,
.tb-render-classic .tb-object-face-house .home-body,
.tb-render-classic .tb-object-face-flag .flag-cloth,
.tb-render-classic .tb-object-face-entrance .gate-top,
.tb-render-classic .tb-object-face-entrance .gate-post{
  filter:drop-shadow(0 3px 3px rgba(0,0,0,.20)) !important;
}
.tb-render-classic .tb-object-face-tree .leaf,
.tb-render-classic .tb-object-face-palm .palm-leaf{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22), inset 0 -5px 7px rgba(0,0,0,.16) !important;
}
.tb-render-classic .tb-object-face-tree .trunk,
.tb-render-classic .tb-object-face-palm .palm-trunk{
  box-shadow:inset 1px 0 0 rgba(255,255,255,.16), inset -2px 0 3px rgba(0,0,0,.18) !important;
}
.tb-render-classic .tb-object-face-light_tower .light-head{
  box-shadow:0 0 18px rgba(241,196,15,.52), inset 0 1px 0 rgba(255,255,255,.42), inset 0 -4px 7px rgba(0,0,0,.18) !important;
}
.tb-render-classic .tb-object-face-light_tower .light-pole,
.tb-render-classic .tb-object-face-flag .flag-pole{
  box-shadow:inset 1px 0 0 rgba(255,255,255,.28), inset -1px 0 2px rgba(0,0,0,.20) !important;
}
.tb-render-classic .tb-object-face-custom_image img{
  filter:drop-shadow(0 5px 5px rgba(0,0,0,.22)) saturate(1.03) contrast(1.02) !important;
}

/* Premium: object-specific pseudo-3D polish, no graderio lines. */
.tb-render-premium .tb-layout-object{
  filter:
    drop-shadow(2px 4px 2px rgba(0,0,0,.24))
    drop-shadow(0 10px 9px rgba(0,0,0,.34))
    drop-shadow(0 0 5px rgba(255,255,255,.055)) !important;
}
.tb-render-premium .tb-layout-object .tb-object-face{
  filter:drop-shadow(2px 4px 2px rgba(0,0,0,.22)) saturate(1.07) contrast(1.04) !important;
}
.tb-render-premium .tb-object-face-road,
.tb-render-premium .tb-object-face-parking,
.tb-render-premium .tb-object-face-wall,
.tb-render-premium .tb-object-face-building .tower{
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.40),
    inset 2px 0 0 rgba(255,255,255,.12),
    inset -3px 0 5px rgba(0,0,0,.18),
    inset 0 -9px 12px rgba(0,0,0,.30),
    3px 5px 8px rgba(0,0,0,.26) !important;
}
.tb-render-premium .tb-object-face-road,
.tb-render-premium .tb-object-face-parking,
.tb-render-premium .tb-object-face-wall{
  filter:saturate(1.06) contrast(1.04) !important;
}
.tb-render-premium .tb-object-face-house .roof,
.tb-render-premium .tb-object-face-house .home-body,
.tb-render-premium .tb-object-face-flag .flag-cloth,
.tb-render-premium .tb-object-face-entrance .gate-top,
.tb-render-premium .tb-object-face-entrance .gate-post{
  filter:drop-shadow(2px 4px 3px rgba(0,0,0,.26)) saturate(1.06) contrast(1.04) !important;
}
.tb-render-premium .tb-object-face-house .roof,
.tb-render-premium .tb-object-face-house .home-body{
  box-shadow:inset 0 2px 0 rgba(255,255,255,.34), inset 0 -6px 10px rgba(0,0,0,.18) !important;
}
.tb-render-premium .tb-object-face-tree .leaf,
.tb-render-premium .tb-object-face-palm .palm-leaf{
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.30),
    inset -4px -5px 8px rgba(0,0,0,.18),
    2px 4px 5px rgba(0,0,0,.18) !important;
  filter:saturate(1.08) contrast(1.03) !important;
}
.tb-render-premium .tb-object-face-tree .trunk,
.tb-render-premium .tb-object-face-palm .palm-trunk{
  box-shadow:inset 2px 0 0 rgba(255,255,255,.18), inset -3px 0 4px rgba(0,0,0,.22), 1px 3px 4px rgba(0,0,0,.18) !important;
}
.tb-render-premium .tb-object-face-light_tower .light-head{
  box-shadow:
    0 0 18px rgba(241,196,15,.58),
    0 0 34px rgba(241,196,15,.22),
    inset 0 2px 0 rgba(255,255,255,.52),
    inset 0 -5px 8px rgba(0,0,0,.18) !important;
  filter:saturate(1.08) contrast(1.04) !important;
}
.tb-render-premium .tb-object-face-light_tower .light-pole,
.tb-render-premium .tb-object-face-light_tower .light-base,
.tb-render-premium .tb-object-face-flag .flag-pole{
  box-shadow:inset 2px 0 0 rgba(255,255,255,.30), inset -2px 0 3px rgba(0,0,0,.24), 1px 3px 4px rgba(0,0,0,.18) !important;
}
.tb-render-premium .tb-object-face-flag .flag-cloth{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.32), inset 0 -5px 7px rgba(0,0,0,.20) !important;
}
.tb-render-premium .tb-object-face-building .win{
  box-shadow:0 0 5px rgba(219,229,255,.16) !important;
}
.tb-render-premium .tb-object-face-custom_image img{
  filter:
    drop-shadow(2px 4px 3px rgba(0,0,0,.24))
    drop-shadow(0 9px 8px rgba(0,0,0,.28))
    saturate(1.06) contrast(1.04) !important;
}

@media(max-width:600px){
  .tb-render-premium .tb-layout-object{
    filter:drop-shadow(1px 3px 2px rgba(0,0,0,.22)) drop-shadow(0 7px 6px rgba(0,0,0,.30)) !important;
  }
  .tb-render-classic .tb-layout-object{
    filter:drop-shadow(0 4px 4px rgba(0,0,0,.22)) drop-shadow(0 0 3px rgba(255,255,255,.035)) !important;
  }
}

/* =========================================================
   TicketBlossom v2.6.49 - Presentation Engine Night Global Clean
   Base: v2.6.45 Night v1, rebuilt cleanly.
   Goal: one global nocturnal atmosphere, same in editor + production.
   No per-shape glass overlays, no ghost rectangles, no geometry/data changes.
   ========================================================= */

/* Map can receive render mode in two ways:
   Editor: parent has .tb-render-night and contains .tb-layout-map
   Production: .tb-layout-map itself has .tb-render-night
   Keep both selectors so editor == production. */
.tb-render-night .tb-layout-map,
.tb-layout-map.tb-render-night{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(circle at 17% 10%, rgba(255,210,62,.16), transparent 16%),
    radial-gradient(circle at 83% 10%, rgba(255,210,62,.15), transparent 16%),
    radial-gradient(ellipse at 50% 42%, rgba(84,148,255,.13), transparent 46%),
    radial-gradient(ellipse at 50% 105%, rgba(0,0,0,.68), transparent 58%),
    linear-gradient(180deg,#121a27 0%,#0b1019 54%,#06080d 100%) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    inset 0 0 42px rgba(75,135,255,.14),
    inset 0 -36px 50px rgba(0,0,0,.56),
    0 24px 46px rgba(0,0,0,.50) !important;
}

/* One global blue night film over the whole canvas.
   This is the Night signature. It applies equally to field, stage, shapes and objects. */
.tb-render-night .tb-layout-map::before,
.tb-layout-map.tb-render-night::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  border-radius:inherit;
  background:
    radial-gradient(ellipse at 50% 38%, rgba(115,172,255,.18), rgba(115,172,255,.055) 34%, transparent 66%),
    linear-gradient(180deg, rgba(112,170,255,.10), rgba(17,31,58,.22) 52%, rgba(0,0,0,.18)),
    radial-gradient(ellipse at 50% 115%, rgba(0,0,0,.42), transparent 58%);
  mix-blend-mode:screen;
  opacity:.84;
}

/* Soft vignette, also global and non-interactive. */
.tb-render-night .tb-layout-map::after,
.tb-layout-map.tb-render-night::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  border-radius:inherit;
  background:
    radial-gradient(ellipse at 50% 48%, transparent 0 50%, rgba(0,0,0,.24) 76%, rgba(0,0,0,.46) 100%),
    linear-gradient(180deg, rgba(255,255,255,.035), transparent 22%, rgba(0,0,0,.22));
  opacity:.70;
}

/* Keep real elements above global atmosphere. */
.tb-render-night .tb-layout-field,
.tb-layout-map.tb-render-night .tb-layout-field,
.tb-render-night .tb-layout-olympic-field,
.tb-layout-map.tb-render-night .tb-layout-olympic-field,
.tb-render-night .tb-layout-stage,
.tb-layout-map.tb-render-night .tb-layout-stage,
.tb-render-night .tb-layout-shape,
.tb-layout-map.tb-render-night .tb-layout-shape,
.tb-render-night .tb-layout-object,
.tb-layout-map.tb-render-night .tb-layout-object,
.tb-render-night .tb-layout-glow,
.tb-layout-map.tb-render-night .tb-layout-glow{
  position:absolute;
  z-index:3;
}

/* Scenario / cancha / stage: illuminated by global night, never geometrically changed. */
.tb-render-night .tb-layout-field,
.tb-layout-map.tb-render-night .tb-layout-field,
.tb-render-night .tb-layout-olympic-field,
.tb-layout-map.tb-render-night .tb-layout-olympic-field{
  filter:
    drop-shadow(2px 4px 2px rgba(0,0,0,.34))
    drop-shadow(0 14px 14px rgba(0,0,0,.48))
    drop-shadow(0 0 18px rgba(90,155,255,.16))
    saturate(1.04) contrast(1.04) brightness(.94) !important;
}
.tb-render-night .tb-layout-stage-body,
.tb-layout-map.tb-render-night .tb-layout-stage-body{
  box-shadow:
    inset 0 3px 0 rgba(255,255,255,.36),
    inset 2px 0 0 rgba(145,190,255,.12),
    inset -3px 0 6px rgba(0,0,0,.26),
    inset 0 -12px 20px rgba(0,0,0,.48),
    3px 7px 5px rgba(0,0,0,.28),
    0 0 22px rgba(128,150,255,.18) !important;
}

/* Sections: solid, no glass transparency. Night adds shadows and subtle cool rim only. */
.tb-render-night .tb-layout-shape,
.tb-layout-map.tb-render-night .tb-layout-shape{
  filter:
    drop-shadow(2px 4px 2px rgba(0,0,0,.31))
    drop-shadow(0 11px 10px rgba(0,0,0,.42))
    drop-shadow(0 0 8px rgba(120,172,255,.12)) !important;
}
.tb-render-night .tb-layout-shape::before,
.tb-layout-map.tb-render-night .tb-layout-shape::before{
  opacity:1 !important;
  border-color:rgba(230,242,255,.82) !important;
  border-width:1.6px !important;
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.36),
    inset 1px 0 0 rgba(132,185,255,.11),
    inset -2px 0 5px rgba(0,0,0,.15),
    inset 0 -4px 0 rgba(0,0,0,.14),
    inset 0 -14px 20px rgba(0,0,0,.24),
    0 0 8px rgba(120,172,255,.11) !important;
  background:
    radial-gradient(circle at 50% -18%, rgba(255,240,170,.20), rgba(255,240,170,0) 36%),
    linear-gradient(135deg, rgba(255,255,255,.18) 0%, rgba(130,180,255,.08) 32%, rgba(0,0,0,.06) 58%, rgba(0,0,0,.22) 100%),
    linear-gradient(180deg, rgba(255,255,255,.10) 0%, rgba(255,255,255,.03) 30%, rgba(0,0,0,.08) 62%, rgba(0,0,0,.22) 100%),
    repeating-linear-gradient(0deg, rgba(255,255,255,.20) 0 1.25px, rgba(0,0,0,.10) 1.25px 2.15px, transparent 2.15px 8px),
    var(--tb-shape-bg,var(--shape-color,#7D86B1)) !important;
  filter:saturate(1.03) contrast(1.03) brightness(.95) !important;
}

/* Night keeps Premium/Classical extrusion, but only as neutral shadow. No colored clones. */
.tb-render-night .tb-layout-shape:not(.selected):not([class*="olympic_"])::after,
.tb-layout-map.tb-render-night .tb-layout-shape:not(.selected):not([class*="olympic_"])::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  transform:translate(5px,7px) scale(.994);
  transform-origin:center;
  box-sizing:border-box;
  background:linear-gradient(135deg, rgba(0,0,0,.16), rgba(0,0,0,.46)) !important;
  border:1px solid rgba(0,0,0,.22) !important;
  opacity:.34 !important;
  filter:blur(.15px) !important;
  box-shadow:3px 6px 9px rgba(0,0,0,.26) !important;
}
.tb-render-night .tb-layout-shape-rectangle:not(.selected)::after,
.tb-layout-map.tb-render-night .tb-layout-shape-rectangle:not(.selected)::after,
.tb-render-night .tb-layout-shape-rectangle_vertical:not(.selected)::after,
.tb-layout-map.tb-render-night .tb-layout-shape-rectangle_vertical:not(.selected)::after{clip-path:none;}
.tb-render-night .tb-layout-shape-trapezoid_north:not(.selected)::after,
.tb-layout-map.tb-render-night .tb-layout-shape-trapezoid_north:not(.selected)::after{clip-path:polygon(18% 0,82% 0,100% 100%,0 100%);}
.tb-render-night .tb-layout-shape-trapezoid_south:not(.selected)::after,
.tb-layout-map.tb-render-night .tb-layout-shape-trapezoid_south:not(.selected)::after{clip-path:polygon(0 0,100% 0,82% 100%,18% 100%);}
.tb-render-night .tb-layout-shape-trapezoid_east:not(.selected)::after,
.tb-layout-map.tb-render-night .tb-layout-shape-trapezoid_east:not(.selected)::after{clip-path:polygon(0 0,100% 18%,100% 82%,0 100%);}
.tb-render-night .tb-layout-shape-trapezoid_west:not(.selected)::after,
.tb-layout-map.tb-render-night .tb-layout-shape-trapezoid_west:not(.selected)::after{clip-path:polygon(100% 0,0 18%,0 82%,100% 100%);}
.tb-render-night .tb-layout-shape-stand_horizontal:not(.selected)::after,
.tb-layout-map.tb-render-night .tb-layout-shape-stand_horizontal:not(.selected)::after{clip-path:polygon(12% 0,88% 0,100% 100%,0 100%);}
.tb-render-night .tb-layout-shape-stand_vertical:not(.selected)::after,
.tb-layout-map.tb-render-night .tb-layout-shape-stand_vertical:not(.selected)::after{clip-path:polygon(0 10%,100% 0,100% 100%,0 90%);}
.tb-render-night .tb-layout-shape-corner_inner_left:not(.selected)::after,
.tb-layout-map.tb-render-night .tb-layout-shape-corner_inner_left:not(.selected)::after{clip-path:polygon(0 0,100% 0,72% 28%,72% 100%,0 100%);}
.tb-render-night .tb-layout-shape-corner_inner_right:not(.selected)::after,
.tb-layout-map.tb-render-night .tb-layout-shape-corner_inner_right:not(.selected)::after{clip-path:polygon(0 0,100% 0,100% 100%,28% 100%,28% 28%);}
.tb-render-night .tb-layout-shape-corner_outer_left:not(.selected)::after,
.tb-layout-map.tb-render-night .tb-layout-shape-corner_outer_left:not(.selected)::after{clip-path:polygon(0 0,72% 0,100% 28%,100% 100%,0 100%);}
.tb-render-night .tb-layout-shape-corner_outer_right:not(.selected)::after,
.tb-layout-map.tb-render-night .tb-layout-shape-corner_outer_right:not(.selected)::after{clip-path:polygon(28% 0,100% 0,100% 100%,0 100%,0 28%);}
.tb-render-night .tb-layout-shape-upper_level:not(.selected)::after,
.tb-layout-map.tb-render-night .tb-layout-shape-upper_level:not(.selected)::after{clip-path:polygon(6% 0,94% 0,100% 100%,0 100%);}
.tb-render-night .tb-layout-shape-palco:not(.selected)::after,
.tb-layout-map.tb-render-night .tb-layout-shape-palco:not(.selected)::after{clip-path:polygon(8% 0,92% 0,92% 100%,8% 100%);}
.tb-render-night .tb-layout-shape-vip:not(.selected)::after,
.tb-layout-map.tb-render-night .tb-layout-shape-vip:not(.selected)::after{clip-path:polygon(0 0,100% 0,88% 100%,12% 100%);}
.tb-render-night .tb-layout-shape-trapezoid_north_half:not(.selected)::after,
.tb-layout-map.tb-render-night .tb-layout-shape-trapezoid_north_half:not(.selected)::after{clip-path:polygon(36% 0,100% 0,100% 100%,0 100%) !important;}
.tb-render-night .tb-layout-shape-trapezoid_south_half:not(.selected)::after,
.tb-layout-map.tb-render-night .tb-layout-shape-trapezoid_south_half:not(.selected)::after{clip-path:polygon(0 0,100% 0,100% 100%,36% 100%) !important;}

/* Vertical/curved graderios keep the same directions as Classic/Premium. */
.tb-render-night .tb-layout-shape-rectangle_vertical::before,
.tb-render-night .tb-layout-shape-trapezoid_east::before,
.tb-render-night .tb-layout-shape-trapezoid_west::before,
.tb-render-night .tb-layout-shape-stand_vertical::before,
.tb-render-night .tb-layout-shape-corner_inner_left::before,
.tb-render-night .tb-layout-shape-corner_inner_right::before,
.tb-render-night .tb-layout-shape-corner_outer_left::before,
.tb-render-night .tb-layout-shape-corner_outer_right::before,
.tb-layout-map.tb-render-night .tb-layout-shape-rectangle_vertical::before,
.tb-layout-map.tb-render-night .tb-layout-shape-trapezoid_east::before,
.tb-layout-map.tb-render-night .tb-layout-shape-trapezoid_west::before,
.tb-layout-map.tb-render-night .tb-layout-shape-stand_vertical::before,
.tb-layout-map.tb-render-night .tb-layout-shape-corner_inner_left::before,
.tb-layout-map.tb-render-night .tb-layout-shape-corner_inner_right::before,
.tb-layout-map.tb-render-night .tb-layout-shape-corner_outer_left::before,
.tb-layout-map.tb-render-night .tb-layout-shape-corner_outer_right::before{
  background:
    radial-gradient(circle at -12% 45%, rgba(255,240,170,.16), transparent 40%),
    linear-gradient(90deg, rgba(255,255,255,.13) 0%, rgba(130,180,255,.06) 30%, rgba(0,0,0,.10) 64%, rgba(0,0,0,.22) 100%),
    repeating-linear-gradient(90deg, rgba(255,255,255,.20) 0 1.25px, rgba(0,0,0,.10) 1.25px 2.15px, transparent 2.15px 8px),
    var(--tb-shape-bg,var(--shape-color,#7D86B1)) !important;
}
.tb-render-night .tb-layout-shape-olympic_left_full::before,
.tb-render-night .tb-layout-shape-olympic_left_tight_full::before,
.tb-render-night .tb-layout-shape-olympic_left_top::before,
.tb-render-night .tb-layout-shape-olympic_left_bottom::before,
.tb-render-night .tb-layout-shape-olympic_left_tight_top::before,
.tb-render-night .tb-layout-shape-olympic_left_tight_bottom::before,
.tb-layout-map.tb-render-night .tb-layout-shape-olympic_left_full::before,
.tb-layout-map.tb-render-night .tb-layout-shape-olympic_left_tight_full::before,
.tb-layout-map.tb-render-night .tb-layout-shape-olympic_left_top::before,
.tb-layout-map.tb-render-night .tb-layout-shape-olympic_left_bottom::before,
.tb-layout-map.tb-render-night .tb-layout-shape-olympic_left_tight_top::before,
.tb-layout-map.tb-render-night .tb-layout-shape-olympic_left_tight_bottom::before{
  background:
    radial-gradient(circle at 72% -8%, rgba(255,240,170,.18), transparent 38%),
    linear-gradient(112deg, rgba(255,255,255,.18), rgba(130,180,255,.05) 42%, rgba(0,0,0,.22)),
    repeating-radial-gradient(circle at 112% 50%, rgba(255,255,255,.20) 0 1.35px, rgba(0,0,0,.10) 1.35px 2.1px, transparent 2.1px 8px),
    var(--tb-shape-bg,var(--shape-color,#7D86B1)) !important;
  filter:drop-shadow(4px 6px 2px rgba(0,0,0,.24)) drop-shadow(8px 12px 8px rgba(0,0,0,.34)) brightness(.96) saturate(1.04) !important;
}
.tb-render-night .tb-layout-shape-olympic_right_full::before,
.tb-render-night .tb-layout-shape-olympic_right_tight_full::before,
.tb-render-night .tb-layout-shape-olympic_right_top::before,
.tb-render-night .tb-layout-shape-olympic_right_bottom::before,
.tb-render-night .tb-layout-shape-olympic_right_tight_top::before,
.tb-render-night .tb-layout-shape-olympic_right_tight_bottom::before,
.tb-layout-map.tb-render-night .tb-layout-shape-olympic_right_full::before,
.tb-layout-map.tb-render-night .tb-layout-shape-olympic_right_tight_full::before,
.tb-layout-map.tb-render-night .tb-layout-shape-olympic_right_top::before,
.tb-layout-map.tb-render-night .tb-layout-shape-olympic_right_bottom::before,
.tb-layout-map.tb-render-night .tb-layout-shape-olympic_right_tight_top::before,
.tb-layout-map.tb-render-night .tb-layout-shape-olympic_right_tight_bottom::before{
  background:
    radial-gradient(circle at 28% -8%, rgba(255,240,170,.18), transparent 38%),
    linear-gradient(248deg, rgba(255,255,255,.18), rgba(130,180,255,.05) 42%, rgba(0,0,0,.22)),
    repeating-radial-gradient(circle at -12% 50%, rgba(255,255,255,.20) 0 1.35px, rgba(0,0,0,.10) 1.35px 2.1px, transparent 2.1px 8px),
    var(--tb-shape-bg,var(--shape-color,#7D86B1)) !important;
  filter:drop-shadow(-4px 6px 2px rgba(0,0,0,.24)) drop-shadow(-8px 12px 8px rgba(0,0,0,.34)) brightness(.96) saturate(1.04) !important;
}

.tb-render-night .tb-layout-shape span,
.tb-layout-map.tb-render-night .tb-layout-shape span{
  color:#fff !important;
  text-shadow:
    0 2px 2px rgba(0,0,0,.95),
    0 0 8px rgba(0,0,0,.72),
    0 0 8px rgba(100,165,255,.16) !important;
}
.tb-render-night .tb-layout-shape span small,
.tb-layout-map.tb-render-night .tb-layout-shape span small{opacity:.98;}
.tb-render-night .tb-layout-shape.selected::after,
.tb-layout-map.tb-render-night .tb-layout-shape.selected::after{
  box-shadow:0 0 0 2px rgba(98,186,255,.95), 0 0 0 4px rgba(255,196,90,.54), 0 0 22px rgba(98,186,255,.28) !important;
  opacity:.96 !important;
}

/* Night glow layer remains decorative and shared. */
.tb-render-night .tb-layout-glow,
.tb-layout-map.tb-render-night .tb-layout-glow{
  opacity:.72 !important;
  filter:blur(15px) !important;
  background:
    radial-gradient(circle at 18% 12%, rgba(255,218,92,.13), transparent 18%),
    radial-gradient(circle at 82% 12%, rgba(255,218,92,.12), transparent 18%),
    linear-gradient(135deg, rgba(80,150,255,.13), transparent 36%, rgba(242,139,174,.06)) !important;
}

/* Objects: solid object layer with stronger special lights. */
.tb-render-night .tb-layout-object,
.tb-layout-map.tb-render-night .tb-layout-object{
  filter:
    drop-shadow(2px 4px 2px rgba(0,0,0,.30))
    drop-shadow(0 10px 9px rgba(0,0,0,.40))
    drop-shadow(0 0 7px rgba(130,180,255,.09)) !important;
}
.tb-render-night .tb-layout-object .tb-object-face,
.tb-layout-map.tb-render-night .tb-layout-object .tb-object-face{
  filter:drop-shadow(2px 4px 2px rgba(0,0,0,.25)) saturate(1.02) contrast(1.03) brightness(.95) !important;
}
.tb-render-night .tb-object-face-light_tower .light-head,
.tb-layout-map.tb-render-night .tb-object-face-light_tower .light-head{
  box-shadow:
    0 0 16px rgba(255,222,62,.86),
    0 0 34px rgba(255,209,47,.52),
    0 0 64px rgba(255,209,47,.24),
    inset 0 2px 0 rgba(255,255,255,.62),
    inset 0 -5px 8px rgba(0,0,0,.18) !important;
  filter:saturate(1.10) contrast(1.04) brightness(1.06) !important;
}
.tb-render-night .tb-object-face-light_tower .light-pole,
.tb-render-night .tb-object-face-light_tower .light-base,
.tb-layout-map.tb-render-night .tb-object-face-light_tower .light-pole,
.tb-layout-map.tb-render-night .tb-object-face-light_tower .light-base{
  box-shadow:inset 2px 0 0 rgba(255,255,255,.22), inset -3px 0 4px rgba(0,0,0,.25), 1px 4px 5px rgba(0,0,0,.24) !important;
}
.tb-render-night .tb-object-face-tree .leaf,
.tb-render-night .tb-object-face-palm .palm-leaf,
.tb-layout-map.tb-render-night .tb-object-face-tree .leaf,
.tb-layout-map.tb-render-night .tb-object-face-palm .palm-leaf{
  box-shadow:inset 0 2px 0 rgba(255,255,255,.20), inset -4px -5px 8px rgba(0,0,0,.22), 0 0 7px rgba(82,211,130,.10), 2px 4px 6px rgba(0,0,0,.22) !important;
  filter:saturate(1.01) brightness(.94) contrast(1.03) !important;
}
.tb-render-night .tb-object-face-road,
.tb-render-night .tb-object-face-parking,
.tb-render-night .tb-object-face-wall,
.tb-render-night .tb-object-face-building .tower,
.tb-layout-map.tb-render-night .tb-object-face-road,
.tb-layout-map.tb-render-night .tb-object-face-parking,
.tb-layout-map.tb-render-night .tb-object-face-wall,
.tb-layout-map.tb-render-night .tb-object-face-building .tower{
  box-shadow:inset 0 2px 0 rgba(255,255,255,.24), inset -3px 0 5px rgba(0,0,0,.20), inset 0 -9px 12px rgba(0,0,0,.28), 3px 6px 8px rgba(0,0,0,.28) !important;
}
.tb-render-night .tb-object-face-custom_image img,
.tb-layout-map.tb-render-night .tb-object-face-custom_image img{
  filter:drop-shadow(2px 4px 3px rgba(0,0,0,.28)) drop-shadow(0 9px 8px rgba(0,0,0,.34)) saturate(1.02) contrast(1.03) brightness(.95) !important;
}

@media(max-width:600px){
  .tb-render-night .tb-layout-map::before,
  .tb-layout-map.tb-render-night::before{opacity:.82;}
  .tb-render-night .tb-layout-shape,
  .tb-layout-map.tb-render-night .tb-layout-shape{filter:drop-shadow(2px 4px 2px rgba(0,0,0,.30)) drop-shadow(0 10px 8px rgba(0,0,0,.38)) drop-shadow(0 0 7px rgba(120,170,255,.10)) !important;}
  .tb-render-night .tb-layout-shape:not(.selected):not([class*="olympic_"])::after,
  .tb-layout-map.tb-render-night .tb-layout-shape:not(.selected):not([class*="olympic_"])::after{transform:translate(4px,6px) scale(.994) !important;opacity:.30 !important;}
  .tb-render-night .tb-layout-object,
  .tb-layout-map.tb-render-night .tb-layout-object{filter:drop-shadow(1px 3px 2px rgba(0,0,0,.26)) drop-shadow(0 8px 7px rgba(0,0,0,.36)) !important;}
}


/* TicketBlossom v2.6.56 - Seat Layout Debug Flip Sync
   Visible scaffold only: verifies that the future seat layer copies the
   exact visible section geometry before seats are generated. */
.tb-layout-shape .tb-seat-layout-debug{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:3;
  display:block;
  overflow:visible;
  pointer-events:none !important;
  mix-blend-mode:screen;
  transform:translateY(var(--tb-curve-lift,0%)) scaleX(var(--tb-flip-x,1)) scaleY(var(--tb-flip-y,1));
  transform-origin:center center;
}
.tb-layout-shape .tb-seat-layout-debug-path{
  fill:rgba(0,220,255,.22);
  stroke:rgba(255,230,80,.96);
  stroke-width:2.8;
  stroke-dasharray:5 3;
  vector-effect:non-scaling-stroke;
  filter:drop-shadow(0 0 3px rgba(0,220,255,.95)) drop-shadow(0 0 7px rgba(255,230,80,.45));
}
.tb-layout-shape.selected .tb-seat-layout-debug-path{
  fill:rgba(0,220,255,.30);
  stroke:rgba(120,255,170,1);
  stroke-width:3.2;
  stroke-dasharray:6 2.5;
}
.tb-stadium-render-public .tb-layout-shape .tb-seat-layout-debug-path{
  fill:rgba(0,220,255,.18);
  stroke:rgba(255,230,80,.88);
}
@media(max-width:600px){
  .tb-layout-shape .tb-seat-layout-debug-path{stroke-width:2.4;}
}

/* TicketBlossom v2.6.56 - Seat Layout Rows + Cells MVP
   Seat mode is stored inside section shape_data and only persists through the main canvas Guardar button. */
.tb-section-seats-block{margin-top:10px;display:grid;gap:6px;}
.tb-seat-section-btn{width:100%;justify-content:center;min-height:36px;font-size:13px!important;}
.tb-seat-section-btn.is-disabled,.tb-seat-section-btn:disabled{opacity:.45;cursor:not-allowed;}
.tb-seat-section-status{display:block;text-align:center;color:rgba(225,233,255,.62);font-size:11px;line-height:1.25;}
.tb-seat-modal-backdrop{z-index:9997!important;align-items:center;justify-content:center;padding:14px;}
.tb-seat-modal-card{width:min(430px,94vw);max-height:min(86vh,680px);overflow:auto;border-radius:18px;padding:14px!important;background:linear-gradient(180deg,rgba(15,24,42,.98),rgba(7,12,24,.98));border:1px solid rgba(148,163,184,.22);box-shadow:0 20px 65px rgba(0,0,0,.50);}
.tb-seat-modal-head h2{font-size:16px!important;letter-spacing:.01em;}
.tb-seat-mode-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:4px 0 10px;padding:9px 10px;border:1px solid rgba(148,163,184,.16);border-radius:14px;background:rgba(15,23,42,.72);font-size:13px;color:#eaf2ff;}
.tb-seat-mode-toggle{border:1px solid rgba(148,163,184,.24);background:rgba(30,41,59,.88);color:#d9e6ff;border-radius:999px;padding:7px 12px;font-weight:800;font-size:12px;min-width:80px;box-shadow:inset 0 1px 0 rgba(255,255,255,.06);}
.tb-seat-mode-toggle.is-on{background:linear-gradient(135deg,#16a34a,#22c55e);color:#04120a;border-color:rgba(74,222,128,.7);}
.tb-seat-rows-list{display:grid;gap:10px;}
.tb-seat-row-card{border:1px solid rgba(148,163,184,.16);border-radius:15px;background:rgba(11,18,32,.78);padding:10px;box-shadow:inset 0 1px 0 rgba(255,255,255,.04);}
.tb-seat-row-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;color:#dce9ff;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;}
.tb-seat-row-title button{width:24px;height:24px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:#e5edff;font-size:16px;line-height:1;}
.tb-seat-row-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;}
.tb-seat-row-grid label{display:grid;gap:4px;color:rgba(232,240,255,.70);font-size:11px;font-weight:700;}
.tb-seat-row-grid input{height:32px!important;border-radius:10px!important;font-size:13px!important;padding:6px 8px!important;background:rgba(2,6,23,.82)!important;border:1px solid rgba(148,163,184,.22)!important;color:#eef6ff!important;}
.tb-seat-orientation-row{display:flex;gap:7px;margin-top:9px;}
.tb-seat-orientation-row button{flex:1;height:31px;border-radius:10px;border:1px solid rgba(148,163,184,.18);background:rgba(15,23,42,.88);font-size:15px;}
.tb-seat-orientation-row button.active{background:rgba(34,197,94,.16);border-color:rgba(74,222,128,.62);box-shadow:0 0 0 1px rgba(74,222,128,.18),0 0 14px rgba(34,197,94,.10);}
.tb-seat-insert-inline,.tb-seat-add-row-btn{width:100%;margin-top:9px;min-height:32px!important;font-size:12px!important;background:rgba(30,41,59,.88)!important;border-color:rgba(148,163,184,.18)!important;color:#eaf2ff!important;}
.tb-seat-preview-title{font-size:12px;font-weight:900;color:#e5edff;margin:8px 0 6px;text-transform:uppercase;letter-spacing:.055em;}
.tb-seat-preview-box{min-height:54px;border-radius:14px;border:1px dashed rgba(148,163,184,.22);background:rgba(2,6,23,.42);padding:8px;display:grid;gap:6px;overflow:auto;max-height:160px;}
.tb-seat-preview-box small{color:rgba(232,240,255,.58);font-size:12px;}
.tb-seat-preview-row{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:8px;}
.tb-seat-preview-row b{font-size:12px;color:#cfe0ff;text-align:center;}
.tb-seat-preview-row div{display:flex;gap:4px;flex-wrap:wrap;}
.tb-seat-preview-row span{font-size:10px;min-width:22px;text-align:center;border-radius:7px;padding:3px 4px;background:rgba(148,163,184,.18);border:1px solid rgba(203,213,225,.20);color:#f8fbff;}
.tb-seat-preview-row em{font-size:10px;color:#9fb0c7;padding:3px 4px;font-style:normal;}
.tb-seat-modal-actions{display:flex;gap:9px;justify-content:flex-end;margin-top:12px;}

.tb-layout-shape .tb-seat-layout-cells .tb-seat-cell-layer{pointer-events:none;}
.tb-layout-shape .tb-seat-cell rect{fill:rgba(148,163,184,.42);stroke:rgba(255,255,255,.54);stroke-width:.45;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 1.5px rgba(0,0,0,.35));}
.tb-layout-shape .tb-seat-cell text{fill:rgba(255,255,255,.92);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-weight:900;text-anchor:middle;dominant-baseline:central;paint-order:stroke;stroke:rgba(0,0,0,.46);stroke-width:.65;stroke-linejoin:round;pointer-events:none;}
.tb-layout-shape.selected .tb-seat-cell rect{fill:rgba(34,197,94,.30);stroke:rgba(134,239,172,.72);}
.tb-stadium-render-public .tb-layout-shape .tb-seat-cell rect{fill:rgba(148,163,184,.38);stroke:rgba(255,255,255,.45);}
.tb-stadium-render-public .tb-layout-shape.is-sold-out .tb-seat-cell rect{fill:rgba(239,68,68,.35);stroke:rgba(254,202,202,.50);}


/* TicketBlossom v2.6.56 - Compact Seats Modal UI */
.tb-seat-modal-backdrop{z-index:10120!important;align-items:center!important;justify-content:center!important;padding:14px!important;}
.tb-seat-modal-card{width:min(430px,94vw)!important;max-height:min(86vh,680px)!important;overflow:auto!important;border-radius:18px!important;padding:14px!important;background:linear-gradient(180deg,rgba(28,28,28,.98),rgba(15,15,15,.98))!important;border:1px solid rgba(255,255,255,.14)!important;box-shadow:0 20px 65px rgba(0,0,0,.58)!important;}
.tb-seat-modal-head-compact{min-height:34px;margin:0 0 4px!important;padding:0!important;justify-content:flex-end!important;}
.tb-seat-modal-head-compact h2{display:none!important;}
.tb-seat-modal-card .tb-modal-close{width:42px!important;height:42px!important;border-radius:999px!important;background:rgba(255,255,255,.09)!important;color:#fff!important;}
.tb-seat-mode-row{margin:0 0 10px!important;padding:10px 12px!important;border-radius:14px!important;background:rgba(255,255,255,.035)!important;border:1px solid rgba(255,255,255,.11)!important;font-size:14px!important;font-weight:800!important;color:#f8fafc!important;}
.tb-seat-mode-toggle{min-width:76px!important;height:36px!important;padding:6px 12px!important;font-size:12px!important;}
.tb-seat-rows-list{gap:8px!important;}
.tb-seat-row-card-compact{position:relative!important;padding:10px 10px 9px!important;border-radius:14px!important;background:rgba(8,10,14,.82)!important;border:1px solid rgba(255,255,255,.10)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)!important;}
.tb-seat-row-title,.tb-seat-insert-inline,.tb-seat-orientation-row{display:none!important;}
.tb-seat-row-remove{position:absolute!important;right:7px!important;top:-9px!important;width:24px!important;height:24px!important;border-radius:999px!important;border:1px solid rgba(255,255,255,.18)!important;background:rgba(42,42,42,.96)!important;color:#fff!important;font-size:17px!important;font-weight:900!important;line-height:20px!important;z-index:5!important;box-shadow:0 8px 18px rgba(0,0,0,.38)!important;}
.tb-seat-row-grid-compact{display:grid!important;grid-template-columns:minmax(48px,.9fr) minmax(60px,1fr) minmax(70px,1fr) minmax(62px,.85fr)!important;gap:7px!important;align-items:end!important;}
.tb-seat-row-grid-compact label{display:grid!important;gap:4px!important;margin:0!important;color:rgba(232,240,255,.72)!important;font-size:10.5px!important;font-weight:850!important;line-height:1.05!important;}
.tb-seat-row-grid-compact input{height:30px!important;min-height:30px!important;border-radius:10px!important;font-size:12.5px!important;padding:5px 8px!important;background:rgba(5,5,6,.92)!important;border:1px solid rgba(255,255,255,.13)!important;color:#f8fafc!important;}
.tb-seat-dir-field{position:relative!important;}
.tb-seat-dir-select{height:30px!important;width:100%!important;border-radius:10px!important;border:1px solid rgba(255,255,255,.13)!important;background:rgba(5,5,6,.92)!important;color:#fff!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:5px!important;font-size:13px!important;font-weight:900!important;padding:0 6px!important;}
.tb-seat-dir-select b{font-size:10px!important;opacity:.68!important;line-height:1!important;}
.tb-seat-dir-menu{position:absolute!important;right:0!important;top:calc(100% + 5px)!important;display:grid!important;grid-template-columns:repeat(4,34px)!important;gap:5px!important;padding:6px!important;border-radius:12px!important;border:1px solid rgba(255,255,255,.14)!important;background:rgba(18,18,18,.98)!important;box-shadow:0 16px 35px rgba(0,0,0,.55)!important;z-index:20!important;}
.tb-seat-dir-menu button{width:34px!important;height:30px!important;border-radius:9px!important;border:1px solid rgba(255,255,255,.12)!important;background:rgba(255,255,255,.06)!important;color:#fff!important;font-size:14px!important;}
.tb-seat-dir-menu button.active{background:rgba(34,197,94,.18)!important;border-color:rgba(74,222,128,.70)!important;box-shadow:0 0 0 1px rgba(74,222,128,.18),0 0 14px rgba(34,197,94,.10)!important;}
.tb-seat-add-row-btn{margin-top:8px!important;min-height:34px!important;border-radius:12px!important;font-size:13px!important;background:rgba(255,255,255,.07)!important;border-color:rgba(255,255,255,.10)!important;}
.tb-seat-preview-title{font-size:12px!important;margin:9px 0 6px!important;}
.tb-seat-preview-box{min-height:50px!important;max-height:130px!important;border-radius:13px!important;background:rgba(3,3,4,.45)!important;border-color:rgba(255,255,255,.13)!important;}
.tb-seat-modal-actions{display:flex!important;gap:9px!important;justify-content:stretch!important;margin-top:12px!important;}
.tb-seat-modal-actions .tb-btn{flex:1!important;min-height:42px!important;border-radius:13px!important;font-size:15px!important;}
@media (max-width:420px){
  .tb-seat-modal-card{width:min(390px,94vw)!important;padding:12px!important;}
  .tb-seat-row-grid-compact{grid-template-columns:minmax(42px,.8fr) minmax(52px,.9fr) minmax(60px,1fr) minmax(54px,.8fr)!important;gap:6px!important;}
  .tb-seat-row-grid-compact input,.tb-seat-dir-select{height:29px!important;font-size:12px!important;padding-left:6px!important;padding-right:6px!important;}
}

/* TicketBlossom v2.6.58 - Seat mode render rules */
.tb-seat-rows-list.is-seat-mode-off .tb-seat-row-card,
.tb-seat-row-card-compact.is-disabled{
  opacity:.48!important;
  filter:grayscale(.75)!important;
  background:rgba(55,65,81,.34)!important;
  border-color:rgba(148,163,184,.13)!important;
}
.tb-seat-row-card-compact.is-disabled input,
.tb-seat-row-card-compact.is-disabled .tb-seat-dir-select{
  cursor:not-allowed!important;
  color:rgba(226,232,240,.55)!important;
  background:rgba(31,41,55,.70)!important;
  border-color:rgba(148,163,184,.14)!important;
}
.tb-seat-add-row-btn:disabled,
.tb-seat-add-row-btn.is-disabled{
  opacity:.42!important;
  cursor:not-allowed!important;
  filter:grayscale(.75)!important;
}
.tb-seat-modal-actions{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:stretch!important;
  gap:9px!important;
}
.tb-seat-modal-actions .tb-btn{
  flex:1 1 0!important;
  width:auto!important;
}


/* TicketBlossom v2.6.60 - Curved arc seat rows */
.tb-seat-global-dir-row{position:relative!important;margin-top:-2px!important;margin-bottom:10px!important;}
.tb-seat-global-dir-row small{margin-left:6px!important;font-size:10px!important;color:rgba(226,232,240,.55)!important;font-weight:800!important;}
.tb-seat-global-dir-field{width:86px!important;display:block!important;}
.tb-seat-row-grid-no-dir{grid-template-columns:minmax(58px,.85fr) minmax(70px,1fr) minmax(78px,1fr)!important;}
.tb-seat-global-dir-row.is-disabled{opacity:.55!important;filter:grayscale(.6)!important;}
.tb-seat-global-dir-row.is-disabled .tb-seat-dir-select{cursor:not-allowed!important;color:rgba(226,232,240,.55)!important;background:rgba(31,41,55,.70)!important;border-color:rgba(148,163,184,.14)!important;}
@media (max-width:420px){.tb-seat-row-grid-no-dir{grid-template-columns:minmax(50px,.85fr) minmax(58px,1fr) minmax(68px,1fr)!important;}}


/* TicketBlossom v2.6.61 - Public Seat Focus Mode */
.tb-stadium-render-public.tb-seat-focus-active .tb-layout-shape:not(.tb-seat-focus-section){
  opacity:.32;
  filter:grayscale(.35) brightness(.72);
}
.tb-stadium-render-public.tb-seat-focus-active .tb-layout-object{
  opacity:.42;
}
.tb-public-stadium .tb-stadium-render-public .tb-layout-shape.tb-seat-focus-section{
  transform-origin:center center;
  filter:brightness(1.12) saturate(1.08) drop-shadow(0 22px 30px rgba(0,0,0,.35));
}
.tb-public-stadium .tb-stadium-render-public .tb-layout-shape[data-seat-mode="true"] .tb-seat-section-name b{
  font-size:13px;
  letter-spacing:.02em;
}
.tb-public-stadium .tb-stadium-render-public.tb-seat-focus-active .tb-seat-focus-section .tb-seat-layout-cells{
  z-index:18 !important;
  pointer-events:auto !important;
}
.tb-public-stadium .tb-stadium-render-public.tb-seat-focus-active .tb-seat-focus-section .tb-seat-cell-layer{
  pointer-events:auto !important;
}
.tb-public-stadium .tb-stadium-render-public.tb-seat-focus-active .tb-seat-focus-section .tb-seat-cell{
  cursor:pointer;
  pointer-events:visiblePainted !important;
}
.tb-public-stadium .tb-stadium-render-public.tb-seat-focus-active .tb-seat-focus-section .tb-seat-cell rect{
  fill:rgba(148,163,184,.54);
  stroke:rgba(255,255,255,.74);
  stroke-width:.65;
}
.tb-public-stadium .tb-stadium-render-public .tb-seat-cell.is-selected rect,
.tb-public-stadium .tb-stadium-render-public.tb-seat-focus-active .tb-seat-focus-section .tb-seat-cell.is-selected rect{
  fill:rgba(34,197,94,.78);
  stroke:rgba(187,247,208,.98);
  stroke-width:.9;
  filter:drop-shadow(0 0 4px rgba(34,197,94,.55));
}
.tb-public-stadium .tb-stadium-render-public .tb-seat-cell.is-selected text{
  fill:#ffffff;
  stroke:rgba(0,0,0,.62);
}
.tb-seat-focus-note{
  margin:6px 0 10px;
  padding:8px 9px;
  border-radius:12px;
  background:rgba(34,197,94,.10);
  border:1px solid rgba(74,222,128,.20);
  color:rgba(220,252,231,.88);
  font-size:12px;
  line-height:1.35;
}
.tb-seat-focus-exit{
  margin-top:10px;
  background:rgba(30,41,59,.92)!important;
  border-color:rgba(148,163,184,.22)!important;
  color:#eaf2ff!important;
}
.tb-seat-summary-group{
  display:grid;
  gap:3px;
  padding:8px 0;
  border-bottom:1px solid rgba(148,163,184,.14);
}
.tb-seat-summary-group b{color:#fff;}
.tb-seat-summary-group span{color:rgba(226,232,240,.82);font-size:13px;line-height:1.35;}

/* TicketBlossom v2.6.62 - Public seat focus polish + faster touch selection */
.tb-public-stadium .tb-stadium-render-public.tb-seat-focus-active .tb-seat-focus-section .tb-seat-section-name{
  display:none!important;
}
.tb-public-stadium .tb-stadium-render-public .tb-seat-cell .tb-seat-hit-area,
.tb-public-stadium .tb-stadium-render-public.tb-seat-focus-active .tb-seat-focus-section .tb-seat-cell .tb-seat-hit-area,
.tb-public-stadium .tb-stadium-render-public .tb-seat-cell.is-selected .tb-seat-hit-area,
.tb-public-stadium .tb-stadium-render-public.tb-seat-focus-active .tb-seat-focus-section .tb-seat-cell.is-selected .tb-seat-hit-area{
  fill:transparent!important;
  stroke:transparent!important;
  filter:none!important;
  pointer-events:all!important;
}
.tb-public-stadium .tb-stadium-render-public.tb-seat-focus-active .tb-seat-focus-section .tb-seat-cell{
  touch-action:manipulation;
}

/* TicketBlossom v2.6.63 - Direct public seat selection, Focus Mode removed */
.tb-public-stadium .tb-stadium-render-public .tb-layout-shape[data-seat-mode="true"] .tb-seat-layout-cells{
  z-index:18!important;
  pointer-events:auto!important;
}
.tb-public-stadium .tb-stadium-render-public .tb-layout-shape[data-seat-mode="true"] .tb-seat-cell-layer{
  pointer-events:auto!important;
}
.tb-public-stadium .tb-stadium-render-public .tb-layout-shape[data-seat-mode="true"] .tb-seat-cell{
  cursor:pointer;
  pointer-events:visiblePainted!important;
  touch-action:manipulation;
}
.tb-public-stadium .tb-stadium-render-public .tb-layout-shape[data-seat-mode="true"] .tb-seat-cell rect{
  fill:rgba(148,163,184,.54);
  stroke:rgba(255,255,255,.74);
  stroke-width:.65;
}
.tb-public-stadium .tb-stadium-render-public .tb-layout-shape[data-seat-mode="true"] .tb-seat-cell.is-selected rect{
  fill:rgba(34,197,94,.78);
  stroke:rgba(187,247,208,.98);
  stroke-width:.9;
  filter:drop-shadow(0 0 4px rgba(34,197,94,.55));
}
.tb-public-stadium .tb-stadium-render-public .tb-layout-shape[data-seat-mode="true"] .tb-seat-cell.is-selected text{
  fill:#ffffff;
  stroke:rgba(0,0,0,.62);
}

/* TicketBlossom v2.6.67 - Public seat hold state + compact popup */
body.tb-public-modal-open{
  overflow:hidden!important;
  touch-action:auto;
}
.tb-public-stadium .tb-stadium-render-public .tb-layout-shape[data-seat-mode="true"] .tb-seat-cell.is-held rect:not(.tb-seat-hit-area){
  fill:rgba(250,204,21,.58)!important;
  stroke:rgba(254,240,138,.92)!important;
  stroke-width:.9!important;
  filter:drop-shadow(0 0 4px rgba(250,204,21,.42));
}
.tb-public-stadium .tb-stadium-render-public .tb-layout-shape[data-seat-mode="true"] .tb-seat-cell.is-held text{
  fill:#fff7c2!important;
  stroke:rgba(0,0,0,.62)!important;
}
.tb-public-stadium .tb-stadium-render-public .tb-layout-shape[data-seat-mode="true"] .tb-seat-cell.is-sold rect:not(.tb-seat-hit-area){
  fill:rgba(239,68,68,.72)!important;
  stroke:rgba(254,202,202,.96)!important;
  stroke-width:.9!important;
  filter:drop-shadow(0 0 4px rgba(239,68,68,.45));
}
.tb-public-stadium .tb-stadium-render-public .tb-layout-shape[data-seat-mode="true"] .tb-seat-cell.is-sold text{
  fill:#fff!important;
  stroke:rgba(0,0,0,.7)!important;
}
.tb-seat-info-backdrop{
  position:fixed;
  inset:0;
  z-index:12000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(0,0,0,.48);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
  overscroll-behavior:contain;
}
.tb-seat-info-card{
  width:min(92vw,360px);
  border-radius:22px;
  padding:18px;
  background:linear-gradient(180deg,rgba(28,28,32,.98),rgba(14,14,18,.98));
  border:1px solid rgba(255,255,255,.13);
  box-shadow:0 20px 70px rgba(0,0,0,.48);
  color:#fff;
  text-align:center;
}
.tb-seat-info-icon{
  width:42px;
  height:42px;
  margin:0 auto 10px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:rgba(250,204,21,.14);
  border:1px solid rgba(250,204,21,.28);
  font-size:21px;
}
.tb-seat-info-card h3{
  margin:0 0 7px;
  font-size:18px;
  line-height:1.15;
}
.tb-seat-info-card p{
  margin:0 auto 13px;
  color:rgba(226,232,240,.82);
  font-size:13px;
  line-height:1.42;
  max-width:300px;
}
.tb-seat-info-box{
  display:grid;
  gap:7px;
  margin:0 0 14px;
  padding:11px;
  border-radius:16px;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.08);
  text-align:left;
}
.tb-seat-info-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  color:rgba(226,232,240,.72);
  font-size:13px;
}
.tb-seat-info-row b{
  color:#fff;
  text-align:right;
  font-size:13px;
}
.tb-seat-info-close{
  width:100%;
  min-height:42px;
  border-radius:14px;
  border:0;
  background:#22c55e;
  color:#07130b;
  font-weight:900;
  cursor:pointer;
}


/* TicketBlossom v2.6.68 - Public seat status polish */
.tb-seat-info-backdrop{
  max-width:none!important;
  max-height:none!important;
}
.tb-seat-info-card{
  max-height:min(78vh,560px);
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  will-change:transform;
}
.tb-stadium-render-public .tb-seat-cell .tb-seat-sold-x{
  fill:#ef4444!important;
  stroke:#ffffff!important;
  stroke-width:1.15px!important;
  paint-order:stroke fill;
  font-weight:1000!important;
  pointer-events:none;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.85));
}
.tb-public-stadium .tb-stadium-render-public .tb-layout-shape[data-seat-mode="true"] .tb-seat-cell.is-sold rect:not(.tb-seat-hit-area){
  fill:rgba(239,68,68,.44)!important;
  stroke:rgba(254,202,202,.78)!important;
}
@media(max-width:520px){
  .tb-seat-info-card{
    width:min(88vw,340px);
    padding:16px;
    border-radius:20px;
  }
}


/* TicketBlossom v2.6.72 - Zoom-safe public seat status popup */
.tb-seat-info-backdrop{
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
}
.tb-seat-info-card{
  box-sizing:border-box!important;
  min-width:300px;
  max-width:none!important;
}
@media(max-width:520px){
  .tb-seat-info-card{
    min-width:286px;
  }
}


/* TicketBlossom v2.6.73 - Compact zoom-friendly public seat status popup */
body.tb-public-modal-open{
  overflow:hidden!important;
  touch-action:auto!important;
}
.tb-seat-info-backdrop{
  position:fixed!important;
  inset:0!important;
  left:0!important;
  top:0!important;
  right:0!important;
  bottom:0!important;
  width:100%!important;
  height:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:12px!important;
  background:rgba(0,0,0,.46)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  overflow:hidden!important;
  touch-action:pan-x pan-y pinch-zoom!important;
}
.tb-seat-info-card{
  position:relative!important;
  left:auto!important;
  top:auto!important;
  transform:none!important;
  width:min(86vw,300px)!important;
  min-width:0!important;
  max-width:300px!important;
  max-height:min(72vh,430px)!important;
  overflow:auto!important;
  padding:13px 14px!important;
  border-radius:18px!important;
  text-align:center!important;
}
.tb-seat-info-icon{
  width:34px!important;
  height:34px!important;
  margin:0 auto 7px!important;
  font-size:18px!important;
}
.tb-seat-info-card h3{
  font-size:16px!important;
  margin:0 0 5px!important;
  line-height:1.15!important;
}
.tb-seat-info-card p{
  font-size:12px!important;
  line-height:1.25!important;
  margin:0 auto 9px!important;
  max-width:250px!important;
}
.tb-seat-info-box{
  padding:8px 9px!important;
  border-radius:14px!important;
  margin:0 0 10px!important;
}
.tb-seat-info-row{
  font-size:12px!important;
  gap:8px!important;
  padding:4px 0!important;
}
.tb-seat-info-row b{
  font-size:12px!important;
  max-width:160px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.tb-seat-info-close{
  min-height:36px!important;
  border-radius:12px!important;
  font-size:14px!important;
  padding:8px 10px!important;
}
@media(max-width:520px){
  .tb-seat-info-card{
    width:min(84vw,280px)!important;
    max-width:280px!important;
    padding:12px!important;
    border-radius:17px!important;
  }
}

/* TicketBlossom v2.6.78 - Desktop editor workspace canvas-first tuning
   Desktop only: keep the approved two-column workspace, preserve the square aspect ratio,
   and let the canvas use more of the real viewport. Mobile/tablet narrow layouts remain unchanged. */
@media (min-width: 1024px) and (min-height: 620px){
  #sectionsPanel.admin-sections-panel[style*="display: block"],
  #sectionsPanel.admin-sections-panel[style*="display:block"]{
    display:grid !important;
    grid-template-columns: clamp(184px, 18vw, 235px) minmax(460px, 1fr);
    grid-template-areas:
      "title title"
      "intro intro"
      "tools canvas"
      "tools save"
      "data data";
    column-gap:14px;
    row-gap:7px;
    align-items:start;
  }
  #sectionsPanel.admin-sections-panel > h2{grid-area:title;margin-bottom:0;}
  #sectionsIntro{grid-area:intro;margin-top:0;margin-bottom:0;}
  #sectionsPanel .admin-section-tools{
    grid-area:tools;
    align-self:start;
    position:sticky;
    top:10px;
    max-height:calc(100vh - 118px);
    overflow:auto;
    overscroll-behavior:contain;
    margin:0 !important;
    padding:6px 6px 6px 0;
    display:flex !important;
    flex-direction:column;
    gap:7px;
    scrollbar-width:thin;
  }
  #sectionsPanel .admin-global-tools{
    width:100% !important;
    display:grid !important;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:6px !important;
    margin:0 !important;
  }
  #sectionsPanel .admin-global-tools .admin-small-btn{
    width:100% !important;
    min-width:0 !important;
    min-height:38px !important;
    height:38px !important;
    padding:4px 6px !important;
    border-radius:9px !important;
  }
  #sectionsPanel .admin-global-tools .admin-small-btn span{
    font-size:15px !important;
  }
  #sectionsPanel .admin-global-tools .admin-small-btn small{
    font-size:8.5px !important;
  }
  #sectionsPanel .admin-adjust-toolbar{
    width:100% !important;
    display:grid !important;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:6px !important;
    align-items:stretch !important;
  }
  #sectionsPanel .admin-adjust-toolbar .admin-tool-btn{
    width:100% !important;
    min-width:0 !important;
    min-height:46px !important;
    height:46px !important;
    padding:4px 4px !important;
    border-radius:9px !important;
  }
  #sectionsPanel .admin-adjust-toolbar .admin-tool-btn span{
    font-size:16px !important;
  }
  #sectionsPanel .admin-adjust-toolbar .admin-tool-btn small{
    font-size:9px !important;
  }
  #sectionsCanvas.tb-stadium-canvas{
    grid-area:canvas;
    margin-top:0 !important;
    width:100%;
  }
  #sectionsCanvas .tb-layout-map{
    width:min(100%, 820px, calc(100vh - 168px)) !important;
    max-width:min(100%, 820px, calc(100vh - 168px)) !important;
    min-width:380px;
  }
  #sectionsPanel .tb-production-save-row{
    grid-area:save;
    margin-top:6px !important;
    justify-content:center;
  }
  #layoutDataBox.admin-layout-data{
    grid-area:data;
    margin-top:4px !important;
  }
}
@media (min-width: 1024px) and (min-height: 620px) and (max-height: 720px){
  #sectionsCanvas .tb-layout-map{
    width:min(100%, 780px, calc(100vh - 148px)) !important;
    max-width:min(100%, 780px, calc(100vh - 148px)) !important;
    min-width:360px;
  }
  #sectionsPanel .admin-section-tools{
    max-height:calc(100vh - 102px);
  }
  #sectionsPanel.admin-sections-panel[style*="display: block"],
  #sectionsPanel.admin-sections-panel[style*="display:block"]{
    grid-template-columns: clamp(174px, 17vw, 220px) minmax(440px, 1fr);
    column-gap:12px;
    row-gap:6px;
  }
  #sectionsPanel .admin-global-tools .admin-small-btn{
    min-height:36px !important;
    height:36px !important;
    padding:3px 5px !important;
  }
  #sectionsPanel .admin-adjust-toolbar .admin-tool-btn{
    min-height:43px !important;
    height:43px !important;
  }
}
@media (min-width: 1280px) and (min-height: 760px){
  #sectionsCanvas .tb-layout-map{
    width:min(100%, 860px, calc(100vh - 178px)) !important;
    max-width:min(100%, 860px, calc(100vh - 178px)) !important;
  }
}

/* v2.6.80 event page compact app layout */
.tb-event-header-compact{margin:2px 0 8px;text-align:center;}
.tb-event-header-compact h1{font-size:clamp(21px,5.6vw,32px);line-height:1.05;margin:0;font-weight:900;letter-spacing:-.03em;color:#f6f8f6;}
.tb-event-map-card{padding:14px 14px 16px;}
.tb-event-map-meta{display:grid;gap:5px;margin:0 auto 10px;max-width:560px;text-align:left;}
.tb-event-meta-line{display:flex;align-items:baseline;gap:6px;color:#ddd;font-size:13px;line-height:1.25;min-width:0;}
.tb-event-meta-line span{color:#9fa6a3;font-size:12px;font-weight:700;flex:0 0 auto;}
.tb-event-meta-line b{color:#f4f6f5;font-size:13px;font-weight:800;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tb-event-meta-inline{gap:6px 8px;flex-wrap:wrap;}
.tb-event-map-card #stadium{margin:8px auto 0;}
.event-panels-single{display:block;margin-top:12px;}
.tb-hidden-summary{display:none!important;}
.tb-purchase-panel{padding:14px;background:linear-gradient(180deg,#191919,#151515);border:1px solid #303030;border-radius:16px;box-shadow:0 12px 28px rgba(0,0,0,.20);}
.tb-purchase-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px;}
.tb-purchase-head h3{margin:0;font-size:20px;line-height:1.1;font-weight:900;letter-spacing:-.02em;}
.tb-purchase-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#9fa6a3;font-weight:800;margin-bottom:3px;}
.tb-purchase-mode{font-size:11px;font-weight:900;color:#111;background:var(--tb-green);border-radius:999px;padding:5px 9px;white-space:nowrap;box-shadow:0 0 0 1px rgba(255,255,255,.08) inset;}
.tb-purchase-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:8px 0 10px;}
.tb-purchase-stat{background:#121212;border:1px solid #2d2d2d;border-radius:12px;padding:9px 10px;display:flex;align-items:center;justify-content:space-between;gap:8px;}
.tb-purchase-stat span{font-size:12px;color:#aaa;font-weight:700;}
.tb-purchase-stat b{font-size:15px;color:#fff;font-weight:900;}
.tb-qty-inline{display:grid;grid-template-columns:1fr 92px;align-items:center;gap:10px;margin:8px 0 10px;}
.tb-qty-inline label{margin:0;color:#ddd;font-weight:800;}
.tb-qty-inline input{width:100%;}
.tb-purchase-summary{margin-top:10px;border-top:1px solid #2c2c2c;padding-top:10px;display:grid;gap:7px;}
.tb-purchase-summary .tb-row{padding:2px 0;}
.tb-purchase-summary .summary-total{font-size:25px;margin-top:5px;}
.tb-continue-btn{margin-top:6px;}
.tb-seat-summary-group{display:flex;justify-content:space-between;gap:12px;background:#111;border:1px solid #2b2b2b;border-radius:10px;padding:8px 10px;align-items:flex-start;}
.tb-seat-summary-group b{white-space:nowrap;}
.tb-seat-summary-group span{text-align:right;color:#e8e8e8;font-weight:800;word-break:break-word;}
@media (max-width:520px){
  .tb-event-map-card{padding:12px;}
  .tb-event-meta-line,.tb-event-meta-line b{font-size:12px;}
  .tb-event-meta-line span{font-size:11px;}
  .tb-purchase-panel{padding:12px;border-radius:14px;}
  .tb-purchase-head h3{font-size:18px;}
  .tb-purchase-summary .summary-total{font-size:23px;}
}

/* v2.6.81 event purchase refinement */
.tb-event-map-meta{
  background:linear-gradient(180deg,rgba(22,22,22,.86),rgba(14,14,14,.78));
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;
  padding:9px 10px;
  box-shadow:0 10px 24px rgba(0,0,0,.18) inset, 0 8px 18px rgba(0,0,0,.16);
}
.tb-event-meta-line{
  gap:7px;
  font-size:12px;
  color:#e7ebe8;
}
.tb-event-meta-line span{
  font-size:11px;
  color:#a8afac;
  letter-spacing:.01em;
}
.tb-event-meta-line b{
  font-size:12px;
  color:#f7faf8;
}
.tb-event-meta-inline{
  display:flex;
  align-items:center;
  gap:6px 10px;
}
.tb-purchase-panel{
  padding:14px!important;
  background:linear-gradient(180deg,rgba(28,28,28,.94),rgba(14,15,15,.94))!important;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:18px!important;
  box-shadow:0 18px 38px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.04)!important;
}
.tb-purchase-head{
  margin-bottom:10px!important;
}
.tb-purchase-kicker{
  font-size:10px!important;
  letter-spacing:.10em!important;
  color:#a9afad!important;
}
.tb-purchase-head h3{
  font-size:20px!important;
  line-height:1.05!important;
}
.tb-purchase-mode{
  font-size:11px!important;
  padding:6px 10px!important;
}
.tb-purchase-grid{
  gap:8px!important;
  margin:8px 0 10px!important;
}
.tb-purchase-stat{
  background:rgba(12,13,13,.78)!important;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:14px!important;
  padding:9px 11px!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03)!important;
}
.tb-purchase-stat span,
.tb-purchase-summary .tb-row span{
  font-size:12px!important;
  color:#b0b6b3!important;
  font-weight:700!important;
}
.tb-purchase-stat b,
.tb-purchase-summary .tb-row b{
  font-size:13px!important;
  color:#f6f8f7!important;
  font-weight:900!important;
}
.tb-qty-inline{
  grid-template-columns:1fr 88px!important;
  margin:8px 0 8px!important;
}
.tb-qty-inline label{
  font-size:13px!important;
}
.tb-qty-inline input{
  min-height:42px!important;
  border-radius:13px!important;
  font-size:18px!important;
  font-weight:900!important;
}
.tb-purchase-summary{
  margin-top:10px!important;
  border-top:1px solid rgba(255,255,255,.09)!important;
  padding-top:9px!important;
  gap:5px!important;
}
.tb-purchase-summary .tb-row{
  padding:4px 0!important;
  border-bottom:1px solid rgba(255,255,255,.08)!important;
}
.tb-purchase-summary .tb-row:last-of-type{
  border-bottom:0!important;
}
.tb-purchase-summary .summary-total{
  font-size:22px!important;
  line-height:1.1!important;
  margin:8px 0 4px!important;
}
.tb-purchase-buyer-zone{
  margin-top:10px;
  border-top:1px solid rgba(255,255,255,.09);
  padding-top:10px;
}
.tb-purchase-buyer-note{
  color:#9ee8a8;
  font-size:12px;
  line-height:1.25;
  margin:0 0 7px;
  font-weight:700;
}
.tb-purchase-buyer-card{
  margin:0!important;
  background:rgba(8,14,11,.64)!important;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:15px!important;
  padding:10px 11px!important;
}
.tb-purchase-buyer-fields{
  display:grid;
  gap:7px;
}
.tb-purchase-buyer-fields label{
  margin:0;
  font-size:12px;
  color:#f0f2f1;
  font-weight:800;
}
.tb-purchase-buyer-fields input{
  min-height:42px;
  border-radius:13px;
  font-size:14px;
  padding:9px 12px;
}
.tb-continue-btn{
  margin-top:11px!important;
  min-height:44px!important;
  border-radius:13px!important;
  font-size:16px!important;
}
.tb-seat-selected-block{
  margin:3px 0 9px;
  background:rgba(12,13,13,.62);
  border:1px solid rgba(255,255,255,.10);
  border-radius:15px;
  padding:8px;
}
.tb-seat-chip-empty{
  color:#aab1ae;
  font-size:12px;
  font-weight:700;
  padding:3px 2px;
}
.tb-seat-chip-grid{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  max-height:64px;
  overflow-y:auto;
  overflow-x:hidden;
  padding-right:2px;
  scrollbar-width:thin;
}
.tb-seat-price-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:linear-gradient(180deg,rgba(26,26,26,.94),rgba(11,11,11,.94));
  border:1px solid rgba(112,255,133,.24);
  border-radius:11px;
  padding:6px 8px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04), 0 4px 10px rgba(0,0,0,.18);
  white-space:nowrap;
}
.tb-seat-price-chip b{
  font-size:12px;
  color:#fff;
  font-weight:900;
}
.tb-seat-price-chip em{
  font-style:normal;
  color:#8dff9d;
  font-size:12px;
  font-weight:900;
}
.tb-purchase-empty{
  font-size:12px;
  padding:2px 0;
}
@media (max-width:520px){
  .tb-event-map-meta{padding:8px 9px;border-radius:13px;margin-bottom:8px;}
  .tb-event-meta-line,.tb-event-meta-line b{font-size:11.5px!important;}
  .tb-event-meta-line span{font-size:10.5px!important;}
  .tb-purchase-panel{padding:12px!important;border-radius:16px!important;}
  .tb-purchase-head h3{font-size:19px!important;}
  .tb-purchase-grid{gap:7px!important;}
  .tb-purchase-stat{padding:8px 9px!important;}
  .tb-purchase-summary .summary-total{font-size:21px!important;}
  .tb-seat-chip-grid{max-height:60px;gap:5px;}
  .tb-seat-price-chip{padding:5px 7px;border-radius:10px;}
}

/* v2.6.92 visual polish: seat chips + quantity box */
.tb-seat-price-chip{
  border-color:rgba(42,151,255,.75)!important;
  box-shadow:-8px 0 18px rgba(42,151,255,.22),8px 0 18px rgba(242,139,174,.22),inset 0 1px 0 rgba(255,255,255,.04)!important;
}
.tb-seat-price-chip em{
  color:#e2c36b!important;
}
.tb-seat-price-chip.tb-seat-chip-new{
  animation:tbSeatChipDropIn .28s cubic-bezier(.2,.85,.24,1.15) both;
}
@keyframes tbSeatChipDropIn{
  0%{opacity:.25;transform:translateY(-9px) scale(.97);filter:brightness(1.15);}
  70%{opacity:1;transform:translateY(1px) scale(1.01);}
  100%{opacity:1;transform:translateY(0) scale(1);filter:brightness(1);}
}
.tb-seat-chip-grid.tb-has-scroll{
  overflow-y:scroll!important;
  scrollbar-gutter:stable;
}
.tb-purchase-buyer-note{
  display:none!important;
}
.tb-qty-inline{
  grid-template-columns:1fr 72px!important;
  gap:8px!important;
  margin:6px 0 8px!important;
}
.tb-qty-inline input{
  min-height:36px!important;
  border-radius:12px!important;
  font-size:16px!important;
  border-color:rgba(42,151,255,.75)!important;
  box-shadow:-8px 0 18px rgba(42,151,255,.22),8px 0 18px rgba(242,139,174,.22),inset 0 1px 0 rgba(255,255,255,.04)!important;
}
@media(max-width:520px){
  .tb-qty-inline{grid-template-columns:1fr 66px!important;}
  .tb-qty-inline input{min-height:34px!important;font-size:15px!important;}
}

/* TicketBlossom v2.6.93 - Precision desktop polish + chips final color */
/* Public chips: keep the approved glow/animation, but make price white again. */
.tb-seat-price-chip em{
  color:#fff!important;
}

/* Precision tags X/Y/W/H/R: technical blue badge, applies desktop + mobile. */
.tb-precision-row b{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:24px!important;
  height:24px!important;
  min-width:24px!important;
  border-radius:8px!important;
  color:#d8ecff!important;
  font-size:11px!important;
  font-weight:950!important;
  letter-spacing:.02em!important;
  background:linear-gradient(180deg,rgba(22,42,66,.96),rgba(8,18,31,.96))!important;
  border:1px solid rgba(42,151,255,.72)!important;
  box-shadow:0 0 12px rgba(42,151,255,.20), inset 0 1px 0 rgba(255,255,255,.10)!important;
  text-shadow:0 1px 2px rgba(0,0,0,.65)!important;
}

/* Desktop only: Precision panel becomes a clean one-column tool panel in the sidebar. */
@media (min-width:1024px) and (min-height:620px){
  #sectionsPanel .admin-section-tools{
    position:sticky;
    overflow:visible!important;
  }
  #sectionsPanel .tb-precision-panel{
    width:100%!important;
    max-width:none!important;
    box-sizing:border-box!important;
    padding:10px!important;
    margin:0!important;
    border-radius:16px!important;
    border:1px solid rgba(42,151,255,.48)!important;
    background:linear-gradient(180deg,rgba(19,25,31,.98),rgba(13,18,22,.98))!important;
    box-shadow:-8px 0 18px rgba(42,151,255,.18),8px 0 18px rgba(42,151,255,.10),0 18px 42px rgba(0,0,0,.48),inset 0 1px 0 rgba(255,255,255,.07)!important;
    z-index:140!important;
  }
  body.tb-precision-open #sectionsPanel .tb-precision-panel{
    order:2!important;
  }
  body.tb-precision-open #sectionsPanel .admin-global-tools{
    order:1!important;
  }
  body.tb-precision-open #sectionsPanel .admin-adjust-toolbar{
    order:3!important;
  }
  #sectionsPanel .tb-precision-grid{
    grid-template-columns:1fr!important;
    gap:7px!important;
  }
  #sectionsPanel .tb-precision-row,
  #sectionsPanel .tb-precision-row-wide{
    grid-column:1 / -1!important;
    max-width:none!important;
    width:100%!important;
    box-sizing:border-box!important;
    grid-template-columns:28px 34px minmax(48px,1fr) 34px!important;
    gap:6px!important;
    padding:6px!important;
    border-radius:13px!important;
    background:linear-gradient(180deg,rgba(8,18,14,.92),rgba(4,11,8,.94))!important;
    border:1px solid rgba(255,255,255,.08)!important;
  }
  #sectionsPanel .tb-precision-row button{
    width:34px!important;
    height:32px!important;
    border-radius:10px!important;
    font-size:16px!important;
  }
  #sectionsPanel .tb-precision-row span{
    min-width:0!important;
    padding:6px 7px!important;
    border-radius:999px!important;
    font-size:12px!important;
  }
}

/* Keep the existing scrollbar behavior but reserve the gutter whenever chip overflow is active. */
.tb-seat-chip-grid.tb-has-scroll{
  overflow-y:scroll!important;
  scrollbar-gutter:stable both-edges;
}

/* TicketBlossom v2.6.94 - Presentation Engine respects curveTop visual face.
   Presentation Engine is only makeup: this patch changes depth/lighting layers only.
   It does not change hitbox, seats, selector, MySQL, checkout, or geometry logic. */
.tb-render-classic .tb-layout-shape.is-curved-top:not(.selected):not([class*="olympic_"])::after,
.tb-render-premium .tb-layout-shape.is-curved-top:not(.selected):not([class*="olympic_"])::after,
.tb-render-night .tb-layout-shape.is-curved-top:not(.selected):not([class*="olympic_"])::after,
.tb-layout-map.tb-render-night .tb-layout-shape.is-curved-top:not(.selected):not([class*="olympic_"])::after{
  border-radius:50% 50% 8px 8px / calc(8% + var(--tb-curve-top-pct,0%)) calc(8% + var(--tb-curve-top-pct,0%)) 8px 8px;
  overflow:hidden;
}

/* Rectangles with curveTop were the main case showing a square makeup wall.
   Force their Presentation Engine depth layer to follow the curved face. */
.tb-render-classic .tb-layout-shape-rectangle.is-curved-top:not(.selected)::after,
.tb-render-classic .tb-layout-shape-rectangle_vertical.is-curved-top:not(.selected)::after,
.tb-render-premium .tb-layout-shape-rectangle.is-curved-top:not(.selected)::after,
.tb-render-premium .tb-layout-shape-rectangle_vertical.is-curved-top:not(.selected)::after,
.tb-render-night .tb-layout-shape-rectangle.is-curved-top:not(.selected)::after,
.tb-render-night .tb-layout-shape-rectangle_vertical.is-curved-top:not(.selected)::after,
.tb-layout-map.tb-render-night .tb-layout-shape-rectangle.is-curved-top:not(.selected)::after,
.tb-layout-map.tb-render-night .tb-layout-shape-rectangle_vertical.is-curved-top:not(.selected)::after{
  clip-path:none !important;
}

/* =========================================================
   TicketBlossom v2.6.96
   Restore the EXISTING editor transform effect in Premium/Night.
   Same native effect already used by Off/Classic:
   opacity: .12 + box-shadow: none.
   ========================================================= */
.tb-render-premium .tb-editable-layout-object.selected.is-transforming::after,
.tb-render-premium.tb-layout-dragging .tb-editable-layout-object.selected::after,
.tb-layout-dragging .tb-render-premium .tb-editable-layout-object.selected::after,
.tb-render-night .tb-editable-layout-object.selected.is-transforming::after,
.tb-layout-map.tb-render-night .tb-editable-layout-object.selected.is-transforming::after,
.tb-render-night.tb-layout-dragging .tb-editable-layout-object.selected::after,
.tb-layout-map.tb-render-night.tb-layout-dragging .tb-editable-layout-object.selected::after,
.tb-layout-dragging .tb-render-night .tb-editable-layout-object.selected::after,
.tb-layout-dragging .tb-layout-map.tb-render-night .tb-editable-layout-object.selected::after{
  opacity:.12 !important;
  box-shadow:none !important;
}

/* =========================================================
   TicketBlossom v2.7
   Parametric Olympic Default SVG support.
   olympic_default is rendered inline so Ancho/Alto redraw the
   stadium geometry instead of resizing a fixed image.
   Variants remain external SVG assets.
   ========================================================= */
.tb-layout-olympic-field .tb-parametric-olympic-svg{
  display:block;
  width:100%;
  height:100%;
  pointer-events:none;
  user-select:none;
  -webkit-user-drag:none;
  overflow:visible;
  filter:drop-shadow(0 12px 22px rgba(0,0,0,.45));
}

/* =========================================================
   TicketBlossom v2.7.1
   Olympic field z-index fix.
   Respect the admin/MySQL field z-index exactly like a regular field.
   No temporary selected-state elevation is introduced.
   ========================================================= */
.tb-layout-olympic-field,
.tb-render-premium .tb-layout-olympic-field,
.tb-render-night .tb-layout-olympic-field,
.tb-layout-map.tb-render-night .tb-layout-olympic-field{
  z-index:var(--field-z,10) !important;
}

.tb-layout-olympic-field.selected,
.tb-render-premium .tb-layout-olympic-field.selected,
.tb-render-night .tb-layout-olympic-field.selected,
.tb-layout-map.tb-render-night .tb-layout-olympic-field.selected{
  z-index:var(--field-z,10) !important;
}

/* =========================================================
   TicketBlossom v2.7.2
   All Olympic variants share the approved parametric renderer.
   Existing v2.7.1 Olympic z-index behavior remains unchanged.
   ========================================================= */

