:root { --ink:#17211b; --muted:#68736c; --line:#dde5df; --cream:#f5f7f2; --lime:#d9f277; }
body { color:var(--ink); background:#fff; }
.navbar-brand { letter-spacing:-.03em; }
.navbar-glass { background:#4B4F36; border-bottom:1px solid rgba(255,255,255,.18); box-shadow:0 .35rem 1.25rem rgba(23,33,27,.18); }
.navbar-glass .navbar-brand, .navbar-glass .nav-link { color:#fff; }
.navbar-glass .nav-link:hover, .navbar-glass .nav-link:focus { color:#d9f277; }
.navbar-glass .text-secondary { color:rgba(255,255,255,.78) !important; }
.navbar-glass .btn-outline-dark { color:#fff; border-color:rgba(255,255,255,.7); }
.navbar-glass .btn-outline-dark:hover { color:#4B4F36; background:#fff; border-color:#fff; }
.navbar-glass .navbar-toggler { border-color:rgba(255,255,255,.7); }
.navbar-glass .navbar-toggler-icon { filter:invert(1); }
.brand-logo { width:34px; height:34px; object-fit:contain; border-radius:8px; }
.hero-section { background:linear-gradient(120deg,rgba(172,113,56,.18) 0%,rgba(255,255,255,.72) 70%); border-bottom:1px solid rgba(172,113,56,.16); }
.hero-section .hero-eyebrow { color:#8f5a2f; }
.hero-copy { color:var(--muted); }
.eyebrow { color:#71837a; font-size:.73rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }

.section-heading { display:flex; justify-content:space-between; align-items:end; gap:1rem; margin-bottom:1.5rem; }
.section-heading h1,.section-heading h2 { letter-spacing:-.04em; margin:0; }
.announcement-card { display:flex; gap:1rem; border:1px solid var(--line); border-radius:16px; padding:1.25rem; margin-bottom:.8rem; background:#fff; }
.announcement-dot { flex:0 0 10px; width:10px; height:10px; margin-top:.35rem; border-radius:50%; background:var(--lime); box-shadow:0 0 0 5px #f2f8d9; }
.quick-link { display:flex; align-items:center; gap:1rem; color:var(--ink); text-decoration:none; border:1px solid var(--line); border-radius:14px; padding:1rem; transition:transform .15s, border-color .15s; }
.quick-link:hover { color:var(--ink); border-color:#aebcaf; transform:translateY(-2px); }
.quick-link small { display:block; color:var(--muted); margin-top:.15rem; }
.quick-icon { display:grid; place-items:center; width:35px; height:35px; border-radius:10px; background:var(--cream); }
.quick-icon-image { object-fit:contain; padding:.35rem; }
.empty-state { padding:2rem; color:var(--muted); border:1px dashed var(--line); border-radius:16px; }
.org-chart { display:flex; align-items:flex-start; justify-content:center; gap:1.5rem; min-width:max-content; overflow-x:auto; padding:1rem .25rem 2rem; }
.org-node { --org-card-width:220px; position:relative; display:flex; flex-direction:column; align-items:center; min-width:var(--org-card-width); }
.org-person-card { position:relative; z-index:1; display:flex; align-items:center; gap:.85rem; width:var(--org-card-width); min-height:92px; padding:1rem; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:0 .5rem 1.25rem rgba(23,33,27,.07); }
.org-avatar { display:grid; place-items:center; flex:0 0 42px; width:42px; height:42px; border-radius:50%; background:rgba(172,113,56,.18); color:#8f5a2f; font-weight:700; }
.org-children { position:relative; display:flex; justify-content:center; gap:1.5rem; margin-top:2.5rem; }
.org-children::before { content:""; position:absolute; top:-2.5rem; left:50%; width:1px; height:1.25rem; background:#c8b29d; }
.org-children.single-child::before { top:-2.5rem; height:2.5rem; }
.org-children:not(.single-child)::after { content:""; position:absolute; top:-1.25rem; left:calc(var(--org-card-width) / 2); right:calc(var(--org-card-width) / 2); height:1px; background:#c8b29d; }
.org-children > .org-node::before { content:""; position:absolute; top:-1.25rem; left:50%; width:1px; height:1.25rem; background:#c8b29d; }
.org-children.single-child > .org-node::before { display:none; }
@media (max-width: 767.98px) { .org-chart { padding-inline:0; } .org-children { gap:1rem; } .org-node { --org-card-width:205px; } }
.directory-search { width:min(100%, 340px); }
.directory-table { border:1px solid var(--line); border-radius:16px; overflow:hidden; }
.table { margin-bottom:0; }
.table > :not(caption) > * > * { padding:1rem 1.25rem; border-color:var(--line); }
.avatar { display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:var(--lime); font-weight:700; }
@media (max-width: 576px) { .section-heading { align-items:start; flex-direction:column; } .directory-search { width:100%; } }
.auth-page { min-height:calc(100vh - 75px); display:grid; place-items:center; padding:4rem 1.25rem; background:radial-gradient(circle at 15% 15%, #edf6df 0, transparent 34%), linear-gradient(135deg, #f7faf4 0%, #fff 58%, #f1f6ed 100%); }
.auth-shell { width:min(100%, 960px); display:grid; grid-template-columns:minmax(0, .9fr) minmax(360px, 1fr); align-items:center; gap:clamp(2rem, 7vw, 6rem); }
.auth-brand { padding:1rem 0; }
.auth-logo { width:88px; height:88px; object-fit:contain; border-radius:22px; margin-bottom:1.5rem; box-shadow:0 12px 30px rgba(23,33,27,.12); }
.auth-brand h1 { margin:0; font-size:clamp(2.75rem, 6vw, 4.5rem); line-height:.95; letter-spacing:-.07em; }
.auth-intro { max-width:27rem; margin:1.25rem 0 0; color:var(--muted); font-size:1.1rem; line-height:1.6; }
.auth-card { background:rgba(255,255,255,.9); border:1px solid rgba(221,229,223,.95); border-radius:24px; padding:clamp(1.5rem, 4vw, 2.5rem); box-shadow:0 24px 70px rgba(23,33,27,.11); backdrop-filter:blur(12px); }
.auth-card-heading h2 { margin:0; letter-spacing:-.04em; }
.auth-card-heading p { color:var(--muted); margin:.35rem 0 1.75rem; }
.auth-form .form-control { min-height:3rem; border-color:var(--line); border-radius:11px; }
.auth-form .form-control:focus { border-color:#9caf87; box-shadow:0 0 0 .25rem rgba(156,175,135,.2); }
.auth-submit { min-height:3rem; border-radius:11px; transition:transform 160ms ease-out, box-shadow 160ms ease-out; }
.auth-submit:hover { box-shadow:0 8px 18px rgba(23,33,27,.16); transform:translateY(-1px); }
.auth-submit:active, .auth-google:active { transform:scale(.98); }
.auth-muted-link { color:var(--muted); text-decoration:none; }
.auth-muted-link:hover { color:var(--ink); text-decoration:underline; }
.auth-divider { display:flex; align-items:center; gap:.75rem; color:var(--muted); font-size:.8rem; margin:1.5rem 0; }
.auth-divider::before, .auth-divider::after { content:""; height:1px; flex:1; background:var(--line); }
.auth-google { min-height:3rem; border-radius:11px; display:flex; align-items:center; justify-content:center; gap:.65rem; }
.google-mark { font-weight:800; color:#4285f4; }
@media (max-width: 767px) { .auth-page { padding:2.5rem 1rem; } .auth-shell { grid-template-columns:1fr; gap:1.5rem; max-width:480px; } .auth-brand { text-align:center; } .auth-logo { width:68px; height:68px; margin-bottom:1rem; } .auth-intro { margin-inline:auto; } }
.login-body { color:var(--ink); background:#f8faf7; }
.login-hero { min-height:100vh; background:linear-gradient(145deg, #6d4324 0%, #8f5a2f 56%, #ac7138 100%); }
.login-hero-content { max-width:560px; }
.login-logo { width:92px; height:92px; flex:0 0 92px; object-fit:contain; border-radius:24px; background:#fff; padding:.35rem; box-shadow:0 1rem 2rem rgba(0,0,0,.18); }
.login-brand h1 { line-height:1; }
.login-kicker { color:var(--lime); letter-spacing:.16em; }
.login-hero-copy { max-width:30rem; color:#d6e2d7; }
.login-card { width:min(100%, 500px); }
.login-card .form-control { border-color:#ced8cf; }
.login-card .form-control:focus { border-color:#8ca67f; box-shadow:0 0 0 .25rem rgba(140,166,127,.2); }
.login-card .btn { min-height:3.25rem; }
.login-card-eyebrow { display:block; margin-bottom:.55rem; color:#8f5a2f; font-size:.72rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.google-signin-form { margin:0; }
.google-signin { position:relative; display:flex; align-items:center; justify-content:center; gap:.7rem; width:100%; min-height:3.5rem; padding:.75rem 3rem; color:#fff; background:#000; border:1px solid #000; border-radius:13px; box-shadow:0 .35rem .9rem rgba(23,33,27,.14); font:inherit; font-weight:700; text-decoration:none; cursor:pointer; transition:transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease; }
.google-signin:hover { color:#fff; background:#1f1f1f; border-color:#1f1f1f; box-shadow:0 .65rem 1.25rem rgba(23,33,27,.2); transform:translateY(-1px); }
.google-signin:focus-visible { outline:3px solid rgba(0,0,0,.25); outline-offset:3px; }
.google-signin:active { color:#fff; background:#000; transform:translateY(0) scale(.99); }
.google-signin-icon { flex:0 0 22px; width:22px; height:22px; }
.login-security-note { margin-top:1.25rem; color:#7a857d; font-size:.78rem; text-align:center; }
@media (max-width: 991.98px) { .login-hero { min-height:auto; } .login-hero-content { max-width:500px; } .login-hero h1 { font-size:clamp(2.5rem, 9vw, 4rem); } }
@media (max-width: 767px) { .auth-page { padding:2.5rem 1rem; } .auth-shell { grid-template-columns:1fr; gap:1.5rem; max-width:480px; } .auth-brand { text-align:center; } .auth-logo { width:68px; height:68px; margin-bottom:1rem; } .auth-intro { margin-inline:auto; } }
@media (max-width: 575.98px) { .login-brand { gap:1rem !important; } .login-logo { width:72px; height:72px; flex-basis:72px; border-radius:18px; } .login-hero h1 { font-size:2.6rem; } .login-hero-copy { font-size:1rem; } .login-card .card-body { padding:1.5rem !important; } }
