/* 小巷优选后台：延续既有 Bootstrap 组件的运营主题。 */
:root {
    --bs-primary: #195c3a;
    --bs-primary-rgb: 25, 92, 58;
    --bs-success: #247347;
    --bs-success-rgb: 36, 115, 71;
    --bs-link-color: #195c3a;
    --bs-link-hover-color: #10472b;
    --admin-ink: #243a30;
    --admin-muted: #697a70;
    --admin-line: #dce7dc;
    --admin-canvas: #f2f6f1;
}
body { background: var(--admin-canvas); color: var(--admin-ink); font-family: "Microsoft YaHei", "PingFang SC", system-ui, sans-serif; }
.page-shell { max-width: 1580px; margin: 0 auto; padding: 28px 30px 42px; }
.page-title, h1.page-title { margin-bottom: 22px; color: #183f2c; font-size: 24px; line-height: 1.35; font-weight: 750; letter-spacing: -.02em; }
.card { border: 1px solid var(--admin-line); border-radius: 14px; background: #fff; box-shadow: 0 5px 22px rgba(27, 67, 41, .035); }
.card-header { padding: 17px 20px; border-bottom: 1px solid var(--admin-line); border-radius: 14px 14px 0 0 !important; background: #fff !important; color: #264534; font-weight: 650; }
.card-body { padding: 20px; }
.table { --bs-table-color: var(--admin-ink); --bs-table-hover-bg: #f4f8f3; margin-bottom: 0; }
.table thead th { padding: 12px 14px; border-bottom-color: #d6e3d6; background: #f4f8f3; color: #587060; font-size: 12px; font-weight: 700; white-space: nowrap; }
.table tbody td { padding: 13px 14px; border-bottom-color: #e7eee7; vertical-align: middle; }
.table tbody tr:last-child td { border-bottom-color: transparent; }
.btn { border-radius: 9px; font-weight: 650; transition: background-color .16s, border-color .16s, box-shadow .16s, color .16s; }
.btn-sm { padding: .32rem .7rem; }
.btn-primary, .btn-primary:disabled { border-color: #195c3a; background: #195c3a; color: #fff; }
.btn-primary:hover, .btn-primary:focus-visible { border-color: #10472b; background: #10472b; color: #fff; }
.btn-outline-primary { border-color: #9bbca4; color: #195c3a; }
.btn-outline-primary:hover, .btn-outline-primary:focus-visible { border-color: #195c3a; background: #195c3a; color: #fff; }
.btn-success, .btn-success:disabled { border-color: #247347; background: #247347; color: #fff; }
.btn-success:hover, .btn-success:focus-visible { border-color: #175b36; background: #175b36; color: #fff; }
.btn-outline-success { border-color: #9abda6; color: #1b6840; }
.btn-outline-success:hover, .btn-outline-success:focus-visible { border-color: #247347; background: #247347; color: #fff; }
.btn-secondary { border-color: #dbe6dc; background: #eef3ec; color: #31543b; }
.btn-secondary:hover, .btn-secondary:focus-visible { border-color: #c8d8c9; background: #dfeadd; color: #24442f; }
.btn-outline-secondary { border-color: #c9d9cb; color: #476351; }
.btn-outline-secondary:hover, .btn-outline-secondary:focus-visible { border-color: #486a50; background: #486a50; color: #fff; }
.btn:focus-visible, .form-control:focus-visible, .form-select:focus-visible { outline: 2px solid #8fbd96; outline-offset: 2px; }
.form-control, .form-select { border-color: #d2e0d3; border-radius: 9px; background-color: #fff; color: var(--admin-ink); }
.form-control:focus, .form-select:focus { border-color: #7aa988; box-shadow: 0 0 0 .2rem rgba(25, 92, 58, .12); }
.form-control::placeholder { color: #8a9a90; }
.modal-content { border: 1px solid var(--admin-line); border-radius: 16px; box-shadow: 0 20px 70px rgba(22, 58, 37, .16); }
.modal-header, .modal-footer { border-color: var(--admin-line); }
.modal-title { color: #1c4930; font-weight: 700; }
.badge.bg-warning { background: #f3dfad !important; color: #5c4319 !important; }
.badge.bg-success { background: #e0f0e2 !important; color: #1a6539 !important; }
.badge.bg-danger { background: #f8e6e2 !important; color: #a43e35 !important; }
.pagination .page-link { border-color: var(--admin-line); color: #195c3a; }
.pagination .page-item.active .page-link { border-color: #195c3a; background: #195c3a; color: #fff; }
.spec-badge { background: #e8f3e6; color: #245d3a; }
.icon-option:hover, .icon-option.active { border-color: #6d9d78; background: #eef6eb; color: #195c3a; }
.icon-option.active { box-shadow: 0 0 0 2px rgba(25, 92, 58, .12); }
.icon-preview, .menu-icon { color: #195c3a; }
.image-add:hover, .image-replace:hover { border-color: #195c3a; color: #195c3a; }
.alert-info { border-color: #d1e5d4; background: #eef7ed; color: #315741; }
a { color: #195c3a; }
a:hover { color: #10472b; }
@media (max-width: 700px) { .page-shell { padding: 18px 14px 28px; } .card-body { padding: 14px; } }
@media (prefers-reduced-motion: reduce) { .btn { transition: none; } }
