/* ============================================================
   SUVI — Design System 2026
   Senior UI overhaul. One clean file, no conflicts.
   Rules: CSS-only. No HTML/JS/template changes.
   No display:flex on anchors. No position overrides.
   No font-size on inline icons. Colorful, gentle, modern.
   ============================================================ */

/* ── Design tokens ────────────────────────────────────────── */
:root {
    /* Surfaces — warm off-white "paper", not cold slate */
    --ds-bg:        #F7F6F3;
    --ds-surface:   #FFFFFF;
    --ds-surface2:  #F0EEE8;

    /* Text — warm slate body, navy headings */
    --ds-text:      #232B36;
    --ds-heading:   #1E3A8A;
    --ds-muted:     #5B6573;
    --ds-subtle:    #8A8F99;

    /* Brand — logo navy + logo green (from sister-brand guidelines) */
    --ds-navy:      #1E3A8A;
    --ds-navy-lt:   #16306E;
    --primary-tint:    rgba(30,58,138,0.07);
    --primary-tint-hi: rgba(30,58,138,0.12);

    /* Borders — warm hairlines */
    --ds-border:    #E6E2D9;
    --ds-border-lt: #EDEAE3;

    /* Semantic — prosperity green warmed toward gold (growth + wealth, timeless, not neon) */
    --ds-green:     #4E8A35;
    --ds-green-dk:  #3A6B27;
    --ds-green-lt:  #A8C66A;   /* light warm green for accents on navy/dark backgrounds */
    --ds-green-deep:#2E5A26;   /* deep prosperity green — leads hero & dark sections */
    --ds-gold:      #C28B2B;   /* wealth gold — accent on light backgrounds */
    --ds-gold-lt:   #E3BD63;   /* bright wealth gold — headline/accent on dark backgrounds */
    --ds-red:       #CF4A3C;
    --ds-amber:     #A86A22;

    /* Highlight — saffron used only as faint warmth */
    --ds-highlight: #FBF3E4;

    /* Icon palette — restrained, institutional (no electric blue / purple / pink).
       Navy + green carry the brand; slate/saffron/teal are quiet supporting tones. */
    --ic-blue:      #1E3A8A;
    --ic-purple:    #3F4D78;
    --ic-amber:     #A86A22;
    --ic-green:     #4E8A35;
    --ic-pink:      #8A4A55;
    --ic-red:       #CF4A3C;
    --ic-indigo:    #2A3F6B;
    --ic-teal:      #0F766E;
    --ic-gray:      #5B6573;
    --ic-navy:      #1E3A8A;
    --ic-orange:    #A86A22;
    --ic-cyan:      #1F6F86;
    --ic-rose:      #9F5560;
    --ic-violet:    #3F4D78;
    --ic-lime:      #4E7A2E;

    /* Radii */
    --r-sm:  6px;
    --r-md:  10px;
    --r-lg:  14px;
    --r-xl:  18px;

    /* Shadow */
    --sh-sm:  0 1px 3px rgba(0,0,0,0.06);
    --sh-md:  0 4px 16px rgba(0,0,0,0.08);
    --sh-lg:  0 8px 30px rgba(0,0,0,0.10);
}

/* ── Reset helpers ────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

/* ── Base ─────────────────────────────────────────────────── */
body {
    font-family: 'Hanken Grotesk', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
    background-color: var(--ds-bg) !important;
    color: var(--ds-text) !important;
    font-size: 14px !important;
    line-height: 1.6 !important;
    -webkit-font-smoothing: antialiased;
    font-variant-numeric: tabular-nums;
}

/* ── Scrollbar ────────────────────────────────────────────── */
::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: var(--ds-bg); }
::-webkit-scrollbar-thumb { background: var(--ds-border); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--ds-muted); }

/* ── Typography ───────────────────────────────────────────── */
h1,h2,h3,h4,h5,h6 {
    font-family: 'Hanken Grotesk', system-ui, sans-serif !important;
    color: var(--ds-heading);
    font-weight: 600 !important;
    line-height: 1.25 !important;
    letter-spacing: -0.01em;
}
h1 { font-size: 26px !important; }
h2 { font-size: 21px !important; }
h3 { font-size: 17px !important; }
h4 { font-size: 15px !important; }
h5 { font-size: 13px !important; }
h6 { font-size: 12px !important; }

/* Headings on dark backgrounds — override the base rule */
.header-primary h1,.header-primary h2,.header-primary h3,
.header-primary h4,.header-primary h5,.header-primary h6,
.form-header h1,.form-header h2,.form-header h3,
.form-header h4,.form-header h5,.form-header h6,
.form-header-modal h1,.form-header-modal h2,.form-header-modal h3,
.form-header-modal h4,.form-header-modal h5,.form-header-modal h6,
footer.footer h1,footer.footer h2,footer.footer h3,
footer.footer h4,footer.footer h5,footer.footer h6 {
    color: #ffffff !important;
}

/* Utility color classes */
.white-text-color,
.text-white              { color: #ffffff !important; }
.text-gray-dark,
.color-dimgray           { color: var(--ds-muted) !important; }
.text-success            { color: var(--ds-green) !important; }
.text-danger, .text-red  { color: var(--ds-red) !important; }
.text-primary            { color: var(--ds-navy) !important; }
.text-muted              { color: var(--ds-muted) !important; }
.text-bold               { font-weight: 600 !important; }

p  { color: var(--ds-text); line-height: 1.65; }
a  { color: var(--ds-navy); transition: color 150ms ease-out; }
a:hover { color: var(--ds-navy-lt); text-decoration: none; }

/* Links on dark/navy backgrounds */
.article-user-info .profile-content a,
.header-primary a         { color: rgba(255,255,255,0.85) !important; }
.article-user-info .profile-content a:hover,
.header-primary a:hover   { color: #fff !important; text-decoration: none !important; }

/* HR */
hr, hr.hr-border, .article-profile-hr {
    border-top: 1px solid var(--ds-border) !important;
    border-bottom: none !important;
    margin: 12px 0 !important;
}

/* ── Layout ───────────────────────────────────────────────── */
.container {
    max-width: 1120px !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
}
.main-container {
    background-color: var(--ds-bg) !important;
    min-height: calc(100vh - 56px);
    padding-bottom: 72px;
}

/* ── Navbar ───────────────────────────────────────────────── */
nav.navbar.top-navbar,
.navbar {
    background-color: var(--ds-surface) !important;
    border-bottom: 1px solid var(--ds-border) !important;
    box-shadow: none !important;
    min-height: 56px !important;
    padding: 0 !important;
}
.navbar-header { min-height: 56px; }

.navbar .navbar-nav > li > a {
    color: var(--ds-muted) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    padding: 18px 12px !important;
    transition: color 150ms ease-out;
}
.navbar .navbar-nav > li > a:hover,
.navbar .navbar-nav > li > a:focus {
    color: var(--ds-navy) !important;
    background: transparent !important;
}
.nav-brand {
    color: var(--ds-text) !important;
    font-weight: 700 !important;
    font-size: 15px !important;
    letter-spacing: -0.01em !important;
    text-shadow: none !important;
}
.navbar-toggle {
    border: none !important;
    background: transparent !important;
    padding: 8px !important;
    margin: 0 4px !important;
}

/* ── Navbar icon colors ───────────────────────────────────── */
.navbar .fa-home,
.navbar-at-bottom .fa-home          { color: var(--ic-blue) !important; }
.navbar .fa-video-camera,
.navbar-at-bottom .fa-video-camera  { color: var(--ic-purple) !important; }
.navbar .fa-pencil-square-o,
.navbar-at-bottom .fa-pencil-square-o { color: var(--ic-amber) !important; }
.navbar .fa-newspaper-o,
.navbar-at-bottom .fa-newspaper-o   { color: var(--ic-green) !important; }
.navbar .fa-comments,
.navbar-at-bottom .fa-comments      { color: var(--ic-pink) !important; }
.far.fa-bell                        { color: var(--ic-amber) !important; }

/* ── Dropdown menus ───────────────────────────────────────── */
.dropdown-menu,
.dropdown-menu.notifications-lists {
    background: var(--ds-surface) !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-md) !important;
    box-shadow: var(--sh-md) !important;
    padding: 6px 0 !important;
    min-width: 170px;
}
.notifications-lists::before { content: none !important; }

.dropdown-menu li > a,
.navbar .dropdown-menu li > a {
    color: var(--ds-text) !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    padding: 9px 16px !important;
    transition: background 120ms ease-out;
}
.dropdown-menu li > a:hover,
.navbar .dropdown-menu li > a:hover {
    background-color: var(--ds-surface2) !important;
    color: var(--ds-navy) !important;
}
.dropdown-menu li { border-bottom: none !important; }

/* Dropdown icon base — vertical alignment only, no gray lock-in */
.dropdown-menu .material-icons { vertical-align: -4px; margin-right: 6px; }
.dropdown-menu .fa, .dropdown-menu .fas,
.dropdown-menu .far, .dropdown-menu .fab  { margin-right: 6px; }

/* ── Navbar account dropdown: color by href (icon name is text content, not class) */
/* Unauthenticated: Create Account + Sign in */
.navbar a[href*="register"] { color: var(--ic-green) !important; font-weight: 600 !important; }
.navbar a[href*="register"] .material-icons { color: var(--ic-green) !important; }
.navbar a[href*="login"]:not([href*="logout"]) { color: var(--ic-blue) !important; font-weight: 600 !important; }
.navbar a[href*="login"]:not([href*="logout"]) .material-icons { color: var(--ic-blue) !important; }

/* Authenticated: settings dropdown — nth-child matches fixed template order */
/* 1: Profile  2: Edit Profile  3: Change Password  4: Sign out */
.navbar .notifications-lists li:nth-child(1) > a .material-icons { color: var(--ic-blue) !important; }
.navbar .notifications-lists li:nth-child(2) > a .material-icons { color: var(--ic-blue) !important; }
.navbar .notifications-lists li:nth-child(3) > a .material-icons { color: var(--ic-amber) !important; }
.navbar .notifications-lists li:nth-child(4) > a .material-icons { color: var(--ic-red) !important; }
/* Sign out link stays red always */
.navbar a[href*="logout"] { color: var(--ic-red) !important; }
.navbar a[href*="logout"] .material-icons { color: var(--ic-red) !important; }
/* Change password amber */
.navbar a[href*="change_password"] .material-icons { color: var(--ic-amber) !important; }
/* Edit profile blue */
.navbar a[href*="edit_profile"] .material-icons { color: var(--ic-blue) !important; }

/* Post settings dropdown (more_vert menus) — nth-child colors */
.articles-setting .dropdown-menu li:nth-child(1) > a .material-icons,
.right-setting-bar .dropdown-menu li:nth-child(1) > a .material-icons { color: var(--ic-blue) !important; }
.articles-setting .dropdown-menu li:nth-child(2) > a .material-icons,
.right-setting-bar .dropdown-menu li:nth-child(2) > a .material-icons { color: var(--ic-teal) !important; }
.articles-setting .dropdown-menu li:nth-child(3) > a .material-icons,
.right-setting-bar .dropdown-menu li:nth-child(3) > a .material-icons { color: var(--ic-red) !important; }

/* FA hand arrow in dropdowns */
.dropdown-menu .fa-hand-o-right { color: var(--ic-amber) !important; }

/* ── Cards ────────────────────────────────────────────────── */
.card {
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-lg) !important;
    box-shadow: var(--sh-sm) !important;
    background: var(--ds-surface) !important;
    overflow: visible;  /* don't clip dropdowns */
}
/* Re-clip only the feed card so hover transform looks clean */
.articles-list-box.card { overflow: hidden !important; }
.card .header-primary,
.custom-card > .header-primary {
    background: var(--ds-navy) !important;
    background-image: none !important;
    box-shadow: none !important;
    padding: 16px 20px !important;
}
.card .header-primary h4,
.custom-card > .header-primary h4 {
    color: #fff !important;
    margin: 0 !important;
}

/* ── Feed / article items ─────────────────────────────────── */
.articles-list-box {
    background: var(--ds-surface) !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-lg) !important;
    box-shadow: none !important;
    padding: 16px !important;
    margin-bottom: 14px !important;
    transition: box-shadow 200ms ease-out, transform 200ms ease-out !important;
}
.articles-list-box:hover {
    box-shadow: var(--sh-md) !important;
    transform: translateY(-1px) !important;
}

/* Header box (profile row) + content box form one visual card:
   header has margin-bottom-0px → flatten bottom edge and kill gap;
   the following sibling content box flattens its top edge to meet it. */
.articles-list-box.margin-bottom-0px {
    margin-bottom: 0 !important;
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
    border-bottom: none !important;
}
/* Direct sibling content box immediately after a 0-margin header */
.articles-list-box.margin-bottom-0px + .col-sm-12 > .articles-list-box,
.articles-list-box.margin-bottom-0px + .articles-list-box {
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
    margin-top: 0 !important;
    border-top: none !important;
}
.article-post { border-top: 1px solid var(--ds-border) !important; margin-top: 8px !important; }
/* articles-post-top is the first card on the feed — no extra top border needed */
.articles-post-top.article-post { border-top: none !important; margin-top: 0 !important; }

.article-title > h4 { color: var(--ds-text) !important; font-weight: 600 !important; }
.article-title:hover { color: var(--ds-navy) !important; text-decoration: none !important; }

/* Post action strip */
.article-post-ul {
    border-top: 1px solid var(--ds-border-lt) !important;
    padding-top: 8px !important;
    margin-top: 10px !important;
}
.article-post-ul > li > a,
.article-post-ul > li > button {
    color: var(--ds-muted) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    padding: 4px 8px !important;
    border-radius: var(--r-sm) !important;
    transition: background 150ms ease-out, color 150ms ease-out !important;
}
.article-post-ul > li > a:hover {
    background: var(--ds-surface2) !important;
    color: var(--ds-navy) !important;
    text-decoration: none !important;
}

/* Feed action icon colors */
.fas.fa-thumbs-up, .fa-thumbs-up.liked   { color: var(--ic-blue) !important; }
.far.fa-thumbs-up                         { color: var(--ic-gray) !important; }
.fas.fa-thumbs-down                       { color: var(--ic-red) !important; }
.far.fa-thumbs-down                       { color: var(--ic-gray) !important; }
.fas.fa-comment                           { color: var(--ic-pink) !important; }
.far.fa-comment                           { color: var(--ic-gray) !important; }
.fas.fa-download                          { color: var(--ic-indigo) !important; }
.fas.fa-bookmark                          { color: var(--ic-amber) !important; }
.far.fa-bookmark                          { color: var(--ic-gray) !important; }
.fas.fa-star                              { color: var(--ic-amber) !important; }
.far.fa-star                              { color: var(--ic-gray) !important; }
.fas.fa-trash-alt                         { color: var(--ic-red) !important; }
.fas.fa-trophy, .fa-trophy                { color: var(--ic-amber) !important; }
.fas.fa-bullhorn                          { color: var(--ic-red) !important; }
.fas.fa-plus                              { color: var(--ic-green) !important; }
.fa-pie-chart                             { color: var(--ic-purple) !important; }
.fa-bullseye                              { color: var(--ic-teal) !important; }
.fa-clock-o, .fa-hourglass-half           { color: var(--ic-indigo) !important; }
.fa-bolt                                  { color: var(--ic-amber) !important; }
.fa-check-circle.text-green               { color: var(--ic-green) !important; }
.fa-times-circle.text-red                 { color: var(--ic-red) !important; }

/* ═══════════════════════════════════════════════════════════
   MATERIAL ICONS — Working color system
   Icon name = TEXT CONTENT, not a CSS class.
   .material-icons.icon_name selectors NEVER match.
   These rules use: global default + context selectors +
   utility-class selectors (font-size-14px etc.) +
   style-attribute selectors (vertical-align:-4px etc.)
   ═══════════════════════════════════════════════════════════ */

/* Global default: anything not overridden → blue */
.material-icons { color: var(--ic-blue) !important; }

/* ── Form addon icons → blue ──────────────────────────────── */
.input-group-addon .material-icons { color: var(--ic-blue) !important; }

/* ── Neutral/settings icons ───────────────────────────────── */
.navbar .dropdown-toggle > .material-icons,
.articles-setting > li > a > .material-icons,
.right-setting-bar > li > a > .material-icons,
.material-icons.color-gray                { color: var(--ic-gray) !important; }

/* ── Profile-date: public/visibility icon on posts → teal ─── */
.profile-date .material-icons,
.profile-date-inline .material-icons       { color: var(--ic-teal) !important; }

/* ── Tag/domain icons: identified by vertical-align style ─── */
/* local_offer icons always have style="...vertical-align: -4px" */
.material-icons[style*="vertical-align: -4px"],
.material-icons[style*="vertical-align:-4px"] { color: var(--ic-amber) !important; }

/* ── Post top action bar icons (post_add, add_comment) ───── */
.article-post-ul .material-icons,
.articles-post-top .material-icons        { color: var(--ic-blue) !important; }

/* ── Expand/collapse arrows in batch/filter sections ─────── */
.accordion .material-icons,
a.text-hover-same .material-icons,
a.theme-text-color .material-icons        { color: var(--ds-muted) !important; }

/* ── font-size-14px: forward/create in post dropdown ─────── */
.material-icons.font-size-14px            { color: var(--ic-blue) !important; }
/* Last item in these dropdowns = delete → red */
.dropdown-menu li:last-child > a .material-icons.font-size-14px { color: var(--ic-red) !important; }
.dropdown-menu li:nth-child(3) > a .material-icons.font-size-14px { color: var(--ic-red) !important; }

/* ── font-size-15px + pull-left: create/delete in comment dropdowns */
.material-icons.font-size-15px.pull-left  { color: var(--ic-blue) !important; }
.dropdown-menu li:last-child > a .material-icons.font-size-15px.pull-left { color: var(--ic-red) !important; }
.dropdown-menu li:nth-child(3) > a .material-icons.font-size-15px.pull-left { color: var(--ic-red) !important; }

/* ── font-size-15px standalone (query_builder, laptop_mac, verified_user) */
.material-icons.font-size-15px:not(.pull-left) { color: var(--ic-indigo) !important; }
.material-icons.font-size-12px            { color: var(--ic-indigo) !important; }

/* ── Status indicators: inherit parent link inline color ─── */
/* do_not_disturb_alt / verified_user / lock inside <a style="color:..."> */
.articles-list-box a[style*="color"] .material-icons { color: inherit !important; }

/* ── Sidebar institute icons ──────────────────────────────── */
.material-icons.theme-text-light          { color: var(--ic-indigo) !important; }
.article-user-info .material-icons        { color: var(--ds-navy) !important; }

/* ── Popup close button → red ─────────────────────────────── */
.btn.popup_close .material-icons          { color: var(--ic-red) !important; }

/* ── Modal close button stays white always ────────────────── */
.modal-header .material-icons,
.modal-close-button .material-icons       { color: rgba(255,255,255,0.9) !important; }

/* Social brand colors */
.fab.fa-facebook-f  { color: #1877F2 !important; }
.fab.fa-youtube     { color: #FF0000 !important; }
.fab.fa-google-plus-g { color: #EA4335 !important; }

/* ── Panels (right sidebar) ───────────────────────────────── */
.feed-right-side-section .panel {
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-lg) !important;
    box-shadow: none !important;
    overflow: hidden;
    margin-bottom: 14px;
    background: var(--ds-surface) !important;
}
.feed-right-side-section .panel .panel-heading {
    background: var(--ds-surface) !important;
    background-image: none !important;
    border-bottom: 2px solid var(--ds-border) !important;
    border-left: 3px solid var(--ds-navy) !important;
    padding: 10px 14px !important;
}
.feed-right-side-section .panel .panel-heading h6 {
    color: var(--ds-text) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.8px !important;
    margin: 0 !important;
}
.feed-right-side-section .panel .panel-body {
    padding: 10px 14px !important;
    background: var(--ds-surface) !important;
}
.feed-right-side-section .panel { box-shadow: none !important; }

/* ── Profile / left sidebar ───────────────────────────────── */
.article-user-info {
    background: var(--ds-surface) !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-lg) !important;
    box-shadow: none !important;
    overflow: hidden;
    margin-bottom: 14px !important;
}
.article-user-info .profile-content {
    background: var(--ds-navy) !important;
    background-image: none !important;
    padding: 14px 16px !important;
}
/* ── Feed card profile row: flex layout (replaces absolute positioning) ── */
.profile-div {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 4px 0 !important;
    position: relative;           /* keep for dropdown/settings children */
    flex-wrap: nowrap !important;
    min-width: 0 !important;
}
.profile-div > a:first-child {    /* avatar link wrapper */
    flex-shrink: 0 !important;
    line-height: 0 !important;
}
.profile-img {
    width: 42px !important;
    height: 42px !important;
    border-radius: 50% !important;
    border: 2px solid var(--ds-border) !important;
    object-fit: cover !important;
    display: block !important;
    flex-shrink: 0 !important;
}
/* Name grows to fill remaining space; truncates if too long */
.profile-user-name {
    position: static !important;  /* undo old absolute, flex handles layout */
    flex: 1 1 auto !important;
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    margin-left: 0 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--ds-text) !important;
    line-height: 1.3 !important;
}
.profile-user-name:hover {
    color: var(--ds-navy) !important;
    text-decoration: none !important;
}
/* Sidebar profile card only: white text on dark navy */
.article-user-info .profile-content .profile-div  { background: transparent; }
.article-user-info .profile-content .profile-user-name,
.profile-content .profile-user-name {
    color: rgba(255,255,255,0.95) !important;
}
/* Profile date — sits directly after the name, no auto-margin */
.profile-date {
    flex-shrink: 0 !important;
    white-space: nowrap !important;
}
.profile-date > a,
.profile-date-inline {
    position: static !important;
    font-size: 11px !important;
    color: var(--ds-subtle) !important;
}
/* Three-dot settings: pull out of old absolute positioning, anchor to flex right */
.articles-setting {
    position: static !important;  /* cancel style.css: position:absolute;right:0 */
    display: flex !important;     /* cancel style.css: display:inline-block */
    align-items: center !important;
    margin-left: auto !important; /* single auto-margin pushes it to far right */
    flex-shrink: 0 !important;
    list-style: none !important;
    padding: 0 !important;
    margin-bottom: 0 !important;
    right: auto !important;       /* neutralise any residual right: 0 */
}
/* Ensure the dropdown toggle link and more_vert icon are always tappable/visible */
.articles-setting .notification-icon {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 32px !important;
    height: 32px !important;
    color: var(--ds-muted) !important;
}
.articles-setting .notification-icon .material-icons {
    font-size: 20px !important;
    line-height: 1 !important;
}

/* ── Images inside rich-text post content ─────────────────── */
/* Exclude avatars: a bare .profile-img (comment/reply composer) is not
   wrapped in .profile-div, so without :not() this generic rule would win
   over .profile-img and render it as a rounded square forced onto its own
   line. :not(.profile-img) keeps avatars circular and inline everywhere. */
.articles-list-box img:not(.profile-img),
.word_break img:not(.profile-img),
.team-player img:not(.profile-img) {
    max-width: 100% !important;
    height: auto !important;
    border-radius: var(--r-sm) !important;
    display: block;
    margin: 8px auto;
}
/* Don't distort profile avatars — circular, inline, fixed size, regardless
   of whether they sit inside .profile-div. */
.profile-div .profile-img,
.profile-img {
    display: inline-block !important;
    margin: 0 !important;
    border-radius: 50% !important;
    width: 42px !important;
    height: 42px !important;
    object-fit: cover !important;
    vertical-align: middle !important;
    /* If the image src is broken, the browser otherwise renders the alt text
       inside the box, wrapping it across several lines. font-size:0 + overflow
       hidden keep a broken avatar as a clean fixed-size box (JS then swaps in
       the default avatar). */
    font-size: 0 !important;
    overflow: hidden !important;
}
/* Honour the explicit avatar-size helpers so nested comment/reply avatars
   keep their smaller scale (the base .profile-img above otherwise forces
   42px). Higher specificity (.profile-img + helper) wins; circular + cover
   are inherited so they stay undistorted. */
.profile-img.width-height-30-30px { width: 30px !important; height: 30px !important; }
.profile-img.width-height-25-25px { width: 25px !important; height: 25px !important; }

/* ── Buttons ──────────────────────────────────────────────── */
.btn.btn-submit,
.form-btn .btn-submit {
    background: var(--ds-navy) !important;
    background-image: none !important;
    color: #fff !important;
    border: 1px solid transparent !important;
    border-radius: var(--r-sm) !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    box-shadow: none !important;
    transition: opacity 150ms ease-out !important;
}
.btn.btn-submit:hover,
.form-btn .btn-submit:hover { opacity: 0.88; box-shadow: none !important; }

.btn.btn-cancle,
.form-btn .btn-cancle {
    background: transparent !important;
    background-image: none !important;
    color: var(--ds-text) !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-sm) !important;
    font-weight: 500 !important;
    box-shadow: none !important;
    transition: all 150ms ease-out !important;
}
.btn.btn-cancle:hover,
.form-btn .btn-cancle:hover {
    border-color: var(--ds-text) !important;
    background: transparent !important;
    box-shadow: none !important;
}

.btn.btn-primary, .btn-primary {
    background: var(--ds-navy) !important;
    background-image: none !important;
    border-color: var(--ds-navy) !important;
    border-radius: var(--r-sm) !important;
    box-shadow: none !important;
    font-weight: 500 !important;
    transition: opacity 150ms ease-out !important;
}
.btn-primary:hover { opacity: 0.88; }

.btn.btn-default, .btn-default {
    background: var(--ds-surface) !important;
    background-image: none !important;
    border: 1px solid var(--ds-border) !important;
    color: var(--ds-text) !important;
    border-radius: var(--r-sm) !important;
    box-shadow: none !important;
    font-weight: 500 !important;
    transition: background 150ms ease-out !important;
}
.btn-default:hover { background: var(--ds-surface2) !important; }

.btn.btn-danger, .btn-danger {
    background: var(--ds-red) !important;
    background-image: none !important;
    border-color: var(--ds-red) !important;
    border-radius: var(--r-sm) !important;
    box-shadow: none !important;
}

.btn.btn-simple.btn-just-icon {
    color: var(--ds-muted) !important;
    box-shadow: none !important;
}
.btn.btn-simple.btn-just-icon:hover { color: var(--ds-navy) !important; }

.add_btn {
    background: transparent !important;
    border: 1px solid var(--ds-navy) !important;
    color: var(--ds-navy) !important;
    border-radius: var(--r-sm) !important;
    box-shadow: none !important;
    font-weight: 500 !important;
    transition: all 150ms ease-out !important;
}
.add_btn:hover { background: var(--ds-navy) !important; color: #fff !important; }

.add-student-btn {
    background: var(--ds-navy) !important;
    background-image: none !important;
    border-radius: 20px !important;
    box-shadow: none !important;
    border-color: transparent !important;
    color: #fff !important;
    font-weight: 500 !important;
    transition: opacity 150ms ease-out !important;
}
.add-student-btn:hover,
.add-student-btn:active,
.add-student-btn:focus { opacity: 0.88; background: var(--ds-navy) !important; }

.edit_question_btn { color: var(--ic-blue) !important; border-radius: var(--r-sm) !important; }
.delete_question_btn { color: var(--ic-red) !important; border-radius: var(--r-sm) !important; }

/* ── Forms ────────────────────────────────────────────────── */
/* Auth page background */
.header.header-filter {
    background-image: none !important;
    background-color: var(--ds-bg) !important;
    min-height: 100vh;
}

/* Card wrapper for full-page forms */
.card.card-signup {
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-lg) !important;
    box-shadow: var(--sh-md) !important;
    background: var(--ds-surface) !important;
    overflow: hidden;
    max-width: 480px;
    width: 100%;
}
.card.card-signup.account-forms { max-width: 560px !important; }

/* Form header bar */
.header.header-primary.form-header {
    background: var(--ds-navy) !important;
    background-image: none !important;
    box-shadow: none !important;
    padding: 18px 24px !important;
    margin-top: 0 !important;
}
.header.header-primary.form-header h4 {
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    margin: 0 !important;
}
.header.header-primary.form-header-modal {
    background: var(--ds-navy) !important;
    background-image: none !important;
    box-shadow: none !important;
    padding: 14px 20px !important;
    margin-top: 0 !important;
}
.header.header-primary.form-header-modal h4 {
    color: #fff !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    margin: 0 !important;
}

/* Form content area */
.card-signup .content { padding: 24px 28px !important; }

/* Input groups */
.input-group { margin-bottom: 14px !important; }
.input-group .input-group-addon {
    background: var(--ds-bg) !important;
    border: 1px solid var(--ds-border) !important;
    border-right: none !important;
    color: var(--ds-muted) !important;
    padding: 0 12px !important;
    min-width: 44px;
    text-align: center;
    border-radius: var(--r-sm) 0 0 var(--r-sm) !important;
    vertical-align: middle;
}
.input-group .input-group-addon i.material-icons { vertical-align: middle; line-height: 1; font-size: 18px; }
.input-group .form-control {
    border: 1px solid var(--ds-border) !important;
    border-left: none !important;
    border-radius: 0 var(--r-sm) var(--r-sm) 0 !important;
    padding: 10px 14px !important;
    height: 42px !important;
    font-size: 14px !important;
    background: var(--ds-surface) !important;
    color: var(--ds-text) !important;
    box-shadow: none !important;
}
.input-group .form-control:focus {
    border-color: var(--ds-navy) !important;
    box-shadow: none !important;
    z-index: 2;
}
/* When there's no addon, standalone form-control gets full radius */
.form-group > .form-control,
.form-control:not(.input-group .form-control) {
    border-radius: var(--r-sm) !important;
}

/* Standalone inputs */
.form-control {
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-sm) !important;
    padding: 10px 14px !important;
    height: auto !important;
    font-size: 14px !important;
    background: var(--ds-surface) !important;
    color: var(--ds-text) !important;
    box-shadow: none !important;
    transition: border-color 150ms ease-out !important;
}
.form-control:focus {
    border-color: var(--ds-navy) !important;
    box-shadow: 0 0 0 3px rgba(11,37,69,0.08) !important;
    background-image: none !important;
}
.form-group.is-focused .form-control {
    background-image: linear-gradient(var(--ds-navy), var(--ds-navy)),
                      linear-gradient(var(--ds-border), var(--ds-border)) !important;
}

/* Labels */
.form-group label,
.form-group label.control-label {
    color: var(--ds-muted) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    margin-bottom: 4px !important;
}

/* Input group addon */
.input-group-addon {
    background: var(--ds-bg) !important;
    border-color: var(--ds-border) !important;
    color: var(--ds-muted) !important;
}

/* Form buttons */
.form-btn { padding: 8px 0 !important; }
/* Buttons size to content (no full-bleed slabs). Applies to every form,
   modal or page, so they're consistent. Lone CTAs stay full width below. */
.form-btn .btn-submit,
.form-btn .btn-cancle {
    width: auto !important;
    min-width: 116px !important;
    display: inline-block !important;
    padding: 9px 22px !important;
}
.form-btn .btn-cancle { min-width: 92px !important; }
/* A lone primary CTA in a single full-width column keeps full width
   (login, register, etc. — clean, conventional). */
.col-xs-12.form-btn .btn-submit, .col-sm-12.form-btn .btn-submit, .col-md-12.form-btn .btn-submit,
.col-xs-12.form-btn .btn, .col-sm-12.form-btn .btn { width: 100% !important; }

/* Split submit/cancel button rows → align the pair as one tidy group.
   Order matters: centre first, then right/left so the responsive
   col-xs-6.col-sm-8 / col-xs-6.col-sm-4 pairs resolve correctly.
   col-md-6 (toggle-switch rows) is intentionally absent — those keep
   the native grid and contain no .btn, so nothing here touches them. */
.col-xs-6.form-btn, .col-sm-6.form-btn,
.col-xs-3.form-btn, .col-sm-3.form-btn { text-align: center !important; }
.col-xs-8.form-btn, .col-sm-8.form-btn { text-align: right !important; padding-right: 5px !important; }
.col-xs-4.form-btn, .col-sm-4.form-btn { text-align: left !important; padding-left: 5px !important; }
.form-btn a {
    display: block !important;
    margin-top: 10px !important;
    font-size: 13px !important;
    color: var(--ds-muted) !important;
    text-align: center !important;
}
.form-btn a:hover { color: var(--ds-navy) !important; }
.form-btn p {
    font-size: 12px !important;
    color: var(--ds-muted) !important;
    text-align: center !important;
    margin-bottom: 10px !important;
}

/* Auth footer links */
.login-footer { padding: 12px 24px 16px !important; }
.login-footer p { font-size: 13px !important; color: var(--ds-muted) !important; margin: 4px 0 !important; }
.login-footer a, .login-footer a.login-a {
    color: var(--ds-navy) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    text-decoration: none !important;
}
.login-footer a:hover { text-decoration: underline !important; }

/* Alerts inside forms */
.card-signup .alert,
.modal-body .alert {
    border-radius: var(--r-sm) !important;
    padding: 10px 14px !important;
    font-size: 13px !important;
    margin-bottom: 14px !important;
    border: 1px solid #FECACA !important;
    background: #FEF2F2 !important;
    color: var(--ds-red) !important;
}
.card-signup .alert .form-error-message { color: var(--ds-red) !important; }

/* Account type radio cards */
.border-1px-normal {
    border: 1px solid var(--ds-border) !important;
    transition: border-color 150ms ease-out, background 150ms ease-out !important;
}
.border-1px-normal:hover {
    border-color: var(--ds-navy) !important;
    background: var(--ds-surface2) !important;
}
.border-radius-10px { border-radius: var(--r-md) !important; }
.radio.text-center.border-1px-normal { padding: 14px 8px !important; cursor: pointer; }
.radio.text-center.border-1px-normal label { font-size: 13px !important; font-weight: 500 !important; cursor: pointer; }
.radio.text-center.border-1px-normal i.material-icons { font-size: 26px !important; display: block !important; margin-bottom: 6px !important; color: var(--ds-muted) !important; }

/* OTP input */
.input-lg.text-center {
    text-align: center !important;
    font-size: 22px !important;
    font-weight: 600 !important;
    letter-spacing: 8px !important;
    padding: 14px !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-sm) !important;
    color: var(--ds-navy) !important;
}
.input-lg.text-center:focus {
    border-color: var(--ds-navy) !important;
    box-shadow: 0 0 0 3px rgba(11,37,69,0.08) !important;
}

/* Helper texts */
small.password-strength, small.help-text, small.desc-small-text {
    font-size: 11px !important;
    color: var(--ds-muted) !important;
    display: block !important;
    margin-top: 4px !important;
    position: static !important;
}

/* Modal forms — strip inner card chrome so modal is the only frame */
.modal-body .card.custom-card,
.modal-body > .card,
.modal-body .card-signup {
    border: none !important;
    box-shadow: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border-radius: 0 !important;
}
/* Content div inside modal forms — tighter padding than full-page forms */
.modal-body .content,
.modal-body .card .content { padding: 12px 4px !important; }
/* Form-header inside modal body should not show again (already shown in modal-header) */
.modal-body .form-header,
.modal-body .form-header-modal { display: none !important; }

/* Select2 */
.select2-container--default .select2-selection--multiple,
.select2-container--default .select2-selection--single {
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-sm) !important;
    background: var(--ds-surface) !important;
}
.select2-container--default.select2-container--focus .select2-selection--multiple {
    border-color: var(--ds-navy) !important;
    box-shadow: 0 0 0 3px rgba(11,37,69,0.08) !important;
}
.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background: var(--ds-highlight) !important;
    color: var(--ds-text) !important;
}
.select2-dropdown {
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-sm) !important;
    box-shadow: var(--sh-md) !important;
}

/* Checkboxes / radios accent */
.radio input[type=radio]:checked ~ .check { background-color: var(--ds-navy) !important; }
.radio input[type=radio]:checked ~ .circle { border-color: var(--ds-navy) !important; }
.checkbox input[type=checkbox]:checked + .checkbox-material .check { background: var(--ds-navy) !important; }

/* TinyMCE */
.mce-tinymce { border: 1px solid var(--ds-border) !important; box-shadow: none !important; }

/* File upload */
.file_uploaded_div {
    background: var(--ds-bg) !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-sm) !important;
    padding: 6px 10px !important;
    margin-bottom: 4px !important;
    font-size: 12px !important;
}
.file_name { color: var(--ds-text) !important; font-weight: 500 !important; }
.file_size { color: var(--ds-muted) !important; }
.delete_file { color: var(--ic-red) !important; }

/* ── Modals ────────────────────────────────────────────────── */
.modal-content {
    border: none !important;
    border-radius: var(--r-lg) !important;
    box-shadow: var(--sh-lg) !important;
    background: var(--ds-surface) !important;
    overflow: hidden;
}
/* Zero out modal-header so the inner navy bar fills edge-to-edge */
.modal-header {
    padding: 0 !important;
    border-bottom: none !important;
    background: transparent !important;
    position: relative !important;
}
/* The actual navy header bar inside modal-header */
.modal-header .header-primary,
.modal-header .form-header-modal,
.form-header-modal.header-primary {
    background: var(--ds-navy) !important;
    background-image: none !important;
    box-shadow: none !important;
    padding: 16px 56px 16px 20px !important;  /* right padding leaves room for close btn */
    margin: 0 !important;
    position: relative !important;
    border-radius: var(--r-lg) var(--r-lg) 0 0 !important;
}
.modal-header .header-primary h4,
.modal-header .form-header-modal h4 {
    color: #fff !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    margin: 0 !important;
    text-align: center !important;
}
/* Close button — absolute within the navy header bar */
.modal-header .close.modal-close-button,
.modal-header .modal-close-button {
    position: absolute !important;
    right: 14px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    color: rgba(255,255,255,0.9) !important;
    opacity: 1 !important;
    font-size: 20px !important;
    line-height: 1 !important;
    margin: 0 !important;
    padding: 4px !important;
    float: none !important;
    z-index: 1 !important;
    background: transparent !important;
    border: none !important;
    cursor: pointer !important;
}
.modal-header .close.modal-close-button:hover,
.modal-header .modal-close-button:hover { color: #fff !important; opacity: 1 !important; }
.modal-body { padding: 20px !important; overflow-y: auto !important; max-height: calc(100vh - 180px) !important; }
.modal-footer {
    border-top: 1px solid var(--ds-border) !important;
    padding: 12px 20px !important;
    background: var(--ds-bg) !important;
}
/* Modal dialog standard sizing */
.modal-dialog {
    max-width: 580px !important;
    width: calc(100% - 30px) !important;
    margin: 60px auto !important;
}

/* ── Badges & Labels ──────────────────────────────────────── */
.label {
    border-radius: 4px !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    padding: 3px 8px !important;
}
.label-default { background: #EEF2FF !important; color: var(--ic-indigo) !important; }
.label-success  { background: #DCFCE7 !important; color: var(--ds-green) !important; }
.label-danger   { background: #FEE2E2 !important; color: var(--ds-red) !important; }
.label-primary  { background: var(--ds-navy) !important; color: #fff !important; }

.badge { border-radius: 10px !important; font-size: 11px !important; font-weight: 600 !important; padding: 2px 7px !important; background: var(--ds-navy) !important; }
.badge-success { background: var(--ds-green) !important; }
.badge-danger  { background: var(--ds-red) !important; }

/* ── Alerts (global) ──────────────────────────────────────── */
.alert {
    border-radius: var(--r-sm) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    padding: 10px 16px !important;
    box-shadow: none !important;
    border: 1px solid transparent !important;
}
.alert-success { background: #F0FDF4 !important; border-color: #BBF7D0 !important; color: var(--ds-green) !important; }
.alert-danger  { background: #FEF2F2 !important; border-color: #FECACA !important; color: var(--ds-red) !important; }
.alert-info    { background: #EFF6FF !important; border-color: #BFDBFE !important; color: var(--ic-blue) !important; }
.alert-warning { background: var(--ds-highlight) !important; border-color: #FDE68A !important; color: var(--ds-amber) !important; }

/* ── Progress bars ────────────────────────────────────────── */
.progress {
    height: 5px !important;
    background: var(--ds-border) !important;
    border-radius: 3px !important;
    box-shadow: none !important;
    border: none !important;
    margin-bottom: 12px !important;
}
.progress-bar {
    background: var(--ds-navy) !important;
    background-image: none !important;
    border-radius: 3px !important;
    box-shadow: none !important;
}
.rating_progressbar {
    height: 5px !important;
    border-radius: 3px !important;
    box-shadow: none !important;
    border: 1px solid var(--ds-border) !important;
    background: var(--ds-surface) !important;
}

/* ── Tables ───────────────────────────────────────────────── */
.table { font-size: 13px !important; color: var(--ds-text) !important; }
.table > thead > tr > th {
    border-bottom: 1px solid var(--ds-border) !important;
    color: var(--ds-muted) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    padding: 10px 12px !important;
    background: var(--ds-bg) !important;
}
.table > tbody > tr > td {
    border-top: 1px solid var(--ds-border-lt) !important;
    padding: 10px 12px !important;
    vertical-align: middle !important;
    color: var(--ds-text) !important;
    transition: background 150ms ease-out !important;
}
.table > tbody > tr:hover > td { background: #F5F4F0 !important; }
.table-bordered { border: 1px solid var(--ds-border) !important; }
.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > td { border-color: var(--ds-border) !important; }

/* ── Tabs / nav pills ─────────────────────────────────────── */
.nav-pills > li > a {
    border-radius: var(--r-sm) !important;
    color: var(--ds-muted) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    padding: 8px 16px !important;
    transition: all 150ms ease-out;
}
.nav-pills > li.active > a,
.nav-pills > li.active > a:hover { background: var(--ds-navy) !important; color: #fff !important; }
.nav-pills > li > a:hover { background: var(--ds-surface2) !important; color: var(--ds-navy) !important; }

.nav-tabs { border-bottom: 1px solid var(--ds-border) !important; }
.nav-tabs > li > a {
    color: var(--ds-muted) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    border: none !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    padding: 10px 16px !important;
    background: transparent !important;
    transition: all 150ms ease-out;
}
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover {
    color: var(--ds-navy) !important;
    border-bottom: 2px solid var(--ds-navy) !important;
    background: transparent !important;
    border-top: none !important; border-left: none !important; border-right: none !important;
}
.nav-tabs > li > a:hover { color: var(--ds-navy) !important; background: transparent !important; }

/* ── Footer ───────────────────────────────────────────────── */
footer.footer {
    background: var(--ds-navy) !important;
    border-top: none !important;
    color: rgba(232,230,224,0.8) !important;
}
footer.footer ul li a { color: rgba(232,230,224,0.7) !important; }
footer.footer ul li a:hover { color: #fff !important; }
footer .copyright > i { color: #FCA5A5 !important; }

/* Mobile bottom nav */
.navbar-at-bottom {
    background: var(--ds-surface) !important;
    border-top: 1px solid var(--ds-border) !important;
    box-shadow: 0 -2px 12px rgba(0,0,0,0.06) !important;
    padding-top: 6px !important;
}
.navbar-at-bottom ul > li > a {
    color: var(--ds-muted) !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 2px !important;
}
.navbar-at-bottom ul > li > a > i { font-size: 20px !important; }
.navbar-at-bottom ul > li > a:hover,
.navbar-at-bottom ul > li > a:hover > i { color: var(--ds-navy) !important; }

/* ── Online test interface ────────────────────────────────── */
.question_basic {
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-md) !important;
    background: var(--ds-surface) !important;
    padding: 14px !important;
}
.question_basic .question_text {
    background: var(--ds-highlight) !important;
    color: var(--ds-navy) !important;
    border-radius: var(--r-sm) !important;
    padding: 10px 12px !important;
    font-weight: 500 !important;
}
.question_option_table { background: var(--ds-bg) !important; }
.question_option_table > tbody > tr > td {
    padding: 8px 12px !important;
    border-top: 1px solid var(--ds-border-lt) !important;
}
.paragraph_question {
    background: var(--ds-highlight) !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-sm) !important;
    padding: 10px 14px !important;
}
.paragraph_subquestion {
    background: var(--ds-bg) !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-sm) !important;
}
.add_test_box {
    border: 1.5px dashed var(--ds-border) !important;
    border-radius: var(--r-md) !important;
    background: var(--ds-surface) !important;
    transition: all 150ms ease-out !important;
}
.add_test_box:hover { border-color: var(--ds-navy) !important; background: var(--ds-surface2) !important; }
.add_test_box > i { color: var(--ds-muted) !important; }

.live_test_light_btn {
    background: var(--ds-surface) !important;
    border: 1px solid var(--ds-border) !important;
    color: var(--ds-text) !important;
    border-radius: var(--r-sm) !important;
    box-shadow: none !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    transition: all 150ms ease-out !important;
}
.live_test_light_btn:hover { background: var(--ds-surface2) !important; border-color: var(--ds-navy) !important; }
.live_test_light_btn.active { background: var(--ds-navy) !important; color: #fff !important; border-color: var(--ds-navy) !important; }

.live_test_dark_btn {
    background: var(--ds-navy) !important;
    background-image: none !important;
    color: #fff !important;
    border: 1px solid var(--ds-navy) !important;
    border-radius: var(--r-sm) !important;
    box-shadow: none !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    transition: opacity 150ms ease-out !important;
}
.live_test_dark_btn:hover { opacity: 0.88; }

/* Test report metric boxes */
.test_report_box {
    background: var(--ds-surface) !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-md) !important;
    border-right: none !important;
    padding: 14px 10px !important;
    text-align: center !important;
    transition: box-shadow 200ms ease-out !important;
}
.test_report_box:last-child { border-right: 1px solid var(--ds-border) !important; }
.report_data { font-size: 20px !important; font-weight: 700 !important; color: var(--ds-navy) !important; display: block !important; }
.report_title { font-size: 11px !important; color: var(--ds-muted) !important; text-transform: uppercase !important; letter-spacing: 0.5px !important; font-weight: 500 !important; display: block !important; margin-top: 4px !important; }

/* Section tabs in test creation */
.add_test_section_tabs > li > a {
    color: var(--ds-muted) !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-sm) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    background: var(--ds-surface) !important;
    transition: all 150ms ease-out !important;
}
.add_test_section_tabs > li.active > a,
.add_test_section_tabs > li > a:hover { background: var(--ds-navy) !important; color: #fff !important; border-color: var(--ds-navy) !important; }
.option_group_item { border: 1px solid var(--ds-border) !important; border-radius: var(--r-sm) !important; background: var(--ds-surface) !important; padding: 12px !important; }

/* ── Comment / reply forms ────────────────────────────────── */
.comment_text_area, .reply_text_area {
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-sm) !important;
    padding: 8px 12px !important;
    font-size: 13px !important;
    resize: none;
    transition: border-color 150ms ease-out !important;
}
.comment_text_area:focus, .reply_text_area:focus {
    border-color: var(--ds-navy) !important;
    box-shadow: none !important;
    outline: none !important;
}
.post-comment-btn {
    background: transparent !important;
    box-shadow: none !important;
    border-radius: var(--r-sm) !important;
}
.post-comment-btn .post-comment-icon { color: var(--ds-muted) !important; }
.post-comment-btn:hover .post-comment-icon,
.post-comment-btn:hover { color: var(--ds-navy) !important; background: transparent !important; box-shadow: none !important; }
.comment_reply_btn {
    border-color: var(--ds-navy) !important;
    color: var(--ds-navy) !important;
    border-radius: 4px !important;
    transition: all 150ms ease-out !important;
}
.comment_reply_btn:hover { background: var(--ds-navy) !important; color: #fff !important; }

/* ── Notification badge ───────────────────────────────────── */
.notification-number {
    background: var(--ds-red) !important;
    color: #fff !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    width: 16px !important;
    height: 16px !important;
    border-radius: 50% !important;
    line-height: 16px !important;
}

/* ── More-vert settings icon ──────────────────────────────── */
ul.articles-setting > li > a > i,
ul.right-setting-bar > li > a > i {
    color: var(--ds-muted) !important;
    font-size: 20px !important;   /* keep the three-dots small everywhere, even without .notification-icon */
    line-height: 1 !important;
    padding: 4px !important;
    border-radius: 4px !important;
    transition: background 150ms ease-out !important;
}
ul.articles-setting > li > a:hover > i,
ul.right-setting-bar > li > a:hover > i {
    background: var(--ds-surface2) !important;
    color: var(--ds-navy) !important;
}

/* ── Institute list items ─────────────────────────────────── */
.institute_lists {
    border-left: 3px solid var(--ds-navy) !important;
    transition: box-shadow 200ms ease-out, transform 200ms ease-out !important;
}
.institute_lists:hover {
    box-shadow: var(--sh-md) !important;
    transform: translateY(-1px) !important;
}

/* ── Misc ──────────────────────────────────────────────────── */
.theme-background-image { background-image: none !important; background-color: var(--ds-navy) !important; }
.main-container { background-color: var(--ds-bg) !important; }
.wrapper .top-navbar-height { background-color: var(--ds-navy) !important; }

.divider-new::before, .divider-new::after,
.article-list > .divider-new::before,
.article-list > .divider-new::after {
    background-image: none !important;
    background-color: var(--ds-border) !important;
}
.divider-new > h3 {
    font-size: 11px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    color: var(--ds-muted) !important;
    padding: 0 12px !important;
}

.back-to-top {
    color: var(--ds-muted) !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-sm) !important;
    background: var(--ds-surface) !important;
    font-size: 11px !important;
}
.back-to-top:hover { color: var(--ds-navy) !important; border-color: var(--ds-navy) !important; }

.user-name {
    color: rgba(232,230,224,0.95) !important;
    font-weight: 500 !important;
    text-shadow: none !important;
    font-size: 13px !important;
}

.sp_ribbon_class {
    background: var(--ds-navy) !important;
    background-image: none !important;
    border-radius: 20px !important;
    color: #fff !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    padding: 3px 12px !important;
    border: none !important;
    box-shadow: none !important;
}
.sp_ribbon_class.success_color { background: var(--ds-green) !important; }
.sp_ribbon_class.danger_color  { background: var(--ds-red) !important; }

.delete_btn:hover { background: #FEF2F2 !important; color: var(--ds-red) !important; }
.hover-with-box-shadow {
    border-radius: var(--r-sm) !important;
    transition: background 150ms ease-out !important;
    padding: 6px 10px !important;
}
.hover-with-box-shadow:hover { background: var(--ds-surface2) !important; }

.rating_form {
    background: var(--ds-bg) !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-sm) !important;
    padding: 10px 14px !important;
}

.article-post-ul { list-style: none !important; }

/* ── Responsive: tablet ───────────────────────────────────── */
@media (min-width: 768px) and (max-width: 1024px) {
    .container { max-width: 100% !important; padding: 0 20px !important; }
    .articles-list-box { padding: 16px !important; }
}

/* ── Responsive: mobile ───────────────────────────────────── */
@media (max-width: 767px) {
    .container { padding: 0 12px !important; }
    .articles-list-box { padding: 14px !important; border-radius: var(--r-md) !important; margin-bottom: 10px !important; }
    .card, .card-signup { border-radius: var(--r-md) !important; }
    .card.card-signup { max-width: 100% !important; margin: 70px 0 24px !important; }
    .card.card-signup.account-forms { max-width: 100% !important; }
    .card-signup .content { padding: 18px 16px !important; }
    .header.header-primary.form-header { padding: 14px 16px !important; }
    .login-footer { padding: 10px 16px 14px !important; }
    .form-control { font-size: 16px !important; }
    .input-group .form-control { font-size: 16px !important; }
    .modal-dialog { margin: 10px auto !important; width: calc(100% - 20px) !important; max-width: 100% !important; }
    .modal-content { border-radius: var(--r-md) !important; }
    .navbar-at-bottom ul > li > a { padding: 6px 10px !important; min-width: 48px !important; min-height: 48px !important; }
    .dropdown-menu { min-width: 85vw !important; }
    h1 { font-size: 22px !important; } h2 { font-size: 18px !important; }
}

/* ── Desktop cap ──────────────────────────────────────────── */
@media (min-width: 1200px) {
    .container { max-width: 1120px !important; }
}

/* ─────────────────────────────────────────────────────────────
   VISIBILITY FIXES — font colors and component consistency
   ──────────────────────────────────────────────────────────── */

/* Ensure profile-date links are readable on navy profile-content */
.article-user-info .profile-content .profile-date,
.article-user-info .profile-content .profile-date a,
.article-user-info .profile-content .profile-date-inline {
    color: rgba(255,255,255,0.65) !important;
    font-size: 11px !important;
}
/* Stats/numbers in profile sidebar on navy bg */
.article-user-info .profile-content p,
.article-user-info .profile-content span { color: rgba(255,255,255,0.82) !important; }
.article-user-info .profile-content strong { color: #fff !important; font-weight: 600 !important; }

/* Profile section below profile-content (white bg) */
.article-user-info .profile-content ~ * p,
.article-user-info .profile-content ~ * a,
.article-user-info .profile-content ~ * span { color: var(--ds-text) !important; }

/* Feed item text visibility */
.articles-list-box p,
.articles-list-box span,
.articles-list-box li { color: var(--ds-text) !important; }
.articles-list-box .text-muted,
.articles-list-box small { color: var(--ds-muted) !important; }

/* Multi-line header inside card */
.multi_line_header { color: var(--ds-text) !important; padding: 12px 20px !important; }
.card-signup h3.multi_line_header { font-size: 15px !important; font-weight: 500 !important; color: var(--ds-muted) !important; }

/* Full-page form card — vertical center on auth pages */
.card.card-signup { margin: 80px auto 40px !important; }
.card.card-signup.account-forms { margin: 60px auto 40px !important; }

/* Consistent button height */
.btn.btn-submit, .btn.btn-cancle, .btn.btn-primary, .btn.btn-default {
    min-height: 40px !important;
    line-height: 1.4 !important;
}

/* Tab-width cap: feed columns max 360px each at tablet */
@media (min-width: 768px) and (max-width: 1024px) {
    .col-md-3 { max-width: 260px; }
    .col-md-6 { flex: 1; }
}

/* Toggle switch label text visibility */
.maincontent strong,
.input-group strong { color: var(--ds-text) !important; font-size: 13px !important; font-weight: 500 !important; }

/* Feed header: one-row action bar + date-filter chip.
   Scoped to .articles-post-top so the like/comment strips stay as-is.
   Popover and persistence JS live in configuration_custom_script.js. */

/* Card is one flex row */
.articles-post-top.article-post {
    display: flex !important;
    flex-wrap: nowrap !important;       /* keep the chip on the actions row */
    align-items: center !important;
    gap: 6px 8px !important;
    padding: 9px 14px !important;
    position: relative !important;
    z-index: 20 !important;             /* keeps the filter popover above the posts */
}
/* Actions cluster (left, grows). Never wraps: if the actions can't fit they
   scroll horizontally (scrollbar hidden) — the row height never grows. */
.articles-post-top .text-center {
    flex: 1 1 auto !important;
    text-align: left !important;
    min-width: 0 !important;
    overflow-x: auto !important;
    -ms-overflow-style: none !important;
    scrollbar-width: none !important;
}
.articles-post-top .text-center::-webkit-scrollbar { display: none !important; }
.articles-post-top .article-post-ul {
    display: inline-flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 3px !important;
    border-top: none !important;
    margin: 0 !important;
    padding: 0 !important;
    vertical-align: middle !important;
}
.articles-post-top .article-post-ul + .article-post-ul { margin-left: 4px !important; }
.articles-post-top .article-post-ul > li {
    border-right: none !important;   /* kill the silver pipe dividers */
    padding: 0 !important;
    margin: 0 !important;
    float: none !important;
    list-style: none !important;
    display: inline-flex !important;
    flex: 0 0 auto !important;        /* items keep their size; cluster scrolls instead of wrapping */
}
.articles-post-top .article-post-ul hr { display: none !important; }

/* This zone holds two kinds of items, styled differently:
   - navigation / list links (open a page): coloured text, no icon
   - actions (open a modal, or the primary create CTA): icon buttons   */
.articles-post-top .article-profile-icon br { display: none !important; }
.articles-post-top .article-profile-icon {
    display: inline-flex !important;
    align-items: center !important;
    white-space: nowrap !important;
    min-width: 0 !important;
    line-height: 1.2 !important;
    border: 1px solid transparent !important;
    transition: background 150ms ease-out, color 150ms ease-out !important;
}

/* Navigation / list links: coloured text, no icon */
.articles-post-top .article-profile-icon:not([data-toggle="modal"]):not(.primary-action) {
    color: var(--ds-navy) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    padding: 7px 9px !important;
    border-radius: var(--r-sm) !important;
    background: transparent !important;
}
.articles-post-top .article-profile-icon:not([data-toggle="modal"]):not(.primary-action) > i,
.articles-post-top .article-profile-icon:not([data-toggle="modal"]):not(.primary-action) > .material-icons {
    display: none !important;
}
.articles-post-top .article-profile-icon:not([data-toggle="modal"]):not(.primary-action):hover {
    color: var(--ds-navy-lt) !important;
    text-decoration: underline !important;
    background: transparent !important;
}

/* Actions: icon buttons (label kept in DOM for a11y, hidden visually) */
.articles-post-top .article-profile-icon[data-toggle="modal"],
.articles-post-top .article-profile-icon.primary-action {
    font-size: 0 !important;
    width: 38px !important;
    height: 38px !important;
    padding: 0 !important;
    justify-content: center !important;
    border-radius: 50% !important;
}
.articles-post-top .article-profile-icon[data-toggle="modal"] > i.material-icons,
.articles-post-top .article-profile-icon.primary-action > i.material-icons {
    display: inline-block !important;
    margin: 0 !important;
    font-size: 20px !important;
    line-height: 1 !important;
    vertical-align: middle !important;
}
/* Secondary action (e.g. Join Batch): tinted circle */
.articles-post-top .article-profile-icon[data-toggle="modal"]:not(.primary-action) {
    background: var(--primary-tint) !important;
    color: var(--ds-navy) !important;
}
.articles-post-top .article-profile-icon[data-toggle="modal"]:not(.primary-action) > i.material-icons { color: var(--ds-navy) !important; }
.articles-post-top .article-profile-icon[data-toggle="modal"]:not(.primary-action):hover { background: var(--primary-tint-hi) !important; }
/* Primary action: filled circle */
.articles-post-top .article-profile-icon.primary-action {
    background: var(--ds-navy) !important;
    border-color: var(--ds-navy) !important;
    box-shadow: var(--sh-sm) !important;
}
.articles-post-top .article-profile-icon.primary-action > i.material-icons { color: #fff !important; }
.articles-post-top .article-profile-icon.primary-action:hover { background: var(--ds-navy-lt) !important; }

/* ── Filter cluster (right) — retire accordion shell ──────── */
.accordion { display: none !important; }
.accordion-panel,
.accordion-container .accordion-panel {
    display: block !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    min-width: 0 !important;
    max-width: none !important;
}
.accordion-container { display: block !important; }
.articles-post-top .accordion-container {
    flex: 0 0 auto !important;
    margin-left: auto !important;   /* push the chip to the far right */
}

/* ── Smart date-filter chip + popover (walls/date_filter.html) */
.feed-filter { position: relative !important; display: inline-block !important; }
/* Default = compact icon-only pill so it tucks into the actions row. */
.feed-filter__chip {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    height: 36px !important;
    width: 36px !important;
    padding: 0 !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: 18px !important;
    background: var(--ds-surface) !important;
    color: var(--ds-text) !important;
    font-size: 12.5px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    outline: none !important;
    flex: 0 0 auto !important;
    transition: border-color 150ms ease-out, background 150ms ease-out, color 150ms ease-out !important;
}
.feed-filter__chip:hover { border-color: var(--ds-navy) !important; }
.feed-filter__chip > i.material-icons { font-size: 18px !important; color: var(--ds-muted) !important; }
/* Hidden until a filter is set — then the pill expands to show the range. */
.feed-filter__label, .feed-filter__caret { display: none !important; }
.feed-filter__label { white-space: nowrap !important; }
.feed-filter__chip.is-active,
.feed-filter__chip.is-remembered {
    width: auto !important;
    padding: 0 8px 0 12px !important;
}
.feed-filter__chip.is-active .feed-filter__label,
.feed-filter__chip.is-remembered .feed-filter__label { display: inline !important; }
/* Remembered (saved but not currently applied) */
.feed-filter__chip.is-remembered { border-color: var(--ds-navy) !important; color: var(--ds-navy) !important; }
.feed-filter__chip.is-remembered > i.material-icons { color: var(--ds-navy) !important; }
/* Active (filter currently applied this session / via URL) */
.feed-filter__chip.is-active {
    background: var(--ds-navy) !important;
    border-color: var(--ds-navy) !important;
    color: #fff !important;
}
.feed-filter__chip.is-active .feed-filter__label { color: #fff !important; }
.feed-filter__chip.is-active > i.material-icons,
.feed-filter__chip.is-active .feed-filter__caret { color: rgba(255,255,255,0.85) !important; }
.feed-filter__clear {
    display: none;
    width: 18px; height: 18px; line-height: 17px;
    text-align: center; border-radius: 50%;
    font-size: 15px; margin-left: 2px;
    background: rgba(255,255,255,0.22); color: #fff;
}
.feed-filter__chip.is-active .feed-filter__clear { display: inline-block; }
.feed-filter__clear:hover { background: rgba(255,255,255,0.4); }
.feed-filter__chip.is-active .feed-filter__caret { display: none; }

/* Popover */
.feed-filter__popover {
    display: none;
    position: absolute !important;
    top: calc(100% + 8px) !important;
    right: 0 !important;
    z-index: 200 !important;
    width: 282px !important;
    max-width: calc(100vw - 32px) !important;
    background: var(--ds-surface) !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-md) !important;
    box-shadow: var(--sh-lg) !important;
    padding: 12px !important;
    text-align: left !important;
}
.feed-filter__popover.open { display: block !important; }
.feed-filter__presets { display: flex !important; gap: 6px !important; margin-bottom: 10px !important; }
.feed-filter__preset {
    flex: 1 1 0 !important;
    padding: 6px 4px !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-sm) !important;
    background: var(--ds-surface) !important;
    color: var(--ds-muted) !important;
    cursor: pointer !important;
    transition: all 120ms ease-out !important;
}
.feed-filter__preset:hover { border-color: var(--ds-navy) !important; color: var(--ds-navy) !important; }
.feed-filter__preset.selected { background: var(--ds-navy) !important; border-color: var(--ds-navy) !important; color: #fff !important; }
.feed-filter__fields { display: flex !important; gap: 8px !important; margin-bottom: 12px !important; }
.feed-filter__fields label { flex: 1 1 0 !important; display: block !important; margin: 0 !important; }
.feed-filter__fields label > span {
    display: block !important;
    font-size: 11px !important;
    color: var(--ds-muted) !important;
    margin-bottom: 3px !important;
    font-weight: 500 !important;
}
.feed-filter__fields input.datepicker {
    width: 100% !important;
    height: 36px !important;
    padding: 6px 10px !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-sm) !important;
    background: var(--ds-surface) !important;
    color: var(--ds-text) !important;
    font-size: 12.5px !important;
    box-shadow: none !important;
}
.feed-filter__fields input.datepicker:focus {
    border-color: var(--ds-navy) !important;
    box-shadow: 0 0 0 3px rgba(30,58,138,0.08) !important;
    outline: none !important;
}
.feed-filter__actions-row { display: flex !important; align-items: center !important; justify-content: space-between !important; }
.feed-filter__reset {
    background: none !important;
    border: none !important;
    color: var(--ds-muted) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    padding: 4px 2px !important;
}
.feed-filter__reset:hover { color: var(--ds-red) !important; }
.feed-filter .filter_by_date { display: inline-block !important; margin: 0 !important; }
.feed-filter__apply.btn.btn-submit {
    height: 34px !important;
    min-height: 34px !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 18px !important;
    border-radius: var(--r-sm) !important;
    font-size: 12.5px !important;
    line-height: 32px !important;
}

/* Text nav + icon actions keep the zone compact, so no label-collapse is
   needed. On phones just reposition the popover to stay on screen. */
@media (max-width: 640px) {
    .feed-filter__popover {
        right: 0 !important;
        left: auto !important;
        width: 264px !important;
        max-width: calc(100vw - 24px) !important;
    }
}

/* Post / content composer modals. Same fields and behaviour; layout only.
   Goal: cut the long vertical scroll. */

.modal-body form label,
.modal-body form .control-label {
    font-size: 12px !important;
    font-weight: 600 !important;
    color: var(--ds-muted) !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    margin-bottom: 4px !important;
    text-align: left !important;
}

/* Tighter rhythm */
.modal-body form .row.margin-15px--15px { margin: 0 0 8px !important; }
.modal-body form > .input-group { margin-bottom: 10px !important; }
.modal-body form hr { margin: 8px 0 !important; clear: both !important; }
.modal-body form::after { content: ""; display: table; clear: both; }

/* Two-up the metadata selects (domains / sections / topics / audience) so
   they don't stack into a long scroll. They stay visible, so select2 keeps
   its width. :has is progressively enhanced — unsupported browsers just get
   the original full-width stack. */
.modal-body form .row:has(> .col-xs-12 > .domain_section_mapping_domain_select),
.modal-body form .row:has(> .col-xs-12 > .section_topic_mapping_section_select),
.modal-body form .row:has(> .col-xs-12 > #section_topic_mapping_topic_select) {
    float: left !important;
    width: 47% !important;
    margin: 0 6% 8px 0 !important;
}
.modal-body form .row:has(> .col-xs-12 > .section_topic_mapping_section_select) { margin-right: 0 !important; }
/* left column starts a fresh line so a tall multiselect can't drop the next pair */
.modal-body form .row:has(> .col-xs-12 > .domain_section_mapping_domain_select),
.modal-body form .row:has(> .col-xs-12 > #section_topic_mapping_topic_select) { clear: left !important; }
.modal-body form .row.custom_share { clear: both !important; float: none !important; width: 100% !important; }

/* Details editor: the main field, roomy but not huge */
.modal-body .tinymce_editor.form-control,
.modal-body textarea.form-control { min-height: 104px !important; line-height: 1.6 !important; }
.modal-body .mce-tinymce { border-radius: var(--r-sm) !important; }

/* Attach file: branded button, no empty grey placeholder box */
.modal-body input[type="file"] { width: auto !important; font-size: 12px !important; }
.modal-body input[type="file"]::file-selector-button,
.modal-body input[type="file"]::-webkit-file-upload-button {
    border: 1px solid var(--ds-navy) !important;
    background: transparent !important;
    color: var(--ds-navy) !important;
    border-radius: var(--r-sm) !important;
    padding: 6px 14px !important;
    margin-right: 10px !important;
    font-weight: 600 !important;
    font-size: 12px !important;
    cursor: pointer !important;
    transition: background 150ms ease-out, color 150ms ease-out !important;
}
.modal-body input[type="file"]::file-selector-button:hover,
.modal-body input[type="file"]::-webkit-file-upload-button:hover {
    background: var(--ds-navy) !important;
    color: #fff !important;
}
.modal-body .file_upload_form .control-label { line-height: 32px !important; margin: 0 !important; }
.modal-body .file_uploaded_div.template,
.modal-body .file_uploaded_div.hidden { display: none !important; }
.modal-body .file_uploaded_div:not(.template):not(.hidden) {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    margin-bottom: 6px !important;
}

/* Composer feel: title reads like a heading, body like a writing canvas —
   fewer boxes, more "write" than "fill a form". */
.modal-body form input[name="title"].form-control {
    border: none !important;
    border-bottom: 1px solid var(--ds-border) !important;
    border-radius: 0 !important;
    padding: 8px 2px !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    color: var(--ds-heading) !important;
    background: transparent !important;
    box-shadow: none !important;
}
.modal-body form input[name="title"].form-control:focus {
    border-bottom: 2px solid var(--ds-navy) !important;
    box-shadow: none !important;
}
.modal-body form input[name="title"].form-control::placeholder {
    color: var(--ds-subtle) !important;
    font-weight: 500 !important;
}
.modal-body .mce-tinymce.mce-container {
    border: 1px solid var(--ds-border) !important;
    box-shadow: none !important;
    border-radius: var(--r-md) !important;
    overflow: hidden !important;
}
.modal-body .mce-tinymce .mce-toolbar-grp,
.modal-body .mce-tinymce .mce-statusbar {
    background: var(--ds-bg) !important;
    border-color: var(--ds-border-lt) !important;
}
.modal-body .mce-btn { background: transparent !important; }
.modal-body form hr { border-top-color: var(--ds-border-lt) !important; }

/* Composer toolbar — chips that toggle the optional sections (default on) */
.composer-toolbar { display: flex !important; flex-wrap: wrap !important; gap: 8px !important; margin: 4px 0 10px !important; }
.composer-tool {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    border: 1px solid var(--ds-border) !important;
    background: var(--ds-surface) !important;
    color: var(--ds-muted) !important;
    border-radius: 18px !important;
    padding: 6px 14px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: background 150ms ease-out, color 150ms ease-out, border-color 150ms ease-out !important;
}
.composer-tool .material-icons { font-size: 17px !important; color: inherit !important; }
.composer-tool:hover { border-color: var(--ds-navy) !important; color: var(--ds-navy) !important; }
.composer-tool.active { background: var(--primary-tint) !important; border-color: var(--ds-navy) !important; color: var(--ds-navy) !important; }

/* Collapsible sections. Height collapse (not display:none) so Select2 keeps
   its width — it initialises while the section is open. */
.composer-section { max-height: 1200px; overflow: hidden; transition: max-height 250ms ease; }
.composer-section:not(.open) { max-height: 0; }

/* Audience pill toggle, layered over the (hidden) share_with select */
.pill-toggle { display: inline-flex !important; gap: 6px !important; margin-bottom: 4px !important; }
.pill-toggle .pill {
    border: 1px solid var(--ds-border) !important;
    background: var(--ds-surface) !important;
    color: var(--ds-muted) !important;
    border-radius: 16px !important;
    padding: 6px 18px !important;
    font-size: 12.5px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: all 150ms ease-out !important;
}
.pill-toggle .pill:hover { border-color: var(--ds-navy) !important; color: var(--ds-navy) !important; }
.pill-toggle .pill.active { background: var(--ds-navy) !important; border-color: var(--ds-navy) !important; color: #fff !important; }
.pill-toggle ~ .select2-container,
.pill-toggle ~ select.share_with { display: none !important; }

/* Login form social icons section */
.social-line .btn.btn-simple.btn-just-icon { font-size: 18px !important; }

/* Checkbox label in forms */
.checkbox label, .radio label { color: var(--ds-text) !important; font-size: 13px !important; }

/* Select2 selected tag visible */
.select2-container--default .select2-selection--multiple .select2-selection__choice {
    background: #EEF2FF !important;
    border-color: #C7D2FE !important;
    color: var(--ic-indigo) !important;
    border-radius: 4px !important;
    font-size: 12px !important;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    color: var(--ic-indigo) !important;
}

/* Notification list items */
.dropdown-menu.notifications-lists li > a {
    white-space: normal !important;
    padding: 10px 16px !important;
    border-bottom: 1px solid var(--ds-border-lt) !important;
    font-size: 12px !important;
    line-height: 1.5 !important;
}
.dropdown-menu.notifications-lists li:last-child > a { border-bottom: none !important; }

/* Navbar modal (mobile slide-in) */
.modal-dialog.navbar-modal {
    background: var(--ds-surface) !important;
    margin: 0 !important;
    max-width: 80vw !important;
    width: 80vw !important;
    border-radius: 0 var(--r-lg) var(--r-lg) 0 !important;
    overflow-y: auto !important;
    box-shadow: var(--sh-lg) !important;
}

/* Navbar-modal overrides — let it handle its own scroll height */
.modal-dialog.navbar-modal .modal-body { max-height: none !important; overflow-y: visible !important; }

/* Post top bar card (share post / filter row) — compact vertical rhythm */
.articles-list-box.article-post.articles-post-top {
    background: var(--ds-surface) !important;
    border-radius: var(--r-lg) !important;
    border: 1px solid var(--ds-border) !important;
    padding: 6px 16px 4px !important;
    margin-bottom: 10px !important;
}

/* ═══════════════════════════════════════════════════════════
   COMPREHENSIVE ICON COLORS — GenZ palette
   Covers every FA + Material Icon found across all templates.
   Strategy: FA = class selector (always works).
             Material Icons = context rules + class rules where
             icon name is added as extra class in templates.
   ═══════════════════════════════════════════════════════════ */

/* ── Font Awesome: Navigation & Arrows ───────────────────── */
.fa-arrow-left, .fa-arrow-right,
.fa-long-arrow-left, .fa-long-arrow-right,
.fa-angle-double-right, .fa-arrow-circle-up,
.fas.fa-caret-right                     { color: var(--ic-blue) !important; }
.fa-chevron-down                        { color: var(--ic-gray) !important; }

/* ── Font Awesome: Edit / Create ─────────────────────────── */
.fa-pencil, .fas.fa-pencil-alt,
.far.fa-edit                            { color: var(--ic-blue) !important; }
.fa-external-link, .fa-link,
.fa-paste                               { color: var(--ic-blue) !important; }

/* ── Font Awesome: Delete / Close / Block ────────────────── */
.fa-trash, .far.fa-trash-alt            { color: var(--ic-red) !important; }
.fa-times                               { color: var(--ic-gray) !important; }
.fa-times-circle                        { color: var(--ic-red) !important; }
.fas.fa-ban                             { color: var(--ic-red) !important; }

/* ── Font Awesome: Success / Check ──────────────────────── */
.fa-check, .fas.fa-check-circle,
.fa-check-circle, .fa-check-square,
.fa-check-square-o                      { color: var(--ic-green) !important; }

/* ── Font Awesome: Users / Profile ──────────────────────── */
.fa-users                               { color: var(--ic-blue) !important; }
.fas.fa-user                            { color: var(--ic-blue) !important; }
.fa-user-plus, .fas.fa-user-plus        { color: var(--ic-green) !important; }
.fa-power-off                           { color: var(--ic-red) !important; }

/* ── Font Awesome: Media / Content ──────────────────────── */
.fa-camera                              { color: var(--ic-teal) !important; }
.fas.fa-play                            { color: var(--ic-red) !important; }
.fas.fa-tv                              { color: var(--ic-purple) !important; }
.fas.fa-laptop, .fa-laptop              { color: var(--ic-indigo) !important; }
.fas.fa-eye, .fa-eye                    { color: var(--ic-teal) !important; }
.fa-th                                  { color: var(--ic-purple) !important; }
.fa-list-ul, .fa-list-alt,
.fas.fa-list                            { color: var(--ic-gray) !important; }
.fa-file-alt                            { color: var(--ic-indigo) !important; }

/* ── Font Awesome: Communication ────────────────────────── */
.fas.fa-paper-plane, .fa-send           { color: var(--ic-blue) !important; }
.fas.fa-reply                           { color: var(--ic-teal) !important; }
.far.fa-compass                         { color: var(--ic-teal) !important; }
.far.fa-share-square                    { color: var(--ic-teal) !important; }
.fa-envelope                            { color: var(--ic-cyan) !important; }

/* ── Font Awesome: Info / Help / Warning ─────────────────── */
.fa-info-circle, .fas.fa-info-circle    { color: var(--ic-blue) !important; }
.fa-question-circle                     { color: var(--ic-blue) !important; }
.fa-warning, .fas.fa-exclamation-circle { color: var(--ic-orange) !important; }
.fa-dot-circle-o                        { color: var(--ic-indigo) !important; }
.fa-circle, .far.fa-circle              { color: var(--ic-gray) !important; }

/* ── Font Awesome: Upload / Save / Filters ───────────────── */
.fas.fa-upload, .fa-upload              { color: var(--ic-indigo) !important; }
.fa-save                                { color: var(--ic-green) !important; }
.fa-filter                              { color: var(--ic-indigo) !important; }

/* ── Font Awesome: Finance / Tags ────────────────────────── */
.fas.fa-rupee-sign                      { color: var(--ic-amber) !important; }
.fa-cart-plus                           { color: var(--ic-green) !important; }
.fa-tag                                 { color: var(--ic-amber) !important; }

/* ── Font Awesome: Security ──────────────────────────────── */
.fas.fa-shield-alt                      { color: var(--ic-indigo) !important; }
.fa-lock                                { color: var(--ic-amber) !important; }

/* ── Font Awesome: Calendar / Time ──────────────────────── */
.fa-calendar                            { color: var(--ic-indigo) !important; }

/* ── Font Awesome: Education / Content ───────────────────── */
.fa-cubes                               { color: var(--ic-purple) !important; }

/* ── Font Awesome: Bell (generic) ───────────────────────── */
.fa-bell                                { color: var(--ic-amber) !important; }

/* ── Font Awesome: Phone ─────────────────────────────────── */
.fa-phone                               { color: var(--ic-green) !important; }

/* ── Font Awesome: Misc UI ───────────────────────────────── */
.fa-minus                               { color: var(--ic-gray) !important; }
.fa-spinner                             { color: var(--ic-gray) !important; }

/* ── Font Awesome: Social brands ────────────────────────── */
.fa-facebook, .fa-facebook-f,
.fa-facebook-square                     { color: #1877F2 !important; }
.fa-twitter, .fab.fa-twitter            { color: #1DA1F2 !important; }
.fa-instagram                           { color: #E1306C !important; }
.fa-youtube, .fa-youtube-play           { color: #FF0000 !important; }
.fa-google-plus                         { color: #EA4335 !important; }
.fab.fa-accusoft, .fab.fa-schlix        { color: var(--ic-violet) !important; }
.fab.fa-audible                         { color: var(--ic-orange) !important; }
.fab.fa-quora                           { color: #B92B27 !important; }

/* ── Button icon overrides ───────────────────────────────── */
/* White buttons: keep icons readable in dark */
.btn-default .material-icons, .btn-default .fa,
.btn-default .fas, .btn-default .far       { color: var(--ds-text) !important; }
/* Submit/primary buttons: icons white */
.btn-submit .material-icons, .btn-submit .fa, .btn-submit .fas,
.btn-primary .material-icons, .btn-primary .fa, .btn-primary .fas { color: #fff !important; }

/* ── Navbar-modal (mobile slide-in) ─────────────────────── */
.navbar-modal .material-icons,
.navbar-modal .fa, .navbar-modal .fas,
.navbar-modal .far                         { color: var(--ds-text) !important; }
.navbar-modal li > a > .material-icons     { color: var(--ic-blue) !important; }

/* ── Spinner stays neutral ───────────────────────────────── */
.fa-spinner                                { color: var(--ic-gray) !important; }

/* ═══════════════════════════════════════════════════════════
   PAGE LOADER — "Padho, Seekho, Badho... NiveshTak"
   Learning icons morph into nivesh (investment) icons, left→right,
   over a navy→green progress sweep. Overrides the old dark .overlay
   swirl. Scoped to #spinner.suvi-loader so nothing else is touched.
   ═══════════════════════════════════════════════════════════ */
#spinner.suvi-loader {
    background: var(--ds-bg, #F7F6F3);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity .45s ease, visibility .45s ease;
}
/* Smooth fade-out instead of an abrupt display:none from the JS */
#spinner.suvi-loader.is-hiding {
    opacity: 0;
    visibility: hidden;
}

.suvi-loader__stage {
    width: 280px;
    max-width: 80vw;
    text-align: center;
    font-family: 'Hanken Grotesk', sans-serif;
}

/* All icons stack in the same spot and crossfade in sequence */
.suvi-loader__icons {
    position: relative;
    height: 84px;
    margin-bottom: 26px;
}
.suvi-ic {
    position: absolute;
    top: 0; left: 0; right: 0;
    font-size: 60px;
    line-height: 84px;
    opacity: 0;
    will-change: transform, opacity;
    animation: suviMorph 4s ease-in-out infinite;
}
/* learning → nivesh, cool navy → brand green */
.suvi-ic--1 { color: var(--ds-navy,    #1E3A8A); animation-delay: 0s; }  /* graduation cap */
.suvi-ic--2 { color: var(--ic-teal,    #0F766E); animation-delay: 1s; }  /* book */
.suvi-ic--3 { color: var(--ds-green,   #4E8A35); animation-delay: 2s; }  /* growth chart */
.suvi-ic--4 { color: var(--ds-green-dk,#3A6B27); animation-delay: 3s; }  /* rupee */

/* enter from the left, hold, exit to the right → the "transform" reads L→R */
@keyframes suviMorph {
    0%   { opacity: 0; transform: translateX(-30px) scale(.82) rotate(-6deg); }
    8%   { opacity: 1; transform: translateX(0)     scale(1)   rotate(0deg); }
    22%  { opacity: 1; transform: translateX(0)     scale(1)   rotate(0deg); }
    30%  { opacity: 0; transform: translateX(30px)  scale(.82) rotate(6deg); }
    100% { opacity: 0; transform: translateX(30px)  scale(.82) rotate(6deg); }
}

/* navy→green sweep underneath, also moving left→right */
.suvi-loader__track {
    height: 4px;
    width: 100%;
    background: var(--primary-tint, rgba(30,58,138,.1));
    border-radius: 999px;
    overflow: hidden;
}
.suvi-loader__fill {
    display: block;
    height: 100%;
    width: 38%;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--ds-navy,#1E3A8A), var(--ds-green,#4E8A35));
    animation: suviSlide 1.4s ease-in-out infinite;
}
@keyframes suviSlide {
    0%   { transform: translateX(-130%); }
    100% { transform: translateX(330%); }
}

.suvi-loader__brand {
    margin-top: 22px;
    font-size: 24px;
    font-weight: 800;
    letter-spacing: .02em;
    color: var(--ds-navy, #1E3A8A);
}
.suvi-loader__tag {
    margin-top: 6px;
    font-size: 12px;
    letter-spacing: .04em;
    text-transform: none;
    color: var(--ds-muted, #5B6573);
}

/* Respect reduced-motion: hold the first state, no animation */
@media (prefers-reduced-motion: reduce) {
    .suvi-ic, .suvi-loader__fill { animation: none; }
    .suvi-ic--1 { opacity: 1; transform: none; }
    .suvi-loader__fill { width: 100%; }
}

/* ═══════════════════════════════════════════════════════════
   UTILITY ICON COLOR CLASSES
   Defined AFTER the global .material-icons rule so cascade wins.
   Usage: <i class="material-icons ic-green">icon_name</i>
   Works with both Material Icons and Font Awesome.
   ═══════════════════════════════════════════════════════════ */
.ic-blue   { color: var(--ic-blue)   !important; }
.ic-green  { color: var(--ic-green)  !important; }
.ic-amber  { color: var(--ic-amber)  !important; }
.ic-purple { color: var(--ic-purple) !important; }
.ic-teal   { color: var(--ic-teal)   !important; }
.ic-red    { color: var(--ic-red)    !important; }
.ic-orange { color: var(--ic-orange) !important; }
.ic-pink   { color: var(--ic-pink)   !important; }
.ic-indigo { color: var(--ic-indigo) !important; }
.ic-cyan   { color: var(--ic-cyan)   !important; }
.ic-gray   { color: var(--ic-gray)   !important; }
.ic-navy   { color: var(--ds-navy)   !important; }
.ic-white  { color: #ffffff          !important; }

/* ═══════════════════════════════════════════════════════════
   LANDING PAGE STYLES
   Self-contained — all rules scoped under .landing-* classes.
   ═══════════════════════════════════════════════════════════ */

/* ── Hero ────────────────────────────────────────────────── */
.landing-hero {
    background: var(--ds-green-deep);
    padding: 80px 0 60px;
    position: relative;
    overflow: hidden;
}
.landing-hero::before {
    content: '';
    position: absolute;
    top: -80px; right: -80px;
    width: 420px; height: 420px;
    background: radial-gradient(circle, rgba(227,189,99,0.16) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}
.landing-hero::after {
    content: '';
    position: absolute;
    bottom: -100px; left: 8%;
    width: 320px; height: 320px;
    background: radial-gradient(circle, rgba(168,198,106,0.16) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}
.landing-hero--about { padding: 60px 0 44px; }
.landing-hero-row { display: flex !important; align-items: center !important; flex-wrap: wrap !important; }
.landing-hero-left  { position: relative; z-index: 1; }
.landing-hero-right { position: relative; z-index: 1; margin-top: 8px; }

.landing-badge {
    display: inline-block;
    background: rgba(227,189,99,0.15);
    color: var(--ds-gold-lt);
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    padding: 5px 14px;
    border-radius: 20px;
    border: 1px solid rgba(227,189,99,0.38);
    margin-bottom: 20px;
}
.landing-headline {
    font-size: 36px !important;
    font-weight: 700 !important;
    color: #fff !important;
    line-height: 1.18 !important;
    letter-spacing: -0.02em !important;
    margin-bottom: 18px !important;
}
.landing-accent { color: var(--ds-gold-lt); }
.landing-sub {
    font-size: 15px !important;
    color: rgba(255,255,255,0.70) !important;
    line-height: 1.68 !important;
    margin-bottom: 30px !important;
    max-width: 500px;
}

/* ── CTA buttons ─────────────────────────────────────────── */
.landing-cta-group {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 36px;
}
.landing-btn-primary {
    background: #fff !important;
    background-image: none !important;
    color: var(--ds-navy) !important;
    border: 1.5px solid var(--ds-navy) !important;
    border-radius: 8px !important;
    padding: 13px 22px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    box-shadow: none !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 7px !important;
    line-height: 1 !important;
    transition: background 150ms ease-out, border-color 150ms ease-out, color 150ms ease-out !important;
    text-decoration: none !important;
}
.landing-btn-primary:hover {
    background: var(--primary-tint) !important;
    color: var(--ds-navy) !important;
    border-color: var(--ds-navy-lt) !important;
    text-decoration: none !important;
    box-shadow: none !important;
}
.landing-btn-primary .material-icons { font-size: 17px !important; color: var(--ds-navy) !important; }

.landing-btn-outline {
    background: transparent !important;
    background-image: none !important;
    color: rgba(255,255,255,0.82) !important;
    border: 1px solid rgba(255,255,255,0.28) !important;
    border-radius: 8px !important;
    padding: 13px 22px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 7px !important;
    line-height: 1 !important;
    transition: all 150ms ease-out !important;
    text-decoration: none !important;
}
.landing-btn-outline:hover {
    background: rgba(255,255,255,0.09) !important;
    color: #fff !important;
    border-color: rgba(255,255,255,0.48) !important;
    text-decoration: none !important;
}
.landing-btn-outline .material-icons { font-size: 17px !important; color: rgba(255,255,255,0.82) !important; }

/* ── Stats strip ─────────────────────────────────────────── */
.landing-stats { display: flex; gap: 30px; padding-top: 4px; }
.landing-stat strong {
    display: block;
    font-size: 21px !important;
    font-weight: 700 !important;
    color: var(--ds-gold-lt) !important;
    line-height: 1.2 !important;
}
.landing-stat span {
    font-size: 12px !important;
    color: rgba(255,255,255,0.50) !important;
    font-weight: 400 !important;
}

/* ── Auth card on hero ────────────────────────────────────── */
.landing-auth-card {
    border: 1px solid rgba(255,255,255,0.10) !important;
    background: rgba(255,255,255,0.05) !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    box-shadow: 0 12px 48px rgba(0,0,0,0.28) !important;
}
.landing-auth-header {
    padding: 22px 24px 14px;
    border-bottom: 1px solid rgba(255,255,255,0.09);
}
.landing-auth-header h4 {
    color: #fff !important;
    font-size: 16px !important;
    margin: 0 0 4px !important;
}
.landing-auth-header p {
    color: rgba(255,255,255,0.50) !important;
    font-size: 12px !important;
    margin: 0 !important;
}
.landing-auth-body { padding: 18px 22px 22px; }
.landing-auth-btn {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    width: 100% !important;
    padding: 13px 16px !important;
    border-radius: 10px !important;
    text-decoration: none !important;
    transition: all 150ms ease-out !important;
    text-align: left !important;
    margin-bottom: 10px !important;
    line-height: 1 !important;
    box-shadow: none !important;
}
.landing-auth-btn--primary {
    background: #fff !important;
    border: 1px solid #fff !important;
    color: var(--ds-navy) !important;
}
.landing-auth-btn--primary:hover {
    background: rgba(255,255,255,0.90) !important;
    color: var(--ds-navy) !important;
    text-decoration: none !important;
}
.landing-auth-btn--secondary {
    background: rgba(255,255,255,0.07) !important;
    border: 1px solid rgba(255,255,255,0.13) !important;
    color: rgba(255,255,255,0.82) !important;
}
.landing-auth-btn--secondary:hover {
    background: rgba(255,255,255,0.13) !important;
    color: #fff !important;
    text-decoration: none !important;
}
.landing-auth-btn .material-icons { font-size: 22px !important; flex-shrink: 0; }
.landing-auth-btn--primary .material-icons  { color: var(--ds-navy) !important; }
.landing-auth-btn--secondary .material-icons { color: rgba(255,255,255,0.65) !important; }
.landing-auth-btn strong {
    display: block;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: inherit !important;
    margin-bottom: 2px;
}
.landing-auth-btn span {
    font-size: 11px !important;
    color: rgba(255,255,255,0.50) !important;
    font-weight: 400 !important;
}
.landing-auth-btn--primary span { color: var(--ds-muted) !important; }
.landing-auth-divider {
    position: relative;
    text-align: center;
    margin: 10px 0;
}
.landing-auth-divider::before {
    content: '';
    position: absolute;
    top: 50%; left: 0; right: 0;
    height: 1px;
    background: rgba(255,255,255,0.09);
}
.landing-auth-divider span {
    position: relative;
    z-index: 1;
    font-size: 11px !important;
    color: rgba(255,255,255,0.38) !important;
    background: transparent;
    padding: 0 8px;
}

/* ── Content sections ────────────────────────────────────── */
.landing-section { padding: 60px 0; }
.landing-section--alt { background: var(--ds-surface2); }
.landing-section-header { margin-bottom: 36px; }
.landing-section-header h2 {
    color: var(--ds-text) !important;
    font-size: 24px !important;
    margin-bottom: 8px !important;
}
.landing-section-header p {
    color: var(--ds-muted) !important;
    font-size: 14px !important;
    margin: 0 !important;
}

/* ── Feature cards ───────────────────────────────────────── */
.landing-feature-card {
    background: var(--ds-surface);
    border: 1px solid var(--ds-border);
    border-radius: var(--r-lg);
    padding: 22px;
    margin-bottom: 22px;
    height: calc(100% - 22px);
    transition: box-shadow 200ms ease-out, transform 200ms ease-out;
}
.landing-feature-card:hover { box-shadow: var(--sh-md); transform: translateY(-2px); }
.landing-feature-icon {
    width: 46px; height: 46px;
    border-radius: var(--r-md);
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 14px;
}
.landing-feature-icon .material-icons { font-size: 23px !important; color: inherit !important; }
.landing-feature-card h4 {
    font-size: 14px !important; font-weight: 600 !important;
    margin-bottom: 6px !important; color: var(--ds-text) !important;
}
.landing-feature-card p {
    font-size: 13px !important; color: var(--ds-muted) !important;
    margin: 0 !important; line-height: 1.62 !important;
}

/* ── Topic list ──────────────────────────────────────────── */
.landing-topic-list { padding-right: 28px; }
.landing-topic-list h3 { font-size: 19px !important; margin-bottom: 20px !important; color: var(--ds-text) !important; }
.landing-topic-item {
    display: flex; align-items: flex-start; gap: 13px;
    padding: 13px 0;
    border-bottom: 1px solid var(--ds-border-lt);
}
.landing-topic-item:last-child { border-bottom: none; }
.landing-topic-item .material-icons { font-size: 21px !important; flex-shrink: 0; margin-top: 1px; color: inherit !important; }
.landing-topic-item strong { display: block; font-size: 13px !important; font-weight: 600 !important; color: var(--ds-text) !important; margin-bottom: 2px; }
.landing-topic-item span  { font-size: 12px !important; color: var(--ds-muted) !important; }

/* ── Earn card ───────────────────────────────────────────── */
.landing-earn-card {
    background: var(--ds-navy) !important;
    border: none !important; border-radius: var(--r-lg) !important;
    padding: 26px !important;
}
.landing-earn-header { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.landing-earn-header .material-icons { font-size: 26px !important; color: var(--ds-green-lt) !important; }
.landing-earn-header h3 { color: #fff !important; font-size: 18px !important; margin: 0 !important; }
.landing-earn-card > p { font-size: 13px !important; color: rgba(255,255,255,0.62) !important; margin-bottom: 18px !important; line-height: 1.65 !important; }
.landing-earn-points { display: flex; flex-direction: column; gap: 9px; }
.landing-earn-point { display: flex; align-items: center; gap: 9px; }
.landing-earn-point .material-icons { font-size: 17px !important; flex-shrink: 0; }
.landing-earn-point span { font-size: 13px !important; color: var(--ds-text) !important; }
.landing-earn-card .landing-earn-point .material-icons { color: var(--ds-green-lt) !important; }
.landing-earn-card .landing-earn-point span { color: rgba(255,255,255,0.78) !important; }

/* ── How it works steps ──────────────────────────────────── */
.landing-step { text-align: center; padding: 0 16px; }
.landing-step-num {
    width: 42px; height: 42px;
    background: var(--ds-navy); color: #fff;
    font-size: 17px; font-weight: 700;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 16px;
}
.landing-step h4 { font-size: 14px !important; font-weight: 600 !important; margin-bottom: 7px !important; color: var(--ds-text) !important; }
.landing-step p  { font-size: 13px !important; color: var(--ds-muted) !important; line-height: 1.6 !important; }

/* ── Footer CTA band ─────────────────────────────────────── */
.landing-cta-section { background: var(--ds-green-deep); padding: 56px 0; }
.landing-cta-section h2 { color: #fff !important; font-size: 22px !important; margin-bottom: 9px !important; }
.landing-cta-section p  { color: rgba(255,255,255,0.62) !important; font-size: 14px !important; margin-bottom: 26px !important; }

/* ── Offer items (about page) ────────────────────────────── */
.landing-offer-item { display: flex; align-items: flex-start; gap: 15px; padding: 16px 0; border-bottom: 1px solid var(--ds-border-lt); }
.landing-offer-item:last-child { border-bottom: none; }
.landing-offer-item .material-icons { font-size: 24px !important; flex-shrink: 0; margin-top: 2px; color: inherit !important; }
.landing-offer-item h4 { font-size: 14px !important; font-weight: 600 !important; margin-bottom: 3px !important; color: var(--ds-text) !important; }
.landing-offer-item p  { font-size: 13px !important; color: var(--ds-muted) !important; margin: 0 !important; line-height: 1.6 !important; }

/* ── Mobile ──────────────────────────────────────────────── */
@media (max-width: 767px) {
    .landing-hero { padding: 56px 0 36px; }
    .landing-headline { font-size: 24px !important; }
    .landing-sub { font-size: 14px !important; }
    .landing-stats { gap: 18px; }
    .landing-stat strong { font-size: 18px !important; }
    .landing-hero-right { margin-top: 28px; }
    .landing-cta-group { flex-direction: column; }
    .landing-btn-primary,
    .landing-btn-outline { width: 100% !important; justify-content: center !important; }
    .landing-section { padding: 36px 0; }
    .landing-topic-list { padding-right: 0; margin-bottom: 28px; }
    .landing-step { padding: 0 4px; margin-bottom: 28px; }
    .landing-cta-section { padding: 36px 0; }
    .landing-cta-section h2 { font-size: 19px !important; }
    .landing-feature-card { height: auto; }
}

/* ═══════════════════════════════════════════════════════════
   MARKETPLACE LANDING — extended component set
   ═══════════════════════════════════════════════════════════ */

/* ── Marketplace product grid (5 items) ──────────────────── */
.landing-marketplace-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 14px;
}
.landing-marketplace-item {
    background: var(--ds-surface);
    border: 1px solid var(--ds-border);
    border-radius: var(--r-lg);
    padding: 20px 14px;
    text-align: center;
    transition: box-shadow 200ms ease-out, transform 200ms ease-out;
}
.landing-marketplace-item:hover { box-shadow: var(--sh-md); transform: translateY(-2px); }
.landing-marketplace-item-icon {
    width: 44px; height: 44px;
    border-radius: var(--r-md);
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 10px;
}
.landing-marketplace-item-icon .material-icons { font-size: 22px !important; color: inherit !important; }
.landing-marketplace-item .creator-tag {
    display: inline-block;
    font-size: 10px !important;
    font-weight: 600 !important;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    padding: 2px 8px;
    border-radius: 10px;
    margin-bottom: 8px;
}
.landing-marketplace-item h4 {
    font-size: 13px !important; font-weight: 600 !important;
    margin-bottom: 6px !important; color: var(--ds-text) !important;
}
.landing-marketplace-item p {
    font-size: 11.5px !important; color: var(--ds-muted) !important;
    margin: 0 !important; line-height: 1.55 !important;
}

/* ── Creator panel (dark navy full-width band) ───────────── */
.landing-creator-panel { background: var(--ds-navy); padding: 60px 0; }
.landing-creator-panel .landing-section-header h2 { color: #fff !important; }
.landing-creator-panel .landing-section-header p   { color: rgba(255,255,255,0.58) !important; }

.landing-creator-steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 28px;
}
/* Base creator-step = LIGHT section (e.g. the NISM ladder).
   The dark-panel variant is scoped under .landing-creator-panel below. */
.landing-creator-step {
    background: var(--ds-surface);
    border: 1px solid var(--ds-border);
    border-radius: var(--r-lg);
    padding: 20px 16px;
    text-align: center;
}
.landing-creator-step-icon {
    width: 40px; height: 40px;
    border-radius: 50%;
    background: var(--primary-tint);
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 12px;
}
.landing-creator-step-icon .material-icons { font-size: 20px !important; color: var(--ds-navy) !important; }
.landing-creator-step h4 { color: var(--ds-text) !important; font-size: 13px !important; font-weight: 600 !important; margin-bottom: 5px !important; }
.landing-creator-step p  { color: var(--ds-muted) !important; font-size: 12px !important; line-height: 1.55 !important; margin: 0 !important; }

/* Dark navy creator panel — white text on translucent fills */
.landing-creator-panel .landing-creator-step {
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.10);
}
.landing-creator-panel .landing-creator-step-icon { background: rgba(255,255,255,0.10); }
.landing-creator-panel .landing-creator-step-icon .material-icons { color: rgba(255,255,255,0.88) !important; }
.landing-creator-panel .landing-creator-step h4 { color: #fff !important; }
.landing-creator-panel .landing-creator-step p  { color: rgba(255,255,255,0.55) !important; }

.landing-creator-trust {
    display: flex; gap: 18px; flex-wrap: wrap;
    justify-content: center; margin-bottom: 28px;
}
.landing-creator-trust-item {
    display: flex; align-items: center; gap: 7px;
    font-size: 13px !important; color: rgba(255,255,255,0.78) !important;
}
.landing-creator-trust-item .material-icons { font-size: 16px !important; color: var(--ds-green-lt) !important; }

/* ── Topic pills strip ───────────────────────────────────── */
.landing-topics-strip { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.landing-topic-pill {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 7px 13px;
    background: var(--ds-surface);
    border: 1px solid var(--ds-border);
    border-radius: 20px;
    font-size: 12px !important; font-weight: 500 !important;
    color: var(--ds-text) !important;
    transition: all 150ms ease-out;
    text-decoration: none !important;
}
.landing-topic-pill:hover { border-color: var(--ds-green); color: var(--ds-green-dk) !important; text-decoration: none !important; }
.landing-topic-pill .material-icons { font-size: 14px !important; color: inherit !important; }

/* ── Community grid (3 cols) ─────────────────────────────── */
.landing-community-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.landing-community-item {
    background: var(--ds-surface);
    border: 1px solid var(--ds-border);
    border-radius: var(--r-lg);
    padding: 22px;
}
.landing-community-item > .material-icons { font-size: 26px !important; margin-bottom: 10px !important; display: block; }
.landing-community-item h4 { font-size: 14px !important; font-weight: 600 !important; margin-bottom: 6px !important; color: var(--ds-text) !important; }
.landing-community-item p  { font-size: 12.5px !important; color: var(--ds-muted) !important; margin: 0 !important; line-height: 1.6 !important; }

/* ── Two-track how-it-works ──────────────────────────────── */
.landing-two-track { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.landing-track { border: 1px solid var(--ds-border); border-radius: var(--r-lg); overflow: hidden; }
.landing-track-header { padding: 16px 20px; display: flex; align-items: center; gap: 10px; }
.landing-track-header--creator { background: var(--ds-navy); }
.landing-track-header--learner { background: var(--ds-green); }
.landing-track-header .material-icons { font-size: 20px !important; color: #fff !important; }
.landing-track-header h3 { color: #fff !important; font-size: 15px !important; margin: 0 !important; }
.landing-track-body { padding: 14px 20px; background: var(--ds-surface); }
.landing-track-step {
    display: flex; align-items: flex-start; gap: 12px;
    padding: 11px 0;
    border-bottom: 1px solid var(--ds-border-lt);
}
.landing-track-step:last-child { border-bottom: none; padding-bottom: 4px; }
.landing-track-step-num {
    width: 22px; height: 22px; border-radius: 50%;
    font-size: 11px; font-weight: 700;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0; color: #fff; margin-top: 1px;
}
.landing-track-step-num--creator { background: var(--ds-navy); }
.landing-track-step-num--learner { background: var(--ds-green); }
.landing-track-step strong { display: block; font-size: 13px !important; font-weight: 600 !important; color: var(--ds-text) !important; margin-bottom: 2px; }
.landing-track-step span   { font-size: 12px !important; color: var(--ds-muted) !important; line-height: 1.5; }

/* ── Problem section (about page — 2 col contrast panels) ── */
.landing-problem-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.landing-problem-side { border-radius: var(--r-lg); padding: 28px; }
.landing-problem-side--creator { background: var(--ds-navy); }
.landing-problem-side--learner { background: #F0FDF4; border: 1px solid #BBF7D0; }
.landing-problem-side h3 { font-size: 16px !important; margin-bottom: 10px !important; }
.landing-problem-side--creator h3 { color: #fff !important; }
.landing-problem-side--learner h3 { color: var(--ds-text) !important; }
.landing-problem-side p { font-size: 13px !important; line-height: 1.65 !important; margin: 0 !important; }
.landing-problem-side--creator p { color: rgba(255,255,255,0.65) !important; }
.landing-problem-side--learner p { color: #3A6B27 !important; }
.landing-problem-side > .material-icons { font-size: 28px !important; margin-bottom: 12px !important; display: block; }
.landing-problem-side--creator > .material-icons { color: var(--ds-green-lt) !important; }
.landing-problem-side--learner > .material-icons { color: var(--ds-green) !important; }

/* ── Responsive: marketplace additions ───────────────────── */
@media (max-width: 767px) {
    .landing-marketplace-grid { grid-template-columns: repeat(2, 1fr); }
    .landing-marketplace-item:nth-child(5) { grid-column: 1 / -1; }
    .landing-creator-steps  { grid-template-columns: repeat(2, 1fr); }
    .landing-creator-panel  { padding: 40px 0; }
    .landing-community-grid { grid-template-columns: 1fr; }
    .landing-two-track      { grid-template-columns: 1fr; }
    .landing-problem-grid   { grid-template-columns: 1fr; }
    .landing-topic-pill     { font-size: 11px !important; padding: 5px 10px; }
}
@media (min-width: 768px) and (max-width: 1024px) {
    .landing-marketplace-grid { grid-template-columns: repeat(3, 1fr); }
    .landing-creator-steps    { grid-template-columns: repeat(2, 1fr); }
}

/* ═══════════════════════════════════════════════════════════
   LIVE TEST INTERFACE — brand chrome
   online_test_base(.v2) now loads this file, so the test-taking
   screen inherits the theme. The numbered question-palette
   buttons are a sprite PNG (exam_button_sprite.png) and keep
   their own colors; everything else around them is rebranded.
   ═══════════════════════════════════════════════════════════ */

/* Timer — navy, not slate-gray */
.countdown_timer,
.test_timer_box {
    background: var(--ds-navy) !important;
    color: #fff !important;
    border-radius: var(--r-sm) !important;
}
.test_timer_box .countdown,
.test_timer_box .countdown li p,
.countdown_timer .countdown li p { color: rgba(255,255,255,0.85) !important; }

/* Right column (question palette panel) — warm surface */
.test_right_col { background: var(--ds-surface2) !important; }

/* Bottom action strip — surface with hairline, not flat gray */
.online_test_bottom_strip {
    background: var(--ds-surface) !important;
    border-top: 1px solid var(--ds-border) !important;
}

/* Option rows — brand hover + selected state */
.online_test .question_option:hover { background: var(--ds-surface2) !important; }
.online_test .question_option.selected,
.online_test .question_option.checked {
    background: var(--primary-tint) !important;
    border-color: var(--ds-navy) !important;
}

/* Section fieldset legend on the test page */
.online_test_section_fieldset legend {
    color: var(--ds-heading) !important;
    font-weight: 600 !important;
}

/* Palette legend swatches — keep semantic colors aligned to brand tokens */
.pie_chart_legend span.color_box { border-radius: 3px !important; }

/* Test-taking submit / nav buttons inherit .live_test_dark_btn /
   .live_test_light_btn rules defined above. */

/* ═══════════════════════════════════════════════════════════
   CONTRAST SAFETY NET
   Bug: dark brand surfaces (navy #1E3A8A / legacy teal #022d33)
   were showing BLACK text. Root cause: broad rules such as
   `.articles-list-box p/span/li { color: var(--ds-text) }` and
   legacy style.css text colors force dark text onto any element
   inside them — including dark-coloured sub-sections — so text
   on a blue background became invisible.
   This block re-asserts light text on every known dark surface
   and its text descendants. It is the LAST rule in the file, so
   at equal specificity it wins the cascade. Buttons, labels,
   badges and pills keep their own colours (excluded below).
   ═══════════════════════════════════════════════════════════ */

/* The dark surfaces themselves */
.header-primary,
.form-header,
.form-header-modal,
.profile-content,
.theme_background_color,
.theme-background-image,
.wrapper .top-navbar-height,
.countdown_timer,
.test_timer_box,
.theme-text-color {
    color: #ffffff !important;
}

/* Text descendants of dark surfaces → light.
   Specificity (0,0,1,1) matches `.articles-list-box span`; placed
   later in the file, so it wins. Excludes interactive chrome that
   carries its own colour. */
.header-primary       :is(p, span, li, small, strong, b, label, h1, h2, h3, h4, h5, h6),
.form-header          :is(p, span, li, small, strong, b, label, h1, h2, h3, h4, h5, h6),
.form-header-modal    :is(p, span, li, small, strong, b, label, h1, h2, h3, h4, h5, h6),
.profile-content      :is(p, span, li, small, strong, b, label, h1, h2, h3, h4, h5, h6),
.theme_background_color    :is(p, span, li, small, strong, b, label, h1, h2, h3, h4, h5, h6),
.theme-background-image    :is(p, span, li, small, strong, b, label, h1, h2, h3, h4, h5, h6) {
    color: #ffffff !important;
}
/* Plain links on dark surfaces (not buttons / pills / CTAs) → light */
.header-primary       a:not(.btn):not(.label):not([class*="-cta"]):not([class*="-pill"]),
.profile-content      a:not(.btn):not(.label):not([class*="-cta"]):not([class*="-pill"]),
.theme_background_color    a:not(.btn):not(.label):not([class*="-cta"]):not([class*="-pill"]),
.theme-background-image    a:not(.btn):not(.label):not([class*="-cta"]):not([class*="-pill"]) {
    color: rgba(255,255,255,0.88) !important;
}

/* Inverse guard: `.theme-background-color` is whitesmoke (LIGHT),
   not blue — keep its text dark so it never inherits white. */
.theme-background-color,
.theme-background-color :is(p, span, li, small, strong, b, label) {
    color: var(--ds-text) !important;
}

/* ── Interaction states that flip to a navy fill → white text ──
   Bootstrap/Material legacy `.open`, `.active`, `:focus` states on
   nav items and buttons could paint a blue background while the
   text stayed dark. Force the foreground to follow the fill. */
.navbar .nav .open > a,
.navbar .nav .open > a:hover,
.navbar .nav .open > a:focus,
.nav .open > a.dropdown-toggle {
    background: transparent !important;
    color: var(--ds-navy) !important;
}
.btn-group .btn.active,
.btn-group .btn.active:focus,
.list-group-item.active,
.list-group-item.active:hover {
    background: var(--ds-navy) !important;
    border-color: var(--ds-navy) !important;
    color: #ffffff !important;
}
.list-group-item.active :is(p, span, small, h1, h2, h3, h4, h5, h6) {
    color: #ffffff !important;
}

/* ═══════════════════════════════════════════════════════════
   DROPDOWN ICON SIZING & SPACING
   Bug: Material Icons inherit the 24px base size, dwarfing the
   13px dropdown text and breaking vertical rhythm. Normalise
   every dropdown icon to a consistent box so menus read clean
   and on-brand. */
.dropdown-menu li > a > .material-icons,
.notifications-lists li > a > .material-icons {
    font-size: 18px !important;
    width: 20px !important;
    text-align: center !important;
    vertical-align: -4px !important;
    margin-right: 10px !important;
    line-height: 1 !important;
}
.dropdown-menu li > a > .fa,
.dropdown-menu li > a > .fas,
.dropdown-menu li > a > .far,
.dropdown-menu li > a > .fab,
.notifications-lists li > a > .fa,
.notifications-lists li > a > .fas {
    font-size: 14px !important;
    width: 20px !important;
    text-align: center !important;
    margin-right: 10px !important;
}
/* Settings toggle gear / person icon in the navbar — size to match */
.navbar .dropdown > .dropdown-toggle > .material-icons {
    font-size: 22px !important;
    vertical-align: middle !important;
}

/* ═══════════════════════════════════════════════════════════
   PROSPERITY REBRAND — platform-wide flip (2026)
   The landing hero already flipped navy → deep prosperity green
   with gold accents. This block carries that flip across the
   logged-in platform so the app no longer reads all-navy:
     • Big dark chrome (top navbar, card/form/modal headers,
       footer) → deep prosperity green  (--ds-green-deep)
     • Primary action surfaces (primary buttons, add buttons,
       active nav/list states, ribbons) → prosperity green
     • Money / score figures → wealth gold  (--ds-gold)
   Navy is kept for headings, body text and links as the quiet
   trust note. Placed LAST so at equal specificity it wins the
   cascade; selectors mirror the originals exactly. Tweak the two
   token values (--ds-green-deep / --ds-gold) to retune.
   ═══════════════════════════════════════════════════════════ */

/* Big dark chrome → deep prosperity green */
.theme-background-image { background-color: var(--ds-green-deep) !important; }
.theme_background_color { background-color: var(--ds-green-deep) !important; }
.wrapper .top-navbar-height { background-color: var(--ds-green-deep) !important; }
.theme-background-image,
.theme_background_color,
.card .header-primary,
.custom-card > .header-primary,
.header.header-primary.form-header,
.header.header-primary.form-header-modal,
.modal-header .header-primary,
.modal-header .form-header-modal,
.form-header-modal.header-primary,
footer.footer {
    background: var(--ds-green-deep) !important;
}

/* Primary action surfaces → prosperity green (growth = action) */
.btn.btn-primary, .btn-primary {
    background: var(--ds-green) !important;
    border-color: var(--ds-green) !important;
}
.add-student-btn,
.add-student-btn:hover,
.add-student-btn:active,
.add-student-btn:focus { background: var(--ds-green) !important; }
.add_btn { border-color: var(--ds-green) !important; color: var(--ds-green) !important; }
.add_btn:hover { background: var(--ds-green) !important; color: #fff !important; }
.sp_ribbon_class { background: var(--ds-green) !important; }

/* Active / selected states → prosperity green */
.nav-pills > li.active > a,
.nav-pills > li.active > a:hover { background: var(--ds-green) !important; }
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover {
    color: var(--ds-green-dk) !important;
    border-bottom: 2px solid var(--ds-green) !important;
}
.live_test_light_btn.active,
.add_test_section_tabs > li > a:hover {
    background: var(--ds-green) !important;
    border-color: var(--ds-green) !important;
}
.btn-group .btn.active,
.btn-group .btn.active:focus,
.list-group-item.active,
.list-group-item.active:hover {
    background: var(--ds-green) !important;
    border-color: var(--ds-green) !important;
}

/* Money / score figures → wealth gold */
.report_data { color: var(--ds-gold) !important; }

/* ── Completion sweep ──────────────────────────────────────────
   Every remaining navy SURFACE / BUTTON / BANNER / TILE-accent /
   SELECTED state flipped to prosperity green so nothing reads as
   old-brand blue. Navy is intentionally retained only on TEXT —
   headings, body links and in-text icons (the trust note). */

/* Primary / submit / test action buttons */
.btn.btn-submit, .form-btn .btn-submit,
.live_test_dark_btn {
    background: var(--ds-green) !important;
    border-color: var(--ds-green) !important;
}
.comment_reply_btn { border-color: var(--ds-green) !important; color: var(--ds-green-dk) !important; }
.comment_reply_btn:hover { background: var(--ds-green) !important; color: #fff !important; }

/* Dark banners with white text → deep prosperity green */
.article-user-info .profile-content,
.countdown_timer,
.test_timer_box { background: var(--ds-green-deep) !important; }

/* Chips / labels / badges */
.label-primary { background: var(--ds-green) !important; }
.badge { background: var(--ds-green) !important; }

/* Progress bars (growth) */
.progress-bar { background: var(--ds-green) !important; }

/* Tile / list accent stripes */
.feed-right-side-section .panel .panel-heading,
.institute_lists { border-left-color: var(--ds-green) !important; }

/* Tile hover borders */
.add_test_box:hover,
.live_test_light_btn:hover { border-color: var(--ds-green) !important; }

/* Selected form controls (checkbox / radio) → green */
.radio input[type=radio]:checked ~ .check { background-color: var(--ds-green) !important; }
.radio input[type=radio]:checked ~ .circle { border-color: var(--ds-green) !important; }
.checkbox input[type=checkbox]:checked + .checkbox-material .check { background: var(--ds-green) !important; }

/* Selected test option → green tint + green border */
.online_test .question_option.selected,
.online_test .question_option.checked {
    background: rgba(78,138,53,0.08) !important;
    border-color: var(--ds-green) !important;
}

/* Focus affordance → green ring across all inputs */
.input-group .form-control:focus,
.form-control:focus,
.input-lg.text-center:focus,
.select2-container--default.select2-container--focus .select2-selection--multiple,
.comment_text_area:focus,
.reply_text_area:focus {
    border-color: var(--ds-green) !important;
    box-shadow: 0 0 0 3px rgba(78,138,53,0.12) !important;
}
.form-group.is-focused .form-control {
    background-image: linear-gradient(var(--ds-green), var(--ds-green)),
                      linear-gradient(var(--ds-border), var(--ds-border)) !important;
}

/* ════════════════════════════════════════════════════════════
   FEED SIDEBARS — brand growth modules (NISM ladder, outcomes,
   explore nav). Reinforces the project spine: the legible path
   from beginner to a SEBI-regulated job.
   ════════════════════════════════════════════════════════════ */

/* Shared small note text in side panels */
.ds-side-note { font-size: 12px; color: var(--ds-muted); line-height: 1.5; margin: 0 0 12px; }

/* ── NISM ladder card ─────────────────────────────────────── */
.ds-ladder { list-style: none; margin: 0 0 14px; padding: 0; }
.ds-ladder > li {
    display: flex; align-items: center; gap: 10px;
    padding: 7px 0; font-size: 12.5px; color: var(--ds-text);
}
.ds-ladder > li + li { border-top: 1px dashed var(--ds-border); }
.ds-rung {
    flex-shrink: 0; min-width: 44px; height: 26px; padding: 0 6px; border-radius: 6px;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--primary-tint); color: var(--ds-navy);
    font-weight: 700; font-size: 11px; letter-spacing: 0.2px;
}
.ds-ladder > li:first-child .ds-rung { background: var(--ds-green); color: #fff; }
.ds-rung-text { line-height: 1.35; }
.ds-rung-tag {
    display: inline-block; margin-left: 4px; font-style: normal; font-weight: 600;
    font-size: 10px; color: var(--ds-green-dk); background: #E8F2DF;
    padding: 1px 6px; border-radius: 10px; vertical-align: 1px;
}
.ds-ladder-cta { margin-top: 2px !important; font-weight: 600 !important; }
/* Accent the ladder card so the growth module reads as the hero of the rail */
.ds-ladder-panel .panel-heading { border-left-color: var(--ds-green) !important; }

/* ── Outcomes card ────────────────────────────────────────── */
.ds-outcomes { font-size: 12.5px; }
.ds-outcome {
    display: flex; align-items: baseline; justify-content: space-between;
    gap: 8px; padding: 6px 0;
}
.ds-outcome + .ds-outcome { border-top: 1px solid var(--ds-border-lt); }
.ds-outcome-role { color: var(--ds-text); font-weight: 600; }
.ds-outcome-pay { color: var(--ds-gold); font-weight: 700; font-size: 11.5px; white-space: nowrap; }
.ds-side-link {
    display: inline-flex; align-items: center; gap: 5px;
    margin-top: 10px; font-size: 12px; font-weight: 600; color: var(--ds-navy);
}
.ds-side-link:hover { color: var(--ds-navy-lt); text-decoration: underline; }

/* ── Announcements ────────────────────────────────────────── */
.ds-announcement { display: flex; gap: 8px; align-items: flex-start; padding: 7px 0; color: var(--ds-text); }
.ds-announcement .fa-bullhorn { color: var(--ds-gold) !important; margin-top: 2px; font-size: 12px; }
.ds-announcement small { font-size: 12px; line-height: 1.5; color: var(--ds-text); }
.ds-announcement:hover { text-decoration: none; }
.ds-announcement:hover small { color: var(--ds-navy); }
.ds-empty-note { font-size: 12px; color: var(--ds-muted); line-height: 1.5; margin: 0; }
.ds-panel-add, .ds-panel-add .fa-plus { color: var(--ds-green) !important; }

/* ── Left "Explore" learning nav ──────────────────────────── */
.ds-explore { padding: 4px 0 6px; }
.ds-explore-title {
    display: block; font-size: 11px; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.8px; color: var(--ds-muted); padding: 4px 14px 8px;
}
.ds-explore-link {
    display: flex !important; align-items: center; gap: 12px;
    padding: 9px 14px; color: var(--ds-text) !important; font-weight: 500; font-size: 13.5px;
    border-left: 3px solid transparent;
    transition: background 150ms ease-out, border-color 150ms ease-out, color 150ms ease-out;
}
.ds-explore-link:hover {
    background: var(--ds-surface2); color: var(--ds-navy) !important;
    text-decoration: none; border-left-color: var(--ds-navy);
}
.ds-explore-ic { font-size: 20px !important; }
.ds-explore-ic.ic-study   { color: var(--ic-amber) !important; }
.ds-explore-ic.ic-course  { color: var(--ic-purple) !important; }
.ds-explore-ic.ic-test    { color: var(--ic-green) !important; }
.ds-explore-ic.ic-discuss { color: var(--ic-pink) !important; }

/* ── Feed empty state (mid column) ────────────────────────── */
.ds-feed-empty { text-align: center; padding: 40px 24px !important; }
.ds-feed-empty-ic { font-size: 44px !important; color: var(--ds-green) !important; }
.ds-feed-empty-title { margin: 12px 0 6px !important; color: var(--ds-text) !important; }
.ds-feed-empty-note { font-size: 13px; color: var(--ds-muted); max-width: 360px; margin: 0 auto 16px; line-height: 1.55; }
.ds-feed-empty-cta { font-weight: 600 !important; padding: 10px 22px !important; }

/* ════════════════════════════════════════════════════════════
   COMMENT / ANSWER / REPLY COMPOSER — keep avatar + input on one row.
   Each composer form carries an inline `width: calc(100% - Npx) !important`
   that a stylesheet cannot override. The avatar previously sat in inline
   flow, where collapsed whitespace between the <a> and the <form> pushed
   the row just past 100% and wrapped the input onto its own line — the
   "broken / multiline" composer. Floating the avatar and the form removes
   them from inline-whitespace math, so the input reliably sits beside the
   avatar. The form's existing margin-left supplies the gap; following
   content and each row clear the floats. Covers comments, answers and
   replies in user_management, videos and questionnaire (shared classes).
   ════════════════════════════════════════════════════════════ */
.comment_list_wrapper > a,
.reply_section > a {
    float: left !important;
    line-height: 0 !important;
    margin: 0 !important;
}
.comment_list_wrapper > form.article-comment-form,
.reply_section > form.article-comment-form {
    float: left !important;
}
.comment_list_wrapper > .alert,
.comment_list_wrapper > .comment_list,
.comment_list_wrapper > .loader_comment {
    clear: both !important;
}
/* Clearfix (not overflow:hidden — that would clip the comment action
   dropdowns) so each composer row has proper height even with no comments. */
.comment_list_wrapper::after,
.reply_section::after {
    content: "";
    display: block;
    clear: both;
}

/* ════════════════════════════════════════════════════════════
   TEST SERIES & TEST CARDS (.info-box) — mid-section grids on
   profile / test-list / subject / topic pages. The legacy card
   was a flat white box with a 50px electric-blue icon, an
   uppercase gray title, and — worst of all — the status badge
   ".ribbon" had NO matching rule, so it fell back to style.css's
   brown full-width banner that sat across the top of every card.
   Restyle to the design-system card language (no template change).
   ════════════════════════════════════════════════════════════ */
.info-box {
    background: var(--ds-surface) !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-md) !important;
    box-shadow: var(--sh-sm) !important;
    padding: 20px 16px 16px !important;
    min-height: 200px !important;
    overflow: hidden;
    transition: box-shadow 150ms ease-out, transform 150ms ease-out !important;
}
a > .info-box:hover,
.info-box:hover {
    box-shadow: var(--sh-md) !important;
    transform: translateY(-3px) !important;
    border-color: var(--ds-navy) !important;
}

/* Icon — small tinted circle instead of a bare 50px blue glyph */
.info-box .img {
    width: 50px !important;
    height: 50px !important;
    line-height: 50px !important;
    margin: 4px auto 12px !important;
    border-radius: 50% !important;
    background: var(--primary-tint) !important;
    color: var(--ds-navy) !important;
    font-size: 24px !important;
}
.info-box .img i { color: var(--ds-navy) !important; line-height: 50px !important; }

/* Title — readable navy heading, sentence case, clamped to 2 lines */
.info-box .hd {
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    text-transform: none !important;
    color: var(--ds-heading) !important;
    min-height: 0 !important;
    margin: 0 0 8px !important;
    padding-top: 0 !important;
}

/* Metadata lines — quiet, left-aligned for scannability */
.info-box .info_detail { text-align: left !important; }
.info-box .info_detail > .hd { text-align: center !important; }
.info-box .info_detail p {
    font-size: 12.5px !important;
    color: var(--ds-muted) !important;
    margin-bottom: 5px !important;
    line-height: 1.5 !important;
}
.info-box .info_detail > p:first-of-type { text-align: center !important; }
.info-box .test-bold-600 { color: var(--ds-text) !important; font-weight: 600 !important; }

/* Action button — clear navy-outline CTA, fills on hover */
.info-box .info_btn,
.info-box a.info_btn.btn {
    border-radius: var(--r-sm) !important;
    border: 1px solid var(--ds-navy) !important;
    background: transparent !important;
    color: var(--ds-navy) !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    margin-top: 12px !important;
    padding: 8px 12px !important;
    transition: background 150ms ease-out, color 150ms ease-out !important;
}
.info-box .info_btn:hover,
.info-box a.info_btn.btn:hover { background: var(--ds-navy) !important; color: #fff !important; }
/* Disabled "Not Open Yet" / "Expired" pseudo-buttons stay quiet, not red blocks */
.info-box .btn.btn-danger.disabled {
    background: var(--ds-surface2) !important;
    border: 1px solid var(--ds-border) !important;
    color: var(--ds-muted) !important;
    border-radius: var(--r-sm) !important;
    margin-top: 12px !important;
    opacity: 1 !important;
}

/* Settings chevron (edit / delete dropdown) */
.info-box .top_right_btn .dropdown-toggle { color: var(--ds-subtle) !important; }
.info-box .top_right_btn .dropdown-toggle:hover { color: var(--ds-navy) !important; }

/* Status ribbon — clean corner pill with soft background and border */
.info-box .ribbon,
.feed_test_item_box .ribbon {
    position: absolute !important;
    top: 12px !important;
    left: 12px !important;
    width: auto !important;
    background: rgba(30, 58, 138, 0.08) !important;
    color: var(--ds-navy) !important;
    border-radius: var(--r-sm) !important;
    padding: 4px 8px !important;
    margin: 0 !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: 0.2px !important;
    line-height: 1 !important;
    z-index: 2 !important;
    border: 1px solid rgba(30, 58, 138, 0.15) !important;
}
.info-box .ribbon span,
.feed_test_item_box .ribbon span { font-size: 11px !important; color: inherit !important; }
.info-box .ribbon:before,
.info-box .ribbon:after,
.info-box .ribbon .ribbon-content:before,
.info-box .ribbon .ribbon-content:after,
.feed_test_item_box .ribbon:before,
.feed_test_item_box .ribbon:after,
.feed_test_item_box .ribbon .ribbon-content:before,
.feed_test_item_box .ribbon .ribbon-content:after { display: none !important; }
.info-box .ribbon.yellow, .feed_test_item_box .ribbon.yellow { background: #FEF3C7 !important; color: var(--ds-amber) !important; border-color: #FDE68A !important; }
.info-box .ribbon.green,  .feed_test_item_box .ribbon.green  { background: #D1FAE5 !important; color: var(--ds-green) !important; border-color: #A7F3D0 !important; }
.info-box .ribbon.red,    .feed_test_item_box .ribbon.red    { background: #FEE2E2 !important; color: var(--ds-red) !important; border-color: #FCA5A5 !important; }
/* When a status ribbon is present, nudge the icon down so they don't collide */
.info-box.ribbon_box .info > .img { margin-top: 14px !important; }

/* Pricing / free labels inside cards */
.label-warning { background: #FBEFD6 !important; color: var(--ds-amber) !important; }

/* "Create new" empty tile — match the design-system dashed add-box */
.info-box.empty {
    min-height: 200px !important;
    line-height: 200px !important;
    font-size: 64px !important;
    font-weight: 300 !important;
    color: var(--ds-subtle) !important;
    border: 1.5px dashed var(--ds-border) !important;
    background: var(--ds-bg) !important;
    box-shadow: none !important;
    border-radius: var(--r-lg) !important;
    transition: border-color 150ms ease-out, color 150ms ease-out, background 150ms ease-out !important;
}
.info-box.empty:hover {
    border-color: var(--ds-navy) !important;
    color: var(--ds-navy) !important;
    background: var(--ds-surface) !important;
    transform: none !important;
}

/* Section headings above the grids ("Test Series", "Individual Tests") */
.test_page_title, .test_page_subtitle { color: var(--ds-heading) !important; }

/* ════════════════════════════════════════════════════════════
   TEST-SERIES DETAIL CARDS (test_series_detail.html) — a second,
   older card built from stacked Bootstrap columns rather than
   .info-box. Legacy look: a huge gray-gradient ".ribbon_class_full"
   status banner (20px, drop-shadow, triangle tails), a bluish-gray
   ".light_back_color" body, and a gray-gradient ".view_details_btn"
   "Start Test" footer. Reframe the stack as one clean card.
   ════════════════════════════════════════════════════════════ */
/* Make the stacked header/body/footer read as a single framed card */
.col_spaceing > .col-sm-12 {
    padding: 0 !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-lg) !important;
    overflow: hidden !important;
    box-shadow: var(--sh-sm) !important;
    background: var(--ds-surface) !important;
    transition: box-shadow 200ms ease-out, transform 200ms ease-out !important;
}
.col_spaceing > .col-sm-12:hover { box-shadow: var(--sh-md) !important; transform: translateY(-2px) !important; }
.col_spaceing > .col-sm-12 > .row { margin: 0 !important; }
/* Kill the internal stacked shadows so the card looks flat inside */
.col_spaceing .box_shadow_normal { box-shadow: none !important; }
/* Body panel — warm white, not bluish-gray; comfortable padding */
.col_spaceing .light_back_color {
    background-color: var(--ds-surface) !important;
    padding: 12px 14px !important;
}
.col_spaceing .light_back_color .article-profile-icon { font-size: 12.5px !important; }

/* Status bar: strip the gray gradient banner down to a flat tinted strip */
h1.ribbon_class, .ribbon_class {
    background: var(--ds-surface2) !important;
    background-image: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    color: var(--ds-text) !important;
    border-radius: var(--r-sm) !important;
    margin: 0 0 10px !important;
    padding: 6px 10px !important;
    width: auto !important;
    font-size: 13px !important;
    font-weight: 600 !important;
}
.ribbon_class.ribbon_class_full { width: 100% !important; font-size: 12px !important; }
.ribbon_class b { font-weight: 600 !important; }
/* Hide the decorative gray triangle tails under the old banner */
.ribbon_class > .arrow, .ribbon_class > .arrow_right { display: none !important; }

/* "Start Test" footer — clear navy-outline CTA that fills on hover */
.view_details_btn,
a.btn.view_details_btn {
    background: var(--ds-surface) !important;
    background-image: none !important;
    color: var(--ds-navy) !important;
    text-shadow: none !important;
    border: none !important;
    border-top: 1px solid var(--ds-border) !important;
    box-shadow: none !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    padding: 10px 12px !important;
    transition: background 150ms ease-out, color 150ms ease-out !important;
}
.view_details_btn:hover,
.view_details_btn.btn_hover:hover,
a.btn.view_details_btn:hover {
    background: var(--ds-navy) !important;
    color: #fff !important;
    border-color: var(--ds-navy) !important;
}
.view_details_btn .material-icons { color: inherit !important; vertical-align: middle; }

/* ════════════════════════════════════════════════════════════
   FEED MID-BLOCK TEST-SERIES CARDS (walls/feed.html) — a third
   card variant shown inline in the main feed. Legacy look: a
   bluish-gray "#e3ecec" inner panel + ".light_back_color" footer,
   an uppercase electric-blue title, a navy "sp_ribbon_class"
   status pill with unreadable dark-green inline text, and a
   "cadetblue" ".reverse_theme_btn" CTA. Bring to brand.
   ════════════════════════════════════════════════════════════ */
/* Warm-white helper background everywhere it's used (footers, panels) */
.light_back_color { background-color: var(--ds-surface) !important; }
/* Neutralise the inline bluish-gray panel behind feed test cards */
.articles-list-box [style*="e3ecec"],
.articles-list-box [style*="E3ECEC"] { background-color: var(--ds-surface) !important; }

/* Feed test-card body */
.feed_test_item_box {
    background: var(--ds-surface) !important;
    box-shadow: var(--sh-sm) !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-md) !important;
    text-align: left !important;
    color: var(--ds-text) !important;
    transition: box-shadow 150ms ease-out, transform 150ms ease-out !important;
}
.feed_test_item_box:hover {
    box-shadow: var(--sh-md) !important;
    transform: translateY(-3px) !important;
    border-color: var(--ds-navy) !important;
}
.feed_test_item_box .test_title { color: var(--ds-heading) !important; text-transform: none !important; }
.feed_test_item_box .img,
.feed_test_item_box .img .ion { color: var(--ds-navy) !important; }

/* Feed status banner (.ribbon_class.sp_ribbon_class) — flat light strip
   so the per-status inline colour text stays readable (handled by the
   .ribbon_class override above; just tidy the dots + width here) */
.sp_ribbon_class .dot { color: var(--ds-subtle) !important; }
.ribbon_class.sp_ribbon_class { width: auto !important; box-shadow: none !important; border: none !important; }

/* "See All Tests" / feed CTA — navy fill instead of cadetblue */
.reverse_theme_btn {
    background-color: var(--ds-navy) !important;
    color: #fff !important;
    border: 1px solid var(--ds-navy) !important;
    border-radius: var(--r-sm) !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    padding: 9px 14px !important;
    transition: opacity 150ms ease-out !important;
}
.reverse_theme_btn:hover { opacity: 0.9; color: #fff !important; background-color: var(--ds-navy) !important; }

/* Remaining Bootstrap button variants used on test pages (Resume/Buy/Cart)
   so none fall back to Bootstrap's stock cyan/orange/green. */
.btn.btn-info, .btn-info {
    background: var(--ds-navy) !important; background-image: none !important;
    border-color: var(--ds-navy) !important; color: #fff !important;
    border-radius: var(--r-sm) !important; box-shadow: none !important; font-weight: 600 !important;
    transition: opacity 150ms ease-out !important;
}
.btn-info:hover { opacity: 0.9; color: #fff !important; }
.btn.btn-success, .btn-success {
    background: var(--ds-green) !important; background-image: none !important;
    border-color: var(--ds-green) !important; color: #fff !important;
    border-radius: var(--r-sm) !important; box-shadow: none !important; font-weight: 600 !important;
    transition: opacity 150ms ease-out !important;
}
.btn-success:hover { opacity: 0.9; color: #fff !important; }
.btn.btn-warning, .btn-warning {
    background: var(--ds-gold) !important; background-image: none !important;
    border-color: var(--ds-gold) !important; color: #fff !important;
    border-radius: var(--r-sm) !important; box-shadow: none !important; font-weight: 600 !important;
    transition: opacity 150ms ease-out !important;
}
.btn-warning:hover { opacity: 0.9; color: #fff !important; }

/* ════════════════════════════════════════════════════════════
   REPROOFING SWEEP — close the remaining off-brand vocabulary so
   no class/literal can render the old look, then make motion the
   core of the feel. Covers the full student flow + institute/admin
   posting surfaces (they reuse these shared classes).
   ════════════════════════════════════════════════════════════ */

/* ── Follow CTA (student → institute, a core flow action) ──────
   Was electric-blue (#329bff/#2b6dad) with a silver hover. */
.profile_follow_btn, .profile_list_follow_btn {
    border: 1px solid var(--ds-navy) !important;
    color: var(--ds-navy) !important;
    background: transparent !important;
    border-radius: var(--r-sm) !important;
    font-weight: 600 !important;
}
.profile_follow_btn:hover, .profile_list_follow_btn:hover,
.profile_follow_btn:focus, .profile_list_follow_btn:focus {
    background: var(--ds-navy) !important;
    color: #fff !important;
}
.profile_follow_color { color: var(--ds-navy) !important; }
/* Followed/active state reads as green (success), not blue */
.profile_follow_btn.followed, .profile_list_follow_btn.followed,
.profile_follow_btn.following, .profile_list_follow_btn.following {
    border-color: var(--ds-green) !important; color: var(--ds-green-dk) !important; background: transparent !important;
}

/* ── Status labels carrying inline legacy backgrounds → brand ──
   e.g. <span class="label off_price" style="background-color:darkgreen"> */
.label[style*="darkgreen"], .label[style*="darkGreen"], .off_price[style*="darkgreen"] {
    background-color: var(--ds-green) !important; color: #fff !important;
}
.label[style*="darkred"], .label[style*="darkRed"], .off_price[style*="darkred"] {
    background-color: var(--ds-red) !important; color: #fff !important;
}

/* ════════════════════════════════════════════════════════════
   MOTION — slick by default. One easing language, gentle press &
   hover feedback, animated menu entrances, smooth scroll. Honors
   the OS "reduce motion" setting.
   ════════════════════════════════════════════════════════════ */
:root {
    --ds-ease:     cubic-bezier(0.4, 0, 0.2, 1);
    --ds-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
}
html { scroll-behavior: smooth; }

/* Tactile press feedback on every action surface */
.btn:active, .add_btn:active, .add-student-btn:active,
.reverse_theme_btn:active, .view_details_btn:active,
.info_btn:active, .profile_follow_btn:active, .live_test_dark_btn:active {
    transform: translateY(1px) !important;
}

/* Labels / badges ease their colour like everything else */
.label, .badge { transition: background-color 150ms var(--ds-ease), color 150ms var(--ds-ease) !important; }

/* Avatars lift subtly with a brand ring on hover */
.profile-img { transition: transform 150ms var(--ds-ease), box-shadow 150ms var(--ds-ease) !important; }
.profile-div > a:first-child:hover .profile-img,
.team-player a:hover .profile-img {
    transform: scale(1.04);
    box-shadow: 0 0 0 3px var(--primary-tint) !important;
}

/* Dropdown / notification menus glide in instead of snapping */
.open > .dropdown-menu, .dropdown.open > .dropdown-menu {
    animation: ds-menu-in 160ms var(--ds-ease-out);
}
@keyframes ds-menu-in {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Feed / list rows ease their hover state */
.list-group-item, .institute_lists, .notification-item, .ds-explore-link {
    transition: background 150ms var(--ds-ease), color 150ms var(--ds-ease), border-color 150ms var(--ds-ease) !important;
}

/* Respect users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
        scroll-behavior: auto !important;
    }
    .articles-list-box:hover, .info-box:hover, .feed_test_item_box:hover,
    .col_spaceing > .col-sm-12:hover, .profile-img { transform: none !important; }
}

/* ════════════════════════════════════════════════════════════
   COMMENT THREAD — the rendered comment/reply list (distinct from
   the composer row handled above). Legacy look: every comment was
   a full ".articles-list-box" card (border + shadow + hover-lift)
   on a lavender background, and the name/timestamp lived in a
   position:absolute span that fought the design-system flex
   ".profile-div". Flatten the rows and re-flow the header.
   ════════════════════════════════════════════════════════════ */
/* Flatten nested comment rows so they read as a thread, not stacked cards */
.comment_list_item.articles-list-box,
.comment_reply_section.articles-list-box {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    padding: 12px 0 4px !important;
    margin-bottom: 0 !important;
}
.comment_list_item.articles-list-box:hover,
.comment_reply_section.articles-list-box:hover {
    transform: none !important;
    box-shadow: none !important;
}
.comment_back_color { background: transparent !important; }
/* Hairline separator between comments instead of the old top/bottom borders */
.comment_list .comment_list_item + .comment_list_item,
.comment_top_border { border-top: 1px solid var(--ds-border-lt) !important; }
.comment_bottom_border { border-bottom: none !important; }
.comment_hr { display: none !important; }

/* Comment header row: rebuild the absolutely-positioned name/date
   span into a normal flex column so it sits cleanly beside the avatar */
.comment_reply_text_section.profile-div { align-items: flex-start !important; }
.comment_reply_text_section > .position-absolute {
    position: static !important;
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    line-height: 1.25 !important;
}
.comment_reply_text_section > .position-absolute > .profile-user-name {
    position: static !important;
    flex: 0 0 auto !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--ds-text) !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}
.comment_reply_text_section > .position-absolute > .profile-date-inline {
    position: static !important;
    font-size: 11px !important;
    color: var(--ds-subtle) !important;
    margin-top: 1px !important;
}
/* Comment body text — readable, indented under the avatar */
.post_comment_details {
    color: var(--ds-text) !important;
    font-size: 13px !important;
    line-height: 1.55 !important;
}

/* ════════════════════════════════════════════════════════════
   MODERN FORMS & MODALS  (v13)
   The 2017 pattern was heavy: a decorative icon box welded to every
   field, a material underline that filled the focused input solid
   green, and full-bleed slab buttons. This block flattens all of it
   into clean, compact, low-chrome forms — applied once on the FE so
   every modal/form across the project inherits it.
   ════════════════════════════════════════════════════════════ */

/* 1 ─ Flat inputs. Kill the material underline gradient (the cause of
       the solid-green focused field) and rely on a real border + a
       subtle focus ring. No filled backgrounds, ever. */
.form-control,
.input-group .form-control,
textarea.form-control,
.form-group.is-empty .form-control,
.form-group.is-focused .form-control {
    background-image: none !important;
    background: var(--ds-surface) !important;
    box-shadow: none !important;
}
.form-control:focus,
.input-group .form-control:focus,
.form-group.is-focused .form-control:focus {
    background-image: none !important;
    border-color: var(--ds-green) !important;
    box-shadow: 0 0 0 3px rgba(78,138,53,0.12) !important;
}
/* The material animated-underline span is redundant with real borders */
.input-group .material-input,
.form-group > .material-input { display: none !important; }

/* 2 ─ Drop the gratuitous field-icon add-on boxes. The label/placeholder
       already says what the field is — the prepended "A"/icon box is pure
       2017 chrome. Hide it and let the input own the full, rounded width. */
.input-group > .input-group-addon {
    display: none !important;
}
.input-group > .input-group-addon + .form-control,
.input-group .form-control {
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-sm) !important;
}

/* 3 ─ Right-size form buttons. No more full-height slabs; proportionate,
       quiet, modern. */
.form-btn .btn-submit,
.form-btn .btn-cancle,
.btn.btn-submit,
.btn.btn-cancle {
    padding: 9px 20px !important;
    font-size: 13.5px !important;
    line-height: 1.4 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    min-height: 0 !important;
}

/* 4 ─ Lighter modals: tighter body, no double card chrome, calmer header. */
.modal-dialog .modal-body { padding: 20px 22px !important; }
.modal-body .card.custom-card {
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}
.modal-header .header-primary,
.modal-header .form-header-modal { padding: 14px 18px !important; }
.modal-header .header-primary h4,
.modal-header .form-header-modal h4 { font-size: 16px !important; letter-spacing: 0 !important; }

/* ════════════════════════════════════════════════════════════
   AGGRESSIVE MODAL/FORM COMPACTION  (v23)
   The earlier pass was too timid. The real space-wasters: modals
   are 600px wide for a one-line form, buttons are forced width:100%
   into 66%/33% columns (full-bleed slabs), and there's stacked
   padding everywhere. This sizes modals to their content.
   Large/medium/slide-out modals are explicitly exempted.
   ════════════════════════════════════════════════════════════ */

/* 1 ─ Size the modal to its content (skip rich/large modals). */
.modal-dialog:not(.modal-lg):not(.modal-md):not(.modal-sm):not(.navbar-modal) {
    max-width: 460px !important;
    margin: 56px auto 32px !important;
}
.modal-content { border-radius: 10px !important; overflow: hidden !important;
                 box-shadow: 0 18px 50px -12px rgba(11,37,69,0.32) !important; border: none !important; }

/* 2 ─ Compact header bar (no negative-margin hacks, no oversized text). */
.modal-header .header-primary,
.modal-header .form-header-modal {
    margin: 0 !important;
    padding: 11px 18px !important;
    min-height: 0 !important;
}
.modal-header .form-header-modal h4,
.modal-header .header-primary h4 { font-size: 15px !important; margin: 0 !important; }

/* 3 ─ Tight body, zero double-card chrome. */
.modal-content .modal-body,
.modal-dialog .modal-body { padding: 16px 20px !important; }
.modal-body > .card,
.modal-body .card.custom-card {
    padding: 0 !important; margin: 0 !important;
    box-shadow: none !important; background: transparent !important;
    display: block !important;
}

/* 4 ─ Compact fields. */
.modal-body .form-group,
.modal-body .input-group { margin-bottom: 12px !important; }
.modal-body .form-control { height: 40px !important; padding: 8px 12px !important; }
.modal-body textarea.form-control { height: auto !important; min-height: 60px !important; }
/* The divider rules between fields and buttons just adds dead air */
.modal-body .article-profile-hr.hr-border { margin: 6px 0 14px !important; border-top: 1px solid var(--ds-border) !important; opacity: 0.6; }

/* 5 ─ Buttons hug their content and sit on one tidy row — no slabs.
       This is the big one: the base forced .btn-submit to width:100%
       inside a col-xs-8, so it spanned two-thirds of the modal. */
/* Scope ONLY to the real button columns (col-xs-8 = submit, col-xs-4 =
   cancel). Keep the native Bootstrap grid so everything stays aligned —
   do NOT touch other .form-btn columns such as the toggle-switch rows
   (col-md-6) or single-column login buttons (col-sm-12). The two buttons
   simply meet near the centre as a tidy, aligned pair. */
.modal-body .row > .col-xs-8.form-btn { text-align: right !important; padding-right: 5px !important; }
.modal-body .row > .col-xs-4.form-btn { text-align: left !important; padding-left: 5px !important; }
.modal-body .form-btn .btn-submit,
.modal-body .form-btn .btn-cancle,
.modal-body .form-btn .btn {
    width: auto !important;
    min-width: 110px !important;
    display: inline-block !important;
    padding: 9px 22px !important;
    margin: 0 !important;
    font-size: 13.5px !important;
}
/* Lone full-width CTA inside a modal still spans the row */
.modal-body .col-xs-12.form-btn .btn, .modal-body .col-sm-12.form-btn .btn { width: 100% !important; }
/* Links under the button row (e.g. "Register here") shouldn't add a tall block */
.modal-body .form-btn a { display: inline-block !important; margin: 8px 0 0 !important; }

/* ════════════════════════════════════════════════════════════
   AUTH FORMS — login / register (2026 redesign)
   Reuses the green header + green submit from the rebrand block
   above. This only fixes the structure: vertical centring, one
   consistent field width (incl. select2), inline help text, and
   the dead vertical space under the header. Field names, actions
   and JS hooks are unchanged.
   ════════════════════════════════════════════════════════════ */

/* Page: vertically centre the card instead of giant inline margins */
.header.header-filter.auth-page {
    display: flex !important;
    align-items: center !important;
    min-height: 100vh !important;
    padding: 32px 0 !important;
}
.card.card-signup.auth-card {
    margin: 0 auto !important;
    width: 100% !important;
    max-width: 420px !important;
    box-shadow: var(--sh-lg) !important;
}
.card.card-signup.auth-card.account-forms { max-width: 500px !important; }

/* Header: round the top to match the card, tighten padding */
.auth-card .header.header-primary.form-header {
    border-radius: var(--r-lg) var(--r-lg) 0 0 !important;
    padding: 22px 24px 20px !important;
    margin: 0 !important;
}
.auth-card .form-header h4 { font-size: 20px !important; margin: 0 !important; }
.auth-subtitle {
    margin: 6px 0 0 !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    opacity: 0.9 !important;
}

/* Content padding */
.auth-card .content { padding: 22px 24px 6px !important; }

/* Consistent field rhythm — every field same gap, full width */
.auth-card .input-group { margin-bottom: 14px !important; display: table !important; width: 100% !important; }

/* Help texts: inline under the field, never absolute (kills overlap) */
.auth-card .help-text,
.auth-card .desc-small-text,
.auth-card .password-strength {
    position: static !important;
    display: block !important;
    margin: -8px 0 12px 2px !important;
    font-size: 11px !important;
    color: var(--ds-muted) !important;
    top: auto !important;
}

/* Account-type radio cards: two equal columns */
.auth-field-label {
    display: block !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: var(--ds-muted) !important;
    margin: 0 0 8px !important;
}
.account-type-row { margin-bottom: 14px !important; }
.account-type-row .radio.border-1px-normal {
    padding: 12px 8px !important;
    margin: 0 !important;
    cursor: pointer;
}
.account-type-row .radio i.material-icons {
    display: block !important;
    font-size: 24px !important;
    margin-bottom: 6px !important;
    color: var(--ds-muted) !important;
}

/* Select2 inside an input-group: align flush with the icon addon,
   match the 42px input height, fill the row (fixes the wide white
   dropdown vs narrow inputs mismatch). */
.auth-card .input-group.select-input-group {
    display: flex !important;
    align-items: stretch !important;
}
.auth-card .select-input-group > .input-group-addon {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 44px !important;
    border-radius: var(--r-sm) 0 0 var(--r-sm) !important;
}
.auth-card .select-input-group > .select2-container {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
}
.auth-card .select-input-group .select2-selection--multiple,
.auth-card .select-input-group .select2-selection--single {
    border-radius: 0 var(--r-sm) var(--r-sm) 0 !important;
    border-left: none !important;
    min-height: 42px !important;
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
}
.auth-card .select-input-group .material-input.select-class { display: none !important; }

/* Inline "stay logged in" + "forgot password" row */
.auth-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin: 2px 0 18px !important;
}
.auth-check {
    margin: 0 !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    color: var(--ds-text) !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 7px !important;
    cursor: pointer;
}
.auth-check input[type="checkbox"] { margin: 0 !important; position: static !important; }
.auth-row .login-a { font-size: 13px !important; }

/* Submit button: full width inside the auth card */
.auth-card .form-btn .btn-submit { width: 100% !important; padding: 11px !important; font-size: 15px !important; }

/* Terms text under the button */
.auth-terms {
    font-size: 11.5px !important;
    color: var(--ds-muted) !important;
    margin: 12px 0 0 !important;
    line-height: 1.5 !important;
}
.auth-terms a { color: var(--ds-green-dk) !important; text-decoration: underline !important; }

/* Footer link strip */
.auth-card .login-footer {
    text-align: center !important;
    border-top: 1px solid var(--ds-border) !important;
    padding: 14px !important;
    margin-top: 6px !important;
}
.auth-card .login-footer p { margin: 0 !important; font-size: 13px !important; color: var(--ds-muted) !important; }

/* Autofill: keep filled inputs visually consistent (no blue tint) */
.auth-card input:-webkit-autofill,
.auth-card input:-webkit-autofill:hover,
.auth-card input:-webkit-autofill:focus {
    -webkit-text-fill-color: var(--ds-text) !important;
    -webkit-box-shadow: 0 0 0 1000px var(--ds-surface) inset !important;
    transition: background-color 9999s ease-in-out 0s !important;
}

/* Account flows */
.auth-page--long { min-height: auto !important; padding-top: 96px !important; }
.auth-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--ds-muted);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    margin: 4px 24px 0;
}
.auth-divider::before, .auth-divider::after { content: ""; height: 1px; background: var(--ds-border); flex: 1; }
.forgot_password_set_password { padding-bottom: 12px; }
.forgot_password_set_password .content { padding-top: 16px !important; }
.auth-card input[readonly] { background: var(--ds-bg) !important; color: var(--ds-muted) !important; }

.ds-account-panel {
    min-height: calc(100vh - 70px);
    padding: 48px 16px;
    background: var(--ds-bg);
}
.ds-account-panel .box-solid,
.ds-verification-panel > .col-sm-6 {
    float: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
    background: var(--ds-surface) !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-lg) !important;
    box-shadow: var(--sh-md) !important;
    overflow: hidden;
}
.ds-account-panel .box-header {
    background: var(--ds-green-deep) !important;
    color: #fff !important;
    padding: 18px 24px !important;
}
.ds-account-panel .box-title { font-size: 18px !important; margin: 0 !important; }
.ds-account-panel .box-body { padding: 28px 24px !important; }
.ds-account-panel .form-control { border: 1px solid var(--ds-border) !important; border-radius: var(--r-sm) !important; padding: 10px 12px !important; }
.ds-account-panel .btn-info, .ds-account-panel .btn-success { background: var(--ds-green-dk) !important; border: 0 !important; border-radius: var(--r-sm) !important; }
.ds-verification-panel { padding-top: 110px; }
.ds-verification-panel > .col-sm-6 { padding: 28px !important; }

/* Post composer */
.composer-card { border: 0 !important; box-shadow: none !important; margin: 0 !important; }
.composer-card .attached_files { padding: 18px 20px 16px; }
.composer-attach-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 20px;
    border-bottom: 1px solid var(--ds-border-lt);
    background: var(--ds-bg);
}
.composer-attach-label { display: inline-flex; align-items: center; gap: 5px; margin: 0; color: var(--ds-navy); font-size: 12px; font-weight: 600; }
.composer-attach-label .material-icons { font-size: 17px !important; }
.composer-attach-row input[type="file"] { min-width: 0; max-width: 230px; }
.composer-files { padding: 0 20px !important; }
.composer-head { display: grid; grid-template-columns: minmax(150px, .75fr) minmax(220px, 1.6fr); gap: 14px; align-items: center; margin-bottom: 14px; }
.composer-head .select2-container { width: 100% !important; }
.composer-head-title .form-control { height: 40px !important; margin: 0 !important; }
.composer-body { position: relative; margin-bottom: 12px; }
.composer-footer { display: flex; justify-content: flex-end; gap: 8px; padding-top: 14px; margin-top: 12px; border-top: 1px solid var(--ds-border-lt); }
.composer-footer .btn { width: auto !important; min-width: 104px; margin: 0 !important; }

/* Creation pages */
.ds-form-page { background: var(--ds-bg); min-height: 100vh; }
.ds-form-page .main-container { padding-top: 28px !important; padding-bottom: 48px !important; }
.ds-form-page .main-container > .row > .col-md-9 { float: none !important; margin: 0 auto !important; }
.ds-form-page .article-user-info.theme-background-image {
    background: var(--ds-green-deep) !important;
    border: 0 !important;
    border-radius: var(--r-lg) var(--r-lg) 0 0 !important;
    padding: 18px 24px !important;
}
.ds-form-page .article-user-info h3 { margin: 0 !important; font-size: 19px !important; font-weight: 600 !important; }
.ds-form-page .article-user-info + .articles-list-box {
    border: 1px solid var(--ds-border) !important;
    border-top: 0 !important;
    border-radius: 0 0 var(--r-lg) var(--r-lg) !important;
    box-shadow: var(--sh-md) !important;
    padding: 24px !important;
}
.ds-form-page .panel, .ds-form-page .card {
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-lg) !important;
    box-shadow: var(--sh-sm) !important;
    overflow: hidden;
}
.ds-form-page .panel-heading,
.ds-form-page .panel-heading.theme-background-image,
.ds-form-page .panel-heading.header-primary { background: var(--ds-green-deep) !important; border: 0 !important; padding: 14px 18px !important; }
.ds-form-page .panel-heading * { color: #fff !important; text-shadow: none !important; }
.ds-form-page .panel-body { padding: 24px !important; }
.ds-form-page .form-control {
    background: var(--ds-surface) !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-sm) !important;
    min-height: 42px;
    padding: 9px 12px !important;
    box-shadow: none !important;
}
.ds-form-page textarea.form-control { min-height: 110px; }
.ds-form-page .form-control:focus { border-color: var(--ds-green) !important; box-shadow: 0 0 0 3px rgba(78,138,53,.12) !important; }
.ds-form-page .select2-container { width: 100% !important; }
.ds-form-page .select2-selection { border-color: var(--ds-border) !important; border-radius: var(--r-sm) !important; min-height: 42px !important; }
.ds-form-page .form-group { margin-top: 0 !important; margin-bottom: 16px !important; }
.ds-form-page label { color: var(--ds-heading) !important; font-size: 12.5px !important; font-weight: 600 !important; }
.ds-form-page .btn-info, .ds-form-page .btn-success { background: var(--ds-green-dk) !important; border: 0 !important; border-radius: var(--r-sm) !important; }
.ds-form-page .progress_node { box-shadow: none !important; }
.ds-form-page .progress_node.inprogress { background: var(--ds-green-dk) !important; }
.ds-form-page .progress_node.done { background: var(--ds-navy) !important; }

/* Comment and reply inputs */
.comment_list_wrapper > form.article-comment-form,
.reply_section > form.article-comment-form { display: flex !important; align-items: center; gap: 8px; }
.article-comment-form .form-group { flex: 1; margin: 0 !important; }
.article-comment-form input.form-control,
.article-comment-form textarea.form-control {
    min-height: 40px !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: 20px !important;
    background: var(--ds-bg) !important;
    padding: 9px 14px !important;
    box-shadow: none !important;
}
.article-comment-form input.form-control:focus,
.article-comment-form textarea.form-control:focus { background: #fff !important; border-color: var(--ds-green) !important; box-shadow: 0 0 0 3px rgba(78,138,53,.1) !important; }
.article-comment-form button { flex: 0 0 auto; border-radius: 18px !important; }

@media (max-width: 767px) {
    .header.header-filter.auth-page { align-items: flex-start !important; padding-top: 84px !important; }
    .composer-head { grid-template-columns: 1fr; gap: 9px; }
    .composer-attach-row { align-items: flex-start; flex-direction: column; }
    .composer-footer .btn { min-width: 92px !important; }
    .ds-form-page .panel-body, .ds-form-page .article-user-info + .articles-list-box { padding: 16px !important; }
}

/* Labels explain the field; placeholders only show format or examples. */
.auth-input-label,
.composer-field-label {
    display: block !important;
    color: var(--ds-heading) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    margin: 0 0 6px 2px !important;
    letter-spacing: .01em;
}
.auth-card .auth-input-label + .input-group { margin-bottom: 16px !important; }
.auth-card .input-group + .auth-input-label { margin-top: 2px !important; }
.auth-card .form-control::placeholder,
.ds-account-panel .form-control::placeholder,
.ds-form-page .form-control::placeholder,
.composer-card .form-control::placeholder {
    color: var(--ds-subtle) !important;
    opacity: 1 !important;
    font-weight: 400 !important;
}
.auth-card .select2-selection__placeholder,
.composer-card .select2-selection__placeholder,
.ds-form-page .select2-selection__placeholder { color: var(--ds-subtle) !important; }
.auth-card .help-text:not(:empty),
.auth-card .desc-small-text:not(:empty),
.auth-card .password-strength:not(:empty) {
    margin-top: -10px !important;
    padding-left: 2px !important;
}

.composer-head .composer-field-label { margin-bottom: 6px !important; }
.composer-body .composer-field-label { margin-bottom: 7px !important; }
.composer-section .composer-field-label { margin: 0 0 6px !important; }
.composer-section .row { margin-top: 0 !important; margin-bottom: 12px !important; }
.composer-section .select2-container { display: block !important; width: 100% !important; }
.composer-section .pill-toggle { margin-top: 1px !important; }

.ds-form-page .form-group > .col-sm-12 > .control-label {
    padding-top: 10px !important;
    line-height: 1.35 !important;
    text-align: right !important;
}
.ds-form-page .ds-field-note {
    display: block !important;
    color: var(--ds-muted) !important;
    font-size: 11.5px !important;
    font-weight: 400 !important;
    line-height: 1.45 !important;
    padding-top: 11px !important;
    text-align: left !important;
}
.ds-form-page .radio {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin: 6px 0 12px !important;
}
.ds-form-page .radio > span { flex-basis: 100%; }
.ds-form-page .radio label,
.ds-form-page label.radio-inline {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 36px !important;
    padding: 7px 12px !important;
    margin: 0 !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: 18px !important;
    background: var(--ds-surface) !important;
    color: var(--ds-text) !important;
    font-weight: 500 !important;
}
.ds-form-page .radio label:hover,
.ds-form-page label.radio-inline:hover { border-color: var(--ds-green) !important; background: rgba(78,138,53,.05) !important; }
.ds-form-page .radio input,
.ds-form-page label.radio-inline input { margin-right: 7px !important; }

.ds-verification-panel .auth-input-label { text-align: center; margin-bottom: 8px !important; }
.ds-verification-panel input[name="otp"] {
    max-width: 220px;
    margin: 0 auto;
    font-size: 20px !important;
    font-weight: 600 !important;
    letter-spacing: .18em;
}

@media (max-width: 767px) {
    .auth-input-label, .composer-field-label { font-size: 11.5px !important; }
    .ds-form-page .form-group > .col-sm-12 > .control-label {
        display: block !important;
        text-align: left !important;
        padding: 0 15px 6px !important;
    }
    .ds-form-page .ds-field-note { padding: 5px 15px 0 !important; }
    .ds-form-page .radio { display: grid !important; grid-template-columns: 1fr !important; }
    .ds-form-page .radio label, .ds-form-page label.radio-inline { width: 100% !important; border-radius: var(--r-sm) !important; }
}

/* Keep field content readable over legacy Material and header styles. */
.auth-card input.form-control,
.auth-card textarea.form-control,
.ds-account-panel input.form-control,
.ds-account-panel textarea.form-control,
.ds-form-page input.form-control,
.ds-form-page textarea.form-control,
.composer-card input.form-control,
.composer-card textarea.form-control {
    color: #232B36 !important;
    -webkit-text-fill-color: #232B36 !important;
    caret-color: var(--ds-navy) !important;
    background-color: #FFFFFF !important;
    opacity: 1 !important;
}
.auth-card input.form-control::placeholder,
.auth-card textarea.form-control::placeholder,
.ds-account-panel input.form-control::placeholder,
.ds-account-panel textarea.form-control::placeholder,
.ds-form-page input.form-control::placeholder,
.ds-form-page textarea.form-control::placeholder,
.composer-card input.form-control::placeholder,
.composer-card textarea.form-control::placeholder {
    color: #667085 !important;
    -webkit-text-fill-color: #667085 !important;
    opacity: 1 !important;
}

.auth-card select.form-control,
.ds-account-panel select.form-control,
.ds-form-page select.form-control,
.composer-card select.form-control,
.auth-card select.form-control option,
.ds-account-panel select.form-control option,
.ds-form-page select.form-control option,
.composer-card select.form-control option {
    color: #232B36 !important;
    background: #FFFFFF !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered,
.select2-container--default .select2-selection--multiple .select2-selection__rendered,
.select2-container--default .select2-selection--multiple .select2-selection__choice,
.select2-container--default .select2-search--inline .select2-search__field {
    color: #232B36 !important;
    -webkit-text-fill-color: #232B36 !important;
    opacity: 1 !important;
}
.select2-container--default .select2-selection--single .select2-selection__placeholder,
.select2-container--default .select2-selection--multiple .select2-selection__placeholder,
.select2-container--default .select2-search--inline .select2-search__field::placeholder {
    color: #667085 !important;
    -webkit-text-fill-color: #667085 !important;
    opacity: 1 !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 40px !important;
    padding-left: 12px !important;
    padding-right: 30px !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 40px !important; }
.select2-container--default .select2-selection--multiple { padding: 3px 8px !important; }
.select2-container--default .select2-selection--multiple .select2-selection__rendered {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 4px !important;
    width: 100% !important;
    padding: 0 !important;
}
.select2-container--default .select2-search--inline { flex: 1 1 150px !important; }
.select2-container--default .select2-search--inline .select2-search__field {
    width: 100% !important;
    min-width: 140px !important;
    margin: 0 !important;
    padding: 5px 2px !important;
    line-height: 24px !important;
}
.select2-dropdown,
.select2-results,
.select2-results__options { background: #FFFFFF !important; }
.select2-container--default .select2-results__option {
    color: #232B36 !important;
    background: #FFFFFF !important;
    padding: 8px 12px !important;
    line-height: 1.4 !important;
}
.select2-container--default .select2-results__option[aria-selected="true"] {
    color: var(--ds-heading) !important;
    background: #EEF2E9 !important;
}
.select2-container--default .select2-results__option--highlighted[aria-selected] {
    color: #FFFFFF !important;
    background: var(--ds-navy) !important;
}

/* Comment thread */
.ds-comments.comment_list_wrapper {
    width: 100% !important;
    padding: 0 18px 14px !important;
    margin: 8px 0 16px !important;
    background: #FFFFFF !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-lg) !important;
    box-shadow: var(--sh-sm) !important;
    overflow: visible !important;
}
.ds-comments:hover { transform: none !important; box-shadow: var(--sh-sm) !important; }
.ds-comments-head {
    clear: both;
    margin: 0 -18px 14px !important;
    padding: 13px 18px !important;
    border-bottom: 1px solid var(--ds-border-lt);
    color: var(--ds-heading);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;
}
.ds-comments > a {
    float: left !important;
    width: 40px !important;
    height: 40px !important;
    margin: 1px 10px 0 0 !important;
}
.ds-comments > a .profile-img {
    width: 40px !important;
    height: 40px !important;
    border: 1px solid var(--ds-border) !important;
}
.ds-comments > form.article-comment-form {
    float: left !important;
    display: flex !important;
    align-items: center !important;
    width: calc(100% - 50px) !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 8px !important;
}
.ds-comments > form.article-comment-form .form-group {
    flex: 1 1 auto !important;
    margin: 0 !important;
    padding: 0 !important;
}
.ds-comments .comment_text_area,
.ds-comments .reply_text_area {
    display: block !important;
    width: 100% !important;
    min-height: 40px !important;
    height: 40px !important;
    padding: 9px 14px !important;
    color: var(--ds-text) !important;
    -webkit-text-fill-color: var(--ds-text) !important;
    background: var(--ds-bg) !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: 20px !important;
    line-height: 20px !important;
    overflow: hidden !important;
    resize: none !important;
}
.ds-comments .comment_text_area::placeholder,
.ds-comments .reply_text_area::placeholder {
    color: #667085 !important;
    -webkit-text-fill-color: #667085 !important;
    opacity: 1 !important;
}
.ds-comments .comment_text_area:focus,
.ds-comments .reply_text_area:focus {
    background: #FFFFFF !important;
    border-color: var(--ds-green) !important;
    box-shadow: 0 0 0 3px rgba(78,138,53,.1) !important;
}
.ds-comments .post-comment-btn {
    position: static !important;
    flex: 0 0 38px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #FFFFFF !important;
    background: var(--ds-navy) !important;
    border: 0 !important;
    border-radius: 50% !important;
    box-shadow: none !important;
}
.ds-comments .post-comment-btn .post-comment-icon { color: #FFFFFF !important; font-size: 14px !important; }
.ds-comments .post-comment-btn:hover,
.ds-comments .post-comment-btn:focus { background: var(--ds-green-dk) !important; }

.ds-comments > .alert,
.ds-comments > .comment_list,
.ds-comments > .loader_comment { clear: both !important; }
.ds-comments > .comment_list { padding-top: 12px !important; }
.ds-comments .comment_list_item.articles-list-box,
.ds-comments .comment_reply_section.articles-list-box {
    float: none !important;
    width: 100% !important;
    padding: 14px 0 12px !important;
    margin: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-top: 1px solid var(--ds-border-lt) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
.ds-comments .comment_list > .comment_list_item:first-child { border-top: 0 !important; }
.ds-comments .comment_reply_text_section.profile-div {
    display: flex !important;
    align-items: center !important;
    gap: 9px !important;
    min-height: 32px !important;
    padding: 0 !important;
}
.ds-comments .comment_reply_text_section .profile-img {
    flex: 0 0 auto !important;
    width: 32px !important;
    height: 32px !important;
    border: 1px solid var(--ds-border) !important;
}
.ds-comments .comment_reply_text_section > .position-absolute {
    position: static !important;
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;
    min-width: 0 !important;
}
.ds-comments .profile-user-name {
    color: var(--ds-heading) !important;
    font-size: 12.5px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
}
.ds-comments .profile-date-inline {
    color: var(--ds-subtle) !important;
    font-size: 10.5px !important;
    line-height: 1.25 !important;
}
.ds-comments .profile-date-inline .material-icons { display: none !important; }
.ds-comments .articles-setting { top: 0 !important; right: 0 !important; }
.ds-comments .notification-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 30px !important;
    height: 30px !important;
    padding: 0 !important;
    border-radius: 50% !important;
}
.ds-comments .notification-icon:hover { background: var(--ds-surface2) !important; }
.ds-comments .notification-icon .material-icons { color: var(--ds-muted) !important; font-size: 18px !important; }

.ds-comments .comment_row > .padding-left-40px {
    padding-left: 41px !important;
}
.ds-comments .post_comment_details,
.ds-comments .post_reply_details {
    display: inline-block !important;
    max-width: 100% !important;
    margin: 6px 0 5px !important;
    padding: 8px 11px !important;
    color: var(--ds-text) !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
    white-space: pre-wrap !important;
    word-break: break-word !important;
    background: var(--ds-bg) !important;
    border-radius: 4px 12px 12px 12px !important;
}
.ds-comments .article-post-ul {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    margin: 0 0 4px !important;
    padding: 0 !important;
}
.ds-comments .article-post-ul > li { padding: 0 !important; }
.ds-comments .article-profile-icon {
    color: var(--ds-muted) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
}
.ds-comments .article-profile-icon i { color: var(--ds-muted) !important; font-size: 12px !important; }
.ds-comments .article-profile-icon:hover,
.ds-comments .article-profile-icon:hover i { color: var(--ds-navy) !important; }

.ds-comments .reply_list_wrapper {
    margin-top: 10px !important;
    padding-left: 16px !important;
    border-left: 2px solid var(--ds-border) !important;
    margin-left: 14px !important;
}
.ds-comments .comment_reply_list:empty,
.ds-comments .loader_reply:empty { display: none !important; }
.ds-comments .edit_reply_section {
    float: none !important;
    padding: 10px 0 2px !important;
    margin: 0 !important;
}
.ds-comments .edit_reply_section > .padding-left-40px { padding-left: 34px !important; }
.ds-comments .edit_reply_section .profile-img { width: 26px !important; height: 26px !important; }
.ds-comments .edit_reply_section .post_reply_details { margin-top: 5px !important; font-size: 12.5px !important; }
.ds-comments .comment_reply_list > .comment_hr { display: none !important; }
.ds-comments .fetch_reply_parent,
.ds-comments .fetch_comment_parent {
    float: none !important;
    width: 100% !important;
    padding: 4px 0 !important;
    border: 0 !important;
    background: transparent !important;
}
.ds-comments .fetch_reply,
.ds-comments .fetch_comment {
    display: inline-flex !important;
    align-items: center !important;
    gap: 3px !important;
    color: var(--ds-navy) !important;
    font-size: 11.5px !important;
    font-weight: 600 !important;
}
.ds-comments .fetch_reply .material-icons,
.ds-comments .fetch_comment .material-icons { font-size: 17px !important; }
.ds-comments .reply_section {
    float: none !important;
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    gap: 7px !important;
    margin: 7px 0 0 !important;
    padding: 8px 0 0 !important;
    border-top: 1px solid var(--ds-border-lt) !important;
}
.ds-comments .reply_section > a {
    float: none !important;
    flex: 0 0 26px !important;
    width: 26px !important;
    height: 26px !important;
}
.ds-comments .reply_section > a .profile-img { width: 26px !important; height: 26px !important; }
.ds-comments .reply_section_form {
    float: none !important;
    display: flex !important;
    flex: 1 1 auto !important;
    align-items: center !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    gap: 6px !important;
}
.ds-comments .reply_section_form .form-group { flex: 1 1 auto !important; margin: 0 !important; }
.ds-comments .reply_section_form .post-comment-btn {
    flex-basis: 32px !important;
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
}

@media (max-width: 767px) {
    .ds-comments.comment_list_wrapper { padding: 0 12px 12px !important; border-radius: var(--r-md) !important; }
    .ds-comments-head { margin: 0 -12px 12px !important; padding: 12px !important; }
    .ds-comments > a { width: 34px !important; height: 34px !important; margin-right: 8px !important; }
    .ds-comments > a .profile-img { width: 34px !important; height: 34px !important; }
    .ds-comments > form.article-comment-form { width: calc(100% - 42px) !important; }
    .ds-comments .comment_row > .padding-left-40px { padding-left: 0 !important; }
    .ds-comments .post_comment_details { margin-left: 41px !important; max-width: calc(100% - 41px) !important; }
    .ds-comments .comment_row > .padding-left-40px > div > .article-post-ul { margin-left: 41px !important; }
    .ds-comments .reply_list_wrapper { margin-left: 14px !important; padding-left: 12px !important; }
}

/* Shared form rendering safety */
form, fieldset, .form-group, .input-group, .form-control,
.select2-container, .select2-selection, .select2-selection__rendered {
    min-width: 0;
    max-width: 100%;
}
.form-group, .input-group {
    height: auto !important;
}
.form-group::after, .input-group::after {
    content: "";
    display: table;
    clear: both;
}
.help-text, .desc-small-text, .password-strength,
.form-control + .help-block, .form-control ~ .help-block {
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
}
textarea.form-control {
    max-width: 100% !important;
    white-space: pre-wrap !important;
    overflow-wrap: anywhere !important;
}
.form-control, .select2-selection {
    line-height: 1.4 !important;
}

/* Compact composer metadata */
.composer-card form.attached_files::after {
    content: "";
    display: block;
    clear: both;
}
.composer-card .composer-section {
    float: left;
    width: calc(50% - 6px);
    min-width: 0;
}
.composer-card #composer-topics { margin-right: 12px; }
.composer-card .composer-footer { clear: both; }
.composer-card #share_with_option > .col-xs-12 {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
}
.composer-card #share_with_option .composer-field-label { margin: 0 !important; }
.composer-card #share_with_option .pill-toggle {
    flex: 0 0 auto !important;
    margin: 0 !important;
}

/* Overlay order */
.select2-container--open { z-index: 20050 !important; }
.select2-dropdown {
    z-index: 20051 !important;
    overflow: hidden !important;
}
.select2-results > .select2-results__options {
    max-height: min(320px, 45vh) !important;
    overflow-y: auto !important;
}
.select2-search--dropdown {
    display: block !important;
    padding: 8px !important;
    background: #FFFFFF !important;
}
.select2-search--dropdown .select2-search__field {
    display: block !important;
    width: 100% !important;
    min-height: 38px !important;
    padding: 8px 10px !important;
    color: var(--ds-text) !important;
    background: #FFFFFF !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-sm) !important;
    outline: none !important;
}
.dropdown.open, .btn-group.open { position: relative; z-index: 20040 !important; }
.dropdown-menu {
    z-index: 20041 !important;
    max-width: min(360px, calc(100vw - 24px)) !important;
}
.modal { z-index: 10500 !important; }
.modal-backdrop { z-index: 10490 !important; }
.modal .dropdown.open, .modal .btn-group.open { z-index: 20100 !important; }
.modal .dropdown-menu { z-index: 20101 !important; }
.datepicker-dropdown, .ui-datepicker { z-index: 20110 !important; }
.modal-content, .modal-body, .modal-body .card,
.composer-card, .composer-card form, .ds-form-page .panel,
.ds-form-page .panel-body, .ds-form-page .card {
    overflow: visible !important;
}
.modal-content, .ds-form-page .panel, .ds-form-page .card { isolation: isolate; }

/* Icons should keep their space beside labels and actions. */
.btn > i, .btn > .material-icons,
.dropdown-menu a > i, .dropdown-menu a > .material-icons,
.composer-tool > i, .pill > i {
    display: inline-block !important;
    flex: 0 0 auto !important;
    vertical-align: middle !important;
    line-height: 1 !important;
}
.btn > i + span, .btn > .material-icons + span,
.dropdown-menu a > i + span, .dropdown-menu a > .material-icons + span {
    margin-left: 6px !important;
}

@media (max-width: 767px) {
    .composer-card .composer-section {
        float: none;
        width: 100%;
        margin-right: 0 !important;
    }
    .composer-card #share_with_option > .col-xs-12 {
        align-items: flex-start !important;
        flex-direction: column !important;
        gap: 7px !important;
    }
    .dropdown-menu {
        left: auto !important;
        right: 0 !important;
    }
}

/* Related short fields share a row without clipping conditional content. */
.ds-compact-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
    width: 100% !important;
    margin: 12px 0 !important;
}
.ds-compact-grid > .row {
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
}
.ds-compact-grid > .row > [class*="col-"] {
    float: none !important;
    width: 100% !important;
    padding: 0 !important;
}
.ds-compact-grid > .custom_share,
.ds-compact-grid > .sectional_field { grid-column: 1 / -1; }
.ds-compact-grid .select2-container { width: 100% !important; }

/* Keep Select2 controls vertically centred at every legacy form size.
   Older page CSS left the shell at 28px while giving its text a 40px
   line-height, which pushed labels down and clipped them in compact grids. */
.select2-container--default .select2-selection--single {
    min-height: 42px !important;
    height: 42px !important;
    display: flex !important;
    align-items: center !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
    width: 100% !important;
    min-width: 0 !important;
    padding: 0 32px 0 12px !important;
    line-height: 20px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

/* Icons inside badges, pills and filled controls must use their component's
   foreground colour. Global semantic icon colours otherwise disappear on
   red/green/navy backgrounds (for example the Open status capsule). */
.label > i,
.label > .material-icons,
.badge > i,
.badge > .material-icons,
.pill > i,
.pill > .material-icons,
.btn > i,
.btn > .material-icons {
    color: inherit !important;
    -webkit-text-fill-color: currentColor !important;
    opacity: 1 !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
    top: 0 !important;
    height: 40px !important;
}
.select2-container--default .select2-selection--multiple {
    min-height: 42px !important;
    height: auto !important;
    display: flex !important;
    align-items: center !important;
    padding: 4px 8px !important;
}
.select2-container--default .select2-selection--multiple .select2-selection__rendered {
    min-height: 32px !important;
    align-content: center !important;
}
.select2-container--default .select2-search--inline {
    flex: 1 1 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
}
.select2-container--default .select2-search--inline .select2-search__field {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 30px !important;
    margin: 0 !important;
    padding: 5px 2px !important;
    line-height: 20px !important;
    text-overflow: ellipsis !important;
}

.question-composer .composer-legacy-upload {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 10px 18px !important;
    background: var(--ds-bg) !important;
    border-bottom: 1px solid var(--ds-border-lt) !important;
}
.question-composer .composer-legacy-upload > .col-sm-2,
.question-composer .composer-legacy-upload > .col-sm-10 {
    float: none !important;
    width: auto !important;
    padding: 0 !important;
}
.question-composer .composer-legacy-upload > .col-sm-10 { flex: 1 1 auto !important; text-align: left !important; }
.question-composer .composer-legacy-upload > .col-sm-12 {
    flex-basis: 100% !important;
    padding: 0 !important;
}
.question-composer .composer-legacy-upload .control-label {
    margin: 0 !important;
    color: var(--ds-heading) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    white-space: nowrap !important;
}
.question-composer .composer-legacy-upload input[type="file"] {
    display: block !important;
    width: 100% !important;
    max-width: 320px !important;
    color: var(--ds-muted) !important;
}
.question-composer .composer-legacy-upload hr { display: none !important; }
.announcement-composer .composer-body,
.question-composer .composer-body { margin-bottom: 16px !important; }

@media (max-width: 767px) {
    .ds-compact-grid { grid-template-columns: 1fr !important; gap: 12px !important; }
    .question-composer .composer-legacy-upload { align-items: flex-start !important; flex-direction: column !important; }
    .question-composer .composer-legacy-upload > .col-sm-10 { width: 100% !important; }
}

.ds-answers .comment_reply_text_section > .position-absolute {
    flex-flow: row wrap !important;
    align-items: center !important;
    gap: 2px 6px !important;
}
.ds-answers .comment_reply_text_section .profile-user-name { flex: 1 1 160px !important; }
.ds-answers .comment_reply_text_section .profile-date-inline { flex-basis: 100% !important; order: 3; }
.ds-answers .comment_reply_text_section .label {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    margin: 0 !important;
    padding: 4px 7px !important;
    color: var(--ds-green-dk) !important;
    background: rgba(78,138,53,.1) !important;
    border-radius: 10px !important;
    font-size: 9.5px !important;
    line-height: 1 !important;
}

.ds-reviews.articles-list-box {
    padding: 18px !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-lg) !important;
    box-shadow: var(--sh-sm) !important;
}
.ds-reviews > .profile_name {
    display: block !important;
    margin: 0 0 14px !important;
    color: var(--ds-heading) !important;
    font-size: 15px !important;
}
.ds-reviews > hr { display: none !important; }
.ds-reviews .all_reviews_row {
    display: grid !important;
    grid-template-columns: minmax(130px, .7fr) minmax(220px, 1.3fr) !important;
    gap: 20px !important;
    align-items: center !important;
    margin: 0 0 14px !important;
    padding: 16px !important;
    background: var(--ds-bg) !important;
    border-radius: var(--r-md) !important;
}
.ds-reviews .all_reviews_row > [class*="col-"] {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}
.ds-reviews .circle_raview {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    width: 112px !important;
    height: 112px !important;
    margin: 0 auto !important;
    background: #FFFFFF !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: 50% !important;
}
.ds-reviews .add_reviews > .articles-list-box {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 14px 0 !important;
    border: 0 !important;
    border-top: 1px solid var(--ds-border-lt) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: #FFFFFF !important;
}
.ds-reviews .add_reviews > .articles-list-box:hover { transform: none !important; }
.ds-reviews .add_reviews .profile-div { align-items: center !important; gap: 8px !important; }
.ds-reviews .add_reviews .profile-img { width: 34px !important; height: 34px !important; }
.ds-reviews .add_reviews .padding-left-40px { padding-left: 42px !important; }
.ds-reviews .add_reviews .comment_hr { display: none !important; }
.ds-reviews .add_reviews .padding-left-15px {
    margin: 6px 0 0 !important;
    padding: 9px 11px !important;
    color: var(--ds-text) !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
    background: var(--ds-bg) !important;
    border-radius: 4px 12px 12px 12px !important;
}
.rating_form {
    width: min(320px, calc(100vw - 48px)) !important;
    padding: 10px !important;
}
.rating_form textarea {
    display: block !important;
    width: 100% !important;
    min-height: 90px !important;
    padding: 10px 12px !important;
    color: var(--ds-text) !important;
    background: #FFFFFF !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-sm) !important;
    resize: vertical !important;
}

@media (max-width: 767px) {
    .ds-reviews .all_reviews_row { grid-template-columns: 1fr !important; gap: 14px !important; }
    .ds-reviews .add_reviews .padding-left-40px { padding-left: 0 !important; }
}

/* Composer modal correction: one grid, no nested column splitting. */
.modal-dialog:has(.composer-card) {
    width: calc(100% - 32px) !important;
    max-width: 760px !important;
    margin: 28px auto !important;
}
.modal-dialog:has(.composer-card) .modal-content {
    overflow: hidden !important;
}
.modal-dialog:has(.composer-card) .modal-body {
    max-height: calc(100vh - 112px) !important;
    padding: 16px 22px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
}
.composer-card,
.composer-card form { overflow: visible !important; }
.composer-card .composer-section {
    float: none !important;
    width: 100% !important;
    margin-right: 0 !important;
}
.composer-card #composer-topics.open {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 12px !important;
}
.composer-card #composer-topics > .row,
.composer-card #composer-audience > .row,
.modal-body .composer-card form .row:has(> .col-xs-12 > .domain_section_mapping_domain_select),
.modal-body .composer-card form .row:has(> .col-xs-12 > .section_topic_mapping_section_select),
.modal-body .composer-card form .row:has(> .col-xs-12 > #section_topic_mapping_topic_select) {
    float: none !important;
    clear: none !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
}
.composer-card #composer-topics > .row > .col-xs-12,
.composer-card #composer-audience > .row > .col-xs-12 {
    float: none !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
}
.composer-card #composer-audience {
    margin-top: 12px !important;
    padding-top: 12px !important;
    border-top: 1px solid var(--ds-border-lt) !important;
}
.composer-card #share_with_option > .col-xs-12 {
    display: flex !important;
    flex-flow: row wrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 10px 18px !important;
}
.composer-card #share_with_option .composer-field-label {
    flex: 0 0 auto !important;
    width: auto !important;
}
.composer-card #share_with_option .pill-toggle {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    flex-wrap: nowrap !important;
    max-width: 100% !important;
}
.composer-card #share_with_option .pill {
    min-width: 84px !important;
    padding: 7px 16px !important;
    white-space: nowrap !important;
}
.composer-card .composer-footer {
    position: sticky !important;
    z-index: 20 !important;
    bottom: -16px !important;
    margin: 14px -22px -16px !important;
    padding: 12px 22px !important;
    background: rgba(255,255,255,.97) !important;
    border-top: 1px solid var(--ds-border) !important;
    box-shadow: 0 -8px 18px rgba(30,58,138,.05) !important;
}

@media (max-width: 767px) {
    .modal-dialog:has(.composer-card) {
        width: calc(100% - 16px) !important;
        margin: 8px auto !important;
    }
    .modal-dialog:has(.composer-card) .modal-body {
        max-height: calc(100vh - 70px) !important;
        padding: 14px !important;
    }
    .composer-card .composer-head { grid-template-columns: 1fr !important; }
    .composer-card #composer-topics.open { grid-template-columns: 1fr !important; gap: 10px !important; }
    .composer-card #share_with_option > .col-xs-12 { align-items: flex-start !important; flex-direction: column !important; gap: 7px !important; }
    .composer-card .composer-footer {
        bottom: -14px !important;
        margin: 12px -14px -14px !important;
        padding: 10px 14px !important;
    }
}

/* ── Premium Video Cards & Sensation of Watches/Likes/Dislikes ──── */
.ds-video-card {
    background: var(--ds-surface) !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-md) !important;
    overflow: hidden !important;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    height: 380px !important;
    position: relative !important;
}

.ds-video-card:hover {
    transform: translateY(-4px) !important;
    box-shadow: var(--sh-md) !important;
    border-color: var(--ds-green) !important;
}

.ds-video-thumb-wrapper {
    position: relative !important;
    width: 100% !important;
    height: 150px !important;
    background-color: #000 !important;
    overflow: hidden !important;
}

.ds-video-thumb-wrapper img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    transition: transform 0.3s ease !important;
}

.ds-video-card:hover .ds-video-thumb-wrapper img {
    transform: scale(1.05) !important;
}

/* Floating overlay play effect on hover */
.ds-video-thumb-wrapper::after {
    content: "play_circle_filled" !important;
    font-family: 'Material Icons' !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) scale(0.8) !important;
    font-size: 44px !important;
    color: rgba(255, 255, 255, 0.9) !important;
    opacity: 0 !important;
    transition: all 0.25s ease !important;
    pointer-events: none !important;
    text-shadow: 0 4px 8px rgba(0,0,0,0.5) !important;
}

.ds-video-card:hover .ds-video-thumb-wrapper::after {
    opacity: 1 !important;
    transform: translate(-50%, -50%) scale(1) !important;
}

.ds-video-duration {
    position: absolute !important;
    bottom: 8px !important;
    right: 8px !important;
    background: rgba(0, 0, 0, 0.8) !important;
    color: #fff !important;
    padding: 3px 6px !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    border-radius: 4px !important;
    letter-spacing: 0.5px !important;
    backdrop-filter: blur(2px) !important;
    line-height: 1 !important;
    z-index: 2 !important;
}

.ds-video-overlay-metric {
    position: absolute !important;
    top: 8px !important;
    left: 8px !important;
    background: rgba(30, 58, 138, 0.85) !important;
    color: #fff !important;
    padding: 3px 8px !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    border-radius: 4px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    backdrop-filter: blur(2px) !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.15) !important;
    line-height: 1 !important;
    z-index: 2 !important;
}

.ds-video-card-body {
    padding: 12px 14px !important;
    flex-grow: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
}

.ds-video-title {
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
    color: var(--ds-heading) !important;
    margin: 0 0 6px 0 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    height: 40px !important;
}

.ds-video-desc {
    font-size: 12px !important;
    color: var(--ds-muted) !important;
    line-height: 1.5 !important;
    margin: 0 0 10px 0 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    height: 36px !important;
}

.ds-video-engagement {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
    padding-top: 8px !important;
    margin-top: auto !important;
    border-top: 1px solid var(--ds-border-lt) !important;
}

.ds-video-engagement-item {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    color: var(--ds-muted) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    transition: color 0.2s ease !important;
    cursor: default !important;
}

.ds-video-engagement-item i {
    font-size: 14px !important;
    vertical-align: middle !important;
}

.ds-video-engagement-item.likes:hover {
    color: var(--ds-green) !important;
}

.ds-video-engagement-item.dislikes:hover {
    color: var(--ds-red) !important;
}

.ds-video-engagement-item.comments:hover {
    color: var(--ds-navy) !important;
}

.ds-video-play-btn {
    width: 100% !important;
    padding: 10px 14px !important;
    background: var(--ds-navy) !important;
    color: #fff !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-align: center !important;
    border: none !important;
    border-top: 1px solid var(--ds-border-lt) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    text-decoration: none !important;
    transition: all 0.2s ease !important;
    border-bottom-left-radius: calc(var(--r-md) - 1px) !important;
    border-bottom-right-radius: calc(var(--r-md) - 1px) !important;
}

.ds-video-play-btn:hover {
    background: var(--ds-navy-lt) !important;
    color: #fff !important;
    text-decoration: none !important;
}

.ds-video-actions-dropdown {
    position: absolute !important;
    top: 8px !important;
    right: 8px !important;
    z-index: 10 !important;
}

.ds-video-actions-dropdown .notification-icon {
    background: rgba(255, 255, 255, 0.9) !important;
    color: var(--ds-text) !important;
    border-radius: 50% !important;
    width: 24px !important;
    height: 24px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: var(--sh-sm) !important;
    border: none !important;
}

.ds-video-card-add {
    background: var(--ds-surface2) !important;
    border: 2px dashed var(--ds-border) !important;
}

.ds-video-card-add:hover {
    border-color: var(--ds-green) !important;
    background: var(--ds-surface) !important;
}

.ds-video-add-circle-btn {
    width: 48px !important;
    height: 48px !important;
    border-radius: 50% !important;
    background: var(--ds-surface) !important;
    border: 1px solid var(--ds-border) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: var(--ds-navy) !important;
    transition: all 0.2s ease !important;
    box-shadow: var(--sh-sm) !important;
}

.ds-video-card-add:hover .ds-video-add-circle-btn {
    color: var(--ds-green) !important;
    transform: scale(1.1) !important;
    box-shadow: var(--sh-md) !important;
}

.ds-video-play-btn-add {
    background: var(--ds-surface2) !important;
    color: var(--ds-muted) !important;
}

.ds-video-card-add:hover .ds-video-play-btn-add {
    background: var(--ds-navy) !important;
    color: #fff !important;
}

/* ── Branded Page Headers ──────────────────────────────────── */
.ds-page-header {
    background: var(--ds-surface) !important;
    border: 1px solid var(--ds-border) !important;
    border-radius: var(--r-md) !important;
    padding: 16px 20px !important;
    margin-bottom: 16px !important;
    box-shadow: var(--sh-sm) !important;
    border-top: 3px solid var(--ds-navy) !important;
}

.ds-page-title {
    font-size: 20px !important;
    font-weight: 700 !important;
    color: var(--ds-heading) !important;
    margin: 0 0 6px 0 !important;
    font-family: 'Hanken Grotesk', system-ui, sans-serif !important;
}

.ds-page-subtitle {
    font-size: 13px !important;
    color: var(--ds-muted) !important;
    margin: 0 !important;
    line-height: 1.5 !important;
}

/* ── Theme line: brand eyebrow + product loop + objective, repeated across
      every listing header so the route stays in front of the user. ───────── */
.ds-eyebrow {
    display: inline-block;
    font-size: 11px !important;
    font-weight: 800 !important;
    letter-spacing: 0.02em !important;
    text-transform: none !important;
    color: var(--ds-green-dk) !important;
    margin-bottom: 6px !important;
}
/* Horizontal, swipe-scrollable on small screens so the strip never wraps
   or pushes the page content down. */
.ds-route {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 6px;
    margin-top: 12px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 3px;
    scrollbar-width: thin;
}
.ds-route::-webkit-scrollbar { height: 3px; }
.ds-route::-webkit-scrollbar-thumb { background: var(--ds-border); border-radius: 3px; }
.ds-route-step {
    flex: 0 0 auto;
    font-size: 12px;
    font-weight: 600;
    color: var(--ds-muted);
    padding: 3px 10px;
    border: 1px solid var(--ds-border);
    border-radius: 999px;
    background: var(--ds-surface);
    white-space: nowrap;
    cursor: help;
}
.ds-route-step.is-active {
    color: #fff;
    background: var(--ds-green);
    border-color: var(--ds-green);
}
.ds-route-sep {
    flex: 0 0 auto;
    font-size: 16px !important;
    color: var(--ds-muted);
    line-height: 1;
}
.ds-route-goal {
    font-size: 12px !important;
    color: var(--ds-muted) !important;
    margin: 10px 0 0 0 !important;
    line-height: 1.5 !important;
    border-top: 1px dashed var(--ds-border);
    padding-top: 8px;
}
.ds-route-goal strong { color: var(--ds-green-dk) !important; }

