/*
 * SchaffiX - Gemeinsame Basisstile
 * Wird in allen Bereichen (public/admin/user) geladen.
 */

:root {
    --primary-color: #2563eb;
    --primary-dark: #1d4ed8;
    --theme-primary: #0f2742;
    --theme-accent: #f59e0b;
    --surface-0: #ffffff;
    --surface-1: #f7faff;
    --surface-2: #eef3fa;
    --text-strong: #12263a;
    --text-soft: #5d738b;
    --line-soft: #dbe5f2;
    --radius-sm: 0.45rem;
    --radius-md: 0.65rem;
    --radius-lg: 0.9rem;
}

* {
    box-sizing: border-box;
}

html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

body {
    font-family: "Inter", "Segoe UI", Arial, sans-serif;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.btn {
    border-radius: var(--radius-sm);
    font-weight: 500;
    transition: all .2s ease;
}

.btn-accent {
    color: #171717;
    border-color: transparent;
    background: linear-gradient(135deg, var(--theme-accent), #ffbe4a);
    box-shadow: 0 10px 24px rgba(245, 158, 11, .22);
}

.btn-accent:hover {
    transform: translateY(-1px);
    color: #141414;
    background: linear-gradient(135deg, #ffc14f, #ff9f1f);
}

.content-card-light {
    background: #ffffff !important;
    border: 1px solid #dbe5f2 !important;
    color: #1a2f46 !important;
    border-radius: var(--radius-lg);
    box-shadow: 0 10px 24px rgba(13, 38, 69, .08) !important;
}

.public-nav-avatar-wrap {
    flex-shrink: 0;
}

.public-nav-avatar-img {
    width: 36px;
    height: 36px;
    object-fit: cover;
}

.public-nav-avatar-fallback {
    width: 36px;
    height: 36px;
    font-size: .72rem;
    background: var(--theme-primary);
}

.public-user-dropdown {
    min-width: 220px;
    border-radius: .65rem;
    padding: .35rem;
}

.public-user-dropdown .dropdown-item {
    border-radius: .4rem;
    padding: .38rem .65rem;
}

.skip-link {
    position: absolute;
    left: .75rem;
    top: .65rem;
    z-index: 1200;
    background: var(--theme-primary);
    color: #fff;
    border-radius: .45rem;
    padding: .35rem .55rem;
    text-decoration: none;
    transform: translateY(-120%);
    transition: transform .2s ease;
}

.skip-link:focus {
    transform: translateY(0);
    outline: 2px solid #f3a71a;
    outline-offset: 2px;
}

.system-message-modal .modal-dialog {
    max-width: min(600px, calc(100% - 1.2rem));
}

.system-message-modal .modal-content {
    border: 1px solid #d2e0f2;
    border-radius: .85rem;
    box-shadow: 0 14px 34px rgba(9, 33, 58, .18);
    overflow: hidden;
}

.system-message-modal .modal-header {
    background: linear-gradient(135deg, #e8f0ff, #f5f8ff);
    border-bottom: 1px solid #dbe5f2;
    color: #12263a;
    padding: .85rem 1rem;
}

.system-message-modal .modal-title {
    font-weight: 700;
    letter-spacing: -.01em;
}

.system-modal-success .modal-header {
    background: linear-gradient(135deg, #e8f9f0, #f4fbf7);
    border-bottom-color: #cae8d8;
}

.system-modal-danger .modal-header {
    background: linear-gradient(135deg, #fdebec, #fdf6f6);
    border-bottom-color: #f2c7cb;
}

.system-modal-warning .modal-header {
    background: linear-gradient(135deg, #fff7e5, #fffaf0);
    border-bottom-color: #f5dfb3;
}

.system-modal-info .modal-header {
    background: linear-gradient(135deg, #e8f0ff, #f5f8ff);
    border-bottom-color: #d0deef;
}

.system-message-modal .modal-body {
    padding: .9rem 1rem;
}

.system-message-list {
    display: grid;
    gap: .55rem;
}

.system-message-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .65rem;
    border: 1px solid #dbe5f2;
    border-radius: .65rem;
    background: #f9fbff;
    padding: .65rem .75rem;
}

.system-message-item-icon {
    line-height: 1;
    font-size: 1rem;
    padding-top: .1rem;
}

.system-message-item-title {
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
    color: #2e4866;
    margin-bottom: .15rem;
}

.system-message-item-text {
    color: #16324d;
    font-size: .92rem;
    line-height: 1.4;
}

.system-message-item-success {
    border-color: #cfe9da;
    background: #f4fbf7;
}

.system-message-item-success .system-message-item-icon {
    color: #198754;
}

.system-message-item-danger {
    border-color: #f2cbd0;
    background: #fef6f7;
}

.system-message-item-danger .system-message-item-icon {
    color: #dc3545;
}

.system-message-item-warning {
    border-color: #f5e0b6;
    background: #fffaf0;
}

.system-message-item-warning .system-message-item-icon {
    color: #b7791f;
}

.system-message-item-info {
    border-color: #cfdef0;
    background: #f5f8ff;
}

.system-message-item-info .system-message-item-icon {
    color: #0d6efd;
}

.system-message-modal .modal-footer {
    border-top: 1px solid #dbe5f2;
    background: #f8fbff;
    padding: .65rem 1rem .85rem;
}
