/* TekBB Color System — Bootstrap-first, minimal custom vars */
:root,
:root[data-theme="light"] {
  --bs-body-bg: #f5f6fa;
  --bs-body-color: #1e293b;
  --tekbb-accent: #0d9488;
  --tekbb-accent-hover: #0f766e;
  --tekbb-accent-subtle: rgba(13,148,136,.08);
  --tekbb-heading-bg: #0d9488;
  --tekbb-surface: #ffffff;
  --tekbb-border: #e2e8f0;
  --tekbb-muted: #64748b;
  --tekbb-text-inv: #ffffff;
  --tekbb-shadow-sm: 0 1px 2px rgba(0,0,0,.05);
  --tekbb-shadow: 0 1px 3px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);
  color-scheme: light;
}

:root[data-theme="dark"] {
  --bs-body-bg: #0f172a;
  --bs-body-color: #e2e8f0;
  --tekbb-accent: #2dd4bf;
  --tekbb-accent-hover: #5eead4;
  --tekbb-accent-subtle: rgba(45,212,191,.1);
  --tekbb-heading-bg: #0d9488;
  --tekbb-surface: #1e293b;
  --tekbb-border: #334155;
  --tekbb-muted: #94a3b8;
  --tekbb-text-inv: #ffffff;
  --tekbb-shadow-sm: 0 1px 2px rgba(0,0,0,.2);
  --tekbb-shadow: 0 1px 3px rgba(0,0,0,.3), 0 1px 2px rgba(0,0,0,.2);
  color-scheme: dark;
}

/* === Apply vars to body === */
body {
  background-color: var(--bs-body-bg) !important;
  color: var(--bs-body-color) !important;
}

/* === Links === */
a:link, a:visited { color: var(--tekbb-accent); text-decoration: none; }
a:hover, a:active { color: var(--tekbb-accent-hover); text-decoration: none; }

/* === MyBB structural classes (thead, tcat, trow, tfoot) === */
.thead {
  background: var(--tekbb-heading-bg);
  color: var(--tekbb-text-inv);
  padding: 10px 16px;
  font-weight: 600;
}
.thead a:link, .thead a:visited, .thead a:hover { color: var(--tekbb-text-inv); }

.tcat {
  color: var(--tekbb-muted);
  padding: 6px 12px;
  font-size: .85rem;
  font-weight: 600;
  border-bottom: 1px solid var(--tekbb-border);
}
.tcat a:link, .tcat a:visited, .tcat a:hover { color: var(--tekbb-muted); }

.trow1 { background: var(--tekbb-surface); padding: 10px 16px; border-bottom: 1px solid var(--tekbb-border); }
.trow2 { background: var(--bs-body-bg);    padding: 10px 16px; border-bottom: 1px solid var(--tekbb-border); }
.trow_sep { background: var(--tekbb-accent-subtle); color: var(--tekbb-muted); padding: 6px 12px; border-bottom: 1px solid var(--tekbb-border); }

.trow_shaded { background: #fef3cd; }
:root[data-theme="dark"] .trow_shaded { background: rgba(254,243,205,.1); }
.trow_selected, tr.trow_selected td { background: #cff4fc; }
:root[data-theme="dark"] .trow_selected, :root[data-theme="dark"] tr.trow_selected td { background: rgba(207,244,252,.1); }

.tfoot { background: var(--tekbb-surface); padding: 8px 16px; border-top: 1px solid var(--tekbb-border); color: var(--tekbb-muted); }
.tfoot a:link, .tfoot a:visited, .tfoot a:hover { color: var(--tekbb-muted); }

/* === tborder (card wrapper) === */
.tborder {
  background: var(--tekbb-surface);
  border: 1px solid var(--tekbb-border);
  border-radius: .5rem;
  overflow: hidden;
  box-shadow: var(--tekbb-shadow-sm);
  margin-bottom: 1rem;
}

/* === Forms / inputs === */
input.textbox, textarea, select {
  background: var(--tekbb-surface);
  color: var(--bs-body-color);
  border: 1px solid var(--tekbb-border);
  padding: 6px 10px;
  border-radius: .375rem;
  outline: 0;
  transition: border-color .15s ease, box-shadow .15s ease;
}
input.textbox:focus, textarea:focus, select:focus {
  border-color: var(--tekbb-accent);
  box-shadow: 0 0 0 3px var(--tekbb-accent-subtle);
}

/* === Buttons === */
a.button:link, a.button:visited, a.button:hover, a.button:active,
button, input.button {
  display: inline-block;
  padding: 6px 14px;
  font-size: .875rem;
  font-weight: 500;
  background: var(--tekbb-accent);
  color: var(--tekbb-text-inv);
  border: 1px solid var(--tekbb-accent);
  border-radius: .375rem;
  transition: background .15s, border-color .15s;
  cursor: pointer;
  text-decoration: none;
}
a.button:hover, button:hover, input.button:hover {
  background: var(--tekbb-accent-hover);
  border-color: var(--tekbb-accent-hover);
}

/* === Alerts === */
.pm_alert { background: #fff3cd; border: 1px solid #ffc107; color: #664d03; padding: 10px 16px; border-radius: .375rem; margin-bottom: 1rem; text-align: center; }
:root[data-theme="dark"] .pm_alert { background: rgba(255,243,205,.1); border-color: rgba(255,193,7,.3); color: #ffc107; }
.red_alert { background: #f8d7da; border: 1px solid #f5c2c7; color: #842029; padding: 10px 16px; border-radius: .375rem; margin-bottom: 1rem; text-align: center; }
:root[data-theme="dark"] .red_alert { background: rgba(248,215,218,.1); border-color: rgba(245,194,199,.3); color: #ea868f; }

/* === Post controls === */
.post_controls { clear: both; padding: 8px 12px; overflow: hidden; background: var(--tekbb-accent-subtle); border-top: 1px solid var(--tekbb-border); }
.postbit_buttons > a:link, .postbit_buttons > a:visited {
  display: inline-block; padding: 4px 10px; margin: 2px;
  border: 1px solid var(--tekbb-border); border-radius: .375rem;
  color: var(--bs-body-color); background: var(--tekbb-surface);
  font-size: .8rem; transition: all .15s;
}
.postbit_buttons > a:hover {
  background: var(--tekbb-accent); color: var(--tekbb-text-inv); border-color: var(--tekbb-accent);
}

/* === Popup menu === */
.popup_menu { background: var(--tekbb-surface); border: 1px solid var(--tekbb-border); border-radius: .5rem; box-shadow: var(--tekbb-shadow); z-index: 10; overflow: hidden; }
.popup_menu .popup_item { display: block; padding: 6px 12px; color: var(--bs-body-color); }
.popup_menu .popup_item:hover { background: var(--tekbb-accent-subtle); color: var(--tekbb-accent); text-decoration: none; }

/* === Pagination === */
.pagination { font-size: .85rem; padding-top: 8px; margin: 8px 0; }
.pagination a { padding: 4px 8px; border: 1px solid var(--tekbb-border); border-radius: .25rem; }
.pagination a:hover { background: var(--tekbb-accent); color: var(--tekbb-text-inv); border-color: var(--tekbb-accent); }
.pagination .pagination_current { padding: 4px 8px; font-weight: 700; }

/* === Blockquote / codeblock === */
blockquote { background: var(--tekbb-accent-subtle); border-left: 4px solid var(--tekbb-accent); padding: 12px 16px; margin: 8px 0; border-radius: 0 .375rem .375rem 0; }
blockquote cite { font-weight: 600; border-bottom: 1px solid var(--tekbb-border); display: block; padding-bottom: 6px; margin-bottom: 8px; font-style: normal; }
blockquote cite > span { float: right; font-weight: normal; color: var(--tekbb-muted); }
.codeblock { background: var(--tekbb-surface); border: 1px solid var(--tekbb-border); padding: 12px; border-radius: .375rem; }
.codeblock .title { font-weight: 600; border-bottom: 1px solid var(--tekbb-border); padding-bottom: 6px; margin-bottom: 8px; }
.codeblock code { overflow: auto; max-height: 200px; display: block; font-size: .85rem; }

/* === Editor === */
.editor { background: var(--tekbb-surface); border: 1px solid var(--tekbb-border); border-radius: .375rem; }
.editor_control_bar { background: var(--tekbb-accent-subtle); border-bottom: 1px solid var(--tekbb-border); }

/* === Reputation === */
.reputation_positive { color: #16a34a; }
.reputation_neutral { color: var(--tekbb-muted); }
.reputation_negative { color: #dc2626; }
.repbox { font-size: 1rem; font-weight: 700; padding: 4px 8px; border-radius: .25rem; }
._neutral { background: var(--tekbb-surface); color: var(--tekbb-muted); border: 1px solid var(--tekbb-border); border-radius: .25rem; }
._plus { background: #dcfce7; color: #16a34a; border: 1px solid #16a34a; border-radius: .25rem; }
._minus { background: #fef2f2; color: #dc2626; border: 1px solid #dc2626; border-radius: .25rem; }
:root[data-theme="dark"] ._plus { background: rgba(22,163,74,.15); }
:root[data-theme="dark"] ._minus { background: rgba(220,38,38,.15); }
.trow_reputation_positive { background: #dcfce7; }
.trow_reputation_negative { background: #fef2f2; }
:root[data-theme="dark"] .trow_reputation_positive { background: rgba(22,163,74,.1); }
:root[data-theme="dark"] .trow_reputation_negative { background: rgba(220,38,38,.1); }

/* === Footer === */
#footer { background: #1e293b; color: #94a3b8; border-top: 1px solid var(--tekbb-border); }
#footer a:link, #footer a:visited { color: #94a3b8; }
#footer a:hover { color: #e2e8f0; }
#copyright { background: #0f172a; color: #64748b; }
#copyright a { color: #64748b; }

/* === Modal (jQuery, NOT BS) === */
.blocker { position: fixed; inset: 0; width: 100%; height: 100%; overflow: auto; z-index: 9999; padding: 20px; background: rgba(0,0,0,.5); backdrop-filter: blur(3px); text-align: center; }
.blocker::before { content:""; display: inline-block; height: 100%; vertical-align: middle; }
.mybb-modal { width: 480px; max-width: 92vw; text-align: left; display: inline-block; vertical-align: middle; position: absolute; margin: auto; top: 8%; z-index: 10000; border-radius: .5rem; box-shadow: var(--tekbb-shadow); background: var(--tekbb-surface); overflow: hidden; border: 1px solid var(--tekbb-border); }
.modal[id] .thead { border-radius: .5rem .5rem 0 0; }
.modal[id] a.close-modal { position: absolute; top: 8px; right: 10px; width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; color: var(--tekbb-text-inv); font-size: 18px; text-decoration: none; border-radius: 50%; z-index: 10; }
.modal[id] a.close-modal::before { content: "\00D7"; }
.modal[id] a.close-modal:hover { background: rgba(255,255,255,.2); }
.modal-spinner { width: 48px; height: 48px; position: fixed; top: 50%; left: 50%; transform: translate(-50%,-50%); background: #1e293b; border-radius: .5rem; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 24px; }

/* === jQuery impromptu === */
.jqifade { background-color: rgba(0,0,0,.5); }
div.jqi { background: var(--tekbb-surface); border: 1px solid var(--tekbb-border); border-radius: .5rem; }
div.jqi .jqistate { background: var(--tekbb-surface); }
div.jqi .jqititle { border-bottom: 1px solid var(--tekbb-border); }
div.jqi .jqimessage { color: var(--bs-body-color); }
div.jqi .jqibuttons { border-top: 1px solid var(--tekbb-border); background: var(--tekbb-accent-subtle); border-radius: 0 0 .5rem .5rem; }
div.jqi .jqibuttons button { border-left: 1px solid var(--tekbb-border); color: var(--tekbb-muted); }
div.jqi .jqibuttons button.jqidefaultbutton { color: var(--tekbb-accent); }
div.jqi .jqibuttons button:hover { color: var(--tekbb-accent); }

/* === jGrowl === */
.jGrowl .jGrowl-notification, .jGrowl .jGrowl-closer { background: #1e293b; color: #e2e8f0; }

/* === Post styling === */
.post { overflow: hidden; }
.post.classic { padding-top: 0; }
.post .post_author { border-bottom: 1px solid var(--tekbb-border); padding: 8px 12px; overflow: hidden; }
.post .post_author div.author_avatar { float: left; margin-right: 8px; }
.post.classic .post_author div.author_avatar { float: none; text-align: center; margin-bottom: 8px; }
.post .post_author div.author_avatar img { padding: 2px; border: 2px solid var(--tekbb-border); border-radius: 50%; max-width: 80px; }
.post .post_author div.author_information { float: left; padding: 6px 8px; }
.post.classic .post_author div.author_information { float: none; text-align: center; padding: 0; }
.post .post_author div.author_statistics { float: right; font-size: .85rem; padding: 3px 10px; color: var(--tekbb-muted); }
.post .post_head { font-size: .85rem; padding-bottom: 6px; border-bottom: 1px solid var(--tekbb-border); margin-bottom: 8px; }
.post_body { padding: 12px 0; }
.post_content { padding: 12px 16px; }
.post_content .signature { margin-top: 12px; border-top: 1px dotted var(--tekbb-border); padding: 12px 0 4px; font-size: .9rem; color: var(--tekbb-muted); }
.post .post_meta { margin: 4px 0; font-size: .85rem; color: var(--tekbb-muted); }

/* === Online status === */
.online_status { display: inline-flex; align-items: center; justify-content: center; vertical-align: middle; height: 14px; width: 14px; }
.status_online::after  { content: "\f287"; font-family: "bootstrap-icons"; font-size: 10px; color: #16a34a; }
.status_away::after    { content: "\f287"; font-family: "bootstrap-icons"; font-size: 10px; color: #eab308; }
.status_offline::after { content: "\f287"; font-family: "bootstrap-icons"; font-size: 10px; color: var(--tekbb-muted); }

/* === Poll bar === */
.poll_resultbar, .pmspace { height: 22px; margin-top: 8px; overflow: hidden; background: var(--tekbb-accent-subtle); border-radius: 1rem; }
.poll_resultbar > span, .pmspace > span { display: inline-block; height: 100%; background: var(--tekbb-heading-bg); border-radius: 1rem; transition: width .6s ease; }

/* === Star ratings === */
.star_rating, .star_rating li a:hover, .star_rating .current_rating, .inline_rating {
  background: linear-gradient(to right, #f59e0b 0%, #f59e0b 100%);
}

/* === Thread status (Bootstrap Icons replacement) === */
.thread_status { display: inline-block; width: 16px; height: 16px; font-size: 14px; text-align: center; line-height: 16px; }
.thread_status:before { font-family: "bootstrap-icons"; font-size: 14px; }
.thread_status.folder:before, .thread_status.dot_folder:before         { content: "\f3d1"; color: var(--tekbb-accent); }
.thread_status.hotfolder:before, .thread_status.dot_hotfolder:before   { content: "\f3d1"; color: #dc2626; }
.thread_status.newfolder:before, .thread_status.dot_newfolder:before   { content: "\f3d1"; color: #16a34a; }
.thread_status.closefolder:before, .thread_status.dot_closefolder:before { content: "\f622"; color: var(--tekbb-muted); }
.thread_status.hotclosefolder:before, .thread_status.dot_hotclosefolder:before { content: "\f622"; color: #dc2626; }
.thread_status.newhotfolder:before, .thread_status.dot_newhotfolder:before { content: "\f3d1"; color: #ea580c; }
.thread_status.newhotclosefolder:before, .thread_status.dot_newhotclosefolder:before { content: "\f622"; color: #ea580c; }
.thread_status.newclosefolder:before, .thread_status.dot_newclosefolder:before { content: "\f622"; color: #16a34a; }
.thread_status.movefolder:before { content: "\f131"; color: #eab308; }
.thread_status.announcement:before { content: "\f133"; color: var(--tekbb-accent); }
.forum_on  { color: var(--tekbb-accent); }
.forum_off, .forum_offclose, .forum_offlink { color: var(--bs-body-color); opacity: .4; }

/* === Forum status icons === */
.forum_status { width: 42px; height: 42px; text-align: center; }
.forum_status i { display: inline-block; line-height: 42px; }
.forum_offclose i:before { content: "\f622"; font-family: "bootstrap-icons"; }
.forum_offlink i:before  { content: "\f470"; font-family: "bootstrap-icons"; }

/* === Misc === */
img { border: none; max-width: 100%; }
img.attachment { border: 2px solid var(--tekbb-border); padding: 2px; border-radius: .25rem; }
hr { height: 1px; border: 0; background: var(--tekbb-border); }
.divider { height: 1px; background: var(--tekbb-border); display: block; margin: 9px 0; overflow: hidden; }
.highlight { background: #fef3c7; }
:root[data-theme="dark"] .highlight { background: rgba(254,243,199,.1); }
.strong { font-weight: bold; }
blockquote { font-size: 100%; }
form { margin: 0; padding: 0; }
form #message { width: 100%; }
legend { display: block; width: 100%; font-size: 1.125rem; color: var(--bs-body-color); border: 0; border-bottom: 2px solid var(--tekbb-accent); padding-bottom: 4px; margin-bottom: 8px; }
fieldset { padding: 16px; border: 1px solid var(--tekbb-border); margin: 0; border-radius: .5rem; }
.hidden { display: none; }
.hiddenrow { display: none; }
.no_bottom_border { border-bottom: 0; }
.ignored_post { border-top: 3px solid var(--tekbb-border); padding: 15px; }
#posts_container { padding: 0; }
.tfixed { table-layout: fixed; word-wrap: break-word; }
.subject_new { font-weight: bold; }
.changeavatar { display: flex; align-items: center; }
.post_attachments { display: block; padding: 7px 0; }

/* === Expand/collapse === */
.expcolimage { cursor: pointer; float: right; display: inline-flex; align-items: center; justify-content: center; min-width: 20px; }
img.expander { display: none !important; }
.expcolimage::after { content: "\f282"; font-family: "bootstrap-icons"; color: rgba(255,255,255,.9); font-size: 16px; transition: transform .25s ease; }
.expcolimage[data-collapsed="1"]::after { transform: rotate(-90deg); }

/* === Scroll to top === */
.top_button { background: var(--tekbb-accent); border-radius: 50%; bottom: 24px; color: #fff !important; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; position: fixed; right: 24px; z-index: 999; opacity: 0; transform: translateY(20px); transition: opacity .3s, transform .3s; box-shadow: var(--tekbb-shadow); }
.top_button.visible { opacity: 1; transform: translateY(0); }
.top_button:hover { background: var(--tekbb-accent-hover); }

/* === Data widths (MyBB uses these) === */
[data-width="1%"]{width:1%}[data-width="5%"]{width:5%}[data-width="7.5%"]{width:7.5%}[data-width="10%"]{width:10%}[data-width="15%"]{width:15%}[data-width="20%"]{width:20%}[data-width="25%"]{width:25%}[data-width="30%"]{width:30%}[data-width="35%"]{width:35%}[data-width="40%"]{width:40%}[data-width="45%"]{width:45%}[data-width="50%"]{width:50%}[data-width="55%"]{width:55%}[data-width="60%"]{width:60%}[data-width="65%"]{width:65%}[data-width="70%"]{width:70%}[data-width="75%"]{width:75%}[data-width="80%"]{width:80%}[data-width="85%"]{width:85%}[data-width="90%"]{width:90%}[data-width="95%"]{width:95%}[data-width="100%"]{width:100%}

/* === Text helpers (MyBB uses these) === */
.align_right{text-align:right}.align_left{text-align:left}.align_center{text-align:center}
.float_left{float:left}.float_right{float:right}
.smalltext,.tcat{font-size:.85rem}.mediumtext{font-size:1rem}.largetext{font-size:1.1rem}
.vmiddle{vertical-align:middle}.vtop{vertical-align:top}.vbottom{vertical-align:bottom}
.block{display:block}.inline-block{display:inline-block}.none{display:none}.inline{display:inline}
.clear{clear:both}
.clearfix::after,.pagination::after{clear:both;content:".";display:block;height:0;visibility:hidden}

/* === Forumbit layout === */
.forumbit_icon{float:left;text-align:center;vertical-align:middle;width:34px}
.forumbit_title{padding-left:55px;vertical-align:middle}
.subforumicon{height:10px;width:10px;display:inline-block;margin:0 5px}
.subforum_minion{color:var(--bs-body-color)}.subforum_minioff{opacity:.35}
.subforum_minioffclose i:before{content:"\f622";font-family:"bootstrap-icons"}
.subforum_miniofflink i:before{content:"\f470";font-family:"bootstrap-icons"}

/* === Threadbit layout === */
.threadbit_folder{float:left;text-align:center;vertical-align:middle;width:32px}
.threadbit_folder .thread_status{position:relative;top:2px}
.threadbit_title{margin-left:36px}
.threadbit_icon,.posticons{vertical-align:middle}
.threadbit_main[data-rate-thread="1"][data-width="60%"]{width:45%}
.threadbit_rating .star_rating{margin:0 auto}
.threadbit_modbit{float:right;text-align:center;vertical-align:middle}
.formbit_label{padding-right:28px}

/* === Rowbit === */
.rowbit{align-items:center;display:flex;margin:0;flex-wrap:wrap}
.formbit_field{margin:8px 0}
.selectall{text-align:center}

/* === Forum display === */
.forumdisplay_search{display:inline-block}
.forumdisplay_sorting_options{text-align:center}
.thread_legend{list-style:none;margin:0;padding:0 22px 15px 0}
.thread_legend>li{margin:3px 0}.thread_legend>li>span{margin-right:10px;vertical-align:middle}
.threadlist_thread_option{display:flex;justify-content:space-between}

/* === Member profile === */
.member_profile_content,.cp_row{align-items:flex-start;flex-wrap:wrap}
.member_profile_content .tborder{margin-bottom:8px}

/* === Smilies === */
.smilie{vertical-align:middle}.smilie_pointer{cursor:pointer}
#clickable_smilies{margin:0 auto;text-align:center;float:none !important}
#clickable_smilies>div>span{display:inline-block;vertical-align:middle;width:22%}
#clickable_smilies>span{display:block;margin:0 auto;padding:6px 0;text-align:center}

/* === Buddy list === */
.buddy_avatar{float:left;text-align:center;width:44px}
.buddy_avatar img{display:inline-block;margin:0 auto;width:42px;border-radius:50%}
.buddy_user{padding-right:48px}

/* === Postbit button icons === */
.postbit_buttons a span:before{content:"";display:inline-block;font-family:"bootstrap-icons";margin-right:5px}
.postbit_buttons a.postbit_find span:before{content:"\f52a"}
.postbit_buttons a.postbit_reputation_add span:before{content:"\f4fe"}
.postbit_buttons a.postbit_email span:before{content:"\f32f"}
.postbit_buttons a.postbit_website span:before{content:"\f47a"}
.postbit_buttons a.postbit_pm span:before{content:"\f32f"}
.postbit_buttons a.postbit_quote span:before{content:"\f254"}
.postbit_buttons a.postbit_multiquote span:before{content:"\f270"}
.postbit_buttons a.postbit_multiquote_on span:before{content:"\f269";color:#dc2626}
.postbit_buttons a.postbit_edit span:before{content:"\f4ca"}
.postbit_buttons a.postbit_qdelete span:before{content:"\f5de"}
.postbit_buttons a.postbit_qrestore span:before{content:"\f4fe"}
.postbit_buttons a.postbit_report span:before{content:"\f339"}
.postbit_buttons a.postbit_warn span:before{content:"\f33a"}
.postbit_buttons a.postbit_purgespammer span:before{content:"\f33a"}
.postbit_buttons a.postbit_reply_pm span:before{content:"\f4e6"}
.postbit_buttons a.postbit_reply_all span:before{content:"\f4e7"}
.postbit_buttons a.postbit_forward_pm span:before{content:"\f4e8"}
.postbit_buttons a.postbit_delete_pm span:before{content:"\f5de"}

/* === Button icons === */
a.button span:before{content:"";display:inline-block;font-family:"bootstrap-icons";font-weight:normal;margin-right:6px}
a.button.new_thread_button span:before{content:"\f270"}
a.button.new_reply_button span:before{content:"\f254"}
a.button.closed_button span:before{content:"\f622"}
a.button.rate_user_button span:before{content:"\f586"}
a.button.small_button{font-size:.8rem;margin:0;padding:4px 8px}

/* === Alerts === */
.alert{text-align:center;border-radius:.375rem;padding:12px 20px}
.alert a{font-weight:600}.alert a:hover{text-decoration:underline}
.message{border-left:4px solid var(--tekbb-accent);margin:0;padding:20px;border-radius:0 .375rem .375rem 0}
.message_header{font-size:1.15rem;margin-bottom:8px;font-weight:600}
div.error{padding:10px 16px;border-left:4px solid #eab308;font-size:.85rem;border-radius:0 .375rem .375rem 0;background:var(--tekbb-surface)}
div.error p{margin:0;color:var(--bs-body-color)}
div.error p em{font-style:normal;font-weight:600;padding-left:28px;display:block;color:#dc2626;position:relative}
div.error p em::before{content:"\f33a";font-family:"bootstrap-icons";font-size:16px;color:#dc2626;position:absolute;left:0;top:0}

/* === Alert colors === */
.alert_red{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:.375rem}
.alert_yellow{background:#fefce8;border:1px solid #fef08a;color:#854d0e;border-radius:.375rem}
.alert_green{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;border-radius:.375rem}
.alert_blue{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;border-radius:.375rem}
:root[data-theme="dark"] .alert_red{background:rgba(254,226,226,.08);border-color:rgba(254,202,202,.2);color:#fca5a5}
:root[data-theme="dark"] .alert_yellow{background:rgba(254,252,232,.08);border-color:rgba(254,240,138,.2);color:#fde047}
:root[data-theme="dark"] .alert_green{background:rgba(240,253,244,.08);border-color:rgba(187,247,208,.2);color:#86efac}
:root[data-theme="dark"] .alert_blue{background:rgba(239,246,255,.08);border-color:rgba(191,219,254,.2);color:#93c5fd}

/* === Poll === */
.poll_option>div>span{display:inline-block;margin:3px 5px 3px 0}

/* === Subject editable === */
.subject_editable form input{display:inline-block;width:auto !important;height:auto !important;border-radius:.375rem}
.subject_editable form{display:inline-block}
label strong,label b{font-weight:500}

/* === BS3 visibility shims === */
@media(max-width:767.98px){.hidden-xs{display:none !important}}
@media(min-width:768px)and(max-width:991.98px){.hidden-sm{display:none !important}}
@media(min-width:992px)and(max-width:1199.98px){.hidden-md{display:none !important}}
@media(min-width:1200px){.hidden-lg{display:none !important}}
.visible-xs{display:none !important}
@media(max-width:767.98px){.visible-xs{display:block !important}}

/* === Calendar mini === */
.calendar-mini-header{padding:7px 10px;text-align:center}
.calendar-mini-grid{display:block}
.calendar-mini-row{display:flex}
.calendar-mini-weeklink{flex:0 0 28px;min-width:28px;padding:3px;text-align:center;font-size:.8rem}
.calendar-mini-cell{flex:1;padding:3px;text-align:center;font-size:.8rem;min-width:0}

/* === Rep stats grid === */
.rep-stats-grid{display:grid;grid-template-columns:minmax(70px,auto) 1fr 1fr 1fr;gap:2px 8px;font-size:.85rem;padding:4px 0}
.rep-stats-row{display:contents}.rep-stats-row>div{padding:2px 4px}
.rep-stats-row.header-row>div{font-weight:bold;text-align:center}
.rep-stats-row:not(.header-row)>div:not(:first-child){text-align:right}

/* === Label shims === */
.label{display:inline-block;padding:.25em .5em;font-size:.75em;font-weight:600;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;color:var(--tekbb-text-inv);background:var(--tekbb-muted)}
.label_green{background:#16a34a !important}.label_blue{background:var(--tekbb-accent) !important}.label_red{background:#dc2626 !important}

/* === Navigation === */
.navigation{background:transparent;border:none;padding:0;margin:1rem 0}
.breadcrumb{padding:0;margin-bottom:0;list-style:none;font-size:.85rem}
.breadcrumb-item+.breadcrumb-item::before{content:"/";padding:0 6px;color:var(--tekbb-muted)}

/* === Responsive helpers === */
@media(max-width:575.98px){
  .container{padding-right:10px;padding-left:10px}
}

/* === Dark mode checkbox === */
.checkbox,.radio{display:inline}

/* === Off-canvas === */
.row-offcanvas{position:relative;transition:all .25s ease-out}
@media(max-width:767.98px){
  .row-offcanvas-left{left:0}.row-offcanvas-left .sidebar-offcanvas{left:-50%}
  .row-offcanvas-left.active{left:50%}
  .sidebar-offcanvas{position:absolute;top:0;width:50%;z-index:5;background:var(--tekbb-surface);border-radius:0 .5rem .5rem 0;box-shadow:var(--tekbb-shadow)}
  .offcanvas-toggle-btn{display:inline-block;margin:8px 0 8px 12px}
}
@media(min-width:768px){.offcanvas-toggle-btn{display:none}}

/* === Misc === */
img.mycode_img.img-fluid{display:inline-block}
.navbar{border-radius:0}
@media(max-width:767.98px){.navbar-nav .nav-item{width:100%}}

		