/* ============================================================
   BRAND COLOUR PALETTE  (maroon #8e0203 and its derivatives)
   ============================================================ */

/* Background colours */
.b_bg1  { background-color: #8e0203; }
.b_bg2  { background-color: #ddb3b3; }
.b_bg3  { background-color: #fbf5f5; }
.b_bg6  { background-color: #f1f1f1; }
.b_bg7  { background-color: #f5e7e7; }
.b_bg9  { background-color: #f5e7e7; }
.b_bg10 { background-color: #ffffff; }
.b_bg12 { background-color: #f1f1f1; }
.b_fc7     { color: #8e0203; }
.b_fcolor2 { color: #ffffff; }
.b_fcolor4 { color: #ffffff; }
.b_txtgray { color: #888888; }

/* Table row colours */
.b_tr0 { background-color: #f5e7e7; }

/* Chart colours */
.b_color0 { fill: #8e0203; }

/* Border colours */
.b_brdr1 { border: 1px solid #c68181; }

/* Text decoration */
.b_und1 { text-decoration: underline; }

/* Spinner rotation while the lead generator is working */
@keyframes b_spinner_rotate {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

/* Calendar month header cells */
.b_cal_mh {
    height: 9vw;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Calendar blank day cell (leading blanks) */
.b_cal_blank {
    height: 11vw;
}

/* Calendar day tile (7 columns, Sun..Sat) */
.b_cal_day {
    width: 14.28%;
    height: 11vw;
    float: left;
    text-align: center;
    font-size: 3vw;
    border: 1px solid #eed9d9;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

/* Calendar day circle (selected / today highlight) */
.b_cal_circle {
    width: 9vw;
    height: 9vw;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
}

/* Today outline around the circle when not selected */
.b_cal_today_outline {
    outline: 2px solid #8e0203;
}

/* Campaign card (dismissal_parent b_student_card style) */
.b_campaign_card {
    width: 100%;
    display: flex;
    align-items: center;
    padding: 12px 8px;
    border-bottom: 1px solid #eed9d9;
    background-color: #ffffff;
    box-sizing: border-box;
    cursor: pointer;
}

.b_campaign_icon {
    width: 56px;
    height: 56px;
    min-width: 56px;
    border-radius: 50%;
    overflow: hidden;
    border: 1px solid #eed9d9;
    background-color: #f5f5f5;
    display: flex;
    align-items: center;
    justify-content: center;
}

.b_campaign_info {
    flex: 1;
    min-width: 0;
    padding: 0 8px;
}

.b_campaign_name {
    font-size: 16px;
    font-weight: 700;
    color: #333;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.b_campaign_detail {
    font-size: 13px;
    color: #888;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.b_campaign_arrow {
    min-width: 24px;
    text-align: center;
    color: #888;
    font-size: 18px;
}

/* Status chips for leads/opportunities */
.b_status_chip {
    display: inline-block;
    border-radius: 8px;
    padding: 2px 8px;
    font-size: 1.2vh;
    font-weight: bold;
}

.b_status_new {
    background-color: #f5f5f5;
    color: #616161;
}

.b_status_qualified {
    background-color: #f5e7e7;
    color: #6b0102;
}

.b_status_lost {
    background-color: #6b0102;
    color: #fff;
}

/* ============================================================
   SALES AGENT HOME DASHBOARD TILES (cardowner-style)
   ============================================================ */

/* BF logo proper colors (cardowner): #8e0203 polygons 1&3, black polygon 2 */
svg[aria-label="Business-Folio"] polygon:nth-child(1),
svg[aria-label="Business-Folio"] polygon:nth-child(3) {
    fill: #8e0203;
    stroke: #8e0203;
}

svg[aria-label="Business-Folio"] polygon:nth-child(2) {
    fill: #2b0101;
    stroke: #2b0101;
}

/* Dashboard tile */
.b_dash_tile {
    position: relative;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
}

/* Dashboard badge (counts on tiles) */
.b_dash_badge {
    position: absolute;
    top: 6px;
    right: 6px;
    min-width: 20px;
    height: 20px;
    padding: 0 4px;
    background-color: #6b0102;
    color: #fff;
    border-radius: 50%;
    font-size: 11px;
    font-weight: bold;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
}

/* Profile circle icon */
.b_profile_circle {
    border: 2px solid #eed9d9;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

/* Chat starter button (bottom-right, home only) */
.b_chat_starter {
    position: fixed;
    right: 16px;
    bottom: 16px;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background-color: #8e0203;
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    z-index: 30;
    cursor: pointer;
}

.b_chat_history {
    flex: 1;
    overflow-y: auto;
    padding: 10px;
}

.b_chat_input {
    flex: 1;
    border: 1px solid #ddb3b3;
    border-radius: 18px;
    padding: 8px 12px;
    font-size: 14px;
    outline: none;
}

/* Capacity chat suggestion bar - one horizontal line above the input, no scrollbars */
.b_ct_sugg {
  display: flex;
  align-items: center;
  gap: 2vw;
  overflow-x: auto;
  padding: 2vw;
  border-top: 1px solid #eed9d9;
  background: #ffffff;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.b_ct_sugg::-webkit-scrollbar { display: none; }
.b_ct_sugg_chip {
  flex: 0 0 auto;
  padding: 6px 14px;
  border: 1px solid #ddb3b3;
  border-radius: 20px;
  background: #f4f4f4;
  white-space: nowrap;
  font-size: 3.6vw;
  color: #333333;
}
.b_ct_sugg_chip:active { background: #e0e0e0; }

/* Spacer inside a chat bubble between a short comment and the next question/summary */
.b_q_gap { height: 14px; }

/* Objective (A/B/C/D) option row inside an assess question bubble */
.b_opt_row { margin: 6px 0; line-height: 1.4; font-size: 4.6vw; }

/* Chat pages: fixed full-screen flex column; ONLY the history area scrolls.
   Shared by every coach/chat page (each carries the .b_ct_chat_page class). */
.b_ct_chat_page {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
}
.b_ct_chat_page > .b_chat_history {
  flex: 0 0 auto;
  height: 80%;
  min-height: 0;
  overflow-y: auto;
}
.b_ct_chat_page > .b_hist_spc {
  flex: 1 1 auto;
  min-height: 2vw;
}
.b_ct_chat_page > .b_ct_sugg {
  flex: 0 0 auto;
}
.b_ct_chat_page > .w_100p.h_4t1 {
  flex: 0 0 auto;
}

/* Chat bubble sizing/format for Capacity chat pages */
/* Chat pages: each message occupies its own full-width, cleared row */
.b_ct_chat_page .k_chatline {
  width: 100%;
  clear: both;
  margin: 1.5vw 0;
}

.b_ct_chat_page .k_userbot,
.b_ct_chat_page .k_sysbot {
  max-width: 90%;
  box-sizing: border-box;
  line-height: 1.5;
  font-size: 5vw;
}
/* grow the framework text helpers inside chat bubbles so lesson/example text is bigger too */
.b_ct_chat_page .k_sysbot .k_f4vw,
.b_ct_chat_page .k_sysbot .k_f5vw { font-size: 5vw; }
.b_ct_chat_page .b_ct_sugg_chip { font-size: 4.6vw; }
.b_ct_chat_page .b_chat_input { font-size: 4.6vw; }


/* Lesson card visuals: AI SVG figure and the "Example:" box inside a chat bubble */
#learn_chat_page .k_sysbot .b_lsn_fig {
  width: 100%;
  margin: 0 0 1.5vw 0;
  background: #ffffff;
  border: 1px solid #eed9d9;
  border-radius: 2vw;
  padding: 2vw;
  box-sizing: border-box;
}
#learn_chat_page .k_sysbot .b_lsn_fig svg {
  display: block;
  width: 100%;
  height: auto;
}
/* gentle entrance so the picture "appears" instead of popping harshly */
@keyframes ct_lsn_pop {
  0%   { opacity: 0; transform: translateY(8px) scale(0.97); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}
#learn_chat_page .k_sysbot .b_lsn_fig {
  animation: ct_lsn_pop 0.45s ease-out;
}
#learn_chat_page .k_sysbot .b_lsn_ex {
  margin-top: 1.5vw;
  padding: 1.5vw 2vw;
  background: #fbf5f5;
  border-radius: 2vw;
  color: #333333;
}

/* Method/step bullet list inside a lesson bubble */
#learn_chat_page .k_sysbot .b_lsn_list {
  margin: 1vw 0 0 0;
  padding-left: 6vw;
  color: #333333;
}
#learn_chat_page .k_sysbot .b_lsn_list li {
  margin: 0.6vw 0;
}


/* Practice / quick-check countdown timer inside a bubble */
#learn_chat_page .k_sysbot .b_ct_prac_head {
  margin-bottom: 0.6vw;
}
#learn_chat_page .k_sysbot .b_ct_prac_timer {
  display: inline-block;
  margin-left: 1vw;
  padding: 0 2vw;
  border: 1px solid #ddb3b3;
  border-radius: 2vw;
  background: #fbf5f5;
  font-family: monospace;
  font-weight: bold;
  font-size: 4.6vw;
  color: #6b0102;
  vertical-align: baseline;
}



/* Chat day divider (dashed line - Today - dashed line) */
.b_ct_day {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 4vw;
}
.b_ct_day::before,
.b_ct_day::after {
  content: "";
  flex: 1;
  border-top: 1px dashed #ddb3b3;
}
.b_ct_day span {
  font-size: 3.4vw;
  color: #8a8a8a;
}

/* Progress coach (processor 180): chart bars + insights inside chat bubbles */
.b_prog_row { margin: 5px 0; }
.b_prog_label { font-size: 4vw; line-height: 1.4; }
.b_bar_svg { width: 100%; height: 1.2vh; display: block; margin-top: 2px; }
.b_prog_insight {
  margin-top: 8px;
  padding: 6px 8px;
  border-left: 3px solid #ddb3b3;
  background-color: #fbf5f5;
  border-radius: 4px;
  font-size: 3.8vw;
  line-height: 1.5;
}

/* ============================================================
   MOVED FRAMEWORK BRAND RULES
   Relocated out of ttstyles.css and re-derived from the maroon
   logo colour (#8e0203). Framework k_ utilities renamed to b_.
   ============================================================ */

/* SVG fills (was .k_svgfill1 / .k_svgfill2) */
.b_svgfill1 { fill: #8e0203; }

/* Border colours (was .k_brdrb1) */
.b_brdrb1 { border-bottom: solid #eed9d9 1px; }

/* Business-Folio logo polygons (was the .b_co_logo polygon rules) */
.b_co_logo polygon:nth-child(1),
.b_co_logo polygon:nth-child(3) { fill: #8e0203; stroke: #8e0203; }
.b_co_logo polygon:nth-child(2) { fill: #2b0101; stroke: #2b0101; }

/* App loader (was .b_tt_loader) */
.b_tt_loader {
    border: 16px solid #f5e7e7;
    border-radius: 50%;
    border-top: 16px solid #8e0203;
    border-bottom: 16px solid #6b0102;
    width: 120px;
    height: 120px;
    animation: spin 2s linear infinite;
}

/* Table headers (was gold #ccb78f) */
table thead th { background-color: #8e0203; color: #ffffff; }
.b_th { background-color: #8e0203; color: #ffffff; }

