:root {
  --bg:        #0b0b0d;
  --surface:   #16161a;
  --surface-2: #1d1d22;
  --border:    #2a2a31;
  --gold:      #d4af37;
  --gold-bright:#f5c518;
  --gold-soft: #e8c766;
  --text:      #f4f4f4;
  --muted:     #a9a9b2;
  --danger:    #e0533d;
  --success:   #27ae60;
  --info:      #2980b9;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
body{background:var(--bg);color:var(--text);font-family:'Inter',system-ui,sans-serif;
     line-height:1.55;min-height:100vh;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,.brand{font-family:'Cinzel',serif;letter-spacing:.5px;}

/* Navbar */
.navbar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;
        padding:.8rem 2rem;background:#000;border-bottom:2px solid var(--gold);
        position:sticky;top:0;z-index:100;}
.brand{font-size:1.4rem;font-weight:700;color:var(--gold);white-space:nowrap;}
.brand span{color:var(--text);font-size:.75rem;display:block;
            font-family:'Inter',sans-serif;font-weight:400;letter-spacing:.05em;margin-top:-.2rem;}
.nav-links{display:flex;align-items:center;gap:1rem;margin-left:auto;}
.nav-links a{color:var(--muted);font-size:.875rem;transition:color .2s;}
.nav-links a:hover{color:var(--gold);}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem 1.2rem;
     border-radius:7px;font-size:.9rem;font-weight:600;cursor:pointer;border:none;
     transition:all .2s;white-space:nowrap;text-decoration:none;}
.btn-gold{background:linear-gradient(135deg,var(--gold-bright),var(--gold));color:#000;}
.btn-gold:hover{filter:brightness(1.1);}
.btn-outline{background:transparent;border:1px solid var(--border);color:var(--muted);}
.btn-outline:hover{border-color:var(--gold);color:var(--gold);}
.btn-outline-gold{background:transparent;border:1px solid var(--gold);color:var(--gold);}
.btn-outline-gold:hover{background:rgba(212,175,55,.1);}
.btn-danger{background:transparent;border:1px solid var(--danger);color:var(--danger);}
.btn-danger:hover{background:rgba(224,83,61,.1);}
.btn-success{background:var(--success);color:#fff;border:none;}
.btn-success:hover{filter:brightness(1.1);}
.btn-block{display:block;width:100%;text-align:center;padding:.75rem;}
.btn-lg{padding:.85rem 1.75rem;font-size:1rem;}
.btn-sm{padding:.35rem .75rem;font-size:.8rem;}

/* Layout */
.container{max-width:1200px;margin:0 auto;padding:2rem;}
.page-header{display:flex;align-items:flex-start;justify-content:space-between;
             margin-bottom:1.75rem;gap:1rem;flex-wrap:wrap;}
.page-header h1{font-size:1.8rem;}
.page-header p{color:var(--muted);margin-top:.3rem;}
.actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;}

/* Panels */
.panel{background:var(--surface);border:1px solid var(--border);
       border-radius:14px;padding:1.5rem;transition:border-color .2s;}
.panel:hover{border-color:rgba(212,175,55,.15);}
.panel-header{display:flex;align-items:center;justify-content:space-between;
              margin-bottom:1.25rem;padding-bottom:.9rem;border-bottom:1px solid var(--border);}
.panel-title{font-family:'Cinzel',serif;font-size:1.05rem;}

/* Stats */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
            gap:1rem;margin-bottom:2rem;}
.stat-card{background:var(--surface);border:1px solid var(--border);
           border-radius:12px;padding:1.25rem;transition:all .2s;}
.stat-card:hover{border-color:var(--gold);transform:translateY(-2px);}
.stat-number{font-size:2.2rem;font-weight:700;font-family:'Cinzel',serif;color:var(--text);}
.stat-number.gold{color:var(--gold);}
.stat-number.green{color:var(--success);}
.stat-number.red{color:var(--danger);}
.stat-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;
            color:var(--gold);opacity:.8;margin-top:.3rem;}

/* Ticket cards */
.ticket-card{background:var(--surface-2);border:1px solid var(--border);
             border-radius:10px;padding:.75rem 1rem;display:flex;
             align-items:center;gap:1rem;transition:all .2s;}
.ticket-card:hover{border-color:var(--gold);}
.ticket-number{font-family:monospace;font-size:1.1rem;color:var(--gold);
               font-weight:700;min-width:140px;}

/* Badges */
.badge{display:inline-block;padding:.18rem .55rem;border-radius:20px;
       font-size:.7rem;font-weight:600;letter-spacing:.03em;}
.badge-gold{background:rgba(212,175,55,.15);color:var(--gold);}
.badge-green{background:rgba(39,174,96,.15);color:var(--success);}
.badge-red{background:rgba(224,83,61,.15);color:var(--danger);}
.badge-blue{background:rgba(41,128,185,.15);color:var(--info);}
.badge-muted{background:rgba(255,255,255,.06);color:var(--muted);}

/* Forms */
.form-card{background:var(--surface);border:1px solid var(--border);
           border-radius:14px;padding:2rem;max-width:520px;margin:0 auto;}
.form-card.wide{max-width:720px;}
.form-group{margin-bottom:1rem;}
.form-label{display:block;font-size:.72rem;font-weight:600;text-transform:uppercase;
            letter-spacing:.06em;color:var(--gold);margin-bottom:.35rem;opacity:.85;}
.form-input,.form-select,.form-textarea{width:100%;padding:.65rem .85rem;
  background:var(--surface-2);border:1px solid var(--border);border-radius:8px;
  color:var(--text);font-size:.9rem;outline:none;}
.form-input:focus,.form-select:focus,.form-textarea:focus{
  border-color:var(--gold);box-shadow:0 0 0 3px rgba(212,175,55,.08);}
.form-input::placeholder{color:var(--muted);}
.form-select option{background:var(--surface-2);}
.form-textarea{resize:vertical;min-height:80px;font-family:inherit;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.form-hint{font-size:.75rem;color:var(--muted);margin-top:.25rem;}

/* Tables */
.table-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:.875rem;}
thead th{text-align:left;padding:.75rem 1rem;font-size:.68rem;text-transform:uppercase;
         letter-spacing:.08em;color:var(--muted);border-bottom:1px solid var(--border);font-weight:500;}
tbody tr{border-bottom:1px solid var(--border);transition:background .15s;}
tbody tr:last-child{border-bottom:none;}
tbody tr:hover{background:rgba(255,255,255,.02);}
tbody td{padding:.75rem 1rem;vertical-align:middle;}

/* Flash */
.flash-wrap{padding:1rem 2rem 0;}
.flash{padding:.75rem 1rem;border-radius:8px;margin-bottom:.5rem;
       border:1px solid;font-size:.875rem;display:flex;align-items:center;gap:.75rem;}
.flash-success{background:rgba(39,174,96,.12);border-color:rgba(39,174,96,.3);color:#2ecc71;}
.flash-danger{background:rgba(224,83,61,.12);border-color:rgba(224,83,61,.3);color:#e74c3c;}
.flash-info{background:rgba(212,175,55,.1);border-color:var(--gold);color:var(--gold-soft);}
.flash-warning{background:rgba(230,126,34,.12);border-color:rgba(230,126,34,.3);color:#e67e22;}

/* Kiosk */
.kiosk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
            gap:1.5rem;margin-top:2rem;}
.kiosk-btn{background:var(--surface);border:2px solid var(--border);border-radius:16px;
           padding:2rem 1.5rem;text-align:center;cursor:pointer;transition:all .25s;display:block;}
.kiosk-btn:hover{border-color:var(--gold);transform:translateY(-4px);
                 box-shadow:0 8px 32px rgba(212,175,55,.18);}
.kiosk-icon{font-size:2.8rem;margin-bottom:1rem;display:block;}
.kiosk-name{font-family:'Cinzel',serif;font-size:1.1rem;color:var(--text);margin-bottom:.4rem;}
.kiosk-desc{font-size:.8rem;color:var(--muted);}

/* Ticket receipt */
.ticket-receipt{max-width:420px;margin:0 auto;background:var(--surface);
                border:2px solid var(--gold);border-radius:16px;padding:2rem;text-align:center;}
.ticket-receipt .big-number{font-size:3.5rem;font-weight:700;font-family:monospace;
                             color:var(--gold);letter-spacing:.15em;margin:1rem 0;}

/* Sidebar layout */
.layout{display:grid;grid-template-columns:220px 1fr;min-height:100vh;}
.sidebar{background:#000;border-right:1px solid rgba(212,175,55,.2);
         padding:1.5rem 0;position:sticky;top:0;height:100vh;overflow-y:auto;}
.sidebar-brand{padding:0 1.25rem 1.5rem;border-bottom:1px solid rgba(212,175,55,.15);margin-bottom:1rem;}
.sidebar-brand .name{font-family:'Cinzel',serif;color:var(--gold);font-size:1.1rem;}
.sidebar-brand .sub{font-size:.65rem;color:var(--muted);letter-spacing:.06em;}
.nav-section{padding:.25rem 1.25rem;font-size:.62rem;color:var(--muted);
             letter-spacing:.12em;text-transform:uppercase;margin-top:.75rem;}
.nav-item{display:flex;align-items:center;gap:.65rem;padding:.55rem 1.25rem;
          color:var(--muted);font-size:.875rem;border-left:3px solid transparent;transition:all .15s;}
.nav-item:hover{color:var(--text);background:rgba(255,255,255,.03);border-left-color:rgba(212,175,55,.4);}
.nav-item.active{color:var(--gold);background:rgba(212,175,55,.08);border-left-color:var(--gold);}
.nav-icon{font-size:1rem;width:18px;text-align:center;}
.sidebar-footer{padding:1rem 1.25rem;border-top:1px solid rgba(255,255,255,.06);
                font-size:.78rem;color:var(--muted);}
.main-area{overflow:hidden;}
.topbar{background:var(--surface);border-bottom:1px solid var(--border);
        padding:.85rem 2rem;display:flex;align-items:center;
        justify-content:space-between;position:sticky;top:0;z-index:50;}

/* Misc */
.empty-state{text-align:center;padding:3rem;color:var(--muted);}
.text-gold{color:var(--gold);}
.text-muted{color:var(--muted);}
.text-green{color:var(--success);}
.text-red{color:var(--danger);}
.divider{border:none;border-top:1px solid var(--border);margin:1.25rem 0;}
.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}
.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}
.flex{display:flex}.gap-1{gap:.5rem}.gap-2{gap:1rem}
.flex-between{display:flex;align-items:center;justify-content:space-between;}

@media(max-width:768px){
  .layout{grid-template-columns:1fr;}
  .sidebar{display:none;}
  .form-row{grid-template-columns:1fr;}
  .kiosk-grid{grid-template-columns:1fr 1fr;}
}
