/* =============================================================================
   Visitor Manager - Government of Maharashtra
   Modern responsive government theme: Dark Purple / White / Light Gray
   ============================================================================= */
:root {
    --gov-purple-900: #2e1a47;
    --gov-purple-800: #3b2260;
    --gov-purple-700: #4b2e83;
    --gov-purple-600: #5b3a9e;
    --gov-purple-100: #ece6f5;
    --gov-gray-100: #f4f4f6;
    --gov-gray-200: #e9e9ee;
    --gov-gray-600: #5f6368;
    --gov-white: #ffffff;
    --gov-danger: #b3261e;
    --gov-success: #146c2e;
}

html, body {
    background-color: var(--gov-gray-100);
    color: #212529;
    font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    min-height: 100%;
}

/* ---- Top government strip ---- */
.gov-topbar {
    background: var(--gov-purple-900);
    color: var(--gov-white);
    font-size: .8rem;
    padding: .25rem 1rem;
}
.gov-topbar img { height: 16px; margin-right: .4rem; }

/* ---- Header / brand ---- */
.gov-header {
    background: var(--gov-white);
    border-bottom: 4px solid var(--gov-purple-700);
    padding: .6rem 1rem;
}
.gov-header .brand-title { color: var(--gov-purple-900); font-weight: 700; }
.gov-header .brand-sub { color: var(--gov-gray-600); font-size: .85rem; }
.gov-header img.gov-logo { height: 52px; }

/* ---- Navigation ---- */
.navbar.gov-nav {
    background: linear-gradient(90deg, var(--gov-purple-900), var(--gov-purple-700));
}
.gov-nav .nav-link, .gov-nav .navbar-brand { color: #f2ecfb !important; }
.gov-nav .nav-link:hover, .gov-nav .nav-link:focus { color: #ffffff !important; background: rgba(255,255,255,.08); border-radius: .375rem; }
.gov-nav .nav-link.active { background: rgba(255,255,255,.16); border-radius: .375rem; color: #fff !important; }
.gov-nav .dropdown-menu { border: 1px solid var(--gov-purple-100); }
.gov-nav .dropdown-item:active { background-color: var(--gov-purple-700); }
.gov-nav .btn-logout { color: var(--gov-danger); background: var(--gov-white); }

/* ---- Banner ---- */
.gov-banner img { width: 100%; max-height: 180px; object-fit: cover; }

/* ---- Cards & panels ---- */
.gov-card {
    background: var(--gov-white);
    border: 1px solid var(--gov-gray-200);
    border-radius: .75rem;
    box-shadow: 0 1px 3px rgba(46, 26, 71, .08);
}
.gov-card .card-header {
    background: var(--gov-purple-100);
    color: var(--gov-purple-900);
    font-weight: 600;
    border-bottom: 1px solid var(--gov-gray-200);
    border-radius: .75rem .75rem 0 0;
}

/* ---- Buttons ---- */
.btn-gov-primary {
    background-color: var(--gov-purple-700);
    border-color: var(--gov-purple-700);
    color: var(--gov-white);
}
.btn-gov-primary:hover, .btn-gov-primary:focus {
    background-color: var(--gov-purple-800);
    border-color: var(--gov-purple-800);
    color: var(--gov-white);
}
.btn-gov-outline {
    color: var(--gov-purple-700);
    border-color: var(--gov-purple-700);
    background: var(--gov-white);
}
.btn-gov-outline:hover { background: var(--gov-purple-100); color: var(--gov-purple-900); }

/* ---- Wizard steps (BookingSlot) ---- */
.gov-steps { display: flex; flex-wrap: wrap; gap: .25rem; margin-bottom: 1rem; padding-left: 0; }
.gov-steps li {
    list-style: none; flex: 1 1 0; min-width: 130px; text-align: center;
    background: var(--gov-gray-200); color: var(--gov-gray-600);
    padding: .55rem .5rem; border-radius: .5rem; font-size: .85rem; font-weight: 600;
}
.gov-steps li.active { background: var(--gov-purple-700); color: var(--gov-white); }

/* ---- Tables / grids ---- */
.table thead th { background: var(--gov-purple-100); color: var(--gov-purple-900); }
.table-hover tbody tr:hover { background: #f7f4fc; }
.gv-empty { color: var(--gov-gray-600); font-style: italic; }

/* ---- Forms ---- */
.form-label { font-weight: 600; color: var(--gov-purple-900); }
.form-control:focus, .form-select:focus {
    border-color: var(--gov-purple-600);
    box-shadow: 0 0 0 .2rem rgba(75, 46, 131, .18);
}
.required::after { content: " *"; color: var(--gov-danger); }

/* ---- Messages ---- */
.text-error { color: var(--gov-danger); font-weight: 600; }
.text-message { color: var(--gov-success); font-weight: 600; }

/* ---- Captcha ---- */
.captcha-img { border: 1px solid var(--gov-gray-200); border-radius: .375rem; background: #fff; }

/* ---- Login pages ---- */
.login-wrap { max-width: 480px; margin: 2rem auto; }
.login-wrap .gov-card { padding: 0; }
.login-emblem { height: 64px; }

/* ---- Receipt ---- */
.receipt-photo { max-height: 140px; border: 1px solid var(--gov-gray-200); }
.receipt-qr { max-height: 160px; }
.doc-embed { width: 100%; max-width: 500px; height: 300px; border: 1px solid var(--gov-gray-200); }
.photo-preview { max-height: 160px; border: 1px solid var(--gov-gray-200); }

/* ---- Calendar of available seats ---- */
.avail-calendar td, .avail-calendar th { vertical-align: top; min-width: 110px; }
.avail-calendar .slot-line { display: block; font-size: .75rem; color: var(--gov-purple-700); }
.avail-calendar .day-num { font-weight: 700; }
.avail-calendar td.selectable { cursor: pointer; }
.avail-calendar td.selectable:hover { background: var(--gov-purple-100); }

/* ---- Footer ---- */
.gov-footer {
    background: var(--gov-purple-900);
    color: #d9d0ea;
    padding: 1rem;
    font-size: .85rem;
    margin-top: 2rem;
}
.gov-footer a { color: #fff; }

/* ---- Countdown timer ---- */
.booking-timer { color: var(--gov-danger); font-weight: 700; }

/* ---- Print ---- */
@media print {
    .gov-nav, .gov-topbar, .gov-footer, .no-print { display: none !important; }
    body { background: #fff; }
}
