
/* v0.3 UI Polish */
.abp-card{background:#fff;border:1px solid #e6e6e6;border-radius:14px;padding:16px;margin:16px 0}
.abp-form label{display:block;font-size:13px;font-weight:600;color:#1f2937;min-width:0}
.abp-form input,.abp-form textarea,.abp-form select{width:100%;padding:10px;border:1px solid #dcdcdc;border-radius:12px;box-sizing:border-box}
.abp-form label input,
.abp-form label select,
.abp-form label textarea{margin-top:6px}
.abp-form label input,.abp-form label textarea,.abp-form label select{display:block;margin-top:6px}
.abp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:780px){.abp-grid{grid-template-columns:1fr}}
.abp-btn{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:12px;padding:10px 14px;cursor:pointer;background:#111;color:#fff;text-decoration:none}
.abp-btn-secondary{background:#f2f2f2;color:#111}
.abp-btn-small{padding:8px 10px;border-radius:11px;font-size:13px}
.abp-ico{font-size:14px;line-height:1}
.abp-note{color:#666;margin-top:10px}
.abp-table-wrap{overflow:auto}
.abp-table{width:100%;border-collapse:collapse;margin-top:10px}
.abp-table th,.abp-table td{border-bottom:1px solid #eee;padding:10px;vertical-align:top;white-space:nowrap}
.abp-pill{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12px;background:#f2f2f2}
.abp-pending{background:#fff3cd}
.abp-confirmed{background:#d1ecf1}
.abp-completed{background:#d4edda}
.abp-cancelled{background:#f8d7da}
.abp-no-show{background:#f8d7da}
.abp-in-process{background:#e3f2fd}

/* Filters (mobile polish + sticky) */
.abp-filters{display:block;margin-top:12px}
.abp-filter-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:end}
.abp-filter-actions{display:flex;gap:10px;align-items:center;margin-top:10px;flex-wrap:wrap}
@media (max-width:780px){
  .abp-filter-row{grid-template-columns:1fr}
  .abp-filter-actions .abp-btn{flex:1;justify-content:center}
}
.abp-sticky{
  position:sticky;
  top:10px;
  z-index:20;
  background:#fff;
  border:1px solid #eee;
  border-radius:14px;
  padding:12px;
  box-shadow:0 6px 20px rgba(0,0,0,.05);
}

/* Stats as quick filter buttons */
.abp-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:10px 0}
@media (max-width:780px){.abp-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.abp-stat{border:1px solid #eee;border-radius:14px;padding:12px;display:block;color:inherit;text-decoration:none}
.abp-stat:hover{border-color:#d0d0d0}
.abp-stat-k{font-size:24px;font-weight:800}
.abp-stat-l{font-size:12px;color:#555;margin-top:2px}
.abp-stat-s{font-size:11px;color:#777;margin-top:6px}
.abp-stat-pending{background:#fff8e1}
.abp-stat-inprocess{background:#e3f2fd}
.abp-stat-completed{background:#e8f5e9}
.abp-stat-total{background:#f5f5f5}

/* Modal */
.abp-modal{
  display:none;
  position:fixed;
  inset:0;
  z-index:999999;
  background:rgba(0,0,0,.55);
  padding:24px 12px;
  align-items:flex-start;
  justify-content:center;
}

body.abp-modal-open{overflow:hidden}

.abp-modal-content{
  background:#fff;
  border-radius:14px;
  /* keep modal inside viewport on any screen size */
  width:min(920px, calc(100vw - 24px));
  padding:22px;
  box-shadow:0 24px 70px rgba(0,0,0,.35);
  max-height:calc(100vh - 48px);
  overflow:auto;
  box-sizing:border-box;
}
.abp-modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.abp-modal-close{border:0;background:transparent;font-size:26px;cursor:pointer}
.abp-row{display:flex;gap:10px;align-items:center;margin-top:10px;flex-wrap:wrap}
.abp-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.abp-actions-col{min-width:240px}

/* Ensure form fields inside modals don't inherit weird theme styles */
.abp-modal-content label{display:block !important;font-weight:600;font-size:13px;line-height:1.2;color:#0f172a}
.abp-modal-content label *{box-sizing:border-box}
.abp-modal-content label input,
.abp-modal-content label select,
.abp-modal-content label textarea{
  /* force input to go under label text (no inline/overlap) */
  display:block;
  width:100% !important;
  margin-top:8px;
}
.abp-modal-content .abp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}
@media (max-width:780px){
  .abp-modal-content .abp-grid{grid-template-columns:1fr}
  .abp-row .abp-btn{flex:1;justify-content:center}
}

/* Invoice */
.abp-invoice{background:#fff;border:1px solid #eee;border-radius:12px;padding:18px;margin:18px 0}
.abp-inv-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.abp-inv-title{font-size:22px;font-weight:800}
.abp-inv-small{font-size:12px;color:#666}
.abp-inv-meta{font-size:13px;text-align:right}
.abp-inv-block{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}
@media (max-width:780px){.abp-inv-meta{text-align:left}.abp-inv-block{grid-template-columns:1fr}}
.abp-inv-table td,.abp-inv-table th{white-space:normal}
.abp-inv-totals{margin-top:10px;text-align:right}

/* Toast */
#abp-toast{
  position:fixed;
  left:50%;
  transform:translateX(-50%);
  bottom:22px;
  background:#111;
  color:#fff;
  padding:10px 14px;
  border-radius:999px;
  font-size:13px;
  opacity:0;
  pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
  z-index:10000;
}
#abp-toast.abp-show{
  opacity:1;
  transform:translateX(-50%) translateY(-6px);
}

/* Print */
@media print{
  #abp-toast,.abp-btn,.abp-modal,.abp-filters{display:none !important}

  /* Hide common theme wrappers */
  header, nav, footer, .site-header, .main-navigation, .site-footer,
  .inside-header, .inside-navigation, .footer-widgets, .site-info,
  .entry-header, .entry-title{
    display:none !important;
  }

  /* Print only invoice */
  body *{ visibility:hidden !important; }
  .abp-invoice, .abp-invoice *{ visibility:visible !important; }
  /* Make invoice print like a clean A4 document (no website layout) */
  html, body{ height:auto !important; }
  body{ margin:0 !important; padding:0 !important; }

  .abp-invoice{
    position:relative !important;
    top:auto !important; left:auto !important; right:auto !important;
    margin:0 !important;
    width:100% !important;
    max-width:100% !important;
    border:0 !important;
    box-shadow:none !important;
    border-radius:0 !important;
    padding:0 !important;
    background:#fff !important;
  }

  /* Give invoice a more "document" feel in print */
  .abp-invoice-header{
    border-bottom:2px solid #0F3D3E !important;
    padding-bottom:10px !important;
    margin-bottom:14px !important;
  }
  .abp-invoice h2{font-size:20px !important;margin:0 0 2px 0 !important}
  .abp-invoice .abp-meta{font-size:12px !important}
  .abp-invoice table{font-size:12px !important}
  .abp-invoice th{letter-spacing:.02em}
  .abp-invoice .abp-totals{font-size:13px !important}

  .abp-invoice .abp-invoice-card{
    border:0 !important;
    box-shadow:none !important;
  }

  @page { size: A4; margin: 12mm; }
}


/* Invoices tabs */
.abp-tab{display:inline-block;padding:8px 12px;border:1px solid #e3e3e3;border-radius:12px;text-decoration:none;font-weight:600}
.abp-tab-active{border-color:#0F3D3E;box-shadow:0 0 0 2px rgba(15,61,62,.08)}
