/* ИИ: порядок <link> — docs/css-cascade-order.md · ур.4 компонент: cards. */
/* ==========================================================================
 * CARDS-UNI — карточки, section-shell и page containers
 * Техническая логика для ИИ-ассистента:
 * - хранить здесь card/panel/container оболочки и визуальные page sections;
 * - button/form/table responsive-правки отправлять в профильные модули;
 * - не создавать новый `student.css`: новые стили раскладывать по ownership-слоям.
 * ========================================================================== */

/* === Student View Page Styles (step_add_newstudent_10_view.php) === */.student-card
{
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
    padding: var(--student-card-padding);
    margin-bottom: var(--student-card-margin-bottom);
}.student-nostrification-card
{
    position: relative;
    overflow: hidden;
    padding: clamp(1rem, 2vw, 1.5rem);
    border: 1px solid #dbe4ee;
    border-radius: 18px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08);
}.student-nostrification-card::before
{
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    background: linear-gradient(90deg, #0284c7 0%, #2563eb 100%);
}.student-nostrification-card--empty
{
    text-align: left;
}.card-title
{
    font-size: var(--card-title-font-size);
    font-weight: bold;
    margin-bottom: var(--card-title-margin-bottom);
    color: #2c3e50;
    border-bottom: 3px solid #3498db;
    padding-bottom: var(--card-title-padding-bottom);
}/* ============================================================================ *//* === 🎨 УНИВЕРСАЛЬНЫЕ КОМПОНЕНТЫ (используются в разных частях проекта) === *//* ============================================================================ *//* Контейнеры */.sys-container-card
{
    max-width: var(--sys-container-max-width);
    margin: var(--sys-container-margin);
    padding: var(--sys-container-padding);
    background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
    border-radius: 12px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}.sys-container-card h2
{
    color: #2c3e50;
    text-align: center;
    margin-bottom: var(--sys-container-title-margin-bottom);
    font-size: var(--sys-container-title-font-size);
    font-weight: 600;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
}/* Общий класс для всех карточек заказов */.admin-apostille-order-card
{
    transition: all 0.3s ease;
}/* === css_split_uni.py append @ 2026-04-03 10:10:51 === */.student-info-card
{
    background: var(--main-white);
    border-radius: var(--main-space-sm);
    padding: var(--main-space-lg);
    margin: var(--main-space-lg-minus) 0;
    border: var(--main-space-xxs) solid #e0e0e0;
    box-shadow: 0 var(--main-space-xxs) var(--main-space-sm) rgba(0,0,0,0.1);
}/* Уведомление об успехе (градиент) *//* === css_split_uni.py append @ 2026-04-03 10:11:18 === */.student-info-card
{
    background: var(--main-white);
    border-radius: var(--main-space-sm);
    padding: var(--main-space-lg);
    margin: var(--main-space-lg-minus) 0;
    border: var(--main-space-xxs) solid #e0e0e0;
    box-shadow: 0 var(--main-space-xxs) var(--main-space-sm) rgba(0,0,0,0.1);
}/* Уведомление об успехе (градиент) *//* === teams styles merged into *-uni @ 2026-04-03 10:23:03 === *//* Карточки */.teams-student-info-card
{
    background: white;
    border-radius: var(--teams-radius-lg);
    padding: var(--teams-space-lg);
    margin: var(--teams-space-md) 0;
    box-shadow: var(--teams-shadow-md);
    transition: all 0.3s ease;
}.teams-student-info-card:hover
{
    transform: translateY(-2px);
    box-shadow: var(--teams-shadow-lg);
}.teams-student-card
{
            width: 100%;
            max-width: none;
            box-sizing: border-box;
            padding: var(--teams-student-card-padding);
            display: flex;
            flex-direction: column;
            align-self: stretch;
            gap: var(--teams-student-card-gap);
            background: white;
            border-radius: 12px;
            border: 1px solid rgba(0, 0, 0, 0.08);
        }/* Заголовок карточки */.teams-card-header
{
            width: 100%;
            box-sizing: border-box;
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            flex-wrap: nowrap;
            text-align: left;
            gap: var(--teams-card-header-gap);
        }/* Контент карточки */.teams-card-content
{
            width: 100%;
            box-sizing: border-box;
            display: flex;
            justify-content: flex-start;
            align-items: flex-start;
            flex-wrap: wrap;
            text-align: left;
            gap: var(--teams-card-content-gap);
            padding-top: var(--teams-card-content-padding-top);
            border-top: 1px solid rgba(0, 0, 0, 0.06);
        }.teams-card-side-controls
{
            display: flex;
            align-items: flex-start;
            justify-content: flex-end;
            flex-wrap: nowrap;
            column-gap: 10px;
            row-gap: 8px;
            margin-top: 0;
            margin-left: auto;
            align-self: flex-start;
            flex: 0 0 auto;
        }/* Действия карточки */.teams-card-actions
{
            display: flex;
            align-items: flex-start;
            justify-content: flex-end;
            gap: var(--teams-card-actions-gap);
            margin-top: 0;
            margin-left: 2px;
            flex-shrink: 0;
        }/* === css_split_uni.py append @ 2026-04-03 10:24:52 === */.card::before
{
    content: ""; position: absolute; background: var(--primary-gradient); transition: left var(--transition-base);
}.card-header
{
    position: relative;
}.card-header::before
{
    content: ""; position: absolute; background: var(--primary-gradient); border-radius: var(--radius-full);
}.stat-card
{
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%); color: var(--text-white); border-radius: var(--radius-md); text-align: center; position: relative; overflow: hidden; transition: all var(--transition-base);
}.stat-card::before
{
    content: ""; position: absolute; background: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.05) 100%); pointer-events: none;
}.stat-card--primary
{
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}.stat-card--accent-1
{
    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
}.stat-card--accent-2
{
    background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
}.stat-card--accent-3
{
    background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%);
}.stat-card--accent-4
{
    background: linear-gradient(135deg, #fa709a 0%, #fee140 100%);
}.summary-cards
{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(var(--summary-cards-min-width), 1fr));
    gap: var(--summary-cards-gap);
}.summary-card
{
    background: var(--primary-gradient); color: var(--text-white); border-radius: var(--radius-lg); text-align: center; transition: transform var(--transition-base), box-shadow var(--transition-base); padding: var(--summary-card-padding);
}.summary-card.green
{
    background: linear-gradient(135deg, var(--success) 0%, var(--accent-green) 100%);
}.summary-card.orange
{
    background: linear-gradient(135deg, var(--warning) 0%, var(--accent-yellow) 100%);
}.summary-card.red
{
    background: linear-gradient(135deg, var(--danger) 0%, #e91e63 100%);
}.slot-card
{
    background: var(--bg-primary); border-radius: var(--radius-lg); transition: all var(--transition-base);
}.slot-card.free
{
    border-color: var(--success); background: linear-gradient(135deg, var(--success-light) 0%, #e8f5e9 100%);
}.slot-card.partially-free
{
    border-color: var(--warning); background: linear-gradient(135deg, var(--warning-light) 0%, #ffe0b2 100%);
}.slot-card.busy
{
    border-color: var(--danger); background: linear-gradient(135deg, var(--danger-light) 0%, #ffcdd2 100%);
}.stat-card--simple
{
    background: var(--bg-primary); color: var(--text-dark); border-radius: var(--radius-md); text-align: center;
}.stat-card--simple::before
{
    display: none;
}#mail-settings.site-settings-mail .mail-config-subpanel[hidden], #mail-settings.site-settings-mail .mail-tab-panel[hidden]
{
    display: none !important;
}#mail-settings.site-settings-mail .mail-cred-role-card
{
    border-radius: var(--radius-md); background: #fafafa;
}#mail-settings.site-settings-mail .mail-cred-role-card__link
{
    font-size: var(--text-sm);
}.curator-student-info-card
{
    background: linear-gradient(135deg, #fff, #fafafa);
}/* === source: cards.css === *//**
 * ════════════════════════════════════════════════════════════════════════════════
 * 📁 КАРТОЧКИ
 * ════════════════════════════════════════════════════════════════════════════════
 * 
 * Этот файл содержит все стили карточек:
 * - Базовые карточки (.card, .card-header, .card-body, .card-footer)
 * - Grid для карточек (.card-grid)
 * - Специфичные стили для карточек апостиля
 * - Кнопки действий в карточках
 * 
 * ⚠️ ВАЖНО: Не содержит медиа-запросов (они в отдельных файлах)
 *
 * Рефакторинг: общие отступы/тени — токены из base.css; дубли с common.css согласовывать
 * по мере миграции (базовый .card здесь).
 *//* ═══════════════════════════════════════════════════════════════════════════════
 * КАРТОЧКИ
 * ═══════════════════════════════════════════════════════════════════════════════ */.card
{
    background-color: var(--bg-primary);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    padding: 0;
    margin-bottom: var(--space-6);
    border: 1px solid var(--border);
    overflow: hidden;
    position: relative;
    transition: all var(--transition-base);
    animation: fadeInUp 0.4s ease-out;
}.card:hover
{
    box-shadow: var(--shadow-xl);
    transform: translateY(-4px);
}.card-header
{
    padding: var(--card-header-padding-y) var(--card-header-padding-x);
    background: linear-gradient(135deg, var(--bg-secondary) 0%, var(--bg-primary) 100%);
    border-bottom: 2px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
}.card-header-actions
{
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
}.card-header::before
{
    content: "";
    width: 4px;
    height: 24px;
    background: var(--primary-gradient);
    border-radius: var(--radius-full);
    flex-shrink: 0;
}.card-title
{
    margin: 0;
    font-size: var(--card-title-font-size);
    font-weight: 600;
    color: var(--text-dark);
    letter-spacing: -0.01em;
    display: flex;
    align-items: center;
    gap: var(--space-2);
}.card-title::before
{
    content: "";
    display: inline-block;
    width: 6px;
    height: 6px;
    background: var(--primary);
    border-radius: 50%;
    opacity: 0.6;
}.card-body
{
    padding: var(--card-body-padding);
    width: 100%;
    box-sizing: border-box;
    margin: 0;
}.card-footer
{
    padding-top: var(--space-md);
    border-top: 1px solid var(--border-light);
}/* ═══════════════════════════════════════════════════════════════════════════════
 * GRID ДЛЯ КАРТОЧЕК
 * ═══════════════════════════════════════════════════════════════════════════════ */.card-grid
{
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(var(--card-grid-min-width), 1fr));
    gap: var(--space-4);
    margin-bottom: var(--space-6);
}/* ═══════════════════════════════════════════════════════════════════════════════
 * СТИЛИ ДЛЯ ВНУТРЕННИХ ЭЛЕМЕНТОВ КАРТОЧЕК АПОСТИЛЯ
 * ═══════════════════════════════════════════════════════════════════════════════ */.card .admin-apostille-request-student, .card .admin-apostille-order-student
{
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: var(--space-3);
    font-size: var(--text-base);
    word-wrap: break-word;
    overflow-wrap: break-word;
}.card .admin-apostille-request-student strong, .card .admin-apostille-order-student strong
{
    font-weight: 600;
    color: var(--text-dark);
    flex: 1;
    min-width: 0;
}.card .admin-apostille-request-curator, .card .admin-apostille-order-curator
{
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: var(--space-3);
    font-size: var(--text-sm);
    color: var(--text-medium);
    word-wrap: break-word;
    overflow-wrap: break-word;
}.card .admin-apostille-request-description
{
    display: flex;
    align-items: flex-start;
    gap: var(--space-2);
    margin-bottom: var(--space-3);
    font-size: var(--text-sm);
    color: var(--text-medium);
    word-wrap: break-word;
    overflow-wrap: break-word;
}.card .admin-apostille-request-description span
{
    flex: 1;
    min-width: 0;
}.card .admin-apostille-request-date
{
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: var(--space-3);
    font-size: var(--text-xs);
    color: var(--text-light);
}.card .admin-apostille-status-with-view
{
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: var(--space-3);
    flex-wrap: wrap;
}.card .admin-apostille-request-actions
{
    display: flex;
    gap: var(--space-2);
    flex-wrap: wrap;
    margin-top: var(--space-3);
}.sync-progress-panel
{
    padding: var(--space-5);
    background: var(--bg-secondary);
    border-radius: var(--radius-lg);
    margin-top: var(--space-5);
}/* ═══════════════════════════════════════════════════════════════
   DOCUMENT CARD — карточки документов для перевода
   Используется: student_document_translation_functions.php
   ═══════════════════════════════════════════════════════════════ */.document-card
{
    transition: var(--transition-slow);
}.document-card:hover
{
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}/* Карточка студента (restore_student) */.student-card
{
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: var(--student-card-padding);
    background: var(--bg-secondary);
    cursor: pointer;
    transition: var(--transition-slow);
}.student-card:hover
{
    background: var(--info-light);
    border-color: var(--primary);
    box-shadow: 0 2px 8px color-mix(in srgb, var(--primary) 25%, transparent);
}.student-card.selected
{
    background: var(--info-light);
    border-color: var(--primary);
    border-width: 2px;
}.student-card h3
{
    margin: 0 0 var(--student-card-heading-margin-bottom) 0;
    color: var(--text-dark);
}.apostille-curator-filter-panel
{
    border: 1px solid var(--border);
}.pending-request-card
{
    background: var(--bg-primary);
    border-radius: 12px;
    padding: var(--pending-request-card-padding);
    box-shadow: var(--shadow-sm);
    transition: all 0.3s ease;
    border: 2px solid transparent;
}.pending-request-card:hover
{
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
    border-color: var(--warning);
}/* ═══════════════════════════════════════════════════════════════════════════
 * OTP PANEL — исключение: плотная сетка цифр и свои @media ниже; не смешивать с обычным input.
 * (Отдельно: body.otp-gate-page — полноэкранный UI с фиксированной сеткой в этом же файле.)
 * OTP PANEL (admin_head: весь дочерний BEM + @media для ячеек/__digits здесь; max-width/padding корня — адаптивы)
 * Корень разметки: .otp-panel.admin-otp-panel (include/otp/admin_otp_sms.php). Стили привязаны к .admin-otp-panel.
 * Контекст почты / site-settings: #mail-settings… и #site-settings-project — отступ контейнера в forms.css.
 * #sys-otp-form в разметке совмещён с .otp-panel__form (student_cost_edit) — стили блока формы здесь.
 * Режим ввода: шесть реальных input.otp-panel__digit-field + autofill-proxy .otp-panel__autofill-proxy (см. otp-one-time-code.js, sys-otp.js).
 * Не путать с правками OTP в styles/common-uni.css (admin-*, не в цепочке admin_head) — см. docs/otp-css.md
 * ═══════════════════════════════════════════════════════════════════════════ */.otp-panel.admin-otp-panel
{
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch;
    width: 100%;
    box-sizing: border-box;
    background: var(--bg-primary);
    border: 1px solid var(--border);
    border-radius: var(--form-radius-lg);
    padding: var(--space-3);
    box-shadow: var(--shadow-sm);
    margin: var(--space-3) auto;
    /* ⚠️ ВАЖНО: max-width определён в адаптивных файлах:
     * - desktop.css (≥1024px):     max-width: 42rem (как .add-admin-otp-wrap)
     * - tablet.css (768-1023px):   max-width: 42rem
     * - mobile.css (≤767px):       max-width: 100%
     * - mobile-small.css (≤480px): max-width: 100%
     */
}/* Шапка: верх — только иконка + заголовок; ниже — подзаголовок (admin_otp_sms.php); текст по центру */.admin-otp-panel .otp-panel__header
{
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: var(--space-3);
    margin-bottom: var(--space-3);
}.admin-otp-panel .otp-panel__header-top
{
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    column-gap: var(--space-3);
    row-gap: var(--space-2);
    min-width: 0;
}.admin-otp-panel .otp-panel__icon
{
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--primary-gradient);
    color: var(--text-white);
    box-shadow: 0 6px 16px rgba(39, 146, 174, 0.2);
}.admin-otp-panel .otp-panel__title
{
    font-weight: 700;
    font-size: 1.05rem;
    color: var(--text-dark);
    margin: 0;
    min-width: 0;
    text-align: center;
    max-width: 100%;
}.admin-otp-panel .otp-panel__subtitle
{
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    color: var(--text-medium);
    font-size: 0.95rem;
    line-height: 1.45;
    margin: 0;
    min-width: 0;
    width: 100%;
    text-align: center;
}.admin-otp-panel .otp-panel__form
{
    display: grid;
    gap: var(--space-3);
}/* Сетка шести реальных input-ячеек (режим 6 inputs + autofill-proxy) */.admin-otp-panel .otp-panel__digits
{
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: var(--space-2);
    position: relative;
}/* Autofill-proxy: только транспорт для iOS SMS autofill, не в tab-order */.admin-otp-panel .otp-panel__autofill-proxy
{
    position: absolute;
    left: -9999px;
    top: 0;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}.admin-otp-panel .otp-panel__paste-row
{
    display: flex;
    justify-content: center;
    margin-bottom: var(--space-2);
}.admin-otp-panel .otp-panel__paste-btn
{
    padding: var(--space-1) var(--space-2);
}.admin-otp-panel .otp-panel__actions
{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
}/* Контейнер при ошибке — анимация всей строки из 6 ячеек */.admin-otp-panel .otp-panel__digits--error
{
    animation: otp-shake 0.5s;
}#mail-settings.site-settings-mail .otp-panel.admin-otp-panel, #site-settings-project .otp-panel.admin-otp-panel
{
    margin-bottom: var(--space-4);
}/* Панель поиска (document translation management) */.search-panel
{
    background: #f8f9fa;
    padding: var(--search-panel-padding);
    border-radius: var(--form-radius-lg);
    border: 1px solid #e9ecef;
}/* Reset button-group margins inside search panel */.search-panel .button-group
{
    margin-top: 0;
    padding-top: 0;
    border-top: none;
    gap: var(--search-panel-actions-gap);
}.semester-card
{
        background: var(--bg-primary);
        border: 1px solid var(--border-light);
        border-radius: var(--radius-lg);
        padding: var(--space-lg);
        margin-bottom: var(--space-xl);
        box-shadow: var(--shadow-sm);
    }.semester-card:last-child
{
        margin-bottom: 0;
    }.semester-card-header
{
        margin-bottom: var(--space-lg);
        padding-bottom: var(--space-md);
        border-bottom: 2px solid var(--primary);
    }.semester-card-header h3
{
        margin: 0;
        font-size: var(--text-lg);
        font-weight: 600;
        color: var(--primary);
        display: flex;
        align-items: center;
        gap: var(--space-2);
    }.semester-card-header h3 i
{
        font-size: var(--text-base);
    }.semester-card-body
{
        display: flex;
        flex-direction: column;
        gap: var(--space-lg);
    }.semester-card .btn-block
{
        width: 100%;
        padding: var(--space-3) var(--space-md);
        font-size: var(--text-sm);
        justify-content: center;
    }.stat-card
{
        padding: var(--space-md) var(--space-3);
    }}
    .card-title {
        font-size: var(--card-title-font-size);
    }.card-title::before
{
        width: 5px;
        height: 5px;
    }.semester-card
{
        background: var(--bg-primary);
        border: 1px solid var(--border-light);
        border-radius: var(--radius-md);
        padding: var(--space-3);
        margin-bottom: var(--space-md);
        box-shadow: var(--shadow-sm);
    }.semester-card:last-child
{
        margin-bottom: 0;
    }.semester-card-header
{
        margin-bottom: var(--space-md);
        padding-bottom: var(--space-2);
        border-bottom: 2px solid var(--primary);
    }.semester-card-header h3
{
        margin: 0;
        font-size: var(--text-base);
        font-weight: 600;
        color: var(--primary);
        display: flex;
        align-items: center;
        gap: var(--space-2);
    }.semester-card-header h3 i
{
        font-size: var(--text-sm);
    }.semester-card-body
{
        display: flex;
        flex-direction: column;
        gap: var(--space-md);
    }/* === css_split_uni.py append @ 2026-04-03 10:39:40 === *//* 📊 Карточка долга студента */.debt-summary-card
{
    background: linear-gradient(135deg, #fff5f5 0%, #fee2e2 100%);
    border-left: 6px solid #dc3545;
    border-radius: 10px;
    padding: var(--debt-summary-card-padding);
    margin: var(--debt-summary-card-margin);
    position: relative;
    overflow: hidden;
}.debt-summary-card::before
{
    content: "⚠️";
    position: absolute;
    top: var(--debt-summary-card-icon-top);
    right: var(--debt-summary-card-icon-right);
    font-size: var(--debt-summary-card-icon-size);
    opacity: 0.3;
}.no-debt-card
{
    background: linear-gradient(135deg, #f0fff4 0%, #e6fffa 100%);
    border-left: 6px solid #28a745;
    color: #155724;
}.no-debt-card::before
{
    content: "✅";
}.payment-quick-card
{
    background: linear-gradient(135deg, #2792ae 0%, #3ba3c7 100%);
    border-radius: 12px;
    color: white;
    overflow: hidden;
    box-shadow: 0 8px 25px rgba(39, 146, 174, 0.3);
    transition: all 0.3s ease;
    position: relative;
}.payment-quick-card::after
{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(45deg, transparent, rgba(255,255,255,0.1), transparent);
    transform: translateX(-100%);
    transition: transform 0.6s;
}.payment-quick-card:hover::after
{
    transform: translateX(100%);
}.payment-quick-card:hover
{
    transform: translateY(-3px);
    box-shadow: 0 12px 35px rgba(39, 146, 174, 0.4);
}.payment-card-header
{
    padding: var(--payment-card-header-padding);
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid rgba(255,255,255,0.15);
}.payment-card-title
{
    margin: 0;
    font-size: var(--payment-card-title-font-size);
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: var(--payment-card-title-gap);
}.payment-card-body
{
    padding: var(--payment-card-body-padding);
}.card-preview-icon
{
    color: #1a73e8;
}.payment-result-card
{
    background: white;
    border-radius: 15px;
    padding: var(--payment-result-card-padding);
    text-align: center;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    border: 2px solid transparent;
    transition: all 0.3s ease;
}.payment-success-card
{
    border-color: #28a745;
}.payment-error-card
{
    border-color: #dc3545;
}.payment-success-card .payment-result-title
{
    color: #28a745;
}.payment-error-card .payment-result-title
{
    color: #dc3545;
}/* === css_split_uni.py append @ 2026-04-03 10:48:52 === *//* Donation Card */.donation-card
{
    background: var(--background-card);
    border: 2px solid var(--primary-color);
    border-radius: 20px;
    padding: var(--donation-card-padding);
    margin-bottom: var(--donation-card-margin-bottom);
    box-shadow: var(--shadow);
    max-width: var(--donation-card-max-width);
    margin-left: auto;
    margin-right: auto;
}.card-icon
{
    width: var(--donation-card-icon-size);
    height: var(--donation-card-icon-size);
    background: linear-gradient(135deg, var(--primary-color), var(--primary-dark));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto var(--donation-card-icon-margin-bottom);
    box-shadow: 0 8px 20px rgba(0, 212, 170, 0.3);
}.card-icon i
{
    font-size: var(--donation-card-icon-font-size);
    color: white;
}.card-subtitle
{
    text-align: center;
    color: var(--text-secondary);
    margin-bottom: var(--donation-card-subtitle-margin-bottom);
}.donation-card .card-title
{
    font-size: var(--donation-card-title-font-size);
    font-weight: 600;
    text-align: center;
    margin-bottom: 0.5rem;
}

/* === css_split_uni.py append @ 2026-04-03 21:34:32 === */

nav .head-icon-menu a i[data-icon="admin-panel"] { background-image: url("icon/admin-panel.png"); }nav .head-icon-menu a i[data-icon="curator-panel"] { background-image: url("icon/curator-panel.png"); }
