/**
 * Devis Express – Quotes for WooCommerce — Admin app
 */

/* Reset WP admin styles */
#devisqr-admin-app {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    max-width: 1200px;
    margin: 20px 0;
}

/* Page header */
.devisqr-admin-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
    flex-wrap: wrap;
    gap: 12px;
}

.devisqr-admin-header h1 {
    font-size: 24px;
    font-weight: 700;
    color: #1e293b;
    margin: 0;
}

/* Stats cards */
.devisqr-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 12px;
    margin-bottom: 24px;
}

.devisqr-stat-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 16px;
    text-align: center;
    transition: all 0.2s;
    cursor: pointer;
}

.devisqr-stat-card:hover {
    border-color: #0066cc;
    box-shadow: 0 2px 8px rgba(0, 102, 204, 0.1);
}

.devisqr-stat-card.active {
    border-color: #0066cc;
    background: #f0f7ff;
}

.devisqr-stat-number {
    font-size: 28px;
    font-weight: 800;
    color: #1e293b;
    line-height: 1;
}

.devisqr-stat-label {
    font-size: 12px;
    color: #64748b;
    margin-top: 6px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    font-weight: 600;
}

/* Filters */
.devisqr-filters {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}

.devisqr-search-input {
    padding: 8px 14px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: 14px;
    width: 250px;
    outline: none;
    transition: border-color 0.15s;
}

.devisqr-search-input:focus {
    border-color: #0066cc;
    box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.1);
}

/* Table */
.devisqr-admin-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    overflow: hidden;
}

.devisqr-admin-table thead th {
    text-align: left;
    padding: 12px 16px;
    font-size: 12px;
    font-weight: 600;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    background: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
}

.devisqr-admin-table tbody tr {
    cursor: pointer;
    transition: background 0.1s;
}

.devisqr-admin-table tbody tr:hover {
    background: #f8fafc;
}

.devisqr-admin-table tbody td {
    padding: 14px 16px;
    font-size: 14px;
    color: #334155;
    border-bottom: 1px solid #f1f5f9;
    vertical-align: middle;
}

.devisqr-admin-table tbody td:last-child {
    text-align: right;
}

.devisqr-admin-table .text-right {
    text-align: right;
}

/* Status badges - reuse from frontend */
.devisqr-status {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
}
.devisqr-status.pending { background: #fef3c7; color: #92400e; }
.devisqr-status.quoted { background: #dbeafe; color: #1e40af; }
.devisqr-status.accepted { background: #d1fae5; color: #065f46; }
.devisqr-status.rejected { background: #fee2e2; color: #991b1b; }
.devisqr-status.expired { background: #f3f4f6; color: #6b7280; }
.devisqr-status.converted { background: #ede9fe; color: #7c3aed; }
.devisqr-status.converted { background: #ede9fe; color: #5b21b6; }

/* Detail view */
.devisqr-admin-detail {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 24px;
}

.devisqr-admin-back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    color: #0066cc;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    margin-bottom: 20px;
    font-weight: 500;
}

.devisqr-admin-back:hover {
    color: #004999;
}

.devisqr-detail-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    margin-bottom: 24px;
}

.devisqr-info-card {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 16px;
}

.devisqr-info-card h3 {
    font-size: 13px;
    font-weight: 600;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    margin: 0 0 12px;
}

.devisqr-info-card p {
    font-size: 14px;
    color: #334155;
    margin: 4px 0;
    line-height: 1.5;
}

.devisqr-info-card strong {
    color: #1e293b;
}

/* Status update section */
.devisqr-status-update {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px;
    background: #f8fafc;
    border-radius: 8px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.devisqr-status-update label {
    font-size: 13px;
    font-weight: 600;
    color: #334155;
}

.devisqr-status-select {
    padding: 8px 12px;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    font-size: 14px;
    background: #fff;
    cursor: pointer;
}

.devisqr-note-input {
    flex: 1;
    min-width: 200px;
    padding: 8px 12px;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    font-size: 14px;
}

.devisqr-update-btn {
    padding: 8px 20px;
    background: #0066cc;
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}

.devisqr-update-btn:hover {
    background: #0052a3;
}

.devisqr-update-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Admin items table */
.devisqr-admin-items {
    width: 100%;
    border-collapse: collapse;
    margin-top: 16px;
}

.devisqr-admin-items thead th {
    text-align: left;
    padding: 10px 12px;
    font-size: 12px;
    font-weight: 600;
    color: #64748b;
    text-transform: uppercase;
    border-bottom: 2px solid #e2e8f0;
    background: #f8fafc;
}

.devisqr-admin-items tbody td {
    padding: 12px;
    font-size: 14px;
    color: #334155;
    border-bottom: 1px solid #f1f5f9;
}

.devisqr-admin-items .text-right {
    text-align: right;
}

.devisqr-admin-items .text-center {
    text-align: center;
}

/* Delete button */
.devisqr-delete-btn {
    padding: 8px 16px;
    background: #fff;
    color: #dc3545;
    border: 1px solid #dc3545;
    border-radius: 6px;
    font-size: 13px;
    cursor: pointer;
    transition: all 0.15s;
}

.devisqr-delete-btn:hover {
    background: #dc3545;
    color: #fff;
}

/* Row delete icon */
.devisqr-row-delete {
    background: none;
    border: none;
    cursor: pointer;
    padding: 6px;
    border-radius: 6px;
    transition: background 0.15s;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.devisqr-row-delete:hover {
    background: #fee2e2;
}

.devisqr-row-delete:hover svg {
    stroke: #991b1b;
}

/* Download PDF */
.devisqr-pdf-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    background: #0066cc;
    color: #fff;
    border-radius: 6px;
    text-decoration: none;
    font-size: 13px;
    font-weight: 600;
}

.devisqr-pdf-link:hover {
    background: #0052a3;
    color: #fff;
}

/* Loading */
.devisqr-admin-loading {
    text-align: center;
    padding: 40px;
    color: #94a3b8;
}

.devisqr-admin-spinner {
    display: inline-block;
    width: 24px;
    height: 24px;
    border: 3px solid #e2e8f0;
    border-top-color: #0066cc;
    border-radius: 50%;
    animation: devisqr-admin-spin 0.6s linear infinite;
}

@keyframes devisqr-admin-spin {
    to { transform: rotate(360deg); }
}

/* Empty */
.devisqr-admin-empty {
    text-align: center;
    padding: 60px;
    color: #94a3b8;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
}

/* Toast */
.devisqr-admin-toast {
    position: fixed;
    top: 40px;
    right: 20px;
    z-index: 99999;
    padding: 12px 20px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
    animation: devisqr-toast-slide 0.3s ease;
}

.devisqr-admin-toast.success {
    background: #d1fae5;
    color: #065f46;
    border: 1px solid #6ee7b7;
}

.devisqr-admin-toast.error {
    background: #fee2e2;
    color: #991b1b;
    border: 1px solid #fca5a5;
}

@keyframes devisqr-toast-slide {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Pagination */
.devisqr-admin-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin-top: 20px;
}

.devisqr-admin-page-btn {
    padding: 6px 12px;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    background: #fff;
    font-size: 13px;
    cursor: pointer;
    color: #334155;
}

.devisqr-admin-page-btn:hover {
    border-color: #0066cc;
    color: #0066cc;
}

.devisqr-admin-page-btn.active {
    background: #0066cc;
    color: #fff;
    border-color: #0066cc;
}

.devisqr-admin-page-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

/* Tabs */
.devisqr-admin-tabs {
    display: flex;
    gap: 4px;
}

.devisqr-tab {
    background: transparent;
    border: none;
    padding: 8px 18px;
    font-size: 13px;
    font-weight: 600;
    color: #64748b;
    cursor: pointer;
    border-radius: 6px;
    transition: all 0.2s;
}

.devisqr-tab:hover {
    background: #f1f5f9;
    color: #1e293b;
}

.devisqr-tab.active {
    background: #1e293b;
    color: #fff;
}

/* Settings */
.devisqr-settings-panel {
    max-width: 680px;
}

.devisqr-settings-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 32px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}

.devisqr-settings-title {
    font-size: 17px;
    font-weight: 700;
    color: #1e293b;
    margin: 0 0 4px;
}

.devisqr-settings-desc {
    font-size: 13px;
    color: #64748b;
    margin: 0 0 28px;
}

.devisqr-settings-field {
    margin-bottom: 24px;
}

.devisqr-settings-field label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: #334155;
    margin-bottom: 6px;
}

.devisqr-settings-field input:not([type="checkbox"]):not([type="radio"]) {
    width: 100%;
    padding: 10px 14px;
    font-size: 14px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    color: #1e293b;
    background: #fff;
    transition: border-color 0.2s, box-shadow 0.2s;
    box-sizing: border-box;
}

.devisqr-settings-field input:not([type="checkbox"]):not([type="radio"]):focus {
    outline: none;
    border-color: #3b82f6;
    box-shadow: 0 0 0 3px rgba(59,130,246,0.15);
}

.devisqr-settings-help {
    display: block;
    font-size: 12px;
    color: #94a3b8;
    margin-top: 5px;
    line-height: 1.4;
}

.devisqr-settings-actions {
    margin-top: 32px;
    padding-top: 20px;
    border-top: 1px solid #e2e8f0;
}

.devisqr-settings-save {
    background: #1e293b;
    color: #fff;
    border: none;
    padding: 11px 28px;
    font-size: 14px;
    font-weight: 600;
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.2s;
}

.devisqr-settings-save:hover {
    background: #334155;
}

.devisqr-settings-save:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ===== v1.0 additions ===== */
.devisqr-muted { color: #64748b; font-size: 13px; }
.devisqr-bold { font-weight: 700; }
.devisqr-now { color: #059669; font-weight: 700; }
.devisqr-click { cursor: pointer; }
.devisqr-detail-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; flex-wrap: wrap; gap: 12px; }
.devisqr-detail-head h2 { margin: 0; font-size: 20px; font-weight: 700; }
.devisqr-detail-head-actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.devisqr-inline-field { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; flex-wrap: wrap; }
.devisqr-inline-field label { font-size: 13px; font-weight: 600; color: #64748b; }
.devisqr-discount-input { width: 70px; padding: 4px 6px; border: 1px solid #e2e8f0; border-radius: 6px; text-align: center; font-size: 13px; background: #fff; color: #1e293b; }
.devisqr-discount-input.has-discount { border: 2px solid #059669; font-weight: 700; color: #059669; background: #ecfdf5; }
.devisqr-total-big { font-size: 18px; color: #0066cc; font-weight: 700; margin-top: 8px; }
.devisqr-expiry-field { margin-top: 12px; padding-top: 12px; border-top: 1px solid #e2e8f0; }
.devisqr-expiry-field label { font-size: 12px; font-weight: 600; color: #64748b; display: block; margin-bottom: 4px; }
.devisqr-expiry-field input { padding: 6px 10px; border: 1px solid #e2e8f0; border-radius: 6px; font-size: 13px; width: 100%; box-sizing: border-box; }
.devisqr-items-head { display: flex; justify-content: space-between; align-items: center; margin: 20px 0 10px; }
.devisqr-items-head h3 { font-size: 16px; font-weight: 600; margin: 0; }
.devisqr-item-cell { display: flex; align-items: center; gap: 10px; }
.devisqr-item-cell img { width: 36px; height: 36px; border-radius: 4px; object-fit: cover; border: 1px solid #e2e8f0; }
.devisqr-customer-note-box { margin-top: 12px; padding: 12px 14px; background: #f8fafc; border-left: 3px solid #94a3b8; border-radius: 0 8px 8px 0; }
.devisqr-customer-note-label { font-size: 11px; font-weight: 700; color: #64748b; text-transform: uppercase; letter-spacing: .5px; margin-bottom: 4px; }
.devisqr-customer-note-box p { margin: 0; white-space: pre-wrap; }
.devisqr-settings-toggle label { display: flex; align-items: center; gap: 8px; font-weight: 500; cursor: pointer; }
.devisqr-settings-toggle input[type="checkbox"] { margin: 0; width: 18px; height: 18px; flex: 0 0 18px; accent-color: #2563eb; }
.devisqr-settings-toggle label { font-size: 14px; color: #1e293b; margin-bottom: 4px; }
.devisqr-settings-toggle .devisqr-settings-help { display: block; margin-left: 26px; }
.devisqr-roles-grid { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0; }
.devisqr-role-chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid #e2e8f0; border-radius: 999px; font-size: 13px; cursor: pointer; background: #fff; }
.devisqr-role-chip.active { border-color: #0066cc; background: #eff6ff; color: #0066cc; font-weight: 600; }
.devisqr-role-chip input { margin: 0; }
.devisqr-two-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.devisqr-logo-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.devisqr-logo-preview { max-height: 56px; max-width: 160px; border: 1px solid #e2e8f0; border-radius: 6px; padding: 4px; background: #fff; }
.devisqr-settings-field select, .devisqr-settings-field textarea { width: 100%; max-width: 480px; padding: 8px 12px; border: 1px solid #e2e8f0; border-radius: 6px; font-size: 14px; }
@media (max-width: 782px) { .devisqr-two-cols { grid-template-columns: 1fr; } }

/* ===== Buttons / style editor ===== */
.devisqr-three-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 16px; }
.devisqr-color-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px 16px; margin: 4px 0 14px; }
.devisqr-color-field label { display: block; font-size: 12px; font-weight: 600; color: #64748b; margin-bottom: 4px; }
.devisqr-color-row { display: flex; align-items: center; gap: 8px; }
.devisqr-color-row input[type="color"] { width: 40px; height: 34px; padding: 2px; border: 1px solid #d1d5db; border-radius: 6px; background: #fff; cursor: pointer; }
.devisqr-color-row input[type="text"] { flex: 1; padding: 6px 10px; font-size: 13px; border: 1px solid #d1d5db; border-radius: 6px; font-family: monospace; }
.devisqr-color-row .button-link { font-size: 12px; }
.devisqr-check-row { display: flex; gap: 20px; flex-wrap: wrap; margin: 4px 0 14px; }
.devisqr-check-row label { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; }
.devisqr-inherit-toggle { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; margin: 4px 0 12px; }
.devisqr-style-editor { border-top: 1px dashed #e2e8f0; margin-top: 10px; padding-top: 14px; }
.devisqr-preview { padding: 18px; background: repeating-linear-gradient(45deg, #f8fafc, #f8fafc 10px, #f1f5f9 10px, #f1f5f9 20px); border: 1px solid #e2e8f0; border-radius: 8px; }
.devisqr-preview-btn, .devisqr-preview .devisqr-quote-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px; box-sizing: border-box;
    width: var(--devisqr-width, auto); padding: var(--devisqr-pad-y, 11px) var(--devisqr-pad-x, 20px);
    background: var(--devisqr-bg, #1e293b); color: var(--devisqr-text, #fff);
    border: var(--devisqr-border-w, 1px) solid var(--devisqr-border, transparent); border-radius: var(--devisqr-radius, 6px);
    font-size: var(--devisqr-font, 15px); font-weight: 600; line-height: 1.3; cursor: default; transition: all .2s;
}
.devisqr-preview .devisqr-quote-btn:hover { background: var(--devisqr-hover-bg, #0f172a); color: var(--devisqr-hover-text, #fff); border-color: var(--devisqr-hover-border, var(--devisqr-border, transparent)); text-decoration: var(--devisqr-hover-deco, none); }
.devisqr-preview .devisqr-btn-icon { display: inline-flex; }
.devisqr-preview .devisqr-btn-icon svg { width: 1.3em; height: 1.3em; }
.devisqr-preview.devisqr-quote-wrap--no-icon .devisqr-btn-icon { display: none; }
.devisqr-code { width: 100%; font-family: Menlo, Consolas, monospace; font-size: 12.5px; padding: 10px 12px; border: 1px solid #d1d5db; border-radius: 8px; box-sizing: border-box; }
@media (max-width: 782px) { .devisqr-three-cols { grid-template-columns: 1fr; } }

/* ===== Language switch & texts ===== */
.devisqr-admin-header { flex-wrap: wrap; gap: 10px; }
.devisqr-lang-switch { display: inline-flex; align-items: center; gap: 4px; margin-left: auto; margin-right: 12px; }
.devisqr-lang-btn { padding: 5px 10px; border: 1px solid #d1d5db; background: #fff; border-radius: 6px; font-size: 12px; font-weight: 700; cursor: pointer; color: #475569; }
.devisqr-lang-btn.active { background: #1e293b; color: #fff; border-color: #1e293b; }
.devisqr-lang-reset { background: none; border: none; cursor: pointer; color: #64748b; font-size: 14px; }
.devisqr-texts-group { margin-top: 10px; }
.devisqr-texts-group h4 { text-transform: initial; letter-spacing: .5px; font-size: 17px; font-weight: 700; color: #1e293b; margin: 18px 0 4px; }
.devisqr-text-row label { font-weight: 500; }
.devisqr-text-row .devisqr-text-hint { display: block; margin-top: 3px; font-size: 11px; color: #94a3b8; }
.devisqr-text-row input::placeholder { color: #94a3b8; font-style: italic; }
.devisqr-lang-badge { display: inline-block; margin: 0 0 10px; padding: 3px 10px; border-radius: 999px; background: #eef2ff; color: #3730a3; font-size: 12px; font-weight: 600; }

.devisqr-logo-warning { color: #b45309; font-weight: 600; }


/* ===== About the Pro add-on (free edition) ===== */
.devisqr-pro-card { border: 1px dashed #c7d2fe; background: #fafbff; }
