/* [2026-10-28 KLS] Elevita portal — brand tokens shared with ElevitaCore's site.css. */
:root {
    --elevita-accent-teal: #2fa4a0;
    --elevita-accent-teal-dark: #1f7a74;
    --elevita-accent-teal-darker: #155e63;
    --portal-bg: #f5f7fb;
    --portal-surface: #ffffff;
    --portal-text: #1f2937;
    --portal-muted: #6b7280;
    --portal-border: #e5e7eb;
}

body {
    background-color: var(--portal-bg);
    color: var(--portal-text);
    min-height: 100vh;
}

a { color: var(--elevita-accent-teal-dark); }

/* ---------- Sign-in pages (same look as ElevitaCore's login) ---------- */
.identity-page main { min-height: 100vh; display: flex; align-items: center; }

.bg-elevita-gradient {
    background: linear-gradient(160deg, var(--elevita-accent-teal-dark) 0%, var(--elevita-accent-teal) 100%);
}

.login-card { border-radius: 1.5rem; box-shadow: 0 20px 40px rgba(0, 0, 0, 0.12); }
.login-form-panel { background-color: #ffffff; }

.logo-frame {
    display: inline-flex;
    padding: 7px;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.25);
    box-shadow: 0 0 0 2px rgba(46, 163, 155, 0.45), 0 12px 28px rgba(0, 0, 0, 0.25);
}

.logo-img {
    display: block;
    max-width: 200px;
    height: auto;
    border-radius: 18px;
    background: #ffffff;
}

.btn-primary-login {
    background-color: #2fa4a0;
    border-color: #2fa4a0;
    color: #ffffff !important;
}
.btn-primary-login:hover { background-color: #3fb5b1; border-color: #3fb5b1; }
.btn-primary-login:focus,
.btn-primary-login:active,
.btn-primary-login:focus-visible { background-color: #278f8b; border-color: #278f8b; box-shadow: none; }

.code-input {
    font-size: 1.5rem;
    letter-spacing: .4rem;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

/* ---------- Signed-in shell ---------- */
.portal-header {
    background: linear-gradient(160deg, var(--elevita-accent-teal-dark) 0%, var(--elevita-accent-teal) 100%);
    color: #fff;
}
.portal-header .navbar-brand img { height: 36px; border-radius: 8px; background: #fff; padding: 2px; }
.portal-header .nav-link,
.portal-header .navbar-text { color: rgba(255, 255, 255, .92); }
.portal-header .nav-link:hover,
.portal-header .nav-link.active { color: #fff; }
.portal-header .nav-link.active { font-weight: 600; border-bottom: 2px solid #fff; }
.portal-header .nav-link.disabled { color: rgba(255, 255, 255, .55); }

.subject-bar,
.org-bar {
    background: var(--portal-surface);
    border-bottom: 1px solid var(--portal-border);
}

.portal-card {
    background: var(--portal-surface);
    border: 1px solid var(--portal-border);
    border-radius: 1rem;
    box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .05);
}

.module-tile {
    display: block;
    height: 100%;
    padding: 1.25rem;
    text-decoration: none;
    color: inherit;
    transition: box-shadow .15s ease, transform .15s ease;
}
a.module-tile:hover { box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .08); transform: translateY(-1px); color: inherit; }
.module-tile.is-soon { opacity: .65; cursor: default; }
.module-tile .module-title { font-weight: 600; margin-bottom: .25rem; }
.module-tile .module-text { color: var(--portal-muted); font-size: .9rem; margin: 0; }

.badge-soon { background: #eef2f7; color: var(--portal-muted); font-weight: 500; }

.portal-footer { color: var(--portal-muted); font-size: .8rem; }
