:root{--accent:#ff6f9f;--accent-dark:#e84b82;--ink:#12141c;--muted:#707584;--green:#0b0b0f;--green-light:#fff0f6;--paper:#fff9fb;--line:#e7e2e6;--gold:#ff7bac;--shadow:0 24px 70px #0b0b0f16}
body{font-family:'Nunito Sans',Arial,sans-serif;background:radial-gradient(circle at 78% 4%,#ff6f9f22,transparent 29%),radial-gradient(circle at 8% 28%,#ff6f9f0d,transparent 25%),linear-gradient(180deg,#fff 0%,#fff8fb 43%,#fff 100%);color:var(--ink);font-size:16px}
h1,h2,h3,.ticket-number{font-family:'Unbounded',Arial,sans-serif;font-weight:700;letter-spacing:-.055em}
h1{font-weight:800;line-height:1.03}h1 span{color:var(--accent)}h2{line-height:1.18}h3{font-weight:600;letter-spacing:-.035em}
.site-header{max-width:none;padding:10px max(4%,calc((100vw - 1220px)/2));min-height:102px;position:sticky;top:0;z-index:5;background:#ffffffed;backdrop-filter:blur(18px);border-color:#12141c14}
.brand{gap:16px;font-weight:800;letter-spacing:0}.brand-logo{display:block;width:102px;height:68px;object-fit:contain}.brand #brand-name{font-size:12px;max-width:130px;line-height:1.45}.site-header nav{gap:23px}.nav-button{font-family:'Unbounded',sans-serif;font-size:11px;font-weight:600;color:var(--ink)}
.btn{border-radius:999px;padding:12px 22px;font-weight:800;border-color:#12141c24;font-size:14px;box-shadow:none}.btn:hover{background:#fff0f6;border-color:var(--accent-dark)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#0b0b0f;box-shadow:0 10px 25px #ff6f9f24}.btn.primary:hover{background:#ff8eb4;border-color:#ff8eb4}.btn.small{font-size:12px;padding:9px 16px}.btn-icon{border-radius:11px}.btn.danger{color:#b13950;border-color:#edcbd4;background:#fff4f7}
.eyebrow{display:inline-flex;align-items:center;gap:12px;min-height:31px;border-radius:99px;padding:7px 13px;font-family:'Unbounded',sans-serif;font-size:9px;font-weight:700;letter-spacing:.02em;color:var(--accent-dark);background:#e84b8212;margin-bottom:15px}
.eyebrow:before,.hero .eyebrow:before{content:'';width:6px;height:6px;background:var(--accent);border-radius:50%;box-shadow:0 0 0 4px #ff6f9f16;margin:0;display:inline-block;flex-shrink:0}
.hero{grid-template-columns:1.02fr .98fr;padding:65px 0 55px;gap:7%;align-items:center}.hero h1{font-size:clamp(52px,5.2vw,76px);margin:12px 0 24px;line-height:1.01}.hero p{font-size:18px;font-weight:600;line-height:1.6;color:#373a46;max-width:460px;margin-bottom:27px}.hero .btn-row{gap:11px}.hero .btn{font-size:13px}.hero-visual{position:relative;transform:rotate(2deg);background:var(--ink);border-radius:38px;isolation:isolate;padding:9px;box-shadow:0 24px 65px #0b0b0f22}.hero-visual:before{content:'';position:absolute;inset:-14px 15px 17px -15px;border:2px solid var(--accent);border-radius:40px;z-index:-1}.hero-photo{width:100%;height:420px;border-radius:31px;object-fit:cover;display:block}.photo-badge{position:absolute;bottom:26px;left:28px;background:var(--accent);color:var(--ink);border-radius:999px;padding:10px 16px;font-family:'Unbounded',sans-serif;font-size:10px;font-weight:800;letter-spacing:0}.visual-tag{position:absolute;top:27px;right:24px;border-radius:99px;padding:8px 14px;background:#ffffffec;font-size:11px;font-weight:800}.hero-note{margin-top:25px;display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted);font-weight:700}.hero-dot{width:7px;height:7px;background:var(--accent);border-radius:50%}
.public-home,.public-event,.staff-main{max-width:1300px}.section-title{align-items:center;margin:35px 0 22px}.section-title h2{font-size:clamp(29px,3.5vw,43px);margin:0}.section-title .eyebrow{margin-bottom:12px}.section-count{font-weight:700}.event-card{border-radius:24px;box-shadow:0 14px 34px #0b0b0f06}.event-card h3{font-size:20px;line-height:1.35}.date-stamp strong{font-family:'Unbounded',sans-serif;font-weight:800;font-size:31px}.event-card .link-arrow{color:var(--accent-dark)}.empty-panel{border-style:solid;border-radius:26px;background:linear-gradient(120deg,#fff,#fff0f6);padding:42px 24px}.empty-panel h3{font-family:'Unbounded',sans-serif;font-size:23px;font-weight:700;line-height:1.3}.empty-icon{color:var(--accent-dark)}
.hall-gallery{padding:30px 0 25px}.gallery-intro{max-width:750px;margin-bottom:24px;font-size:15px}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.hall-photo{border:0;padding:0;overflow:hidden;border-radius:25px;position:relative;aspect-ratio:4/3;background:#17151a;cursor:zoom-in}.hall-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}.hall-photo:hover img{transform:scale(1.025)}.hall-photo span{position:absolute;bottom:16px;left:17px;border-radius:99px;padding:7px 13px;background:#ffffffeb;font-size:11px;font-weight:800}.photo-credit{font-size:11px;color:var(--muted);margin:14px 0;text-align:right}.photo-credit a{text-decoration:underline;text-underline-offset:3px}.lightbox-photo{display:block;width:100%;max-height:70vh;object-fit:contain;border-radius:14px}
.map-layout{grid-template-columns:minmax(0,1fr) 300px;gap:20px}.map-card,.panel{border-radius:24px;border-color:#e7e2e6}.map-toolbar{flex-wrap:wrap;gap:12px;padding:16px}.sector-tab{border-radius:99px;font-size:12px;font-weight:800;padding:8px 15px}.sector-tab.active{background:#0b0b0f;color:white}.sector-tabs{gap:6px}.zoom-controls{gap:7px}.zoom-controls .btn.small{font-size:10px;padding:7px 10px;min-height:35px}.map-scroll{background:#fff;max-height:830px;padding:15px 9px}.seat-canvas{margin:auto}.seat{width:54px;height:38px;border-radius:5px;line-height:1.05}.seat strong{font-size:14px;font-family:'Nunito Sans',sans-serif;font-weight:900}.seat small{font-size:8px;margin-top:3px;font-family:'Nunito Sans',sans-serif;font-weight:700}.seat::after{display:none}.seat.layout{background:#fff1f6;border-color:#edb0c8;color:#16141b}.seat.selected{background:#0b0b0f;border-color:#0b0b0f;color:#fff;box-shadow:0 0 0 3px var(--accent)}.seat:hover{box-shadow:0 0 0 3px #e84b8270}.seat-label{width:36px;font-family:'Nunito Sans',sans-serif;font-weight:900;font-size:14px;line-height:38px;color:#8c5ca0}.sector-map-title{position:absolute;left:0;width:100%;text-align:center;font-family:'Unbounded',sans-serif;font-weight:700;font-size:22px;letter-spacing:.01em;color:#8c5ca0}.stage{background:#fff0f6;color:#12141c;border:2px solid #ff6f9f;border-radius:5px;height:58px;line-height:56px;font-family:'Unbounded',sans-serif;font-size:17px;font-weight:700;letter-spacing:.12em}.map-help{font-size:11px}.dot.selected{background:#0b0b0f;border-color:var(--accent)}.legend{font-size:10px;gap:13px}.selection-panel{padding:23px}.selection-panel h3{font-family:'Unbounded',sans-serif;font-size:20px;font-weight:700;line-height:1.3}.selection-total strong{font-family:'Unbounded',sans-serif;font-size:22px;font-weight:700}.selected-item{font-size:12px}.selected-item b{font-weight:900}.selected-list{max-height:260px}
.public-event{padding-top:32px}.event-intro h1{font-size:clamp(30px,4vw,51px);line-height:1.13}.event-meta{font-size:13px}.countdown{border-radius:19px;background:#fff0f6;min-width:185px}.countdown strong{font-family:'Unbounded',sans-serif;font-size:21px;line-height:1.4}.countdown span{font-size:10px}.hall-count{border-radius:24px;background:#0b0b0f;padding:22px 27px;min-width:160px;text-align:center;color:#fff;flex-shrink:0}.hall-count strong{font-family:'Unbounded',sans-serif;font-size:45px;line-height:1.2;display:block;color:var(--accent)}.hall-count span{font-size:11px}.hall-strip{display:flex;flex-wrap:wrap;gap:14px;margin:22px 0}.hall-strip span{padding:9px 14px;background:white;border:1px solid var(--line);border-radius:99px;font-size:12px}.hall-page .event-intro{align-items:center}
.notice{background:#fff0f6;color:#885268;border-radius:12px}.notice.success{background:#e8f5e6;color:#2c613c}.notice.error{background:#fae5e9;color:#9a3046}.field{font-weight:700}.field input,.field select,.field textarea,.inline-input{font-family:'Nunito Sans',sans-serif;border-color:#dcd7dd;border-radius:12px;font-size:14px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent-dark)}.checkbox input{accent-color:var(--accent-dark)}.form-card{border-radius:26px}.login-wrap h1{font-size:37px}.text-link{color:var(--accent-dark)}
.staff-top h1{font-size:30px}.staff-tabs button{border-radius:99px;font-weight:800;font-size:12px}.staff-tabs button.active{background:#0b0b0f;color:#fff}.stat{border-radius:19px;padding:17px}.stat strong{font-family:'Unbounded',sans-serif;font-size:26px;font-weight:700}.stat.emphasis{background:#0b0b0f;border-color:#0b0b0f}.stat.emphasis strong{color:var(--accent)}.stat.emphasis span{color:#ddd}.admin-section h3,.scan-result h3{font-family:'Unbounded',sans-serif;font-size:22px;font-weight:700;line-height:1.35}.page-heading h2{font-size:29px}.table-wrap{border-radius:20px}.table-wrap th{background:#fff6fa;font-weight:800}.badge{border-radius:99px}.scanner-frame{background:#141017;border-radius:25px}.scanner-guide{border-color:var(--accent)}.scan-result{border-radius:23px}.editor-seat{height:38px;width:54px;border-radius:5px;border-color:#edb0c8;background:#fff1f6;color:#12141c}.editor-seat.active{background:#0b0b0f;color:white}.editor-stage{font-family:'Unbounded',sans-serif}.editor-surface{background:#fffafd}.ticket-brand-logo{width:140px;height:88px;object-fit:contain;display:block;margin-bottom:20px}.ticket-paper{border-radius:28px;background:#fff}.ticket-paper h1{font-size:31px;line-height:1.25}.ticket-place{border-radius:15px;background:#fff0f6}.ticket-paper .ticket-qr{border:1px solid #f1e4ea;border-radius:15px}.ticket-number{font-family:monospace;font-size:24px;letter-spacing:0}.ticket-date{font-weight:800}.ticket-actions{flex-wrap:wrap}.ticket-paper .eyebrow{font-size:8px}.modal-head h2{font-size:24px;line-height:1.3}dialog{border-radius:25px;max-width:750px}#toast{background:#0b0b0f;border-radius:99px}footer{font-weight:700;font-size:11px;border-color:#e8e1e6}
@media(max-width:1050px){.hero{gap:5%}.hero h1{font-size:54px}.hero-photo{height:350px}.site-header nav{gap:15px}.hero .btn{font-size:12px;padding:12px 16px}.map-layout{grid-template-columns:minmax(0,1fr) 280px}.stat strong{font-size:21px}}
@media(max-width:760px){body{font-size:14px}.site-header{min-height:76px;padding:8px 4%;gap:9px}.brand{gap:8px}.brand-logo{width:72px;height:48px}.brand #brand-name{font-size:10px;max-width:75px}.site-header .btn{padding:9px 12px;font-size:10px;min-height:35px}.site-header nav{gap:8px}.nav-button{display:none}.hero{grid-template-columns:1fr;padding:35px 0 30px;gap:32px}.hero h1{font-size:clamp(40px,11vw,58px);margin:10px 0 22px}.hero p{font-size:16px;line-height:1.6;margin-bottom:24px}.hero .btn-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}.hero .btn{font-size:11px;padding:11px 12px}.hero-note{font-size:10px;margin-top:20px}.hero-visual{margin:4px 4px 10px 10px;transform:rotate(1.5deg);padding:7px;border-radius:28px}.hero-visual:before{inset:-10px 9px 10px -10px;border-radius:30px}.hero-photo{height:280px;border-radius:22px}.photo-badge{font-size:8px;padding:9px 12px;left:20px;bottom:20px}.visual-tag{font-size:9px;top:19px;right:17px}.eyebrow{font-size:8px;min-height:27px;padding:7px 11px}.section-title{gap:15px;margin:28px 0 18px}.section-title h2{font-size:29px}.section-count{font-size:10px}.section-title>.btn{font-size:11px;padding:10px 12px}.empty-panel{padding:30px 20px;border-radius:21px}.empty-panel h3{font-size:20px}.empty-panel p{font-size:13px}.hall-gallery{padding-top:18px}.gallery-intro{font-size:13px}.photo-grid{gap:10px}.hall-photo{border-radius:17px;aspect-ratio:1/1}.hall-photo span{left:9px;bottom:9px;padding:5px 9px;font-size:9px}.photo-credit{font-size:10px;text-align:left}.map-layout{grid-template-columns:minmax(0,1fr);gap:16px}.map-toolbar{padding:13px;gap:10px}.sector-tabs{gap:5px}.sector-tab{font-size:11px;padding:8px 13px}.zoom-controls{width:100%;justify-content:flex-end}.map-card,.panel{border-radius:20px}.selection-panel{position:static}.map-scroll{max-height:620px}.legend{font-size:9px;gap:9px;padding:13px}.public-event{padding-top:20px}.event-intro h1{font-size:31px}.event-meta{font-size:12px}.hall-page .event-intro{display:flex;gap:15px;align-items:center}.hall-count{min-width:90px;padding:16px 10px;border-radius:19px}.hall-count strong{font-size:29px}.hall-count span{font-size:9px;display:block;max-width:80px}.hall-strip{gap:7px;margin:18px 0}.hall-strip span{font-size:10px;padding:7px 10px}.staff-top h1{font-size:23px}.staff-user{font-size:10px}.staff-user .btn{font-size:10px;padding:8px 12px}.staff-tabs button{font-size:11px}.stats-grid{grid-template-columns:repeat(3,1fr)}.stat{padding:13px}.stat strong{font-size:19px}.stat span{font-size:9px}.countdown strong{font-size:18px}.page-heading h2{font-size:24px}.admin-section h3{font-size:20px}.login-wrap h1{font-size:32px}.ticket-paper h1{font-size:25px}.ticket-paper{padding:25px}.ticket-brand-logo{width:120px;height:76px}.ticket-place{font-size:16px}.ticket-actions .btn{font-size:12px}.modal-head h2{font-size:21px}.ticket-qr{width:230px;height:230px}}
@media print{.site-header{display:none}.ticket-paper{border:0}.ticket-brand-logo{height:75px;width:120px}.ticket-paper .eyebrow{color:#12141c}.ticket-actions{display:none}}

.hall-aisle{position:absolute;display:grid;place-items:center;pointer-events:none;border-top:1px dashed #e3d3dc;border-bottom:1px dashed #e3d3dc;background:#fcf8fa;color:#a08a98;font-size:15px;font-weight:800;letter-spacing:.22em}
.contact-group{display:grid;gap:10px}.contact-group+.contact-group{margin-top:16px}.contacts-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.contacts-grid .contact-group{margin:0;padding:24px;background:white;border:1px solid var(--line);border-radius:22px}#footer-contact{display:grid;gap:10px}#footer-contact a{display:inline-block;margin-right:12px}.contacts-section{margin:30px 0}
.ticket-png-preview{display:block;width:auto;max-width:100%;max-height:58vh;object-fit:contain;margin:0 auto 18px;border:1px solid #f1d7e3;border-radius:14px}.ticket-link-card .btn-row{margin-top:12px}
.scanner-workspace{max-width:640px;margin:0 auto}.scanner-workspace [hidden]{display:none!important}.scanner-workspace .scanner-frame{height:240px;min-height:0;max-height:240px;border-radius:18px}.scanner-workspace .scanner-frame video{height:100%;width:100%;object-fit:cover}.scanner-workspace .scan-placeholder{font-size:14px}.scanner-workspace .scanner-guide{width:160px;height:160px;max-width:80%;max-height:80%}.scanner-controls{margin-top:12px}.scanner-controls .btn{flex:1}.scanner-workspace .qr-hint{font-size:12px;margin:12px 0}.manual-scan{border:1px solid var(--line);background:white;border-radius:14px;padding:14px;margin:14px 0}.manual-scan summary{cursor:pointer;font-size:14px;font-weight:700}.manual-scan form{margin-top:14px}.scanner-workspace .scan-result{margin:0;padding:22px}.scanner-workspace .result-icon{font-size:28px;line-height:1.2;margin-bottom:12px}.scanner-workspace .scan-result h3{font-size:21px;margin:0 0 14px}.scan-ticket-data{display:grid;gap:10px;font-size:16px;margin-bottom:20px;overflow-wrap:anywhere}.scan-ticket-data strong{font-size:21px}.scan-ticket-data small{font-size:13px}.scanner-actions{display:grid;gap:10px}.scanner-workspace .checked-time{font-size:13px;margin:12px 0 18px}
.seat.free{background:#fff1f6;border-color:#e5b5c9;color:#22232b}.seat.sold{background:#3c4452;border:2px solid #202632;color:#fff}.seat.sold small{color:#fff;opacity:1}.dot.sold{background:#3c4452;border:1px solid #202632}.dot.free{background:#fff1f6;border:1px solid #e5b5c9}.seat.held{background:#ffe3a1;border-color:#b98519;color:#352600}.seat.reserved{background:#dbc4f5;border-color:#8b60bb;color:#36204b}.seat.selected{background:#ff4086;border:2px solid #a70e47;color:#fff;box-shadow:0 0 0 2px #ffb3cf}.seat.selected small{color:#fff;opacity:1}.dot.selected{background:#ff4086}
@media(max-width:760px){.contacts-grid{grid-template-columns:1fr;gap:12px}.contacts-grid .contact-group{padding:18px}.scanner-workspace .scanner-frame{height:190px;max-height:190px}.scanner-workspace .scanner-guide{height:135px;width:135px}.scanner-workspace .scan-result{padding:18px}.scanner-workspace .scan-result h3{font-size:19px}.scan-ticket-data{font-size:15px;gap:8px}.scan-ticket-data strong{font-size:19px}.scanner-workspace .page-heading{margin:14px 0}.scanner-actions .btn{min-height:46px}}
