:root{
  /* Dark Mode (padrão) */
  --bg:#0b0f17; --panel:#111827; --panel2:#0f172a; --text:#e5e7eb;
  --muted:#94a3b8; --line:#1f2937; --ok:#22c55e; --warn:#f59e0b; --bad:#ef4444;
  --btn:#2563eb; --btn2:#334155;
  --purple:#9333ea; --purple-dark:#7c3aed; --purple-light:#a855f7;
  --shadow: 0 10px 30px rgba(0,0,0,.35);
  --radius: 14px;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

[data-theme="light"] {
  /* Light Mode - Cores mais suaves e saudáveis para os olhos (branco mais cinza) */
  --bg:#f1f3f5; --panel:#f8f9fa; --panel2:#e9ecef; --text:#212529;
  --muted:#6c757d; --line:#dee2e6; --ok:#22c55e; --warn:#f59e0b; --bad:#ef4444;
  --btn:#3b82f6; --btn2:#ced4da;
  --purple:#9333ea; --purple-dark:#7c3aed; --purple-light:#a855f7;
  --shadow: 0 10px 30px rgba(0,0,0,.08);
}

/* Scrollbar customizada moderna */
* {
  scrollbar-width: thin;
  scrollbar-color: rgba(148,163,184,.4) transparent;
}

*::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

*::-webkit-scrollbar-track {
  background: rgba(15,23,42,.3);
  border-radius: 10px;
  margin: 4px;
}

*::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, rgba(148,163,184,.5), rgba(148,163,184,.3));
  border-radius: 10px;
  border: 2px solid transparent;
  background-clip: padding-box;
  transition: background 0.2s;
}

*::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, rgba(148,163,184,.7), rgba(148,163,184,.5));
  background-clip: padding-box;
}

*::-webkit-scrollbar-corner {
  background: transparent;
}

/* Scrollbar específica para listas (POS, produtos, carrinho) */
.pos-list-container::-webkit-scrollbar,
.products::-webkit-scrollbar,
.cart-table-wrapper::-webkit-scrollbar {
  width: 10px;
}

.pos-list-container::-webkit-scrollbar-track,
.products::-webkit-scrollbar-track,
.cart-table-wrapper::-webkit-scrollbar-track {
  background: rgba(15,23,42,.4);
  border-radius: 10px;
  margin: 2px;
}

.pos-list-container::-webkit-scrollbar-thumb,
.products::-webkit-scrollbar-thumb,
.cart-table-wrapper::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, rgba(37,99,235,.6), rgba(37,99,235,.4));
  border-radius: 10px;
  border: 2px solid transparent;
  background-clip: padding-box;
}

.pos-list-container::-webkit-scrollbar-thumb:hover,
.products::-webkit-scrollbar-thumb:hover,
.cart-table-wrapper::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, rgba(37,99,235,.8), rgba(37,99,235,.6));
  background-clip: padding-box;
}
body{ margin:0; background:linear-gradient(180deg,#060913,#0b0f17 60%); color:var(--text); transition: background 0.3s ease, color 0.3s ease; }
[data-theme="light"] body{ background:linear-gradient(180deg,#e9ecef,#f1f3f5 60%); }
header{
  position:sticky; top:0; z-index:5;
  background:rgba(15,23,42,.86); backdrop-filter: blur(10px);
  border-bottom:1px solid var(--line);
  transition: background 0.3s ease, border-color 0.3s ease;
}
[data-theme="light"] header{
  background:rgba(248,249,250,.95);
  border-bottom-color: #dee2e6;
}
.wrap{ max-width:1200px; margin:0 auto; padding:18px 16px; }
.top{
  display:grid; grid-template-columns: auto 1fr auto; gap:12px; align-items:center;
}
@media (max-width: 768px) {
  .top{
    grid-template-columns: 1fr;
    justify-items: center;
  }
  .top > div:last-child {
    grid-column: 1;
  }
}
.brand{ display:flex; align-items:center; gap:12px; }
.brand .logo{ height:80px; width:auto; object-fit:contain; transform: scale(1.2); }
.brand > div{ display:flex; flex-direction:column; gap:4px; }
.brand h1{ margin:0; font-size:18px; letter-spacing:.3px;}
.brand p{ margin:0; color:var(--muted); font-size:12px; }

/* Título centralizado */
.brand-title {
  text-align: center;
  justify-self: center;
  grid-column: 2;
}
.brand-title h1 {
  margin: 0;
  font-size: 18px;
  letter-spacing: .3px;
  color: var(--text);
}
.brand-title p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}
.pill{
  display:flex; gap:8px; align-items:center;
  border:1px solid var(--line); background:rgba(17,24,39,.8);
  padding:10px 12px; border-radius:999px;
}
.pill input{
  width:220px; max-width:55vw;
  background:transparent; border:0; outline:0; color:var(--text);
  font-size:12px;
}
.pill button{
  border:0; background:var(--btn2); color:var(--text);
  padding:8px 10px; border-radius:999px; cursor:pointer; font-size:12px;
}
main .grid{
  display:grid; grid-template-columns: 1.25fr .75fr; gap:16px;
  padding:16px 16px 28px;
  max-width:1200px; margin:0 auto;
}
@media (max-width: 980px){ main .grid{ grid-template-columns:1fr; } }

.card{
  background:linear-gradient(180deg, rgba(17,24,39,.95), rgba(15,23,42,.95));
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow: var(--shadow);
  overflow:hidden;
  transition: background 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
[data-theme="light"] .card{
  background:linear-gradient(180deg, rgba(248,249,250,.98), rgba(241,243,245,.98));
  border-color: #dee2e6;
}
.card .hd{
  padding:14px 14px 10px; border-bottom:1px solid var(--line);
  display:flex; align-items:flex-end; justify-content:space-between; gap:12px;
  background: rgba(15,23,42,.5);
  transition: background 0.3s ease, border-color 0.3s ease;
}
[data-theme="light"] .card .hd{
  background: rgba(233,236,239,.85);
  border-bottom-color: #dee2e6;
}
.card .hd h2{ margin:0; font-size:14px; }
.card .hd small{ color:var(--muted); }
.card .bd{ padding:14px; display:flex; flex-direction:column; }
.card .bd > * { flex-shrink: 0; }
.card .bd .cart-table-wrapper { flex-shrink: 1; min-height: 0; }

/* Tabs Navigation */
.tabs-nav {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--line);
  margin: 0;
  padding: 0 14px;
  background: rgba(15,23,42,.3);
  transition: background 0.3s ease;
}
[data-theme="light"] .tabs-nav {
  background: rgba(233,236,239,.6);
  border-bottom-color: #dee2e6;
}
.tab-btn {
  flex: 1;
  padding: 12px 16px;
  border: none;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  font-weight: 500;
  font-size: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: all 0.2s ease;
  position: relative;
}
.tab-btn span:first-child {
  font-size: 16px;
  line-height: 1;
}
.tab-btn:hover {
  color: var(--text);
  background: rgba(37,99,235,.05);
}
[data-theme="light"] .tab-btn:hover {
  background: rgba(222,226,230,.5);
}
.tab-btn.active {
  color: var(--ok);
  border-bottom-color: var(--ok);
  font-weight: 600;
}
[data-theme="light"] .tab-btn.active {
  color: var(--ok);
}
@media (max-width: 520px) {
  .tab-btn {
    padding: 10px 12px;
    font-size: 12px;
    gap: 4px;
  }
  .tab-btn span:first-child {
    font-size: 14px;
  }
}

/* Tab Content */
.tab-content {
  display: none;
  animation: fadeIn 0.2s ease;
}
.tab-content.active {
  display: flex;
  flex-direction: column;
}
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* Produtos */
.products{
  display:grid; grid-template-columns: repeat(2, 1fr); gap:12px;
  max-height: 600px;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 6px;
}
@media (max-width: 980px){ .products{ max-height: 500px; } }
@media (max-width: 520px){ 
  .products{ 
    grid-template-columns:1fr; 
    max-height: 400px;
  } 
}
.p{
  background:rgba(15,23,42,.9);
  border:1px solid var(--line);
  border-radius:12px;
  padding:12px;
  display:flex;
  flex-direction:column;
  gap:10px;
  transition: background 0.3s ease, border-color 0.3s ease;
}
[data-theme="light"] .p{
  background:rgba(248,249,250,.95);
  border-color: #dee2e6;
}
.p .p-content-row{
  display:flex;
  gap:12px;
  align-items:flex-start;
}
.p .p-img-wrapper{
  width:100px;
  height:100px;
  min-width:100px;
  border-radius:8px;
  overflow:hidden;
  background:rgba(2,6,23,.6);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  transition: background 0.3s ease;
}
[data-theme="light"] .p .p-img-wrapper{
  background:rgba(233,236,239,.85);
}
.p .p-img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.p .p-img-placeholder{
  color:var(--muted);
  font-size:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
}
.p .p-info{
  flex:1;
  display:flex;
  flex-direction:column;
  gap:10px;
  min-width:0;
}
.p .p-info-top{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:flex-start;
}
.p .name{ font-weight:600; }
.p .sku{ color:var(--muted); font-size:12px; }
.p .price{ font-weight:700; white-space:nowrap; }
.p button{
  border:0; background:var(--btn); color:white;
  padding:10px 12px; border-radius:12px; cursor:pointer; font-weight:600;
  width:100%;
}

/* Carrinho */
.cart-table-wrapper {
  max-height: 320px;
  overflow-y: auto;
  overflow-x: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding-right: 2px;
  margin-bottom: 12px;
}
@media (max-width: 980px){ .cart-table-wrapper{ max-height: 280px; } }
@media (max-width: 520px){ .cart-table-wrapper{ max-height: 240px; } }
table{ width:100%; border-collapse:collapse; }
th, td{ padding:10px 8px; border-bottom:1px solid var(--line); font-size:13px; vertical-align:middle; }
th{ 
  text-align:left; 
  color:var(--muted); 
  font-weight:600; 
  position: sticky; 
  top: 0; 
  background: linear-gradient(180deg, rgba(15,23,42,.98), rgba(15,23,42,.95)); 
  backdrop-filter: blur(8px);
  z-index: 10; 
  box-shadow: 0 2px 4px rgba(0,0,0,.1);
  transition: background 0.3s ease, color 0.3s ease;
}
[data-theme="light"] th{
  background: linear-gradient(180deg, rgba(233,236,239,.98), rgba(222,226,230,.95));
  color: #6c757d;
  box-shadow: 0 2px 4px rgba(0,0,0,.05);
}
tbody td:first-child{ 
  display:flex; 
  gap:12px; 
  align-items:center;
  min-width:0;
}
.cart-img{
  width:60px;
  height:60px;
  min-width:60px;
  border-radius:8px;
  overflow:hidden;
  background:rgba(2,6,23,.6);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  transition: background 0.3s ease;
}
[data-theme="light"] .cart-img{
  background:rgba(233,236,239,.85);
}
.cart-item-img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.cart-item-info{
  flex:1;
  min-width:0;
}
.cart-item-img-placeholder{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--muted);
  font-size:24px;
}
td:last-child, th:last-child{ text-align:right; white-space:nowrap; }
.qty{
  display:flex; gap:6px; align-items:center;
}
.qty button{
  border:1px solid var(--line); background:rgba(51,65,85,.35);
  color:var(--text); border-radius:10px; width:30px; height:30px; cursor:pointer;
  font-weight:700;
  transition: all 0.2s ease;
}
[data-theme="light"] .qty button{
  background: rgba(233,236,239,.8);
  border-color: #dee2e6;
  color: #212529;
}
[data-theme="light"] .qty button:hover{
  background: rgba(222,226,230,.9);
  border-color: #ced4da;
}
.qty button.qty-single {
  background: rgba(239,68,68,.2);
  border-color: rgba(239,68,68,.5);
  color: #fca5a5;
}
.qty button.qty-single:hover {
  background: rgba(239,68,68,.35);
  border-color: rgba(239,68,68,.7);
  color: #f87171;
}
.totals{
  margin-top:12px; padding-top:12px; border-top:1px dashed var(--line);
  display:flex; flex-direction:column; gap:8px;
  flex-shrink: 0;
}
.totals .line{ display:flex; justify-content:space-between; color:var(--muted); font-size:13px; }
.totals .grand{ color:var(--text); font-size:16px; font-weight:800; }
.actions{
  margin-top:14px;
  display:flex; gap:10px; flex-wrap:wrap;
  flex-shrink: 0;
}
.actions button{
  border:1px solid var(--line); 
  border-radius:10px; 
  cursor:pointer; 
  font-weight:600;
  padding:12px 18px;
  flex:1;
  min-width:140px;
  display:flex;
  align-items:center;
  justify-content:center;
  transition: opacity 0.2s ease, cursor 0.2s ease;
}
.actions button:disabled {
  opacity: 0.5;
  cursor: not-allowed !important;
}
.actions button:disabled:hover {
  background: inherit;
  border-color: inherit;
}
  gap:8px;
  font-size:14px;
  transition: all 0.2s ease;
  background: var(--panel2);
  color: var(--text);
}
[data-theme="light"] .actions button{
  background: rgba(233,236,239,.9);
  border-color: #dee2e6;
  color: #212529;
}
.actions button span:first-child{
  font-size: 18px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.actions button:hover{
  border-color: var(--btn);
  background: rgba(37,99,235,.08);
}
[data-theme="light"] .actions button:hover{
  background: rgba(222,226,230,.95);
  border-color: var(--btn);
}
.actions button:active{
  transform: scale(0.98);
}
.actions .pay{ 
  background: var(--ok) !important;
  color: #ffffff !important;
  border-color: var(--ok) !important;
}
.actions .pay:hover{
  background: #16a34a !important;
  border-color: #16a34a !important;
}
[data-theme="light"] .actions .pay{
  background: var(--ok) !important;
  color: #ffffff !important;
  border-color: var(--ok) !important;
}
[data-theme="light"] .actions .pay:hover{
  background: #16a34a !important;
  border-color: #16a34a !important;
}
.actions .clear{ 
  background: rgba(148,163,184,.1);
  color: var(--text);
  border-color: rgba(148,163,184,.3);
}
.actions .clear:hover{
  background: rgba(239,68,68,.1);
  border-color: rgba(239,68,68,.4);
  color: #fca5a5;
}
[data-theme="light"] .actions .clear {
  background: rgba(233,236,239,.9);
  border-color: #dee2e6;
  color: #212529;
}
[data-theme="light"] .actions .clear:hover {
  background: rgba(239,68,68,.15);
  border-color: rgba(239,68,68,.4);
  color: #dc2626;
}

/* Botão de limpar dados sensíveis - estilo mais destacado */
.clear-danger {
  width: 100%;
  background: rgba(239,68,68,.15) !important;
  border: 1px solid rgba(239,68,68,.4) !important;
  color: #fca5a5 !important;
  font-weight: 600;
  transition: all 0.2s ease;
}
.clear-danger:hover {
  background: rgba(239,68,68,.25) !important;
  border-color: rgba(239,68,68,.6) !important;
  color: #fca5a5 !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(239,68,68,.2);
}
[data-theme="light"] .clear-danger {
  background: rgba(239,68,68,.15) !important;
  border-color: rgba(239,68,68,.4) !important;
  color: #dc2626 !important;
}
[data-theme="light"] .clear-danger:hover {
  background: rgba(239,68,68,.25) !important;
  border-color: rgba(239,68,68,.5) !important;
  color: #b91c1c !important;
  box-shadow: 0 4px 12px rgba(239,68,68,.3);
}
.clear-danger:active {
  transform: translateY(0);
  box-shadow: 0 2px 6px rgba(239,68,68,.2);
}

/* Seção de limpar dados sensíveis na configuração */
.config-danger-section {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
  transition: border-color 0.3s ease;
}
[data-theme="light"] .config-danger-section {
  border-top-color: #dee2e6;
}
.actions .cancelTef{ 
  background:rgba(239,68,68,.16); 
  color:#fecaca; 
  border: 1px solid rgba(239,68,68,.35);
  transition: all 0.2s ease;
}
[data-theme="light"] .actions .cancelTef{ 
  background:rgba(239,68,68,.2); 
  color:#dc2626; 
  border-color: rgba(239,68,68,.4); 
}

.field{
  display:flex; flex-direction:column; gap:6px;
  margin-bottom:10px;
  flex-shrink: 0;
}
label{ color:var(--muted); font-size:12px; }
select, input[type="text"], input[type="number"], input[type="password"]{
  background:rgba(15,23,42,.85);
  border:1px solid var(--line);
  color:var(--text);
  padding:10px 10px;
  border-radius:12px;
  outline:0;
  transition: background 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}
[data-theme="light"] select, 
[data-theme="light"] input[type="text"], 
[data-theme="light"] input[type="number"],
[data-theme="light"] input[type="password"]{
  background:rgba(248,249,250,.95);
  border-color: #dee2e6;
  color: #212529;
}
[data-theme="light"] select:hover,
[data-theme="light"] input[type="text"]:hover, 
[data-theme="light"] input[type="number"]:hover,
[data-theme="light"] input[type="password"]:hover{
  border-color: #ced4da;
  background: rgba(241,243,245,.98);
}
[data-theme="light"] select:focus,
[data-theme="light"] input[type="text"]:focus, 
[data-theme="light"] input[type="number"]:focus,
[data-theme="light"] input[type="password"]:focus{
  border-color: var(--btn);
  background: rgba(248,249,250,1);
}

/* Token Input Wrapper - Campo estilizado para token */
.token-input-wrapper {
  position: relative;
  display: flex;
  align-items: center;
}
.token-input-wrapper input[type="password"],
.token-input-wrapper input[type="text"] {
  width: 100%;
  padding-right: 45px;
  font-family: 'Courier New', monospace;
  letter-spacing: 0.5px;
}
.token-toggle-btn {
  position: absolute;
  right: 8px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 6px 8px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease;
  color: var(--muted);
  font-size: 18px;
  line-height: 1;
}
.token-toggle-btn:hover {
  background: rgba(37,99,235,.1);
  color: var(--text);
}
[data-theme="light"] .token-toggle-btn:hover {
  background: rgba(222,226,230,.6);
}
.token-toggle-btn:active {
  transform: scale(0.95);
}
.token-eye-icon {
  display: inline-block;
  filter: grayscale(0.3);
  transition: filter 0.2s ease;
}
.token-toggle-btn:hover .token-eye-icon {
  filter: grayscale(0);
}

input[type="checkbox"] {
  width: 18px;
  height: 18px;
  cursor: pointer;
  accent-color: var(--btn);
}
.hint{ color:var(--muted); font-size:12px; line-height:1.35; }

/* Botões de Forma de Pagamento */
.payment-methods {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 8px;
}

.payment-method-btn {
  border: 1px solid var(--line);
  background: var(--panel2);
  color: var(--text);
  padding: 10px 14px;
  border-radius: 10px;
  cursor: pointer;
  font-weight: 500;
  font-size: 13px;
  transition: all 0.2s ease;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex-direction: column;
}

.payment-icon {
  font-size: 20px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.payment-icon img {
  width: 20px;
  height: 20px;
  object-fit: contain;
  display: block;
}
.payment-icon.pix-icon {
  filter: brightness(1.1);
}

.payment-method-btn:hover {
  background: rgba(34,197,94,.1);
  border-color: var(--ok);
}

.payment-method-btn.active {
  background: linear-gradient(135deg, var(--ok) 0%, #16a34a 100%) !important;
  color: #ffffff !important;
  border-color: var(--ok) !important;
  font-weight: 600;
  box-shadow: 0 4px 12px rgba(34,197,94,.3);
}

.payment-method-btn.active:hover {
  background: linear-gradient(135deg, #16a34a 0%, var(--ok) 100%) !important;
  box-shadow: 0 6px 16px rgba(34,197,94,.4);
}

[data-theme="light"] .payment-method-btn.active {
  background: linear-gradient(135deg, var(--ok) 0%, #16a34a 100%) !important;
  color: #ffffff !important;
  border-color: var(--ok) !important;
  box-shadow: 0 4px 12px rgba(34,197,94,.4);
}

[data-theme="light"] .payment-method-btn.active:hover {
  background: linear-gradient(135deg, #16a34a 0%, var(--ok) 100%) !important;
  box-shadow: 0 6px 16px rgba(34,197,94,.5);
}

.payment-method-btn:active {
  transform: scale(0.98);
}

[data-theme="light"] .payment-method-btn:not(.active) {
  border-color: #dee2e6;
  background: rgba(248,249,250,.95);
}
[data-theme="light"] .payment-method-btn:not(.active):hover {
  background: rgba(233,236,239,.9);
  border-color: var(--btn);
}
@media (max-width: 520px) {
  .payment-methods {
    grid-template-columns: 1fr;
  }
  
  .payment-method-btn {
    flex-direction: row;
    justify-content: flex-start;
    padding: 12px 14px;
  }
}

/* Modal TEF */
.modal{
  position:fixed; inset:0; display:none; align-items:center; justify-content:center;
  background:rgba(0,0,0,.55); z-index:20;
  padding:16px;
  transition: background 0.3s ease;
}
[data-theme="light"] .modal{
  background:rgba(0,0,0,.25);
}
.modal.open{ display:flex; }
.modal .box{
  width:min(720px, 100%);
  background:linear-gradient(180deg, rgba(17,24,39,.98), rgba(15,23,42,.98));
  border:1px solid var(--line); border-radius:18px; box-shadow: var(--shadow);
  overflow:hidden;
  transition: background 0.3s ease, border-color 0.3s ease;
}
[data-theme="light"] .modal .box{
  background:linear-gradient(180deg, rgba(248,249,250,.99), rgba(241,243,245,.99));
  border-color: #dee2e6;
}
.modal .box .hd{
  padding:14px 14px 10px; border-bottom:1px solid var(--line);
  display:flex; justify-content:space-between; align-items:center; gap:10px;
  background: rgba(15,23,42,.5);
  transition: background 0.3s ease, border-color 0.3s ease;
}
[data-theme="light"] .modal .box .hd{
  background: rgba(233,236,239,.6);
  border-bottom-color: #dee2e6;
}
.badge{ 
  padding:6px 10px; border-radius:999px; font-size:12px; font-weight:700;
  border:1px solid var(--line);
  background:rgba(148,163,184,.12);
  transition: background 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}
[data-theme="light"] .badge {
  background: rgba(233,236,239,.6);
  border-color: #dee2e6;
}
.badge.ok{ background:rgba(34,197,94,.15); border-color:rgba(34,197,94,.35); color:#bbf7d0; }
[data-theme="light"] .badge.ok{ 
  background:rgba(34,197,94,.2); 
  border-color:rgba(34,197,94,.4); 
  color:#16a34a; 
}
.badge.warn{ background:rgba(245,158,11,.14); border-color:rgba(245,158,11,.35); color:#fde68a; }
[data-theme="light"] .badge.warn{ 
  background:rgba(245,158,11,.2); 
  border-color:rgba(245,158,11,.4); 
  color:#d97706; 
}
.badge.bad{ background:rgba(239,68,68,.14); border-color:rgba(239,68,68,.35); color:#fecaca; }
[data-theme="light"] .badge.bad{ 
  background:rgba(239,68,68,.2); 
  border-color:rgba(239,68,68,.4); 
  color:#dc2626; 
}
.modal .box .bd{ padding:14px; display:flex; flex-direction:column; gap:10px; }
.log{
  background:rgba(2,6,23,.6);
  border:1px solid var(--line);
  border-radius:12px;
  padding:12px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:12px;
  overflow:auto;
  max-height:260px;
  white-space:pre-wrap;
  transition: background 0.3s ease, border-color 0.3s ease;
}
[data-theme="light"] .log{
  background:rgba(233,236,239,.85);
  border-color: #dee2e6;
}
/* Títulos grandes */
.title-lg {
  font-size: 26px;
  font-weight: 800;
}

.subtitle-lg {
  font-size: 16px;
  color: var(--muted);
}

/* Badge maior */
.badge-lg {
  font-size: 14px;
  padding: 8px 14px;
}

/* Área de status */
.status-area {
  text-align: center;
  padding: 28px 20px;
  border-radius: 16px;
  margin-bottom: 18px;
}

.status-area.waiting {
  background: linear-gradient(180deg, rgba(245,158,11,.18), rgba(15,23,42,.8));
  border: 1px solid rgba(245,158,11,.4);
  transition: background 0.3s ease, border-color 0.3s ease;
}
[data-theme="light"] .status-area.waiting {
  background: linear-gradient(180deg, rgba(245,158,11,.2), rgba(233,236,239,.9));
  border-color: rgba(245,158,11,.5);
}

.status-text {
  font-size: 24px;
  font-weight: 800;
  color: var(--text);
}

.status-hint {
  margin-top: 6px;
  font-size: 16px;
  color: var(--muted);
}

/* Contador regressivo de timeout */
.timeout-counter {
  margin-top: 16px;
  padding: 12px 16px;
  background: rgba(245,158,11,.15);
  border: 1px solid rgba(245,158,11,.3);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  animation: fadeIn 0.3s ease;
}
[data-theme="light"] .timeout-counter {
  background: rgba(245,158,11,.2);
  border-color: rgba(245,158,11,.4);
}

.timeout-label {
  font-size: 14px;
  font-weight: 600;
  color: var(--muted);
}
[data-theme="light"] .timeout-label {
  color: #6c757d;
}

.timeout-time {
  font-size: 20px;
  font-weight: 800;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  color: var(--warn);
  min-width: 50px;
  text-align: center;
}
[data-theme="light"] .timeout-time {
  color: #d97706;
}

.timeout-time.warning {
  color: var(--bad);
  animation: pulse 1s ease infinite;
}
[data-theme="light"] .timeout-time.warning {
  color: #dc2626;
}

@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.6; }
}

/* SUCESSO */
.status-area.success {
  background: linear-gradient(180deg, rgba(34,197,94,.25), rgba(15,23,42,.9));
  border: 1px solid rgba(34,197,94,.5);
  transition: background 0.3s ease, border-color 0.3s ease;
}
[data-theme="light"] .status-area.success {
  background: linear-gradient(180deg, rgba(34,197,94,.25), rgba(233,236,239,.95));
  border-color: rgba(34,197,94,.6);
}

.success-icon {
  font-size: 64px;
  color: #22c55e;
  margin-bottom: 10px;
}

.success-text {
  font-size: 32px;
  font-weight: 900;
  color: #bbf7d0;
}
[data-theme="light"] .success-text {
  color: #16a34a;
}

.success-hint {
  font-size: 18px;
  color: #dcfce7;
}
[data-theme="light"] .success-hint {
  color: #15803d;
}

/* CANCELADO */
.status-area.canceled {
  background: linear-gradient(180deg, rgba(239,68,68,.25), rgba(15,23,42,.9));
  border: 1px solid rgba(239,68,68,.5);
  transition: background 0.3s ease, border-color 0.3s ease;
}
[data-theme="light"] .status-area.canceled {
  background: linear-gradient(180deg, rgba(239,68,68,.25), rgba(233,236,239,.95));
  border-color: rgba(239,68,68,.6);
}

.canceled-icon {
  font-size: 64px;
  color: #ef4444;
  margin-bottom: 10px;
  font-weight: 900;
}

.canceled-text {
  font-size: 32px;
  font-weight: 900;
  color: #fecaca;
}
[data-theme="light"] .canceled-text {
  color: #dc2626;
}

.canceled-hint {
  font-size: 18px;
  color: #fee2e2;
}
[data-theme="light"] .canceled-hint {
  color: #991b1b;
}

/* Info box */
.info-box {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  font-size: 14px;
  background: rgba(15,23,42,.3);
  transition: background 0.3s ease, border-color 0.3s ease;
}
[data-theme="light"] .info-box {
  background: rgba(233,236,239,.5);
  border-color: #dee2e6;
}

/* Accordion */
.accordion {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 10px 12px;
  background: rgba(2,6,23,.55);
  transition: background 0.3s ease, border-color 0.3s ease;
}
[data-theme="light"] .accordion {
  background: rgba(233,236,239,.75);
  border-color: #dee2e6;
}

.accordion summary {
  cursor: pointer;
  font-weight: 700;
  font-size: 14px;
  color: var(--muted);
}

.accordion[open] summary {
  margin-bottom: 10px;
}

/* Log menor, escondido */
.log {
  max-height: 200px;
  font-size: 12px;
}
.config-btn {
  background: rgba(148,163,184,.15);
  border: 1px solid var(--line);
  color: var(--text);
  padding: 8px 14px;
  border-radius: 12px;
  cursor: pointer;
  font-weight: 700;
  transition: all 0.2s ease;
}
[data-theme="light"] .config-btn {
  background: rgba(233,236,239,.9);
  border-color: #dee2e6;
  color: #212529;
}
[data-theme="light"] .config-btn:hover {
  background: rgba(222,226,230,.95);
  border-color: #ced4da;
}

/* Lista de POS */
.pos-list-container {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-height: 500px;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 6px;
}
@media (max-width: 520px){ .pos-list-container{ max-height: 400px; } }

.pos-item {
  background: rgba(15,23,42,.9);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 14px;
  cursor: pointer;
  transition: all 0.2s;
  flex-shrink: 0;
}
[data-theme="light"] .pos-item {
  background: rgba(248,249,250,.95);
  border-color: #dee2e6;
}
.pos-item:hover {
  background: rgba(15,23,42,1);
  border-color: var(--btn);
  transform: translateX(4px);
}
[data-theme="light"] .pos-item:hover {
  background: rgba(233,236,239,1);
  border-color: var(--btn);
}
.pos-item.selected {
  background: rgba(37,99,235,.15);
  border-color: var(--btn);
}
[data-theme="light"] .pos-item.selected {
  background: rgba(37,99,235,.2);
  border-color: var(--btn);
}

.pos-item-name {
  font-weight: 700;
  font-size: 16px;
  color: var(--text);
}

.pos-item-status {
  font-size: 12px;
  color: var(--muted);
  margin-top: 4px;
}

/* Modal de Buscando POS (Loading) */
#posSearchingModal .box {
  max-width: 400px !important;
  animation: fadeIn 0.2s ease;
}

#posSearchingModal .box .bd {
  text-align: center;
  padding: 40px 20px !important;
}

.pos-loading-icon {
  font-size: 48px;
  margin-bottom: 20px;
  animation: spin 1s linear infinite;
  display: inline-block;
}

.pos-loading-title {
  font-size: 18px;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 8px;
}

.pos-loading-subtitle {
  font-size: 14px;
  color: var(--muted);
}

/* Sistema de Notificações Toast */
.toast-container {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 1000;
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-width: 400px;
  pointer-events: none;
}

.toast {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: linear-gradient(180deg, rgba(17,24,39,.98), rgba(15,23,42,.98));
  box-shadow: 0 8px 24px rgba(0,0,0,.4);
  backdrop-filter: blur(10px);
  opacity: 0;
  transform: translateX(100%);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  pointer-events: auto;
  min-width: 280px;
}
[data-theme="light"] .toast {
  background: linear-gradient(180deg, rgba(248,249,250,.99), rgba(241,243,245,.99));
  box-shadow: 0 8px 24px rgba(0,0,0,.15);
  border-color: #dee2e6;
}

.toast.show {
  opacity: 1;
  transform: translateX(0);
}

.toast-icon {
  font-size: 20px;
  line-height: 1;
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.toast-message {
  flex: 1;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--text);
}

.toast-close {
  background: transparent;
  border: 0;
  color: var(--muted);
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: color 0.2s;
}

.toast-close:hover {
  color: var(--text);
}

/* Tipos de toast */
.toast-info {
  border-left: 3px solid var(--btn);
}
[data-theme="light"] .toast-info {
  background: linear-gradient(180deg, rgba(37,99,235,.12), rgba(241,243,245,.98));
}
.toast-info .toast-icon {
  color: var(--btn);
}

.toast-success {
  border-left: 3px solid var(--ok);
  background: linear-gradient(180deg, rgba(34,197,94,.12), rgba(15,23,42,.98));
}
[data-theme="light"] .toast-success {
  background: linear-gradient(180deg, rgba(34,197,94,.18), rgba(241,243,245,.98));
}
.toast-success .toast-icon {
  color: var(--ok);
}

.toast-error {
  border-left: 3px solid var(--bad);
  background: linear-gradient(180deg, rgba(239,68,68,.12), rgba(15,23,42,.98));
}
[data-theme="light"] .toast-error {
  background: linear-gradient(180deg, rgba(239,68,68,.18), rgba(241,243,245,.98));
}
.toast-error .toast-icon {
  color: var(--bad);
}

.toast-warning {
  border-left: 3px solid var(--warn);
  background: linear-gradient(180deg, rgba(245,158,11,.12), rgba(15,23,42,.98));
}
[data-theme="light"] .toast-warning {
  background: linear-gradient(180deg, rgba(245,158,11,.18), rgba(241,243,245,.98));
}
.toast-warning .toast-icon {
  color: var(--warn);
}

@media (max-width: 520px) {
  .toast-container {
    left: 20px;
    right: 20px;
    max-width: none;
  }
  
  .toast {
    min-width: auto;
    width: 100%;
  }
}

/* Painel de Log Lateral */
.log-panel {
  position: fixed;
  left: 0;
  top: 0;
  bottom: 0;
  width: 420px;
  background: linear-gradient(180deg, rgba(17,24,39,.98), rgba(15,23,42,.98));
  border-right: 1px solid var(--line);
  box-shadow: 4px 0 24px rgba(0,0,0,.4);
  z-index: 100;
  display: flex;
  flex-direction: column;
  transform: translateX(-100%);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), background 0.3s ease;
  overflow: hidden;
}
[data-theme="light"] .log-panel {
  background: linear-gradient(180deg, rgba(248,249,250,.99), rgba(241,243,245,.99));
  box-shadow: 4px 0 24px rgba(0,0,0,.12);
  border-right-color: #dee2e6;
}

.log-panel.open {
  transform: translateX(0);
}

.log-panel-header {
  padding: 16px;
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(15,23,42,.95);
  flex-shrink: 0;
  transition: background 0.3s ease, border-color 0.3s ease;
}
[data-theme="light"] .log-panel-header {
  background: rgba(233,236,239,.95);
  border-bottom-color: #dee2e6;
}

.log-panel-header h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
}

.log-close-btn {
  background: transparent;
  border: 1px solid var(--line);
  color: var(--text);
  width: 28px;
  height: 28px;
  border-radius: 8px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  transition: all 0.2s ease;
}
[data-theme="light"] .log-close-btn {
  border-color: #dee2e6;
  color: #495057;
}
.log-close-btn:hover {
  background: rgba(239,68,68,.1);
  border-color: rgba(239,68,68,.5);
  color: #fca5a5;
}
[data-theme="light"] .log-close-btn:hover {
  background: rgba(239,68,68,.15);
  border-color: rgba(239,68,68,.5);
  color: #dc2626;
}

.log-panel-toolbar {
  padding: 12px 16px;
  border-bottom: 1px solid var(--line);
  display: flex;
  gap: 8px;
  background: rgba(15,23,42,.9);
  flex-shrink: 0;
  transition: background 0.3s ease, border-color 0.3s ease;
}
[data-theme="light"] .log-panel-toolbar {
  background: rgba(241,243,245,.9);
  border-bottom-color: #dee2e6;
}

.log-toolbar-btn {
  background: rgba(51,65,85,.35);
  border: 1px solid var(--line);
  color: var(--text);
  padding: 6px 12px;
  border-radius: 8px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 600;
  transition: all 0.2s ease;
  flex: 1;
}
[data-theme="light"] .log-toolbar-btn {
  background: rgba(222,226,230,.6);
  border-color: #dee2e6;
  color: #212529;
}
.log-toolbar-btn:hover {
  background: rgba(51,65,85,.5);
  border-color: var(--btn);
}
[data-theme="light"] .log-toolbar-btn:hover {
  background: rgba(206,212,218,.8);
  border-color: var(--btn);
}

.log-content {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.log-empty {
  text-align: center;
  color: var(--muted);
  font-size: 13px;
  padding: 40px 20px;
}

.log-entry {
  background: rgba(15,23,42,.6);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 12px;
  font-size: 12px;
  transition: all 0.2s ease;
}
[data-theme="light"] .log-entry {
  background: rgba(248,249,250,.8);
  border-color: #dee2e6;
}

.log-entry:hover {
  background: rgba(15,23,42,.8);
  border-color: var(--btn);
}
[data-theme="light"] .log-entry:hover {
  background: rgba(241,243,245,.95);
  border-color: var(--btn);
}

.log-entry-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--line);
  transition: border-color 0.3s ease;
}
[data-theme="light"] .log-entry-header {
  border-bottom-color: #dee2e6;
}

.log-entry-method {
  font-weight: 700;
  padding: 4px 8px;
  border-radius: 6px;
  font-size: 11px;
  letter-spacing: 0.5px;
}

.log-entry-method.GET {
  background: rgba(34,197,94,.2);
  color: #bbf7d0;
  border: 1px solid rgba(34,197,94,.4);
}
[data-theme="light"] .log-entry-method.GET {
  background: rgba(34,197,94,.15);
  color: #16a34a;
  border-color: rgba(34,197,94,.3);
}

.log-entry-method.POST {
  background: rgba(37,99,235,.2);
  color: #bfdbfe;
  border: 1px solid rgba(37,99,235,.4);
}
[data-theme="light"] .log-entry-method.POST {
  background: rgba(37,99,235,.15);
  color: #2563eb;
  border-color: rgba(37,99,235,.3);
}

.log-entry-method.PUT {
  background: rgba(245,158,11,.2);
  color: #fde68a;
  border: 1px solid rgba(245,158,11,.4);
}
[data-theme="light"] .log-entry-method.PUT {
  background: rgba(245,158,11,.15);
  color: #d97706;
  border-color: rgba(245,158,11,.3);
}

.log-entry-method.DELETE {
  background: rgba(239,68,68,.2);
  color: #fecaca;
  border: 1px solid rgba(239,68,68,.4);
}
[data-theme="light"] .log-entry-method.DELETE {
  background: rgba(239,68,68,.15);
  color: #dc2626;
  border-color: rgba(239,68,68,.3);
}

.log-entry-time {
  color: var(--muted);
  font-size: 11px;
}

.log-entry-url {
  color: var(--text);
  font-weight: 600;
  margin-bottom: 8px;
  word-break: break-all;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 11px;
}

.log-entry-status {
  display: inline-block;
  padding: 3px 8px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 700;
  margin-bottom: 8px;
}

.log-entry-status.success {
  background: rgba(34,197,94,.2);
  color: #bbf7d0;
}
[data-theme="light"] .log-entry-status.success {
  background: rgba(34,197,94,.15);
  color: #16a34a;
}

.log-entry-status.error {
  background: rgba(239,68,68,.2);
  color: #fecaca;
}
[data-theme="light"] .log-entry-status.error {
  background: rgba(239,68,68,.15);
  color: #dc2626;
}

.log-entry-details {
  margin-top: 8px;
}

.log-entry-details summary {
  cursor: pointer;
  color: var(--muted);
  font-size: 11px;
  font-weight: 600;
  padding: 6px 0;
  user-select: none;
}

.log-entry-details summary:hover {
  color: var(--text);
}

.log-entry-body {
  background: rgba(2,6,23,.6);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
  margin-top: 8px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 11px;
  color: var(--text);
  white-space: pre-wrap;
  word-break: break-all;
  max-height: 300px;
  overflow-y: auto;
  transition: background 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}
[data-theme="light"] .log-entry-body {
  background: rgba(233,236,239,.85);
  border-color: #dee2e6;
  color: #212529;
}

.log-entry-section {
  margin-top: 8px;
}

.log-entry-section-title {
  font-weight: 700;
  color: var(--muted);
  font-size: 11px;
  margin-bottom: 4px;
}

@media (max-width: 520px) {
  .log-panel {
    width: 100%;
  }
}
