/* PharmaSync - light, calm theme on top of Bootstrap 5 */
:root {
    --ps-bg: #f4f8fb;
    --ps-surface: #ffffff;
    --ps-border: #e3ebf2;
    --ps-text: #2c3e50;
    --ps-muted: #6b7c8c;
    --ps-primary: #4f9fcf;
    --ps-primary-dark: #3a86b8;
    --ps-primary-soft: #e6f3fb;

    --bs-body-bg: var(--ps-bg);
    --bs-body-color: var(--ps-text);
    --bs-primary: var(--ps-primary);
    --bs-primary-rgb: 79, 159, 207;
    --bs-link-color: var(--ps-primary-dark);
    --bs-link-hover-color: #2b6f9c;
    --bs-border-color: var(--ps-border);
    --bs-border-radius: .6rem;
    --bs-font-sans-serif: "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
}

html { font-size: 15px; position: relative; min-height: 100%; }
@media (min-width: 768px) { html { font-size: 16px; } }
body { margin-bottom: 60px; background: var(--ps-bg); color: var(--ps-text); }
.text-muted { color: var(--ps-muted) !important; }
h1, .h3, .h4 { font-weight: 600; }

/* top bar */
.app-navbar { background: var(--ps-surface); border-bottom: 1px solid var(--ps-border); box-shadow: 0 1px 3px rgba(44, 62, 80, .05); }
.app-navbar .navbar-brand { color: var(--ps-text); display: flex; align-items: center; gap: .5rem; }
.app-navbar .nav-link { color: var(--ps-muted); border-radius: .5rem; padding: .45rem .8rem; margin: 0 .1rem; }
.app-navbar .nav-link:hover { color: var(--ps-primary-dark); background: var(--ps-primary-soft); }
.brand-mark {
    display: inline-flex; align-items: center; justify-content: center;
    width: 1.9rem; height: 1.9rem; border-radius: .55rem;
    background: linear-gradient(135deg, #7fc4e8, var(--ps-primary)); color: #fff; font-weight: 700;
}
.btn-user { background: var(--ps-primary-soft); border: 0; color: var(--ps-text); border-radius: 2rem; padding: .35rem .9rem; }
.btn-user:hover, .btn-user:focus, .btn-user.show { background: #d6ebf8; color: var(--ps-text); }

.footer { position: absolute; bottom: 0; width: 100%; line-height: 60px; white-space: nowrap; }

/* cards */
.card { background: var(--ps-surface); border: 1px solid var(--ps-border); border-radius: .8rem; box-shadow: 0 1px 2px rgba(44, 62, 80, .04); }
.card-header { font-weight: 600; background: #f8fbfd; border-bottom: 1px solid var(--ps-border); border-radius: .8rem .8rem 0 0 !important; }
.card.border-primary { border-color: #bfe0f3 !important; background: var(--ps-primary-soft); }

/* buttons */
.btn { border-radius: .55rem; }
.btn-primary { --bs-btn-bg: var(--ps-primary); --bs-btn-border-color: var(--ps-primary); --bs-btn-hover-bg: var(--ps-primary-dark); --bs-btn-hover-border-color: var(--ps-primary-dark); --bs-btn-active-bg: #2f78a8; --bs-btn-active-border-color: #2f78a8; --bs-btn-disabled-bg: var(--ps-primary); --bs-btn-disabled-border-color: var(--ps-primary); }
.btn-outline-primary { --bs-btn-color: var(--ps-primary-dark); --bs-btn-border-color: #a9d3ec; --bs-btn-hover-bg: var(--ps-primary); --bs-btn-hover-border-color: var(--ps-primary); --bs-btn-active-bg: var(--ps-primary-dark); --bs-btn-active-border-color: var(--ps-primary-dark); }
.btn-outline-secondary { --bs-btn-color: #5d7083; --bs-btn-border-color: #cdd9e3; --bs-btn-hover-bg: #eaf1f7; --bs-btn-hover-color: var(--ps-text); --bs-btn-hover-border-color: #cdd9e3; }
.btn-outline-danger { --bs-btn-color: #c95c63; --bs-btn-border-color: #f0c2c5; --bs-btn-hover-bg: #c95c63; --bs-btn-hover-border-color: #c95c63; }
.btn-outline-success { --bs-btn-color: #3f9b78; --bs-btn-border-color: #bfe3d4; --bs-btn-hover-bg: #3f9b78; --bs-btn-hover-border-color: #3f9b78; }

/* forms */
.form-control, .form-select { border-color: #d5e1ea; background: #fcfdfe; }
.form-control:focus, .form-select:focus { border-color: var(--ps-primary); box-shadow: 0 0 0 .2rem rgba(79, 159, 207, .18); }
.form-check-input:checked { background-color: var(--ps-primary); border-color: var(--ps-primary); }
.form-label { font-weight: 500; }
.free-text-rule { color: #8a6d3b; background: #fdf8ec; border: 1px solid #f3e6c4; border-radius: .45rem; padding: .35rem .6rem; margin-top: .4rem; }
.confirm-card { background: #f6fbf8; border-color: #cfe9dc; }
.choice-scroll { max-height: 260px; overflow-y: auto; border: 1px solid #d5e1ea; border-radius: .5rem; padding: .5rem .75rem; background: #fff; }

/* tables */
.table { --bs-table-bg: transparent; --bs-table-hover-bg: #f1f8fc; }
.table > thead > tr > th { background: #f8fbfd; color: var(--ps-muted); font-weight: 600; font-size: .82rem; text-transform: uppercase; letter-spacing: .03em; border-bottom: 1px solid var(--ps-border); }
.card > .table-responsive > .table, .card > .table { margin-bottom: 0; }

/* soft badges and alerts */
.badge { font-weight: 500; }
.badge-soft-success { background: #e1f4ec; color: #2f8a68; }
.badge-soft-secondary { background: #eceff3; color: #6b7785; }
.badge-soft-primary { background: #d9ecf8; color: #2d78a6; }
.alert { border-radius: .65rem; border: 1px solid transparent; }
.alert-success { background: #e8f6ef; border-color: #c8e8d8; color: #2a6e52; }
.alert-danger { background: #fdeeee; border-color: #f4cfd0; color: #a2474d; }

/* sign-in / password pages */
body.bare { background: linear-gradient(160deg, #eaf5fc 0%, #f7fbfe 55%, #eef7f3 100%); min-height: 100vh; }
.auth-wrap { max-width: 440px; margin: 0 auto; padding: 8vh 0 3rem; }
.auth-brand { display: flex; align-items: center; justify-content: center; gap: .6rem; font-size: 1.6rem; font-weight: 600; margin-bottom: 1.5rem; color: var(--ps-text); }
.auth-brand .brand-mark { width: 2.4rem; height: 2.4rem; font-size: 1.2rem; }
.auth-card { box-shadow: 0 8px 28px rgba(60, 110, 150, .10); }
