*{box-sizing:border-box}
:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#232323;background:#fff;font-synthesis:none}
body{margin:0;font-size:14px;line-height:1.45}
[hidden]{display:none!important}
button,input,select{font:inherit}
button,a,input,select{outline-offset:3px;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button{cursor:pointer;-webkit-appearance:none;appearance:none}
button:focus:not(:focus-visible),a:focus:not(:focus-visible){outline:none}
button:focus-visible,a:focus-visible{outline:2px solid #666}
button:disabled{opacity:.4;cursor:default}
a{color:inherit;text-decoration:none}
h1,h2,p{margin:0}
h1{font-size:28px;line-height:1.2;letter-spacing:-.7px;font-weight:600}
h2{font-size:20px;line-height:1.3;letter-spacing:-.35px;font-weight:600}
.header{max-width:1120px;margin:auto;height:88px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e8e8e8;gap:16px;padding:0 2px}
.brand{display:inline-flex;align-items:center;min-height:44px;border-radius:4px;font-size:20px;font-weight:650;letter-spacing:-.5px}
.header-actions{display:flex;align-items:center;gap:24px}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 16px;border:1px solid #dcdcdc;border-radius:5px;background:#fff;color:#292929;white-space:nowrap;font-weight:500;font-size:13px}
.button.primary{background:#252525;border-color:#252525;color:#fff}
.text-button{min-height:44px;padding:8px 4px;background:none;border:0;border-radius:4px;color:#6a6a6a;font-size:13px}
main{max-width:1120px;margin:0 auto;padding:44px 0 60px}
.tabs{display:flex;gap:30px;border-bottom:1px solid #e8e8e8;margin-bottom:28px}
.tab{display:flex;align-items:baseline;gap:10px;padding:0 0 16px;margin-bottom:-1px;border:0;border-bottom:2px solid transparent;background:none;color:#8b8b8b;font-size:23px;font-weight:550;letter-spacing:-.5px}
.tab[aria-selected=true]{color:#232323;border-bottom-color:#232323}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:34px 0 46px}
.metric span{display:block;font-size:13px;color:#777}
.metric strong{display:block;margin-top:10px;font-size:32px;font-weight:550;letter-spacing:-.8px;font-variant-numeric:tabular-nums}
.analytics-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
.analytics-heading h2{font-size:18px}
.analytics-heading h2 span{font-size:12px;font-weight:400;letter-spacing:0;margin-left:6px}
.analytics-heading select{width:auto;min-height:36px;padding:6px 10px;font-size:13px}
#analytics-status:not(:empty){margin:24px 0}
#analytics-table table{width:100%;border-collapse:collapse;table-layout:fixed;font-variant-numeric:tabular-nums}
#analytics-table th,#analytics-table td{padding:14px 12px;border-bottom:1px solid #eee;text-align:right;font-weight:400}
#analytics-table th:first-child{text-align:left}
#analytics-table thead th{color:#777;font-size:12px;border-top:1px solid #eee}
#analytics-table tbody th{color:#555}
.count{font-variant-numeric:tabular-nums;color:#888;font-size:15px}
.search-form{display:flex;gap:10px;margin-bottom:32px;max-width:720px}
input,select{display:block;width:100%;border:1px solid #d7d7d7;border-radius:5px;background:#fff;color:#242424;min-height:44px;padding:10px 13px}
input::placeholder{color:#939393}
input:focus,select:focus{border-color:#626262;outline:0;box-shadow:0 0 0 1px #626262}
.search-form input{height:50px;font-size:16px;min-width:0}
.search-form .button{padding:10px 23px}
.content{display:grid;grid-template-columns:minmax(0,1fr);gap:44px;align-items:start}
.content.selected{grid-template-columns:minmax(0,1fr) 352px}
.results{min-width:0}
.person-row{width:100%;display:flex;align-items:center;gap:14px;padding:18px 12px;border:0;border-bottom:1px solid #ececec;background:#fff;text-align:left;color:inherit}
.person-row:first-child{border-top:1px solid #ececec}
.person-row.selected .person-name{text-decoration:underline;text-decoration-color:#b8b8b8;text-underline-offset:4px}
.avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:#eeeeec;color:#757575;font-size:14px;font-weight:500;flex-shrink:0;overflow:hidden;letter-spacing:-.3px}
.avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#eee}
.avatar.large{width:60px;height:60px;font-size:20px}
.person-identity{min-width:0;flex:1}
.person-name{display:block;font-size:15px;font-weight:550;overflow-wrap:anywhere}
.person-meta{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:4px;color:#8b8b8b;font-size:12px;font-variant-numeric:tabular-nums}
.row-tickets{display:flex;align-items:baseline;gap:6px;white-space:nowrap;margin-left:12px;font-variant-numeric:tabular-nums}
.row-tickets strong{font-weight:550;font-size:16px}
.row-tickets span{font-size:12px;color:#8b8b8b}
.pagination{display:flex;align-items:center;justify-content:space-between;margin-top:20px;font-size:12px;color:#888}
.empty{padding:42px 12px;border-top:1px solid #ececec;color:#777;font-size:14px}
.person{position:sticky;top:24px;border:1px solid #e2e2e2;border-radius:6px;padding:24px}
.person-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}
.person h2{overflow-wrap:anywhere;font-size:21px}
.person .person-meta{margin-top:7px}
.balance{margin:28px 0 22px;display:flex;align-items:baseline;gap:10px}
.balance strong{font-size:42px;letter-spacing:-1.5px;font-weight:550;line-height:1;font-variant-numeric:tabular-nums}
.balance span{color:#777;font-size:14px}
.ticket-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.person-status{margin-top:16px;font-size:12px;color:#956340}
.muted{color:#858585}
.error{color:#a63e36;font-size:13px;margin-top:14px}
.error:empty{display:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
dialog{width:420px;max-width:calc(100vw - 32px);border:1px solid #e1e1e1;border-radius:8px;padding:26px;color:inherit;box-shadow:0 12px 50px #00000015}
dialog::backdrop{background:#00000038}
.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}
.dialog-heading .text-button{flex-shrink:0}
.dialog-heading+p{font-size:13px;margin-bottom:23px;overflow-wrap:anywhere}
label{display:block;font-size:13px;margin:20px 0 8px}
label .muted{font-size:12px;margin-left:5px}
.quantity{font-size:24px;font-variant-numeric:tabular-nums;height:56px}
.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}
.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#282828;color:#fff;font-size:13px;padding:12px 20px;border-radius:5px;max-width:calc(100vw - 32px);z-index:20}
.login{display:grid;place-items:center;min-height:100vh;padding:24px}
.login-form{width:320px;max-width:100%}
.login-form h1{margin-bottom:32px}
.login-form .button{width:100%;margin-top:24px}
@media(max-width:1200px){.header{margin:0 32px}main{margin:0 32px}.content{gap:28px}}
@media(max-width:850px){.content.selected{grid-template-columns:minmax(0,1fr) 310px}.person{padding:20px}.row-tickets{flex-direction:column;gap:0}.person-meta{font-size:11px}.person-row{padding-left:8px;padding-right:8px;gap:10px}}
@media(max-width:700px){.header{margin:0 20px;height:76px}.header-actions{gap:18px}.header-actions .button{font-size:12px;padding:8px 12px}.brand{font-size:18px}main{margin:0 20px;padding-top:30px}.page-title{margin-bottom:20px}h1{font-size:26px}.search-form{margin-bottom:24px}input,select,.search-form input,.analytics-heading select{font-size:16px}.analytics-heading select{min-height:44px}.search-form .button{padding:9px 16px}.content.selected{grid-template-columns:1fr;gap:24px}.person{position:static;grid-row:1}.person-top{margin-bottom:16px}.person .avatar.large{height:48px;width:48px}.person .balance{margin-top:22px}.person-row{padding:16px 0}.row-tickets{flex-direction:row;gap:6px}.person-name{font-size:14px}.person-meta{gap:3px 8px}.avatar{width:40px;height:40px}.header-actions .text-button{font-size:12px}.row-tickets strong{font-size:15px}.row-tickets span{font-size:11px}.content{gap:24px}}
@media(hover:hover) and (pointer:fine){
  .button:hover:not(:disabled):not([aria-disabled=true]){background:#f6f6f6;border-color:#bfbfbf}
  .button.primary:hover:not(:disabled){background:#414141;border-color:#414141}
  .text-button:hover:not(:disabled){color:#171717;text-decoration:underline;text-underline-offset:3px}
  .tab:hover{color:#232323}
  .person-row:hover{background:#fafafa}
}
.button:active:not(:disabled):not([aria-disabled=true]){background:#ededed;border-color:#b8b8b8}
.button.primary:active:not(:disabled){background:#4b4b4b;border-color:#4b4b4b}
.text-button:active:not(:disabled),.tab:active,.brand:active{opacity:.65}
.person-row:active{opacity:.7}
@media(prefers-reduced-motion:no-preference){button,a{transition:background-color .12s,border-color .12s,color .12s,opacity .12s}}

.quantity:read-only{background:#f6f6f6;color:#777}

@media(max-width:700px){.tabs{gap:24px;margin-bottom:24px}.tab{font-size:21px;gap:8px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 18px;margin:26px 0 36px}.metric span{font-size:12px}.metric strong{font-size:28px}.header-actions{gap:16px}#analytics-table th,#analytics-table td{padding:12px 5px;font-size:12px}#analytics-table thead th{font-size:11px}}

.button[aria-disabled=true]{opacity:.5;cursor:wait}
body.miniapp{padding:var(--tg-content-safe-area-inset-top,0px) var(--tg-content-safe-area-inset-right,0px) max(var(--tg-content-safe-area-inset-bottom,0px),env(safe-area-inset-bottom,0px)) var(--tg-content-safe-area-inset-left,0px)}
.miniapp .login{min-height:var(--tg-viewport-stable-height,100dvh)}
