:root{--od-primary:#6f42c1;--od-primary-2:#9b6de3;--od-dark:#151126;--od-bg:#f6f5fa;--od-border:#e8e3f1;--od-shadow:0 12px 36px rgba(38,24,66,.09)}
*{box-sizing:border-box}body{background:var(--od-bg);color:#2b2636;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}.app-shell{min-height:100vh}.sidebar{background:linear-gradient(180deg,#181128,#251743);color:#fff;width:270px;position:fixed;inset:0 auto 0 0;z-index:1040;overflow:auto}.brand{display:flex;align-items:center;gap:.75rem;padding:1.35rem 1.2rem;border-bottom:1px solid #ffffff17}.brand img{width:42px;height:42px}.brand strong{font-size:1.2rem}.sidebar .nav-link{color:#d7cdea;border-radius:.75rem;margin:.16rem .75rem;padding:.68rem .85rem;font-weight:600}.sidebar .nav-link:hover,.sidebar .nav-link.active{background:#ffffff15;color:#fff}.main{margin-left:270px;min-width:0}.topbar{height:72px;background:#ffffffd9;backdrop-filter:blur(14px);border-bottom:1px solid var(--od-border);position:sticky;top:0;z-index:1030}.page{padding:1.5rem;max-width:1600px;margin:auto}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.page-title{font-weight:800;letter-spacing:-.03em;margin:0}.eyebrow{font-size:.74rem;text-transform:uppercase;letter-spacing:.12em;color:var(--od-primary);font-weight:800}.card{border:1px solid var(--od-border);border-radius:1rem;box-shadow:var(--od-shadow)}.stat-card{height:100%;overflow:hidden}.stat-card .value{font-size:1.65rem;font-weight:800;letter-spacing:-.04em}.stat-card::before{content:"";display:block;height:4px;background:linear-gradient(90deg,var(--od-primary),#d16ba5)}.btn-primary{--bs-btn-bg:var(--od-primary);--bs-btn-border-color:var(--od-primary);--bs-btn-hover-bg:#5f35ae;--bs-btn-hover-border-color:#5f35ae}.form-control,.form-select{border-color:#ded8e8;border-radius:.7rem;min-height:44px}.form-control:focus,.form-select:focus{border-color:#a98ade;box-shadow:0 0 0 .2rem #6f42c121}.list-stack{display:grid;gap:.8rem}.list-card{display:flex;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid var(--od-border);border-radius:.85rem;background:#fff}.meta{color:#777083;font-size:.88rem}.avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;background:#ede8f4}.badge-soft{background:#eee7fb;color:#553091}.tableless-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.empty{padding:3rem 1rem;text-align:center;color:#837c90}.money-in{color:#157347}.money-out{color:#b02a37}.public-page{min-height:100vh;background:radial-gradient(circle at top right,#e8ddff,transparent 40%),var(--od-bg)}.hero-event{background:linear-gradient(135deg,#1c1331,#7043ba);color:#fff;border-radius:1.4rem;padding:2rem}.ticket-row{border:1px solid var(--od-border);border-radius:.85rem;padding:1rem}.print-only{display:none}
.completion-ring{--value:0;width:112px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--od-primary) calc(var(--value)*1%),#ece8f2 0);position:relative}.completion-ring::before{content:"";position:absolute;inset:10px;border-radius:50%;background:#fff}.completion-ring strong{position:relative;font-size:1.35rem}.scan-box{max-width:520px;aspect-ratio:1;border:2px dashed var(--od-primary);border-radius:1rem;overflow:hidden;background:#16111f}.scan-box video{width:100%;height:100%;object-fit:cover}.ticket-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em}
@media(min-width:1024px){.list-stack{gap:0;border:1px solid var(--od-border);border-radius:1rem;overflow:hidden;background:#fff}.list-card{border:0;border-bottom:1px solid var(--od-border);border-radius:0;box-shadow:none;align-items:center}.list-card:last-child{border-bottom:0}.tableless-grid{grid-template-columns:1fr;gap:0;border:1px solid var(--od-border);border-radius:1rem;overflow:hidden;background:#fff}.tableless-grid>.card{border:0;border-bottom:1px solid var(--od-border);border-radius:0;box-shadow:none}.tableless-grid>.card:last-child{border-bottom:0}}
@media(max-width:991.98px){.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.show{transform:none}.main{margin-left:0}.page{padding:1rem}.page-header{align-items:center}.list-card{flex-direction:column}.topbar{height:62px}}
@media print{.sidebar,.topbar,.no-print{display:none!important}.main{margin:0}.page{padding:0}.card{box-shadow:none}.print-only{display:block}}
