/* ============================================================
   Brand Design Tokens – "Elegant Charter Black"
   (Quelle: brand-guidelines-saas.md, Section 10)
   ============================================================ */

:root {
  /* --- Charcoal Navy --- */
  --charcoal-50: #ECECEE;
  --charcoal-100: #CFD1D4;
  --charcoal-200: #9FA2AA;
  --charcoal-300: #6F747F;
  --charcoal-400: #3F4555;
  --charcoal-500: #0F172A;
  --charcoal-600: #0D1425;
  --charcoal-700: #0B1120;
  --charcoal-800: #090E1A;
  --charcoal-900: #070B14;

  /* --- Steel Blue --- */
  --steel-50: #EFF1F3;
  --steel-100: #D6DCE1;
  --steel-200: #ADB8C3;
  --steel-300: #8595A4;
  --steel-400: #5C7186;
  --steel-500: #334E68;
  --steel-600: #2D455C;
  --steel-700: #273B4F;
  --steel-800: #203040;
  --steel-900: #182532;

  /* --- Teal Accent --- */
  --teal-50: #ECF9F8;
  --teal-100: #D0F1ED;
  --teal-200: #A1E3DB;
  --teal-300: #72D4CA;
  --teal-400: #43C6B8;
  --teal-500: #14B8A6;
  --teal-600: #12A292;
  --teal-700: #0F8C7E;
  --teal-800: #0C7267;
  --teal-900: #0A5850;

  /* --- Champagne --- */
  --champagne-50: #FCFAF7;
  --champagne-100: #F7F3EB;
  --champagne-200: #EFE7D7;
  --champagne-300: #E6DAC2;
  --champagne-400: #DECEAE;
  --champagne-500: #D6C29A;
  --champagne-600: #BCAB88;
  --champagne-700: #A39375;
  --champagne-800: #85785F;
  --champagne-900: #675D4A;

  /* --- Pearl --- */
  --pearl-50: #FEFEFE;
  --pearl-100: #FEFDFC;
  --pearl-200: #FCFBF9;
  --pearl-300: #FBFAF7;
  --pearl-400: #F9F8F4;
  --pearl-500: #F8F6F1;
  --pearl-600: #DAD8D4;
  --pearl-700: #BCBBB7;
  --pearl-800: #9A9995;
  --pearl-900: #777674;

  /* --- Semantic aliases (Brand Guidelines: Elegant Charter Black) --- */
  --bg: var(--pearl-500);                /* #F8F6F1 — page/sidebar background */
  --surface: var(--pearl-50);            /* #FEFEFE — card surface */
  --expanded-bg: var(--steel-50);        /* #EFF1F3 — accordion expanded */
  --hover-bg: var(--steel-50);           /* #EFF1F3 — hover background */
  --active-bg: var(--teal-50);           /* #ECF9F8 — active/selected bg */
  --dark-section: var(--charcoal-500);   /* #0F172A — dark section */

  /* Sidebar & Menu */
  --sidebar-bg: #FEFEFE;         /* surface */
  --sidebar-divider: #D6DCE1;    /* light border */
  --menu-text: #0F172A;          /* text primary */

  --menu-hover-bg: #F3F5F7;
  --menu-hover-text: #0F172A;

  --menu-parent-open-bg: #EFF1F3;
  --menu-parent-open-text: #0F172A;

  --menu-active-bg: #ECF9F8;     /* teal-50 */
  --menu-active-text: #0F8C7E;   /* teal-700 */

  --text-primary: var(--charcoal-500);   /* #0F172A */
  --text-secondary: var(--steel-500);    /* #334E68 */
  --text-muted: var(--charcoal-300);     /* #6F747F */
  --text-on-dark: var(--pearl-500);      /* #F8F6F1 */

  --border-light: var(--steel-100);      /* #D6DCE1 */
  --border-default: var(--steel-200);    /* #ADB8C3 */
  --border-dark: var(--charcoal-400);    /* #3F4555 */

  /* Primary = Teal Accent (CTA / interactive) */
  --primary: var(--teal-500);            /* #14B8A6 */
  --primary-hover: var(--teal-600);      /* #12A292 */
  --primary-active: var(--teal-700);     /* #0F8C7E */
  --primary-text: var(--charcoal-500);   /* #0F172A — dark text on teal (brand rule) */

  /* Secondary = Steel Blue (structural) */
  --secondary: var(--steel-500);         /* #334E68 */
  --secondary-hover: var(--steel-600);   /* #2D455C */
  --secondary-active: var(--steel-700);  /* #273B4F */
  --secondary-text: var(--pearl-500);    /* #F8F6F1 */

  /* Premium = Champagne (accent) */
  --premium: var(--champagne-500);       /* #D6C29A */
  --premium-text: var(--charcoal-500);   /* #0F172A */

  /* --- Bootstrap 5 overrides --- */
  --bs-body-bg: #fff;
  --bs-body-color: var(--text-primary);
  --bs-link-color: var(--primary);
  --bs-link-hover-color: var(--primary-hover);
  --bs-border-color: var(--border-light);
}

/* ============================================================
   Global base styles
   ============================================================ */

html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    background-color: #fff;
    color: var(--text-primary);
}

a, .btn-link {
    color: var(--primary);
}

hr {
    border-color: var(--border-light);
}

/* ============================================================
   Button system (Section 6)
   ============================================================ */

/* --- Primary Button: Teal bg, dark text --- */
.btn-primary {
    color: var(--primary-text);
    background-color: var(--primary);
    border-color: var(--primary-hover);
}

.btn-primary:hover {
    background-color: var(--primary-hover);
    border-color: var(--primary-active);
    color: var(--primary-text);
}

.btn-primary:active {
    background-color: var(--primary-active);
    color: var(--primary-text);
}

/* --- Secondary Button: Steel Blue bg, light text --- */
.btn-secondary {
    background-color: var(--secondary);
    color: var(--secondary-text);
    border-color: var(--secondary-hover);
}

.btn-secondary:hover {
    background-color: var(--secondary-hover);
    color: var(--secondary-text);
}

/* --- Ghost / Outline Button (Section 6) --- */
.btn-outline-secondary {
    border-color: var(--steel-500);
    color: var(--steel-500);
}

.btn-outline-secondary:hover {
    background-color: var(--steel-50);
    color: var(--steel-500);
    border-color: var(--steel-500);
}

/* Focus ring */
.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem rgba(20, 184, 166, 0.4);
}

/* ============================================================
   Remove / Delete action button  (global utility)
   ============================================================ */

.btn-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 6px;
    background: transparent;
    color: #8595A4;
    cursor: pointer;
    font-size: 12px;
    line-height: 1;
    transition: color 0.15s, background 0.15s, border-color 0.15s;
}

.btn-remove:hover {
    color: #C24141;
    background: #FBEAEA;
    border-color: #F2C7C7;
}

/* ============================================================
   Content & layout
   ============================================================ */

.content {
    padding-top: 1.1rem;
}

h1:focus {
    outline: none;
}

/* ============================================================
   Form validation
   ============================================================ */

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

/* ============================================================
   Error boundary
   ============================================================ */

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

.blazor-error-boundary::after {
    content: "An error has occurred."
}

/* ============================================================
   Utility overrides
   ============================================================ */

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}


p {
    margin-bottom: 2px;
}

.responsive-textbox-field {
    width: 290px;
    max-width: 100%;
}

@media (max-width: 576px) {
    .responsive-textbox-field {
        width: 100%;
    }
}
