:root{--page-width:92%;--content-max:1600px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--gold:var(--accent);--gold-dim:var(--accent-dim);--out-hatch:color-mix(in srgb, var(--text) 5%, transparent);--folk-dim:color-mix(in srgb, var(--folk) 14%, transparent);--metal-dim:color-mix(in srgb, var(--metal) 15%, transparent);--other-dim:color-mix(in srgb, var(--other) 16%, transparent)}html,body{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);flex-direction:column;min-height:100vh;display:flex}a{color:inherit;text-decoration:none}main{padding:2.25rem 1.25rem 3rem}.hero{margin-bottom:1.75rem}.hero h1{letter-spacing:-.03em;text-transform:uppercase;font-size:2rem;font-weight:800;line-height:1.05}.hero h1 .p{color:var(--gold)}.hero h1 .m{color:var(--metal)}.hero .sub{color:var(--muted);letter-spacing:.02em;margin-top:.5rem;font-size:.9rem}.hero .sub .dot{color:var(--gold)}.controls{flex-wrap:wrap;align-items:center;gap:.6rem;margin:1.5rem 0 1rem;display:flex}.seg{border:1px solid var(--border);background:var(--surface);border-radius:999px;gap:.15rem;padding:.2rem;display:inline-flex}.seg button{color:var(--muted);cursor:pointer;letter-spacing:.02em;background:0 0;border:none;border-radius:999px;padding:.4rem .85rem;font-family:inherit;font-size:.78rem;font-weight:600}.seg button.active{background:var(--gold-dim);color:var(--gold)}.filter{border:1px solid var(--border);background:var(--surface);border-radius:999px;flex-wrap:wrap;gap:.15rem;padding:.2rem;display:inline-flex}.filter button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.4rem .8rem;font-family:inherit;font-size:.74rem;font-weight:600}.filter button[data-filter=punk]{color:var(--gold)}.filter button[data-filter=metal]{color:var(--metal)}.filter button.active{background:var(--gold-dim)}.filter button[data-filter=all].active{color:var(--text)}.filter button[data-filter=metal].active{background:var(--metal-dim)}.spacer{flex:1}.navbtns{align-items:center;gap:.5rem;display:inline-flex}.navbtns button:not(.today-btn){border:1px solid var(--border);background:var(--surface);width:34px;height:34px;color:var(--text);cursor:pointer;border-radius:8px;font-size:1rem;line-height:1}.navbtns button:not(.today-btn):hover{border-color:var(--gold);color:var(--gold)}.month-label{text-align:center;letter-spacing:.01em;min-width:150px;font-size:1rem;font-weight:700}.today-btn{border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:8px;padding:.4rem .7rem;font-family:inherit;font-size:.74rem;font-weight:600}.today-btn:hover{border-color:var(--gold);color:var(--gold)}.seg button,.filter button,.navbtns button,.today-btn{outline:none}.seg button:focus-visible,.filter button:focus-visible,.navbtns button:focus-visible,.today-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.cal{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);overflow:hidden}.cal .dow{background:var(--surface-2);border-bottom:1px solid var(--border);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.cal .dow div{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);text-align:center;padding:.7rem .5rem;font-size:.78rem;font-weight:700}.cal .weeks{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);flex-direction:column;gap:.3rem;min-width:0;min-height:150px;padding:.5rem;display:flex;position:relative;overflow:hidden}.ev{max-width:100%}.cell:nth-child(7n){border-right:none}.cell.out{background:repeating-linear-gradient(45deg,transparent,transparent 6px,var(--out-hatch) 6px,var(--out-hatch) 12px)}.cell .num{color:var(--muted);font-size:.82rem;font-weight:600}.cell.today .num{color:var(--bg);background:var(--gold);border-radius:6px;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.cell.has{cursor:pointer}.cell.has:hover{background:var(--surface-2)}.ev{border-radius:var(--r-sm);background:var(--gold-dim);color:color-mix(in srgb, var(--gold) 72%, var(--text));text-overflow:ellipsis;white-space:nowrap;padding:.26rem .45rem;font-size:.85rem;line-height:1.3;overflow:hidden}.ev.folk{background:var(--folk-dim);color:color-mix(in srgb, var(--folk) 72%, var(--text))}.ev.metal{background:var(--metal-dim);color:color-mix(in srgb, var(--metal) 72%, var(--text))}.ev.other{background:var(--other-dim);color:color-mix(in srgb, var(--other) 72%, var(--text))}.more{color:var(--muted);padding-left:.3rem;font-size:.7rem}.cnt{display:none}.agenda{flex-direction:column;gap:.65rem;display:flex}.agenda .day-hd{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--border);margin-top:.75rem;padding-bottom:.35rem;font-size:.72rem;font-weight:700}.row{background:var(--surface);border:1px solid var(--border);border-radius:12px;align-items:flex-start;gap:.9rem;padding:.85rem 1rem;transition:border-color .15s,transform .1s;display:flex}.row:hover{border-color:var(--gold);transform:translateY(-1px)}.row .date{text-align:center;flex-shrink:0;width:52px}.row .date .d{color:var(--gold);font-size:1.4rem;font-weight:800;line-height:1}.row .date .m{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:.15rem;font-size:.6rem}.row .info{flex:1;min-width:0}.row .info .nm{font-size:.95rem;font-weight:700;line-height:1.2}.row .info .meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.28rem;font-size:.78rem;display:flex}.row .info .meta .venue{color:var(--text)}.badge{text-transform:uppercase;letter-spacing:.06em;background:var(--gold-dim);color:color-mix(in srgb, var(--gold) 72%, var(--text));border-radius:999px;padding:.12rem .45rem;font-size:.58rem;font-weight:700}.badge.metal{background:var(--metal-dim);color:color-mix(in srgb, var(--metal) 72%, var(--text))}.badge.other{background:var(--other-dim);color:color-mix(in srgb, var(--other) 72%, var(--text))}.badge.src{background:var(--other-dim);color:color-mix(in srgb, var(--other) 72%, var(--text));margin-left:.3rem}.tix{color:var(--bg);background:var(--gold);border-radius:8px;flex-shrink:0;align-self:center;padding:.45rem .8rem;font-size:.74rem;font-weight:700}.tix:hover{opacity:.9}.empty{text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:var(--r-lg)x;padding:3.5rem 1.5rem;font-size:.9rem;line-height:1.6}.foot{color:var(--muted);text-align:center;letter-spacing:.02em;margin-top:1.5rem;font-size:.7rem}.loading{text-align:center;color:var(--muted);padding:3rem;font-size:.9rem}.sheet-bg{z-index:100;background:#0000008c;justify-content:center;align-items:flex-end;display:none;position:fixed;inset:0}.sheet-bg.open{display:flex}.sheet{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;max-width:560px;max-height:75vh;padding:1.25rem 1.25rem 2rem;position:relative;overflow-y:auto}.sheet h3{color:var(--gold);margin-bottom:.85rem;font-size:1rem}.sheet-close{background:var(--surface-2);border:1px solid var(--border);width:32px;height:32px;color:var(--muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:0;font-size:.85rem;display:flex;position:absolute;top:.7rem;right:.7rem}.sheet-close:hover{border-color:var(--gold);color:var(--gold)}@media (width>=640px){.sheet-bg{align-items:center}.sheet{border-radius:var(--r-lg)}}@media (width>=901px){html,body{overflow:hidden}#pc-main,#content,.cal{flex-direction:column;flex:1;min-height:0;display:flex}.cal .weeks{flex:1;grid-auto-rows:1fr;min-height:0}.cell{min-height:0}.agenda{overscroll-behavior:contain;padding-right:.4rem;overflow-y:auto}}.agenda,.sheet{scrollbar-width:thin;scrollbar-color:var(--border) transparent}.agenda::-webkit-scrollbar{width:8px}.sheet::-webkit-scrollbar{width:8px}.agenda::-webkit-scrollbar-track{background:0 0}.sheet::-webkit-scrollbar-track{background:0 0}.agenda::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--r-pill)}.sheet::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--r-pill)}.agenda::-webkit-scrollbar-thumb:hover{background:var(--muted)}.sheet::-webkit-scrollbar-thumb:hover{background:var(--muted)}@media (width<=900px){.cell{min-height:100px;padding:.4rem}.ev{padding:.18rem .3rem;font-size:.68rem}}@media (width<=600px){.hero h1{font-size:1.6rem}.cell{min-height:66px;padding:.3rem}.ev,.more{display:none}.cnt{background:var(--gold-dim);min-width:22px;height:22px;color:color-mix(in srgb, var(--gold) 72%, var(--text));border-radius:999px;justify-content:center;align-items:center;padding:0 .3rem;font-size:.7rem;font-weight:700;display:flex}.month-label{min-width:110px;font-size:.9rem}.controls{gap:.4rem}}
