:root{--color-primary:#000;--color-secondary:#fff}body{color:#111827;background-color:#f9fafb;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.app-container{flex-direction:column;min-height:100vh;display:flex}.tenant-header{background-color:var(--color-primary);color:var(--color-secondary);align-items:center;padding:1.5rem 2rem;display:flex;box-shadow:0 4px 6px -1px #0000001a}.tenant-header h1{margin:0;font-size:1.5rem;font-weight:700}.tenant-logo{height:3rem}.main-content{box-sizing:border-box;width:100%;max-width:1200px;margin:0 auto;padding:2rem}.card{border-top:4px solid var(--color-primary);background:#fff;border-radius:8px;padding:2rem;box-shadow:0 1px 3px #0000001a}.card h2{margin-top:0}.subtitle{opacity:.8;margin-bottom:2rem}.swatch-container{gap:1rem;display:flex}.color-swatch{text-align:center;border-radius:4px;min-width:100px;padding:1rem 2rem;font-weight:700}.primary-swatch{background-color:var(--color-primary);color:var(--color-secondary)}.secondary-swatch{background-color:var(--color-secondary);color:var(--color-primary);border:1px solid var(--color-primary)}.loading-screen,.error-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100vh;padding:2rem;display:flex}.error-text{color:#ef4444;margin-top:1rem}.timeline-container{max-width:800px;margin:0 auto;padding:20px}.timeline-loading,.timeline-error,.empty-state{text-align:center;color:#666;background:#fff;border-radius:8px;padding:40px;font-size:1.2rem;box-shadow:0 4px 6px #0000000d}.timeline-track{border-left:3px solid var(--color-primary);padding-left:30px;position:relative}.timeline-day{margin-bottom:40px;position:relative}.timeline-day:before{content:"";background:var(--color-secondary);border:4px solid var(--color-primary);border-radius:50%;width:16px;height:16px;position:absolute;top:5px;left:-39px}.timeline-date-header{color:var(--color-primary);margin:0 0 20px;font-size:1.5rem}.timeline-events{flex-direction:column;gap:15px;display:flex}.event-card{background:#fff;border:1px solid #eaeaea;border-radius:12px;align-items:center;padding:20px;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 4px 15px #0000000d}.event-card:hover{border-color:var(--color-primary);transform:translateY(-2px);box-shadow:0 8px 25px #0000001a}.event-time{color:var(--color-primary);flex:0 0 100px;font-size:1.2rem;font-weight:700}.event-details{border-left:1px solid #eaeaea;flex:1;padding:0 20px}.artist-name{cursor:pointer;margin:0 0 5px;font-size:1.3rem;transition:color .2s}.artist-name:hover{color:var(--color-primary);text-decoration:underline}.venue-name{color:#666;cursor:pointer;margin:0;font-size:.95rem}.venue-name:hover{color:#333;text-decoration:underline}.event-actions{flex-direction:column;align-items:flex-end;gap:10px;display:flex}.ticket-price{color:#333;background:#f0f0f0;border-radius:20px;padding:4px 12px;font-size:.9rem;font-weight:600}.btn-tickets{background:var(--color-primary);color:var(--color-secondary);border-radius:6px;padding:8px 20px;font-weight:600;text-decoration:none;transition:opacity .2s}.btn-tickets:hover{opacity:.9}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{border-top:8px solid var(--color-primary);background:#fff;border-radius:16px;width:90%;max-width:500px;padding:40px;position:relative;box-shadow:0 20px 40px #0003}.modal-close{cursor:pointer;color:#666;background:0 0;border:none;font-size:24px;position:absolute;top:15px;right:20px}.modal-close:hover{color:#000}.artist-modal h2,.venue-modal h2{color:var(--color-primary);margin-top:0}.bio{color:#444;line-height:1.6}.bio-empty{color:#888;font-style:italic}.address{color:#555;background:#f9f9f9;border:1px solid #eee;border-radius:8px;padding:15px;font-size:1.1rem}
