/**
 * eFixOS UI System
 * Tokens + componentes base compartilhados entre módulos
 */

:root {
    --efixos-control-height: 2.55rem;
    --efixos-control-radius: 0.5rem;
    --efixos-control-border: #cbd5e1;
    --efixos-control-text: #0f172a;
    --efixos-control-focus: #00a3c4;
    --efixos-control-focus-ring: rgba(0, 163, 196, 0.15);
    --efixos-button-height: 2.55rem;
    --efixos-button-radius: 0.5rem;
    --efixos-button-font-size: 0.88rem;
    --efixos-button-primary-bg: linear-gradient(180deg, #00a3c4 0%, #0884a0 100%);
    --efixos-button-primary-bg-hover: linear-gradient(180deg, #00b4d8 0%, #0993b3 100%);
    --efixos-button-primary-shadow: 0 4px 14px rgba(0, 163, 196, 0.22);
    --efixos-chip-radius: 999px;
    --efixos-chip-font-size: 0.72rem;
}

/* Formulários do painel — padrão unificado (settings, clientes, produtos, etc.) */
.app-form .form-section-header,
.settings-form .form-section-header,
.customer-form .form-section-header,
.product-form .form-section-header,
.category-form .form-section-header {
    margin-bottom: 1.15rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid #f1f5f9;
}

.app-form .form-section-title,
.settings-form .form-section-title {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #64748b;
}

.app-form .form-section-description,
.settings-form .form-section-description {
    margin-top: 0.3rem;
    font-size: 0.85rem;
    color: #64748b;
}

.app-form label:not(.choice-card):not(.customer-role-option):not(.category-active-check):not(.customer-active-check):not(.product-active-check):not(.product-stock-check),
.settings-form label:not(.choice-card):not(.category-active-check),
.customer-form label:not(.customer-role-option):not(.choice-card),
.product-form label:not(.choice-card),
.category-form label:not(.choice-card):not(.category-active-check),
.os-form label:not(.choice-card):not(.customer-role-option):not(.category-active-check):not(.customer-active-check):not(.product-active-check):not(.product-stock-check),
.os-manage-form label,
.catalog-filter-form label,
.customers-filter-form label,
.os-filter-form label {
    display: block;
    margin-bottom: 0.4rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #475569;
}

.app-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not(.efixos-search-group__input),
.app-form select,
.app-form textarea,
.settings-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),
.settings-form select,
.settings-form textarea,
.customer-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.customer-form select,
.customer-form textarea,
.product-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.product-form select,
.product-form textarea,
.category-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.category-form select,
.category-form textarea,
.os-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),
.os-form select,
.os-form textarea,
.os-manage-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),
.os-manage-form select,
.os-manage-form textarea,
.catalog-filter-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not(.efixos-search-group__input),
.catalog-filter-form select,
.catalog-filter-form textarea,
.customers-filter-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not(.efixos-search-group__input),
.customers-filter-form select,
.customers-filter-form textarea,
.os-filter-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):not(.efixos-search-group__input),
.os-filter-form select,
.os-filter-form textarea {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0.6rem 0.8rem;
    min-height: var(--efixos-control-height);
    border: 1px solid var(--efixos-control-border);
    border-radius: var(--efixos-control-radius);
    background: #fff;
    font-size: 0.9rem;
    line-height: 1.4;
    color: var(--efixos-control-text);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.app-form select,
.settings-form select,
.customer-form select,
.product-form select,
.category-form select,
.os-form select,
.os-manage-form select,
.catalog-filter-form select,
.customers-filter-form select,
.os-filter-form select,
.finance-account-form select,
.finance-payment-form select {
    appearance: none;
    padding-right: 2.25rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 1rem;
    cursor: pointer;
}

.app-form textarea,
.settings-form textarea,
.customer-form textarea,
.product-form textarea,
.category-form textarea,
.os-form textarea,
.os-manage-form textarea,
.catalog-filter-form textarea,
.customers-filter-form textarea,
.os-filter-form textarea {
    min-height: 5.5rem;
    resize: vertical;
}

.app-form input:not(.efixos-search-group__input):focus,
.app-form select:focus,
.app-form textarea:focus,
.settings-form input:focus,
.settings-form select:focus,
.settings-form textarea:focus,
.customer-form input:focus,
.customer-form select:focus,
.customer-form textarea:focus,
.product-form input:focus,
.product-form select:focus,
.product-form textarea:focus,
.category-form input:focus,
.category-form select:focus,
.category-form textarea:focus,
.os-form input:focus,
.os-form select:focus,
.os-form textarea:focus,
.os-manage-form input:focus,
.os-manage-form select:focus,
.os-manage-form textarea:focus,
.catalog-filter-form input:focus,
.catalog-filter-form select:focus,
.catalog-filter-form textarea:focus,
.customers-filter-form input:focus,
.customers-filter-form select:focus,
.customers-filter-form textarea:focus,
.os-filter-form input:focus,
.os-filter-form select:focus,
.os-filter-form textarea:focus {
    outline: none;
    border-color: var(--efixos-control-focus);
    box-shadow: 0 0 0 3px var(--efixos-control-focus-ring);
}

.app-form input[aria-invalid="true"],
.app-form select[aria-invalid="true"],
.app-form textarea[aria-invalid="true"],
.settings-form input[aria-invalid="true"],
.settings-form select[aria-invalid="true"],
.settings-form textarea[aria-invalid="true"],
.customer-form input[aria-invalid="true"],
.customer-form select[aria-invalid="true"],
.customer-form textarea[aria-invalid="true"],
.product-form input[aria-invalid="true"],
.product-form select[aria-invalid="true"],
.product-form textarea[aria-invalid="true"],
.category-form input[aria-invalid="true"],
.category-form select[aria-invalid="true"],
.category-form textarea[aria-invalid="true"],
.os-form input[aria-invalid="true"],
.os-form select[aria-invalid="true"],
.os-form textarea[aria-invalid="true"],
.os-manage-form input[aria-invalid="true"],
.os-manage-form select[aria-invalid="true"],
.os-manage-form textarea[aria-invalid="true"],
.catalog-filter-form input[aria-invalid="true"],
.catalog-filter-form select[aria-invalid="true"],
.catalog-filter-form textarea[aria-invalid="true"],
.customers-filter-form input[aria-invalid="true"],
.customers-filter-form select[aria-invalid="true"],
.customers-filter-form textarea[aria-invalid="true"],
.os-filter-form input[aria-invalid="true"],
.os-filter-form select[aria-invalid="true"],
.os-filter-form textarea[aria-invalid="true"] {
    border-color: #ef4444;
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.12);
}

/* Botões, chips e interações */
.button,
a.button,
button.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    min-height: var(--efixos-button-height);
    padding: 0.62rem 1rem;
    border-radius: var(--efixos-button-radius);
    font-size: var(--efixos-button-font-size);
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.01em;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, color 0.15s ease, transform 0.08s ease;
}

.button:hover,
a.button:hover {
    transform: translateY(-1px);
}

.button:focus,
.button:focus-visible,
a.button:focus,
a.button:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--efixos-control-focus-ring);
}

.button:active,
a.button:active {
    transform: translateY(0);
}

.button.small,
a.button.small {
    min-height: 2.1rem;
    padding: 0.45rem 0.8rem;
    font-size: 0.78rem;
}

.button.primary,
.dashboard-cta-primary.button,
.os-search-submit.button,
.catalog-search-submit.button,
.customers-search-submit.button,
.os-item-add-btn.button {
    border: none;
    background: var(--efixos-button-primary-bg);
    color: #fff;
    box-shadow: var(--efixos-button-primary-shadow);
}

.button.primary:hover,
.button.primary:focus,
.dashboard-cta-primary.button:hover,
.dashboard-cta-primary.button:focus,
.os-search-submit.button:hover,
.os-search-submit.button:focus,
.catalog-search-submit.button:hover,
.catalog-search-submit.button:focus,
.customers-search-submit.button:hover,
.customers-search-submit.button:focus,
.os-item-add-btn.button:hover,
.os-item-add-btn.button:focus {
    background: var(--efixos-button-primary-bg-hover);
    color: #fff;
}

.button.hollow,
a.button.hollow {
    border-color: #cbd5e1;
    background: #fff;
    color: #0f172a;
}

.button.hollow:hover,
.button.hollow:focus,
a.button.hollow:hover,
a.button.hollow:focus {
    border-color: var(--efixos-control-focus);
    background: #f8fafc;
    color: #0b5569;
}

.button.secondary,
a.button.secondary {
    border-color: #dbe3ec;
    background: #f1f5f9;
    color: #334155;
}

.button.secondary:hover,
.button.secondary:focus,
a.button.secondary:hover,
a.button.secondary:focus {
    border-color: #cbd5e1;
    background: #e8eef5;
    color: #0f172a;
}

/* Barra de busca unificada (sem Foundation input-group) */
.efixos-search-group {
    width: 100%;
}

.efixos-search-group__label {
    display: block;
    margin: 0 0 0.5rem;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
}

.efixos-search-group__control {
    display: flex;
    align-items: stretch;
    width: 100%;
    min-height: 2.65rem;
    border: 1px solid var(--efixos-control-border);
    border-radius: var(--efixos-control-radius);
    overflow: hidden;
    background: #fff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.efixos-search-group__control:focus-within {
    border-color: var(--efixos-control-focus);
    box-shadow: 0 0 0 3px var(--efixos-control-focus-ring);
}

.efixos-search-group__field {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: stretch;
}

.efixos-search-group__icon {
    position: absolute;
    left: 0.85rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.125rem;
    height: 1.125rem;
    color: #94a3b8;
    pointer-events: none;
}

.efixos-search-group__icon svg {
    display: block;
    width: 1.125rem;
    height: 1.125rem;
}

.efixos-search-group__input {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0 0.8rem 0 2.5rem;
    min-height: 2.65rem;
    box-sizing: border-box;
    border: 0;
    border-radius: 0;
    background: transparent;
    font-size: 0.9rem;
    line-height: 1.4;
    color: var(--efixos-control-text);
    box-shadow: none;
    -webkit-appearance: none;
    appearance: none;
}

.efixos-search-group__input:focus {
    outline: none;
    border: 0;
    box-shadow: none;
}

.efixos-search-group__input::-webkit-search-decoration,
.efixos-search-group__input::-webkit-search-cancel-button {
    -webkit-appearance: none;
    appearance: none;
    display: none;
}

.efixos-search-group__submit.button {
    flex: 0 0 auto;
    margin: 0;
    height: auto;
    min-height: 2.65rem;
    align-self: stretch;
    border: 0;
    border-left: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 0;
    padding: 0 1.25rem;
    font-weight: 600;
    white-space: nowrap;
    background: var(--efixos-button-primary-bg);
    color: #fff;
    box-shadow: none;
}

.efixos-search-group__submit.button:hover,
.efixos-search-group__submit.button:focus {
    background: var(--efixos-button-primary-bg-hover);
    color: #fff;
}

.os-filter-form .efixos-search-group .efixos-search-group__input,
.catalog-filter-form .efixos-search-group .efixos-search-group__input,
.customers-filter-form .efixos-search-group .efixos-search-group__input,
.app-form .efixos-search-group .efixos-search-group__input {
    width: 100%;
    margin: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
}

.os-filter-form .efixos-search-group .efixos-search-group__input:focus,
.catalog-filter-form .efixos-search-group .efixos-search-group__input:focus,
.customers-filter-form .efixos-search-group .efixos-search-group__input:focus,
.app-form .efixos-search-group .efixos-search-group__input:focus {
    border: 0;
    box-shadow: none;
}

/* Botões de filtro avulsos (fora do input-group) */
.catalog-filter-actions .catalog-search-submit.button,
.catalog-filter-actions .catalog-filter-clear.button {
    border-radius: var(--efixos-button-radius);
}

.label {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    margin: 0;
    padding: 0.32rem 0.7rem;
    border-radius: var(--efixos-chip-radius);
    font-size: var(--efixos-chip-font-size);
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.2;
}

.label.hollow {
    border-width: 1px;
}

.os-status-filter.label,
.catalog-type-filter.label,
.customers-role-filter.label,
.reports-status-chips .label,
.categories-context-chips .label {
    text-decoration: none;
    transition: border-color 0.12s ease, box-shadow 0.12s ease, transform 0.12s ease, opacity 0.12s ease;
}

.os-status-filter.label:hover,
.catalog-type-filter.label:hover,
.customers-role-filter.label:hover {
    transform: translateY(-1px);
}

.os-status-filter.label:focus,
.os-status-filter.label:focus-visible,
.catalog-type-filter.label:focus,
.catalog-type-filter.label:focus-visible,
.customers-role-filter.label:focus,
.customers-role-filter.label:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--efixos-control-focus-ring);
}

.os-clear-filters,
.catalog-clear-filters,
.customers-clear-filters {
    color: #0b5569;
    text-decoration: none;
    border-bottom: 1px dashed transparent;
    transition: color 0.12s ease, border-color 0.12s ease;
}

.os-clear-filters:hover,
.catalog-clear-filters:hover,
.customers-clear-filters:hover {
    color: #0a2540;
    border-color: rgba(10, 37, 64, 0.35);
}

.input-icon-results {
    border: 1px solid #d8e1ea;
    border-radius: 0.55rem;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.12);
}

.input-icon-results [role="option"],
.input-icon-results li {
    margin: 0 0.25rem;
    border-radius: 0.38rem;
}

.app-form .grid-x .cell,
.settings-form .grid-x .cell,
.customer-form .grid-x .cell,
.product-form .grid-x .cell,
.category-form .grid-x .cell {
    margin-bottom: 1rem;
}

.app-form .grid-x .cell:last-child,
.settings-form .grid-x .cell:last-child,
.customer-form .grid-x .cell:last-child,
.product-form .grid-x .cell:last-child,
.category-form .grid-x .cell:last-child {
    margin-bottom: 0;
}

.app-form .form-error,
.settings-form .form-error,
.customer-form .form-error,
.product-form .form-error,
.category-form .form-error {
    margin-top: 0.35rem;
    font-size: 0.78rem;
    font-weight: 500;
    color: #b91c1c;
}

.settings-form-section {
    padding: 1.35rem 1.5rem;
}

.settings-form-section .form-actions,
.app-form .form-actions,
.app-form .os-form-actions {
    margin: 0;
    padding: 1.15rem 1.5rem 1.35rem;
    background: #f8fafc;
    border-top: 1px solid #e5e7eb;
    border-radius: 0;
}

.settings-econtratos-form .settings-form-section {
    padding-bottom: 0;
}

.settings-econtratos-form .form-actions {
    border-radius: 0 0 0.85rem 0.85rem;
}

.settings-form-hint {
    margin: 0.35rem 0 0;
    font-size: 0.8rem;
    color: #64748b;
}

.settings-form-hint code {
    font-size: 0.78rem;
    background: #f1f5f9;
    padding: 0.1rem 0.35rem;
    border-radius: 0.25rem;
}

/* CEP + ação de busca (evita input colapsado em colunas estreitas do Foundation) */
.form-cep-group {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.5rem;
}

.form-cep-group > input:not([type="hidden"]) {
    flex: 1 1 8.5rem;
    width: auto;
    min-width: 8.5rem;
    max-width: 10.5rem;
}

.form-cep-group > .button {
    flex: 0 0 auto;
    margin-bottom: 0;
}
