
:root{
 --ink:#11131a;--muted:#777d8b;--blue:#2563eb;--blue2:#5b4df5;--pink:#ff5b8a;
 --bg:#f4f5f8;--card:#fff;--line:#e2e5eb;--dark:#08090d;--dark2:#11131a;
 --shadow:0 18px 50px rgba(12,16,28,.10);
 font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text",Inter,Segoe UI,Arial,sans-serif
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}
body.no-scroll{overflow:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .12s ease,opacity .15s ease,box-shadow .15s ease}button:active{transform:scale(.975)}button:disabled{cursor:wait;opacity:.62}.hidden{display:none!important}
img{max-width:100%;display:block}.container{width:min(1180px,calc(100% - 32px));margin:auto}.container.narrow{width:min(650px,calc(100% - 32px))}
.topbar{height:78px;background:#08090d;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 18px;position:sticky;top:0;z-index:30;border-bottom:1px solid #252934}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:950;letter-spacing:-1.5px;font-size:22px}.brand b{color:#4e7cff}.brand-wave{width:42px;height:42px;border:2px solid #343a4c;border-radius:14px;display:grid;place-items:center;font-size:32px;font-style:italic}
.top-actions{display:flex;align-items:center;gap:8px}.icon-btn,.avatar-btn,.admin-top-btn{height:46px;border:1px solid #34394a;background:#151821;color:#fff;border-radius:24px;padding:0 16px;font-weight:800}.icon-btn{width:46px;padding:0;font-size:22px;position:relative}.avatar-btn{min-width:84px;font-size:14px}.admin-top-btn{background:#191c25}
.notif-dot{position:absolute;width:8px;height:8px;border-radius:50%;background:#ff4f72;top:9px;right:9px}.page{display:none;min-height:calc(100vh - 150px)}.page.active{display:block}.content-pad{padding-top:34px;padding-bottom:110px}
.dark-hero{background:#08090d;color:#fff;padding:36px 0 30px;border-bottom:1px solid #1f222c}.dark-hero h1{font-size:clamp(38px,8vw,72px);line-height:.96;letter-spacing:-3px;max-width:760px;margin:10px 0 14px}.dark-hero h1 span{color:#6d8dff}.dark-hero p{color:#b9bfcc;font-size:16px;max-width:650px;margin:0 0 22px}.tiny-label,.page-title small,.sheet-kicker{font-size:11px;font-weight:900;letter-spacing:2.5px;color:#657cff}.dark-hero .tiny-label{color:#91a8ff}
.search-wrap{display:flex;gap:8px;background:#fff;border-radius:18px;padding:6px;max-width:760px;box-shadow:0 10px 35px rgba(0,0,0,.22)}.search-wrap span{color:#7d8490;display:grid;place-items:center;width:42px;font-size:25px}.search-wrap input{border:0;outline:0;flex:1;min-width:0;font-size:16px;color:#151820}.search-wrap button{border:0;border-radius:14px;background:var(--blue);color:#fff;padding:0 20px;font-weight:850}.quick-row{display:flex;gap:8px;overflow:auto;padding:14px 0 2px;scrollbar-width:none}.quick-row::-webkit-scrollbar{display:none}.quick{white-space:nowrap;background:#11141c;border:1px solid #3a3f4c;color:#d8dce5;border-radius:999px;padding:11px 16px;font-weight:800}.quick.active{background:#fff;color:#111;border-color:#fff}
.friendly-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(135deg,#17295f,#3269ed 60%,#5b4df5);color:#fff;border-radius:28px;padding:25px;box-shadow:var(--shadow);margin-bottom:28px}.friendly-banner h2{margin:5px 0;font-size:24px;letter-spacing:-.8px}.friendly-banner p{margin:5px 0 0;color:#e8edff}.ticket-sticker{width:54px;height:54px;border-radius:18px;background:rgba(255,255,255,.16);display:grid;place-items:center;font-size:27px;flex:0 0 auto}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:28px 0 14px}.section-head h2{margin:3px 0 0;font-size:27px;letter-spacing:-1px}.text-btn,.link-btn{background:none;border:0;color:var(--blue);font-weight:850}.center{text-align:center}.muted{color:var(--muted)}.field-help{font-size:12px;color:var(--muted);margin-top:5px}
.event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.event-card{background:#fff;border:1px solid #e1e4ea;border-radius:22px;overflow:hidden;box-shadow:0 10px 28px rgba(20,25,40,.07)}.event-art{position:relative;background:#171922;aspect-ratio:1.6/1;overflow:hidden}.event-art img{width:100%;height:100%;object-fit:cover}.event-art:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.55));pointer-events:none}.event-date-overlay{position:absolute;left:14px;bottom:12px;color:#fff;font-weight:900;font-size:12px;z-index:2}.event-body{padding:18px}.tag{display:inline-flex;border-radius:999px;padding:6px 9px;background:#edf2ff;color:#3d60cf;font-size:10px;font-weight:900;letter-spacing:1px}.event-body h3{font-size:23px;line-height:1.03;letter-spacing:-.8px;margin:11px 0}.tm-event-rule{height:2px;background:#eceef2;margin:12px 0}.event-location{color:#626978;margin:0 0 15px;line-height:1.45}.primary,.secondary,.danger{border-radius:15px;padding:13px 18px;border:1px solid transparent;font-weight:900}.primary{background:var(--blue);color:#fff;box-shadow:0 8px 20px rgba(37,99,235,.18)}.primary:hover{box-shadow:0 11px 25px rgba(37,99,235,.27)}.secondary{background:#fff;color:#2d5ac7;border-color:#dce1ea}.danger{background:#fff;color:#d33d52;border-color:#efcfd5}.wide{width:100%}.action-btn.is-loading{position:relative}.spinner{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-2px;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.steps>div,.form-card,.auth-card,.admin-entry-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:var(--shadow)}.steps b{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#eef2ff;color:#315ed7}.steps h3{margin:13px 0 5px}.steps p{color:var(--muted);margin:0;line-height:1.45}
.page-title{padding:5px 0 20px}.page-title h1{font-size:42px;letter-spacing:-2px;margin:4px 0}.page-title p{color:var(--muted);margin:0;max-width:650px}.empty{padding:38px 22px;text-align:center;color:var(--muted);background:#fff;border:2px dashed #dfe3ea;border-radius:24px}.skeleton-card{height:320px;border-radius:22px;background:linear-gradient(90deg,#eceef3,#f7f8fa,#eceef3);background-size:200% 100%;animation:shimmer 1.2s infinite}@keyframes shimmer{to{background-position:-200% 0}}
.my-ticket-event-card{background:#101217;color:#fff;border:0;border-radius:0}.my-ticket-event-card .event-body{padding:20px}.my-ticket-event-card .event-location{color:#c3c7d1}.my-ticket-event-card .tag{background:#ffedf3;color:#d74770}.my-ticket-seat-row{display:grid;grid-template-columns:repeat(3,1fr);background:#22252c;border-top:1px solid #3b3f48;border-bottom:1px solid #3b3f48;margin:16px 0}.my-ticket-seat-row>div{padding:13px 10px}.my-ticket-seat-row>div+div{border-left:1px solid #3b3f48}.my-ticket-seat-row small{display:block;color:#aeb4c0;font-size:9px;font-weight:900}.my-ticket-seat-row b{display:block;margin-top:4px}.my-ticket-code{font-size:12px;color:#9da4b1}.my-ticket-secondary-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.my-ticket-secondary-actions .secondary{background:#171a22;color:#fff;border-color:#3a3e49}
.ticket-choice-list{display:grid;gap:10px}.ticket-choice{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px;background:#fff;border:1px solid var(--line);border-radius:18px}.ticket-choice span,.ticket-choice strong{display:block}.ticket-choice span{color:var(--muted);font-size:13px;margin:4px 0}.ticket-choice strong{color:#1f3e99}.event-detail-hero{position:relative;border-radius:26px;overflow:hidden;background:#111;min-height:310px;color:#fff}.event-detail-hero>img{width:100%;height:100%;min-height:310px;object-fit:cover}.event-detail-overlay{position:absolute;inset:auto 0 0;padding:25px;background:linear-gradient(transparent,rgba(0,0,0,.88))}.event-detail-overlay h1{font-size:38px;letter-spacing:-1.5px;margin:7px 0}.event-detail-overlay p{margin:0;color:#ddd}.event-detail-meta{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#ddd;margin:12px 0;border-radius:18px;overflow:hidden}.event-detail-meta>div{background:#fff;padding:17px}.event-detail-meta small{display:block;color:var(--muted);font-size:10px;font-weight:900}.event-detail-meta b,.event-detail-meta span{display:block;margin-top:5px}.event-detail-meta span{color:var(--muted);font-size:13px}
label{display:block;font-size:13px;font-weight:800;margin:0 0 13px}label input,label select,label textarea{display:block;width:100%;margin-top:7px;border:1px solid #d9dee7;background:#fff;border-radius:13px;padding:13px;outline:0;color:var(--ink)}label input:focus,label select:focus,label textarea:focus{border-color:#7d99ef;box-shadow:0 0 0 3px #eaf0ff}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.auth-card{margin:40px auto;max-width:620px}.auth-card h1{font-size:36px;letter-spacing:-1.5px;margin:5px 0}.auth-logo{width:56px;height:56px;border-radius:18px;background:#eef2ff;display:grid;place-items:center;font-size:28px;margin-bottom:18px}.auth-logo.pink{background:#fff0f5}
.admin-tabs{display:flex;gap:8px;overflow:auto;margin-bottom:15px;scrollbar-width:none}.admin-tabs::-webkit-scrollbar{display:none}.admin-tabs button{white-space:nowrap;border:1px solid #dfe3ea;background:#fff;color:#4d5564;border-radius:999px;padding:11px 15px;font-weight:850}.admin-tabs button.active{background:#11131a;color:#fff;border-color:#11131a}.admin-section{display:none}.admin-section.active{display:block}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.stat{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px}.stat small{display:block;color:var(--muted);text-transform:capitalize}.stat strong{display:block;font-size:28px;margin-top:5px}.admin-list{display:grid;gap:9px}.admin-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px;background:#fff;border:1px solid var(--line);border-radius:17px}.admin-actions{display:flex;gap:7px}.image-preview{min-height:140px;border:1px dashed #cdd3df;border-radius:15px;display:grid;place-items:center;overflow:hidden;color:var(--muted);margin-bottom:12px}.image-preview img{width:100%;height:160px;object-fit:cover}
.bottom-nav{position:fixed;left:0;right:0;bottom:0;height:76px;background:rgba(255,255,255,.96);backdrop-filter:blur(18px);border-top:1px solid #e1e4ea;display:grid;grid-template-columns:repeat(5,1fr);z-index:40;padding-bottom:env(safe-area-inset-bottom)}.bottom-nav button{border:0;background:none;color:#7d8491;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-weight:650}.bottom-nav b{font-size:24px;line-height:1}.bottom-nav span{font-size:11px}.bottom-nav button.active{color:#245fe0}.bottom-nav button.active b{transform:translateY(-1px)}
.sheet{position:fixed;inset:0;background:rgba(5,7,12,.55);display:none;align-items:flex-end;z-index:100;padding:0}.sheet.open{display:flex}.sheet-card{background:#fff;width:100%;max-height:92vh;overflow:auto;border-radius:28px 28px 0 0;padding:24px 20px calc(28px + env(safe-area-inset-bottom));position:relative;box-shadow:0 -20px 50px rgba(0,0,0,.18)}.sheet-close{position:absolute;right:14px;top:12px;width:38px;height:38px;border:0;border-radius:50%;background:#eef0f4;font-size:25px}.sheet-kicker{margin-bottom:7px}
.toast{position:fixed;left:50%;bottom:92px;transform:translate(-50%,20px);background:#10131a;color:#fff;padding:12px 16px;border-radius:14px;opacity:0;pointer-events:none;z-index:200;transition:.2s;max-width:calc(100% - 32px);text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}
.ticket-page{background:#f4f5f8}.ticket-top{height:72px;background:#08090d;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 18px;font-weight:900;position:sticky;top:0;z-index:20}.ticket-back,.ticket-help{color:#fff;text-decoration:none;background:#171a22;border:1px solid #34394a;border-radius:22px;padding:8px 14px;font-size:18px}.ticket-help{font-size:14px}.ticket-screen{max-width:720px;margin:auto}
.tm-ticket{background:#fff;min-height:100vh}.tm-hero{position:relative;background:#111;color:#fff;min-height:480px;overflow:hidden}.tm-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.tm-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.12) 25%,rgba(0,0,0,.85) 100%)}.tm-hero-top,.tm-hero-info{position:absolute;z-index:2;left:20px;right:20px}.tm-hero-top{top:18px;display:flex;justify-content:space-between}.circle-back,.help-link{border:0;background:rgba(20,20,24,.7);color:#fff;border-radius:50px;padding:11px 15px}.circle-back{width:45px;height:45px;font-size:30px;line-height:1}.tm-hero-info{bottom:25px}.tm-hero-info small{font-weight:900;letter-spacing:1px}.tm-hero-info h1{font-size:42px;line-height:.98;letter-spacing:-1.7px;margin:12px 0}.tm-hero-info p{margin:0;color:#ddd}.tm-summary{background:#fff}.tm-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #ddd}.tm-tabs button{border:0;background:#fff;padding:18px;font-weight:800;position:relative}.tm-tabs .active:after{content:"";position:absolute;bottom:0;left:8%;right:8%;height:4px;background:#111}.tm-order{display:flex;justify-content:space-between;padding:24px 20px 16px}.tm-order small,.tm-ticket-label,.tm-seat-grid small{font-size:10px;font-weight:900;color:#5e6572}.tm-order b,.tm-order span{display:block}.tm-order b{font-size:21px;margin:4px 0}.tm-order span{color:#6e7480}.more-btn{border:0;background:none;font-size:22px}.tm-ticket-block{margin:0 20px;background:#f1f2f4}.tm-ticket-label{padding:13px 16px;border-bottom:1px solid #fff}.tm-seat-grid{display:grid;grid-template-columns:repeat(3,1fr)}.tm-seat-grid>div{padding:14px 16px}.tm-seat-grid b{display:block;font-size:17px;margin-top:5px}.tm-entry{margin:24px 20px}.entry-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:12px}.entry-heading small,.entry-heading b{display:block}.entry-heading span{font-size:11px;color:#6d7380;text-align:right}.qr-stage{width:min(310px,100%);aspect-ratio:1;margin:10px auto 12px;display:grid;place-items:center;background:#fff;border-radius:20px;position:relative;overflow:hidden;box-shadow:0 10px 35px rgba(0,0,0,.08)}.qr-stage img{width:82%;height:82%;object-fit:contain}.scan-line{position:absolute;left:8%;right:8%;height:2px;background:#2563eb;box-shadow:0 0 14px #2563eb;animation:scan 2.2s ease-in-out infinite;z-index:2}@keyframes scan{0%,100%{top:12%}50%{top:88%}}.qr-refreshing{animation:qrPulse .6s ease}@keyframes qrPulse{50%{transform:rotate(2deg) scale(.96);opacity:.5}}.qr-help{text-align:center;color:#707784;font-size:12px}.verified-pill{width:max-content;max-width:100%;margin:12px auto 0;background:#eaf8ef;color:#188545;border-radius:999px;padding:8px 12px;font-size:11px;font-weight:850}.tm-more{padding:8px 20px 25px}.tm-more h3{font-size:16px}.tm-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.tm-action{border:1px solid #e0e3e8;background:#fff;border-radius:15px;padding:13px 5px;display:flex;flex-direction:column;align-items:center;gap:6px}.tm-action span{font-size:22px}.tm-action b{font-size:11px}.tm-location,.tm-social{margin:0 20px 22px;padding:18px;border:1px solid #e2e5ea;border-radius:18px}.tm-location h3,.tm-social h3{margin:0 0 5px}.tm-location p,.tm-social p{color:#6d7380}.tm-social{background:#f4f6ff;border-color:#e1e7ff}
.transfer-page{min-height:100vh;background:#f4f5f8;padding-top:35px}.transfer-accept-card{text-align:left}.transfer-accept-card h1{font-size:40px;line-height:1;letter-spacing:-1.8px}.transfer-accept-card .auth-logo{background:#eef2ff}
@media(max-width:850px){.event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){
 .topbar{height:68px;padding:0 12px}.brand{font-size:19px}.brand-wave{width:38px;height:38px}.avatar-btn{min-width:78px}.dark-hero{padding:27px 0 22px}.dark-hero h1{font-size:42px;letter-spacing:-2.2px}.container{width:calc(100% - 24px)}.content-pad{padding-top:24px;padding-bottom:98px}.friendly-banner{border-radius:22px;padding:20px}.friendly-banner h2{font-size:21px}
 #discover .event-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding-bottom:5px}.event-grid .event-card{min-width:82%;scroll-snap-align:start}.event-card{border-radius:18px}.event-art{aspect-ratio:1.45/1}.event-body h3{font-size:22px}
 #foryou .event-grid{grid-template-columns:1fr}.page-title h1{font-size:38px}.steps{grid-template-columns:1fr}.two{grid-template-columns:1fr}.ticket-choice{align-items:flex-end}.ticket-choice .primary{width:auto}.tm-event-card{min-width:100%!important}.my-ticket-event-card .event-art{aspect-ratio:1.45/1}.my-ticket-event-card .event-body{padding:18px}
 .event-detail-overlay h1{font-size:32px}.event-detail-meta{grid-template-columns:1fr}.admin-row{align-items:flex-start}.admin-event-row{flex-direction:column}.admin-actions{width:100%}.admin-actions button{flex:1}
 .tm-hero{min-height:500px}.tm-hero-info h1{font-size:38px}.tm-actions{grid-template-columns:repeat(4,1fr)}.tm-action{min-height:72px}.tm-entry{margin:22px 16px}.tm-ticket-block,.tm-order{margin-left:16px;margin-right:16px}.tm-more,.tm-location,.tm-social{margin-left:16px;margin-right:16px}
 .ticket-screen{width:100%}.ticket-top{height:62px}
}

.event-favorite{position:absolute;right:12px;top:12px;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:rgba(10,12,18,.6);color:#fff;font-size:20px;z-index:3}.ticket-count-badge{position:absolute;right:14px;top:14px;z-index:3;background:#ff5b78;color:#fff;font-weight:950;border-radius:10px;padding:8px 10px}.event-card-footer{display:flex;align-items:center;justify-content:space-between;margin:0 0 14px;color:#173caa;font-weight:900}.event-card-footer small{color:#747b8b;font-weight:700}.my-ticket-event-card .event-card-footer{color:#fff}.my-ticket-event-card .event-card-footer small{color:#aeb4c0}.ticket-top>span{font-weight:950;letter-spacing:-1px}.ticket-top>span em{font-style:normal;color:#5d86ff}.ticket-top>span b{color:#fff}


/* v34 mobile-fit/performance layer
   Keeps the working v33 functionality while preventing oversized, PDF-like cards.
*/
html,body{width:100%;max-width:100%;overflow-x:hidden}
body{overscroll-behavior-x:none}
#app,.app-shell{width:100%;max-width:100vw;overflow-x:clip}
img{height:auto}
.event-card{max-width:100%;min-width:0}
.event-art img{display:block;width:100%;height:100%;object-fit:cover;content-visibility:auto}
@media(max-width:650px){
  .container{width:calc(100% - 24px);max-width:100%}
  .content-pad{padding-top:22px;padding-bottom:100px}
  .friendly-banner{margin-bottom:24px}
  #discover .event-grid,
  #foryou .event-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    overflow:visible;
    padding:0;
  }
  #discover .event-grid .event-card,
  #foryou .event-grid .event-card{
    width:100%;
    min-width:0;
    max-width:100%;
    scroll-snap-align:none;
    border-radius:14px;
    box-shadow:0 5px 18px rgba(20,25,40,.065);
  }
  #discover .event-grid .event-art,
  #foryou .event-grid .event-art{
    aspect-ratio:1.18/1;
  }
  #discover .event-grid .event-body,
  #foryou .event-grid .event-body{
    padding:11px;
  }
  #discover .event-grid .event-body h3,
  #foryou .event-grid .event-body h3{
    font-size:16px;
    line-height:1.08;
    letter-spacing:-.35px;
    margin:8px 0;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  #discover .event-grid .event-location,
  #foryou .event-grid .event-location{
    font-size:12px;
    line-height:1.3;
    margin-bottom:10px;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  #discover .event-grid .event-card .primary,
  #foryou .event-grid .event-card .primary{
    width:100%;
    padding:10px 8px;
    border-radius:10px;
    font-size:13px;
  }
  #discover .event-grid .event-date-overlay,
  #foryou .event-grid .event-date-overlay{
    left:9px;
    bottom:9px;
    font-size:10px;
  }
  .event-favorite{right:8px;top:8px;width:32px;height:32px}
  .tag{padding:5px 7px;font-size:9px}
  .section-head h2{font-size:25px}
}
@media(min-width:651px){
  .event-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
