/* TicketMatch — pocket ticket binder, Y2K candy stationery. */
:root{--ink:#302641;--muted:#6f637c;--paper:#fffdf7;--pink:#ff98ce;--lime:#d9f77b;--blue:#bddcff;--lavender:#e2d5ff;--line:#51425f}
body{color:var(--ink);background-color:#f5eef9;background-image:linear-gradient(#dacbe544 1px,transparent 1px),linear-gradient(90deg,#dacbe544 1px,transparent 1px);background-size:18px 18px;font-family:'Arial Rounded MT Bold','Apple SD Gothic Neo','Malgun Gothic',sans-serif}
header{height:46px;padding:0 12px;background:var(--lavender);border-bottom:2px solid var(--line);gap:10px}
.brand{display:flex;align-items:center;gap:6px;font-size:20px;letter-spacing:-1px;color:var(--ink);white-space:nowrap}.brand span{color:#a4246e}.brand::before{content:'✦';display:grid;place-items:center;width:28px;height:28px;border:1.5px solid var(--line);border-radius:50%;background:var(--lime);font-size:23px;transform:rotate(-12deg);box-shadow:2px 2px 0 var(--line)}.brand::after{content:'TICKETMATCH';font:700 9px/1.2 'Courier New',monospace;letter-spacing:1px;align-self:end;margin:0 0 6px 3px}
main{padding:8px;gap:7px}.topbar{background:var(--paper);border:1.5px solid var(--line);border-radius:10px;box-shadow:3px 3px 0 #c6b3dc;padding:8px;gap:6px}
label{color:var(--muted);font-weight:700}button{border:1.5px solid var(--line);border-radius:6px;background:#fffdfb;color:var(--ink);box-shadow:1px 2px 0 #bfb0cd;transition:transform .12s ease,box-shadow .12s ease,background .12s ease;font-weight:700}
button:hover{background:#f1e6ff;transform:translateY(-1px);box-shadow:1px 3px 0 #ac96c1}button:active{transform:translate(1px,1px);box-shadow:0 0 0 transparent}button.primary{background:var(--pink);border-color:var(--line);color:var(--ink)}button.primary:hover{background:#ffb2da}button.active{background:var(--lime);border-color:var(--line);color:var(--ink)}button:disabled{transform:none;box-shadow:none;opacity:.45}
header button{font-size:12px;padding:5px 9px}header #capture::before{content:'＋ ';font-weight:900}header #capture{background:var(--pink)}header #manage{background:#f9f2ff}
input,select{background:#fff;color:var(--ink);border:1px solid #a292ae;border-radius:5px;font-variant-numeric:tabular-nums;height:33px;box-shadow:inset 0 1px 2px #3026410b}input::placeholder{color:#81738b}input:focus,select:focus{outline:2px solid #ae75d7;outline-offset:1px}button:focus-visible,a:focus-visible{outline:3px solid #9471d2;outline-offset:3px}input[type=checkbox]{accent-color:#8656ae;box-shadow:none}
#save{background:var(--lime);min-width:48px}.subbar{min-height:26px;gap:8px}#status{color:#6a3984;font-weight:600}#memo{background:#fffdf7}#selection{color:#592d75}.showinfo{padding:3px 5px;color:var(--ink)}.showinfo span{color:var(--muted)}.showinfo a{color:#75378b}.showinfo button[data-session]{background:#f0e6ff}.showinfo button.active{background:var(--lime)}
.workspace{gap:8px;grid-template-columns:minmax(0,1fr) 292px}.panel{border:1.5px solid var(--line);border-radius:10px;box-shadow:3px 3px 0 #c6b3dc;background:var(--paper)}.panelhead{background:var(--blue);border-bottom:1.5px solid var(--line);min-height:37px;padding:6px 9px}.panelhead strong{font-size:13px;display:flex;align-items:center;gap:7px}.panelhead strong::before{content:'';width:8px;height:8px;flex-shrink:0;border:1px solid var(--line);background:#fffef9;box-shadow:11px 0 0 var(--pink);margin-right:10px;border-radius:2px}.panelhead small{color:#564d64;font-size:11px;font-weight:400}.panelhead button{font-size:11px}.workspace aside .panelhead{background:var(--pink)}.count{color:var(--ink);font:700 12px 'Courier New',monospace;background:#fff8fc;border:1px solid var(--line);padding:3px 6px;border-radius:20px}
.mapviewport{background:#eceff3}.legend{background:#f5effe;border-top:1px solid #b8a8ca;color:#60516e;font-size:11px;padding:5px 9px}.dot{background:#8053aa}.seat.selected{fill:#8656ae;stroke:#fff;stroke-width:3}.seat:hover,.seat:focus{fill:#d9f77b;stroke:#695082}.maplabel text{fill:var(--ink)}.maplabel rect{fill:#fffdf7}
.bulkpay{border-bottom:1px dashed #b7a5c4;background:#fff4fa;padding:7px 8px;gap:5px}.bulkpay button{font-size:10px;box-shadow:none}#tickets{padding:4px 9px}.ticket{position:relative;margin:7px 0 11px;padding:10px 8px;border:1px solid #b9a5c9;border-radius:6px;background:white;box-shadow:2px 3px 0 #eee3f4;transition:background .15s ease,box-shadow .15s ease}.ticket::after{content:'';display:block;border-top:1px dashed #cebbdc;margin:9px -8px -3px}.ticket.is-focused{background:#f1e6ff;box-shadow:2px 3px 0 #b6a0ce;padding-left:8px;border-color:#785191}.ticket p{font-size:12px;color:var(--ink)}.ticket .memo{font-size:11px;color:#6c5b79}.tickethead button{box-shadow:none}.ticketbadge{border:1px solid #30264155;border-radius:50%;height:23px;min-width:23px;font-weight:800}.tickethead b{font-size:13px}.empty{padding:35px 12px;color:#756383;line-height:1.7}.empty::before{content:'✦';display:block;font-size:34px;color:#9670b4;margin-bottom:7px}
dialog{background:var(--paper);color:var(--ink);border:2px solid var(--line);border-radius:12px;box-shadow:6px 7px 0 #30264155;padding:18px;animation:dialog-in .16s ease-out}dialog::backdrop{background:#30264155;backdrop-filter:blur(2px)}dialog h2{font-size:17px;color:var(--ink)}.batchhead{padding-bottom:10px;border-bottom:1px dashed #b49cc8;margin-bottom:12px}#ocrdrop{border:2px dashed #a77bc0;background:#f1e8ff;color:#5c416e;border-radius:8px;padding:16px}#ocrdrop.dragover{background:#e5f8a8}#ocrprogress,#ocrnotice,#searchstatus{color:#685177;font-size:12px}.batchtable th{background:var(--lavender);color:var(--ink)}.batchtable td,.batchtable th{border-bottom-color:#d8c7e5}.batchtable small{color:#74647e}#searchresults button{padding:11px;background:#fff;margin-bottom:9px;box-shadow:2px 3px 0 #ded0eb}#searchresults button:hover{background:#f5eaff}#searchresults small{color:#6f617c;line-height:1.5}#searchdialog>small{color:#776981;font-size:11px}.searchline{margin-top:12px}#previewdetails{color:#685177}
@keyframes dialog-in{from{opacity:0;transform:translateY(6px) scale(.99)}to{opacity:1;transform:none}}
@media(max-width:950px){.workspace{grid-template-columns:minmax(0,1fr) 245px}.brand::after{display:none}.panelhead strong{flex-wrap:wrap;gap:3px}.panelhead small{font-size:10px}}
@media(max-width:600px){header{height:44px;padding:0 7px;gap:4px}.brand{font-size:17px;gap:3px}.brand::before{width:23px;height:23px;font-size:19px}.headeractions{gap:3px}header button{font-size:10px;padding:4px 5px}main{padding:5px;gap:5px}.workspace{grid-template-columns:minmax(0,1fr) 150px;gap:5px}.topbar{padding:6px}.panelhead strong{font-size:12px}.panelhead strong::before{display:none}.bulkpay{flex-wrap:wrap}.ticket{padding:7px 5px}.tickethead b{font-size:12px}.ticket::after{margin-left:-5px;margin-right:-5px}.legend{font-size:10px;gap:5px}.showinfo{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}button:hover,button:active{transform:none}}

/* Keep the requested title font within the original kidcore direction. */
@font-face{font-family:'TtukttakGamja';src:url('https://cdn.jsdelivr.net/gh/Project-Noonnu/2610081905@tuktakpotato/tuktakpotato/tuktakpotato.woff2') format('woff2');font-weight:400;font-display:swap}
.brand{font-family:'TtukttakGamja',sans-serif;font-weight:400;font-size:30px;letter-spacing:-.8px}.brand::before{transform:none;font-family:Georgia,serif}.brand::after{align-self:center;margin:0 0 0 4px}.ticket,.ticketbadge,.count{transform:none}
@media(max-width:600px){.brand{font-size:24px}.brand::after{display:none}}

@font-face{font-family:'DeltaDotum';src:url('https://cdn.jsdelivr.net/gh/Project-Noonnu/2608201744@deltadotumkr/deltadotumkr/DeltaDotumKR.woff2') format('woff2');font-weight:400;font-display:swap}
body{font-family:'DeltaDotum','Apple SD Gothic Neo','Malgun Gothic',sans-serif}
button,input,select,textarea{font-family:inherit}
label,button,.tickethead b,.panelhead strong,.batchtools strong{font-weight:400}
.count,.brand::after{font-family:'DeltaDotum',monospace;font-weight:400}
.maplabel text{font-family:'DeltaDotum','Apple SD Gothic Neo',sans-serif;font-weight:400}
/* Compensate for the dot font's smaller visible letterforms. */
body{font-size:14px}label{font-size:12px}header button{font-size:13px}.panelhead strong{font-size:14px}.panelhead small,.legend,.count{font-size:12px}.ticket p,.tickethead b{font-size:14px}.ticket .memo{font-size:12px}.tickethead button,.bulkpay button,.subbar button{font-size:12px}.empty{font-size:14px}.showinfo{font-size:12px}.showinfo button,.showinfo a{font-size:12px}.batchtable input,.batchtable select{font-size:14px}
@media(max-width:600px){header button{font-size:11px}.panelhead strong{font-size:13px}.tickethead button,.bulkpay button{font-size:11px}.ticket p{font-size:12px}}
/* Quiet metadata, available on demand. */
.showinfo{gap:7px;min-height:22px;padding:0 4px}.venuebrief{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:55%}.showdetails{position:relative;margin-left:auto}.showdetails summary,.datacredit summary{cursor:pointer;color:#776780;font-size:11px;list-style:none}.showdetails summary::after,.datacredit summary::after{content:' +'} .showdetails[open] summary::after,.datacredit[open] summary::after{content:' −'}.showdetailbody{position:absolute;right:0;top:22px;z-index:10;background:#fffdf8;border:1px solid #b9a5c9;border-radius:6px;box-shadow:2px 3px #ded0eb;padding:12px;width:min(420px,85vw);font-size:12px;line-height:1.6}.showdetailbody p{margin:5px 0}.showdetailbody button,.showdetailbody a{margin:3px}.datacredit{position:relative;margin-left:auto}.datacredit>div{position:absolute;bottom:23px;right:0;width:290px;max-width:80vw;padding:10px;border:1px solid #b9a5c9;border-radius:5px;background:#fffdf8;color:#6b5b75;z-index:10;font-size:12px;line-height:1.6}.legend{overflow:visible}.panel:has(.datacredit[open]){overflow:visible}.datacredit a{color:#68448b}
