*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:Inter,Helvetica Neue,Arial,sans-serif;font-size:1rem;line-height:1.5;color:#e8e8e8;background-color:#0e0e0e;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,video,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}button{cursor:pointer;border:none;background:none}a{color:inherit;text-decoration:none}ul,ol{list-style:none}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.2}p{line-height:1.5}table{border-collapse:collapse;width:100%}[hidden]{display:none!important}a{transition:color .1s ease}a:hover{color:#c8f060}:focus-visible{outline:2px solid #c8f060;outline-offset:2px;border-radius:3px}.container{width:100%;max-width:1280px;margin-inline:auto;padding-inline:1rem}@media(min-width:768px){.container{padding-inline:2rem}}.container--narrow{max-width:768px}.page-shell{padding-top:2.5rem}.parent-link{display:inline-flex;align-items:center;gap:.25rem;width:fit-content;font-size:.875rem;color:#888}.parent-link:hover{color:#c8f060}.text-muted{color:#888}.text-faint{color:#555}.text-accent{color:#c8f060}.text-danger{color:#e05252}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.badge{display:inline-flex;align-items:center;padding:.25rem .5rem;border-radius:3px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;line-height:1}.badge--upcoming{background:#c8f06026;color:#c8f060}.badge--cancelled{background:#e0525226;color:#e05252}.badge--postponed{background:#e0a03026;color:#e0a030}.badge--past{background:#55555526;color:#555}.badge--featured{background:#c8f06033;color:#c8f060}.badge--pending{background:#e0a03026;color:#e0a030}.badge--series{background:#8888881f;color:#888}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;transition:background .1s ease,color .1s ease,opacity .1s ease;white-space:nowrap}.btn--primary{background:#c8f060;color:#0e0e0e}.btn--primary:hover{background:#8aaa3a;color:#0e0e0e}.btn--ghost{background:transparent;color:#e8e8e8;border:1px solid #333333}.btn--ghost:hover{border-color:#c8f060;color:#c8f060}.btn--danger{background:transparent;color:#e05252;border:1px solid #e05252}.btn--danger:hover{background:#e052521a}.btn--danger-ghost{background:transparent;color:#555;border:1px solid transparent}.btn--danger-ghost:hover{color:#e05252;border-color:#e0525266}.btn--sm{font-size:.75rem;padding:.25rem .75rem}.btn:disabled{opacity:.4;pointer-events:none}.field{display:flex;flex-direction:column;gap:.25rem}.field label{font-size:.875rem;font-weight:500;color:#888}.field input,.field textarea,.field select{background:#1a1a1a;border:1px solid #333333;border-radius:6px;padding:.5rem .75rem;color:#e8e8e8;width:100%;transition:border-color .1s ease}.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:#c8f060}.field input::placeholder,.field textarea::placeholder,.field select::placeholder{color:#555}.field textarea{resize:vertical;min-height:100px}.field .field__hint{font-size:.75rem;color:#555}.field .field__error{font-size:.75rem;color:#e05252}.card{background:#1a1a1a;border:1px solid #333333;border-radius:10px;padding:1.5rem}.card--interactive{cursor:pointer;transition:border-color .1s ease,background .1s ease}.card--interactive:hover{border-color:#c8f060;background:#242424}.divider{border:none;border-top:1px solid #333333;margin-block:1.5rem}.empty-state{text-align:center;padding:4rem 2rem;color:#555}.empty-state p{margin-top:.5rem;font-size:.875rem}.section-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#555;margin-bottom:1rem}.genre-tag{font-size:.75rem;padding:2px .5rem;background:#242424;border-radius:9999px;color:#888;border:1px solid #333333}.event-image-frame{aspect-ratio:var(--event-image-ratio, 3/4);overflow:hidden;border-radius:10px;background:#1a1a1a}.event-image-frame img{display:block;width:100%;height:100%;object-fit:contain;object-position:center}.event-image-frame--detail{width:100%;max-width:520px;align-self:flex-start}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#0e0e0e}::-webkit-scrollbar-thumb{background:#333;border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:#555}.poster-form{display:flex;flex-direction:column;gap:1.25rem}.poster-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:640px){.poster-form .form-row{grid-template-columns:1fr}}.poster-form .venue-field,.poster-form .org-field,.poster-form .container-field,.poster-form .lineup-field{position:relative}.poster-form .autocomplete-list{position:absolute;top:100%;left:0;right:0;background:#242424;border:1px solid #333333;border-top:none;border-radius:0 0 6px 6px;z-index:10;max-height:200px;overflow-y:auto}.poster-form .autocomplete-list li{border-bottom:1px solid #333333}.poster-form .autocomplete-list li:last-child{border-bottom:none}.poster-form .autocomplete-list button{width:100%;text-align:left;padding:.5rem .75rem;font-size:.875rem;color:#e8e8e8;transition:background .1s ease}.poster-form .autocomplete-list button:hover{background:#1a1a1a;color:#c8f060}.poster-form .lineup-fieldset{border:1px solid #333333;border-radius:6px;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.poster-form .lineup-fieldset legend{padding-inline:.5rem;font-size:.875rem;font-weight:500;color:#888}.poster-form .lineup-row{display:flex;align-items:flex-start;gap:.5rem}.poster-form .lineup-num{font-size:.75rem;color:#555;padding-top:.75rem;min-width:1.5ch}.poster-form .lineup-field{flex:1}.poster-form .lineup-input-with-link{display:flex;align-items:center;gap:.5rem}.poster-form .lineup-input-with-link input{flex:1;min-width:0}.poster-form .artist-suggest{margin-top:.25rem;border:1px solid #333333;border-radius:6px;overflow:hidden;max-height:220px;overflow-y:auto}.poster-form .artist-suggest li{border-bottom:1px solid #333333}.poster-form .artist-suggest li:last-child{border-bottom:none}.poster-form .artist-suggest button{width:100%;text-align:left;padding:.5rem .75rem;font-size:.875rem;color:#e8e8e8;transition:background .1s ease}.poster-form .artist-suggest button:hover{background:#1a1a1a;color:#c8f060}.poster-form .artist-chips{margin-top:.5rem;display:flex;flex-wrap:wrap;gap:.5rem}.poster-form .artist-chip{border:1px solid #333333;background:#242424;border-radius:9999px;padding:2px .5rem;font-size:.75rem;color:#888;transition:border-color .1s ease,color .1s ease}.poster-form .artist-chip:hover{border-color:#e0525266;color:#e05252}.poster-form .lineup-input--duplicate{border-color:#e05252}.poster-form .lineup-duplicate-error{margin-top:.25rem;font-size:.75rem;color:#e05252}.poster-form .lineup-action{display:inline-flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;border-radius:3px;color:#555;text-decoration:none;transition:color .1s ease,background .1s ease;border:1px solid transparent;font-size:.75rem;font-weight:600}.poster-form .lineup-action--open{color:#c8f060;border-color:#c8f06059;background:#c8f0601a}.poster-form .lineup-action--open:hover{color:#c8f060;background:#c8f0602e}.poster-form .lineup-action--create{color:#52c07a;border-color:#52c07a59;background:#52c07a1f}.poster-form .lineup-action--create:hover{color:#52c07a;background:#52c07a33}.poster-form .lineup-action--hidden{color:#e0a030;border-color:#e0a03059;background:#e0a0301a;cursor:default}.poster-form .lineup-remove{font-size:.75rem;color:#555;padding:.5rem;border-radius:3px;margin-top:.25rem;transition:color .1s ease}.poster-form .lineup-remove:hover{color:#e05252}.poster-form .container-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .75rem;border:1px solid #333333;border-radius:9999px;background:#242424;font-size:.875rem;color:#e8e8e8}.poster-form .container-chip__remove{font-size:.75rem;color:#555;line-height:1;padding:0 .25rem;border-radius:3px;transition:color .1s ease}.poster-form .container-chip__remove:hover{color:#e05252}.poster-form .add-artist-btn{align-self:flex-start;font-size:.75rem;padding:.25rem .75rem}.poster-form .genres-fieldset{border:1px solid #333333;border-radius:6px;padding:1rem}.poster-form .genres-fieldset legend{padding-inline:.5rem;font-size:.875rem;font-weight:500;color:#888}.poster-form .genre-grid{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.poster-form .genre-pill{display:inline-flex;align-items:center;gap:.5rem;padding:.25rem .75rem;border:1px solid #333333;border-radius:9999px;font-size:.75rem;cursor:pointer;transition:border-color .1s ease,background .1s ease,color .1s ease;color:#888}.poster-form .genre-pill input[type=checkbox]{display:none}.poster-form .genre-pill:hover{border-color:#c8f060;color:#e8e8e8}.poster-form .genre-pill--active{border-color:#c8f060;background:#c8f0601f;color:#c8f060}.poster-form .crosspost-toggle{display:flex;align-items:center;gap:.75rem;cursor:pointer;font-size:.875rem;color:#888}.poster-form .crosspost-toggle input[type=checkbox]{width:16px;height:16px;accent-color:#c8f060}.poster-form .touring-checkbox{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.875rem;color:#e8e8e8}.poster-form .touring-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:#c8f060;margin:0}.poster-form .touring-checkbox__label{font-weight:500;line-height:1.2}.poster-form .touring-checkbox__warning{margin-top:.25rem;margin-left:24px;font-size:.75rem;color:#e0a030;line-height:1.5}.poster-form .archive-notice{font-size:.875rem;color:#888;padding:.75rem 1rem;background:#55555514;border:1px solid rgba(85,85,85,.2);border-radius:6px}.poster-form .archive-notice a{color:#888;text-decoration:underline}.poster-form .lexicon-notice{font-size:.875rem;color:#888;padding:.75rem 1rem;background:#c8f06014;border:1px solid rgba(200,240,96,.2);border-radius:6px;margin:0}.poster-form .lexicon-notice code{font-size:.92em}.poster-form .form-error{font-size:.875rem;color:#e05252;padding:.75rem 1rem;background:#e0525214;border:1px solid rgba(224,82,82,.2);border-radius:6px}.poster-form .cancel-zone,.poster-form .delete-zone{border-top:1px solid #333333;padding-top:1rem}.poster-form .cancel-confirm{display:flex;flex-direction:column;gap:.75rem}.poster-form .cancel-confirm p{margin:0}.poster-form .cancel-confirm__actions{display:flex;gap:.5rem;flex-wrap:wrap}.poster-form .poster-preview{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}.poster-form .poster-preview img{max-height:240px;width:auto;max-width:unset;border-radius:6px}.poster-form .poster-preview--inherited{opacity:.6}.poster-form .submit-btn{align-self:flex-start}.poster-form .venue-map-field{border:1px solid #333333;border-radius:6px;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.poster-form .venue-map-field__header p{margin:0}.poster-form .venue-map-field__actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.poster-form .venue-map-field__coords{margin-left:auto}.poster-form .venue-map-field__map{width:100%;height:300px;border:1px solid #333333;border-radius:6px;overflow:hidden}@media(max-width:640px){.poster-form .venue-map-field__coords{margin-left:0;width:100%}}.pending-notice{background:color-mix(in srgb,#e0a030 8%,transparent);border:1px solid color-mix(in srgb,#e0a030 30%,transparent);border-radius:6px;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.25rem}.pending-notice__heading{font-size:.875rem;font-weight:600;color:#e0a030;margin:0}.pending-notice__body{font-size:.875rem;color:#888;margin:0;line-height:1.5}.composer{display:flex;flex-direction:column;gap:.75rem;padding:1rem;border:1px solid #333333;border-radius:6px;background:#242424}.composer__heading{font-size:.875rem;font-weight:500;color:#888;margin:0}.composer__options{display:flex;flex-wrap:wrap;gap:1rem}.composer__option{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.875rem;color:#888}.composer__option input[type=checkbox]{width:16px;height:16px;accent-color:#c8f060}.composer__text-field{position:relative}.composer__textarea{width:100%;resize:vertical;min-height:4rem}.composer__char-count{display:block;text-align:right;font-size:.75rem;color:#555;margin-top:.25rem}.composer__char-count--warn{color:#e0a030}.composer__char-count--over{color:#e05252;font-weight:500}.composer__submit{align-self:flex-start}.composer--done{border-color:#c8f0604d;background:#c8f0600f}.success-state{display:flex;flex-direction:column;gap:1rem}.success-state h2{font-size:1.5rem;color:#c8f060}.queued-state{display:flex;flex-direction:column;gap:1rem}.queued-state__icon{font-size:2rem;line-height:1}.queued-state h2{font-size:1.5rem;color:#e0a030}
