:root {
    --gt-primary-blue: #1F4E6B;
    --gt-dark-navy: #163A4D;
    --gt-supporting-blue: #2E6F95;
    --gt-light-blue: #DCEAF2;
    --gt-warm-accent: #C97832;
    --gt-warm-pale-accent: #F5E5D6;
    --gt-page-bg: #F7F9FB;
    --gt-secondary-surface: #EAF0F4;
    --gt-border: #CBD5DF;
    --gt-text: #1F2933;
    --gt-text-muted: #52606D;
    --gt-white: #FFFFFF;
    --gt-focus: rgba(46, 111, 149, 0.35);
}

body {
    background: var(--gt-page-bg);
    color: var(--gt-text);
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

a {
    color: var(--gt-primary-blue);
}

a:hover {
    color: var(--gt-dark-navy);
}

.gt-app-header {
    background: var(--gt-white);
    border-bottom: 1px solid var(--gt-border);
    box-shadow: 0 2px 12px rgba(22, 58, 77, 0.08);
}

.gt-app-header .navbar-brand {
    color: var(--gt-dark-navy);
    font-weight: 700;
}

.gt-brand-logo {
    display: block;
    width: auto;
    max-width: 210px;
    height: 50px;
    object-fit: contain;
}

.gt-app-header .nav-link {
    color: var(--gt-text-muted);
    font-weight: 500;
}

.gt-app-header .nav-link:hover,
.gt-app-header .nav-link:focus {
    color: var(--gt-primary-blue);
}

.gt-app-header .navbar-toggler {
    border-color: var(--gt-border);
}

.gt-app-header .navbar-toggler-icon {
    --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23163A4D' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.gt-app-header .navbar-toggler:focus,
.btn:focus-visible,
.form-control:focus,
.form-select:focus {
    box-shadow: 0 0 0 0.25rem var(--gt-focus);
}

.gt-app-main {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--gt-dark-navy);
}

.text-muted {
    color: var(--gt-text-muted) !important;
}

.card {
    border-color: var(--gt-border);
    box-shadow: 0 4px 18px rgba(22, 58, 77, 0.06);
}

.card-header {
    border-bottom-color: var(--gt-border);
}

.table-light,
.table > thead.table-light > tr > * {
    --bs-table-bg: var(--gt-secondary-surface);
    --bs-table-color: var(--gt-dark-navy);
}

.table-dark,
.table > thead.table-dark > tr > * {
    --bs-table-bg: var(--gt-dark-navy);
    --bs-table-color: var(--gt-white);
}

.table-secondary,
.table > .table-secondary > * {
    --bs-table-bg: var(--gt-secondary-surface);
    --bs-table-color: var(--gt-dark-navy);
}

.form-control,
.form-select {
    border-color: var(--gt-border);
    color: var(--gt-text);
}

.form-label {
    color: var(--gt-dark-navy);
    font-weight: 600;
}

.btn-primary {
    --bs-btn-bg: var(--gt-primary-blue);
    --bs-btn-border-color: var(--gt-primary-blue);
    --bs-btn-hover-bg: var(--gt-dark-navy);
    --bs-btn-hover-border-color: var(--gt-dark-navy);
    --bs-btn-active-bg: var(--gt-dark-navy);
    --bs-btn-active-border-color: var(--gt-dark-navy);
}

.btn-outline-primary {
    --bs-btn-color: var(--gt-primary-blue);
    --bs-btn-border-color: var(--gt-primary-blue);
    --bs-btn-hover-bg: var(--gt-primary-blue);
    --bs-btn-hover-border-color: var(--gt-primary-blue);
    --bs-btn-active-bg: var(--gt-dark-navy);
    --bs-btn-active-border-color: var(--gt-dark-navy);
}

.btn-secondary {
    --bs-btn-bg: var(--gt-supporting-blue);
    --bs-btn-border-color: var(--gt-supporting-blue);
    --bs-btn-hover-bg: var(--gt-primary-blue);
    --bs-btn-hover-border-color: var(--gt-primary-blue);
}

.btn-outline-secondary {
    --bs-btn-color: var(--gt-supporting-blue);
    --bs-btn-border-color: var(--gt-border);
    --bs-btn-hover-bg: var(--gt-secondary-surface);
    --bs-btn-hover-border-color: var(--gt-supporting-blue);
    --bs-btn-hover-color: var(--gt-dark-navy);
}

.alert-info {
    --bs-alert-color: var(--gt-dark-navy);
    --bs-alert-bg: var(--gt-light-blue);
    --bs-alert-border-color: var(--gt-border);
}

.gt-login-shell {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.gt-login-main {
    flex: 1;
    display: flex;
    align-items: center;
    padding: 2rem 0;
}

.gt-login-card {
    border-top: 4px solid var(--gt-primary-blue);
}

.gt-footer {
    color: var(--gt-text-muted);
}

@media (max-width: 575.98px) {
    .gt-brand-logo {
        max-width: 170px;
        height: 40px;
    }

    .gt-app-main {
        padding-top: 1rem;
    }
}
