
/* FESTI ZOOLAND V67 — Shared Professional UI */
:root{
  --fz-bg:#f4f6fa; --fz-surface:#fff; --fz-ink:#111827; --fz-muted:#667085;
  --fz-line:#e4e7ec; --fz-primary:#5b4ce9; --fz-primary-dark:#4638c8;
  --fz-success:#087443; --fz-success-bg:#ecfdf3;
  --fz-warning:#b54708; --fz-warning-bg:#fffaeb;
  --fz-danger:#b42318; --fz-danger-bg:#fef3f2;
  --fz-radius:18px; --fz-shadow:0 14px 40px rgba(16,24,40,.06);
}
html{background:var(--fz-bg)}
body{
  color:var(--fz-ink)!important;
  background:
    radial-gradient(circle at 50% -10%,rgba(255,255,255,.95),transparent 38%),
    linear-gradient(180deg,#f7f8fb 0%,var(--fz-bg) 100%)!important;
  line-height:1.45;
}
a{transition:color .16s ease,background .16s ease,border-color .16s ease,transform .16s ease}
button{transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease}
h1,h2,h3,h4{color:var(--fz-ink);letter-spacing:-.04em;line-height:1.12}
.panel,.card,.info-card,.payment-card,.portal-card,.portal-kpi,.portal-login-card,.receipt-paper,.quick-card{
  border:1px solid var(--fz-line)!important;
  border-radius:var(--fz-radius)!important;
  box-shadow:var(--fz-shadow)!important;
}
.btn{
  min-height:40px;
  border-radius:11px!important;
  font-weight:850!important;
  box-shadow:none;
}
.btn:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(16,24,40,.09)}
.btn.secondary{border:1px solid var(--fz-line)!important;background:#f8fafc!important;color:#344054!important}
.btn.green{background:#087443!important}.btn.red{background:#d92d20!important}.btn.blue{background:#1570ef!important}
.search,.field input,.field select,.field textarea{
  border:1px solid #d7dce5!important;border-radius:12px!important;background:#fff;
  min-height:44px;outline:0;
}
.search:focus,.field input:focus,.field select:focus,.field textarea:focus{
  border-color:#7b70ee!important;box-shadow:0 0 0 4px rgba(91,76,233,.10)!important
}
.field label{font-weight:800!important;color:#344054}
.table-wrap{border:1px solid var(--fz-line);border-radius:15px;overflow:auto;background:#fff}
.table{border-collapse:separate;border-spacing:0}
.table th{
  background:#f8fafc!important;color:#475467!important;font-size:10px!important;
  text-transform:uppercase;letter-spacing:.05em;white-space:nowrap
}
.table td{vertical-align:middle!important}
.badge{padding:5px 9px!important}
.modal{backdrop-filter:blur(6px);background:rgba(15,23,42,.55)!important}
.modalbox{border:1px solid var(--fz-line)!important;border-radius:22px!important;box-shadow:0 30px 90px rgba(0,0,0,.22)!important}
.toast{border-radius:12px!important;box-shadow:0 16px 36px rgba(0,0,0,.18)!important}
.info{background:#f4f5ff!important;border-left-color:var(--fz-primary)!important}
.hero{border-radius:22px!important;box-shadow:0 22px 60px rgba(16,24,40,.14)}
.shell{background:transparent}
.sidebar{
  background:linear-gradient(180deg,#0b1020 0%,#12182b 100%)!important;
  border-right:1px solid rgba(255,255,255,.05);
}
.sidebar .brand{letter-spacing:-.04em}
.sidebar .nav button{border-radius:11px!important}
.sidebar .nav button.active{
  background:rgba(255,255,255,.09)!important;
  color:#fff!important;
  box-shadow:inset 3px 0 0 #7b70ee,0 5px 15px rgba(0,0,0,.12)
}
.top{min-height:52px}
.subtitle{line-height:1.5}
.cards{gap:14px}
.metric{letter-spacing:-.04em}
.stand{border-radius:13px!important;min-height:88px!important}
.stand:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(16,24,40,.08)}
.portal-page,.exhibitor-shell{max-width:1180px!important}
.portal-topbar,.exhibitor-header{padding-bottom:2px}
.portal-card{background:#fff!important}
.portal-info{min-height:74px}
.portal-status,.status-chip{box-shadow:0 2px 8px rgba(16,24,40,.04)}
.portal-btn{min-height:40px}
.portal-btn-primary{background:var(--fz-primary)!important}
.portal-btn-primary:hover{background:var(--fz-primary-dark)!important}
.portal-login-card{margin-top:6vh!important}
.receipt-grid{gap:12px}
@media(max-width:900px){
  .content{padding:20px 16px!important}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .layout{grid-template-columns:1fr!important}
}
@media(max-width:650px){
  .sidebar{position:sticky!important;top:0!important}
  .content{padding:14px!important}
  .top{align-items:flex-start!important}
  .cards{grid-template-columns:1fr!important}
  .hero{padding:22px!important}
  .table-wrap{border-radius:12px}
}
