
:root {
  --bg: #f5f8fc;
  --bg-soft: #eef4fb;
  --sidebar-bg: #fbfdff;
  --panel: #ffffff;
  --panel-2: #f8fbff;
  --text: #243042;
  --heading: #0f172a;
  --muted: #6b7a90;
  --primary: #2f80ed;
  --primary-contrast: #ffffff;
  --success: #16a34a;
  --warning: #f59e0b;
  --danger: #dc2626;
  --border: #dbe5f0;
  --input-bg: #ffffff;
  --input-text: #0f172a;
  --menu-bg: #f5f9ff;
  --menu-hover: #eaf2ff;
  --table-head: #f3f7fb;
  --table-row: #ffffff;
  --shadow: 0 12px 34px rgba(15, 23, 42, 0.07);
  --shadow-soft: 0 6px 18px rgba(15, 23, 42, 0.05);
  --radius-xl: 24px;
  --radius-lg: 18px;
  --radius-md: 14px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "Segoe UI", Arial, Helvetica, sans-serif;
  background: linear-gradient(180deg, var(--bg-soft) 0%, var(--bg) 180px, var(--bg) 100%);
  color: var(--text);
  line-height: 1.45;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }
hr { border: 0; border-top: 1px solid var(--border); margin: 20px 0; }
.app-shell { display: flex; min-height: 100vh; }
.sidebar {
  width: 300px;
  background: linear-gradient(180deg, var(--sidebar-bg) 0%, var(--panel) 100%);
  border-right: 1px solid var(--border);
  padding: 24px 18px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: sticky;
  top: 0;
  height: 100vh;
  box-shadow: 8px 0 26px rgba(15, 23, 42, 0.03);
}
.logo-box {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 24px;
  padding: 10px;
  border-radius: 18px;
  background: linear-gradient(180deg, var(--panel) 0%, var(--panel-2) 100%);
  border: 1px solid var(--border);
}
.logo-mark {
  width: 54px;
  height: 54px;
  border-radius: 16px;
  background: linear-gradient(135deg, var(--primary), color-mix(in srgb, var(--primary) 70%, #9ec4ff 30%));
  display: grid;
  place-items: center;
  font-weight: 800;
  color: var(--primary-contrast);
  box-shadow: var(--shadow-soft);
  flex-shrink: 0;
}
.brand-logo {
  width: 56px;
  height: 56px;
  object-fit: contain;
  border-radius: 16px;
  background: #fff;
  border: 1px solid var(--border);
  padding: 7px;
  box-shadow: var(--shadow-soft);
}
.menu { display: grid; gap: 10px; }
.menu-link,
.menu-summary {
  display: flex;
  align-items: center;
  min-height: 48px;
  background: var(--menu-bg);
  border: 1px solid transparent;
  padding: 12px 14px;
  border-radius: 14px;
  transition: .2s ease;
  color: var(--text);
  font-weight: 600;
}
.menu-link:hover,
.menu-link.active,
.menu-summary:hover {
  background: var(--menu-hover);
  border-color: color-mix(in srgb, var(--primary) 26%, var(--border) 74%);
  color: var(--heading);
  transform: translateX(2px);
}
.menu-group {
  border: 1px solid color-mix(in srgb, var(--border) 84%, white 16%);
  border-radius: 16px;
  background: color-mix(in srgb, var(--panel) 92%, var(--bg-soft) 8%);
  overflow: hidden;
}
.menu-group[open] {
  box-shadow: var(--shadow-soft);
}
.menu-group summary {
  list-style: none;
  cursor: pointer;
  position: relative;
}
.menu-group summary::-webkit-details-marker { display: none; }
.menu-summary {
  border-radius: 0;
  background: transparent;
  border: 0;
  padding-right: 42px;
}
.menu-summary::after {
  content: "▾";
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 14px;
  color: var(--muted);
  transition: transform .2s ease;
}
.menu-group[open] .menu-summary::after {
  transform: translateY(-50%) rotate(180deg);
}
.submenu {
  display: grid;
  gap: 8px;
  padding: 0 10px 10px;
}
.submenu .menu-link {
  min-height: 44px;
  padding-left: 18px;
  background: color-mix(in srgb, var(--menu-bg) 70%, white 30%);
  font-size: 14px;
}
.sidebar-footer {
  border-top: 1px solid var(--border);
  padding-top: 18px;
  margin-top: 18px;
}
.main-content {
  flex: 1;
  padding: 26px;
  width: calc(100vw - 300px);
}
.main-content.full-width {
  width: 100%;
  max-width: 560px;
  margin: 0 auto;
  padding-top: 54px;
}
.topbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-bottom: 24px;
  padding: 18px 22px;
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  background: linear-gradient(180deg, rgba(255,250,243,.96) 0%, rgba(248,241,230,.98) 100%);
  box-shadow: var(--shadow-soft);
}
.topbar h1, h1, h2, h3, h4 { margin: 0; color: var(--heading); }
h1 { font-size: 30px; }
h2 { font-size: 22px; }
h3 { font-size: 18px; }
.pill {
  background: color-mix(in srgb, var(--success) 9%, white 91%);
  border: 1px solid color-mix(in srgb, var(--success) 20%, white 80%);
  color: var(--success);
  padding: 10px 14px;
  border-radius: 999px;
  font-weight: 700;
  white-space: nowrap;
}
.card {
  background: linear-gradient(180deg, var(--panel) 0%, var(--panel-2) 100%);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: 22px;
  box-shadow: var(--shadow);
}
.grid { display: grid; gap: 18px; }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid-5 { display:grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap:20px; }
.metric {
  position: relative;
  overflow: hidden;
}
.metric::after {
  content: "";
  position: absolute;
  inset: auto -30px -30px auto;
  width: 110px;
  height: 110px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--primary) 10%, transparent 90%);
}
.metric h3 { margin: 0 0 10px; font-size: 13px; color: var(--muted); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.metric .value { font-size: clamp(28px, 2.8vw, 38px); font-weight: 800; color: var(--heading); position: relative; z-index: 1; }
label { display: block; margin-bottom: 8px; color: var(--heading); font-weight: 700; }
input, select, textarea {
  width: 100%;
  padding: 13px 14px;
  border-radius: 14px;
  border: 1px solid var(--border);
  background: var(--input-bg);
  color: var(--input-text);
  transition: .18s ease;
}
input[type="color"] { padding: 6px; min-height: 48px; }
textarea { min-height: 110px; resize: vertical; }
input:hover, select:hover, textarea:hover { border-color: color-mix(in srgb, var(--primary) 20%, var(--border) 80%); }
input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: color-mix(in srgb, var(--primary) 58%, var(--border) 42%);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary) 13%, white 87%);
}
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 12px 18px;
  border-radius: 14px;
  border: 1px solid transparent;
  background: linear-gradient(180deg, color-mix(in srgb, var(--primary) 92%, white 8%) 0%, var(--primary) 100%);
  color: var(--primary-contrast);
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 8px 18px color-mix(in srgb, var(--primary) 24%, transparent 76%);
  transition: .18s ease;
}
.btn:hover { transform: translateY(-1px); filter: brightness(1.02); }
.btn-secondary {
  background: #fff;
  color: var(--text);
  border-color: var(--border);
  box-shadow: none;
}
.btn-success { background: linear-gradient(180deg, color-mix(in srgb, var(--success) 92%, white 8%) 0%, var(--success) 100%); color: #fff; box-shadow: 0 8px 18px color-mix(in srgb, var(--success) 22%, transparent 78%); }
.btn-warning { background: linear-gradient(180deg, color-mix(in srgb, var(--warning) 92%, white 8%) 0%, var(--warning) 100%); color: #1f2937; box-shadow: none; }
.btn-danger { background: linear-gradient(180deg, color-mix(in srgb, var(--danger) 92%, white 8%) 0%, var(--danger) 100%); color: #fff; box-shadow: 0 8px 18px color-mix(in srgb, var(--danger) 22%, transparent 78%); }
.btn-block { width: 100%; }
.actions { display: flex; flex-wrap: wrap; gap: 10px; }
.table-wrap {
  overflow-x: auto;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: #fff;
}
table { width: 100%; border-collapse: separate; border-spacing: 0; }
thead tr { background: var(--table-head); }
tbody tr { background: var(--table-row); }
tbody tr:nth-child(even) { background: color-mix(in srgb, var(--table-row) 85%, var(--bg-soft) 15%); }
th, td { text-align: left; padding: 14px 12px; border-bottom: 1px solid var(--border); vertical-align: top; }
th { color: var(--heading); font-size: 13px; font-weight: 800; }
thead th:first-child { border-top-left-radius: 16px; }
thead th:last-child { border-top-right-radius: 16px; }
.badge {
  display: inline-flex;
  align-items: center;
  padding: 7px 11px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  background: color-mix(in srgb, var(--primary) 10%, white 90%);
  color: color-mix(in srgb, var(--primary) 80%, black 20%);
}
.badge-prioridade { background: color-mix(in srgb, var(--warning) 17%, white 83%); color: #5a3b16; }
.badge-normal { background: color-mix(in srgb, var(--primary) 15%, white 85%); color: #4f3a1e; }
.badge-aguardando { background: #eef2f7; color: var(--text); }
.badge-chamado { background: color-mix(in srgb, var(--primary) 16%, white 84%); color: #4f3a1e; }
.badge-em_atendimento { background: color-mix(in srgb, var(--success) 16%, white 84%); color: #224b2c; }
.badge-finalizado { background: #ede9fe; color: #4c3a2d; }
.badge-cancelado { background: color-mix(in srgb, var(--danger) 14%, white 86%); color: #7a2f21; }
.badge-nao_compareceu { background: #fff3d6; color: #6f4a12; }
.alert {
  padding: 15px 16px;
  border-radius: 16px;
  margin-bottom: 16px;
  font-weight: 600;
}
.alert-success { background: color-mix(in srgb, var(--success) 12%, white 88%); border: 1px solid color-mix(in srgb, var(--success) 24%, white 76%); }
.alert-danger { background: color-mix(in srgb, var(--danger) 10%, white 90%); border: 1px solid color-mix(in srgb, var(--danger) 22%, white 78%); }
.login-card {
  margin-top: 48px;
  border-radius: 28px;
}
.login-brand { display:flex; align-items:center; gap:14px; margin-bottom:18px; }
.login-brand .brand-logo { width: 68px; height: 68px; }
.small { font-size: 12px; }
.muted { color: var(--muted); }
.section-title { margin: 0 0 14px; font-size: 21px; color: var(--heading); }
.form-grid { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid .full { grid-column: 1 / -1; }
.empty-state {
  padding: 24px;
  border: 1px dashed var(--border);
  border-radius: 16px;
  color: var(--muted);
  text-align: center;
  background: var(--panel-2);
}
.panel-tv {
  min-height: 100vh;
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 22px;
  padding: 26px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--primary) 8%, white 92%) 0%, var(--bg) 26%, var(--bg-soft) 100%);
}
.panel-header, .panel-footer, .panel-main {
  background: color-mix(in srgb, var(--panel) 94%, white 6%);
  border: 1px solid var(--border);
  border-radius: 26px;
  box-shadow: var(--shadow);
}
.panel-header, .panel-footer { padding: 20px 24px; }
.panel-main {
  display: grid;
  grid-template-columns: 1.25fr 0.75fr;
  gap: 24px;
  align-items: stretch;
  padding: 28px;
}
.panel-featured {
  display: grid;
  place-items: center;
  text-align: center;
  padding: 24px;
  border-radius: 24px;
  background: linear-gradient(180deg, #ffffff 0%, var(--panel-2) 100%);
  border: 1px solid var(--border);
}
.panel-code { font-size: 28px; color: var(--primary); letter-spacing: 2px; font-weight: 800; }
.panel-name { font-size: clamp(34px, 6vw, 68px); font-weight: 900; color: var(--heading); margin: 12px 0; line-height: 1.05; }
.panel-booth { font-size: clamp(26px, 4vw, 46px); color: var(--success); font-weight: 800; }
.panel-side { border-left: 1px solid var(--border); padding-left: 20px; }
.call-list { display: grid; gap: 12px; }
.call-item {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: var(--panel-2);
}
.call-code { font-size: 18px; font-weight: 800; color: var(--primary); }
.call-booth { font-size: 16px; font-weight: 800; color: var(--success); }
.ticket-print {
  max-width: 480px;
  margin: 24px auto;
  background: #fff;
  color: #111;
  border-radius: 20px;
  padding: 24px;
  box-shadow: 0 10px 30px rgba(0,0,0,.12);
}
.ticket-print h1, .ticket-print h2, .ticket-print p { color: #111; }
.ticket-code { font-size: 42px; font-weight: 800; letter-spacing: 2px; margin: 10px 0; }
.kbd { padding: 4px 8px; border-radius: 8px; background: var(--panel-2); border: 1px solid var(--border); }
.panel-sector-grid { display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.panel-sector-card {
  display:block;
  padding:18px;
  border-radius:18px;
  border:1px solid var(--border);
  background:linear-gradient(180deg, var(--panel) 0%, var(--panel-2) 100%);
  box-shadow: var(--shadow-soft);
}
.panel-sector-card:hover { background:var(--menu-hover); border-color:color-mix(in srgb, var(--primary) 28%, var(--border) 72%); }
.thermal-ticket { background:#fff; color:#000; margin:10px auto; padding:10px 12px; box-shadow:0 8px 20px rgba(0,0,0,.12); }
.thermal-ticket.width-58 { width:58mm; }
.thermal-ticket.width-80 { width:80mm; }
.thermal-ticket * { color:#000; }
.thermal-center { text-align:center; }
.thermal-line { border-top:1px dashed #000; margin:8px 0; }
.thermal-code { font-size:28px; font-weight:800; letter-spacing:1px; margin:8px 0; text-align:center; }
.thermal-mini { font-size:12px; line-height:1.35; }
.bar-row { display:grid; grid-template-columns: 180px 1fr auto; gap:12px; align-items:center; margin-bottom:14px; }
.bar-label { font-weight:700; color: var(--heading); }
.bar-track { height:12px; border-radius:999px; background:#e6edf6; overflow:hidden; }
.bar-fill { height:100%; background:linear-gradient(90deg, var(--primary), color-mix(in srgb, var(--primary) 58%, #8bb9ff 42%)); border-radius:999px; }
.bar-meta { color:var(--muted); font-size:13px; }
.wait-panel-card { padding: 24px; }
canvas { width: 100%; background: var(--panel-2); border: 1px solid var(--border); border-radius: 16px; }
.color-preview-grid { display:grid; gap:14px; grid-template-columns: repeat(auto-fit, minmax(170px,1fr)); }
.color-chip { display:flex; align-items:center; gap:10px; padding:12px; border-radius:14px; border:1px solid var(--border); background:var(--panel-2); }
.color-swatch { width:36px; height:36px; border-radius:10px; border:1px solid var(--border); box-shadow: inset 0 0 0 1px rgba(0,0,0,0.03); }
.help-text { color:var(--muted); font-size:12px; margin-top:6px; }
.theme-note { padding:12px 14px; border-radius:14px; border:1px dashed var(--border); background: var(--panel-2); color: var(--muted); }

@media print {
  body { background: #fff; }
  .ticket-print { box-shadow: none; margin: 0; max-width: none; }
  .no-print, .sidebar, .topbar { display: none !important; }
}
@media (max-width: 1200px) {
  .grid-5 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .grid-4, .grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .panel-main { grid-template-columns: 1fr; }
  .panel-side { border-left: 0; border-top: 1px solid var(--border); padding-left: 0; padding-top: 20px; }
}
@media (max-width: 900px) {
  .sidebar { width: 272px; }
  .main-content { width: calc(100vw - 272px); padding: 18px; }
}
@media (max-width: 760px) {
  .app-shell { display: block; }
  .sidebar {
    width: 100%;
    height: auto;
    position: static;
    padding: 14px;
    border-right: 0;
    border-bottom: 1px solid var(--border);
  }
  .logo-box { margin-bottom: 16px; }
  .menu { grid-template-columns: 1fr 1fr; }
  .menu a { min-height: 44px; font-size: 14px; }
  .sidebar-footer { margin-top: 16px; }
  .main-content, .main-content.full-width { width: 100%; max-width: none; padding: 16px; }
  .topbar { flex-direction: column; align-items: flex-start; padding: 16px; border-radius: 18px; }
  .grid-5, .grid-4, .grid-3, .grid-2, .form-grid { grid-template-columns: 1fr; }
  .card { padding: 18px; border-radius: 18px; }
  .call-item, .bar-row { grid-template-columns: 1fr; }
  .panel-tv { padding: 14px; gap: 14px; }
  .panel-header, .panel-footer, .panel-main { border-radius: 18px; }
  .panel-main { padding: 16px; }
  .panel-featured { padding: 18px; border-radius: 18px; }
  .panel-name { font-size: clamp(26px, 8vw, 42px); }
  .ticket-print { margin: 10px; }
}


/* Touch kiosk */
.touch-kiosk-body{margin:0;min-height:100vh;background:linear-gradient(180deg,var(--bg-soft),var(--bg));color:var(--text);}
.touch-shell{padding:24px;max-width:1600px;margin:0 auto;}
.touch-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;}
.touch-brand{display:flex;align-items:center;gap:18px;}
.touch-brand h1{margin:0;font-size:2rem;color:var(--heading);}
.touch-brand p{margin:6px 0 0;color:var(--muted);font-size:1.05rem;}
.touch-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:22px;align-items:start;}
.touch-card{background:var(--panel);border:1px solid var(--border);border-radius:28px;padding:22px;box-shadow:0 18px 45px rgba(15,23,42,.08);}
.touch-card-head{display:flex;justify-content:space-between;gap:12px;align-items:end;margin-bottom:16px;}
.touch-card-head h2{margin:0;color:var(--heading);font-size:1.4rem;}
.touch-group + .touch-group{margin-top:22px;}
.touch-group-title{font-weight:800;font-size:1.08rem;color:var(--heading);margin-bottom:10px;}
.touch-sector-title{font-weight:700;color:var(--muted);margin:14px 0 10px;}
.touch-service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;}
.touch-service-btn{appearance:none;border:2px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:24px;padding:18px;min-height:116px;text-align:left;cursor:pointer;font:inherit;display:flex;flex-direction:column;gap:8px;transition:.2s ease;}
.touch-service-btn strong{font-size:1.06rem;color:var(--heading);}
.touch-service-btn span,.touch-service-btn small{display:block;color:var(--muted);}
.touch-service-btn.selected,.touch-service-btn:active{border-color:var(--primary);box-shadow:0 0 0 4px color-mix(in srgb, var(--primary) 18%, transparent);transform:translateY(-1px);}
.touch-summary{background:var(--bg-soft);border:1px dashed var(--border);border-radius:20px;padding:16px 18px;margin-bottom:18px;min-height:58px;font-size:1.02rem;}
.touch-summary strong{color:var(--heading);}
.touch-fields{display:grid;grid-template-columns:1fr;gap:16px;}
.touch-input{min-height:58px;border-radius:18px;font-size:1.08rem;padding:14px 18px;border:1px solid var(--border);background:var(--input-bg);color:var(--input-text);width:100%;box-sizing:border-box;}
.touch-choice-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.touch-choice{display:flex;align-items:center;justify-content:center;min-height:62px;border-radius:18px;border:2px solid var(--border);background:var(--panel-2);font-weight:700;font-size:1.05rem;cursor:pointer;padding:10px 14px;}
.touch-choice input{display:none;}
.touch-choice.active{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 10%, var(--panel-2));color:var(--heading);}
.touch-priority-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;}
.touch-priority-card{display:flex;flex-direction:column;gap:4px;border:2px solid var(--border);border-radius:18px;padding:16px;background:var(--panel-2);cursor:pointer;}
.touch-priority-card input{margin-bottom:8px;transform:scale(1.25);}
.touch-submit-row{display:flex;justify-content:flex-end;margin-top:20px;}
.touch-primary-btn{min-height:64px;padding:0 28px;font-size:1.15rem;border-radius:20px;}
.touch-alert{margin-bottom:18px;}
@media (max-width: 980px){.touch-grid{grid-template-columns:1fr}.touch-header{flex-direction:column;align-items:flex-start}.touch-shell{padding:16px}.touch-brand h1{font-size:1.6rem}}

.btn-sm{padding:8px 10px;font-size:12px;min-height:auto;}

/* v15.1 - visual clean e colorido */
:root {
  --info: #38BDF8;
  --blue-soft: #EAF2FF;
  --green-soft: #ECFDF3;
  --orange-soft: #FFF7E8;
  --cyan-soft: #EAF9FF;
}
body {
  background:
    radial-gradient(circle at 8% 0%, rgba(56,189,248,.10), transparent 25%),
    radial-gradient(circle at 94% 8%, rgba(37,99,235,.08), transparent 24%),
    linear-gradient(180deg, #F7FBFF 0%, var(--bg) 100%);
}
.sidebar {
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(14px);
  border-right: 1px solid #E3EDF7;
  box-shadow: 8px 0 30px rgba(30,64,175,.05);
}
.logo-box {
  background: linear-gradient(135deg, #EFF6FF 0%, #ECFDF5 100%);
  border-color: #D7E8F6;
}
.logo-mark {
  background: linear-gradient(135deg, #2563EB 0%, #38BDF8 100%);
}
.menu-link, .menu-summary { background: transparent; }
.menu-link:hover, .menu-link.active, .menu-summary:hover {
  background: linear-gradient(90deg, #EAF2FF 0%, #EAF9FF 100%);
  border-color: #BFDBFE;
  color: #1D4ED8;
}
.menu-link.active { box-shadow: inset 4px 0 0 #2563EB; }
.menu-group { background: #FBFDFF; border-color: #E7EFF7; }
.topbar {
  background: linear-gradient(120deg, #FFFFFF 0%, #F0F8FF 58%, #ECFDF5 100%);
  border-color: #D8E8F5;
  box-shadow: 0 12px 32px rgba(37,99,235,.07);
}
.pill {
  background: linear-gradient(135deg, #DCFCE7, #ECFDF5);
  border-color: #BBF7D0;
  color: #15803D;
}
.card {
  background: rgba(255,255,255,.97);
  border-color: #DFEAF4;
  box-shadow: 0 12px 32px rgba(30,64,175,.06);
}
.metric { border-top: 5px solid #2563EB; }
.grid .metric:nth-child(4n+1) { border-top-color:#2563EB; background:linear-gradient(180deg,#FFFFFF 0%,#F4F8FF 100%); }
.grid .metric:nth-child(4n+2) { border-top-color:#16A34A; background:linear-gradient(180deg,#FFFFFF 0%,#F1FCF5 100%); }
.grid .metric:nth-child(4n+3) { border-top-color:#F59E0B; background:linear-gradient(180deg,#FFFFFF 0%,#FFF9ED 100%); }
.grid .metric:nth-child(4n+4) { border-top-color:#38BDF8; background:linear-gradient(180deg,#FFFFFF 0%,#F0FAFF 100%); }
.grid .metric:nth-child(4n+1)::after { background:rgba(37,99,235,.10); }
.grid .metric:nth-child(4n+2)::after { background:rgba(22,163,74,.10); }
.grid .metric:nth-child(4n+3)::after { background:rgba(245,158,11,.12); }
.grid .metric:nth-child(4n+4)::after { background:rgba(56,189,248,.13); }
.btn { background:linear-gradient(135deg,#2563EB,#3B82F6); box-shadow:0 8px 18px rgba(37,99,235,.22); }
.btn-success { background:linear-gradient(135deg,#16A34A,#22C55E); }
.btn-warning { background:linear-gradient(135deg,#F59E0B,#FDBA2D); color:#3B2A05; }
.btn-secondary { background:#FFFFFF; color:#334155; border-color:#D7E3EE; }
.table-wrap { border-color:#DDE8F2; box-shadow:0 7px 22px rgba(30,64,175,.04); }
thead tr { background:linear-gradient(90deg,#EDF5FB,#F1F8FC); }
tbody tr:hover { background:#F3F9FF; }
input, select, textarea { border-color:#D8E5F0; }
input:focus, select:focus, textarea:focus { border-color:#60A5FA; box-shadow:0 0 0 4px rgba(59,130,246,.12); }
.badge-normal,.badge-chamado { background:#DBEAFE; color:#1D4ED8; }
.badge-prioridade,.badge-nao_compareceu { background:#FEF3C7; color:#92400E; }
.badge-em_atendimento { background:#DCFCE7; color:#15803D; }
.badge-finalizado { background:#E0F2FE; color:#0369A1; }
.panel-tv { background:linear-gradient(135deg,#EFF6FF 0%,#F0FDF4 50%,#FFF7ED 100%); }
.panel-featured { background:linear-gradient(145deg,#FFFFFF,#F0F8FF); }
.panel-code { color:#2563EB; }
.panel-booth { color:#16A34A; }
.touch-kiosk-body { background:linear-gradient(135deg,#EFF6FF 0%,#ECFDF5 52%,#FFF7ED 100%); }
.touch-card { border-color:#DCEAF5; box-shadow:0 20px 50px rgba(37,99,235,.08); }
.service-button:nth-child(4n+1), .touch-option:nth-child(4n+1) { border-color:#93C5FD; background:#EFF6FF; }
.service-button:nth-child(4n+2), .touch-option:nth-child(4n+2) { border-color:#86EFAC; background:#F0FDF4; }
.service-button:nth-child(4n+3), .touch-option:nth-child(4n+3) { border-color:#FCD34D; background:#FFFBEB; }
.service-button:nth-child(4n+4), .touch-option:nth-child(4n+4) { border-color:#7DD3FC; background:#F0F9FF; }

/* v15.2 - autoatendimento rápido */
.touch-fast-choice{max-width:980px;margin:0 auto;}
.touch-queue-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:26px;}
.touch-queue-option{min-height:220px;border:0;border-radius:28px;padding:28px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;cursor:pointer;color:#fff;box-shadow:0 18px 45px rgba(15,23,42,.14);transition:transform .18s ease,box-shadow .18s ease;}
.touch-queue-option:hover,.touch-queue-option:focus{transform:translateY(-4px);box-shadow:0 22px 55px rgba(15,23,42,.2);outline:4px solid rgba(255,255,255,.5);outline-offset:-8px;}
.touch-queue-option:disabled{opacity:.7;cursor:wait;transform:none;}
.touch-normal-option{background:linear-gradient(135deg,#1683ff,#55b8ff);}
.touch-priority-option{background:linear-gradient(135deg,#f59e0b,#fb7185);}
.touch-queue-icon{width:78px;height:78px;border-radius:24px;background:rgba(255,255,255,.22);display:grid;place-items:center;font-size:38px;font-weight:900;}
.touch-queue-option strong{font-size:28px;line-height:1.1;}
.touch-queue-option small{font-size:17px;color:rgba(255,255,255,.9);}
@media(max-width:760px){.touch-queue-grid{grid-template-columns:1fr}.touch-queue-option{min-height:170px}.touch-queue-option strong{font-size:23px}}

/* v15.4 - YouTube no painel da TV */
.panel-video-card{margin-bottom:18px;padding:14px;border:1px solid var(--border);border-radius:20px;background:var(--panel-2);}
.panel-video-title{font-size:18px;font-weight:800;color:var(--heading);margin-bottom:10px;}
.panel-video-wrap{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:14px;background:#000;}
.panel-video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.panel-side:has(.panel-video-card){display:flex;flex-direction:column;min-width:0;}
.panel-side:has(.panel-video-card) .call-list{max-height:38vh;overflow:auto;padding-right:4px;}
@media (max-width:900px){.panel-side:has(.panel-video-card) .call-list{max-height:none;}}

/* v15.5 - vídeo à esquerda e chamada atual à direita */
.panel-video-featured{display:block;padding:18px;min-width:0;}
.panel-video-card-main{height:100%;margin:0;display:flex;flex-direction:column;}
.panel-video-card-main .panel-video-wrap{flex:1;min-height:360px;aspect-ratio:auto;}
.panel-video-empty{height:100%;min-height:360px;display:grid;place-content:center;text-align:center;padding:32px;}
.panel-call-side{display:flex;flex-direction:column;min-width:0;}
.panel-current-call{padding:22px 18px;border:1px solid var(--border);border-radius:22px;background:linear-gradient(180deg,#fff 0%,var(--panel-2) 100%);text-align:center;margin-bottom:18px;}
.panel-current-name{font-size:clamp(28px,3.4vw,48px);font-weight:900;color:var(--heading);margin:10px 0;line-height:1.05;}
.panel-current-meta{margin-top:8px;font-size:17px;}
.panel-history-title{margin:0 0 12px;}
.panel-call-side .call-list{max-height:40vh;overflow:auto;padding-right:4px;}
@media(max-width:900px){.panel-video-card-main .panel-video-wrap,.panel-video-empty{min-height:260px}.panel-call-side .call-list{max-height:none}.panel-side{border-left:0;border-top:1px solid var(--border);padding-left:0;padding-top:20px;}}


/* v15.7 - vídeo ocupando integralmente o card esquerdo */
.panel-video-featured{padding:0!important;overflow:hidden;position:relative;min-height:0;}
.panel-video-card-main{position:absolute;inset:0;width:100%;height:100%;padding:0!important;border:0!important;border-radius:inherit!important;background:#000!important;overflow:hidden;}
.panel-video-card-main .panel-video-wrap{position:absolute;inset:0;width:100%;height:100%;min-height:0!important;aspect-ratio:auto!important;border-radius:0!important;background:#000;}
.panel-video-card-main .panel-video-wrap iframe{position:absolute;inset:0;width:100%!important;height:100%!important;display:block;border:0;}
@media(max-width:900px){.panel-video-featured{min-height:56.25vw;max-height:70vh}.panel-video-card-main{position:absolute}.panel-video-card-main .panel-video-wrap{min-height:0!important}}
/* v15.8 - painel profissional, vídeo contínuo e recursos institucionais */
.panel-tv-pro{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto;background:linear-gradient(145deg,#eef7ff,#f8fcff)}
.panel-header-pro{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:18px 28px}
.panel-brand-wrap{display:flex;align-items:center;gap:16px}.panel-brand-logo{width:72px;height:72px;object-fit:contain;border-radius:14px;background:#fff;padding:6px;box-shadow:0 8px 24px rgba(17,91,150,.14)}
.panel-header-pro h1{margin:4px 0 0}.panel-header-info{text-align:right}.panel-clock-large{font-size:clamp(30px,4vw,58px);font-weight:900;color:var(--heading);line-height:1}.panel-date{margin-top:6px;font-weight:700;text-transform:capitalize}.panel-weather{font-size:18px;font-weight:800;color:#147a50;margin-bottom:7px}
.panel-call-flash{animation:panelCallPulse 1.5s ease-in-out 2;box-shadow:0 0 0 0 rgba(25,118,210,.45)}
@keyframes panelCallPulse{0%{transform:scale(1);box-shadow:0 0 0 0 rgba(25,118,210,.45)}45%{transform:scale(1.025);box-shadow:0 0 0 18px rgba(25,118,210,0)}100%{transform:scale(1)}}
.call-item-animated{animation:callItemIn .35s ease both}@keyframes callItemIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.panel-ticker{overflow:hidden;background:linear-gradient(90deg,#0d6efd,#19a974,#ff8c2a);color:#fff;font-weight:800;font-size:20px;white-space:nowrap;padding:10px 0}.panel-ticker-track{display:inline-block;padding-left:100%;animation:panelTicker 28s linear infinite}@keyframes panelTicker{to{transform:translateX(-100%)}}
#youtubePlayer,#youtubePlayer iframe{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;border:0!important}
@media(max-width:900px){.panel-header-pro{align-items:flex-start}.panel-brand-logo{width:54px;height:54px}.panel-clock-large{font-size:36px}.panel-ticker{font-size:16px}}

/* v16.7 - Autoatendimento e Painel TV: tipografia ampliada sem expandir a tela */
html, body { max-width:100%; overflow-x:hidden; }

/* Autoatendimento: letras maiores com dimensões fluidas */
.touch-kiosk-body { width:100%; max-width:100vw; overflow-x:hidden; }
.touch-shell { width:min(100%, 1500px); max-width:100vw; margin:0 auto; box-sizing:border-box; }
.touch-header { gap:clamp(10px,1.5vw,22px); }
.touch-header h1 { font-size:clamp(30px,3.2vw,52px); line-height:1.05; }
.touch-header p { font-size:clamp(17px,1.6vw,25px); line-height:1.25; }
.touch-actions .pill { font-size:clamp(15px,1.2vw,20px); }
.touch-card-head h2 { font-size:clamp(27px,2.5vw,40px); line-height:1.08; }
.touch-card-head .muted { font-size:clamp(17px,1.45vw,23px); }
.touch-group-title { font-size:clamp(21px,1.8vw,29px); }
.touch-sector-title { font-size:clamp(18px,1.55vw,25px); }
.touch-service-grid { grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr)); gap:clamp(10px,1vw,16px); }
.touch-service-btn { min-width:0; min-height:clamp(112px,12vh,150px); padding:clamp(15px,1.4vw,22px); overflow:hidden; }
.touch-service-btn strong { font-size:clamp(21px,1.7vw,29px); line-height:1.12; overflow-wrap:anywhere; }
.touch-service-btn span { font-size:clamp(17px,1.35vw,22px); }
.touch-service-btn small { font-size:clamp(14px,1.05vw,18px); }
.touch-summary { font-size:clamp(19px,1.55vw,26px); line-height:1.35; }
.touch-queue-grid { gap:clamp(14px,2vw,28px); }
.touch-queue-option { min-width:0; min-height:clamp(170px,24vh,245px); padding:clamp(18px,2vw,30px); }
.touch-queue-icon { width:clamp(66px,6vw,88px); height:clamp(66px,6vw,88px); font-size:clamp(32px,3.1vw,45px); }
.touch-queue-option strong { font-size:clamp(26px,2.25vw,38px); }
.touch-queue-option small { font-size:clamp(17px,1.4vw,23px); }
.touch-submit-row .btn { font-size:clamp(17px,1.3vw,21px); }

/* Painel TV: ocupa a viewport inteira, sem barras de rolagem */
body:has(.panel-tv-pro) { margin:0; width:100vw; height:100vh; overflow:hidden; }
.panel-tv-pro { width:100vw; height:100vh; min-height:0!important; max-height:100vh; overflow:hidden; box-sizing:border-box; gap:clamp(8px,1vh,14px); padding:clamp(10px,1.2vw,20px); grid-template-rows:auto minmax(0,1fr) auto; }
.panel-header-pro { padding:clamp(9px,1.15vh,16px) clamp(14px,1.5vw,26px); min-width:0; }
.panel-brand-wrap, .panel-header-info { min-width:0; }
.panel-brand-logo { width:clamp(48px,5.2vw,72px); height:clamp(48px,5.2vw,72px); }
.panel-header-pro h1 { font-size:clamp(24px,2.5vw,42px); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.panel-header-pro .muted { font-size:clamp(14px,1.15vw,19px); }
.panel-clock-large { font-size:clamp(30px,3.5vw,54px); }
.panel-date, .panel-weather { font-size:clamp(14px,1.15vw,19px); }
.panel-main { min-height:0; overflow:hidden; gap:clamp(12px,1.5vw,24px); padding:clamp(12px,1.4vw,22px); }
.panel-has-video .panel-main { grid-template-columns:minmax(0,1.25fr) minmax(420px,.75fr); }
.panel-no-video .panel-main { display:block; }
.panel-no-video .panel-call-side { width:100%; height:100%; border-left:0; padding-left:0; display:grid; grid-template-rows:minmax(0,1.15fr) auto minmax(0,.85fr); }
.panel-no-video .panel-current-call { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:0; margin-bottom:0; }
.panel-no-video .panel-call-side .call-list { max-height:none; min-height:0; overflow:hidden; align-content:start; }
.panel-no-video .panel-history-title { padding-top:clamp(6px,1vh,14px); }
.panel-video-featured, .panel-call-side { min-width:0; min-height:0; overflow:hidden; }
.panel-call-side { height:100%; }
.panel-current-call { min-height:0; padding:clamp(12px,1.4vw,22px); margin-bottom:clamp(8px,1vh,14px); flex-shrink:0; }
.panel-code { font-size:clamp(46px,6vw,92px)!important; line-height:.98; letter-spacing:clamp(1px,.25vw,4px); }
.panel-current-name { font-size:clamp(30px,3.4vw,54px); margin:clamp(4px,.7vh,10px) 0; }
.panel-booth { font-size:clamp(30px,3.6vw,58px); line-height:1; }
.panel-current-meta { font-size:clamp(16px,1.3vw,22px); margin-top:clamp(3px,.5vh,8px); }
.panel-history-title { font-size:clamp(22px,2vw,34px); margin:0 0 clamp(6px,.8vh,11px); flex-shrink:0; }
.panel-call-side .call-list { max-height:none; min-height:0; overflow:hidden; gap:clamp(6px,.7vh,10px); }
.call-item { min-width:0; padding:clamp(8px,.85vh,13px) clamp(10px,1vw,16px); gap:clamp(8px,.8vw,14px); border-radius:clamp(12px,1vw,18px); }
.call-code { font-size:clamp(27px,2.65vw,44px)!important; line-height:1; white-space:nowrap; }
.call-booth { font-size:clamp(21px,1.8vw,31px)!important; white-space:nowrap; }
.call-item .small { font-size:clamp(13px,1vw,17px)!important; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.call-item > div:nth-child(2) { min-width:0; font-size:clamp(15px,1.15vw,19px); overflow:hidden; }
.panel-no-video .panel-code { font-size:clamp(68px,9vw,145px)!important; }
.panel-no-video .panel-booth { font-size:clamp(42px,5.5vw,86px); }
.panel-no-video .panel-current-name { font-size:clamp(38px,4.7vw,74px); }
.panel-no-video .call-code { font-size:clamp(34px,3.4vw,56px)!important; }
.panel-no-video .call-booth { font-size:clamp(26px,2.4vw,40px)!important; }
.panel-ticker { font-size:clamp(16px,1.35vw,22px); padding:clamp(6px,.7vh,10px) 0; min-height:0; }

@media (max-width:1100px) {
  .panel-has-video .panel-main { grid-template-columns:minmax(0,1fr) minmax(360px,.85fr); }
  .panel-code { font-size:clamp(42px,5.5vw,72px)!important; }
  .call-code { font-size:clamp(24px,2.4vw,34px)!important; }
}
@media (max-width:760px) {
  .touch-shell { padding-left:10px; padding-right:10px; }
  .touch-header { flex-wrap:wrap; }
  .touch-actions { width:100%; }
  .touch-queue-grid { grid-template-columns:1fr; }
}

/* v16.8 - Autoatendimento: serviços em duas colunas responsivas, sem rolagem lateral */
.touch-kiosk-body,
.touch-kiosk-body * {
  box-sizing: border-box;
}
.touch-kiosk-body {
  width: 100%;
  max-width: 100vw;
  overflow-x: hidden !important;
}
.touch-shell {
  width: 100%;
  max-width: 1500px;
  margin: 0 auto;
  padding-left: clamp(10px, 1.5vw, 24px);
  padding-right: clamp(10px, 1.5vw, 24px);
  overflow-x: hidden;
}
.touch-card,
.touch-group,
.touch-service-grid {
  min-width: 0;
  max-width: 100%;
}
.touch-service-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: clamp(10px, 1.2vw, 18px);
  width: 100%;
}
.touch-service-btn {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  min-height: clamp(100px, 13vh, 145px);
  padding: clamp(13px, 1.35vw, 21px);
  overflow: hidden;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.touch-service-btn strong,
.touch-service-btn span,
.touch-service-btn small {
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.touch-service-btn strong {
  font-size: clamp(18px, 1.65vw, 28px);
  line-height: 1.12;
}
.touch-service-btn span {
  font-size: clamp(15px, 1.25vw, 21px);
  line-height: 1.2;
}
.touch-service-btn small {
  font-size: clamp(13px, 1vw, 17px);
  line-height: 1.2;
}

/* mantém duas colunas também em telas mais estreitas, reduzindo conteúdo em vez de criar scroll */
@media (max-width: 760px) {
  .touch-shell {
    padding-left: 8px;
    padding-right: 8px;
  }
  .touch-card {
    padding: 14px;
    border-radius: 20px;
  }
  .touch-service-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px;
  }
  .touch-service-btn {
    min-height: 96px;
    padding: 11px;
    border-radius: 18px;
  }
  .touch-service-btn strong {
    font-size: clamp(16px, 4.4vw, 22px);
  }
  .touch-service-btn span {
    font-size: clamp(13px, 3.5vw, 17px);
  }
  .touch-service-btn small {
    font-size: clamp(11px, 3vw, 14px);
  }
}

/* v16.9 - Autoatendimento: grade real única com 2 cards por linha */
.touch-services .touch-group {
  width: 100%;
  min-width: 0;
}
.touch-services .touch-service-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  grid-auto-flow: row;
  align-items: stretch;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  gap: clamp(10px, 1.25vw, 18px);
}
.touch-services .touch-service-btn {
  display: flex !important;
  width: auto !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: 100%;
  margin: 0 !important;
}
.touch-services .touch-service-btn > * {
  min-width: 0;
  max-width: 100%;
}
@media (max-width: 520px) {
  .touch-services .touch-service-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 7px;
  }
  .touch-services .touch-service-btn {
    padding: 9px;
    min-height: 88px;
  }
}

/* v17.7 - Autoatendimento visual: cards coloridos, ícones e aproveitamento de tela */
.touch-kiosk-body { min-height:100dvh; overflow-x:hidden !important; }
.touch-shell { max-width:1600px; min-height:100dvh; display:flex; flex-direction:column; padding:clamp(10px,1.4vw,22px); }
.touch-services { flex:1; display:flex; flex-direction:column; min-height:0; }
.touch-services .touch-group { flex:1; display:flex; flex-direction:column; min-height:0; }
.touch-services .touch-service-grid {
  flex:1;
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  grid-auto-rows:minmax(112px,1fr);
  gap:clamp(12px,1.35vw,22px);
  align-content:stretch;
}
.touch-services .touch-service-btn {
  position:relative;
  display:grid !important;
  grid-template-columns:clamp(64px,6vw,96px) minmax(0,1fr) 28px;
  align-items:center;
  gap:clamp(12px,1.4vw,22px);
  min-height:clamp(120px,18vh,205px);
  padding:clamp(18px,2vw,30px);
  border:0 !important;
  border-radius:clamp(20px,2vw,30px);
  box-shadow:0 10px 28px rgba(15,23,42,.10);
  text-decoration:none;
  overflow:hidden;
  transition:transform .15s ease, box-shadow .15s ease;
}
.touch-services .touch-service-btn:active { transform:scale(.985); box-shadow:0 5px 16px rgba(15,23,42,.12); }
.touch-service-color-1 { background:linear-gradient(135deg,#E8F2FF,#D9EBFF) !important; }
.touch-service-color-2 { background:linear-gradient(135deg,#E8F8F0,#D7F2E5) !important; }
.touch-service-color-3 { background:linear-gradient(135deg,#FFF2E3,#FFE5C5) !important; }
.touch-service-color-4 { background:linear-gradient(135deg,#E8F7FB,#D8F0F7) !important; }
.touch-service-icon {
  width:clamp(64px,6vw,96px); height:clamp(64px,6vw,96px);
  border-radius:24px; display:flex !important; align-items:center; justify-content:center;
  font-size:clamp(38px,4vw,62px); background:rgba(255,255,255,.72);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.85);
}
.touch-service-copy { display:flex !important; flex-direction:column; gap:8px; min-width:0; }
.touch-service-copy strong { font-size:clamp(24px,2.25vw,38px) !important; line-height:1.08 !important; color:#172033 !important; }
.touch-service-copy > span { font-size:clamp(17px,1.4vw,24px) !important; color:#475569 !important; }
.touch-service-arrow { display:block !important; font-size:clamp(38px,3vw,54px); line-height:1; color:#334155 !important; opacity:.65; }
.touch-group-title { font-size:clamp(16px,1.2vw,20px); margin-bottom:10px; color:#475569; }
.touch-card-head h2 { font-size:clamp(25px,2vw,34px); }
.touch-card-head .muted { font-size:clamp(16px,1.2vw,20px); }
.touch-queue-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
.touch-queue-option { min-height:clamp(180px,30vh,300px); border-radius:30px; }
.touch-queue-option strong { font-size:clamp(26px,2.4vw,40px); }
.touch-queue-option small { font-size:clamp(17px,1.35vw,23px); }
.touch-queue-icon { font-size:clamp(42px,4vw,66px); }
@media (max-width:650px){
  .touch-services .touch-service-btn{grid-template-columns:54px minmax(0,1fr) 18px;padding:12px;min-height:100px;border-radius:18px;gap:9px}
  .touch-service-icon{width:54px;height:54px;border-radius:16px;font-size:32px}
  .touch-service-copy strong{font-size:clamp(17px,4.7vw,23px)!important}
  .touch-service-copy > span{font-size:clamp(12px,3.4vw,16px)!important}
  .touch-service-arrow{font-size:30px}
}

/* v17.7 - comprovante térmico compacto e centralizado */
.thermal-ticket.thermal-mini { padding:6px 8px; }
.thermal-compact-content { text-align:center; color:#000; }
.thermal-compact-content h2 { margin:0; font-size:17px; line-height:1.15; font-weight:800; }
.thermal-system-title { margin-top:3px; font-size:11px; line-height:1.2; }
.thermal-ticket-code { margin:10px 0 6px; font-size:38px; line-height:1; font-weight:900; letter-spacing:1px; }
.thermal-date-time { font-size:12px; font-weight:700; margin:5px 0 10px; }
.thermal-service-label { font-size:10px; text-transform:uppercase; letter-spacing:.4px; margin-top:5px; }
.thermal-service-name { font-size:15px; line-height:1.15; font-weight:800; margin:3px 0 4px; overflow-wrap:anywhere; }
@media print {
  .thermal-ticket { box-shadow:none !important; margin:0 auto !important; padding:2mm !important; }
  .thermal-ticket .no-print { display:none !important; }
  .thermal-compact-content { text-align:center !important; }
}

/* v17.8 - Autoatendimento conforme mockup aprovado: sem ícones, cards grandes e tela cheia */
.touch-kiosk-body{
  margin:0!important;background:#f8fbff!important;color:#0b2b57!important;
  overflow:hidden!important;width:100vw!important;height:100vh!important;min-height:100vh!important;
}
.touch-kiosk-body .touch-shell{
  width:100vw!important;height:100vh!important;max-width:none!important;min-height:0!important;
  padding:0!important;margin:0!important;display:grid!important;
  grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden!important;background:linear-gradient(180deg,#f7fbff 0%,#fff 55%,#f5faff 100%);
}
.kiosk-modern-header{
  min-height:clamp(104px,14vh,150px);display:grid;grid-template-columns:minmax(270px,1fr) minmax(420px,1.7fr) minmax(220px,.75fr);
  align-items:center;gap:clamp(16px,2vw,34px);padding:clamp(14px,2vh,24px) clamp(24px,3vw,52px);
  background:linear-gradient(90deg,#f4faff 0%,#ffffff 48%,#f1f8ff 100%);border-bottom:1px solid #dbe8f5;
}
.kiosk-municipal-brand{display:flex;align-items:center;gap:16px;min-width:0;border-right:1px solid #cfdceb;padding-right:clamp(16px,2vw,30px)}
.kiosk-brand-logo,.kiosk-brand-mark{width:clamp(62px,5.5vw,92px);height:clamp(62px,5.5vw,92px);object-fit:contain;flex:0 0 auto}
.kiosk-brand-mark{display:grid;place-items:center;border-radius:18px;background:#e8f2ff;font-size:24px;font-weight:900}
.kiosk-brand-text{display:flex;flex-direction:column;min-width:0;line-height:1.02;text-transform:uppercase;color:#14335d}
.kiosk-brand-text span{font-size:clamp(15px,1.3vw,24px);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kiosk-brand-text strong{font-size:clamp(21px,1.75vw,34px);font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kiosk-title-block{text-align:center;min-width:0}.kiosk-title-block h1{margin:0;color:#0a2b58;font-size:clamp(40px,4.4vw,72px);line-height:.95;font-weight:900;letter-spacing:-2px}
.kiosk-title-block p{margin:12px 0 0;color:#536b89;font-size:clamp(17px,1.55vw,28px);line-height:1.15}
.kiosk-clock-block{text-align:right;color:#0a2b58;display:flex;flex-direction:column;align-items:flex-end;line-height:1}
.kiosk-clock-block strong{font-size:clamp(17px,1.45vw,25px)}.kiosk-clock-block span{font-size:clamp(38px,3.7vw,62px);font-weight:900;margin:6px 0}.kiosk-clock-block small{font-size:clamp(14px,1.15vw,21px);color:#536b89}
.kiosk-services-stage{min-height:0;overflow:hidden;padding:clamp(14px,2vh,24px) clamp(24px,2.8vw,48px)}
.kiosk-service-grid{height:100%;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(var(--service-rows),minmax(0,1fr));gap:clamp(14px,2vh,26px) clamp(18px,1.6vw,30px);align-items:stretch}
.kiosk-service-card{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-width:0;min-height:0;padding:clamp(16px,2vw,34px);border-radius:clamp(22px,2vw,34px);text-decoration:none!important;color:#fff!important;box-shadow:0 12px 28px rgba(25,70,120,.13);transition:transform .12s ease,filter .12s ease}
.kiosk-service-card::before,.kiosk-service-card::after{content:"";position:absolute;z-index:-1;left:-8%;width:116%;height:42%;border-radius:50% 55% 0 0/70% 75% 0 0;bottom:-16%;background:rgba(255,255,255,.10);transform:rotate(-2deg)}
.kiosk-service-card::after{bottom:-24%;left:18%;width:96%;background:rgba(0,60,130,.10);transform:rotate(4deg)}
.kiosk-service-card:active{transform:scale(.985);filter:brightness(.96)}
.kiosk-color-1{background:linear-gradient(135deg,#3298ef 0%,#0867cf 100%)}.kiosk-color-2{background:linear-gradient(135deg,#3fc77c 0%,#07994f 100%)}.kiosk-color-3{background:linear-gradient(135deg,#ffad38 0%,#ff6714 100%)}.kiosk-color-4{background:linear-gradient(135deg,#42c8f5 0%,#058ed8 100%)}
.kiosk-service-name{display:block;max-width:95%;font-size:clamp(27px,3.3vw,58px);font-weight:900;line-height:1.02;letter-spacing:-1px;text-shadow:0 2px 2px rgba(0,0,0,.05)}
.kiosk-service-description{display:block;max-width:90%;margin-top:clamp(8px,1.5vh,18px);font-size:clamp(16px,1.75vw,30px);font-weight:400;line-height:1.12;color:rgba(255,255,255,.96)!important}
.kiosk-modern-footer{height:clamp(58px,8vh,88px);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(28px,4vw,64px);background:#edf6ff;border-top:1px solid #dbe8f5;color:#315f94;letter-spacing:1.2px;font-size:clamp(13px,1.15vw,20px)}
.kiosk-modern-footer span{padding-left:clamp(24px,4vw,70px);border-left:1px solid #adc3db}
/* Mais serviços: comprime tipografia/intervalos sem criar rolagem */
.kiosk-service-grid[style*="--service-count: 5"],.kiosk-service-grid[style*="--service-count: 6"],.kiosk-service-grid[style*="--service-count: 7"],.kiosk-service-grid[style*="--service-count: 8"]{gap:10px 18px}
.kiosk-service-grid[style*="--service-count: 5"] .kiosk-service-name,.kiosk-service-grid[style*="--service-count: 6"] .kiosk-service-name,.kiosk-service-grid[style*="--service-count: 7"] .kiosk-service-name,.kiosk-service-grid[style*="--service-count: 8"] .kiosk-service-name{font-size:clamp(22px,2.35vw,40px)}
.kiosk-service-grid[style*="--service-count: 5"] .kiosk-service-description,.kiosk-service-grid[style*="--service-count: 6"] .kiosk-service-description,.kiosk-service-grid[style*="--service-count: 7"] .kiosk-service-description,.kiosk-service-grid[style*="--service-count: 8"] .kiosk-service-description{font-size:clamp(14px,1.3vw,22px);margin-top:7px}
@media(max-width:900px){.kiosk-modern-header{grid-template-columns:minmax(180px,.9fr) minmax(300px,1.5fr) minmax(130px,.65fr);padding:12px 18px;gap:12px}.kiosk-brand-text span{display:none}.kiosk-title-block h1{font-size:clamp(32px,5vw,48px)}.kiosk-title-block p{font-size:15px}.kiosk-services-stage{padding:12px 16px}.kiosk-modern-footer{padding:0 20px}}
@media(max-width:620px){.kiosk-modern-header{grid-template-columns:70px 1fr 100px;min-height:86px}.kiosk-brand-text{display:none}.kiosk-brand-logo,.kiosk-brand-mark{width:54px;height:54px}.kiosk-title-block h1{font-size:29px;letter-spacing:-1px}.kiosk-title-block p{font-size:12px;margin-top:5px}.kiosk-clock-block strong,.kiosk-clock-block small{font-size:10px}.kiosk-clock-block span{font-size:27px}.kiosk-service-grid{gap:8px}.kiosk-service-card{border-radius:18px;padding:10px}.kiosk-service-name{font-size:clamp(18px,5vw,26px)}.kiosk-service-description{font-size:clamp(11px,3.3vw,15px);margin-top:5px}.kiosk-modern-footer{font-size:10px;height:46px;padding:0 12px}.kiosk-modern-footer span{padding-left:10px}}
/* v17.13 - player YouTube em iframe independente do feed de chamadas */
.panel-video-wrap iframe#youtubePlayerFrame {
  display: block;
  width: 100% !important;
  height: 100% !important;
  min-width: 100%;
  min-height: 100%;
  border: 0;
}
