/* Shared admin defaults. Page-specific compact tables and modal layouts load after this file. */
.admin-ui {
    --admin-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --admin-ink: #1e293b;
    --admin-muted: #64748b;
    --admin-border: #d8e0eb;
    --admin-primary: #2563eb;
    --admin-primary-hover: #1d4ed8;
    --admin-ring: 0 0 0 3px rgb(37 99 235 / 14%);
    font-family: var(--admin-font);
    font-size: 14px;
    line-height: 1.55;
    color: var(--admin-ink);
    background: #f5f7fb;
    -webkit-font-smoothing: antialiased;
}

.admin-ui :where(input, textarea, select, button) { font-family: inherit; }
.admin-ui :where(h1, h2, h3, h4, h5, h6) { color: var(--admin-ink); font-weight: 600; letter-spacing: -.025em; }
.admin-ui :where(p, li) { line-height: 1.6; }
.admin-ui .page-title { font-size: 22px; font-weight: 650; }
.admin-ui .card-title { font-size: 16px; line-height: 1.5; }
.admin-ui .card-title strong { font-weight: 650; }
.admin-ui .sidebar__menu .menu-title { letter-spacing: 0; }
.admin-ui .sidebar__menu .sidebar-menu-item .side-menu--open,
.admin-ui .sidebar__menu .sidebar-menu-item.active > a { background-color: var(--admin-primary) !important; }
.admin-ui .sidebar__menu .sidebar-submenu .sidebar-menu-item.active > a { background-color: rgb(37 99 235 / 22%) !important; }
.admin-ui label { margin-bottom: 8px; color: #334155; font-size: 13px; font-weight: 600; letter-spacing: 0; }
.admin-ui .form-group { margin-bottom: 22px; }
.admin-ui .text-muted { color: var(--admin-muted) !important; }

.admin-ui .card {
    border: 1px solid #e6ebf2;
    border-radius: 14px;
    box-shadow: 0 4px 20px rgb(15 23 42 / 3%);
}
.admin-ui .card-header { padding: 18px 22px; border-bottom-color: #e9edf4; }
.admin-ui .card-header:first-child { border-radius: 14px 14px 0 0; }
.admin-ui .card-footer { padding: 16px 22px; border-top-color: #e9edf4; }
.admin-ui .card-footer:last-child { border-radius: 0 0 14px 14px; }
.admin-ui .modal-content { border: 1px solid #e6ebf2; border-radius: 16px; box-shadow: 0 24px 80px rgb(15 23 42 / 16%); }
.admin-ui :where(.modal-header, .modal-footer) { border-color: #e9edf4; }

.admin-ui .form-control,
.admin-ui .form-select {
    padding: 11px 14px;
    border: 1px solid var(--admin-border);
    border-radius: 9px;
    background-color: #fff;
    color: var(--admin-ink);
    line-height: 1.5;
    box-shadow: 0 1px 2px rgb(15 23 42 / 2%);
    transition: border-color .15s, box-shadow .15s, background-color .15s;
}
.admin-ui .form-select { padding-inline-end: 36px; font-size: 14px; }
.admin-ui textarea.form-control { padding: 13px 14px; resize: vertical; }
.admin-ui input:not([type='radio'])::placeholder,
.admin-ui textarea::placeholder { color: #738196 !important; opacity: 1; }
.admin-ui :where(.form-control, .form-select):hover:not(:disabled):not([readonly]) { border-color: #aab8cb; }
.admin-ui .form-control:focus,
.admin-ui .form-select:focus { color: var(--admin-ink); background-color: #fff; border-color: var(--admin-primary); box-shadow: var(--admin-ring); }
.admin-ui .form-control[readonly],
.admin-ui .form-control:disabled,
.admin-ui .form-select:disabled { color: #64748b; background-color: #f1f4f8; border-color: #e2e8f0; opacity: 1; }
.admin-ui :is(.form-control, .form-select).is-invalid,
.admin-ui .was-validated :is(.form-control, .form-select):invalid { border-color: #dc3545; }
.admin-ui :is(.form-control, .form-select).is-invalid:focus,
.admin-ui .was-validated :is(.form-control, .form-select):invalid:focus { box-shadow: 0 0 0 3px rgb(220 53 69 / 12%); }
.admin-ui :is(.form-control, .form-select).is-valid,
.admin-ui .was-validated :is(.form-control, .form-select):valid { border-color: #198754; }
.admin-ui :is(.form-control, .form-select).is-valid:focus,
.admin-ui .was-validated :is(.form-control, .form-select):valid:focus { box-shadow: 0 0 0 3px rgb(25 135 84 / 12%); }
.admin-ui .input-group-text { padding: 10px 14px; border-color: var(--admin-border); border-radius: 9px; background: #f6f8fb; color: #526179; font-size: 13px; font-weight: 500; }
.admin-ui .input-group > :not(:first-child):not(.dropdown-menu) { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.admin-ui .input-group > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu) { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.admin-ui .form-check-input { border-color: #b7c3d4; box-shadow: none; }
.admin-ui .form-check-input:checked { border-color: var(--admin-primary); background-color: var(--admin-primary); }
.admin-ui .form-check-input:focus { border-color: var(--admin-primary); box-shadow: var(--admin-ring); }
.admin-ui .form-control[type='file'] { padding: 0; line-height: 43px; }
.admin-ui .form-control::file-selector-button { padding: 0 14px; margin: 0; margin-inline-end: 14px; border: 0; border-inline-end: 1px solid var(--admin-border); background: #f6f8fb; color: #334155; font-weight: 600; }

.admin-ui .btn {
    padding: 10px 16px;
    border-radius: 9px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0;
    transition: background-color .15s, border-color .15s, color .15s, box-shadow .15s;
}
.admin-ui .btn-sm { padding: 6px 10px; border-radius: 7px; font-size: 12px; }
.admin-ui .btn-lg { padding: 13px 22px; font-size: 16px; }
.admin-ui .btn--primary { --color: var(--admin-primary); box-shadow: 0 2px 3px rgb(37 99 235 / 12%); }
.admin-ui .btn--primary:hover,
.admin-ui .btn--primary:active { --color: var(--admin-primary-hover); }
.admin-ui .btn-outline--primary { --color: var(--admin-primary); background: #fff; }
.admin-ui .btn-outline--primary:hover,
.admin-ui .btn-outline--primary:active { --color: var(--admin-primary-hover); }
.admin-ui .btn-primary { --bs-btn-bg: var(--admin-primary); --bs-btn-border-color: var(--admin-primary); --bs-btn-hover-bg: var(--admin-primary-hover); --bs-btn-hover-border-color: var(--admin-primary-hover); }
.admin-ui .btn--success,
.admin-ui .btn-outline--success { --color: #15803d; }
.admin-ui .btn--success:hover,
.admin-ui .btn--success:active,
.admin-ui .btn-outline--success:hover { --color: #166534; }
.admin-ui .btn--danger,
.admin-ui .btn-outline--danger { --color: #dc2626; }
.admin-ui .btn--danger:hover,
.admin-ui .btn--danger:active,
.admin-ui .btn-outline--danger:hover { --color: #b91c1c; }
.admin-ui .btn--info,
.admin-ui .btn-outline--info { --color: #0369a1; }
.admin-ui .btn--info:hover,
.admin-ui .btn--info:active,
.admin-ui .btn-outline--info:hover { --color: #075985; }
.admin-ui .btn--warning { --color: #fbbf24; --btn-color: #422006; }
.admin-ui .btn--warning:hover,
.admin-ui .btn--warning:active { --color: #f59e0b; }
.admin-ui .btn--secondary,
.admin-ui .btn-outline--secondary { --color: #64748b; }
.admin-ui .btn--secondary:hover,
.admin-ui .btn--secondary:active,
.admin-ui .btn-outline--secondary:hover { --color: #475569; }
.admin-ui .btn--light { --color: #f1f5f9; --btn-color: #475569; background-color: var(--color) !important; color: var(--btn-color) !important; }
.admin-ui .btn--light:hover,
.admin-ui .btn--light:active { --color: #e2e8f0; }
.admin-ui .btn.btn--light:hover { color: var(--btn-color) !important; }
.admin-ui .btn:focus-visible,
.admin-ui a:focus-visible,
.admin-ui button:focus-visible { outline: 2px solid var(--admin-primary); outline-offset: 3px; box-shadow: var(--admin-ring); }
.admin-ui .btn:disabled,
.admin-ui .btn.disabled { opacity: .5; box-shadow: none; cursor: not-allowed; }
.admin-ui .btn > span { color: inherit; }
.admin-ui .btn-group > .btn:not(:last-child):not(.dropdown-toggle) { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.admin-ui .btn-group > .btn:not(:first-child) { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.admin-ui .toggle .btn { padding: 8px 12px; }
.admin-ui .toggle .toggle-handle { padding-inline: 0; }

.admin-ui .select2-container--default .select2-selection--single,
.admin-ui .select2-container--default .select2-selection--multiple { border-color: var(--admin-border) !important; border-radius: 9px; background: #fff; box-shadow: 0 1px 2px rgb(15 23 42 / 2%); }
.admin-ui .select2-container--default .select2-selection--single .select2-selection__rendered { padding-inline: 14px 34px; color: var(--admin-ink); font-size: 14px; }
.admin-ui .select2-container--default .select2-selection--single .select2-selection__placeholder { color: #738196; }
.admin-ui .select2-container--default .select2-selection--single .select2-selection__arrow:after { color: var(--admin-muted); }
.admin-ui .select2-container--default .select2-selection--multiple .select2-selection__choice { border-color: #dce5f2; border-radius: 5px; background: #eef3fb; }
.admin-ui .select2-container--default.select2-container--focus .select2-selection,
.admin-ui .select2-container--open .select2-selection.select2-selection--single,
.admin-ui .select2-container--open .select2-selection.select2-selection--multiple { border-color: var(--admin-primary) !important; border-radius: 9px !important; box-shadow: var(--admin-ring); }
.admin-ui .select2-dropdown { border: 1px solid #e2e8f0; border-radius: 10px !important; box-shadow: 0 8px 28px rgb(15 23 42 / 10%); }
.admin-ui .select2-container--default .select2-search--dropdown .select2-search__field { padding: 8px 12px; border-color: var(--admin-border) !important; border-radius: 7px; }
.admin-ui .select2-container--default .select2-results__option--highlighted.select2-results__option--selectable { color: #1d4ed8; background: #eff6ff !important; }
.admin-ui .dropdown-menu { padding: 6px; border: 1px solid #e2e8f0; border-radius: 10px; box-shadow: 0 8px 28px rgb(15 23 42 / 10%); }
.admin-ui .dropdown-item { border-radius: 6px; }
.admin-ui .dropdown-item.active,
.admin-ui .dropdown-item:active { background: var(--admin-primary); }
.admin-ui .iziToast,
.admin-ui .iziToast :where(.iziToast-title, .iziToast-message) { font-family: var(--admin-font) !important; }

/* nicEdit keeps its commands and HTML; only its admin presentation is enhanced. */
.admin-ui .admin-editor-toolbar,
.admin-ui .admin-editor-content { width: 100% !important; }
.admin-ui .admin-editor-toolbar .nicEdit-panelContain { border: 1px solid var(--admin-border) !important; border-radius: 9px 9px 0 0; background: #f8fafc !important; }
.admin-ui .admin-editor-toolbar .nicEdit-panel { display: flex; flex-wrap: wrap; align-items: center; gap: 3px; margin: 0 !important; padding: 8px; }
.admin-ui .admin-editor-toolbar .nicEdit-panel > div { float: none !important; margin: 0 !important; }
.admin-ui .admin-editor-toolbar .nicEdit-buttonContain { width: 28px !important; height: 30px !important; opacity: 1 !important; }
.admin-ui .admin-editor-toolbar .nicEdit-buttonContain > div { border: 0 !important; border-radius: 5px; background: transparent !important; }
.admin-ui .admin-editor-toolbar .nicEdit-button { display: flex; align-items: center; justify-content: center; width: 28px !important; height: 30px !important; border-radius: 5px; color: #536277; }
.admin-ui .admin-editor-toolbar .nicEdit-button[data-icon] { background-image: none !important; }
.admin-ui .admin-editor-toolbar .nicEdit-button i { color: inherit; font-size: 18px; pointer-events: none; }
.admin-ui .admin-editor-toolbar .nicEdit-button:hover,
.admin-ui .admin-editor-toolbar .nicEdit-button[aria-pressed='true'] { color: #1d4ed8; background-color: #e7effc; }
.admin-ui .admin-editor-toolbar [role='button']:focus-visible { outline: 2px solid var(--admin-primary); outline-offset: -2px; }
.admin-ui .admin-editor-toolbar .nicEdit-selectContain { width: 106px !important; height: 30px !important; border-radius: 5px; }
.admin-ui .admin-editor-toolbar .nicEdit-selectContain > div { display: flex; flex-direction: row-reverse; align-items: center; height: 30px; padding-inline: 8px !important; border: 1px solid #dce3ed !important; border-radius: 5px; background: #fff !important; }
.admin-ui .admin-editor-toolbar .nicEdit-selectTxt { flex: 1; min-width: 0; width: auto !important; height: 28px !important; margin: 0 !important; font-family: var(--admin-font) !important; font-size: 12px !important; line-height: 28px; text-align: left !important; color: #475569; }
.admin-ui .admin-editor-toolbar .nicEdit-selectControl { flex: 0 0 12px; width: 12px !important; height: 28px !important; background: none !important; }
.admin-ui .admin-editor-toolbar .nicEdit-selectControl:after { content: '\2304'; display: block; color: #64748b; line-height: 24px; }
.admin-ui .admin-editor-content { border: 1px solid var(--admin-border) !important; border-top: 0 !important; border-radius: 0 0 9px 9px; background: #fff; }
.admin-ui .admin-editor-content:focus-within { border-color: var(--admin-primary) !important; box-shadow: var(--admin-ring); }
.admin-ui .admin-editor-content .nicEdit-main { box-sizing: border-box; width: 100% !important; min-height: 240px !important; margin: 0 !important; padding: 16px; color: var(--admin-ink); font-family: var(--admin-font); font-size: 14px; line-height: 1.7; outline: 0; overflow-wrap: anywhere; }
.admin-ui .nicEdit-main :where(ul, ol) { padding-inline-start: 24px; }
.admin-ui .nicEdit-main ul { list-style: disc; }
.admin-ui .nicEdit-main ol { list-style: decimal; }
.admin-ui .nicEdit-main p { margin-bottom: 10px; }
.admin-ui .nicEdit-pane { max-width: calc(100vw - 24px); border-color: var(--admin-border) !important; border-radius: 8px; background: #fff !important; box-shadow: 0 8px 28px rgb(15 23 42 / 12%); font-family: var(--admin-font); }

@media (max-width: 575px) {
    .admin-ui .page-title { font-size: 20px; }
    .admin-ui .card-header,
    .admin-ui .card-footer { padding: 16px; }
    .admin-ui .admin-editor-toolbar .nicEdit-panel { gap: 2px; padding: 6px; }
}
@media (prefers-reduced-motion: reduce) {
    .admin-ui .btn,
    .admin-ui .form-control,
    .admin-ui .form-select { transition: none; }
}
