/* =========================================================
   HIROTECH — GLOBAL COLOR SYSTEM v2
   SINGLE SOURCE OF TRUTH FOR SEMANTIC UI COLORS
   Background/canvas values are intentionally NOT changed here.
   ========================================================= */

:root {
    /* Locked semantic palette */
    --ht-primary: #2563EB;
    --ht-primary-hover: #2563EB;
    --ht-soft-blue: #4A8FF7;
    --ht-soft-blue-hover: #4A8FF7;
    --ht-muted-blue: #7B9BC7;
    --ht-success: #22C55E;
    --ht-processing: #FBBF24;
    --ht-danger: #E60012;
    --ht-danger-hover-bg: rgba(230, 0, 18, .16);
    --ht-danger-active-bg: rgba(230, 0, 18, .22);
    --ht-text: #FFFFFF;
    --ht-muted: #94A3B8;

    /* Supporting semantic tones */
    --ht-primary-soft: rgba(37, 99, 235, .14);
    --ht-soft-blue-soft: rgba(74, 143, 247, .14);
    --ht-success-soft: rgba(34, 197, 94, .12);
    --ht-processing-soft: rgba(251, 191, 36, .12);
    --ht-danger-soft: rgba(230, 0, 18, .12);
    --ht-border: rgba(37, 99, 235, .22);
    --ht-border-soft: rgba(37, 99, 235, .14);

    /* Backward-compatible aliases — values normalized to the locked palette. */
    --ht-blue: #2563EB;
    --ht-blue-hover: #2563EB;
    --ht-blue-bright: #4A8FF7;
    --ht-blue-soft: rgba(37, 99, 235, .14);
    --ht-green: #22C55E;
    --ht-amber: #FBBF24;
    --ht-red: #E60012;
    --ht-text-2: #FFFFFF;
    --ht-dim: #94A3B8;
    --ht-muted-blue: #7B9BC7;
}

/* ---------------------------------------------------------
   Semantic utility normalization.
   These rules intentionally affect semantic accent utilities
   only. Existing Hirotech background/canvas utilities remain
   untouched.
   --------------------------------------------------------- */

/* Primary / blue family */
[class~="text-blue-200"],[class~="text-blue-300"],[class~="text-blue-400"],
[class~="text-sky-400"],[class~="text-cyan-400"],
[class~="hover:text-blue-300"]:hover,[class~="hover:text-blue-400"]:hover {
    color: var(--ht-soft-blue) !important;
}
[class~="text-blue-500"],[class~="text-blue-600"],[class~="text-blue-900"] {
    color: var(--ht-primary) !important;
}
[class~="bg-blue-400"],[class~="bg-blue-500"],[class~="bg-blue-600"] { background-color: var(--ht-primary) !important; }
[class~="hover:bg-blue-400"]:hover,[class~="hover:bg-blue-500"]:hover,[class~="hover:bg-blue-600"]:hover { background-color: var(--ht-primary-hover) !important; }
[class~="border-blue-300"],[class~="border-blue-400"],[class~="border-sky-500"] { border-color: var(--ht-soft-blue) !important; }
[class~="border-blue-500"],[class~="border-blue-600"] { border-color: var(--ht-primary) !important; }
[class~="hover:border-blue-400"]:hover { border-color: var(--ht-soft-blue-hover) !important; }
[class~="hover:border-blue-500"]:hover { border-color: var(--ht-primary) !important; }
[class~="ring-blue-500"],[class~="ring-blue-600"] { --tw-ring-color: var(--ht-primary) !important; }
[class~="hover:bg-blue-500/10"]:hover,[class~="hover:bg-blue-600/20"]:hover,[class~="hover:bg-blue-600/30"]:hover { background-color: rgba(37,99,235,.12) !important; }


/* Violet semantic accents are normalized to Hirotech Soft Blue. Decorative
   background/ornament indigo utilities are intentionally left untouched. */
[class~="text-violet-300"],[class~="text-violet-400"],[class~="text-purple-300"],[class~="text-purple-400"] { color: var(--ht-soft-blue) !important; }
[class~="bg-violet-400"],[class~="bg-violet-500"],[class~="bg-purple-400"],[class~="bg-purple-500"],[class~="bg-purple-600"] { background-color: var(--ht-primary) !important; }
[class~="border-violet-400"],[class~="border-violet-500"],[class~="border-purple-400"],[class~="border-purple-500"] { border-color: rgba(74,143,247,.22) !important; }
[class~="bg-violet-500/10"],[class~="bg-purple-600/15"],[class~="bg-purple-500/10"] { background-color: rgba(74,143,247,.14) !important; }

/* Success / green family */
[class~="text-emerald-300"],[class~="text-emerald-400"],[class~="text-emerald-500"],[class~="text-emerald-600"],[class~="text-green-400"],
[class~="hover:text-emerald-300"]:hover { color: var(--ht-success) !important; }
[class~="bg-emerald-500"],[class~="bg-emerald-600"] { background-color: var(--ht-success) !important; }
[class~="hover:bg-emerald-500"]:hover,[class~="hover:bg-emerald-600"]:hover { background-color: var(--ht-success) !important; }
[class~="border-emerald-400"],[class~="border-emerald-500"],[class~="border-green-500"] { border-color: var(--ht-success) !important; }
[class~="hover:border-emerald-500"]:hover { border-color: var(--ht-success) !important; }

/* Processing / yellow family */
[class~="text-amber-200"],[class~="text-amber-300"],[class~="text-amber-400"],[class~="text-yellow-300"],
[class~="hover:text-amber-300"]:hover { color: var(--ht-processing) !important; }
[class~="bg-amber-400"],[class~="bg-amber-500"] { background-color: var(--ht-processing) !important; }
[class~="hover:bg-amber-400"]:hover,[class~="hover:bg-amber-500"]:hover { background-color: var(--ht-processing) !important; }
[class~="border-amber-400"],[class~="border-amber-500"] { border-color: var(--ht-processing) !important; }
[class~="hover:border-amber-500"]:hover { border-color: var(--ht-processing) !important; }

/* Danger / rejected family */
[class~="text-red-300"],[class~="text-red-400"],[class~="text-rose-300"],[class~="text-rose-400"],
[class~="hover:text-red-300"]:hover,[class~="hover:text-red-400"]:hover { color: var(--ht-danger) !important; }
[class~="bg-red-500"],[class~="bg-red-600"],[class~="bg-rose-600"] { background-color: var(--ht-danger) !important; }
[class~="hover:bg-red-500"]:hover,[class~="hover:bg-red-600"]:hover,[class~="hover:bg-rose-600"]:hover { background-color: var(--ht-danger-hover-bg) !important; }
[class~="border-red-300"],[class~="border-red-400"],[class~="border-red-500"],[class~="border-rose-400"],[class~="border-rose-500"] { border-color: var(--ht-danger) !important; }
[class~="hover:border-red-300"]:hover { border-color: var(--ht-danger) !important; }

/* Opacity variants: preserve the existing visual hierarchy while
   making the source color identical across Hirotech. */
[class*="bg-blue-"] { --ht-accent-bg: var(--ht-primary); }
[class*="bg-emerald-"] { --ht-accent-bg: var(--ht-success); }
[class*="bg-green-"] { --ht-accent-bg: var(--ht-success); }
[class*="bg-amber-"] { --ht-accent-bg: var(--ht-processing); }
[class*="bg-yellow-"] { --ht-accent-bg: var(--ht-processing); }
[class*="bg-red-"] { --ht-accent-bg: var(--ht-danger); }
[class*="bg-rose-"] { --ht-accent-bg: var(--ht-danger); }

/* Explicit common opacity utilities used throughout the project. */
[class~="bg-blue-500/10"],[class~="bg-blue-600/10"],[class~="bg-blue-600/15"] { background-color: rgba(37,99,235,.10) !important; }
[class~="bg-blue-500/20"],[class~="bg-blue-600/20"] { background-color: rgba(37,99,235,.20) !important; }
[class~="bg-blue-600/30"] { background-color: rgba(37,99,235,.30) !important; }
[class~="bg-blue-600/90"] { background-color: rgba(37,99,235,.90) !important; }
[class~="bg-cyan-400/20"],[class~="bg-sky-600/15"] { background-color: rgba(37,99,235,.15) !important; }
[class~="bg-emerald-500/10"],[class~="bg-emerald-600/10"],[class~="bg-green-500/10"] { background-color: rgba(34,197,94,.10) !important; }
[class~="bg-emerald-500/15"],[class~="bg-emerald-600/15"] { background-color: rgba(34,197,94,.15) !important; }
[class~="bg-emerald-500/20"] { background-color: rgba(34,197,94,.20) !important; }
[class~="bg-emerald-500/80"],[class~="bg-emerald-600"] { background-color: rgba(34,197,94,.80) !important; }
[class~="bg-amber-500/10"] { background-color: rgba(251,191,36,.10) !important; }
[class~="bg-amber-500/20"] { background-color: rgba(251,191,36,.20) !important; }
[class~="bg-amber-500/80"] { background-color: rgba(251,191,36,.80) !important; }
[class~="bg-red-500/10"],[class~="bg-red-600/10"],[class~="bg-rose-500/10"] { background-color: rgba(230,0,18,.10) !important; }
[class~="bg-red-500/20"],[class~="bg-red-600/20"] { background-color: rgba(230,0,18,.20) !important; }
[class~="bg-red-500/80"] { background-color: rgba(230,0,18,.80) !important; }

/* Border opacity variants */
[class*="border-blue-"] { border-color: rgba(37,99,235,.22) !important; }
[class~="border-blue-300/20"],[class~="border-blue-300/25"],[class~="border-blue-400/20"],[class~="border-blue-400/25"],[class~="border-blue-400/30"],[class~="border-blue-400/35"] { border-color: rgba(74,143,247,.22) !important; }
[class*="border-sky-"] { border-color: rgba(37,99,235,.22) !important; }
[class*="border-emerald-"] { border-color: rgba(34,197,94,.22) !important; }
[class*="border-green-"] { border-color: rgba(34,197,94,.22) !important; }
[class*="border-amber-"] { border-color: rgba(251,191,36,.22) !important; }
[class*="border-red-"] { border-color: rgba(230,0,18,.22) !important; }
[class*="border-rose-"] { border-color: rgba(230,0,18,.22) !important; }

/* Shadow color normalization without changing shadow geometry. */
[class*="shadow-blue-"] { --tw-shadow-color: rgba(37,99,235,.30) !important; }
[class*="shadow-emerald-"] { --tw-shadow-color: rgba(34,197,94,.30) !important; }
[class*="shadow-amber-"] { --tw-shadow-color: rgba(251,191,36,.25) !important; }
[class*="shadow-red-"] { --tw-shadow-color: rgba(230,0,18,.30) !important; }

/* Strong text inputs remain pure Hirotech white. */
.hiro-primary-text,
.hiro-client-page input,
.hiro-client-page textarea,
.hiro-client-page select { color: var(--ht-text); }


/* Muted Blue: supporting metadata/accent that should not compete with primary/soft blue. */
.hiro-muted-blue,
.hiro-muted-blue-icon {
    color: var(--ht-muted-blue) !important;
}


/* Logout / destructive actions: Hirotech red stays visible without a white-text washout. */
.hiro-logout-action {
    color: var(--ht-danger) !important;
    background: rgba(230,0,18,.08) !important;
    border-color: rgba(230,0,18,.28) !important;
}
.hiro-logout-action:hover,
.hiro-logout-action:focus-visible {
    color: var(--ht-danger) !important;
    background: var(--ht-danger-hover-bg) !important;
    border-color: rgba(230,0,18,.48) !important;
    box-shadow: 0 8px 24px rgba(230,0,18,.10) !important;
}
.hiro-logout-action:active {
    color: #FFFFFF !important;
    background: var(--ht-danger-active-bg) !important;
}

/* Live-search values are always Primary White; placeholders remain muted. */
.hiro-search input,
.hiro-search input:focus,
#serviceCatalogSearch,
#serviceCatalogSearch:focus,
#liveServiceSearch,
#liveServiceSearch:focus {
    color: var(--ht-text) !important;
    -webkit-text-fill-color: var(--ht-text) !important;
    caret-color: var(--ht-text) !important;
}

/* Hirotech Live Search — Placeholder Idle */
#liveServiceSearch::placeholder {
    color: #64748b !important;
    -webkit-text-fill-color: #64748b !important;
    opacity: 1 !important;
}

/* Hirotech Live Search — User Input */
#liveServiceSearch {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

#liveServiceSearch:focus {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
