/* ═══════════════════════════════════════════
   ADMIN.CSS — tables, admin panels, reports
═══════════════════════════════════════════ */

/* ADMIN */
#adm{display:none}
.adm-panel{display:none}
.adm-panel.on{display:block}

/* Layout principal do admin */
.adm-layout{display:flex;min-height:100vh}

/* Sidebar */
.adm-sidebar{width:220px;min-width:220px;background:var(--bg2);border-right:1px solid var(--bdr);
  display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}
.adm-sidebar-logo{padding:20px 20px 16px;border-bottom:1px solid var(--bdr)}
.adm-sidebar-title{font-family:var(--ff);font-size:14px;font-weight:500;color:var(--ft);letter-spacing:1.5px}
.adm-sidebar-sub{font-size:9px;color:var(--go);letter-spacing:3px;text-transform:uppercase;margin-top:2px}
.adm-sidebar-nav{padding:12px 0;flex:1}
.adm-sidebar-footer{padding:16px 20px;border-top:1px solid var(--bdr)}

/* Grupo de navegação */
.adm-nav-group{width:100%;display:flex;align-items:center;gap:10px;padding:10px 20px;
  border:none;cursor:pointer;background:transparent;color:var(--mu);font-size:13px;
  font-weight:400;font-family:inherit;transition:all .12s;text-align:left;
  border-left:3px solid transparent}
.adm-nav-group.on{background:var(--bg3);color:var(--ft);font-weight:600;border-left-color:var(--go)}
.adm-nav-group:hover:not(.on){background:var(--bg3);opacity:.7}
.adm-nav-icon{font-size:16px}

/* Sub-itens */
.adm-nav-subs{padding-left:20px;padding-bottom:4px;overflow:hidden;
  max-height:200px;transition:max-height .2s ease}
.adm-nav-subs.collapsed{max-height:0;padding-bottom:0}
.adm-nav-sub{width:100%;display:block;padding:7px 14px 7px 30px;border:none;cursor:pointer;
  text-align:left;background:transparent;color:var(--mu);font-size:12px;font-weight:400;
  font-family:inherit;border-radius:6px;transition:all .12s}
.adm-nav-sub.on{background:color-mix(in srgb,var(--go) 15%,transparent);color:var(--go);font-weight:500}
.adm-nav-sub:hover:not(.on){color:var(--ft)}

/* Conteúdo principal */
.adm-main{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}
.adm-topbar{background:var(--bg2);border-bottom:1px solid var(--bdr);padding:12px 24px;
  display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:50}
.adm-topbar-title{font-size:16px;font-weight:600;color:var(--ft)}
.adm-topbar-sub{font-size:11px;color:var(--mu);margin-top:2px}
.adm-topbar-right{display:flex;align-items:center;gap:10px}
.adm-content{flex:1;overflow-y:auto}
.adm-content .adm-panel{padding:24px}

/* Painel colapsável de venda */
#sell-left-panel{width:300px;min-width:300px;border-right:1px solid var(--bdr);
  background:var(--bg2);overflow-y:hidden;transition:width .25s ease,min-width .25s ease}
#sell-left-panel.sell-panel-collapsed{width:240px;min-width:240px}

/* Tables */
.tbl-wrap{overflow-x:auto;border-radius:var(--r);border:1px solid var(--bdr)}
table{width:100%;border-collapse:collapse;font-size:.8rem}
th{background:var(--bg3);color:var(--mu);font-weight:500;font-size:.68rem;
  letter-spacing:.06em;text-transform:uppercase;padding:.55rem .75rem;text-align:left;
  border-bottom:1px solid var(--bdr);white-space:nowrap}
td{padding:.5rem .75rem;border-bottom:1px solid var(--bdr);vertical-align:middle}
tr:last-child td{border-bottom:none}
tr:hover td{background:#ffffff04}

/* Badges */
.badge{display:inline-block;padding:.15rem .55rem;border-radius:20px;font-size:.65rem;font-weight:500}
.badge-gr{background:#6B9A7222;color:var(--gr);border:1px solid #6B9A7244}
.badge-er{background:#B8505022;color:var(--er);border:1px solid #B8505044}
.badge-or{background:#C8945A22;color:var(--or);border:1px solid #C8945A44}
.badge-mu{background:var(--bg3);color:var(--mu);border:1px solid var(--bdr)}
.badge-bl{background:#5a8fc422;color:var(--bl);border:1px solid #5a8fc444}

/* Cards */
.card{background:var(--bg2);border:1px solid var(--bdr);border-radius:var(--r2);padding:1rem}
.card-title{font-family:var(--ff);font-size:1rem;color:var(--pkl);margin-bottom:.8rem;font-weight:500}
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.7rem;margin-bottom:1rem}
.kpi{background:var(--bg3);border:1px solid var(--bdr);border-radius:var(--r);padding:.8rem 1rem}
.kpi-val{font-family:var(--fm);font-size:1.3rem;color:var(--pkl);font-weight:500}
.kpi-lab{font-size:.65rem;color:var(--mu);margin-top:.2rem;text-transform:uppercase;letter-spacing:.06em}

/* Checkbox */
.fam-check label{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.3rem 0}
.fam-check input[type=checkbox]{accent-color:var(--pk);width:14px;height:14px;cursor:pointer}

/* Batch grid */
.batch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.5rem;margin:.7rem 0}
.bq-inp label{display:block;font-size:.65rem;color:var(--mu);margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.04em}
.bq-inp input{width:100%;padding:.4rem .5rem;background:var(--bg3);border:1px solid var(--bdr);
  border-radius:6px;color:var(--ft);font-size:.82rem;text-align:center}

/* Events editor */
.ev-card{background:var(--bg3);border:1px solid var(--bdr);border-radius:var(--r);
  padding:.8rem 1rem;margin-bottom:.6rem;display:flex;align-items:center;gap:.7rem}
.ev-card .ev-name{flex:1;font-weight:500;font-size:.88rem}
.ev-card .ev-date{font-size:.72rem;color:var(--mu)}
.ev-card .ev-open{font-size:.68rem;font-family:var(--fm);color:var(--or)}

/* MODAL */
#mo-ov{position:fixed;inset:0;background:#00000088;z-index:500;display:none;
  align-items:center;justify-content:center;padding:1rem;backdrop-filter:blur(3px)}
#mo-ov.on{display:flex}
#mo-box{background:var(--bg2);border:1px solid var(--bdr);border-radius:var(--r2);
  padding:1.5rem;width:100%;max-width:min(760px,95vw);box-shadow:var(--shadow)}
#mo-title{font-family:var(--ff);font-size:1.1rem;color:var(--pkl);margin-bottom:.8rem;font-weight:500}
#mo-body{font-size:.85rem;line-height:1.6;color:var(--ft);margin-bottom:.8rem}
#mo-extra{margin-bottom:.8rem}
.mo-btns{display:flex;gap:.5rem;justify-content:flex-end}

/* TOAST */
#toast{position:fixed;bottom:1.2rem;left:50%;transform:translateX(-50%) translateY(80px);
  background:var(--bg3);border:1px solid var(--bdr);border-radius:8px;padding:.6rem 1rem;
  font-size:.82rem;z-index:900;opacity:0;transition:all .3s;white-space:nowrap;pointer-events:none}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
#toast.ok{border-color:var(--gr);color:var(--gr)}
#toast.error{border-color:var(--er);color:var(--er)}
#toast.warn{border-color:var(--or);color:var(--or)}

/* RECEIPT PRINT */
@media print {
  body > *:not(#print-area){display:none!important}
  #print-area{display:block!important}
  .receipt-page-header{display:none!important}
  @page{size:A4;margin:8mm}
  .receipt{padding:4mm 6mm!important;margin-bottom:2mm!important}
  .receipt-header{margin-bottom:2mm!important}
  .receipt-title{font-size:10pt!important}
  .receipt-event{font-size:8pt!important;margin-top:0!important}
  .receipt-body{font-size:8.5pt!important;line-height:1.3!important}
  .receipt-seats{font-size:8pt!important;padding:1mm 3mm!important;margin:1mm 0!important}
  .receipt-sign{margin-top:2mm!important;padding-top:1mm!important;font-size:7.5pt!important}
  .receipt-code{font-size:6.5pt!important}
}
#print-area{display:none}
.receipt-page{font-family:'DM Sans',sans-serif;color:#111}
.receipt{border:1px solid #ccc;border-radius:6px;padding:10mm 12mm;
  margin-bottom:4mm;page-break-inside:avoid;position:relative}
.receipt:not(:last-child)::after{content:'';display:block;border-bottom:1px dashed #ccc;
  position:absolute;bottom:-2mm;left:0;right:0}
.receipt-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:4mm}
.receipt-title{font-size:13pt;font-weight:700;color:#8a2f50}
.receipt-event{font-size:9pt;color:#666;margin-top:1mm}
.receipt-body{font-size:10pt;line-height:1.7}
.receipt-body strong{color:#111}
.receipt-seats{font-family:monospace;font-size:9.5pt;background:#f5f5f5;
  padding:2mm 4mm;border-radius:3px;margin:2mm 0;display:inline-block}
.receipt-sign{margin-top:5mm;border-top:1px solid #aaa;padding-top:2mm;
  font-size:8.5pt;color:#888;display:flex;justify-content:space-between}
.receipt-code{font-family:monospace;font-size:7.5pt;color:#aaa}

/* SECTION HEADERS */
.sec-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:.9rem;flex-wrap:wrap;gap:.5rem}
.sec-hdr h3{font-family:var(--ff);font-size:1.05rem;color:var(--pkl);font-weight:500}

/* Search */
.search-wrap{position:relative;flex:1;max-width:280px}
.search-wrap input{width:100%;padding:.42rem .75rem .42rem 2.2rem;background:var(--bg3);
  border:1px solid var(--bdr);border-radius:8px;color:var(--ft);font-size:.8rem}
.search-wrap::before{content:'⌕';position:absolute;left:.7rem;top:50%;transform:translateY(-50%);
  color:var(--mu);font-size:1rem;pointer-events:none;opacity:.6;z-index:1}

/* RESPONSIVE */
@media(max-width:768px){
  .adm-layout{flex-direction:column}
  .adm-sidebar{width:100%;min-width:100%;height:auto;position:relative;
    flex-direction:row;flex-wrap:wrap;overflow:visible}
  .adm-sidebar-logo{padding:12px 16px;border-bottom:none;border-right:1px solid var(--bdr)}
  .adm-sidebar-nav{display:flex;flex-wrap:wrap;gap:2px;padding:8px;flex:1}
  /* Cada item é uma coluna: botão de grupo + submenus abaixo dele */
  .adm-nav-item{display:flex;flex-direction:column}
  .adm-nav-group{padding:8px 12px;font-size:12px}
  /* Esconde só submenus fechados; o aberto aparece colado abaixo do seu grupo */
  .adm-nav-subs{display:none}
  .adm-nav-subs:not(.collapsed){
    display:flex;flex-wrap:wrap;gap:4px;padding:4px 6px 6px;
    border-top:1px solid var(--bdr)
  }
  .adm-nav-sub{
    padding:5px 14px;font-size:11px;border-radius:14px;
    border:1px solid var(--bdr);background:var(--bg3);
    width:auto;display:inline-block
  }
  .adm-sidebar-footer{padding:8px 12px;border-top:none;border-left:1px solid var(--bdr)}
  #sell-left-panel{width:100%;min-width:100%;border-right:none;border-bottom:1px solid var(--bdr)}
  #sell-layout{flex-direction:column;height:auto}
}
