/* Portix: o que o Tailwind não cobre. */
html, body { -webkit-tap-highlight-color: transparent; }
body { min-height: 100vh; min-height: 100dvh; }
.px-swal { font-size: 1.05rem; border-radius: 1.5rem !important; }
.px-swal .swal2-title { font-size: 1.5rem; }
.px-swal .swal2-confirm, .px-swal .swal2-cancel { font-size: 1.1rem !important; padding: .9rem 1.6rem !important; border-radius: 1rem !important; font-weight: 700 !important; }
.px-swal .swal2-textarea, .px-swal .swal2-input { font-size: 1.1rem; }

/* Identidade: filete dourado sob os cabeçalhos escuros (o aro da logo, sem brilho) */
.px-filete-ouro { border-bottom: 2px solid transparent; border-image: linear-gradient(90deg, #8a6420, #e8c27a 50%, #8a6420) 1; }
.px-fundo-marca { background: radial-gradient(ellipse at top, #0d1a3a 0%, #060c1e 60%); }
.px-logo { border-radius: 9999px; box-shadow: 0 0 0 1px rgba(232, 194, 122, .35); }

/* Cartão VIP: borda e selo dourados */
.px-vip { border: 3px solid #c9973f !important; box-shadow: 0 0 0 4px #f7ecd2; }
.px-selo-vip { background: linear-gradient(135deg, #e8c27a, #c9973f); color: #2b1d00; }

/* Interruptor sim/não grande */
.px-chave { position: relative; width: 3.4rem; height: 2rem; flex-shrink: 0; }
.px-chave input { opacity: 0; width: 0; height: 0; position: absolute; }
.px-chave span { position: absolute; inset: 0; background: #cbd5e1; border-radius: 999px; transition: .2s; cursor: pointer; }
.px-chave span::before { content: ""; position: absolute; width: 1.6rem; height: 1.6rem; left: .2rem; top: .2rem; background: #fff; border-radius: 999px; transition: .2s; box-shadow: 0 1px 3px rgba(0,0,0,.3); }
.px-chave input:checked + span { background: #16a34a; }
.px-chave input:checked + span::before { transform: translateX(1.4rem); }
.px-chave input:focus-visible + span { outline: 3px solid #8fb1ff; }

/* Pílula de dia da semana */
.px-dia input { display: none; }
.px-dia span { display: flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; border-radius: 999px; border: 2px solid #cbd5e1; font-weight: 700; color: #475569; cursor: pointer; user-select: none; }
.px-dia input:checked + span { background: #1550c8; border-color: #1550c8; color: #fff; }

/* Rolagem fina nas colunas da portaria */
.px-rolagem { overflow-y: auto; scrollbar-width: thin; }
.px-rolagem::-webkit-scrollbar { width: 8px; }
.px-rolagem::-webkit-scrollbar-thumb { background: #94a3b8; border-radius: 8px; }

/* Piscar suave (alguém esperando resposta) */
@keyframes px-pulso { 0%, 100% { box-shadow: 0 0 0 0 rgba(234, 179, 8, .6); } 50% { box-shadow: 0 0 0 10px rgba(234, 179, 8, 0); } }
.px-pulso { animation: px-pulso 1.6s infinite; }

/* Espaço do menu de baixo do app (e do recorte do iPhone) */
.px-app-pe { padding-bottom: calc(5.5rem + env(safe-area-inset-bottom)); }
.px-menu-app { padding-bottom: env(safe-area-inset-bottom); }

.px-assinatura { touch-action: none; background: #fff; border: 2px dashed #94a3b8; border-radius: 1rem; }
[x-cloak], .px-oculto { display: none !important; }
