/* Shared admin components. Keep account and error screens outside this theme. */
.portal-admin .mobile-language-options .dropdown-header { padding:8px 12px 4px; font-size:12px; color:#6a8092; font-weight:500; }
.portal-admin .mobile-language-options .dropdown-item { min-height:42px; }
.portal-admin .mobile-language-options .dropdown-item.active { color:#195c75; background:#e7f1f5; font-weight:700; }
.document-preview { display:inline-block; vertical-align:middle; }
.document-preview [hidden] { display:none !important; }
.document-preview img { width:64px; height:48px; object-fit:cover; border:1px solid #e0e8ef; border-radius:6px; }
.document-no-image { color:#687d8f; font-size:13px; font-weight:500; white-space:nowrap; }
.portal-admin .outdoor-filters { margin-bottom:24px; padding-bottom:24px; border-bottom:1px solid #e6edf3; }
.portal-admin .outdoor-filter-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:22px; flex-wrap:wrap; }
.portal-admin .outdoor-filter-title { display:flex; align-items:center; gap:12px; }
.portal-admin .outdoor-filter-icon { display:grid; place-items:center; width:42px; height:42px; border-radius:11px; background:#edf5f8; color:#19677f; flex-shrink:0; }
.portal-admin .outdoor-filter-icon svg { width:21px; height:21px; }
.portal-admin .outdoor-filter-title h5 { margin:0 0 4px; font-size:17px; }
.portal-admin .outdoor-filter-title p { margin:0; font-size:13px; color:#647b8e; line-height:1.6; }
.portal-admin .outdoor-export-actions { display:flex; gap:8px; flex-wrap:wrap; }
.portal-admin .outdoor-tool-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:40px; padding:8px 12px; background:#fff; border:1px solid #dce5ed; color:#48677c; font-size:13px; }
.portal-admin .outdoor-tool-button.export { background:#eff8f3; color:#23754e; border-color:#d6eadd; }
.portal-admin .outdoor-tool-button:hover { background:#edf5f8; border-color:#a9c7d3; color:#195c75; }
.portal-admin .outdoor-filter-fields { display:grid; grid-template-columns:repeat(4,minmax(130px,1fr)) auto; gap:16px; align-items:end; }
.portal-admin .outdoor-filter-fields > div { min-width:0; }
.portal-admin .outdoor-filter-fields label { display:block; font-size:13px; font-weight:600; color:#405c72; margin-bottom:8px; }
.portal-admin .outdoor-search-input { position:relative; }
.portal-admin .outdoor-search-input>svg { position:absolute; inset-inline-start:13px; top:14px; width:17px; height:17px; color:#738a9e; pointer-events:none; }
.portal-admin .outdoor-search-input .form-control { padding-inline-start:39px; width:100%; height:44px; }
.portal-admin .outdoor-filter-buttons { display:flex; gap:8px; }
.portal-admin .outdoor-filter-buttons .btn { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:44px; white-space:nowrap; }
.portal-admin .outdoor-filters .btn svg { width:16px; height:16px; flex-shrink:0; }
.portal-admin .outdoor-reset { border:1px solid #dce5ed; background:#f6f8fb; color:#5c7285; }
.portal-admin .outdoor-reset:hover { background:#eaf1f6; color:#254f65; }
@media(max-width:1199px) {
    .portal-admin .outdoor-filter-fields { grid-template-columns:minmax(180px,1fr) 1fr; }
}
@media(max-width:575px) {
    .portal-admin .outdoor-filter-fields { grid-template-columns:1fr; gap:14px; }
    .portal-admin .outdoor-filter-title { align-items:flex-start; }
    .portal-admin .outdoor-filter-title h5 { font-size:16px; }
    .portal-admin .outdoor-filter-buttons .btn { flex:1; }
    .portal-admin .outdoor-export-actions { width:100%; }
    .portal-admin .outdoor-export-actions .btn { flex:1; font-size:12px; }
}
body.portal-admin {
    --portal-ink: #183447;
    --portal-muted: #607488;
    --portal-brand: #19677f;
    --portal-border: #e0e8ef;
    background: #f3f6fa;
    color: var(--portal-ink);
    font-size: 15px;
    font-weight: 500;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}

.portal-admin h1, .portal-admin h2, .portal-admin h3,
.portal-admin h4, .portal-admin h5, .portal-admin h6 { color: var(--portal-ink); font-weight: 700; }
.portal-admin .page-wrapper > .content { padding: 30px; }
.portal-admin .page-header { align-items: center; gap: 18px; margin-bottom: 25px; }
.portal-admin .page-header .page-title h4 { font-size: 25px; line-height: 1.4; letter-spacing: -.4px; }
.portal-admin .page-header .page-title h6 { color: var(--portal-muted); font-size: 14px; line-height: 1.7; font-weight: 400; margin-top: 5px; }
.portal-admin .header { border-bottom: 1px solid var(--portal-border); box-shadow: 0 2px 12px #123b5105; }
.portal-admin .header .header-left { display: flex; align-items: center; justify-content: center; }
.portal-admin .header .header-left .logo img { max-height: 46px; max-width: 145px; width: auto; height: auto; object-fit: contain; }
.portal-admin .header .header-left .logo-small img { max-height: 38px; max-width: 44px; object-fit: contain; }
.portal-admin .header .nav-item-box > a { border: 1px solid #edf2f6; border-radius: 10px; color: #526e83; }
.portal-admin .header .nav-item-box > a:hover { background: #edf5f8; color: var(--portal-brand); }
.portal-admin .header .user-name { font-weight: 700; color: var(--portal-ink); }
.portal-admin .header .user-role { color: var(--portal-muted); font-size: 12px; font-weight: 400; }
.portal-admin .header .user-letter { border-radius: 12px; overflow: hidden; }
.portal-admin .dropdown-menu { border: 1px solid var(--portal-border); border-radius: 12px; padding: 8px; box-shadow: 0 12px 35px #18344712; }
.portal-admin .dropdown-menu .dropdown-item { border-radius: 7px; font-size: 14px; padding: 9px 12px; }
.portal-admin .dropdown-menu .dropdown-item:hover { background: #eff5f8; color: var(--portal-brand); }
.portal-admin .card { border: 1px solid var(--portal-border); border-radius: 14px; box-shadow: 0 3px 16px #193e5804; margin-bottom: 24px; }
.portal-admin .card .card-body { padding: 24px; }
.portal-admin .card .card-header { padding: 20px 24px; border-bottom: 1px solid #edf1f5; }
.portal-admin .card .card-header .card-title { margin-bottom: 0; font-size: 18px; }
.portal-admin .card-title { font-size: 18px; line-height: 1.5; }
.portal-admin .table { color: #344f64; font-size: 14px; }
.portal-admin .table > thead > tr > th { background: #f5f8fb; color: #526c81; font-size: 13px; font-weight: 600; padding: 15px 16px; border-bottom: 1px solid var(--portal-border); white-space: nowrap; }
.portal-admin .table > tbody > tr > td { padding: 16px; border-color: #edf1f5; vertical-align: middle; font-weight: 500; }
.portal-admin .table-striped > tbody > tr:nth-of-type(odd) { --bs-table-accent-bg: #fbfcfe; }
.portal-admin .table tbody tr:hover { --bs-table-accent-bg: #f2f7fa; }
.portal-admin .table td a { color: var(--portal-brand); }
.portal-admin .table td a:hover { color: #10475b; }
.portal-admin .table-top { gap: 16px; margin-bottom: 20px; }
.portal-admin .table-responsive { border-radius: 9px; }
.portal-admin .form-group { margin-bottom: 23px; }
.portal-admin .form-group label, .portal-admin .form-label { color: #38546a; font-size: 14px; line-height: 1.5; font-weight: 600; margin-bottom: 8px; }
.portal-admin .form-control, .portal-admin .form-select,
.portal-admin .form-group input[type=text], .portal-admin .form-group input[type=password],
.portal-admin .form-group input[type=number], .portal-admin .form-group input[type=email],
.portal-admin .form-group input[type=tel], .portal-admin .form-group input[type=date] {
    background-color: #fff;
    border: 1px solid #cedae5;
    border-radius: 8px;
    min-height: 44px;
    font-size: 14px;
    font-weight: 500;
    color: #233e53;
    padding: 10px 13px;
    transition: border-color .15s, box-shadow .15s;
}
.portal-admin .form-control::placeholder, .portal-admin .form-group input::placeholder { color: #8293a4; font-weight: 400; }
.portal-admin .form-control:focus, .portal-admin .form-select:focus, .portal-admin .form-group input:focus {
    border-color: #4e8ca2;
    box-shadow: 0 0 0 3px #19677f12;
    outline: none;
}
.portal-admin .form-control:disabled, .portal-admin .form-control[readonly] { background: #f0f4f7; color: #62788c; }
.portal-admin textarea.form-control { min-height: 104px; }
.portal-admin .form-check-input:checked { background-color: var(--portal-brand); border-color: var(--portal-brand); }
.portal-admin .select2-container--default .select2-selection--single { min-height: 44px; border-color: #cedae5; border-radius: 8px; }
.portal-admin .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 42px; color: #233e53; font-size: 14px; padding-inline-start: 13px; }
.portal-admin .select2-container--default .select2-selection--single .select2-selection__arrow { height: 42px; }
.portal-admin .btn { border-radius: 8px; font-size: 14px; font-weight: 600; padding: 10px 17px; line-height: 1.5; }
.portal-admin .btn-sm { padding: 6px 11px; font-size: 12px; }
.portal-admin .btn-primary, .portal-admin .btn-submit, .portal-admin .btn-added { background: var(--portal-brand); border-color: var(--portal-brand); color: #fff; box-shadow: 0 3px 8px #19677f0d; }
.portal-admin .btn-primary:hover, .portal-admin .btn-submit:hover, .portal-admin .btn-added:hover { background: #124f64; border-color: #124f64; color: #fff; }
.portal-admin .btn-cancel, .portal-admin .btn-secondary { background: #eaf0f5; border-color: #e0e8ef; color: #415c72; }
.portal-admin .btn-cancel:hover { background: #dfe8ef; color: #213e53; }
.portal-admin .btn-outline-primary { color: var(--portal-brand); border-color: #94b6c4; background: #fff; }
.portal-admin .btn-outline-primary:hover { color: #fff; background: var(--portal-brand); border-color: var(--portal-brand); }
.portal-admin .badge { padding: 6px 9px; border-radius: 6px; font-size: 12px; font-weight: 600; line-height: 1.4; }
.portal-admin .alert { border-radius: 10px; padding: 14px 18px; font-size: 14px; }
.portal-admin .modal-content { border: 0; border-radius: 15px; box-shadow: 0 24px 70px #152e4426; }
.portal-admin .modal-header { padding: 20px 24px; border-color: #e6edf3; }
.portal-admin .modal-title { font-size: 19px; }
.portal-admin .modal-body { padding: 24px; }
.portal-admin .modal-footer { padding: 16px 24px; border-color: #e6edf3; gap: 8px; }
.portal-admin .pagination { gap: 5px; }
.portal-admin .page-link { border-radius: 7px !important; color: var(--portal-brand); border-color: #e0e8ef; padding: 7px 12px; font-size: 13px; }
.portal-admin .page-item.active .page-link { background: var(--portal-brand); border-color: var(--portal-brand); color: white; }
.portal-admin .dataTables_wrapper .dataTables_info { color: var(--portal-muted); font-size: 13px; }
.portal-admin .dataTables_wrapper .dataTables_filter input { border: 1px solid #cedae5; border-radius: 7px; padding: 8px 12px; }
.portal-admin .text-muted { color: #62778b !important; }
.portal-admin .portal-empty-state { text-align: center; padding: 60px 24px; background: #fff; border: 1px solid var(--portal-border); border-radius: 15px; margin-top: 20px; }
.portal-admin .portal-empty-state > .empty-icon { display: grid; place-items: center; width: 70px; height: 70px; border-radius: 20px; background: #edf5f8; color: var(--portal-brand); margin: 0 auto 20px; }
.portal-admin .portal-empty-state .empty-icon svg { width: 30px; height: 30px; }
.portal-admin .portal-empty-state h5 { font-size: 20px; margin-bottom: 9px; }
.portal-admin .portal-empty-state p { font-size: 14px; color: var(--portal-muted); max-width: 420px; margin: 0 auto 20px; line-height: 1.9; }
.portal-admin a:focus-visible, .portal-admin button:focus-visible { outline: 2px solid #4c9bb5; outline-offset: 3px; }
@media (min-width: 992px) {
    .portal-admin .sidebar#sidebar .sidebar-menu { padding: 14px 12px; }
    .portal-admin .sidebar#sidebar .sidebar-menu .submenu-hdr { border-top: 0; margin: 0; padding-top: 0; font-size: 11px; }
    .portal-admin .sidebar#sidebar .sidebar-menu > ul > li.submenu-open { padding-top: 0; margin-top: 23px; border: 0; }
    .portal-admin .sidebar#sidebar .sidebar-menu li a { min-height: 42px; padding: 9px 12px; font-size: 15px; border-radius: 9px; }
}
@media (max-width: 991px) {
    .portal-admin .page-wrapper > .content { padding: 22px 16px; }
    .portal-admin .header .header-left { background: #fff; border-color: var(--portal-border); }
    .portal-admin .header .header-left .logo img { filter: none; max-height: 42px; max-width: 120px; }
    .portal-admin .header .mobile_btn { color: var(--portal-brand); }
}
@media (max-width: 575px) {
    .portal-admin .page-header { flex-wrap: wrap; gap: 12px; }
    .portal-admin .page-header .page-title h4 { font-size: 22px; }
    .portal-admin .card .card-body, .portal-admin .modal-body { padding: 18px 15px; }
    .portal-admin .table > tbody > tr > td { padding: 13px 12px; }
    .portal-admin .table > thead > tr > th { padding: 12px; }
    .portal-admin .btn { padding: 9px 13px; font-size: 13px; }
    .portal-admin .portal-empty-state { padding: 40px 20px; }
}
@media (prefers-reduced-motion: reduce) {
    .portal-admin .form-control, .portal-admin .form-select { transition: none; }
}
