/* ---------------------------
   ECTHub shell styling
   Calm, mostly-light theme
   --------------------------- */

:root {
    /* Shell tokens (fallbacks). CalBoard overrides with its own tokens too. */
    --ih-bg: #eef2f7; /* cool gray-blue */
    --ih-surface: #fbfcfe; /* off-white */
    --ih-border: rgba(15, 23, 42, 0.12);
    --ih-border-soft: rgba(15, 23, 42, 0.08);
    --ih-text: #0f172a;
    --ih-muted: #64748b;
    --ih-accent: #2563eb;
    --ih-shadow: 0 1px 3px rgba(15, 23, 42, 0.08);
}

html {
    font-size: 14px;
    position: relative;
    min-height: 100%;
}

@media (min-width: 768px) {
    html {
        font-size: 16px;
    }
}

body {
    margin-bottom: 60px;
    background-color: var(--cb-body-bg, var(--ih-bg));
    color: var(--cb-text-main, var(--ih-text));
}

/* Container: wider on desktop, still 100% sane on phones */
.ih-container {
    max-width: 1200px; /* desktop app feel */
}

@media (min-width: 1400px) {
    .ih-container {
        max-width: 1320px; /* give big monitors less wasted gutters */
    }
}

/* Sticky header polish (nav sits on its own surface) */
.ih-header {
    background: var(--cb-body-bg, var(--ih-bg));
    z-index: 1030; /* above content */
}

.ih-navbar {
    background: var(--cb-surface-bg, var(--ih-surface));
    border-bottom: 1px solid var(--cb-border-soft, var(--ih-border-soft));
    box-shadow: var(--cb-shadow-soft, var(--ih-shadow));
}

.ih-brand {
    font-weight: 700;
    letter-spacing: 0.01em;
}

    .ih-brand,
    .ih-brand:link,
    .ih-brand:visited {
        color: var(--ih-accent) !important;
        text-decoration: none;
    }

        .ih-brand:hover,
        .ih-brand:focus {
            color: var(--ih-accent) !important;
            text-decoration: none;
        }

.ih-navbar.navbar-light .navbar-toggler {
    border-color: var(--cb-border-soft, var(--ih-border-soft));
}

.ih-navbar.navbar-light .navbar-toggler-icon {
    filter: none; /* leave default, or tweak if you ever darken the header */
}

.ih-nav .nav-link {
    color: var(--cb-text-muted, var(--ih-muted));
    font-weight: 600;
}

    .ih-nav .nav-link:hover {
        color: var(--cb-text-main, var(--ih-text));
    }

    .ih-nav .nav-link.active {
        color: var(--ih-accent);
        position: relative;
    }

        .ih-nav .nav-link.active::after {
            content: "";
            position: absolute;
            left: 0.4rem;
            right: 0.4rem;
            bottom: 0.15rem;
            height: 2px;
            background: var(--ih-accent);
            border-radius: 999px;
            opacity: 0.6;
        }

.ih-logout {
    text-decoration: none;
}

    .ih-logout:hover {
        color: var(--cb-text-main, var(--ih-text)) !important;
        text-decoration: underline;
    }

/* Main content as a calm surface card */
.ih-main {
    background-color: var(--cb-surface-bg, var(--ih-surface));
    border: 1px solid var(--cb-border-soft, var(--ih-border-soft));
    border-radius: 10px;
    padding: 0.9rem 1.1rem 1.1rem;
    box-shadow: var(--cb-shadow-soft, var(--ih-shadow));
}

/* Footer that matches the theme */
.ih-footer {
    background: var(--cb-surface-bg, var(--ih-surface));
    border-top: 1px solid var(--cb-border-soft, var(--ih-border-soft)) !important;
    color: var(--cb-text-muted, var(--ih-muted));
}

/* Keep focus visible but not aggressive */
.btn:focus,
.btn:active:focus,
.btn-link.nav-link:focus,
.form-control:focus,
.form-check-input:focus {
    box-shadow: 0 0 0 0.05rem #ffffff, 0 0 0 0.16rem rgba(37, 99, 235, 0.55);
}

/* Dropdown menu toned to your theme */
.dropdown-menu {
    border-color: var(--cb-border-soft, var(--ih-border-soft));
    box-shadow: var(--cb-shadow-soft, var(--ih-shadow));
}

.dropdown-item:hover {
    background-color: rgba(37, 99, 235, 0.08);
}

/* Page title polish */
h1 {
    font-weight: 750;
    letter-spacing: -0.01em;
}

/* ===========================
   Analyst dropdown (Login)
   =========================== */

/* Container (if you have it) */
.analyst-search-dropdown {
    position: relative;
    z-index: 50;
    margin-top: 2px;
}

    /* The list itself */
    .analyst-search-list,
    .analyst-search-dropdown ul {
        list-style: none;
        margin: 0;
        padding: 0;
        border-radius: 10px;
        border: 1px solid rgba(15, 23, 42, 0.12);
        background: #fbfcfe;
        box-shadow: 0 4px 14px rgba(15, 23, 42, 0.10);
        overflow: hidden;
    }

        /* Each row */
        .analyst-option,
        .analyst-search-dropdown ul > li {
            list-style: none;
            padding: 0.5rem 0.7rem;
            line-height: 1.2;
        }

            /* Separator lines */
            .analyst-option + .analyst-option,
            .analyst-search-dropdown ul > li + li {
                border-top: 1px solid rgba(15, 23, 42, 0.08);
            }

            /* Hover */
            .analyst-option:hover,
            .analyst-search-dropdown ul > li:hover {
                background: rgba(37, 99, 235, 0.08);
                cursor: pointer;
            }
