
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;background:#f6f0ff;color:#181324}
.staff-login-page {
  display: grid;
  min-height: 100vh;
  place-items: center;
  padding: 24px;
  background: radial-gradient(ellipse at top left, #e6dbff, #f8f4ff 55%, #fff);
}
.staff-login-card {
  width: min(100%, 440px);
  margin: 0;
  padding: clamp(24px, 6vw, 42px);
  border: 1px solid #ded2ee;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 22px 65px rgba(42, 20, 74, .1);
}
.staff-login-kicker {
  margin: 0 0 10px;
  color: #65449b;
  font-size: .86rem;
  font-weight: 750;
}
.staff-login-card form {
  display: grid;
  gap: 10px;
  margin-top: 26px;
}
.staff-login-card label {
  font-weight: 700;
}
.staff-login-card button {
  margin-top: 6px;
  background: #5424a8;
  color: #fff;
}
.staff-login-error {
  padding: 10px 12px;
  border-radius: 10px;
  background: #fff2f2;
  color: #992d2d;
}
header{background:#24113f;color:#fff;padding:22px 28px;display:flex;justify-content:space-between;gap:24px;align-items:center}
h1{margin:0;font-size:24px}
header p{margin:6px 0 0;color:rgba(255,255,255,.72)}
.login{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
input,textarea,select{width:100%;border:1px solid rgba(109,40,217,.22);border-radius:12px;padding:10px 12px;font:inherit;background:#fff}
textarea{min-height:180px;font-size:14px;line-height:1.5}
#rawJson{min-height:560px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}
button,a{border:0;border-radius:999px;padding:10px 16px;font-weight:800;cursor:pointer;text-decoration:none}
button{background:#fff;color:#6d28d9;border:1px solid rgba(109,40,217,.18)}
button.danger{color:#b91c1c;background:#fff1f2;border-color:#fecdd3}
a{background:rgba(255,255,255,.15);color:#fff}
.tabs{display:flex;gap:10px;padding:14px 28px;background:#fff;border-bottom:1px solid rgba(109,40,217,.15);position:sticky;top:0;z-index:5;overflow-x:auto}
.tabs button{background:#f1e7ff;color:#6d28d9;white-space:nowrap}
.tabs button.active{background:#6d28d9;color:#fff}
main{max-width:1380px;margin:0 auto;padding:28px}
.panel{display:none}
.panel.active{display:block}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form label{display:block;margin-bottom:14px;font-weight:800}
.form label span{display:block;margin-bottom:7px;color:#6d28d9;font-size:13px}
.form img.preview{max-width:220px;border-radius:12px;margin:8px 0;border:1px solid #ddd}
.split-admin{display:grid;grid-template-columns:280px 1fr;gap:24px}
.split-admin aside{background:#fff;border-radius:18px;padding:16px;align-self:start;position:sticky;top:86px}
.split-admin aside button{display:block;width:100%;margin-bottom:8px}
#artistList button,#historyList button,.list-button{display:block;width:100%;text-align:left;border-radius:12px;margin-top:8px;background:#f5efff;color:#24113f}
#artistList button.active,#historyList button.active,.list-button.active{background:#6d28d9;color:#fff}
.card,.gui-card{background:#fff;border:1px solid rgba(109,40,217,.14);border-radius:18px;padding:22px;box-shadow:0 12px 38px rgba(109,40,217,.07);margin-bottom:18px}
.actions{position:sticky;bottom:0;background:rgba(246,240,255,.90);backdrop-filter:blur(14px);padding:18px 0;display:flex;gap:14px;align-items:center;z-index:6}
.primary{background:linear-gradient(135deg,#6d28d9,#ff75c8);color:#fff}
#status{font-weight:800;color:#24113f}
.hint{color:#6d647c}
.day-editor h3,.concert-editor h3,.mc-day h3{margin:0 0 14px;color:#6d28d9}
.event-row,.item-row,.concert-head{display:grid;grid-template-columns:140px 1fr 1fr auto;gap:10px;align-items:start;margin-bottom:10px}
.concert-head{grid-template-columns:130px 1fr 1fr auto}
.item-row{grid-template-columns:1fr 1fr 1fr auto}
.gui-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.table-scroll{overflow:auto;background:#fff;border:1px solid rgba(109,40,217,.14);border-radius:16px}
.mc-table{border-collapse:separate;border-spacing:0;min-width:1000px;width:100%}
.mc-table th,.mc-table td{border-right:1px solid rgba(109,40,217,.14);border-bottom:1px solid rgba(109,40,217,.14);padding:9px;vertical-align:top}
.mc-table th{background:#f5efff;color:#24113f}
.mc-table input,.mc-table textarea{min-width:180px;font-size:13px}
.mc-table textarea{min-height:66px}
.mc-table .time{min-width:120px}
@media(max-width:900px){header,.split-admin,.grid2{grid-template-columns:1fr;display:grid}main{padding:18px}.split-admin aside{position:static}.event-row,.item-row,.concert-head{grid-template-columns:1fr}}

/* v1.0.6 history media admin */
.media-admin-block{
  border:1px solid rgba(109,40,217,.14);
  border-radius:16px;
  padding:16px;
  margin-bottom:16px;
  background:#fbf8ff;
}
.media-admin-block h3{
  margin:0 0 14px;
  color:#6d28d9;
}
.form img.preview.wide{
  max-width:420px;
  width:100%;
  max-height:220px;
  object-fit:cover;
}
.gallery-admin{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-bottom:12px;
}
.gallery-admin div{
  background:#fff;
  border:1px solid rgba(109,40,217,.14);
  border-radius:12px;
  padding:10px;
}
.gallery-admin img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:10px;
  margin-bottom:8px;
}
.gallery-admin button{
  width:100%;
  margin-top:8px;
}
@media(max-width:900px){
  .gallery-admin{grid-template-columns:1fr}
}

/* v2.1 admin media */
.video-admin{display:grid;gap:10px;margin-bottom:12px}
.video-admin-row{display:grid;grid-template-columns:1.4fr 1fr 1fr auto;gap:10px;align-items:start}
.mc-table textarea[placeholder="英文曲目"],
.mc-table textarea[placeholder="中文曲目"]{
  min-height:74px;
  margin-top:8px;
}
@media(max-width:900px){
  .video-admin-row{grid-template-columns:1fr}
}

/* v2.2 registration admin */
.registration-admin-actions{
  display:flex;
  gap:10px;
  margin-bottom:16px;
  flex-wrap:wrap;
}
.admin-table{
  border-collapse:separate;
  border-spacing:0;
  width:100%;
  min-width:1200px;
  background:#fff;
}
.admin-table th,.admin-table td{
  border-right:1px solid rgba(109,40,217,.14);
  border-bottom:1px solid rgba(109,40,217,.14);
  padding:10px;
  vertical-align:top;
  text-align:left;
  font-size:13px;
}
.admin-table th{
  background:#f5efff;
  color:#24113f;
}
.admin-table small{
  color:#6d647c;
}
.admin-table a{
  color:#6d28d9;
  background:transparent;
  padding:0;
}
.admin-table select{
  min-width:120px;
}

/* v2.3.5 video preview */
.video-admin{display:grid;gap:12px;margin-bottom:12px}
.video-admin-row{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr auto;
  gap:10px;
  align-items:start;
  background:#fff;
  border:1px solid rgba(109,40,217,.14);
  border-radius:14px;
  padding:12px;
}
.video-preview{
  grid-column:1 / -1;
  width:100%;
  max-width:520px;
  aspect-ratio:16/9;
  border:0;
  border-radius:12px;
  background:#111;
}
.video-preview-empty{
  grid-column:1 / -1;
  color:#6d647c;
  background:#f5efff;
  border-radius:12px;
  padding:12px;
}
@media(max-width:900px){
  .video-admin-row{grid-template-columns:1fr}
}

/* v2.3.6 save safety */
.raw-warning{
  background:#fff7ed;
  border:1px solid #fed7aa;
  color:#9a3412;
  border-radius:14px;
  padding:12px 14px;
  margin-bottom:12px;
  font-weight:800;
}
#applyRawJson{
  margin-bottom:14px;
  background:#fff7ed;
  color:#9a3412;
  border-color:#fed7aa;
}

/* v2.3.7 video save preview */
.video-admin{display:grid;gap:12px;margin-bottom:12px}
.video-admin-row{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr auto;
  gap:10px;
  align-items:start;
  background:#fff;
  border:1px solid rgba(109,40,217,.14);
  border-radius:14px;
  padding:12px;
}
.video-preview{
  grid-column:1 / -1;
  width:100%;
  max-width:520px;
  aspect-ratio:16/9;
  border:0;
  border-radius:12px;
  background:#111;
}
.video-preview-empty{
  grid-column:1 / -1;
  color:#6d647c;
  background:#f5efff;
  border-radius:12px;
  padding:12px;
}
@media(max-width:900px){.video-admin-row{grid-template-columns:1fr}}

/* v2.6.2 reorder controls */
.order-list-item{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px;
  align-items:stretch;
  margin-bottom:10px;
}
.order-list-item .list-main{
  width:100%;
  text-align:left;
  margin:0!important;
}
.order-list-item.active .list-main{
  background:#6d28d9;
  color:#fff;
}
.order-actions{
  display:grid;
  gap:6px;
}
.order-actions button{
  min-width:42px;
  padding:7px 10px;
  border-radius:14px;
  background:#fff;
  color:#6d28d9;
  border:1px solid rgba(109,40,217,.22);
  font-weight:900;
}
.order-actions button:disabled{
  opacity:.35;
  cursor:not-allowed;
}

/* v2.6.3 media library */
.media-pick-button{
  margin-top:8px;
  margin-bottom:8px;
  border-radius:14px;
  background:#f5efff;
  color:#6d28d9;
  border:1px solid rgba(109,40,217,.22);
  padding:8px 12px;
  font-size:13px;
}
.media-picker-modal{
  position:fixed;
  inset:0;
  background:rgba(24,11,43,.62);
  backdrop-filter:blur(12px);
  z-index:9999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
}
.media-picker-modal.open{
  display:flex;
}
.media-picker-panel{
  width:min(1120px,96vw);
  max-height:88vh;
  overflow:hidden;
  background:#fff;
  border-radius:26px;
  box-shadow:0 30px 90px rgba(0,0,0,.32);
  display:grid;
  grid-template-rows:auto auto 1fr;
}
.media-picker-head{
  padding:22px 24px;
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:start;
  border-bottom:1px solid rgba(109,40,217,.14);
}
.media-picker-head h2{
  margin:0 0 6px;
  color:#6d28d9;
}
.media-picker-head p{
  margin:0;
  color:#6d647c;
  line-height:1.5;
}
.media-picker-tools{
  display:grid;
  grid-template-columns:1fr auto;
  gap:12px;
  padding:16px 24px;
  border-bottom:1px solid rgba(109,40,217,.14);
}
.media-picker-grid{
  overflow:auto;
  padding:22px 24px 28px;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:14px;
}
.media-item{
  border:1px solid rgba(109,40,217,.16);
  background:#fff;
  color:#24113f;
  border-radius:18px;
  padding:10px;
  display:grid;
  gap:7px;
  text-align:left;
}
.media-item:hover{
  outline:3px solid rgba(109,40,217,.18);
}
.media-item img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:12px;
  background:#f5efff;
}
.media-item span{
  font-size:12px;
  font-weight:900;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.media-item small{
  font-size:11px;
  color:#6d647c;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.media-empty{
  grid-column:1/-1;
  background:#f5efff;
  border-radius:16px;
  padding:24px;
  color:#6d647c;
  text-align:center;
  font-weight:800;
}
@media(max-width:900px){
  .media-picker-grid{grid-template-columns:repeat(2,1fr)}
  .media-picker-tools{grid-template-columns:1fr}
}

/* v2.6.4 cache visibility */
.admin-version-pill{
  display:inline-block;
  margin-left:8px;
  padding:3px 8px;
  border-radius:999px;
  background:#6d28d9;
  color:#fff;
  font-size:12px;
  vertical-align:middle;
}
.order-actions button{
  cursor:pointer;
}
.media-pick-button{
  display:inline-block!important;
}

/* v2.6.5 registration reply admin */
.registration-card-list{
  display:grid;
  gap:18px;
}
.registration-card{
  background:#fff;
  border:1px solid rgba(109,40,217,.16);
  border-radius:24px;
  padding:20px;
  box-shadow:0 12px 34px rgba(75,32,120,.08);
}
.registration-card-head{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  border-bottom:1px solid rgba(109,40,217,.12);
  padding-bottom:14px;
  margin-bottom:14px;
}
.registration-card-head h3{
  margin:0 0 4px;
  color:#24113f;
}
.registration-card-head p{
  margin:0;
  color:#6d647c;
}
.registration-info-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-bottom:14px;
}
.registration-info-grid div,
.registration-long{
  background:#f7f0ff;
  border-radius:16px;
  padding:12px;
}
.registration-info-grid strong,
.registration-long strong{
  display:block;
  color:#6d28d9;
  font-size:12px;
  margin-bottom:5px;
}
.registration-info-grid span,
.registration-long p{
  margin:0;
  color:#24113f;
  word-break:break-word;
  white-space:pre-wrap;
}
.registration-reply-admin{
  margin-top:14px;
  border-top:1px solid rgba(109,40,217,.12);
  padding-top:14px;
}
.registration-reply-actions{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:8px;
}
.registration-query-code{
  margin-top:10px;
  color:#6d647c;
  font-size:12px;
}
.registration-query-code code{
  background:#f7f0ff;
  padding:4px 8px;
  border-radius:8px;
}
.reg-loading{
  background:#f7f0ff;
  padding:18px;
  border-radius:16px;
  color:#6d28d9;
  font-weight:900;
}
@media(max-width:1000px){
  .registration-info-grid{grid-template-columns:1fr 1fr}
}

/* v2.6.6 media upload delete */
.media-picker-upload{
  display:grid;
  grid-template-columns:1fr 1.4fr auto;
  gap:12px;
  align-items:end;
  padding:16px 24px;
  border-bottom:1px solid rgba(109,40,217,.14);
  background:#fbf8ff;
}
.media-picker-upload label{
  margin:0;
}
.media-picker-upload .hint{
  grid-column:1 / -1;
  margin:0;
  color:#6d647c;
  font-size:12px;
}
.media-item{
  border:1px solid rgba(109,40,217,.16);
  background:#fff;
  color:#24113f;
  border-radius:18px;
  padding:10px;
  display:grid;
  gap:8px;
  text-align:left;
}
.media-select-button{
  border:0;
  background:transparent;
  padding:0;
  display:grid;
  gap:7px;
  text-align:left;
  color:inherit;
  cursor:pointer;
}
.media-select-button img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:12px;
  background:#f5efff;
}
.media-select-button span{
  font-size:12px;
  font-weight:900;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.media-select-button small{
  font-size:11px;
  color:#6d647c;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.media-item-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
}
.media-use-button,
.media-delete-button{
  border-radius:12px;
  padding:7px 8px;
  font-size:12px;
  font-weight:900;
}
.media-use-button{
  background:#6d28d9;
  color:#fff;
  border:1px solid #6d28d9;
}
.media-delete-button{
  background:#fff0f0;
  color:#b91c1c;
  border:1px solid rgba(185,28,28,.22);
}
.media-item:hover{
  outline:3px solid rgba(109,40,217,.18);
}
@media(max-width:900px){
  .media-picker-upload{grid-template-columns:1fr}
}

/* v2.6.7 hero carousel add fix */
.inline-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:10px 0 12px;
}
.inline-actions button{
  border-radius:14px;
  padding:9px 13px;
  background:#f5efff;
  color:#6d28d9;
  border:1px solid rgba(109,40,217,.22);
  font-weight:900;
}
.inline-actions button:hover{
  background:#6d28d9;
  color:#fff;
}

/* v2.6.8 carousel image order */
.gallery-order-actions{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:8px;
}
.gallery-order-actions button{
  border-radius:12px;
  padding:7px 9px;
  font-size:12px;
  font-weight:900;
  background:#f5efff;
  color:#6d28d9;
  border:1px solid rgba(109,40,217,.22);
}
.gallery-order-actions button:hover:not(:disabled){
  background:#6d28d9;
  color:#fff;
}
.gallery-order-actions button:disabled{
  opacity:.35;
  cursor:not-allowed;
}
.gallery-order-actions .danger{
  background:#fff0f0;
  color:#b91c1c;
  border:1px solid rgba(185,28,28,.22);
}
.gallery-order-actions .danger:hover{
  background:#b91c1c!important;
  color:#fff!important;
}

/* v2.6.9 hero caption admin */
.hero-carousel-admin-item{
  display:grid!important;
  gap:10px;
}
.hero-carousel-admin-item label{
  margin:0;
}
.hero-carousel-admin-item label span{
  font-size:12px;
  color:#6d28d9;
  font-weight:900;
}
.hero-carousel-admin-item input[data-hero-caption]{
  background:#fbf8ff;
}

/* v2.7.4 registration delete */
.registration-card-controls{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.reg-delete-btn{
  border-radius:14px;
  padding:9px 13px;
  background:#fff0f0;
  color:#b91c1c;
  border:1px solid rgba(185,28,28,.25);
  font-weight:900;
}
.reg-delete-btn:hover{
  background:#b91c1c;
  color:#fff;
}


/* v2.8.0 seat ticketing admin */
.ticket-admin-grid{display:grid;grid-template-columns:1fr 340px;gap:22px;align-items:start}
.ticket-seat-admin-map{background:#fff;border:1px solid rgba(109,40,217,.16);border-radius:22px;padding:18px;overflow:auto}
.admin-stage-shape{width:760px;margin:0 auto 22px;height:42px;border-radius:0 0 50% 50%;background:#d1d5db;color:#fff;display:flex;align-items:center;justify-content:center;letter-spacing:1em;text-indent:1em;font-weight:900}
.admin-seat-row{display:grid;grid-template-columns:28px auto auto auto auto;gap:22px;min-width:900px;align-items:center;margin:6px 0}.admin-seat-row-no{font-weight:900;color:#526078;text-align:center}.admin-seat-group{display:flex;gap:5px}
.admin-seat{width:25px;height:23px;border-radius:6px;border:1.5px solid #6b7280;background:#fff;position:relative;font-size:0;cursor:pointer}.admin-seat.available{background:#fff}.admin-seat.pending{background:#22c55e;border-color:#15803d}.admin-seat.sold{background:#ef4444;border-color:#b91c1c}.admin-seat.locked{background:#9ca3af;border-color:#4b5563}.admin-seat.selected{outline:3px solid rgba(109,40,217,.35)}.admin-seat small{position:absolute;bottom:-1px;left:0;right:0;font-size:7px;color:#facc15;-webkit-text-stroke:.3px #7c5d00;font-weight:900}
.ticket-seat-editor{position:sticky;top:100px;background:#fff;border:1px solid rgba(109,40,217,.16);border-radius:22px;padding:18px;box-shadow:0 14px 36px rgba(43,18,78,.08)}
.ticket-seat-editor label{display:block;margin:12px 0}.ticket-seat-editor span{display:block;color:#6d28d9;font-weight:900;margin-bottom:5px}.ticket-seat-editor .checkline{display:flex;gap:8px;align-items:center}.ticket-seat-editor .checkline span{margin:0}
.ticket-order-card{background:#fff;border:1px solid rgba(109,40,217,.16);border-radius:20px;padding:16px;margin:12px 0;box-shadow:0 12px 30px rgba(43,18,78,.06)}.ticket-order-head{display:flex;justify-content:space-between;gap:14px;border-bottom:1px solid rgba(109,40,217,.12);padding-bottom:10px;margin-bottom:10px}.ticket-order-head h4{margin:0}.ticket-order-head p{margin:4px 0;color:#6d647c}.order-status{border-radius:999px;padding:3px 8px;font-size:12px;background:#f5efff;color:#6d28d9}.order-status.paid{background:#fee2e2;color:#b91c1c}.order-status.pending{background:#dcfce7;color:#15803d}.order-status.cancelled,.order-status.expired{background:#f3f4f6;color:#4b5563}
.ticket-order-actions{display:flex;flex-wrap:wrap;gap:8px}.ticket-order-actions button{border-radius:14px;padding:8px 12px;font-weight:900}.ticket-order-actions .danger{background:#fff0f0;color:#b91c1c;border:1px solid rgba(185,28,28,.25)}
@media(max-width:1100px){.ticket-admin-grid{grid-template-columns:1fr}.ticket-seat-editor{position:static}}


/* v2.8.1 admin seat alignment fix */
.admin-seat,
.admin-seat-spacer{
  flex:0 0 25px;
  width:25px;
  height:23px;
  box-sizing:border-box;
}
.admin-seat-spacer{
  display:inline-block;
  visibility:hidden;
}
.registration-info-grid{
  grid-template-columns:repeat(5,1fr);
}
@media(max-width:1200px){
  .registration-info-grid{grid-template-columns:repeat(3,1fr);}
}
@media(max-width:800px){
  .registration-info-grid{grid-template-columns:1fr 1fr;}
}


/* v2.8.2 admin VIP/layout fixes */
.ticket-seat-editor label.checkline{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  white-space:nowrap!important;
}
.ticket-seat-editor label.checkline input{
  width:auto!important;
  flex:0 0 auto!important;
}
.ticket-seat-editor label.checkline span{
  display:inline!important;
  margin:0!important;
  line-height:1.2!important;
}
.admin-seat small{
  display:block!important;
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  font-size:7px!important;
  color:#facc15!important;
  -webkit-text-stroke:.3px #7c5d00;
  font-weight:900!important;
  text-align:center;
}
.ticket-order-card p{
  line-height:1.55;
}



/* v2.8.4 ticket admin sync/save polish */
.ticket-seat-editor label.checkline{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  white-space:nowrap!important;
}
.ticket-seat-editor label.checkline input{
  width:auto!important;
  flex:0 0 auto!important;
}
.ticket-seat-editor label.checkline span{
  display:inline!important;
  margin:0!important;
  line-height:1.2!important;
}
.admin-seat small{
  display:block!important;
  position:absolute!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  font-size:7px!important;
  color:#facc15!important;
  -webkit-text-stroke:.3px #7c5d00!important;
  font-weight:900!important;
  text-align:center!important;
}
#saveCurrentTicketSeat{
  background:#6d28d9;
  color:#fff;
}
.ticket-order-card p{
  line-height:1.55!important;
}



/* v2.8.5 admin VIP visibility */
.admin-seat.available:has(small){
  background:#facc15!important;
  border-color:#b88700!important;
}
.admin-seat.available:has(small) small{
  color:#7c5d00!important;
  -webkit-text-stroke:0!important;
}



/* v2.8.6 masterclass price/time grid admin */
.mc-admin-day{
  background:#fff;
  border:1px solid rgba(109,40,217,.16);
  border-radius:24px;
  padding:18px;
  margin:18px 0;
  box-shadow:0 12px 34px rgba(75,32,120,.08);
}
.mc-admin-day-head{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
  margin-bottom:14px;
}
.mc-date-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
}
.mc-day-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.mc-grid-scroll{
  overflow:auto;
  border:1px solid rgba(109,40,217,.12);
  border-radius:18px;
}
.mc-admin-grid{
  width:100%;
  min-width:1100px;
  border-collapse:collapse;
}
.mc-admin-grid th,
.mc-admin-grid td{
  border:1px solid rgba(109,40,217,.12);
  padding:10px;
  vertical-align:top;
}
.mc-admin-grid th{
  background:#f7f0ff;
  color:#6d28d9;
}
.mc-time-col{
  width:150px;
}
.mc-actions-col{
  width:110px;
}
.mc-cell-admin{
  min-width:230px;
  background:#fff;
}
.mc-cell-admin label,
.mc-admin-grid th label{
  display:block;
  margin:0 0 8px;
}
.mc-cell-admin label span,
.mc-admin-grid th label span,
.mc-date-grid span{
  display:block;
  font-size:12px;
  color:#6d28d9;
  font-weight:900;
  margin-bottom:4px;
}
.mc-cell-admin textarea{
  min-height:54px;
  resize:vertical;
}
@media(max-width:900px){
  .mc-admin-day-head{display:block}
  .mc-date-grid{grid-template-columns:1fr}
  .mc-day-actions{margin-top:12px}
}



/* v2.8.7 masterclass admin layout compact */
.mc-admin-day{
  padding:20px!important;
  margin:18px 0 26px!important;
  border-radius:24px!important;
}
.mc-admin-day h3{
  font-size:18px!important;
  font-weight:700!important;
  margin:0 0 12px!important;
}
.mc-admin-day-head{
  gap:20px!important;
  margin-bottom:16px!important;
}
.mc-date-grid{
  grid-template-columns:repeat(3,minmax(160px,260px))!important;
  gap:12px!important;
}
.mc-day-actions button{
  font-size:13px!important;
  padding:9px 14px!important;
  border-radius:999px!important;
}
.mc-grid-scroll{
  overflow:auto!important;
  border-radius:20px!important;
}
.mc-admin-grid{
  min-width:1500px!important;
  table-layout:fixed!important;
  border-collapse:separate!important;
  border-spacing:0!important;
}
.mc-admin-grid th,
.mc-admin-grid td{
  padding:12px!important;
  vertical-align:top!important;
}
.mc-admin-grid thead th{
  font-size:13px!important;
  font-weight:700!important;
}
.mc-time-col{
  width:92px!important;
  min-width:92px!important;
}
.mc-actions-col{
  width:104px!important;
  min-width:104px!important;
}
.mc-cell-admin{
  width:270px!important;
  min-width:270px!important;
  background:#fff!important;
}
.mc-cell-admin label,
.mc-admin-grid th label{
  margin:0 0 8px!important;
}
.mc-cell-admin label span,
.mc-admin-grid th label span,
.mc-date-grid span{
  font-size:11px!important;
  line-height:1.2!important;
  color:#6d28d9!important;
  font-weight:700!important;
  margin-bottom:4px!important;
}
.mc-cell-admin input,
.mc-cell-admin textarea,
.mc-admin-grid input,
.mc-date-grid input{
  font-size:14px!important;
  font-weight:400!important;
  line-height:1.35!important;
  padding:9px 11px!important;
  border-radius:14px!important;
}
.mc-time-col input{
  font-size:13px!important;
  text-align:center!important;
  padding:8px!important;
}
.mc-cell-admin textarea{
  min-height:46px!important;
  resize:vertical!important;
}
.mc-cell-actions{
  display:flex!important;
  justify-content:flex-end!important;
  margin-top:8px!important;
}
.mc-cell-actions .light-danger{
  font-size:12px!important;
  padding:7px 10px!important;
  border-radius:12px!important;
  background:#fff7f7!important;
  color:#b91c1c!important;
  border:1px solid rgba(185,28,28,.22)!important;
  font-weight:700!important;
}
.mc-cell-actions .light-danger:hover{
  background:#b91c1c!important;
  color:#fff!important;
}
.mc-delete-row-btn{
  writing-mode:horizontal-tb!important;
  font-size:12px!important;
  line-height:1.2!important;
  padding:8px 10px!important;
  border-radius:14px!important;
}
.mc-admin-grid .danger{
  font-weight:700!important;
}
@media(max-width:900px){
  .mc-date-grid{
    grid-template-columns:1fr!important;
  }
  .mc-admin-grid{
    min-width:1180px!important;
  }
  .mc-cell-admin{
    width:235px!important;
    min-width:235px!important;
  }
}



/* v2.8.8 masterclass admin wide layout */
body.admin-page,
.admin-shell,
main,
.admin-main{
  max-width:none!important;
}
.panel#masterclasses,
#masterclasses.panel{
  max-width:1680px!important;
  width:calc(100vw - 56px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
#masterclasses .mc-admin-day{
  width:100%!important;
  max-width:none!important;
  padding:22px!important;
}
#masterclasses .mc-grid-scroll{
  width:100%!important;
  max-width:none!important;
  overflow-x:auto!important;
  overflow-y:visible!important;
  padding-bottom:12px!important;
}
#masterclasses .mc-admin-grid{
  min-width:1900px!important;
  width:max-content!important;
  table-layout:fixed!important;
}
#masterclasses .mc-time-col{
  width:170px!important;
  min-width:170px!important;
  max-width:170px!important;
}
#masterclasses .mc-actions-col{
  width:130px!important;
  min-width:130px!important;
  max-width:130px!important;
}
#masterclasses .mc-cell-admin{
  width:320px!important;
  min-width:320px!important;
  max-width:320px!important;
}
#masterclasses .mc-time-col input,
#masterclasses input[data-row-time]{
  width:136px!important;
  min-width:136px!important;
  max-width:136px!important;
  font-size:15px!important;
  text-align:center!important;
  padding:10px 8px!important;
  white-space:nowrap!important;
}
#masterclasses .mc-cell-admin input,
#masterclasses .mc-cell-admin textarea{
  width:100%!important;
  box-sizing:border-box!important;
}
#masterclasses .mc-cell-admin label span{
  white-space:nowrap!important;
}
#masterclasses .mc-date-grid{
  grid-template-columns:repeat(3, minmax(220px, 300px))!important;
}
#masterclasses .mc-admin-day-head{
  align-items:flex-start!important;
}
@media(max-width:1100px){
  .panel#masterclasses,
  #masterclasses.panel{
    width:calc(100vw - 24px)!important;
  }
  #masterclasses .mc-admin-grid{
    min-width:1700px!important;
  }
}



/* v2.9.0 stronger pending seat visibility */
.admin-seat.pending{
  background:#22c55e!important;
  border-color:#15803d!important;
  color:#14532d!important;
  box-shadow:0 0 0 3px rgba(34,197,94,.18)!important;
}
.admin-seat.pending em{
  position:absolute;
  left:1px;
  right:1px;
  bottom:0;
  font-size:7px;
  line-height:1;
  color:#fff;
  font-style:normal;
  font-weight:900;
  text-align:center;
}
.seat.pending{
  cursor:not-allowed!important;
}



/* v2.9.6 paid-lock and login rules */
.sold-seat-lock-notice{
  background:#fee2e2;
  border:1px solid rgba(185,28,28,.24);
  color:#7f1d1d;
  border-radius:16px;
  padding:13px 14px;
  margin:10px 0 14px;
  line-height:1.5;
}
.sold-seat-lock-notice strong{
  display:block;
  font-size:15px;
  margin-bottom:4px;
}
.ticket-login-gate:not(.logged-in){
  box-shadow:0 0 0 4px rgba(234,88,12,.08);
}


/* ticketing v0.5 real admin clean */
.official-hidden{display:none!important}
.admin-version-pill{display:inline-block;margin-left:8px;padding:5px 10px;border-radius:999px;background:#7c3aed;color:#fff;font-weight:900;font-size:12px}
body.ticketing-only-admin header{background:linear-gradient(135deg,#24113f,#3b1a64)}
body.ticketing-only-admin .tabs button{font-size:14px}
body.ticketing-only-admin #ticketing.panel.active{display:block}
body.ticketing-only-admin .ticket-seat-admin-map{min-height:260px}
@media(max-width:800px){
  header{padding:16px;display:block}
  .login{margin-top:14px}
  main{padding:16px}
}
