﻿/*
 * (c) 2026 guardfolio.live / David Purand. All rights reserved.
 * Unauthorized copying, modification, distribution, or sale of this file is strictly prohibited.
 * Proprietary and confidential.
 */

/* ===================================
   Global Utility Classes (Clean Code)
   =================================== */

/* Text Colors */
.text-green {
    color: var(--gtj-success);
}

.text-red {
    color: var(--gtj-danger);
}

.text-blue {
    color: #3b82f6;
}

.text-muted {
    color: var(--gtj-text-secondary);
}

.text-pink {
    color: #db2777;
}

/* Font Weights */
.font-medium {
    font-weight: 500;
}

.font-bold {
    font-weight: 600;
}

.font-xbold {
    font-weight: 700;
}

/* Flexbox Helpers */
.d-flex {
    display: flex;
}

.flex-column {
    flex-direction: column;
}

.flex-wrap {
    flex-wrap: wrap;
}

.align-center {
    align-items: center;
}

.justify-between,
.flex-between {
    justify-content: space-between;
}

.justify-center {
    justify-content: center;
}

.justify-end {
    justify-content: flex-end;
}

.flex-gap-8 {
    gap: 8px;
}

.flex-gap-10 {
    gap: 10px;
}

.flex-gap-12 {
    gap: 12px;
}

.gap-1 {
    gap: 4px;
}

.gap-2 {
    gap: 8px;
}

.gap-3 {
    gap: 12px;
}

.gap-4 {
    gap: 16px;
}

.gap-6px,
.gap-xs {
    gap: 6px;
}

/* Spacing Helpers (Padding/Margin) */
.p-0 {
    padding: 0;
}

.p-1 {
    padding: 4px;
}

.p-2 {
    padding: 8px;
}

.p-3 {
    padding: 12px;
}

.p-4 {
    padding: 16px;
}

.m-0 {
    margin: 0;
}

.mb-1 {
    margin-bottom: 4px;
}

.mb-2 {
    margin-bottom: 8px;
}

.mb-3 {
    margin-bottom: 12px;
}

.mb-4 {
    margin-bottom: 16px;
}

.mb-15 {
    margin-bottom: 15px;
}

.mb-16 {
    margin-bottom: 16px;
}

.mt-2 {
    margin-top: 8px;
}

.mt-4 {
    margin-top: 16px;
}

.mt-10 {
    margin-top: 10px;
}

/* Layout Helpers */
.w-100 {
    width: 100%;
}

.h-100 {
    height: 100%;
}

.cursor-pointer {
    cursor: pointer;
}

.hidden-view {
    display: none;
}

.w-full,
.full-width {
    width: 100%;
}

.margin-0 {
    margin: 0;
}

.padding-0 {
    padding: 0;
}

.text-center {
    text-align: center;
}

.text-right {
    text-align: right;
}

.text-left {
    text-align: left;
}

.overflow-hidden {
    overflow: hidden;
}

/* Grid Helpers */
.grid-responsive {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 16px;
}

/* Visibility */
.hidden {
    display: none;
}

.block {
    display: block;
}

/* Badges (Standardized) */
.badge {
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
}

.badge-green {
    background: #dcfce7;
    color: #166534;
}

.badge-red {
    background: #fee2e2;
    color: #991b1b;
}

.badge-gray {
    background: #f3f4f6;
    color: #374151;
}

/* Input Helpers */
.input-readonly {
    background-color: #f3f4f6;
    cursor: not-allowed;
}

.input-readonly-bold {
    background-color: #f3f4f6;
    font-weight: bold;
}

.input-readonly-cursor {
    background-color: #f3f4f6;
    cursor: not-allowed;
}

.no-resize {
    resize: none;
}

.border-green {
    border-color: #a7f3d0;
}

.border-pink {
    border-color: #fbcfe8;
}

.btn-icon-center {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    width: 38px;
}

.max-w-450 {
    max-width: 450px;
}