/* EGKits app-level overrides (scoped) */

/* Emoji font fallbacks for consistent rendering */
:root {
 --emoji-fonts: "Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji","Twemoji Mozilla","EmojiOne Color","Segoe UI Symbol", system-ui, sans-serif;
 /* Popover z-index standardized via tokens */
 --egk-popover-z: var(--egk-z-popover-strong,12040);
 /* Offset used when an input has a start adornment (icon) */
 --egk-input-adornment-offset:36px;
}

.egk-app .emoji-font,
.egk-app .emoji,
.egk-app .mud-typography .emoji,
.egk-app .mud-button .emoji,
.egk-app .mud-menu .emoji,
.egk-app .mud-popover .emoji,
.egk-app .mud-dialog .emoji,
.egk-app .mud-menu * {
 font-family: var(--emoji-fonts);
 -webkit-font-smoothing: antialiased;
 text-rendering: optimizelegibility;
}

/* Popover content often hosts the emoji picker */
.egk-app .mud-popover,
.egk-app .mud-popover * {
 font-family: var(--emoji-fonts);
}

/* Twemoji images sizing/alignment */
.egk-app .twemoji,
.egk-app .emoji img.twemoji {
 width:1em;
 height:1em;
 vertical-align: -0.125em; /* similar to Bootstrap */
}

/* Also prefer color-emoji for any element explicitly requesting it */
.egk-app [data-emoji],
.egk-app .use-emoji-font {
 font-family: var(--emoji-fonts);
}

/* Minor MudBlazor border normalization */
.egk-app .mud-list {
 border:1px solid var(--mud-palette-lines-default);
}

/* Transparent autocomplete variant */
.egk-app .transparent-autocomplete .mud-input {
 box-shadow: none;
 background-color: transparent;
}
.egk-app .transparent-autocomplete input {
 color: inherit;
 background-color: transparent;
}

/* Active nav link should not force color override */
.egk-app .mud-navmenu.mud-navmenu-default .mud-nav-link.active:not(.mud-nav-link-disabled) {
 color: inherit;
}

/* Mobile tweaks */
@media (width <=768px) {
 .egk-app .brand-mark {
 width:24px;
 height:24px;
 }
 .egk-app .nav-toggle-btn {
 margin-inline-end: var(--egk-space-1);
 }
}

/* ---------------------------------------------
 CRITICAL: Complete removal of MudBlazor built-in asterisks
 Multiple approaches to ensure they never show
---------------------------------------------- */

/* Hide with maximum CSS specificity */
.egk-app .mud-input-asterisk,
.egk-app .mud-input-label-asterisk,
.egk-app .mud-input-label .mud-input-asterisk,
.egk-app .mud-input-label .mud-input-label-asterisk,
.egk-app .mud-select .mud-input-asterisk,
.egk-app .mud-select .mud-input-label-asterisk,
.egk-app .mud-picker .mud-input-asterisk,
.egk-app .mud-picker .mud-input-label-asterisk,
.egk-app .mud-autocomplete .mud-input-asterisk,
.egk-app .mud-autocomplete .mud-input-label-asterisk {
 display: none !important;
 visibility: hidden !important;
 opacity:0 !important;
 position: absolute !important;
 left: -9999px !important;
 width:0 !important;
 height:0 !important;
 overflow: hidden !important;
 clip: rect(0,0,0,0) !important;
 -webkit-clip-path: inset(50%) !important;
 clip-path: inset(50%) !important;
 white-space: nowrap !important;
}

/* Hide any span that contains only an asterisk */
.egk-app .mud-input-label span:not(.egk-asterisk) {
 display: none !important;
}

/* Remove any pseudo-based asterisks MudBlazor/themes may inject */
.egk-app .mud-input-label::before,
.egk-app .mud-input-label::after {
 content: none !important;
}

/* Ensure our red asterisks are always visible and positioned correctly */
.egk-app .egk-asterisk {
 color: var(--mud-palette-error, #f44336) !important;
 font-weight:700 !important;
 margin-left: var(--egk-space-1) !important; /*4px */
 display: inline !important;
 visibility: visible !important;
 opacity:1 !important;
 position: relative !important;
 z-index:100 !important;
 width: auto !important;
 height: auto !important;
 overflow: visible !important;
 clip: auto !important;
 -webkit-clip-path: none !important;
 clip-path: none !important;
 white-space: normal !important;
}

/* Labels: clearer weight and color; primary on focus */
.egk-app .mud-input-label {
 font-weight:600;
 letter-spacing:0.01em;
 color: var(--mud-palette-text-secondary);
 opacity:0.95;
 transition: all 0.2s ease;
}
.egk-app .mud-input.mud-focused .mud-input-label,
.egk-app .mud-select.mud-focused .mud-input-label,
.egk-app .mud-picker.mud-focused .mud-input-label {
 color: var(--mud-palette-primary);
}
/* Disabled labels */
.egk-app .mud-input.mud-disabled .mud-input-label,
.egk-app .mud-select.mud-disabled .mud-input-label,
.egk-app .mud-picker.mud-disabled .mud-input-label {
 color: var(--mud-palette-text-disabled);
 opacity:0.7;
}

/* Helper text: subtle by default, elevated on error */
.egk-app .mud-input-helper-text {
 color: var(--mud-palette-text-secondary);
 font-size:0.78rem;
 margin-top: var(--egk-space-1);
}
.egk-app .mud-input.mud-input-error .mud-input-helper-text,
.egk-app .mud-select.mud-input-error .mud-input-helper-text,
.egk-app .mud-picker.mud-input-error .mud-input-helper-text {
 color: var(--mud-palette-error);
}

/* Placeholders: readable, not overpowering */
.egk-app input::placeholder,
.egk-app textarea::placeholder {
 color: var(--mud-palette-text-secondary);
 opacity:0.65;
 font-style: italic;
}
/* Dark mode tweak for placeholders to keep contrast */
@media (prefers-color-scheme: dark) {
 .egk-app input::placeholder,
 .egk-app textarea::placeholder {
 opacity:0.75;
 }
}

/* Compact variant tweaks used in dialogs */
.egk-app .mud-input.mud-input-underline .mud-input-label,
.egk-app .mud-input.mud-input-text .mud-input-label {
 font-size:0.82rem;
}

/* Section subtitles often used as group labels (e.g., Rate Code Detail) */
.egk-app .form-section-title,
.egk-app .mud-typography.form-section-title {
 font-weight:700;
 color: var(--mud-palette-text-primary);
 letter-spacing:0.015em;
}

/* ----------------------------------------------------
 Entity pages - modern ERP/SaaS styling (migrated)
---------------------------------------------------- */
.egk-app .contacts-page-wrapper,
.egk-app .entity-page-wrapper {
 padding:0;
 min-height:100vh;
}

/* Card Styling */
.egk-app .identity-card,
.egk-app .location-card,
.egk-app .preferences-card,
.egk-app .details-card,
.egk-app .help-card,
.egk-app .entity-card {
 transition: all 0.3s ease;
 border:1px solid rgba(0,0,0,0.05);
}

.egk-app .identity-card:hover,
.egk-app .location-card:hover,
.egk-app .preferences-card:hover,
.egk-app .details-card:hover,
.egk-app .entity-card:hover {
 box-shadow: 0 8px 24px rgba(0,0,0,0.12) !important;
 transform: translateY(-2px);
}

/* Modern Field Styling */
.egk-app .modern-field {
 transition: all 0.2s ease;
}

.egk-app .modern-field:focus-within {
 transform: scale(1.01);
}

/* Modern Switch Styling */
.egk-app .modern-switch .mud-switch-label {
 font-weight:500;
 font-size:0.875rem;
}

/* Partner rich edit form (customers / vendors tabs) */
.egk-app .partner-rich-form {
 width: 100%;
}

.egk-app .partner-smart-strip {
 border-radius: 10px;
 border-color: rgba(var(--mud-palette-lines-default), 0.75);
 background: linear-gradient(180deg, rgba(var(--mud-palette-primary-rgb), 0.025) 0%, rgba(var(--mud-palette-surface-rgb), 0.4) 100%);
}

.egk-app .partner-essentials-shell {
 border-radius: 10px;
 border-color: rgba(var(--mud-palette-lines-default), 0.75);
 background: linear-gradient(180deg, rgba(var(--mud-palette-primary-rgb), 0.02) 0%, rgba(var(--mud-palette-surface-rgb), 0.35) 100%);
}

.egk-app .partner-nested-tabs .mud-tabs-toolbar {
 min-height: 2.25rem;
 padding: 0 0.25rem;
 position: sticky;
 top: 0;
 z-index: 2;
 background: var(--mud-palette-surface);
 border-bottom: 1px solid rgba(var(--mud-palette-lines-default), 0.6);
}

.egk-app .partner-nested-tabs .mud-tab {
 min-height: 2.25rem;
 padding: 0.35rem 0.65rem;
 font-size: 0.8125rem;
 text-transform: none;
 border-radius: 8px 8px 0 0;
 margin: 0 0.12rem;
}

.egk-app .partner-nested-tabs .mud-tab.mud-tab-active {
 background: rgba(var(--mud-palette-primary-rgb), 0.08);
 color: var(--mud-palette-primary);
 font-weight: 600;
}

.egk-app .partner-nested-tabs .mud-tabs-slider {
 height: 3px;
 border-radius: 999px;
}

.egk-app .partner-tab-panel {
 padding: 0.45rem 0.15rem 0.2rem;
 max-height: min(64vh, 620px);
 overflow-y: auto;
 overflow-x: hidden;
}

.egk-app .partner-field-grid > .mud-grid-item {
 padding-top: 2px !important;
 padding-bottom: 2px !important;
}

.egk-app .partner-lookup-row,
.egk-app .partner-gl-account-lookup-row {
 display: flex;
 flex-wrap: nowrap;
 align-items: flex-end;
 gap: 0.25rem;
 width: 100%;
}

.egk-app .partner-lookup-row .partner-lookup-field,
.egk-app .partner-gl-account-lookup-row .partner-gl-account-field {
 flex: 1 1 auto;
 min-width: 0;
}

.egk-app .partner-lookup-btn,
.egk-app .partner-gl-account-lookup-btn {
 flex: 0 0 auto;
 margin-bottom: 1.05rem;
 min-width: 2rem;
 min-height: 2rem;
 padding: 4px;
}

.egk-app .partner-section-card {
 border-radius: 10px;
 border-color: rgba(var(--mud-palette-lines-default), 0.75);
 background: linear-gradient(180deg, rgba(var(--mud-palette-primary-rgb), 0.02) 0%, rgba(var(--mud-palette-surface-rgb), 0.35) 100%);
 transition: box-shadow 0.18s ease, border-color 0.18s ease;
}

.egk-app .partner-section-card:hover {
 border-color: rgba(var(--mud-palette-primary-rgb), 0.35);
 box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
}

.egk-app .partner-section-head {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 0.35rem;
 margin-bottom: 0.35rem;
 padding-bottom: 0.35rem;
 border-bottom: 1px solid rgba(var(--mud-palette-lines-default), 0.65);
}

.egk-app .partner-section-hint {
 display: block;
 margin: -0.15rem 0 0.35rem;
 line-height: 1.35;
}

.egk-app .partner-section-grid > .mud-grid-item {
 padding-top: 2px !important;
 padding-bottom: 2px !important;
}

.egk-app .partner-switch-row .mud-switch {
 margin: 0;
}

.egk-app .partner-status-strip {
 border-color: rgba(var(--mud-palette-lines-default), 0.75);
 background: linear-gradient(180deg, rgba(var(--mud-palette-primary-rgb), 0.02) 0%, rgba(var(--mud-palette-surface-rgb), 0.45) 100%);
}

.egk-app .partner-kpi-card .partner-kpi-field input {
 font-variant-numeric: tabular-nums;
 font-weight: 500;
}

.egk-app .partner-rich-form .modern-field .mud-input-outlined {
 border-radius: 8px;
}

.egk-app .partner-rich-form .mud-input-control {
 margin-top: 0 !important;
 margin-bottom: 0 !important;
}

.egk-app .partner-rich-form .mud-input-label {
 font-size: 0.76rem;
 font-weight: 500;
 letter-spacing: 0.01em;
 text-transform: none;
}

.egk-app .partner-rich-form .mud-input-slot {
 min-height: 2.1rem;
}

.egk-app .partner-inline-numeric {
 max-width: 9rem;
}

.egk-app .partner-contacts-editor .contact-list-card,
.egk-app .partner-notes-editor .note-list-card {
 border-radius: 10px;
 margin-bottom: 0.35rem;
}

.egk-app .partner-contacts-editor .contact-list-card:last-child,
.egk-app .partner-notes-editor .note-list-card:last-child {
 margin-bottom: 0;
}

.egk-app .partner-notes-editor.is-editing .note-list-card.is-muted,
.egk-app .partner-contacts-editor.is-editing .contact-list-card.is-muted {
 opacity: 0.55;
 pointer-events: none;
}

.egk-app .partner-tab-toolbar {
 width: 100%;
 margin-bottom: 0.2rem;
}

.egk-app .partner-tab-embed {
 padding: 0.15rem 0.1rem;
 border: 1px solid rgba(var(--mud-palette-lines-default), 0.55);
 border-radius: 10px;
 background: rgba(var(--mud-palette-surface-rgb), 0.35);
}

.egk-app .partner-tab-embed .mud-button-root {
 border-radius: 999px;
}

.egk-app .partner-rich-form .mud-chip {
 border-radius: 999px;
}

.egk-app .partner-rich-form .mud-chip.mud-chip-size-small {
 font-weight: 500;
}

.egk-app .partner-essentials-hint {
 line-height: 1.35;
 max-width: 52rem;
}

.egk-app .partner-essentials-grid .mud-expansion-panels {
 border: 1px solid rgba(var(--mud-palette-lines-default), 0.65);
 border-radius: 10px;
}

/* Lookup Button */
.egk-app .lookup-btn {
 transition: all 0.2s ease;
}

.egk-app .lookup-btn:hover:not(:disabled) {
 transform: scale(1.04);
 box-shadow: 0 4px 12px rgba(var(--mud-palette-primary-rgb),0.3);
}

/* Guidance Panel */
.egk-app .guidance-panel {
 border-radius:8px;
 overflow: hidden;
}

.egk-app .guidance-panel .mud-expand-panel-header {
 background: linear-gradient(135deg, rgba(var(--mud-palette-primary-rgb),0.05)0%, rgba(var(--mud-palette-secondary-rgb),0.05)100%);
 padding:1rem;
}

/* Help Section */
.egk-app .help-section {
 background: linear-gradient(135deg, rgba(var(--mud-palette-primary-rgb),0.02)0%, rgba(var(--mud-palette-secondary-rgb),0.02)100%);
 border:1px solid rgba(0,0,0,0.05);
}

.egk-app .help-card .mud-card-header {
 background: linear-gradient(135deg, rgba(var(--mud-palette-primary-rgb),0.05)0%, rgba(var(--mud-palette-secondary-rgb),0.05)100%);
}

/* Responsive Adjustments */
@media (max-width:960px) {
 .egk-app .contacts-page-wrapper,
 .egk-app .entity-page-wrapper {
 padding:0;
 }

 .egk-app .identity-card,
 .egk-app .location-card,
 .egk-app .preferences-card,
 .egk-app .details-card,
 .egk-app .entity-card {
 margin-bottom:1rem;
 }

 .egk-app .mud-grid-item {
 padding:8px !important;
 }

 .egk-app .partner-tab-panel {
 max-height: min(66vh, 680px);
 }
}

@media (max-width:600px) {
 .egk-app .help-card .mud-list-item {
 font-size:0.875rem;
 }

 .egk-app .modern-switch .mud-switch-label {
 font-size:0.8rem;
 }

 .egk-app .lookup-btn {
 padding:4px;
 }
}

/* Smooth Scrolling */
.egk-app .contacts-page-wrapper,
.egk-app .entity-page-wrapper {
 scroll-behavior: smooth;
}

/* Focus States */
.egk-app .modern-field:focus-within .mud-input-adornment {
 color: var(--mud-palette-primary);
}

/* Animation for Cards */
@keyframes fadeInUp {
 from {
 opacity:0;
 transform: translateY(20px);
 }
 to {
 opacity:1;
 transform: translateY(0);
 }
}

.egk-app .identity-card,
.egk-app .location-card,
.egk-app .preferences-card,
.egk-app .details-card,
.egk-app .entity-card {
 animation: fadeInUp 0.4s ease-out;
}

.egk-app .location-card { animation-delay:0.1s; }
.egk-app .preferences-card { animation-delay:0.2s; }
.egk-app .details-card { animation-delay:0.3s; }

/* High Contrast Support */
@media (prefers-contrast: high) {
 .egk-app .identity-card,
 .egk-app .location-card,
 .egk-app .preferences-card,
 .egk-app .details-card,
 .egk-app .help-card,
 .egk-app .entity-card {
 border:2px solid var(--mud-palette-text-primary);
 }
}

/* Partner contacts tab */
.egk-app .partner-contacts-editor.is-editing .contact-list-card.is-muted {
 opacity: 0.55;
 pointer-events: none;
}
.egk-app .partner-contacts-editor .contact-list-card {
 transition: opacity 0.15s ease;
}
.egk-app .partner-contacts-editor .contact-summary-line {
 line-height: 1.35;
}
.egk-app .partner-contact-editor .partner-type-toggle {
 gap: 0.25rem;
}
.egk-app .partner-contact-editor .lookup-field-grid {
 align-items: flex-end;
}
.egk-app .partner-contact-editor .partner-lookup-outlined.transparent-autocomplete .mud-input {
 background-color: var(--mud-palette-surface);
}

/* Reduced Motion Support */
@media (prefers-reduced-motion: reduce) {
 .egk-app .identity-card,
 .egk-app .location-card,
 .egk-app .preferences-card,
 .egk-app .details-card,
 .egk-app .lookup-btn,
 .egk-app .modern-field,
 .egk-app .entity-card {
 transition: none;
 animation: none;
 }

 .egk-app .identity-card:hover,
 .egk-app .location-card:hover,
 .egk-app .preferences-card:hover,
 .egk-app .details-card:hover,
 .egk-app .entity-card:hover {
 transform: none;
 }
}