:root {
    --charis-primary-950: #0a3520;
    --charis-primary-900: #124b2c;
    --charis-primary-800: #176239;
    --charis-primary-700: #21804a;
    --charis-primary-600: #2a9657;
    --charis-primary-100: #dff3e6;
    --charis-primary-50: #f2faf5;
    --charis-accent: #d43d3d;
    --charis-accent-soft: #fee9e9;
    --ink: #173d27;
    --muted: #687b70;
    --line: #d8e5dc;
    --bg: #f1f6f3;
    --green: #176239;
    --green2: #2a9657;
    --mint: #dff3e6;
    --shadow: 0 18px 45px rgba(12, 61, 35, .09);
}

html,
body {
    background: radial-gradient(circle at 8% -10%, #dcefe3 0, transparent 30rem), var(--bg);
}

::selection {
    color: #fff;
    background: var(--charis-primary-700);
}

.sidebar {
    border-right-color: var(--line);
    background: linear-gradient(180deg, #fff 0%, #fbfefc 70%, var(--charis-primary-50) 100%);
}

.sidebar::after {
    position: absolute;
    right: -1px;
    bottom: 0;
    left: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--charis-primary-700) 0 76%, var(--charis-accent) 76%);
    content: "";
}

.sidebar .company-brand-mark {
    padding: 5px;
    border: 1px solid #cfe0d4;
    background: #fff;
    box-shadow: 0 8px 20px rgba(12, 61, 35, .1);
}

.sidebar .company-brand-mark img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.sidebar .brand-copy {
    color: var(--charis-primary-950);
}

.sidebar .brand small {
    color: var(--charis-primary-700);
    letter-spacing: .65px;
}

.nav-group-title {
    color: #819288;
}

.nav a {
    color: #4d6758;
}

.nav a:hover,
.nav a.active {
    color: var(--charis-primary-800);
    background: var(--charis-primary-100);
}

.nav a.active::before {
    background: var(--charis-accent);
}

.sidebar-toggle:hover,
.sidebar-toggle:focus-visible {
    border-color: #9fc8aa;
    color: var(--charis-primary-700);
}

.topbar {
    border-bottom-color: var(--line);
    background: rgba(241, 246, 243, .92);
    backdrop-filter: blur(14px);
}

.topbar .eyebrow,
.eyebrow {
    color: var(--charis-primary-700);
}

.btn.primary {
    background: linear-gradient(135deg, var(--charis-primary-800), var(--charis-primary-600));
    box-shadow: 0 9px 20px rgba(23, 98, 57, .18);
}

.btn.primary:hover {
    background: linear-gradient(135deg, var(--charis-primary-900), var(--charis-primary-700));
}

.btn.secondary {
    color: var(--charis-primary-800);
    background: var(--charis-primary-100);
}

.panel,
.today-card,
.camera-panel,
.verify-panel {
    border-color: var(--line);
    box-shadow: var(--shadow);
}

.welcome-card,
.admin-welcome,
.profile-card {
    background: linear-gradient(125deg, var(--charis-primary-950), var(--charis-primary-800) 62%, var(--charis-primary-600));
    box-shadow: 0 16px 36px rgba(12, 61, 35, .2);
}

.login-visual {
    border-right: 5px solid var(--charis-accent);
    background: linear-gradient(145deg, var(--charis-primary-950), var(--charis-primary-800) 65%, var(--charis-primary-600));
}

.visual-copy h1 em {
    color: #bce9ca;
}

.institution-logo-shell {
    width: 74px;
    height: 58px;
    flex: 0 0 74px;
    padding: 4px 6px;
    border: 1px solid #cfe0d4;
    background: #fff;
    box-shadow: 0 8px 20px rgba(12, 61, 35, .1);
}

.institution-logo-shell img {
    width: 100%;
    height: 100%;
    padding: 2px;
    object-fit: contain;
}

.login-form-brand .institution-logo-shell:not(:has(.institution-logo-initial)) {
    width: 68px;
    height: 52px;
    flex-basis: 68px;
    padding: 4px 6px;
}

.login-form-wrap::before {
    background: linear-gradient(90deg, var(--charis-primary-800) 0 76%, var(--charis-accent) 76%);
}

.login-input > i,
.auth-simple-icon,
.registration-choice > a > span {
    color: var(--charis-primary-800);
    background: var(--charis-primary-100);
}

.login-options > a,
.password-toggle:hover,
.auth-back-link,
.registration-choice b,
.register-link a {
    color: var(--charis-primary-700);
}

.login-card input:focus,
.auth-simple-card .login-input input:focus,
.register-form input:focus,
.register-form select:focus {
    border-color: var(--charis-primary-600);
    box-shadow: 0 0 0 3px rgba(42, 150, 87, .12);
}

.company-mark,
.company-logo-preview {
    background: #fff;
}

.company-mark img,
.company-logo-preview img {
    padding: 7px;
    object-fit: contain;
}

.shift-settings-panel {
    position: relative;
    overflow: hidden;
    max-width: 1180px;
    border-top: 6px solid var(--charis-primary-600);
}

.shift-settings-panel::before {
    position: absolute;
    top: -6px;
    right: 0;
    width: 26%;
    height: 6px;
    background: var(--charis-accent);
    content: "";
}

.settings-intro {
    color: var(--muted);
}

.hospital-shift-group {
    border-color: var(--line);
    border-radius: 20px;
    background: linear-gradient(145deg, #fff, var(--charis-primary-50));
}

.shift-group-head h4 {
    color: var(--charis-primary-950);
}

.category-mark {
    color: var(--charis-primary-800);
    background: var(--charis-primary-100);
    box-shadow: inset 0 0 0 1px rgba(42, 150, 87, .08);
}

.shift-card {
    position: relative;
    overflow: hidden;
    border-color: #dce8df;
    border-top: 4px solid var(--charis-primary-600);
    background: #fff;
    box-shadow: 0 10px 26px rgba(12, 61, 35, .06);
    transition: transform .18s ease, box-shadow .18s ease;
}

.shift-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 32px rgba(12, 61, 35, .1);
}

.shift-card.shift-tone-1 {
    border-top-color: var(--charis-accent);
}

.shift-card.shift-tone-2 {
    border-top-color: var(--charis-primary-800);
}

.shift-tone-0 .shift-symbol {
    color: var(--charis-primary-800);
    background: var(--charis-primary-100);
}

.shift-tone-1 .shift-symbol {
    color: var(--charis-accent);
    background: var(--charis-accent-soft);
}

.shift-tone-2 .shift-symbol {
    color: #fff;
    background: var(--charis-primary-800);
}

.shift-name-field input,
.shift-time-fields input,
.tolerance-field input,
.shift-category-field select,
.shift-dialog input,
.shift-dialog select {
    color: var(--ink);
}

.shift-name-field input:focus,
.shift-time-fields input:focus,
.tolerance-field input:focus,
.shift-category-field select:focus,
.shift-dialog input:focus,
.shift-dialog select:focus {
    border-color: var(--charis-primary-600);
    box-shadow: 0 0 0 3px rgba(42, 150, 87, .12);
}

.shift-card-footer,
.shift-save {
    border-color: #e1eae4;
}

.delete-shift {
    color: var(--charis-accent);
}

.shift-dialog {
    overflow: hidden;
    border-top: 6px solid var(--charis-accent);
    box-shadow: 0 25px 70px rgba(10, 53, 32, .25);
}

.shift-dialog::backdrop {
    background: rgba(10, 53, 32, .5);
}

@media (max-width: 680px) {
    .institution-logo-shell,
    .login-form-brand .institution-logo-shell:not(:has(.institution-logo-initial)) {
        width: 64px;
        height: 49px;
        flex-basis: 64px;
    }

    .shift-settings-panel {
        border-top-width: 5px;
    }

    .hospital-shift-group {
        border-radius: 16px;
    }
}
