:root{--bg: #0b0a0d;--bg-elevated: #17151a;--bg-elevated-2: #201d24;--border: rgba(243, 239, 231, .14);--border-strong: rgba(243, 239, 231, .28);--text: #f3efe7;--text-muted: #cdc7bc;--text-faint: #948d83;--accent: #ff6a3d;--accent-hover: #ff7d54;--accent-soft: rgba(255, 106, 61, .2);--accent-ink: #1a0d06;--accent-2: #7c5cff;--accent-2-soft: rgba(124, 92, 255, .2);--danger: #ff6b6b;--danger-bg: rgba(255, 107, 107, .12);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 10px;--shadow-card: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .24);font-family:Work Sans,ui-sans-serif,system-ui,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}h1,h2,h3{font-family:Big Shoulders Display,ui-sans-serif,system-ui,sans-serif;text-transform:uppercase;letter-spacing:.01em;margin:0}.mono{font-family:IBM Plex Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums}body{margin:0;min-height:100vh;background:radial-gradient(600px 420px at 82% -8%,var(--accent-soft),transparent 70%),radial-gradient(500px 380px at 6% 18%,var(--accent-2-soft),transparent 70%),var(--bg)}.page{max-width:760px;margin:0 auto;padding:2.5rem 1.5rem 4rem}.app-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:2.5rem}.brand{display:flex;align-items:center;gap:.9rem}.brand-logo{width:48px;height:48px;border-radius:var(--radius-md);flex-shrink:0;object-fit:contain}.brand h1{font-size:1.5rem;font-weight:800}.brand .tagline{margin:.3rem 0 0;color:var(--text-muted);font-size:.9rem;max-width:34ch;text-transform:none}.eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:1rem}.eyebrow:before{content:"";width:7px;height:7px;background:var(--accent);border-radius:50%;box-shadow:0 0 0 4px var(--accent-soft)}button,select{font-family:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;cursor:pointer;font-size:.9rem;font-weight:600;padding:.65rem 1.15rem;border-radius:var(--radius-sm);border:1px solid transparent;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .1s ease,opacity .15s ease;white-space:nowrap}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.5;cursor:default;transform:none}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-lg{padding:.85rem 1.75rem;font-size:1rem}.btn-ghost{background:transparent;border-color:var(--border-strong);color:var(--text)}.btn-ghost:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn-sm{padding:.4rem .8rem;font-size:.8rem}.link-reset{text-decoration:none}.bars{display:flex;flex-direction:column;gap:.65rem}.bar-row{display:grid;grid-template-columns:8rem 1fr 2.75rem;align-items:center;gap:.7rem}.bar-row .name{font-size:.82rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{height:8px;background:var(--bg-elevated-2);border-radius:4px;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,var(--accent-2),var(--accent));border-radius:4px}.bar-row .pct{font-size:.75rem;color:var(--text-muted);text-align:right}@media (max-width: 480px){.bar-row{grid-template-columns:5rem 1fr 2.5rem}}.panel{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.25rem}.panel-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.panel-header h2{font-size:1.15rem}.hero-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:3rem 2rem;text-align:center;box-shadow:var(--shadow-card)}.hero-card p{color:var(--text-muted);margin:0 0 1.5rem;font-size:.95rem}.text-input{width:100%;background:var(--bg-elevated-2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.6rem .8rem;font-size:.9rem;font-family:IBM Plex Mono,ui-monospace,monospace}.text-input::placeholder{color:var(--text-faint);font-family:Work Sans,ui-sans-serif,system-ui,sans-serif}.text-input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:100}.modal{background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:1.75rem;max-width:360px;width:100%;box-shadow:var(--shadow-card)}.modal h2{margin:0 0 .6rem;font-size:1.3rem}.modal p{margin:0 0 1.25rem;line-height:1.5}.modal-divider{display:flex;align-items:center;gap:.75rem;margin:1.1rem 0;color:var(--text-faint);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}.modal-divider:before,.modal-divider:after{content:"";flex:1;height:1px;background:var(--border)}.modal-alert{margin-top:.75rem;margin-bottom:0}.modal-close{width:100%;margin-top:.75rem}.toolbar{display:flex;gap:.5rem;margin-bottom:1rem}.controls-row{display:flex;align-items:center;gap:.9rem;margin-top:1.25rem;padding-top:1.25rem;border-top:1px dashed var(--border-strong);flex-wrap:wrap}.radius-field{display:flex;align-items:center;gap:.55rem}.radius-field label{color:var(--text-muted);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:var(--bg-elevated-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23cdc7bc'/%3E%3C/svg%3E") no-repeat right .75rem center;color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.5rem 2rem .5rem .8rem;font-size:.85rem;font-family:IBM Plex Mono,ui-monospace,monospace;cursor:pointer}select:hover{border-color:var(--border-strong)}select:focus-visible,.btn:focus-visible,.artist-chip:focus-within{outline:2px solid var(--accent);outline-offset:2px}.chip-list{display:flex;flex-wrap:wrap;gap:.5rem;max-height:14rem;overflow-y:auto;padding-right:.25rem}.chip-list::-webkit-scrollbar{width:8px}.chip-list::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}.artist-chip{position:relative;display:inline-flex;align-items:center;padding:.45rem .85rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated-2);color:var(--text-muted);font-size:.85rem;font-weight:500;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease,border-color .15s ease,color .15s ease}.artist-chip:hover{border-color:var(--accent);color:var(--text)}.artist-chip.selected{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.artist-chip input{position:absolute;opacity:0;pointer-events:none}.chip-remove{background:none;border:none;color:inherit;cursor:pointer;margin-left:.4rem;padding:0;font-size:1rem;line-height:1;opacity:.7}.chip-remove:hover{opacity:1}.manual-artist-form{display:flex;gap:.6rem}.alert{background:var(--danger-bg);border:1px solid rgba(255,107,107,.35);color:var(--danger);border-radius:var(--radius-sm);padding:.7rem 1rem;font-size:.9rem;margin-bottom:1.25rem}.muted{color:var(--text-muted);font-size:.9rem}.empty-state{text-align:center;color:var(--text-muted);font-size:.9rem;padding:2.5rem 1rem;border:1px dashed var(--border-strong);border-radius:var(--radius-lg)}.event-list{display:flex;flex-direction:column;gap:.75rem}.event-card{position:relative;display:flex;align-items:stretch;border-radius:var(--radius-md);background:var(--bg-elevated);border:1px solid var(--border);transition:border-color .15s ease;overflow:hidden}.event-card:hover{border-color:var(--border-strong)}.event-thumb-col{display:flex;align-items:center;padding:.9rem;flex-shrink:0}.event-card img{width:72px;height:72px;object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0;background:var(--bg-elevated-2)}.event-art-placeholder{width:72px;height:72px;border-radius:var(--radius-sm);flex-shrink:0;background:var(--bg-elevated-2);display:flex;align-items:center;justify-content:center;font-size:1.4rem}.event-perf{position:relative;flex-shrink:0;border-left:2px dashed var(--border-strong);margin:0}.event-perf:before,.event-perf:after{content:"";position:absolute;left:50%;width:16px;height:16px;background:var(--bg);border-radius:50%;transform:translate(-50%)}.event-perf:before{top:-8px}.event-perf:after{bottom:-8px}.event-card-body{min-width:0;flex:1;padding:.9rem 1rem;display:flex;flex-direction:column;justify-content:center;gap:.3rem}.event-name-row{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem}.event-name{font-weight:700;font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.match-badge{flex-shrink:0;color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:.15rem .45rem;font-size:.68rem;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.event-meta{display:flex;flex-wrap:wrap;gap:.3rem .7rem;color:var(--text-muted);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.75rem}.event-card-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.4rem}.event-card a{color:var(--accent);font-size:.85rem;font-weight:600;text-decoration:none}.event-card a:hover{text-decoration:underline}.event-barcode{height:20px;width:56px;flex-shrink:0;background:repeating-linear-gradient(90deg,var(--text-faint) 0 2px,transparent 2px 4px,var(--text-faint) 4px 5px,transparent 5px 8px);opacity:.6}@media (max-width: 480px){.page{padding:1.75rem 1rem 3rem}.app-header{flex-direction:column}.event-card{flex-wrap:wrap}}
