:root {
  --alp-green:    #1a3a2a;
  --alp-green-m:  #2d6a4f;
  --alp-green-lt: #e8f4ee;
  --alp-gold:     #b8872a;
  --alp-cream:    #f5f0e8;
  --alp-bg:       #f0f4f0;
  --alp-white:    #ffffff;
  --alp-gray:     #6b7280;
  --alp-gray-lt:  #e5e7eb;
  --alp-radius:   12px;
  --alp-shadow:   0 4px 24px rgba(26,58,42,.10);
  --alp-font:     'Segoe UI', system-ui, sans-serif;
}
.alp-wrap * { box-sizing:border-box; }
.alp-wrap { font-family:var(--alp-font); color:#1a1a1a; }

/* ---- LOGIN ---- */
.alp-login-wrap { min-height:80vh; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,var(--alp-green),var(--alp-green-m)); border-radius:var(--alp-radius); padding:32px 16px; }
.alp-login-card { background:var(--alp-white); border-radius:var(--alp-radius); box-shadow:0 20px 60px rgba(0,0,0,.25); width:100%; max-width:400px; overflow:hidden; }
.alp-login-header { background:var(--alp-green); padding:36px 32px 28px; text-align:center; color:#fff; }
.alp-login-icon { font-size:3rem; display:block; margin-bottom:12px; }
.alp-login-header h2 { margin:0 0 6px; font-size:1.4rem; font-weight:800; color:#ffffff !important; }
.alp-login-header h1,.alp-login-header h2,.alp-login-header h3,.alp-login-header p,.alp-login-header * { color:#ffffff !important; }
.alp-login-header p  { margin:0; font-size:.88rem; opacity:.75; }
.alp-login-body { padding:32px; display:flex; flex-direction:column; gap:18px; }
.alp-field { display:flex; flex-direction:column; gap:6px; }
.alp-field label { font-size:.82rem; font-weight:700; color:var(--alp-green); text-transform:uppercase; letter-spacing:.05em; }
.alp-input { border:2px solid var(--alp-gray-lt); border-radius:8px; padding:11px 14px; font-size:.95rem; transition:border-color .2s,box-shadow .2s; width:100%; background:var(--alp-white); }
.alp-input:focus { outline:none; border-color:var(--alp-green-m); box-shadow:0 0 0 3px rgba(45,106,79,.15); }
.alp-pass-wrap { position:relative; }
.alp-pass-wrap .alp-input { padding-right:48px; }
.alp-toggle-pass { position:absolute; right:10px; top:50%; transform:translateY(-50%); background:none; border:none; cursor:pointer; font-size:1rem; opacity:.6; }
.alp-toggle-pass:hover { opacity:1; }
.alp-login-msg { border-radius:8px; padding:10px 14px; font-size:.88rem; background:#fee2e2; color:#991b1b; border:1px solid #fca5a5; }

/* ---- BUTTONS ---- */
.alp-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:12px 22px; border-radius:8px; font-size:.92rem; font-weight:700; border:none; cursor:pointer !important; transition:all .2s; text-decoration:none; pointer-events:auto !important; }
.alp-btn--login  { background:var(--alp-green); color:#fff; width:100%; font-size:1rem; padding:14px; }
.alp-btn--login:hover { background:var(--alp-green-m); transform:translateY(-1px); }
.alp-btn--login:disabled { opacity:.6; cursor:not-allowed; transform:none; }
.alp-btn--logout { background:transparent; color:rgba(255,255,255,.8); border:1px solid rgba(255,255,255,.3); padding:7px 14px; font-size:.82rem; }
.alp-btn--logout:hover { background:rgba(255,255,255,.1); color:#fff; }
.alp-btn--primary   { background:var(--alp-green); color:#fff; }
.alp-btn--primary:hover { background:var(--alp-green-m); }
.alp-btn--secondary { background:var(--alp-gray-lt); color:#374151; }
.alp-btn--secondary:hover { background:#d1d5db; }
.alp-btn--add { background:var(--alp-gold); color:#fff; }
.alp-btn--add:hover { background:#9a7222; }
.alp-btn-icon { background:none; border:1px solid var(--alp-gray-lt); border-radius:6px; padding:4px 8px; cursor:pointer !important; font-size:.9rem; transition:all .15s; pointer-events:auto !important; position:relative; z-index:1; }
.alp-btn-icon:hover { background:var(--alp-green-lt); border-color:var(--alp-green-m); }
.alp-btn-sm { border:none; border-radius:6px; padding:5px 10px; font-size:.8rem; cursor:pointer !important; background:var(--alp-green-lt); color:var(--alp-green); font-weight:600; transition:all .15s; pointer-events:auto !important; }
.alp-btn-sm:hover { background:var(--alp-green); color:#fff; }
.alp-btn-sm--danger { background:#fee2e2; color:#991b1b; }
.alp-btn-icon--danger { color:#dc2626 !important; }
.alp-btn-icon--danger:hover { background:#fee2e2 !important; border-color:#fca5a5 !important; }
.alp-print-only { display:none; } /* shown only in @media print */
.alp-btn-sm--danger:hover { background:#dc2626; color:#fff; }

/* ---- PAINEL SHELL ---- */
.alp-painel { background:var(--alp-bg); border-radius:var(--alp-radius); overflow:hidden; min-height:80vh; }

/* ---- TOPBAR ---- */
.alp-topbar { background:var(--alp-green); color:#fff; padding:16px 24px; display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.alp-topbar__left { display:flex; align-items:center; gap:12px; font-size:1.4rem; }
.alp-topbar__left strong { display:block; font-size:1rem; color:#fff; line-height:1.2; }
.alp-topbar__left small  { display:block; font-size:.75rem; opacity:.7; }
.alp-topbar__right { display:flex; align-items:center; gap:12px; }
.alp-topbar__user { font-size:.85rem; opacity:.85; }
.alp-topbar__date { font-size:.82rem; opacity:.65; }

/* ---- KPIs ---- */
.alp-kpis { display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:14px; padding:20px 24px; }
.alp-kpi { background:var(--alp-white); border-radius:12px; padding:18px; display:flex; align-items:center; gap:14px; box-shadow:0 2px 10px rgba(0,0,0,.06); border-left:4px solid transparent; transition:transform .2s,box-shadow .2s; }
.alp-kpi:hover { transform:translateY(-2px); box-shadow:0 6px 18px rgba(0,0,0,.10); }
.alp-kpi--green  { border-color:#16a34a; } .alp-kpi--gold   { border-color:var(--alp-gold); }
.alp-kpi--orange { border-color:#ea580c; } .alp-kpi--teal   { border-color:#0d9488; }
.alp-kpi--purple { border-color:#7c3aed; } .alp-kpi--dark   { border-color:var(--alp-green); }
.alp-kpi__icon   { font-size:1.9rem; flex-shrink:0; }
.alp-kpi__val    { display:block; font-size:1.3rem; font-weight:800; color:var(--alp-green); line-height:1.2; }
.alp-kpi__label  { display:block; font-size:.73rem; color:var(--alp-gray); margin-top:2px; }

/* ---- TABS ---- */
.alp-tabs { display:flex; gap:4px; background:var(--alp-white); padding:8px; margin:0 24px 20px; border-radius:12px; box-shadow:0 2px 8px rgba(0,0,0,.06); flex-wrap:wrap; }
.alp-tab  { flex:1; padding:10px 14px; border:none; border-radius:8px; background:transparent; cursor:pointer !important; font-weight:600; font-size:.85rem; color:var(--alp-gray); transition:all .2s; white-space:nowrap; pointer-events:auto !important; }
.alp-tab:hover { background:var(--alp-green-lt); color:var(--alp-green); }
.alp-tab--active { background:var(--alp-green); color:#fff; }
.alp-tab-panel { display:none; padding:0 24px 28px; }
.alp-tab-panel--active { display:block; }

/* ---- FILTERS ---- */
.alp-filters { display:flex; gap:10px; margin-bottom:16px; flex-wrap:wrap; align-items:center; }
.alp-select,.alp-input-filter { border:1.5px solid var(--alp-gray-lt); border-radius:8px; padding:9px 12px; font-size:.86rem; background:var(--alp-white); cursor:pointer; transition:border-color .2s; min-width:150px; }
.alp-select:focus,.alp-input-filter:focus { outline:none; border-color:var(--alp-green-m); }

/* ---- TABLE ---- */
.alp-table-wrap { overflow-x:auto; border-radius:12px; box-shadow:0 2px 10px rgba(0,0,0,.06); }
.alp-table { width:100%; border-collapse:collapse; background:var(--alp-white); font-size:.84rem; min-width:700px; }
.alp-table thead th { background:var(--alp-green); color:#fff; padding:12px 13px; text-align:left; font-size:.76rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; white-space:nowrap; }
.alp-table td { padding:11px 13px; border-bottom:1px solid #f3f4f6; vertical-align:middle; }
.alp-table tr:last-child td { border-bottom:none; }
.alp-table tr:hover td { background:#f9fafb; }
.alp-empty { text-align:center; color:var(--alp-gray); padding:48px 16px !important; }
.alp-id { color:var(--alp-green); font-weight:700; }
.alp-nowrap { white-space:nowrap; }
.alp-date-small { font-size:.76rem; color:var(--alp-gray); }
.alp-table-summary { display:flex; justify-content:space-between; padding:10px 14px; font-size:.84rem; color:var(--alp-gray); background:var(--alp-white); border-top:1px solid var(--alp-gray-lt); margin-top:-1px; }

/* ---- BADGES ---- */
.alp-badge { display:inline-block; padding:3px 10px; border-radius:99px; font-size:.74rem; font-weight:700; }
.alp-badge--glamping,.alp-badge--green { background:#d1fae5; color:#065f46; }
.alp-badge--cabana,.alp-badge--blue    { background:#dbeafe; color:#1e40af; }
.alp-badge--camping,.alp-badge--yellow { background:#fef3c7; color:#92400e; }
.alp-badge--orange { background:#ffedd5; color:#9a3412; }
.alp-badge--red    { background:#fee2e2; color:#991b1b; }

/* ---- STATUS SELECT ---- */
.alp-status-sel { border:1.5px solid var(--alp-gray-lt); border-radius:7px; padding:5px 8px; font-size:.82rem; cursor:pointer !important; background:var(--alp-white); transition:border-color .2s; pointer-events:auto !important; position:relative; z-index:1; }
.alp-status-sel[data-status="pago"]       { border-color:#16a34a; color:#065f46; }
.alp-status-sel[data-status="confirmado"] { border-color:#2563eb; color:#1e40af; }
.alp-status-sel[data-status="cancelado"]  { border-color:#dc2626; color:#991b1b; }
.alp-status-sel[data-status="pendente"]   { border-color:#d97706; color:#92400e; }

/* ---- CALENDAR ---- */
.alp-cal-controls { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; flex-wrap:wrap; gap:12px; }
.alp-cal-nav { display:flex; align-items:center; gap:12px; font-size:1rem; font-weight:700; }
.alp-cal-nav .alp-btn-icon { font-size:1.2rem; padding:6px 12px; }
.alp-cal-tipos { display:flex; gap:6px; flex-wrap:wrap; }
.alp-cal-tipo { border:1.5px solid var(--alp-gray-lt); border-radius:8px; padding:7px 14px; font-size:.82rem; font-weight:600; cursor:pointer; background:var(--alp-white); transition:all .2s; }
.alp-cal-tipo:hover { border-color:var(--alp-green-m); color:var(--alp-green); }
.alp-cal-tipo--active { background:var(--alp-green); color:#fff; border-color:var(--alp-green); }

.alp-cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.alp-cal-dow { text-align:center; font-size:.75rem; font-weight:700; color:var(--alp-gray); padding:8px 4px; text-transform:uppercase; }
.alp-cal-day { background:var(--alp-white); border-radius:8px; padding:8px 6px; min-height:80px; border:1.5px solid var(--alp-gray-lt); transition:border-color .2s; }
.alp-cal-day--empty { background:transparent; border-color:transparent; }
.alp-cal-day--today { border-color:var(--alp-gold); background:#fffbf2; }
.alp-cal-day--occupied { border-color:var(--alp-green-m); }
.alp-cal-day__num { display:block; font-weight:700; font-size:.88rem; margin-bottom:4px; color:#374151; }
.alp-cal-day--today .alp-cal-day__num { color:var(--alp-gold); }
.alp-cal-event { font-size:.68rem; border-radius:4px; padding:2px 5px; margin-bottom:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:block; }
.alp-cal-event--pendente   { background:#fef3c7; color:#92400e; }
.alp-cal-event--confirmado { background:#dbeafe; color:#1e40af; }
.alp-cal-event--pago       { background:#d1fae5; color:#065f46; }
.alp-cal-more { font-size:.65rem; color:var(--alp-gray); padding:1px 4px; }
.alp-cal-loading { text-align:center; padding:48px; color:var(--alp-gray); }
.alp-cal-legend { display:flex; gap:12px; margin-top:16px; flex-wrap:wrap; }

/* ---- UNITS GRID ---- */
.alp-unidades-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; }
.alp-unidades-header h3 { margin:0; font-size:1.1rem; color:var(--alp-green); }
.alp-units-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:16px; }
.alp-unit-item { background:var(--alp-white); border-radius:12px; padding:20px; box-shadow:0 2px 10px rgba(0,0,0,.06); border:2px solid transparent; transition:all .2s; }
.alp-unit-item:hover { border-color:var(--alp-green-m); }
.alp-unit-item--inativo { opacity:.55; }
.alp-unit-item__header { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.alp-unit-item__status { font-size:.75rem; color:var(--alp-gray); }
.alp-unit-item__nome { margin:0 0 10px; font-size:1rem; font-weight:700; color:var(--alp-green); }
.alp-unit-item__info { display:flex; flex-direction:column; gap:4px; font-size:.82rem; color:var(--alp-gray); margin-bottom:10px; }
.alp-unit-item__desc { font-size:.8rem; color:var(--alp-gray); margin:0 0 12px; line-height:1.4; }
.alp-unit-item__actions { display:flex; gap:8px; }

/* ---- MODAL ---- */
.alp-modal-overlay {
  position: fixed !important;
  top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
  width: 100% !important; height: 100% !important;
  background: rgba(0,0,0,.60) !important;
  z-index: 999999 !important;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
body.alp-modal-open { overflow: hidden !important; }
.alp-modal { background:var(--alp-white); border-radius:16px; width:100%; max-width:560px; max-height:90vh; overflow-y:auto; box-shadow:0 20px 60px rgba(0,0,0,.25); }
.alp-modal__header { display:flex; align-items:center; justify-content:space-between; padding:20px 24px; border-bottom:1px solid var(--alp-gray-lt); }
.alp-modal__header h3 { margin:0; font-size:1.1rem; color:var(--alp-green); }
.alp-modal-close { background:none; border:none; font-size:1.2rem; cursor:pointer; color:var(--alp-gray); padding:4px 8px; border-radius:6px; }
.alp-modal-close:hover { background:var(--alp-gray-lt); }
.alp-modal__body { padding:24px; }
.alp-modal__footer { padding:16px 24px; border-top:1px solid var(--alp-gray-lt); display:flex; gap:10px; justify-content:flex-end; }
.alp-modal-loading { text-align:center; padding:32px; color:var(--alp-gray); }

/* ---- DETAIL VIEW ---- */
.alp-detail-grid { display:flex; flex-direction:column; gap:2px; }
.alp-detail-row { display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px solid #f3f4f6; gap:12px; }
.alp-detail-row:last-child { border-bottom:none; }
.alp-detail-row--highlight { background:var(--alp-green-lt); margin:0 -8px; padding:10px 8px; border-radius:8px; }
.alp-detail-label { font-size:.82rem; font-weight:600; color:var(--alp-gray); flex-shrink:0; }
.alp-detail-value { font-size:.88rem; color:#1a1a1a; text-align:right; }
.alp-detail-row--highlight .alp-detail-value { font-weight:800; color:var(--alp-green); font-size:1rem; }

/* ---- FORM GRID ---- */
.alp-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.alp-field--full { grid-column:1/-1; }
.alp-error { color:#991b1b; font-size:.88rem; }
.alp-edit-msg,.alp-unit-msg { margin-top:12px; padding:10px 14px; border-radius:8px; background:#fee2e2; color:#991b1b; font-size:.88rem; }

/* ---- TOAST ---- */
.alp-toast { position:fixed !important; bottom:28px !important; right:28px !important; background:var(--alp-green); color:#fff; padding:12px 20px; border-radius:10px; font-size:.88rem; font-weight:600; box-shadow:0 4px 20px rgba(0,0,0,.20); z-index:9999999 !important; animation:alp-slidein .3s ease; pointer-events:none; }
.alp-toast--error   { background:#dc2626; }
.alp-toast--success { background:var(--alp-green); }
@keyframes alp-slidein { from{transform:translateY(20px);opacity:0} to{transform:translateY(0);opacity:1} }
@keyframes alp-shake   { 0%,100%{transform:translateX(0)} 20%,60%{transform:translateX(-8px)} 40%,80%{transform:translateX(8px)} }
.alp-shake { animation:alp-shake .4s ease; }

/* ---- RESPONSIVE ---- */
@media(max-width:768px){
  .alp-kpis { grid-template-columns:1fr 1fr; padding:14px 16px; }
  .alp-tabs { margin:0 16px 16px; }
  .alp-tab  { font-size:.78rem; padding:9px 10px; }
  .alp-tab-panel { padding:0 16px 20px; }
  .alp-cal-controls { flex-direction:column; align-items:flex-start; }
  .alp-form-grid { grid-template-columns:1fr; }
  .alp-topbar__date { display:none; }
  .alp-modal { max-width:100%; }
}
@media(max-width:480px){
  .alp-kpis { grid-template-columns:1fr; }
  .alp-units-grid { grid-template-columns:1fr; }
}

/* ---- PERIOD FILTER + CONTROLS BAR ---- */
.alp-painel-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 24px 20px;
  flex-wrap: wrap;
}
.alp-painel-controls .alp-tabs {
  margin: 0;
  flex: 1;
  min-width: 0;
}
.alp-period-filter .alp-select { min-width: 140px; font-weight: 600; }
.alp-period-label { font-size:.8rem; color:var(--alp-gray); font-style:italic; margin-top:4px; }

/* ---- RECEITA ---- */
.alp-receita-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; }
.alp-receita-header h3 { margin:0; font-size:1.1rem; color:var(--alp-green); }
.alp-receita-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.alp-receita-card { background:var(--alp-white); border-radius:12px; padding:20px; box-shadow:0 2px 10px rgba(0,0,0,.06); }
.alp-receita-card h4 { margin:0 0 14px; font-size:.88rem; font-weight:700; color:var(--alp-green); text-transform:uppercase; letter-spacing:.05em; }
.alp-loading { text-align:center; padding:32px; color:var(--alp-gray); }

@media(max-width:768px){
  .alp-receita-grid { grid-template-columns:1fr; }
  .alp-painel-controls { flex-direction:column; align-items:stretch; }
  .alp-painel-controls .alp-tabs { flex-direction:column; }
}

/* ---- TEXTOS TAB ---- */
.alp-textos-header { margin-bottom:24px; }
.alp-textos-header h3 { margin:0 0 6px; font-size:1.1rem; color:var(--alp-green); }
.alp-textos-form { background:var(--alp-white); border-radius:12px; padding:24px; box-shadow:0 2px 10px rgba(0,0,0,.06); }
.alp-textos-form .alp-field label { font-size:.82rem; font-weight:700; color:var(--alp-green); text-transform:uppercase; letter-spacing:.04em; }
.alp-textos-form textarea.alp-input { resize:vertical; min-height:80px; }
.alp-textos-msg { margin-bottom:12px; padding:10px 14px; border-radius:8px; background:#fee2e2; color:#991b1b; font-size:.88rem; }

/* ---- PREÇOS TAB ---- */
.alp-precos-wrap { background:var(--alp-white); border-radius:12px; padding:24px; box-shadow:0 2px 10px rgba(0,0,0,.06); }
.alp-precos-section { margin-bottom:28px; padding-bottom:24px; border-bottom:1px solid var(--alp-gray-lt); }
.alp-precos-section:last-of-type { border-bottom:none; margin-bottom:16px; }
.alp-precos-title { margin:0 0 16px; font-size:.95rem; font-weight:700; color:var(--alp-green); }
.alp-precos-title small { font-weight:400; color:var(--alp-gray); font-size:.8rem; }
.alp-precos-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:14px; }
.alp-precos-msg { margin-bottom:12px; padding:10px 14px; border-radius:8px; background:#fee2e2; color:#991b1b; font-size:.88rem; }

/* ---- RECEITA — fix overflow ---- */
.alp-receita-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.alp-receita-card { overflow:hidden; min-width:0; }
.alp-receita-card .alp-table-wrap { overflow-x:auto; max-width:100%; }
.alp-receita-card .alp-table { min-width:300px; font-size:.82rem; }
.alp-receita-card .alp-table td,
.alp-receita-card .alp-table th { padding:8px 10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:180px; }
@media(max-width:768px){
  .alp-receita-grid { grid-template-columns:1fr; }
  .alp-precos-grid  { grid-template-columns:1fr 1fr; }
}

/* ---- NOVO SERVIÇO / PRINT BUTTONS ---- */
.alp-btn--gold    { background:var(--alp-gold); color:#fff; padding:7px 14px; font-size:.82rem; }
.alp-btn--refresh { background:rgba(255,255,255,.15); color:#fff; border:1px solid rgba(255,255,255,.3); padding:7px 12px; font-size:1.1rem; line-height:1; border-radius:8px; cursor:pointer!important; transition:all .2s; }
.alp-btn--refresh:hover { background:rgba(255,255,255,.25); }
.alp-spinning { animation:alp-spin .7s linear infinite; display:inline-block; }
@keyframes alp-spin { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
.alp-btn--gold:hover { background:#9a7222; }
.alp-btn--print { background:#374151; color:#fff; padding:7px 14px; font-size:.82rem; }
.alp-btn--print:hover { background:#1f2937; }

/* ---- RECEITA TOTAL ---- */
.alp-receita-total {
  background: var(--alp-green);
  color: #fff;
  border-radius: 10px;
  padding: 16px 22px;
  font-size: 1.1rem;
  font-weight: 700;
  margin-bottom: 20px;
  max-width: 600px;
}
.alp-receita-total strong { font-size: 1.4rem; }

/* ============================================
   IMPRESSÃO — paisagem A4, enquadrado e elegante
   ============================================ */
@media print {

  /* ---- Ocultar elementos de UI ---- */
  .alp-no-print,
  .alp-tabs,
  .alp-painel-controls,
  .alp-filters,
  .alp-period-filter,
  .alp-toast,
  .alp-modal-overlay,
  .alp-topbar__right > button,
  .alp-btn-icon,
  .alp-status-sel,
  .alp-cal-tipos,
  .alp-cal-nav,
  .alp-cal-legend,
  .alp-table-summary,
  .alp-print-hide { display: none !important; }

  .alp-print-only { display: inline !important; }

  /* ---- Página ---- */
  @page { margin: 1cm 1.2cm; size: A4 landscape; }
  html, body {
    background: #fff !important;
    margin: 0 !important;
    padding: 0 !important;
    font-family: 'Helvetica Neue', 'Segoe UI', Arial, sans-serif;
    font-size: 9pt;
    color: #1f2937;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  * { box-sizing: border-box; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }

  /* ---- Wrapper ---- */
  .alp-wrap, .alp-painel {
    background: #fff !important;
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  /* ---- CABEÇALHO ---- */
  .alp-topbar {
    background: #1a3a2a !important;
    color: #fff !important;
    padding: 10px 16px !important;
    border-radius: 4px !important;
    margin-bottom: 12px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    border-bottom: 3px solid #b8872a !important;
    page-break-after: avoid;
  }
  .alp-topbar__left { display: flex !important; align-items: center !important; gap: 10px !important; }
  .alp-topbar__left strong { color: #fff !important; font-size: 13pt !important; letter-spacing: .02em; display:block; }
  .alp-topbar__left small  { color: rgba(255,255,255,.78) !important; font-size: 8pt !important; display:block; }
  .alp-topbar__date        { color: #fff !important; font-size: 9pt !important; display: inline-block !important; opacity:.9; }
  .alp-topbar__user        { display:none !important; }

  /* ---- KPIs — grade compacta de 6 ---- */
  .alp-kpis {
    display: grid !important;
    grid-template-columns: repeat(6, 1fr) !important;
    gap: 6px !important;
    padding: 0 !important;
    margin: 0 0 12px 0 !important;
    page-break-inside: avoid;
  }
  .alp-kpi {
    padding: 8px 10px !important;
    box-shadow: none !important;
    background: #fafafa !important;
    border: 1px solid #d1d5db !important;
    border-left: 3px solid #1a3a2a !important;
    border-radius: 4px !important;
    break-inside: avoid !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 2px !important;
    min-height: 0 !important;
  }
  .alp-kpi--gold  { border-left-color: #b8872a !important; }
  .alp-kpi--orange{ border-left-color: #ea580c !important; }
  .alp-kpi--teal  { border-left-color: #0d9488 !important; }
  .alp-kpi--purple{ border-left-color: #7c3aed !important; }
  .alp-kpi--dark  { border-left-color: #111827 !important; }
  .alp-kpi__icon  { display: none !important; }
  .alp-kpi__val   { font-size: 11pt !important; font-weight: 800 !important; color: #1a3a2a !important; display: block !important; line-height: 1.1 !important; }
  .alp-kpi__label { font-size: 7pt !important; color: #6b7280 !important; display: block !important; text-transform: uppercase; letter-spacing: .03em; line-height: 1.2 !important; }

  /* ---- Só aba ativa ---- */
  .alp-tab-panel { display: none !important; }
  .alp-tab-panel--active { display: block !important; }

  /* Título da seção */
  .alp-tab-panel--active::before {
    content: attr(data-print-title);
    display: block;
    font-size: 10.5pt;
    font-weight: 800;
    color: #fff;
    background: #1a3a2a;
    padding: 6px 12px;
    border-radius: 4px 4px 0 0;
    margin-bottom: 0;
    letter-spacing: .04em;
    text-transform: uppercase;
    page-break-after: avoid;
  }

  /* ---- TABELAS ---- */
  .alp-table-wrap {
    box-shadow: none !important;
    border: 1px solid #1a3a2a !important;
    border-top: none !important;
    border-radius: 0 0 4px 4px !important;
    overflow: visible !important;
    margin-bottom: 14px !important;
    page-break-inside: auto;
  }
  .alp-table {
    font-size: 8pt !important;
    width: 100% !important;
    min-width: 0 !important;
    table-layout: auto !important;
    border-collapse: collapse !important;
  }
  .alp-table thead { display: table-header-group !important; }
  .alp-table tfoot { display: table-footer-group !important; }
  .alp-table thead th {
    background: #2d6a4f !important;
    color: #fff !important;
    padding: 5px 6px !important;
    font-size: 7pt !important;
    text-transform: uppercase !important;
    letter-spacing: .03em !important;
    font-weight: 700 !important;
    border-right: 1px solid rgba(255,255,255,.15) !important;
    text-align: left !important;
    white-space: nowrap !important;
  }
  .alp-table td {
    padding: 4px 6px !important;
    border-bottom: 1px solid #e5e7eb !important;
    border-right: 1px solid #f3f4f6 !important;
    vertical-align: middle !important;
    word-wrap: break-word;
    overflow-wrap: anywhere;
  }
  .alp-table tr:nth-child(even) td { background: #f7faf8 !important; }
  .alp-table tr { page-break-inside: avoid !important; break-inside: avoid !important; }
  .alp-table tr:last-child td { border-bottom: none !important; }

  /* Badges — compactos e em escala de cinza/verde */
  .alp-badge {
    background: #e5e7eb !important;
    color: #1a3a2a !important;
    padding: 1px 6px !important;
    font-size: 7pt !important;
    border-radius: 3px !important;
    font-weight: 700 !important;
    border: 1px solid #d1d5db !important;
  }
  .alp-id { color: #1a3a2a !important; font-weight: 800 !important; }

  /* Ocultar somente colunas de Status, Criado e Ações (Hospedagem: 13 cols) */
  #alp-table-hospedagem th:nth-child(11), #alp-table-hospedagem td:nth-child(11),
  #alp-table-hospedagem th:nth-child(12), #alp-table-hospedagem td:nth-child(12),
  #alp-table-hospedagem th:nth-child(13), #alp-table-hospedagem td:nth-child(13) { display: none !important; }

  /* Visitação / Experiências / Receita — esconder últimas 2 colunas (status + ações) por padrão */
  #alp-table-visitacao th:last-child,    #alp-table-visitacao td:last-child,
  #alp-table-experiencias th:last-child, #alp-table-experiencias td:last-child {
    display: none !important;
  }
  #alp-table-visitacao th:nth-last-child(2),    #alp-table-visitacao td:nth-last-child(2),
  #alp-table-experiencias th:nth-last-child(2), #alp-table-experiencias td:nth-last-child(2) {
    display: none !important;
  }

  /* WhatsApp links sem cor de link */
  a[href*="wa.me"] { color: #1f2937 !important; text-decoration: none !important; font-weight: 600 !important; }
  a { color: #1f2937 !important; text-decoration: none !important; }

  /* Totais em destaque sutil */
  .alp-table td strong { color: #1a3a2a !important; }

  /* ---- CALENDÁRIO GRADE ---- */
  .alp-cal-grid { gap: 2px !important; margin-bottom: 8px !important; }
  .alp-cal-day  {
    min-height: 60px !important;
    padding: 3px !important;
    border: 1px solid #d1d5db !important;
    border-radius: 3px !important;
    background: #fff !important;
    page-break-inside: avoid !important;
  }
  .alp-cal-day--today { border-color: #b8872a !important; background: #fffbf2 !important; }
  .alp-cal-day--dimmed { opacity: 1 !important; background: #f9fafb !important; }
  .alp-cal-day__num { font-size: 8pt !important; font-weight: 700 !important; margin-bottom: 2px !important; display: block !important; color: #1a3a2a !important; }
  .alp-cal-event {
    font-size: 6.5pt !important;
    padding: 1px 3px !important;
    margin-bottom: 1px !important;
    border-radius: 2px !important;
    line-height: 1.2 !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .alp-cal-dow { font-size: 7.5pt !important; padding: 4px !important; text-align: center; font-weight: 700; color: #1a3a2a !important; background: #f0f4f0 !important; border-radius: 3px; }

  /* ---- CALENDÁRIO LISTA ---- */
  .alp-cal-lista { gap: 6px !important; }
  .alp-lista-day { border: 1px solid #d1d5db !important; border-radius: 4px !important; break-inside: avoid !important; page-break-inside: avoid !important; }
  .alp-lista-day__header { background: #f0f4f0 !important; padding: 5px 10px !important; border-bottom: 1px solid #e5e7eb !important; }
  .alp-lista-day--today .alp-lista-day__header { background: #fffbf2 !important; border-color: #b8872a !important; }
  .alp-lista-day__num { font-weight: 800 !important; color: #1a3a2a !important; font-size: 9pt !important; }
  .alp-lista-event { padding: 3px 10px !important; font-size: 8pt !important; }
  .alp-lista-val { color: #1a3a2a !important; font-weight: 700 !important; }

  /* ---- Receita ---- */
  .alp-receita-total {
    background: #f0f4f0 !important;
    color: #1a3a2a !important;
    border: 1.5px solid #1a3a2a !important;
    padding: 10px 16px !important;
    border-radius: 4px !important;
    font-size: 10pt !important;
    margin-bottom: 12px !important;
    max-width: 100% !important;
    page-break-inside: avoid !important;
  }
  .alp-receita-total strong { font-size: 12pt !important; color: #1a3a2a !important; }
  .alp-receita-card {
    box-shadow: none !important;
    border: 1px solid #d1d5db !important;
    page-break-inside: avoid !important;
  }

  /* ---- RODAPÉ ---- */
  .alp-painel::after {
    content: 'Camping Alagados  ·  Painel de Reservas  ·  Uso interno';
    display: block;
    text-align: center;
    font-size: 7pt;
    color: #9ca3af;
    margin-top: 14px;
    padding-top: 6px;
    border-top: 1px solid #e5e7eb;
    font-style: italic;
    letter-spacing: .05em;
  }

}


/* ---- CALENDAR: period dimming ---- */
.alp-cal-day--dimmed {
  opacity: 0.28;
}
.alp-cal-day--dimmed .alp-cal-event { display: none; }

/* ---- CALENDÁRIO LISTA (diário/semanal) ---- */
.alp-cal-lista { display:flex; flex-direction:column; gap:10px; }
.alp-lista-day {
  background:var(--alp-white);
  border-radius:10px;
  border:1.5px solid var(--alp-gray-lt);
  overflow:hidden;
  transition:border-color .2s;
}
.alp-lista-day--today { border-color:var(--alp-gold); }
.alp-lista-day__header {
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 16px;
  background:#f9fafb;
  border-bottom:1px solid var(--alp-gray-lt);
}
.alp-lista-day--today .alp-lista-day__header { background:#fffbf2; }
.alp-lista-day__dow  { font-weight:700; color:var(--alp-gray); font-size:.82rem; width:32px; }
.alp-lista-day__num  { font-weight:800; color:var(--alp-green); font-size:1rem; flex:1; }
.alp-lista-day--today .alp-lista-day__num { color:var(--alp-gold); }
.alp-lista-day__count { font-size:.78rem; color:var(--alp-gray); }
.alp-lista-events { padding:10px 16px; display:flex; flex-direction:column; gap:6px; }
.alp-lista-event {
  padding:8px 12px;
  border-radius:7px;
  font-size:.85rem;
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.alp-lista-event strong { font-weight:700; }
.alp-lista-event small  { color:var(--alp-gray); }
.alp-lista-val { margin-left:auto; font-weight:700; color:var(--alp-green); white-space:nowrap; }


/* ============================================
   IMPRESSÃO — A4 paisagem, sem valores
   ============================================ */
@media print {
  .alp-no-print, .alp-kpis, .alp-kpi-mes-wrap, .alp-tabs, .alp-painel-controls, .alp-filters,
  .alp-period-filter, .alp-toast, .alp-modal-overlay, .alp-topbar__right,
  .alp-btn-icon, .alp-status-sel, .alp-cal-tipos, .alp-cal-nav,
  .alp-cal-legend, .alp-kpi--gold, .alp-kpi--dark, .alp-kpi--orange,
  .alp-receita-total, .alp-receita-card, .alp-table-summary { display: none !important; }

  .alp-print-only { display: inline !important; }

  @page { margin: 1.2cm 1.5cm; size: A4 landscape; }
  * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; box-sizing: border-box; }
  body { font-family: 'Segoe UI', Arial, sans-serif; font-size: 9pt; color: #1a1a1a; }
  .alp-wrap, .alp-painel { background: #fff !important; box-shadow: none !important; border-radius: 0 !important; max-width: 100% !important; }

  .alp-topbar { background: #1a3a2a !important; color: #fff !important; padding: 10px 18px !important; border-radius: 0 !important; margin-bottom: 14px !important; display: flex !important; align-items: center !important; justify-content: space-between !important; border-bottom: 3px solid #b8872a !important; }
  .alp-topbar__left strong { color: #fff !important; font-size: 13pt !important; }
  .alp-topbar__left small  { color: rgba(255,255,255,.75) !important; font-size: 8pt !important; }
  .alp-topbar__date        { color: #fff !important; font-size: 9pt !important; display: block !important; }

  .alp-kpis { display: grid !important; grid-template-columns: repeat(3,1fr) !important; gap: 8px !important; padding: 0 0 12px !important; margin-bottom: 12px !important; border-bottom: 1.5px solid #1a3a2a !important; }
  .alp-kpi { padding: 8px 12px !important; box-shadow: none !important; border: 1.5px solid #e5e7eb !important; border-radius: 6px !important; break-inside: avoid !important; display: flex !important; align-items: center !important; gap: 8px !important; }
  .alp-kpi__icon  { font-size: 1.2rem !important; }
  .alp-kpi__val   { font-size: 1.1rem !important; font-weight: 800 !important; color: #1a3a2a !important; display: block; }
  .alp-kpi__label { font-size: 7.5pt !important; display: block; }

  .alp-tab-panel { display: none !important; }
  .alp-tab-panel--active { display: block !important; }

  .alp-tab-panel--active::before { content: attr(data-print-title); display: block; font-size: 11pt; font-weight: 800; color: #fff; background: #1a3a2a; padding: 7px 14px; border-radius: 6px 6px 0 0; margin-bottom: 0; letter-spacing: .04em; text-transform: uppercase; }

  .alp-table-wrap { box-shadow: none !important; border: 1.5px solid #1a3a2a !important; border-radius: 0 0 6px 6px !important; overflow: visible !important; margin-bottom: 16px; }
  .alp-table { font-size: 8.5pt !important; width: 100% !important; min-width: 0 !important; border-collapse: collapse !important; }
  .alp-table thead th { background: #2d6a4f !important; color: #fff !important; padding: 6px 10px !important; font-size: 7.5pt !important; text-transform: uppercase !important; letter-spacing: .04em !important; font-weight: 700 !important; }
  .alp-table td { padding: 5px 10px !important; border-bottom: 1px solid #f0f0f0 !important; vertical-align: middle !important; }
  .alp-table tr:nth-child(even) td { background: #f7faf8 !important; }
  tr { break-inside: avoid !important; }

  /* Ocultar colunas de valor (Total / Valor / Ações) */
  .alp-table th:last-child, .alp-table td:last-child,
  .alp-table th:nth-last-child(2), .alp-table td:nth-last-child(2),
  .alp-table th:nth-last-child(3), .alp-table td:nth-last-child(3) { display: none !important; }

  a[href*="wa.me"] { color: #1a1a1a !important; text-decoration: none !important; }
  .alp-print-only { display: inline !important; }

  /* Calendário */
  .alp-cal-grid { gap: 2px !important; }
  .alp-cal-day  { min-height: 52px !important; padding: 4px !important; border: 1px solid #d1d5db !important; border-radius: 3px !important; }
  .alp-cal-event { font-size: 6.5pt !important; padding: 1px 4px !important; }
  .alp-cal-dow   { font-size: 7.5pt !important; text-align: center; }
  .alp-cal-day__num { font-size: 8pt !important; font-weight: 700 !important; }

  .alp-lista-val { display: none !important; }

  .alp-painel::after { content: 'Camping Alagados  ·  Documento gerado em ' attr(data-date) '  ·  Uso interno'; display: block; text-align: center; font-size: 7.5pt; color: #9ca3af; margin-top: 20px; padding-top: 8px; border-top: 1px solid #e5e7eb; font-style: italic; }
}

/* ---- KPI MÊS SELECTOR (inside topbar) ---- */
.alp-kpi-mes-wrap {
  display: flex;
  align-items: center;
  gap: 6px;
}
.alp-kpi-mes-wrap label {
  color: rgba(255,255,255,.8);
  font-size: 1rem;
  cursor: pointer;
}
.alp-kpi-mes-wrap input[type="month"] {
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.25);
  color: #fff;
  border-radius: 7px;
  padding: 6px 10px;
  font-size: .84rem;
  font-weight: 600;
  min-width: 145px;
  cursor: pointer;
}
.alp-kpi-mes-wrap input[type="month"]:focus {
  outline: none;
  border-color: rgba(255,255,255,.5);
  background: rgba(255,255,255,.18);
}
.alp-kpi-mes-wrap input[type="month"]::-webkit-calendar-picker-indicator {
  filter: invert(1);
  opacity: .7;
  cursor: pointer;
}

/* ---- DAY / WEEK PICKERS no calendário ---- */
.alp-cal-day-picker-wrap,
.alp-cal-week-picker-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
}
.alp-cal-day-picker-wrap label,
.alp-cal-week-picker-wrap label {
  font-size: .82rem;
  font-weight: 700;
  color: var(--alp-green);
  white-space: nowrap;
}
.alp-cal-day-picker-wrap input,
.alp-cal-week-picker-wrap input {
  padding: 6px 10px;
  border: 1.5px solid #d1d5db;
  border-radius: 8px;
  font-size: .85rem;
  color: var(--alp-green);
  background: #fff;
  cursor: pointer;
}
.alp-cal-day-picker-wrap input:focus,
.alp-cal-week-picker-wrap input:focus {
  outline: none;
  border-color: var(--alp-green);
}
