/* App-wide controls and ivory/red surfaces, isolated from website decoration. */
@layer app-finish {
html.gl-app{--gl-red:#b52b25;--gl-red-light:#ffaaa4;--gl-ivory:#f3ece0;--gl-dark:#141211;--gl-paper-muted:#5e5349;--gl-paper-line:#b8aca0;--gl-active:var(--gl-red-light);--gl-focus:var(--gl-red-light)}
html.gl-app body{background:var(--gl-noise),var(--gl-dark)!important}
html.gl-app :is(.gl-mark,.gl-brand b i){color:var(--gl-red-light)!important}
html.gl-app .gl-mark{display:none!important}
html.gl-app .gl-nav button[aria-current="page"]{color:var(--gl-red-light)!important}
html.gl-app :is(.gl-top,.gl-nav){background:var(--gl-dark)!important}
html.gl-app .gl-ticket{background:var(--gl-noise),var(--gl-ivory)!important;border:0!important;border-top:3px solid var(--gl-red)!important;color:var(--gl-dark)!important}
html.gl-app .gl-ticket :is(.gl-ttitle,.gl-count){color:var(--gl-dark)!important;-webkit-text-fill-color:currentColor!important;text-shadow:none!important}
html.gl-app .gl-ticket :is(.gl-tmeta,.gl-count small){color:var(--gl-paper-muted)!important}
html.gl-app .gl-tag{color:var(--gl-red)!important}
html.gl-app .gl-ticket .gl-tstub{background:transparent!important;border-top:1px solid var(--gl-paper-line)!important}
html.gl-app .gl-ticket .gl-tbtn{background:var(--gl-dark)!important;color:var(--gl-ivory)!important;border:0!important}
html.gl-app :is(.gl-act,.gl-nav .gl-plus) svg,html.gl-app .gl-act.hot svg{color:var(--gl-red-light)!important}
html.gl-app .gl-nav .gl-plus i{background:var(--gl-red)!important;color:var(--gl-ivory)!important;border:0!important}
html.gl-app .gl-empty{background:var(--gl-noise),var(--gl-ivory)!important;color:var(--gl-paper-muted)!important;border:0!important;font:400 15px/1.6 Archivo,sans-serif!important;text-align:left!important}
html.gl-app .gl-empty strong{color:var(--gl-dark)!important}
html.gl-app :is(#app,#modalCard) :is(button,.button,.btn,.fbtn,.mb,.cb-btn,label.button){background:var(--gl-char2)!important;background-image:none!important;border:1px solid var(--gl-line)!important;border-image:none!important;box-shadow:none!important;filter:none!important;mask:none!important;-webkit-mask:none!important;border-radius:0!important;transform:none!important;font:600 14px/1.4 Archivo,sans-serif!important;letter-spacing:0!important;text-transform:none!important;color:var(--gl-ivory)!important;-webkit-text-fill-color:currentColor!important;min-height:44px!important;min-width:0!important;width:auto!important;max-width:100%!important;padding:10px 14px!important;white-space:normal!important}
html.gl-app :is(#app,#modalCard) :is(button,.button,.btn,.fbtn,.mb,.cb-btn)::before,html.gl-app :is(#app,#modalCard) :is(button,.button,.btn,.fbtn,.mb,.cb-btn)::after{display:none!important}
html.gl-app :is(#app,#modalCard) :is(button,.button,.btn,.fbtn,.mb,.cb-btn) *{color:inherit!important;-webkit-text-fill-color:currentColor!important;background:none!important;border:0!important;box-shadow:none!important;letter-spacing:0!important;text-shadow:none!important;-webkit-text-stroke:0!important}
html.gl-app #app :is(.gl-act,.gl-link){background:none!important;border:0!important;padding:0!important}
html.gl-app #app .gl-act{min-height:88px!important}
html.gl-app #app .gl-act span:first-child{background:var(--gl-char2)!important;border:1px solid var(--gl-line)!important;color:var(--gl-red-light)!important}
html.gl-app #app .gl-act span:last-child{color:var(--gl-ivory)!important;font-size:11px!important;white-space:nowrap!important}
html.gl-app #app .gl-link{color:var(--gl-red-light)!important}
html.gl-app #app .gl-ticket .gl-tbtn{background:var(--gl-dark)!important;color:var(--gl-ivory)!important}
html.gl-app #app .gl-row{width:100%!important;text-align:left!important;background:var(--gl-char)!important}
html.gl-app #app .gl-row *{color:var(--gl-ivory)!important}
html.gl-app #app .gl-row .gl-nofee{color:var(--gl-red-light)!important}
html.gl-app #app :is(#tab-add,#tab-profile) .panel{background:var(--gl-ivory)!important;background-image:none!important;border:0!important;border-top:2px solid var(--gl-red)!important;box-shadow:none!important;padding:20px!important;color:var(--gl-dark)!important}
html.gl-app #app :is(#tab-add,#tab-profile) .panel :is(h2,h3,h4,p,label,.who,.small,.field,.full,.msg){color:var(--gl-dark)!important;-webkit-text-fill-color:currentColor!important;text-shadow:none!important}
html.gl-app #app :is(#tab-add,#tab-profile) :is(input:not([type=checkbox]):not([type=radio]),select,textarea){background:var(--gl-ivory)!important;color:var(--gl-dark)!important;-webkit-text-fill-color:currentColor!important;border:1px solid var(--gl-paper-line)!important}
html.gl-app #app :is(#tab-add,#tab-profile) :is(input,textarea)::placeholder{color:var(--gl-paper-muted)!important;-webkit-text-fill-color:currentColor!important;opacity:1!important}
html.gl-app #app :is(#tab-add,#tab-profile) :is(.drop,.ics-box){background:transparent!important;color:var(--gl-dark)!important;border:1px solid var(--gl-paper-line)!important;box-shadow:none!important}
html.gl-app #app :is(#tab-add,#tab-profile) .drop *{color:var(--gl-dark)!important;-webkit-text-fill-color:currentColor!important}
html.gl-app #app #kind button[aria-pressed=true],html.gl-app #app #filters button[aria-pressed=true]{background:var(--gl-red)!important;color:var(--gl-ivory)!important}
html.gl-app #app #kind .kind-img{height:auto!important}
html.gl-app #app .form{grid-template-columns:minmax(0,1fr)!important}
html.gl-app #modalCard{--gd-bg:var(--gl-ivory);--gd-surface:#e4dace;--gd-text:var(--gl-dark);--gd-muted:var(--gl-paper-muted);--gd-accent:var(--gl-red);--gd-line:var(--gl-paper-line);--gd-danger:var(--gl-red)}
html.gl-app #modalCard :is(button.bandlink,button.close){background:transparent!important;border:0!important;color:var(--gl-red)!important}
html.gl-app #modalCard button.close{width:44px!important;padding:0!important;font-size:28px!important}
html.gl-app #modalCard button.bandlink{font:inherit!important;padding:4px 0!important}
html.gl-app #app :is(.tkt,.cb-btn) img{max-width:100%!important}
html.gl-app #gs-head{background:var(--gl-ivory)!important}
html.gl-app :focus-visible{outline:2px solid var(--gl-red-light)!important;outline-offset:3px!important}

html.gl-app #app :is(#tab-add,#tab-profile) .panel{mask:none!important;-webkit-mask:none!important;clip-path:none!important;outline:none!important;border-image:none!important}
html.gl-app #app :is(#tab-add,#tab-profile) .panel::before,html.gl-app #app :is(#tab-add,#tab-profile) .panel::after{display:none!important}
html.gl-app #app :is(h2,h3,.drop strong){font-family:Archivo,sans-serif!important;text-transform:none!important;letter-spacing:0!important}
html.gl-app #app .drop{padding:22px!important;text-transform:none!important;letter-spacing:0!important;font:400 15px/1.6 Archivo,sans-serif!important}
html.gl-app #app .drop::before,html.gl-app #app .drop::after{display:none!important}
html.gl-app #app .kpi .v{color:var(--gl-ivory)!important;font-family:Archivo,sans-serif!important;font-weight:800!important}
html.gl-app .gl-back{position:sticky!important;top:env(safe-area-inset-top)!important;z-index:90!important;display:block!important;background:var(--gl-dark)!important;color:var(--gl-ivory)!important;padding:16px!important;border-bottom:2px solid var(--gl-red)!important;font:700 16px/1.4 Archivo,sans-serif!important;text-decoration:none!important}
html.gl-app body>header.tm-header,html.gl-app body>footer,html.gl-app .breadcrumb,html.gl-app .tm-staffnav{display:none!important}
html.gl-app:not(:has(#app)) :is(button,.button,.btn,.cb-btn,.fbtn){background:var(--gl-char2)!important;color:var(--gl-ivory)!important;-webkit-text-fill-color:currentColor!important;border:1px solid var(--gl-line)!important;background-image:none!important;box-shadow:none!important;mask:none!important;-webkit-mask:none!important;filter:none!important;font:600 14px/1.4 Archivo,sans-serif!important;min-height:44px!important;padding:10px 14px!important;width:auto!important;max-width:100%!important}
html.gl-app:not(:has(#app)) :is(button,.button,.btn,.cb-btn,.fbtn)::before,html.gl-app:not(:has(#app)) :is(button,.button,.btn,.cb-btn,.fbtn)::after{display:none!important}

html.gl-app:not(:has(#app)) body{display:block!important;padding:0 0 32px!important}
html.gl-app:not(:has(#app)) .brandline{display:none!important}
html.gl-app:not(:has(#app)) :is(.panel,.card,.ticket,.facts,.note.error,.loading){background:var(--gl-ivory)!important;color:var(--gl-dark)!important;border:0!important;border-image:none!important;outline:none!important;box-shadow:none!important;mask:none!important;-webkit-mask:none!important;clip-path:none!important}
html.gl-app:not(:has(#app)) :is(.panel,.card,.ticket,.facts,.note.error,.loading)::before,html.gl-app:not(:has(#app)) :is(.panel,.card,.ticket,.facts,.note.error,.loading)::after{display:none!important}
html.gl-app:not(:has(#app)) :is(.panel,.card,.ticket,.facts,.loading) *{color:var(--gl-dark)!important;-webkit-text-fill-color:currentColor!important;text-shadow:none!important;letter-spacing:0!important}
html.gl-app:not(:has(#app)) :is(.panel,.card,.ticket,.facts) :is(button,.button,.btn,.cb-btn,.fbtn,.profile-btn){background:var(--gl-dark)!important;color:var(--gl-ivory)!important;-webkit-text-fill-color:currentColor!important;opacity:1!important}
html.gl-app:not(:has(#app)) :is(button,.button,.btn,.cb-btn,.fbtn,.profile-btn) *{color:inherit!important;-webkit-text-fill-color:currentColor!important;background:none!important;border:0!important;box-shadow:none!important;-webkit-text-stroke:0!important}
html.gl-app:not(:has(#app)) :is(.ticket-summary,.badge,.fact){background:transparent!important;border:1px solid var(--gl-paper-line)!important}
html.gl-app:not(:has(#app)) :is(h1,h2,h3,h4,.fallback){font-family:Archivo,sans-serif!important;text-transform:none!important;letter-spacing:0!important;text-shadow:none!important}
html.gl-app:not(:has(#app)) .nofee{color:var(--gl-red)!important}
html.gl-app:not(:has(#app)) .price{color:var(--gl-dark)!important}
html.gl-app:not(:has(#app)) .card{padding:24px!important}
html.gl-app:not(:has(#app)) .page{margin:0 auto!important;padding:16px!important}
html.gl-app:not(:has(#app)) .disabled{opacity:1!important;color:var(--gl-ivory)!important}
html.gl-app:not(:has(#app)) .ticket .sr-only{color:inherit!important}

html.gl-app:not(:has(#app)) .key-details{background:var(--gl-ivory)!important;color:var(--gl-dark)!important;border:0!important;mask:none!important;-webkit-mask:none!important;clip-path:none!important;outline:none!important}
html.gl-app:not(:has(#app)) .key-details::before,html.gl-app:not(:has(#app)) .key-details::after{display:none!important}
html.gl-app:not(:has(#app)) .key-details *{background:transparent!important;color:var(--gl-dark)!important;-webkit-text-fill-color:currentColor!important;text-shadow:none!important}
html.gl-app:not(:has(#app)) .ticket .nofee{background:transparent!important;color:var(--gl-red)!important;-webkit-text-fill-color:currentColor!important;border-color:var(--gl-paper-line)!important}

html.gl-app #app .howto{background:transparent!important;border:0!important;border-bottom:1px solid var(--gl-paper-line)!important;padding:0 0 16px!important;margin-bottom:16px!important;box-shadow:none!important}
html.gl-app:not(:has(#app)) .key-details{border-top:2px solid var(--gl-red)!important;border-radius:0!important;box-shadow:none!important}
html.gl-app:not(:has(#app)) :is(.venue-caption strong,.fallback){color:var(--gl-ivory)!important;font-family:Archivo,sans-serif!important}
html.gl-app body[data-type="artist"] #page .panel{padding:20px!important;border-top:2px solid var(--gl-red)!important}
html.gl-app body[data-type="artist"] #page .panel+.panel{margin-top:20px!important}
html.gl-app:not(:has(#app)) .ticket select{min-height:44px!important;background:var(--gl-ivory)!important;color:var(--gl-dark)!important}
}

/* Four-colour balance: charcoal ground, orange actions, ivory cards, red accents */
@layer app-finish {
html.gl-app{--gl-or:#ff5a1f;--gl-ch:#1c1a19;--gl-ch2:#2a2725;--gl-iv:#f4ede1;--gl-ink:#141211;--gl-mute:#5a4f45;--gl-rd:#c62f27}
html.gl-app body{background:var(--gl-noise),var(--gl-ch)!important;color:var(--gl-iv)!important}
html.gl-app .gl-top{background:var(--gl-ch)!important;border-bottom:2px solid var(--gl-or)!important}
html.gl-app .gl-top .gl-me button{color:var(--gl-iv)!important}
html.gl-app .gl-top .gl-ava{background:var(--gl-or)!important;color:var(--gl-ink)!important;border-radius:50%!important;width:36px;height:36px}
html.gl-app .gl-brand img{display:block;height:44px;width:44px;border-radius:10px}
html.gl-app .gl-brand b{display:none!important}
html.gl-app .gl-nav{background:var(--gl-ch)!important;border-top:1px solid #3a3633!important}
html.gl-app .gl-nav button{color:#cfc5b8!important}
html.gl-app .gl-nav button[aria-current="page"]{color:var(--gl-or)!important;box-shadow:inset 0 3px 0 var(--gl-rd)!important}
html.gl-app .gl-nav .gl-plus i{background:var(--gl-or)!important;color:var(--gl-ink)!important}
html.gl-app .gl-nav .gl-plus svg{color:var(--gl-ink)!important}
html.gl-app #app :is(h1,h2,h3,.gl-h,.gl-h2,.gl-sec,p,.small){color:var(--gl-iv)!important;-webkit-text-fill-color:currentColor!important}
html.gl-app #app .gl-link{color:var(--gl-or)!important}
html.gl-app #app .gl-act span:first-child{background:var(--gl-ch2)!important;border:1px solid #3a3633!important;border-bottom:2px solid var(--gl-rd)!important;color:var(--gl-or)!important}
html.gl-app :is(.gl-act) svg{color:var(--gl-or)!important}
html.gl-app #app .gl-act span:last-child{color:var(--gl-iv)!important}
html.gl-app #app .kpi{background:var(--gl-ch2)!important;border:1px solid #3a3633!important;border-top:2px solid var(--gl-rd)!important}
html.gl-app #app .kpi *{color:#cfc5b8!important}
html.gl-app #app .kpi .v{color:var(--gl-or)!important}
html.gl-app #app .gl-row{background:var(--gl-iv)!important;border:0!important;border-left:4px solid var(--gl-rd)!important}
html.gl-app #app .gl-row *{color:var(--gl-ink)!important;-webkit-text-fill-color:currentColor!important}
html.gl-app #app .gl-row :is(small,.gl-rmeta,.gl-meta){color:var(--gl-mute)!important}
html.gl-app #app .gl-row .gl-nofee{color:var(--gl-rd)!important}
html.gl-app .gl-ticket{background:var(--gl-noise),var(--gl-iv)!important;color:var(--gl-ink)!important;border-top:4px solid var(--gl-or)!important}
html.gl-app .gl-ticket :is(.gl-ttitle,.gl-count){color:var(--gl-ink)!important}
html.gl-app .gl-ticket :is(.gl-tmeta,.gl-count small){color:var(--gl-mute)!important}
html.gl-app .gl-ticket .gl-tag{color:var(--gl-rd)!important}
html.gl-app .gl-ticket .gl-tbtn,html.gl-app #app .gl-ticket .gl-tbtn{background:var(--gl-or)!important;color:var(--gl-ink)!important}
html.gl-app #app #kind button[aria-pressed=true],html.gl-app #app #filters button[aria-pressed=true]{background:var(--gl-or)!important;color:var(--gl-ink)!important;box-shadow:inset 0 -3px 0 var(--gl-rd)!important}
html.gl-app .gl-back{background:var(--gl-ch)!important;color:var(--gl-iv)!important;border-bottom:2px solid var(--gl-or)!important}
html.gl-app:not(:has(#app)) body{background:var(--gl-noise),var(--gl-ch)!important}
html.gl-app:not(:has(#app)) :is(h1,h2,h3)~p{color:var(--gl-iv)}
html.gl-app:not(:has(#app)) .nofee{color:var(--gl-rd)!important}
}

/* Readability lock: every label measured against its real surface */
@layer app-finish {
html.gl-app body #app button.gl-row,html.gl-app body #app a.gl-row,html.gl-app body .gl-row{background:var(--gl-ch2)!important;background-image:none!important;border:1px solid #3a3633!important;border-left:4px solid var(--gl-rd)!important;color:var(--gl-iv)!important}
html.gl-app body .gl-row :is(h4,.gl-chev),html.gl-app body #app .gl-row :is(h4,.gl-chev){color:var(--gl-iv)!important;-webkit-text-fill-color:var(--gl-iv)!important}
html.gl-app body .gl-row p,html.gl-app body #app .gl-row p{color:#cfc5b8!important;-webkit-text-fill-color:#cfc5b8!important}
html.gl-app body .gl-row .gl-thumb,html.gl-app body #app .gl-row .gl-thumb{background-color:var(--gl-ch)!important;color:var(--gl-or)!important;-webkit-text-fill-color:var(--gl-or)!important;border:1px solid #4a4440!important}
html.gl-app body .gl-row .gl-nofee,html.gl-app body #app .gl-row .gl-nofee{color:#ff9a8f!important;-webkit-text-fill-color:#ff9a8f!important}
html.gl-app body .gl-ticket :is(.gl-tmeta,.gl-tmeta *,.gl-count small,small){color:#4a4038!important;-webkit-text-fill-color:#4a4038!important}
html.gl-app body .gl-top .gl-ava{color:var(--gl-ink)!important;-webkit-text-fill-color:var(--gl-ink)!important}
html.gl-app body .gl-stat .gl-eyebrow,html.gl-app body .gl-eyebrow{color:#cfc5b8!important;-webkit-text-fill-color:#cfc5b8!important}
html.gl-app body .gl-ticket .gl-eyebrow{color:#4a4038!important;-webkit-text-fill-color:#4a4038!important}
}
@layer app-finish {
html.gl-app body .gl-row{width:100%!important;max-width:100%!important}
html.gl-app :is(.tm-install,.tm-install-bar,.tm-install-card){display:none!important}
}
@layer app-finish {
html.gl-app body :is(.availability-label,.tm-muted){color:#4a4038!important;-webkit-text-fill-color:#4a4038!important;opacity:1!important}
}
