.live-calendar{--cal-surface:#131f2f;border:1px solid #dac49e55;padding:clamp(14px,3vw,32px);background:#0b1421}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.calendar-toolbar h3{font:400 clamp(24px,4vw,36px)/1.4 Georgia,"Yu Mincho",serif;margin:0;letter-spacing:.025em}
.calendar-controls{display:flex;gap:8px;align-items:center}
.calendar-controls button,.calendar-sync button{background:transparent;color:var(--gold);border:1px solid #dac49e60;min-width:44px;min-height:44px;padding:7px 12px;cursor:pointer}
#calendar-prev,#calendar-next{font:32px/1 Georgia,serif}
#calendar-today,.calendar-sync button{font-size:.875rem}
.calendar-controls button:disabled{opacity:.4;cursor:default}
.calendar-controls button:hover:not(:disabled){background:#dac49e16;border-color:var(--gold)}
.calendar-help{font-size:.875rem;line-height:1.8;color:var(--muted);margin:0 0 22px}
.live-calendar-grid{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:5px;margin:0 -5px;width:calc(100% + 10px)}
.live-calendar-grid th{font-size:.875rem;font-weight:400;padding:5px 0 12px;color:var(--muted)}
.live-calendar-grid th:first-child{color:#e7abb0}.live-calendar-grid th:last-child{color:#b0cce4}
.live-calendar-grid td{vertical-align:top;padding:0}
.calendar-day{width:100%;min-width:0;min-height:112px;height:100%;position:relative;display:flex;align-items:flex-start;flex-direction:column;padding:12px;gap:7px;color:var(--text);background:var(--cal-surface);border:1px solid transparent;text-align:left;border-radius:2px;font:inherit}
.calendar-day-number{font:400 1.375rem/1.2 Georgia,serif;display:inline-block;min-width:1.2em;text-align:center}
.calendar-day.is-past:not(.has-live){color:#929eae;background:#111b29}
.calendar-day.is-today .calendar-day-number{outline:1px solid var(--gold);outline-offset:3px;border-radius:50%}
.calendar-day.has-live{background:var(--gold);color:#101925;cursor:pointer;border-color:var(--gold)}
.calendar-day.has-live:hover{background:#f1dcba;box-shadow:0 0 0 1px #f1dcba}
.calendar-day.has-live.is-today .calendar-day-number{outline-color:#101925}
.calendar-day:focus-visible{outline-offset:2px;position:relative;z-index:1}
.calendar-live-mark{font-size:.75rem;line-height:1.4;font-weight:600;letter-spacing:.04em;display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.calendar-show-count{font-weight:400;border-left:1px solid #10192560;padding-left:5px}
.calendar-day-title{font-size:.75rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.calendar-key{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:.75rem;line-height:1.7;color:var(--muted);margin:18px 0 30px}
.calendar-key>span:first-child{display:flex;align-items:center;gap:9px}.calendar-key i{display:inline-block;width:11px;height:11px;background:var(--gold)}
.month-shows h4{font-size:1rem;font-weight:400;line-height:1.7;margin:0 0 16px}.month-shows h4>span{font-size:.875rem;color:var(--gold);margin-left:14px}
.calendar-show-row{display:flex;align-items:center;gap:20px;padding:18px 2px;width:100%;color:var(--text);border:0;border-top:1px solid var(--line);background:transparent;text-align:left;cursor:pointer}
.calendar-show-row:last-child{border-bottom:1px solid var(--line)}.calendar-show-row:hover{color:var(--gold)}
.calendar-show-date{flex:0 0 46px;text-align:center;font:30px/1 Georgia,serif}.calendar-show-date small{display:block;font:.75rem/1.6 Arial,sans-serif;color:var(--muted);margin-top:7px}
.calendar-show-info{flex:1;min-width:0}.calendar-show-info strong{font-weight:400;font-size:1rem;line-height:1.7;overflow-wrap:anywhere}.calendar-show-info>span{display:block;font-size:.875rem;color:var(--muted);line-height:1.7;overflow-wrap:anywhere;margin-top:4px}
.calendar-show-arrow{color:var(--gold);font-size:1.375rem;margin-left:auto}.calendar-empty{color:var(--muted);font-size:1rem;line-height:1.8;margin:0;padding:12px 0 20px}
.calendar-sync{font-size:.875rem;color:var(--muted);line-height:1.8}.calendar-sync p:empty{display:none}.calendar-sync button[hidden]{display:none}
.live-section .live-note{font-size:.8125rem;line-height:1.8}
.live-section .live-intro{margin:46px 0 0;grid-template-columns:minmax(0,1fr) 160px;gap:8px 32px}.live-section .live-scene{grid-column:2;grid-row:1/3;width:100%;margin:0;max-width:160px}.live-section .live-scene img{height:180px;object-fit:cover}.live-section .live-intro h3{font-size:22px}.live-section .live-intro p{font-size:.875rem}
.live-dialog{background:#101925;color:var(--text);border:1px solid #dac49e80;padding:0;width:min(620px,calc(100% - 32px));max-height:85svh;overflow-y:auto;overscroll-behavior:contain;box-shadow:0 25px 100px #0008}
.live-dialog::backdrop{background:#030912cc;backdrop-filter:blur(5px)}.live-dialog-open{overflow:hidden}
.live-dialog-header{position:sticky;top:0;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:26px 28px 22px;background:#101925;border-bottom:1px solid var(--line)}
.live-dialog-header .eyebrow{font-size:.75rem;margin:0 0 10px}.live-dialog-header h3{font:400 1.25rem/1.8 "Yu Mincho",serif;letter-spacing:.02em;margin:0}
#live-dialog-close{flex-shrink:0;width:44px;height:44px;border:1px solid var(--line);background:transparent;color:var(--gold);font-size:1.75rem;cursor:pointer}
#live-dialog-events{padding:0 28px 28px}.show-detail{padding:25px 0}.show-detail+.show-detail{border-top:1px solid var(--line)}.show-detail:last-child{padding-bottom:0}.show-detail h4{font-size:1.375rem;line-height:1.7;font-weight:400;margin:0 0 24px;overflow-wrap:anywhere}
.show-detail dl{margin:0}.show-detail dl>div{display:grid;grid-template-columns:44px minmax(0,1fr);gap:16px;margin-top:16px}.show-detail dt{color:var(--gold);font-size:.875rem;line-height:1.9}.show-detail dd{margin:0;font-size:1rem;line-height:1.8;overflow-wrap:anywhere}
.show-body{white-space:pre-wrap;overflow-wrap:anywhere;font-size:1rem;line-height:1.9;color:#c3cbd6;margin:24px 0 0}.show-reserve{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:52px;padding:14px 18px;background:var(--gold);color:#101925;font-size:1rem;margin-top:26px}.show-reserve:hover{background:#f1dcba}
.calendar-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.calendar-fallback summary{display:block;font-size:1rem}.undated-shows{margin-top:24px}
@media(max-width:760px){.calendar-day{min-height:76px;padding:8px 4px;align-items:center;gap:9px}.calendar-day-number{font-size:1.125rem}.calendar-day-title{display:none}.calendar-live-mark{font-size:.75rem;gap:2px;justify-content:center}.calendar-show-count{padding-left:2px}.calendar-help{margin-bottom:14px}.live-calendar-grid{border-spacing:3px;margin:0 -3px;width:calc(100% + 6px)}.calendar-key{margin-bottom:24px}.calendar-show-row{gap:12px}.live-section .live-intro{grid-template-columns:minmax(0,1fr) 100px;gap:12px}.live-section .live-intro h3{font-size:1rem;letter-spacing:1px}.live-section .live-intro p{font-size:.8125rem}.live-section .live-scene img{height:140px}.live-dialog-header{padding:20px}.live-dialog-header h3{font-size:1.125rem}#live-dialog-events{padding:0 20px 26px}.show-detail h4{font-size:1.25rem}}
@media(max-width:370px){.live-calendar{padding:12px}.calendar-toolbar h3{font-size:22px}.calendar-controls{gap:4px}.calendar-controls button{padding:6px;min-width:40px}.calendar-day{min-height:80px}.calendar-live-mark{letter-spacing:0}.calendar-show-count{border:0;padding:0}.live-section .live-intro{grid-template-columns:minmax(0,1fr)}.live-section .live-scene{display:none}}
