:root{--color-bg: #f3eee6;--color-bg-elevated: #faf7f2;--color-ink: #1c1915;--color-ink-muted: #5c554c;--color-accent: #b54a2e;--color-accent-soft: #e8d5c8;--color-border: #d9d0c4;--font-display: "Fraunces", Georgia, serif;--font-body: "DM Sans", system-ui, sans-serif;--space: 1rem;--max-width: 68rem}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-body);color:var(--color-ink);background:radial-gradient(ellipse 80% 50% at 10% -10%,#e8d5c8 0%,transparent 55%),radial-gradient(ellipse 60% 40% at 100% 0%,#dfe6e0 0%,transparent 50%),var(--color-bg);line-height:1.5}a{color:inherit;text-decoration:none}a:hover{color:var(--color-accent)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.site-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space);padding:1.25rem clamp(1rem,4vw,2.5rem);border-bottom:1px solid var(--color-border);background:color-mix(in srgb,var(--color-bg-elevated) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand{font-family:var(--font-display);font-size:1.65rem;font-weight:600;letter-spacing:.04em}.site-nav{display:flex;gap:1.25rem;font-size:.95rem;font-weight:500}.site-main{flex:1;width:min(100%,var(--max-width));margin:0 auto;padding:clamp(2rem,6vw,4rem) clamp(1rem,4vw,2.5rem)}.site-footer{padding:1.25rem clamp(1rem,4vw,2.5rem);border-top:1px solid var(--color-border);color:var(--color-ink-muted);font-size:.875rem}.page h1{font-family:var(--font-display);font-size:clamp(2rem,5vw,3rem);font-weight:600;line-height:1.15;margin:.35rem 0 .75rem}.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:600;color:var(--color-accent)}.lede{max-width:36rem;color:var(--color-ink-muted);margin:0 0 1.5rem}.text-link{color:var(--color-accent);font-weight:600}.login-form{display:grid;gap:1rem;max-width:22rem}.login-form label{display:grid;gap:.35rem;font-size:.9rem;font-weight:500}.login-form input,.login-form textarea,.login-form select,.login-form button{font:inherit;padding:.65rem .75rem;border-radius:.35rem;border:1px solid var(--color-border);background:var(--color-bg-elevated)}.login-form textarea{resize:vertical}.section-title{font-family:var(--font-display);font-size:1.35rem;margin:2rem 0 .75rem}.org-list{list-style:none;padding:0;margin:0 0 1.5rem;display:grid;gap:.65rem}.org-list a{display:flex;flex-direction:column;gap:.15rem;padding:.85rem 0;border-bottom:1px solid var(--color-border)}.org-list span{color:var(--color-ink-muted);font-size:.9rem}.dev-actions{margin-top:1.25rem}.buy-row{display:flex;align-items:end;gap:.75rem;margin-top:.65rem}.buy-row input{width:4.5rem;font:inherit;padding:.45rem .5rem;border-radius:.35rem;border:1px solid var(--color-border);background:var(--color-bg-elevated)}.buy-row button{font:inherit;padding:.55rem .85rem;border-radius:.35rem;border:1px solid var(--color-ink);background:var(--color-ink);color:var(--color-bg-elevated);cursor:pointer}.buy-row button:disabled{opacity:.55;cursor:not-allowed}.ticket-grid{list-style:none;padding:0;margin:0;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr))}.ticket-card{display:grid;gap:.65rem;justify-items:center;text-align:center;padding:1rem .75rem;border-bottom:1px solid var(--color-border)}.qr-payload{font-size:.65rem;word-break:break-all;max-width:100%}.login-form button,.dev-actions>button{background:var(--color-ink);color:var(--color-bg-elevated);border-color:var(--color-ink);cursor:pointer;font:inherit;padding:.65rem .9rem;border-radius:.35rem;border:1px solid var(--color-ink)}.login-form button:disabled,.dev-actions>button:disabled{cursor:not-allowed;opacity:.55}.secondary-btn{font:inherit;padding:.65rem .9rem;border-radius:.35rem;border:1px solid var(--color-border);background:var(--color-bg-elevated);cursor:pointer}.form-error{margin:0;color:#8b1e1e;font-size:.9rem}.form-info{margin:0 0 1rem;color:var(--color-ink-muted);font-size:.95rem}.auth-links{margin-top:1.25rem;font-size:.95rem}.auth-links a{color:var(--color-accent);font-weight:600}code{font-size:.9em;background:var(--color-accent-soft);padding:.1em .35em;border-radius:.25rem}.checkin-page .checkin-video{width:min(100%,28rem);max-height:18rem;object-fit:cover;background:#111;margin:.75rem 0 1.25rem;border-radius:.35rem}.checkin-summary{margin:0 0 1.25rem;padding:.85rem 0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.checkin-summary ul{margin:.35rem 0 .75rem;padding-left:1.1rem;color:var(--color-ink-muted)}.checkin-banner{display:grid;gap:.25rem;margin:0 0 1rem;padding:.85rem 1rem;border-radius:.35rem;font-size:.95rem}.checkin-ok{background:#d8ebe0;color:#154734}.checkin-warn{background:#f3e6c8;color:#6a4b12}.checkin-err{background:#f0d6d6;color:#6e1d1d}.sales-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:1rem 1.25rem;margin:1rem 0 1.5rem}.sales-grid>div{display:grid;gap:.2rem}.sales-label{font-size:.8rem;color:var(--color-ink-muted)}.seatmap-canvas-wrap{margin:1rem 0 1.25rem;overflow:auto}.seatmap-stage{border:1px solid var(--color-border);border-radius:.35rem;max-width:100%;background:#f3eee6}.seatmap-zoom-bar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.5rem}.seatmap-legend{display:flex;flex-wrap:wrap;gap:1rem;list-style:none;padding:0;margin:.65rem 0 0;font-size:.85rem;color:var(--color-ink-muted)}.seatmap-legend .swatch{display:inline-block;width:.85rem;height:.85rem;border-radius:.2rem;margin-right:.35rem;vertical-align:middle}.seatmap-legend .swatch.free{background:#1c1915}.seatmap-legend .swatch.held{background:#c4a35a}.seatmap-legend .swatch.sold{background:#9a9a9a}.seatmap-legend .swatch.sel{background:#2f6f4e}.seatmap-add{margin-bottom:1rem}.seatmap-import{display:inline-block;cursor:pointer}.buy-row{display:flex;gap:.75rem;align-items:end;margin-top:.5rem}.buy-row label{display:grid;gap:.25rem;font-size:.85rem}.buy-row input{width:4.5rem}.slot-day{margin-bottom:1.25rem}.slot-grid{display:flex;flex-wrap:wrap;gap:.5rem}.slot-btn{display:grid;gap:.15rem;min-width:5.5rem;font:inherit;padding:.5rem .65rem;border-radius:.35rem;border:1px solid var(--color-border);background:var(--color-bg-elevated);cursor:pointer;text-align:left}.slot-btn span{font-size:.75rem;color:var(--color-ink-muted)}.slot-btn:disabled{opacity:.45;cursor:not-allowed}.slot-sel{background:var(--color-ink);color:var(--color-bg-elevated);border-color:var(--color-ink)}.slot-sel span{color:color-mix(in srgb,var(--color-bg-elevated) 75%,transparent)}
