:root {
    --font-body: "Inter", "Segoe UI", sans-serif;
    --font-display: "Manrope", "Inter", "Segoe UI", sans-serif;
    --background: #f6f7fb;
    --surface: #ffffff;
    --surface-soft: #f9f9fc;
    --surface-hover: #f4f4fa;
    --text: #1b1d2a;
    --text-secondary: #696b78;
    --text-muted: #9294a1;
    --primary: #605ee8;
    --primary-hover: #514fd5;
    --primary-soft: #efefff;
    --primary-border: #ddddff;
    --success: #16835c;
    --success-soft: #ecf8f3;
    --danger: #c13d50;
    --danger-soft: #fff0f2;
    --border: #e7e7ee;
    --border-strong: #d9d9e3;
    --shadow-xs: 0 1px 2px rgba(24, 24, 40, 0.03);
    --shadow-sm: 0 4px 18px rgba(35, 35, 58, 0.055);
    --shadow-md: 0 18px 48px rgba(35, 35, 58, 0.09);
    --shadow-lg: 0 28px 80px rgba(35, 35, 58, 0.14);
}

html,
body {
    min-height: 100%;
    margin: 0;
    background: var(--background);
    color: var(--text);
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 400;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--text);
    font-family: var(--font-display);
    font-weight: 700;
    letter-spacing: -0.025em;
}

a {
    color: var(--primary);
}

button,
input,
select,
textarea {
    font: inherit;
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

    button:focus-visible,
    a:focus-visible,
    input:focus-visible,
    select:focus-visible,
    textarea:focus-visible {
        outline: 3px solid rgba(96, 94, 232, 0.2);
        outline-offset: 2px;
    }

::selection {
    background: var(--primary-soft);
    color: var(--primary-hover);
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid var(--success);
}

.invalid {
    outline: 1px solid var(--danger);
}

.validation-message {
    color: var(--danger);
    font-size: 0.85rem;
    font-weight: 500;
}

.blazor-error-boundary {
    padding: 1rem 1rem 1rem 3.7rem;
    background: var(--danger);
    color: white;
}

    .blazor-error-boundary::after {
        content: "Wystąpił błąd aplikacji.";
    }

.darker-border-checkbox.form-check-input {
    border-color: var(--border-strong);
}

.form-floating > .form-control-plaintext::placeholder,
.form-floating > .form-control::placeholder {
    color: var(--text-muted);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder,
.form-floating > .form-control:focus::placeholder {
    text-align: start;
}
