/* 全站共用色板：白色与天空浅蓝，前台、后台共用。 */
:root {
    color-scheme: light;
    --primary: #1676a8;
    --primary-deep: #125d85;
    --primary-light: #dff2fc;
    --bg-body: #f3faff;
    --bg-card: #ffffff;
    --bg-card-strong: #ffffff;
    --surface-alt: #edf8fe;
    --text: #243b4a;
    --text-muted: #60798b;
    --border: #cfe8f5;
    --shadow: 0 4px 16px rgba(40, 117, 158, .07);
    --primary-rgb: 22, 118, 168;
    --bs-primary: #1676a8;
    --bs-primary-rgb: 22, 118, 168;
    --bs-link-color: #1676a8;
    --bs-link-hover-color: #125d85;
    --bs-body-color: #243b4a;
    --bs-body-bg: #f3faff;
    --bs-border-color: #cfe8f5;
}
body { color: var(--text); background-color: var(--bg-body); }
a { color: var(--primary); }
a:hover { color: var(--primary-deep); }
::selection { color: var(--primary-deep); background: var(--primary-light); }
.text-muted { color: var(--text-muted) !important; }
.form-control, .form-select, .input-group-text {
    color: var(--text);
    background-color: var(--bg-card);
    border-color: var(--border);
}
.form-control::placeholder { color: var(--text-muted); opacity: .85; }
.form-control:focus, .form-select:focus {
    color: var(--text);
    background-color: var(--bg-card);
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(var(--primary-rgb), .12);
}
.form-check-input:checked { background-color: var(--primary); border-color: var(--primary); }
.form-check-input:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(var(--primary-rgb), .12); }
.btn-primary, .btn-admin-primary {
    --bs-btn-bg: var(--primary);
    --bs-btn-border-color: var(--primary);
    --bs-btn-hover-bg: var(--primary-deep);
    --bs-btn-hover-border-color: var(--primary-deep);
    --bs-btn-active-bg: var(--primary-deep);
    --bs-btn-active-border-color: var(--primary-deep);
    --bs-btn-disabled-bg: var(--primary);
    --bs-btn-disabled-border-color: var(--primary);
}
.nav-pills .nav-link.active, .nav-pills .show > .nav-link { background-color: var(--primary); }
.pagination { flex-wrap: wrap; }
.pagination .page-link { color: var(--primary); background: var(--bg-card); border-color: var(--border); }
.pagination .page-link:hover { color: var(--primary-deep); background: var(--surface-alt); }
.pagination .active > .page-link { color: #fff; background: var(--primary); border-color: var(--primary); }
.pagination .disabled > .page-link { color: var(--text-muted); background: var(--surface-alt); border-color: var(--border); }
.modal-content { color: var(--text); background: var(--bg-card); border: 1px solid var(--border); border-radius: 16px; }
.modal-header, .modal-footer { border-color: var(--border); }
.modal-title { color: var(--primary-deep); }
.modal-body img { max-width: 100%; height: auto; }
.btn-close { filter: none; }
.table { --bs-table-color: var(--text); --bs-table-border-color: var(--border); }
option { color: var(--text); background: var(--bg-card); }
:focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }
