:root{--bg-primary: #ffffff;--bg-secondary: #f8f9fa;--bg-accent: #e9ecef;--text-primary: #2d3436;--text-secondary: #636e72;--accent-color: #ff9f43;--primary-btn: #ff9f43;--primary-btn-hover: #f39c12;--danger-color: #e74c3c;--success-color: #2ecc71;--border-radius: 12px;--card-bg: #ffffff}body{margin:0;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;background:linear-gradient(135deg,var(--bg-primary),var(--bg-secondary));color:var(--text-primary);min-height:100vh;display:flex;flex-direction:column}#root{width:100%;max-width:1200px;margin:0 auto;padding:2rem;box-sizing:border-box}@media(max-width:768px){#root{padding:1rem}}.table-container{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:1rem;background:#fff;border-radius:8px;border:1px solid #eee}.table-container table{width:100%;border-collapse:separate;border-spacing:0}.table-container th{background:#f8f9fa;color:var(--text-secondary);font-weight:700;text-align:left;padding:1rem;border-bottom:2px solid #eee;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px}.table-container td{padding:1.2rem 1rem;border-bottom:1px solid #f0f0f0;color:var(--text-primary);font-size:.95rem;vertical-align:middle}.table-container tr:last-child td{border-bottom:none}.table-container tr:hover td{background-color:#fcfcfc}.table-container th:first-child,.table-container td:first-child{padding-left:1.5rem}.table-container th:last-child,.table-container td:last-child{padding-right:1.5rem}@media(max-width:480px){.grid-container{grid-template-columns:1fr!important}}.admin-card-header{display:flex;flex-direction:column;gap:1rem}.admin-header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.admin-actions-row{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:.8rem}.manual-form-grid{display:grid;grid-template-columns:1fr 1fr 2fr .7fr 1fr;gap:1rem;align-items:flex-end}@media(max-width:768px){.admin-actions-row{justify-content:flex-start}.manual-form-grid{grid-template-columns:1fr 1fr}}@media(max-width:480px){.admin-header-row{flex-direction:column;align-items:flex-start}.manual-form-grid{grid-template-columns:1fr}}.nav-container{display:flex;align-items:center;justify-content:space-between;width:100%;flex-wrap:nowrap}.menu-group{display:flex;gap:.5rem;align-items:center}.auth-group{margin-left:auto;display:flex;align-items:center}.perf-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem}@media(max-width:1024px){.perf-detail-grid{gap:1.5rem}}@media(max-width:768px){.perf-detail-grid{grid-template-columns:1fr}.perf-info-panel img{max-width:400px;margin:0 auto;display:block}}@media(max-width:480px){.logo{font-size:1.35rem!important;white-space:nowrap}.nav-container{gap:.2rem;justify-content:space-between!important}.nav-btn{padding:.4rem .5rem!important;font-size:.95rem!important;margin-left:0!important;font-weight:700!important}.auth-btn,.auth-btn-logout{padding:.3rem .6rem!important;font-size:.75rem!important;border-radius:6px!important}.booking-detail .booking-card{width:90%!important;max-width:360px!important;margin:0 auto!important;padding:1.25rem!important;box-sizing:border-box!important}.payment-box{flex-direction:column!important;align-items:flex-start!important;gap:1.2rem!important;padding:1.25rem!important}.payment-box button{width:100%!important}.ticket-count-box{gap:.5rem!important}.ticket-count-box button{padding:.4rem .8rem!important;font-size:1rem!important}select{font-size:1rem;padding:.9rem 3rem .9rem 1rem;background-size:1.4em}input,button,select{min-height:44px}}.payment-box{display:flex;justify-content:space-between;align-items:center;background:var(--accent-color);border-radius:12px;color:#fff;margin-top:2rem;padding:1.5rem}.header{display:flex!important;flex-direction:column!important;gap:1.2rem!important;padding:1rem 0!important;margin-bottom:2rem!important}.header-top{display:flex;justify-content:flex-start;align-items:center;width:100%}.header-bottom{display:flex;justify-content:center;width:100%;border-top:1px solid rgba(0,0,0,.05);padding-top:.8rem}.logo{white-space:nowrap;flex-shrink:0;font-size:1.8rem}.auth-btn{padding:.5rem 1rem;background:#fff;color:var(--text-secondary);border:1px solid #ddd;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s}.auth-btn:hover{background:var(--bg-secondary);border-color:var(--text-primary);color:var(--text-primary)}.auth-btn.active{background:var(--accent-color);color:#fff;border-color:var(--accent-color)}.auth-btn-logout{padding:.5rem 1rem;background:#fff;color:#e74c3c;border:1px solid #ffcfcc;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s}.auth-btn-logout:hover{background:#fff5f5;border-color:#e74c3c}@media(max-width:768px){.header{gap:1rem!important}.header-bottom{justify-content:flex-start}}h1,h2,h3{margin:0;font-weight:700;line-height:1.2}button{cursor:pointer;border:none;font-family:inherit;transition:all .3s ease}input,select{font-family:inherit}:root{--primary-color: #ff9f43;--accent-color: #ff9f43;--accent-hover: #f08a2b;--accent-soft: #fff4e8;--accent-text: #3d2818;--danger-color: #b42318;--danger-soft: #fff5f5;--success-color: #18794e;--success-soft: #eafaf1;--warning-color: #f39c12;--surface-muted: #f8f9fa;--border-color: #ddd;--border-subtle: #eee;--text-primary: #2d3436;--text-secondary: #636e72;--bg-primary: #f8f9fa;--bg-secondary: #ffffff;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 24px;--border-radius: 12px}.header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 0;margin-bottom:3rem;border-bottom:1px solid rgba(0,0,0,.05)}.logo{font-size:1.5rem;font-weight:800;color:var(--primary-color);letter-spacing:-.5px;text-decoration:none}.nav-btn{background:transparent;color:var(--text-secondary);font-size:1rem;margin-left:2rem;padding:.5rem;border:none;cursor:pointer}.nav-btn.active,.nav-btn:hover{color:var(--text-primary);font-weight:600}.hero-section{text-align:center;margin-bottom:4rem;animation:fadeIn .8s ease-out}.perf-tag{display:inline-block;background:#ff9f431a;color:var(--primary-color);padding:.5rem 1rem;border-radius:20px;font-size:.875rem;font-weight:600;margin-bottom:1.5rem}.perf-title{font-size:3.5rem;margin-bottom:1.5rem;color:var(--text-primary)}.perf-desc{color:var(--text-secondary);line-height:1.6;font-size:1.125rem;margin-bottom:2rem}.perf-info{display:flex;justify-content:center;gap:2rem;color:var(--text-primary);font-weight:500;flex-wrap:wrap}.perf-info span{background:var(--bg-secondary);padding:.75rem 1.5rem;border-radius:8px;border:1px solid rgba(0,0,0,.05)}.booking-section{display:flex;justify-content:center;padding-bottom:4rem}.booking-card{background:#fff;padding:2.5rem;border-radius:24px;width:100%;max-width:500px;box-shadow:0 10px 30px #0000001a;border:1px solid rgba(0,0,0,.05)}.booking-card h3{margin-bottom:2rem;font-size:1.5rem;text-align:center}.form-group{margin-bottom:1.5rem;text-align:left}.form-group label{display:block;margin-bottom:.5rem;color:var(--text-secondary);font-size:.9rem}input,select,textarea{width:100%;padding:1rem;background:#fff;border:1px solid #ddd;border-radius:var(--border-radius);color:var(--text-primary);font-size:1rem;box-sizing:border-box}select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23636e72' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 1rem center;background-size:1.2em;padding-right:3rem;cursor:pointer}select:hover{border-color:#999}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 3px #ff9f431a}.ticket-control{display:flex;align-items:center;justify-content:space-between;background:#f8f9fa;padding:.5rem;border-radius:var(--border-radius);border:1px solid #ddd}.ticket-control button{width:36px;height:36px;border-radius:8px;background:#fff;color:var(--text-primary);font-size:1.25rem;display:flex;align-items:center;justify-content:center;border:1px solid #ddd;cursor:pointer}.ticket-control button:hover{background:#f1f1f1}.total-price{display:flex;justify-content:space-between;align-items:center;margin:2rem 0;padding-top:1rem;border-top:1px solid rgba(0,0,0,.05);font-weight:600}.total-price .price{color:var(--accent-color);font-size:1.5rem}.submit-btn{width:100%;padding:1.25rem;background:var(--accent-color);color:var(--accent-text);font-weight:700;font-size:1.125rem;border-radius:var(--border-radius);box-shadow:0 4px 12px #ff9f434d;border:none;cursor:pointer;transition:all .2s}.submit-btn:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 6px 16px #ff9f4366}.submit-btn:disabled{background:#ccc;cursor:not-allowed;box-shadow:none;transform:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:38px;padding:.6rem 1rem;border:1px solid transparent;border-radius:var(--radius-md);font-family:inherit;font-size:.9rem;font-weight:700;line-height:1;text-decoration:none;cursor:pointer;box-sizing:border-box;transition:background .2s,border-color .2s,color .2s,box-shadow .2s,transform .2s}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:disabled,.btn[aria-disabled=true]{cursor:not-allowed;transform:none;box-shadow:none;opacity:.65}.btn-primary{background:var(--accent-color);color:var(--accent-text);border-color:var(--accent-color);box-shadow:0 4px 12px #ff9f433d}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-secondary{background:#fff;color:var(--text-primary);border-color:var(--border-color)}.btn-secondary:hover:not(:disabled){background:var(--surface-muted);border-color:var(--text-secondary)}.btn-outline{background:#fff;color:var(--accent-color);border-color:var(--accent-color)}.btn-outline:hover:not(:disabled){background:#ff9f4314}.btn-danger{background:var(--danger-color);color:#fff;border-color:var(--danger-color)}.btn-danger-outline{background:#fff;color:var(--danger-color);border-color:var(--danger-color)}.btn-danger-outline:hover:not(:disabled){background:var(--danger-soft)}.btn-success{background:var(--success-color);color:#fff;border-color:var(--success-color)}.btn-muted{background:#f0f0f0;color:#596166;border-color:var(--border-color)}.btn-ghost{min-height:auto;padding:0;background:transparent;border-color:transparent;color:var(--text-secondary);font-weight:700}.btn-sm{min-height:34px;padding:.45rem .85rem;font-size:.85rem}.btn-xs{min-height:28px;padding:.25rem .55rem;font-size:.75rem}.btn-full{width:100%}.btn-icon-circle{width:32px;height:32px;min-height:32px;padding:0;border-radius:50%;flex-shrink:0}.link-button{min-height:auto;padding:0;background:transparent;border:none;color:var(--text-secondary);font-size:.8rem;font-weight:700;text-decoration:underline}.link-button-danger{color:var(--danger-color)}.form-control-sm{padding:.65rem .85rem;border-radius:var(--radius-md);font-size:.9rem}.performance-review-content{line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.control-panel{background:var(--surface-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.status-chip{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.4rem .8rem;font-size:.75rem;font-weight:800;line-height:1}.status-chip-primary{background:var(--accent-color);color:var(--accent-text)}.status-chip-muted{background:#e0e0e0;color:#4b5563}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.logo:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #1d4ed8;outline-offset:3px}.logo{display:inline-flex;color:var(--primary-color)}.nav-btn[aria-current=page]{color:var(--text-primary);font-weight:800}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:2rem}.section-heading h1{margin-top:.25rem;font-size:clamp(1.7rem,4vw,2.15rem)}.section-kicker,.detail-eyebrow,.step-kicker{display:block;color:var(--accent-color);font-size:.8rem;font-weight:800;letter-spacing:.04em}.ongoing-section{margin-bottom:3.5rem}.performance-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr));gap:2rem}.performance-card{position:relative;width:100%;max-width:none;padding:0;overflow:hidden;border:1px solid var(--border-subtle);box-sizing:border-box;transition:transform .2s ease,box-shadow .2s ease}.performance-card:hover{transform:translateY(-3px);box-shadow:0 14px 34px #2d343621}.performance-card-link{display:flex;min-height:100%;flex-direction:column;color:inherit;text-decoration:none}.performance-poster-frame{position:relative;width:min(100% - 2.5rem,360px);aspect-ratio:3 / 4;margin:1.25rem auto 0;overflow:hidden;border:1px solid var(--border-subtle);border-radius:12px;background:var(--surface-muted)}.performance-poster-frame img{width:100%;height:100%;display:block;object-fit:cover}.availability-badge{position:absolute;top:.85rem;right:.85rem;padding:.5rem .9rem;border-radius:999px;background:var(--success-color);color:#fff;box-shadow:0 4px 12px #0003;font-size:.82rem;font-weight:900}.availability-badge.sold-out{background:var(--danger-color)}.ended-overlay{position:absolute;inset:0;display:grid;place-items:center;background:#00000094;color:#fff;font-size:1.05rem;font-weight:900;letter-spacing:.08em}.performance-card-content{display:flex;flex:1;flex-direction:column;padding:1.35rem 1.5rem 1.5rem}.performance-card-copy{flex:1}.performance-card-copy h2{margin:0 0 1rem;color:var(--text-primary);font-size:1.4rem;font-weight:850;line-height:1.3}.performance-card-facts{display:grid;grid-template-columns:1fr 1fr;gap:.65rem 1rem;margin:0;color:var(--text-secondary);font-size:.86rem}.performance-card-facts div{display:flex;align-items:flex-start;gap:.45rem;min-width:0}.performance-card-facts dt,.performance-card-facts dd{margin:0}.performance-location{display:flex;gap:.45rem;margin:.85rem 0 0;color:var(--text-secondary);font-size:.86rem;line-height:1.5;white-space:pre-line}.performance-card-footer{display:grid;grid-template-columns:1fr auto;align-items:end;gap:.3rem 1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #eceff1}.performance-card-footer>span:first-child{color:var(--text-secondary);font-size:.78rem;font-weight:700}.performance-card-footer strong{color:var(--text-primary);font-size:1.2rem}.performance-card-footer em{grid-column:1 / -1;justify-self:end;color:var(--accent-color);font-size:.86rem;font-style:normal;font-weight:800}.ended-card-action{grid-column:1 / -1;justify-self:end;color:var(--text-secondary);font-size:.86rem;font-weight:800}.ended-card-action.can-review{color:var(--accent-color)}.performance-card.is-ended .performance-poster-frame img{filter:grayscale(.55)}.performance-copy-button{position:absolute;z-index:5;top:1rem;right:1rem}.ended-toggle{display:flex;width:100%;align-items:center;justify-content:space-between;padding:1.15rem 1.25rem;border:1px solid var(--border-subtle);border-radius:14px;background:#fff;color:var(--text-primary);text-align:left}.ended-toggle>span:first-child{display:flex;flex-direction:column;gap:.25rem}.ended-toggle small{color:var(--text-secondary);font-weight:500}.ended-performance-grid{margin-top:1.5rem}.empty-state,.page-status{display:flex;min-height:190px;align-items:center;justify-content:center;flex-direction:column;gap:.65rem;padding:2rem;border:1px solid var(--border-subtle);border-radius:18px;background:#fff;text-align:center;box-sizing:border-box}.empty-state>span{font-size:2.5rem}.empty-state h2,.empty-state p,.page-status p{margin:0}.empty-state p,.page-status p{color:var(--text-secondary)}.page-status-error{min-height:150px;border-color:#f3c7c2;background:#fff8f7}.status-spinner{width:28px;height:28px;border:3px solid #e5e7eb;border-top-color:var(--accent-color);border-radius:50%;animation:spin .8s linear infinite}.performance-skeleton{overflow:hidden;border:1px solid var(--border-subtle);border-radius:24px;background:#fff}.skeleton-poster,.skeleton-line{background:linear-gradient(90deg,#eef0f2 25%,#f8f9fa,#eef0f2 75%);background-size:200% 100%;animation:skeleton-shimmer 1.2s infinite}.skeleton-poster{width:min(100% - 2.5rem,360px);aspect-ratio:3 / 4;margin:1.25rem auto 0;border-radius:12px}.skeleton-copy{padding:1.5rem}.skeleton-line{height:14px;margin-top:.8rem;border-radius:999px}.skeleton-title{width:70%;height:24px}.skeleton-short{width:45%}.back-link{display:inline-flex;min-height:44px;align-items:center;gap:.45rem;margin-bottom:1rem;padding:.4rem .2rem;background:transparent;color:var(--text-secondary);font-size:.9rem;font-weight:800}.perf-detail-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.25rem 2rem;margin-bottom:2rem;padding:1.5rem;border:1px solid var(--border-subtle);border-radius:18px;background:#fff}.perf-detail-summary h1{margin:.55rem 0 .9rem;font-size:clamp(1.85rem,4vw,2.55rem);line-height:1.25}.detail-location{display:flex;gap:.4rem;margin:0;color:var(--text-secondary);line-height:1.65;white-space:pre-line}.detail-price{display:flex;align-items:flex-end;justify-content:center;flex-direction:column;text-align:right}.detail-price span{color:var(--text-secondary);font-size:.8rem;font-weight:700}.detail-price strong{margin-top:.25rem;color:var(--accent-color);font-size:1.65rem}.detail-facts{display:grid;grid-column:1 / -1;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:0;padding:1rem 0 0;border-top:1px solid var(--border-subtle);list-style:none}.detail-facts li{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;align-items:start;gap:.1rem .45rem;min-width:0;color:var(--text-secondary);font-size:.88rem;line-height:1.45}.detail-facts li>span:first-child{grid-row:1 / 3}.detail-facts strong{display:block;grid-column:2;grid-row:1;color:var(--text-primary);font-size:.78rem}.detail-fact-value{display:block;grid-column:2;grid-row:2;min-width:0;overflow-wrap:anywhere}.detail-facts a{color:var(--accent-color);font-weight:800}.perf-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,1fr);grid-template-areas:"poster booking" "description reviews";align-items:start;gap:2rem 3rem}.perf-poster-panel{grid-area:poster}.perf-booking-panel{grid-area:booking;scroll-margin-top:1rem}.perf-description-panel{grid-area:description;min-width:0}.perf-reviews-panel{grid-area:reviews;min-width:0}.detail-poster-frame{width:100%;aspect-ratio:3 / 4;overflow:hidden;border-radius:18px;background:#eef1f3;box-shadow:0 12px 28px #0000001a}.detail-poster-frame img{width:100%;height:100%;display:block;object-fit:cover}.chevron-icon{display:inline-block;flex:0 0 auto;transition:transform .2s ease}.performance-card-footer em,.ended-card-action,.ended-toggle-action,.back-link,.back-link-inline{display:inline-flex;align-items:center;gap:.25rem}.performance-card-link:hover .performance-card-footer .chevron-icon{transform:translate(3px)!important}.poster-placeholder{display:grid;width:100%;height:100%;min-height:180px;place-items:center;color:var(--text-secondary);background:var(--surface-muted)}.sticky-booking-card,.reservation-step-card{position:sticky;top:1rem;padding:1.5rem;border:1px solid var(--border-subtle);border-radius:18px;background:#fff;box-shadow:0 8px 24px #2d343614}.booking-panel-heading,.reservation-step-heading{margin-bottom:1.75rem}.booking-panel-heading h2,.reservation-step-heading h3{margin:.55rem 0 .7rem;font-size:1.55rem;line-height:1.3}.booking-panel-heading p,.reservation-step-heading p{margin:0;color:var(--text-secondary);font-size:.88rem;line-height:1.65}.booking-form .form-group{margin-bottom:1.65rem}.inline-status{margin-bottom:1rem;padding:.75rem .9rem;border-radius:10px;background:var(--accent-soft);color:var(--accent-color);font-size:.85rem;font-weight:700}.session-fieldset{min-width:0;padding:0;border:0}.session-fieldset legend,.field-label{display:block;margin-bottom:.65rem;color:var(--text-secondary);font-size:.9rem}.session-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.session-option{display:flex;min-height:62px;align-items:center;justify-content:center;flex-direction:column;gap:.2rem;padding:.75rem;border:1px solid var(--border-color);border-radius:10px;background:#fff;color:var(--text-primary);font-weight:700}.session-option small{color:var(--text-secondary);font-size:.76rem;font-weight:600}.session-option.selected{border:2px solid var(--accent-color);background:var(--accent-soft);color:var(--accent-color)}.session-option.selected:before{content:"✓ 선택됨";color:var(--accent-color);font-size:.68rem}.session-option:disabled{background:#f1f3f5;color:#737b80;cursor:not-allowed}.session-option:disabled small{color:#737b80}.field-help{margin:.6rem 0 0;color:var(--text-secondary);font-size:.82rem}.casting-card{display:flex;flex-direction:column;gap:.35rem;margin-top:.8rem;padding:.9rem 1rem;border:1px solid #fed7aa;border-radius:12px;background:var(--accent-soft);color:var(--text-secondary);font-size:.9rem;line-height:1.55;white-space:pre-line}.casting-card strong{color:var(--accent-color);font-size:.8rem}.verified-input{background:#f1f3f5;color:#4b5563}.verification-notice{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1.25rem;padding:.9rem 1rem;border-radius:12px;background:#eff6ff;color:#1e3a5f}.verification-notice p{margin:.25rem 0 0;color:#45617f;font-size:.8rem}.ticket-price-panel{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;padding:1rem;border-radius:12px;background:var(--surface-muted)}.ticket-stepper{display:flex;align-items:center;gap:.75rem}.ticket-stepper output{min-width:1.5rem;color:var(--text-primary);font-size:1.05rem;font-weight:900;text-align:center}.price-summary{display:flex;align-items:flex-end;flex-direction:column;text-align:right}.price-summary span,.price-summary small{color:var(--text-secondary);font-size:.78rem}.price-summary strong{margin:.2rem 0;color:var(--accent-color);font-size:1.35rem}.privacy-row{display:flex;min-height:44px;align-items:center;gap:.45rem;margin-top:.8rem}.privacy-row input{width:20px;height:20px;min-height:20px;flex:0 0 auto;padding:0}.privacy-row label{color:var(--text-secondary);font-size:.84rem}.touch-link{min-width:44px;min-height:44px}.booking-primary-action{min-height:54px;margin-top:.65rem;font-size:1rem}.form-message{margin:.75rem 0;padding:.8rem .9rem;border-radius:10px;font-size:.86rem;line-height:1.45}.form-message-error{border:1px solid #f3c7c2;background:#fff4f2;color:#8f1d14}.reservation-summary-list{display:flex;flex-direction:column;margin:0 0 1.25rem}.reservation-summary-list>div{display:grid;grid-template-columns:90px 1fr;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--border-subtle)}.reservation-summary-list dt{color:var(--text-secondary);font-size:.84rem}.reservation-summary-list dd{margin:0;color:var(--text-primary);font-size:.9rem;font-weight:750;line-height:1.45;white-space:pre-line}.reservation-summary-list .reservation-summary-total{align-items:center;margin-top:.4rem;padding:1rem;border:0;border-radius:12px;background:var(--accent-soft)}.reservation-summary-total dd{color:var(--accent-color);font-size:1.3rem;font-weight:900;text-align:right}.reservation-summary-total dt,.reservation-summary-total dd{white-space:nowrap}.reservation-summary-total dt{color:var(--text-primary);font-size:.9rem;font-weight:600}.reservation-confirm-dialog{width:min(92vw,520px);max-height:min(88vh,760px);overflow-y:auto;padding:1.5rem;border-radius:18px;background:#fff;box-shadow:0 24px 70px #00000038;box-sizing:border-box}.reservation-confirm-dialog h2{margin:.45rem 0 .5rem;color:var(--text-primary);font-size:1.35rem;line-height:1.35}.reservation-confirm-dialog>p{margin:0 0 1rem;color:var(--text-secondary);font-size:.9rem}.confirm-summary-list{margin-bottom:1rem}.reservation-confirm-actions{display:grid;grid-template-columns:1fr 1.35fr;gap:.65rem}.reservation-confirm-actions .btn{min-height:50px}.reservation-step-actions{display:grid;grid-template-columns:1fr 1.35fr;gap:.65rem}.reservation-step-actions .btn{min-height:50px}.reservation-success{text-align:center}.success-icon{display:grid;width:58px;height:58px;place-items:center;margin:0 auto 1rem;border-radius:50%;background:var(--success-color);color:#fff;font-size:1.8rem;font-weight:900}.success-notice{margin-bottom:1rem;padding:.8rem;border-radius:10px;background:#f1f8f4;color:#24553d;font-size:.82rem}.perf-description-panel details{overflow:hidden;border:1px solid var(--border-subtle);border-radius:16px;background:#fff}.perf-description-panel summary{display:flex;min-height:54px;align-items:center;justify-content:space-between;padding:.9rem 1.1rem;color:var(--text-primary);cursor:pointer;font-weight:850;list-style:none}.perf-description-panel summary::-webkit-details-marker{display:none}.details-hint{color:var(--accent-color);font-size:.78rem}.details-hint:after{content:"";display:inline-block;width:7px;height:7px;margin-left:.45rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s ease}.perf-description-panel details[open] .details-hint:after{transform:translateY(2px) rotate(225deg)}.performance-description{padding:0 1.1rem 1.25rem;color:var(--text-secondary);line-height:1.85;white-space:pre-line}.venue-section{margin-top:1.25rem;padding:1.25rem;border:1px solid var(--border-subtle);border-radius:16px;background:#fff}.venue-section h2{display:flex;align-items:center;gap:.45rem;font-size:1.15rem}.venue-section>p{margin:.8rem 0 0;color:var(--text-secondary);line-height:1.6;white-space:pre-line}.review-section{margin:0;padding:1.25rem;border:1px solid var(--border-subtle);border-radius:16px;background:#fff}.review-title{display:flex;align-items:center;gap:.5rem;margin-bottom:1.25rem;font-size:1.2rem}.history-reservation-card{display:flex;flex-direction:column;padding:0;overflow:hidden;border:1px solid var(--border-subtle);background:#fff;box-shadow:0 4px 12px #0000000d}.history-reservation-card.is-ended{background:#fcfcfc}.history-reservation-head{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:var(--accent-color);color:var(--accent-text)}.history-reservation-card.is-ended .history-reservation-head{background:#596166;color:#fff}.history-reservation-head span{font-size:.75rem;font-weight:700}.history-reservation-head strong{font-size:.9rem;font-weight:800}.history-reservation-body{flex:1;padding:1.5rem}.history-reservation-body h4{margin:0 0 .8rem;color:var(--text-primary);font-size:1.2rem}.history-reservation-card.is-ended .history-reservation-body h4,.history-reservation-card.is-ended .history-reservation-meta strong{color:var(--text-secondary)}.history-reservation-meta{display:flex;flex-direction:column;gap:.5rem;color:var(--text-secondary);font-size:.9rem}.history-reservation-meta>div{display:flex;align-items:center;gap:.5rem}.history-reservation-meta strong{color:var(--text-primary)}.history-reservation-footer{display:flex;align-items:center;justify-content:space-between;padding:1.2rem 1.5rem;border-top:1px dashed var(--border-subtle);background:#fafafa}.history-reservation-card.is-ended .history-reservation-footer{border-color:#ddd;background:#f5f5f5}.history-reservation-amount{display:flex;flex-direction:column}.history-reservation-amount span{margin-bottom:.2rem;color:var(--text-secondary);font-size:.75rem}.history-reservation-amount strong{color:var(--accent-color);font-size:1.1rem;font-weight:800}.history-reservation-card.is-ended .history-reservation-amount strong{color:var(--text-secondary)}.mobile-booking-cta{display:none}.modal-backdrop{position:fixed;z-index:1000;inset:0;display:flex;align-items:center;justify-content:center;padding:1.25rem;background:#00000094;box-sizing:border-box}.privacy-dialog{position:relative;width:100%;max-width:480px;max-height:85vh;overflow-y:auto;padding:1.5rem;border-radius:16px;background:#fff;box-shadow:0 18px 50px #0000003d;box-sizing:border-box}.privacy-dialog h2{margin:0 2.5rem 1rem 0;padding-bottom:.75rem;border-bottom:1px solid var(--border-subtle);font-size:1.25rem}.modal-close{position:absolute;top:.8rem;right:.8rem;width:44px;height:44px;border-radius:50%;background:var(--surface-muted);color:var(--text-primary);font-size:1.5rem}.privacy-content{color:#444;font-size:.9rem;line-height:1.65}.privacy-emphasis{color:var(--danger-color);font-weight:800}.identity-title{margin-bottom:1rem;text-align:center;font-size:1.65rem}@keyframes spin{to{transform:rotate(360deg)}}@keyframes skeleton-shimmer{to{background-position:-200% 0}}@media(max-width:768px){.history-view .grid-container{grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:1.6rem!important;row-gap:1.6rem!important}.history-reservation-card{border-radius:16px}.history-reservation-head{padding:.75rem .85rem}.history-reservation-body{padding:.95rem .85rem}.history-reservation-body h4{display:-webkit-box;margin-bottom:.8rem;overflow:hidden;font-size:1.05rem;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.history-reservation-meta{gap:.5rem;font-size:.82rem;line-height:1.5}.history-reservation-footer{align-items:stretch;flex-direction:column;gap:.8rem;padding:.85rem}.history-reservation-amount strong{font-size:1rem}.history-reservation-footer .btn{width:100%;min-height:40px}.performance-grid{grid-template-columns:1fr;gap:1rem}.performance-card-public{border-radius:18px}.performance-card-public .performance-card-link{display:grid;grid-template-columns:140px minmax(0,1fr);align-items:stretch}.performance-card-public .performance-poster-frame{width:128px;height:auto;min-height:0;aspect-ratio:3 / 4;align-self:center;margin:0 0 0 8px;border:0;border-radius:12px}.performance-card-public .performance-card-content{min-width:0;padding:.9rem}.performance-card-public .performance-card-copy h2{display:-webkit-box;margin-bottom:.65rem;overflow:hidden;font-size:1.03rem;-webkit-box-orient:vertical;-webkit-line-clamp:2}.performance-card-public .performance-card-facts{display:flex;flex-direction:column;gap:.35rem;font-size:.78rem}.performance-card-public .performance-card-facts div:nth-child(3),.performance-card-public .performance-card-facts div:nth-child(4){display:none}.performance-card-public .performance-location{display:-webkit-box;margin-top:.5rem;overflow:hidden;font-size:.77rem;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.performance-card-public .performance-location>span{display:none}.performance-card-public .performance-card-footer{margin-top:.65rem;padding-top:.65rem}.performance-card-public .performance-card-footer>span:first-child{display:none}.performance-card-public .performance-card-footer strong{font-size:1rem}.performance-card-public .performance-card-footer em,.performance-card-public .ended-card-action{font-size:.76rem}.performance-card-public .availability-badge{top:.6rem;right:.5rem;padding:.35rem .55rem;font-size:.68rem}.performance-skeleton{display:grid;grid-template-columns:140px 1fr;min-height:180px;border-radius:18px}.skeleton-poster{width:128px;height:auto;aspect-ratio:3 / 4;align-self:center;margin:0;border-radius:0}.perf-detail-summary{grid-template-columns:1fr;margin-bottom:1.25rem;padding:1.3rem}.perf-detail-summary h1{font-size:1.75rem;line-height:1.3}.detail-price{align-items:flex-start;text-align:left}.detail-facts{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:1rem .75rem}.perf-detail-grid{grid-template-columns:1fr;grid-template-areas:"booking" "poster" "description" "reviews";gap:1.25rem}.sticky-booking-card,.reservation-step-card{position:static;padding:1.3rem}.detail-poster-frame{width:calc(100% - .25rem);max-width:480px;margin:0 auto}.booking-detail{padding-bottom:82px}.mobile-booking-cta{position:fixed;z-index:50;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem max(1rem,env(safe-area-inset-right)) calc(.75rem + env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));border-top:1px solid var(--border-subtle);background:#fffffff5;box-shadow:0 -8px 24px #2d34361f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.mobile-booking-cta>div{display:flex;flex-direction:column}.mobile-booking-cta span{color:var(--text-secondary);font-size:.72rem}.mobile-booking-cta strong{color:var(--text-primary);font-size:1rem}.mobile-booking-cta .btn{min-width:132px;min-height:48px}.reservation-step-actions{grid-template-columns:1fr}.reservation-summary-list>div{grid-template-columns:78px 1fr}.reservation-summary-list .reservation-summary-total{grid-template-columns:minmax(max-content,1fr) max-content;gap:.65rem}.reservation-confirm-dialog{padding:1.15rem}.reservation-confirm-actions{grid-template-columns:1fr}.section-heading{align-items:center;margin-bottom:1.25rem}.section-heading h1{font-size:1.6rem}.auth-btn,.auth-btn-logout{min-height:44px!important;padding:.45rem .7rem!important;font-size:.78rem!important}}@media(max-width:420px){.detail-facts{grid-template-columns:1fr}.ticket-price-panel{align-items:stretch;flex-direction:column}.price-summary{align-items:flex-start;padding-top:.8rem;border-top:1px solid var(--border-subtle);text-align:left}.privacy-row{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.admin-booking-group{width:95%;box-sizing:border-box}@media(max-width:768px){.admin-booking-group{width:90%;box-sizing:border-box;padding:1rem!important}.desktop-only{display:none!important}.mobile-only{display:block!important}.admin-header-row{flex-direction:column;align-items:flex-start!important;gap:1rem}.admin-header-row>div:last-child{text-align:left!important;width:100%;padding-top:.5rem;border-top:1px dashed #eee}.admin-actions-row{justify-content:flex-start!important;flex-direction:column;align-items:stretch!important}.admin-actions-row>div{width:100%}.admin-actions-row input{width:100%!important}.manual-form-grid{grid-template-columns:1fr!important;padding:1rem!important}}@media(min-width:769px){.mobile-only{display:none!important}}.mobile-only{display:none}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.reservation-row,.reservation-card{transition:all .4s ease-in-out}.admin-review-page-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;width:100%;box-sizing:border-box}.admin-review-page-header h2{margin:0;color:var(--text-primary)}.admin-review-page-header p{margin:.35rem 0 0;color:#888;font-size:.95rem}.admin-review-toolbar{margin-bottom:1.5rem}.admin-review-toolbar input{max-width:420px;background:#f8f9fa}.admin-review-group-list{display:grid;gap:2rem;width:100%;box-sizing:border-box}.admin-review-performance-card{padding:1.5rem;max-width:none;margin:0 auto;box-sizing:border-box}.admin-review-performance-card .admin-card-header{border-bottom:1px solid #eee;padding-bottom:1rem;margin-bottom:1rem}.admin-review-performance-card h3{margin:0 0 .4rem;color:var(--accent-color)}.admin-review-performance-card .admin-header-row p{margin:0;font-size:.9rem;color:#666;word-break:break-word}.admin-review-performance-card .admin-header-row .admin-performance-id,.admin-hidden-performance-info .admin-performance-id{margin-top:.25rem;color:#999;font-size:.8rem;font-weight:700}.admin-review-performance-card .admin-header-row strong{font-size:1rem;color:#555;white-space:normal;word-break:break-word}.admin-review-group-actions{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;flex-wrap:wrap}.review-transfer-panel{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(280px,1.4fr);gap:1rem;margin:0 0 1rem;padding:1rem;border:1px solid rgba(255,159,67,.45);border-radius:10px;background:#fff8f1}.review-transfer-panel strong{color:var(--text-primary)}.review-transfer-panel p{margin:.35rem 0 0;color:#666;font-size:.85rem;line-height:1.5}.review-transfer-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.5rem}.review-transfer-controls label{grid-column:1 / -1;font-size:.82rem;font-weight:700;color:var(--text-secondary)}.admin-review-empty-card{padding:2rem;max-width:none;width:100%;box-sizing:border-box;text-align:center;color:#999}.admin-review-section{border:1px solid #eee;border-radius:8px;overflow:hidden;width:100%;box-sizing:border-box}.admin-review-header{padding:1rem;background:#fafafa;border-bottom:1px solid #eee;display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap;width:100%;box-sizing:border-box;min-width:0}.admin-review-header h4{margin:0;font-size:1rem;color:#333}.admin-review-header p{margin:.25rem 0 0;font-size:.85rem;color:#888}.admin-review-header span{font-size:.9rem;color:#666;font-weight:700}.admin-review-empty{padding:1.5rem;text-align:center;color:#999;font-size:.9rem}.admin-review-table{margin-bottom:0;border:none;border-radius:0}.admin-review-table table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-review-content{line-height:1.5;white-space:pre-wrap;word-break:break-word}.admin-review-mobile-list{padding:1rem}.review-row,.review-card{transition:all .4s ease-in-out}.review-card{background:#fff;padding:1rem;border-radius:8px;border:1px solid #eee;margin-bottom:.8rem}.admin-review-card-head{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.admin-review-card-head span{font-weight:700;min-width:0;word-break:break-word}.admin-review-card-head time,.admin-review-phone{font-size:.85rem;color:#999;min-width:0;white-space:nowrap}.admin-review-phone{margin:0 0 .7rem}.review-card .admin-review-content{margin:0 0 .9rem;color:#333}.admin-review-section .btn-danger-outline{width:100%}.admin-hidden-performance-list{display:grid;gap:1rem;width:100%;box-sizing:border-box;overflow:hidden}.admin-hidden-performance-card{max-width:none;padding:1rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;box-sizing:border-box;overflow:hidden}.admin-hidden-performance-info{display:flex;align-items:center;gap:1rem;min-width:0;width:100%;overflow:hidden}.admin-hidden-performance-info>div{min-width:0}.admin-hidden-performance-info img{width:72px;height:96px;flex:0 0 auto;object-fit:cover;border-radius:8px;border:1px solid #eee;filter:grayscale(.45)}.admin-hidden-performance-info h3{margin:0 0 .35rem;color:var(--text-primary)}.admin-hidden-performance-info p{margin:.15rem 0;color:#666;font-size:.9rem;line-height:1.4;overflow-wrap:anywhere}.admin-hidden-performance-info span{display:inline-block;margin-top:.35rem;color:#999;font-size:.82rem}.admin-hidden-performance-actions{display:flex;gap:.5rem;flex:0 0 auto}@media(max-width:768px){.admin-hidden-performance-card{align-items:stretch;flex-direction:column}.admin-review-page-header{width:100%;justify-content:space-between;align-items:center}.admin-review-toolbar{width:100%;margin-top:.4rem}.admin-review-page-header .btn{width:auto;align-self:flex-end}.admin-review-toolbar input{max-width:none;width:100%}.admin-review-group-actions{width:100%;justify-content:space-between}.review-transfer-panel,.review-transfer-controls{grid-template-columns:1fr}.review-transfer-controls .btn,.admin-hidden-performance-actions{width:100%}.admin-hidden-performance-actions .btn{flex:1}.admin-booking-group{width:100%}.admin-hidden-performance-card{width:100%;max-width:none}.admin-hidden-performance-info h3,.admin-hidden-performance-info p{word-break:break-word}.admin-review-group-list,.admin-review-performance-card,.admin-review-section,.admin-review-header,.admin-review-mobile-list,.admin-review-empty-card,.admin-review-toolbar{width:100%;max-width:100%;box-sizing:border-box}.admin-review-page-header>div{flex:1;min-width:0}.admin-review-card-head{flex-wrap:wrap}.admin-review-content{word-break:break-word;overflow-wrap:anywhere}.review-card{width:100%;min-width:0;box-sizing:border-box}}
