:root{--bg: #101014;--panel: #17171d;--panel-2: #1e1e26;--line: #2a2a34;--text: #e8e6e1;--muted: #9a97a0;--accent: #d4a545}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font:15px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}.app{max-width:1180px;margin:0 auto;padding:20px 24px 40px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.brand{font-family:Limelight,Helvetica,Arial,sans-serif;font-size:27px;font-weight:400;letter-spacing:.5px}.brand-note,.brand-accent{color:var(--accent)}.brand-nyc{color:var(--muted);font-weight:300}.city-badge{display:inline-block;vertical-align:4px;margin-left:9px;font-size:11px;font-weight:700;letter-spacing:1.5px;color:var(--accent);border:1px solid var(--accent);border-radius:5px;padding:2px 7px}.view-toggle{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.view-toggle button{background:transparent;color:var(--muted);border:none;padding:7px 16px}.view-toggle button.on{background:var(--accent);color:#14100a;font-weight:600}.filterbar{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 18px}.chip{display:inline-flex;align-items:center;gap:7px;background:var(--panel);color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:6px 13px;transition:all .15s ease;opacity:.55}.chip.on{color:var(--text);opacity:1}.chip-all.on{border-color:var(--accent);color:var(--accent)}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.monthnav{display:flex;align-items:center;gap:14px;margin-bottom:10px}.monthnav h2{font-family:Limelight,Helvetica,Arial,sans-serif;margin:0;font-size:18px;font-weight:400;min-width:170px;text-align:center;letter-spacing:1px}.monthnav button{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:7px;padding:5px 13px}.monthnav button:hover{border-color:var(--accent)}.grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.dow-row{margin-bottom:5px}.dow{text-align:center;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:1px;padding:4px 0}.cell{background:var(--panel);border:1px solid var(--line);border-radius:9px;min-height:116px;padding:6px 6px 12px;display:flex;flex-direction:column;gap:4px}.cell.empty{background:transparent;border-color:transparent}.cell.past{opacity:.45}.daynum{font-size:12px;color:var(--muted);padding:3px 2px 10px}.cell.today .daynum{color:var(--accent);font-weight:700}.ev{display:block;font-size:11.5px;line-height:1.25;background:var(--panel-2);border-left:3px solid #888;border-radius:4px;padding:3px 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ev:hover{background:#26262f}.more{background:none;border:none;color:var(--muted);font-size:11px;text-align:left;padding:1px 4px}.more:hover{color:var(--accent)}.daypanel,.listview{margin-top:18px}.daypanel.inline{grid-column:1 / -1;margin:1px 0 5px;padding:4px 10px 10px;background:var(--panel);border:1px solid var(--line);border-radius:9px;animation:panel-in .16s ease}.daypanel.inline h3{margin-top:10px;border-bottom-color:#d4a54559}@keyframes panel-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}.daypanel h3,.daygroup h3{font-size:14px;text-transform:uppercase;letter-spacing:1.5px;color:var(--accent);border-bottom:1px solid var(--line);padding-bottom:6px;margin:22px 0 8px}.tonight{background:var(--accent);color:#14100a;font-size:11px;border-radius:4px;padding:2px 7px;margin-left:10px;letter-spacing:.5px;vertical-align:1px}.row{display:flex;align-items:baseline;gap:12px;padding:8px 10px;border-radius:7px}.row:hover{background:var(--panel)}.badge{flex:0 0 auto;font-size:10.5px;font-weight:700;color:#101014;border-radius:4px;padding:2px 7px;letter-spacing:.4px;min-width:74px;text-align:center}.row-title{flex:1 1 auto}.row-details{display:block;color:var(--muted);font-size:12px;margin-top:1px}.row-sets{flex:0 0 auto;color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.empty-list,.error{color:var(--muted);padding:40px 0;text-align:center}.error{color:#e07a6a}.foot{margin-top:30px;color:var(--muted);font-size:12.5px;display:flex;gap:8px}.foot-sep{color:var(--line)}button.cell{text-align:left;border:1px solid var(--line);font:inherit;color:inherit}.cell.has-events{cursor:pointer}.cell.open{border-color:var(--accent);background:#d4a54524;box-shadow:0 0 0 1px var(--accent)}.dotrow{display:flex;flex-wrap:wrap;gap:3px;align-items:center;margin-top:2px}.dot-sm{width:7px;height:7px;border-radius:50%;display:inline-block}.dot-extra{color:var(--muted);font-size:10px;line-height:1}.jump-tonight{position:fixed;right:16px;bottom:18px;z-index:10;background:var(--accent);color:#14100a;font-weight:700;font-size:14px;border:none;border-radius:999px;padding:13px 20px;box-shadow:0 4px 18px #0000008c}@media(max-width:760px){body{font-size:16px}.app{padding:14px 12px 32px}.topbar{flex-wrap:wrap;gap:10px}.brand{font-size:21px}.view-toggle button{padding:11px 18px}.filterbar{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-left:-12px;margin-right:-12px;padding:2px 12px 8px;scrollbar-width:none}.filterbar::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;padding:10px 15px;font-size:14px}.grid{gap:3px}.cell{min-height:52px;padding:5px;border-radius:7px}.daynum{font-size:12px}.monthnav h2{min-width:130px;font-size:17px}.monthnav button{padding:9px 16px}.row{flex-wrap:wrap;padding:11px 8px;row-gap:2px}.badge{min-width:62px;font-size:10px;padding:3px 7px}.row-title{flex:1 1 60%}.row-sets{flex:0 0 auto;margin-left:auto}.daygroup h3{position:sticky;top:0;background:var(--bg);z-index:5;padding-top:8px;margin-top:14px}}@media(min-width:761px){.jump-tonight{display:none}}.personnel .p-inst{color:var(--accent);opacity:.75;font-style:italic;font-size:.92em}.personnel .p-sep{color:var(--line)}.personnel.grouped{display:block}.personnel.grouped .p-section{display:block;padding-left:10px;line-height:1.5}.personnel.grouped .p-inst{display:inline-block;min-width:90px;font-style:italic}
