/* ============================================================
   NEXT OPEN — ADMIN UI MODERNIZATION
   Single CSS file that overrides all admin pages for a premium look.
   No PHP changes needed — works on top of existing markup.
   ============================================================ */

/* ---- Global Resets ---- */
.next-open-appointments-wrap,
.next-open-clients-wrap,
.next-open-pro-staff,
.wrap[class*="next-open"] {
    max-width: 1140px;
    margin: 20px auto 40px;
    padding: 0 20px;
}

/* ---- Headers ---- */
.next-open-header h1,
.next-open-clients-header h1,
.next-open-pro-staff h1.wp-heading-inline,
.next-open-appointments-wrap > h1 {
    font-size: 28px !important;
    font-weight: 700 !important;
    color: #1e293b !important;
}
.next-open-header .description,
.next-open-clients-header .description {
    font-size: 15px;
    color: #64748b;
}

/* ---- Filters Bar ---- */
.next-open-filters {
    background: #fff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 14px !important;
    padding: 20px 24px !important;
    margin: 20px 0 !important;
    box-shadow: none !important;
    display: flex;
    align-items: flex-end;
    gap: 16px;
}
.next-open-filters form {
    display: flex;
    align-items: flex-end;
    gap: 16px;
    flex-wrap: wrap;
    width: 100%;
}
.next-open-filter-group {
    flex: 1;
    min-width: 180px;
}
.next-open-filter-group label {
    display: block;
    font-size: 11px !important;
    font-weight: 700 !important;
    color: #94a3b8 !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 6px !important;
}
.next-open-filters select {
    width: 100% !important;
    padding: 10px 14px !important;
    border: 2px solid #e2e8f0 !important;
    border-radius: 8px !important;
    font-size: 14px !important;
    background: #fff !important;
    appearance: auto;
}
.next-open-filters select:focus {
    border-color: #4f46e5 !important;
    box-shadow: 0 0 0 3px rgba(79,70,229,0.1) !important;
    outline: none !important;
}
.next-open-filters .filter-button,
.next-open-filters button[type="submit"] {
    background: #4f46e5 !important;
    color: white !important;
    border: none !important;
    padding: 10px 24px !important;
    border-radius: 8px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    height: auto !important;
    line-height: 1.4 !important;
    transition: all 0.2s;
}
.next-open-filters .filter-button:hover,
.next-open-filters button[type="submit"]:hover {
    background: #4338ca !important;
    box-shadow: 0 4px 12px rgba(79,70,229,0.3);
}

/* ---- Empty States (all pages) ---- */
.next-open-empty,
.next-open-clients-empty,
.no-staff {
    text-align: center !important;
    padding: 60px 24px !important;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    margin: 20px 0;
}
.next-open-empty-icon,
.next-open-clients-empty-icon {
    width: 72px !important;
    height: 72px !important;
    border-radius: 18px !important;
    background: #f1f5f9 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 32px !important;
    margin: 0 auto 16px !important;
}
.next-open-empty h3,
.next-open-clients-empty h3,
.no-staff h3 {
    font-size: 18px !important;
    font-weight: 600 !important;
    color: #475569 !important;
    margin: 0 0 6px !important;
}
.next-open-empty p,
.next-open-clients-empty p,
.no-staff p {
    font-size: 14px !important;
    color: #94a3b8 !important;
    margin: 0 0 20px !important;
}

/* ---- Tables (Appointments & Clients) ---- */
.next-open-table,
.next-open-clients-table {
    background: #fff;
    border: 1px solid #e2e8f0 !important;
    border-radius: 14px !important;
    overflow: hidden;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    box-shadow: none !important;
    margin: 20px 0;
}
.next-open-table thead th,
.next-open-clients-table thead th {
    background: #f8fafc !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    color: #94a3b8 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    padding: 14px 16px !important;
    border-bottom: 1px solid #e2e8f0 !important;
}
.next-open-table tbody td,
.next-open-clients-table tbody td {
    padding: 14px 16px !important;
    font-size: 14px !important;
    color: #334155 !important;
    border-bottom: 1px solid #f1f5f9 !important;
    vertical-align: middle !important;
}
.next-open-table tbody tr:last-child td,
.next-open-clients-table tbody tr:last-child td {
    border-bottom: none !important;
}
.next-open-table tbody tr:hover,
.next-open-clients-table tbody tr:hover {
    background: #f8fafc !important;
}

/* Customer/client name styling */
.customer-name,
.client-name {
    font-weight: 600 !important;
    color: #1e293b !important;
}
.customer-email,
.client-email-link {
    font-size: 12px !important;
    color: #64748b !important;
}
.customer-phone,
.client-phone-link {
    font-size: 12px !important;
    color: #64748b !important;
}

/* Appointment date/time */
.appointment-datetime {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.appointment-date {
    font-weight: 600 !important;
    font-size: 13px !important;
    color: #1e293b !important;
}
.appointment-time {
    font-size: 12px !important;
    color: #64748b !important;
}
.appointment-date .dashicons,
.appointment-time .dashicons {
    display: none !important;
}

/* Status badges */
.status-badge {
    display: inline-block !important;
    padding: 4px 12px !important;
    border-radius: 20px !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.3px !important;
}
.status-badge.status-pending {
    background: #fffbeb !important;
    color: #d97706 !important;
}
.status-badge.status-confirmed {
    background: #ecfdf5 !important;
    color: #059669 !important;
}
.status-badge.status-cancelled {
    background: #fef2f2 !important;
    color: #dc2626 !important;
}

/* Action buttons */
.appointment-actions,
.client-actions {
    display: flex;
    gap: 6px;
}
.appointment-actions .button,
.client-actions .button {
    border-radius: 6px !important;
    font-size: 12px !important;
    padding: 4px 12px !important;
    height: auto !important;
    line-height: 1.6 !important;
    border: 1px solid #e2e8f0 !important;
    background: #fff !important;
    color: #334155 !important;
    transition: all 0.2s;
}
.appointment-actions .button:hover,
.client-actions .button:hover {
    border-color: #4f46e5 !important;
    color: #4f46e5 !important;
    background: #eef2ff !important;
}
.appointment-actions .button-primary,
.client-actions .button-primary {
    background: #4f46e5 !important;
    color: white !important;
    border-color: #4f46e5 !important;
}
.appointment-actions .button-primary:hover,
.client-actions .button-primary:hover {
    background: #4338ca !important;
    border-color: #4338ca !important;
    color: white !important;
}

/* Appointment notes */
.appointment-notes {
    font-size: 12px !important;
    color: #64748b !important;
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.appointment-notes.empty {
    color: #cbd5e1 !important;
    font-style: italic;
}

/* Appointments badge in clients table */
.appointments-badge {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 28px;
    padding: 0 8px !important;
    background: #eef2ff !important;
    color: #4f46e5 !important;
    border-radius: 8px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}

/* Client stats cards */
.clients-stats {
    display: flex !important;
    gap: 12px !important;
    margin-bottom: 16px !important;
}
.clients-stats .stat-card {
    background: #fff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 10px !important;
    padding: 14px 20px !important;
    box-shadow: none !important;
}

/* ---- Export Section ---- */
.next-open-export {
    background: #fff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 14px !important;
    padding: 20px 24px !important;
    box-shadow: none !important;
    margin: 20px 0 !important;
}

/* ---- Staff Page (Pro) ---- */
.next-open-pro-staff .page-title-action {
    background: #4f46e5 !important;
    color: white !important;
    border: none !important;
    border-radius: 8px !important;
    padding: 8px 18px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    transition: all 0.2s;
}
.next-open-pro-staff .page-title-action:hover {
    background: #4338ca !important;
    box-shadow: 0 4px 12px rgba(79,70,229,0.3);
}

/* Staff grid */
.staff-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)) !important;
    gap: 16px !important;
}
.staff-card {
    background: #fff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 14px !important;
    padding: 24px !important;
    box-shadow: none !important;
    transition: all 0.2s;
}
.staff-card:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,0.06);
    transform: translateY(-2px);
}
.staff-photo img {
    border-radius: 14px !important;
}
.staff-photo .photo-placeholder {
    width: 64px !important;
    height: 64px !important;
    border-radius: 14px !important;
    background: #f1f5f9 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 28px !important;
}
.staff-name a {
    color: #1e293b !important;
    text-decoration: none !important;
    font-size: 16px !important;
    font-weight: 600 !important;
}
.staff-name a:hover { color: #4f46e5 !important; }
.staff-meta .meta-item {
    font-size: 13px !important;
    color: #64748b !important;
}
.staff-meta .meta-item .dashicons {
    font-size: 14px !important;
    width: 14px !important;
    height: 14px !important;
    color: #94a3b8 !important;
}
.staff-status .status-badge.active {
    background: #ecfdf5 !important;
    color: #059669 !important;
    border-radius: 20px !important;
    padding: 4px 10px !important;
    font-size: 11px !important;
}
.staff-status .status-badge.inactive {
    background: #f1f5f9 !important;
    color: #94a3b8 !important;
    border-radius: 20px !important;
    padding: 4px 10px !important;
    font-size: 11px !important;
}
.staff-actions .button {
    border-radius: 6px !important;
    font-size: 12px !important;
    padding: 6px 14px !important;
    height: auto !important;
    line-height: 1.5 !important;
}
.staff-actions .button-primary {
    background: #4f46e5 !important;
    border-color: #4f46e5 !important;
}
.staff-actions .button-primary:hover {
    background: #4338ca !important;
}

/* Staff add/edit form */
.next-open-pro-staff .form-table th {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #334155 !important;
    padding-top: 16px !important;
}
.next-open-pro-staff .form-table td {
    padding-top: 16px !important;
}
.next-open-pro-staff .form-table input[type="text"],
.next-open-pro-staff .form-table input[type="email"],
.next-open-pro-staff .form-table input[type="tel"],
.next-open-pro-staff .form-table input[type="number"],
.next-open-pro-staff .form-table select,
.next-open-pro-staff .form-table textarea {
    border: 2px solid #e2e8f0 !important;
    border-radius: 8px !important;
    padding: 10px 14px !important;
    font-size: 14px !important;
    transition: border-color 0.2s;
}
.next-open-pro-staff .form-table input:focus,
.next-open-pro-staff .form-table select:focus,
.next-open-pro-staff .form-table textarea:focus {
    border-color: #4f46e5 !important;
    box-shadow: 0 0 0 3px rgba(79,70,229,0.1) !important;
    outline: none !important;
}

/* ---- Holidays Page ---- */
.next-open-add-holiday,
.next-open-holidays-list {
    background: #fff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 14px !important;
    padding: 24px !important;
    box-shadow: none !important;
}
.next-open-holiday-tips {
    background: #eef2ff !important;
    border-left: 4px solid #4f46e5 !important;
    border-radius: 0 10px 10px 0;
    padding: 16px 20px !important;
}

/* ---- General Button Upgrades ---- */
.next-open-appointments-wrap .button-primary,
.next-open-clients-wrap .button-primary,
.next-open-pro-staff .button-primary:not(.page-title-action),
.next-open-add-holiday .button-primary {
    background: #4f46e5 !important;
    border-color: #4f46e5 !important;
    border-radius: 8px !important;
    padding: 8px 20px !important;
    font-weight: 600 !important;
    transition: all 0.2s;
}
.next-open-appointments-wrap .button-primary:hover,
.next-open-clients-wrap .button-primary:hover,
.next-open-pro-staff .button-primary:not(.page-title-action):hover,
.next-open-add-holiday .button-primary:hover {
    background: #4338ca !important;
    border-color: #4338ca !important;
    box-shadow: 0 4px 12px rgba(79,70,229,0.3);
}

/* ---- WordPress default overrides ---- */
.next-open-appointments-wrap hr.wp-header-end,
.next-open-pro-staff hr.wp-header-end {
    display: none;
}
