/* Hbshortcode — Frontend Styles v3.1.0 */

.hbshort-wrapper { box-sizing: border-box; }
.hbshort-wrapper *, .hbshort-wrapper *::before, .hbshort-wrapper *::after { box-sizing: inherit; }

/* ── TABLE ─────────────────────────────────────────────────── */
.hbshort-table-wrap { margin: 1.5em 0; }
.ht-responsive { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.hbshort-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.hbshort-table th { background: #2563eb; color: #fff; padding: 10px 14px; text-align: left; font-weight: 600; }
.hbshort-table td { padding: 9px 14px; border-bottom: 1px solid #e5e7eb; }
.hbshort-table.ht-striped tbody tr:nth-child(even) td { background: var(--hb-stripe, #f0f6ff); }
.hbshort-table.ht-bordered th, .hbshort-table.ht-bordered td { border: 1px solid #d1d5db; }
.hbshort-table.ht-hover tbody tr:hover td { background: #eff6ff; }

/* ── BUTTON ────────────────────────────────────────────────── */
.hbshort-btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 10px 20px; border-radius: var(--hb-btn-radius, 8px);
  font-size: .9rem; font-weight: 600; text-decoration: none;
  transition: opacity .15s, transform .1s; cursor: pointer;
}
.hbshort-btn:hover { opacity: .88; transform: translateY(-1px); }
.hb-btn-primary   { background: var(--hb-btn-bg, #2563eb) !important; color: var(--hb-btn-text, #ffffff) !important; }
.hb-btn-secondary { background: #4b5563; color: #fff; }
.hb-btn-success   { background: #16a34a; color: #fff; }
.hb-btn-danger    { background: #dc2626; color: #fff; }
.hb-btn-outline   { background: transparent; color: #2563eb; border: 2px solid #2563eb; }
.hb-btn-sm  { padding: 6px 14px; font-size: .8rem; }
.hb-btn-lg  { padding: 13px 28px; font-size: 1rem; }
.hb-btn-full { display: flex; width: 100%; justify-content: center; }

/* ── WIKI ──────────────────────────────────────────────────── */
.hbshort-wiki {
  margin: 1.5em 0; padding: 16px 18px;
  border-left: 4px solid #2563eb; background: #eff6ff; border-radius: 0 8px 8px 0;
}
.hbwiki-header { display: flex; align-items: center; gap: 9px; margin-bottom: 8px; }
.hbwiki-icon   { color: #2563eb; flex-shrink: 0; }
.hbwiki-title  { font-size: .95rem; font-weight: 700; color: #1e40af; margin: 0; }
.hbwiki-content { font-size: .88rem; color: #1e3a5f; line-height: 1.6; }

/* ── VIDEO ─────────────────────────────────────────────────── */
.hbshort-video { margin: 1.5em 0; }
.hbv-container { position: relative; padding-top: 56.25%; border-radius: 10px; overflow: hidden; }
.hbv-container iframe { position: absolute; inset: 0; width: 100%; height: 100%; }

/* ── ALERT ─────────────────────────────────────────────────── */
.hbshort-alert {
  display: flex; align-items: flex-start; gap: 12px;
  margin: 1.2em 0; padding: 14px 16px;
  border-radius: var(--hb-alert-radius, 8px); border: 1px solid transparent;
  position: relative;
}
.hbalert-icon    { flex-shrink: 0; margin-top: 1px; }
.hbalert-content { flex: 1; font-size: .9rem; line-height: 1.6; }
.hbalert-close   { background: none; border: none; cursor: pointer; font-size: 18px; color: inherit; opacity: .6; padding: 0 4px; margin-left: auto; flex-shrink: 0; }
.hbalert-close:hover { opacity: 1; }
.hbalert-info    { background: #eff6ff; border-color: #bfdbfe; color: #1e40af; }
.hbalert-success { background: #f0fdf4; border-color: #bbf7d0; color: #166534; }
.hbalert-warning { background: #fffbeb; border-color: #fde68a; color: #92400e; }
.hbalert-danger  { background: #fef2f2; border-color: #fecaca; color: #991b1b; }

/* ── CARD ──────────────────────────────────────────────────── */
.hbshort-card {
  margin: 1.5em 0; border-radius: var(--hb-card-radius, 10px);
  border: 1px solid #e5e7eb; overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,.07);
}
.hbcard-image img { width: 100%; display: block; }
.hbcard-body      { padding: 18px 20px; }
.hbcard-title     { font-size: 1.05rem; font-weight: 700; margin: 0 0 8px; }
.hbcard-content   { font-size: .9rem; line-height: 1.6; color: #4b5563; }
.hbcard-link      { display: inline-block; margin-top: 12px; color: #2563eb; font-weight: 600; font-size: .88rem; text-decoration: none; }
.hbcard-link:hover { text-decoration: underline; }

/* ── ACCORDION ─────────────────────────────────────────────── */
.hbshort-accordion { margin: 1.5em 0; border: 1px solid #e5e7eb; border-radius: 10px; overflow: hidden; }
.hbacc-item { border-bottom: 1px solid #e5e7eb; }
.hbacc-item:last-child { border-bottom: none; }
.hbacc-header {
  display: flex; justify-content: space-between; align-items: center;
  width: 100%; padding: 14px 18px; background: none; border: none;
  cursor: pointer; font-size: .92rem; font-weight: 600; color: #111;
  text-align: left; transition: background .14s;
}
.hbacc-header:hover  { background: #f9fafb; }
.hbacc-icon          { transition: transform .2s; color: #2563eb; font-size: 1.2rem; }
.hbacc-header[aria-expanded="true"] .hbacc-icon { transform: rotate(90deg); }
.hbacc-body          { overflow: hidden; }
.hbacc-inner         { padding: 4px 18px 16px; font-size: .88rem; line-height: 1.6; color: #4b5563; }

/* ── TABS ──────────────────────────────────────────────────── */
.hbshort-tabs { margin: 1.5em 0; }
.hbtabs-nav   { display: flex; border-bottom: 2px solid #e5e7eb; gap: 2px; flex-wrap: wrap; }
.hbtab-btn {
  padding: 9px 18px; border: none; background: none; cursor: pointer;
  font-size: .88rem; font-weight: 600; color: #6b7280;
  border-bottom: 2px solid transparent; margin-bottom: -2px; transition: color .14s, border .14s;
}
.hbtab-btn:hover  { color: #2563eb; }
.hbtab-btn.active { color: #2563eb; border-bottom-color: #2563eb; }
.hbtabs-content   { padding: 18px 0; }
.hbtab-panel      { display: none; font-size: .9rem; line-height: 1.6; }
.hbtab-panel.active { display: block; }

/* ── PROGRESS ──────────────────────────────────────────────── */
.hbshort-progress { margin: 1em 0; }
.hbprog-label { font-size: .85rem; font-weight: 600; color: #374151; margin-bottom: 6px; }
.hbprog-bar   { background: #e5e7eb; border-radius: 99px; height: 22px; overflow: hidden; }
.hbprog-fill  { height: 100%; border-radius: 99px; display: flex; align-items: center; justify-content: flex-end; padding-right: 8px; transition: width 1s ease; }
.hbprog-val   { font-size: .74rem; font-weight: 700; color: #fff; }
.hbprog-primary { background: #2563eb; }
.hbprog-success { background: #16a34a; }
.hbprog-warning { background: #d97706; }
.hbprog-danger  { background: #dc2626; }

/* ── COUNTER ───────────────────────────────────────────────── */
.hbshort-counter { display: inline-block; text-align: center; margin: 0.5em 1em; }
.hbctr-value     { font-size: 2.4rem; font-weight: 800; color: #2563eb; line-height: 1; }
.hbctr-prefix, .hbctr-suffix { font-size: 1.4rem; }
.hbctr-label     { font-size: .82rem; color: #6b7280; margin-top: 4px; }

/* ── BADGE ─────────────────────────────────────────────────── */
.hbshort-badge { display: inline-flex; align-items: center; padding: 2px 9px; border-radius: 99px; font-size: .74rem; font-weight: 700; }
.hbbadge-default { background: #f3f4f6; color: #374151; }
.hbbadge-info    { background: #dbeafe; color: #1d4ed8; }
.hbbadge-success { background: #dcfce7; color: #166534; }
.hbbadge-warning { background: #fef9c3; color: #854d0e; }
.hbbadge-danger  { background: #fee2e2; color: #991b1b; }
.hbbadge-sm { font-size: .66rem; padding: 1px 7px; }
.hbbadge-lg { font-size: .85rem; padding: 4px 12px; }

/* ── TOOLTIP ───────────────────────────────────────────────── */
.hbshort-tooltip { position: relative; cursor: help; border-bottom: 1px dashed #2563eb; }
.hbshort-tooltip::after {
  content: attr(data-tooltip);
  position: absolute; z-index: 999;
  background: #1f2937; color: #fff;
  padding: 5px 9px; border-radius: 6px;
  font-size: .78rem; white-space: nowrap; pointer-events: none;
  opacity: 0; transition: opacity .15s;
}
[data-pos="top"]   .hbshort-tooltip::after,
.hbshort-tooltip[data-pos="top"]::after    { bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%); }
.hbshort-tooltip[data-pos="bottom"]::after { top: calc(100% + 6px);    left: 50%; transform: translateX(-50%); }
.hbshort-tooltip[data-pos="left"]::after   { right: calc(100% + 6px);  top: 50%;  transform: translateY(-50%); }
.hbshort-tooltip[data-pos="right"]::after  { left:  calc(100% + 6px);  top: 50%;  transform: translateY(-50%); }
.hbshort-tooltip:hover::after { opacity: 1; }

/* ── PROS & CONS ───────────────────────────────────────────── */
.hbshort-proscons { margin: 1.5em 0; border: 1px solid #e5e7eb; border-radius: 10px; overflow: hidden; }
.hbpc-title    { padding: 12px 18px; font-weight: 700; font-size: .95rem; border-bottom: 1px solid #e5e7eb; background: #f9fafb; }
.hbpc-cols     { display: grid; grid-template-columns: 1fr 1fr; }
.hbpc-col      { padding: 14px 16px; }
.hbpc-pros     { border-right: 1px solid #e5e7eb; }
.hbpc-head     { display: flex; align-items: center; gap: 7px; font-weight: 700; font-size: .85rem; margin-bottom: 10px; }
.hbpc-pros .hbpc-head { color: #166534; }
.hbpc-cons .hbpc-head { color: #991b1b; }
.hbpc-col ul   { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.hbpc-col li   { display: flex; align-items: flex-start; gap: 7px; font-size: .88rem; line-height: 1.5; }
.hbpc-icon     { flex-shrink: 0; margin-top: 1px; }
.hbpc-pro      { color: #16a34a; }
.hbpc-con      { color: #dc2626; }
@media(max-width:500px){ .hbpc-cols { grid-template-columns: 1fr; } .hbpc-pros { border-right: none; border-bottom: 1px solid #e5e7eb; } }

/* ── CODE ──────────────────────────────────────────────────── */
.hbshort-code { margin: 1.5em 0; border-radius: 10px; overflow: hidden; border: 1px solid #374151; }
.hbcode-header { display: flex; align-items: center; gap: 8px; padding: 10px 14px; background: #1f2937; }
.hbcode-dots   { display: flex; align-items: center; gap: 6px; flex: 1; }
.hbcode-dot    { width: 11px; height: 11px; border-radius: 50%; }
.d1 { background: #ef4444; } .d2 { background: #f59e0b; } .d3 { background: #10b981; }
.hbcode-lang   { font-size: .75rem; font-weight: 600; color: #9ca3af; margin-left: 6px; }
.hbcode-copy   { background: rgba(255,255,255,.1); border: none; border-radius: 5px; padding: 4px 10px; font-size: .74rem; color: #d1d5db; cursor: pointer; display: flex; align-items: center; gap: 4px; transition: background .14s; }
.hbcode-copy:hover { background: rgba(255,255,255,.2); }
.hbcode-body   { background: #111827; overflow-x: auto; }
.hbcode-pre    { margin: 0; padding: 16px 18px; font-size: .84rem; line-height: 1.65; }
.hbcode-content { font-family: 'Fira Code', 'SF Mono', 'Consolas', monospace; color: #e2e8f0; }

/* ── STATS / CHART ─────────────────────────────────────────── */
.hbshort-stats { margin: 1.5em 0; }
.hbstats-title { font-size: 1rem; font-weight: 700; color: #111; margin-bottom: 10px; }
.hbstats-loading { display: flex; align-items: center; gap: 10px; color: #6b7280; font-size: .88rem; padding: 24px 0; }
.hbstats-spinner { width: 22px; height: 22px; border: 3px solid #dbeafe; border-top-color: #2563eb; border-radius: 50%; animation: hbSpin .7s linear infinite; }
@keyframes hbSpin { to{transform:rotate(360deg)} }

/* ── SOCIAL ────────────────────────────────────────────────── */
.hbshort-social { margin: 1.5em 0; }
.hbsoc-badge { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 99px; font-size: .76rem; font-weight: 700; margin-bottom: 8px; }
.hbsoc-yt      { background: #fee2e2; color: #991b1b; }
.hbsoc-ig      { background: #fdf2f8; color: #9d174d; }
.hbsoc-xtwitter{ background: #f3f4f6; color: #111; }

/* ── INFOBOX ───────────────────────────────────────────────── */
.hbshort-infobox {
  float: right; clear: right; margin: 0 0 16px 20px;
  width: 260px; border: 1px solid #d1d5db; border-collapse: collapse;
  font-size: .83rem; background: #f9fafb; border-radius: 8px; overflow: hidden;
}
.hbinfobox-head  { text-align: center; padding: 6px 0; }
.hbinfobox-title { font-weight: 700; font-size: .95rem; }
.hbinfobox-sub   { font-size: .78rem; color: #6b7280; }
.hbib-img-cell   { text-align: center; padding: 8px; }
.hbinfobox-img-wrap img { max-width: 100%; border-radius: 6px; }
.hbinfobox-img-cap { font-size: .74rem; color: #9ca3af; margin-top: 4px; }
.hbshort-infobox th { background: #2563eb; color: #fff; padding: 6px 10px; text-align: left; font-weight: 600; font-size: .8rem; border-bottom: 1px solid #d1d5db; }
.hbshort-infobox td { padding: 5px 10px; border-bottom: 1px solid #e5e7eb; }
.hbib-default th { background: #2563eb; }
.hbib-dark th    { background: #1f2937; }
.hbib-blue th    { background: #1d4ed8; }
@media(max-width:580px){ .hbshort-infobox { float: none; width: 100%; margin: 1em 0; } }

/* ── TIMELINE ──────────────────────────────────────────────── */
.hbshort-timeline { margin: 1.5em 0; position: relative; }
.hbshort-timeline::before { content: ''; position: absolute; left: 19px; top: 0; bottom: 0; width: 2px; background: #e5e7eb; }
.hbtl-item  { position: relative; padding-left: 50px; margin-bottom: 24px; }
.hbtl-dot   { position: absolute; left: 0; top: 3px; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; z-index: 1; }
.hbtl-dot-primary { background: #2563eb; color: #fff; }
.hbtl-dot-success { background: #16a34a; color: #fff; }
.hbtl-dot-warning { background: #d97706; color: #fff; }
.hbtl-dot-danger  { background: #dc2626; color: #fff; }
.hbtl-card  { background: #f9fafb; border: 1px solid #e5e7eb; border-radius: 8px; padding: 12px 14px; }
.hbtl-date  { font-size: .75rem; font-weight: 700; color: #2563eb; margin-bottom: 3px; }
.hbtl-title { font-size: .92rem; font-weight: 700; color: #111; margin-bottom: 6px; }
.hbtl-body  { font-size: .87rem; line-height: 1.6; color: #4b5563; }

/* ── RATING ────────────────────────────────────────────────── */
.hbshort-rating { display: inline-flex; align-items: center; gap: 8px; margin: 0.5em 0; }
.hbrating-stars { display: flex; gap: 2px; color: #f59e0b; }
.hbstar-empty   { color: #d1d5db; }
.hbrating-meta  { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.hbrating-val   { font-weight: 800; color: #111; font-size: 1rem; }
.hbrating-label   { font-size: .82rem; color: #6b7280; }
.hbrating-reviews { font-size: .78rem; color: #9ca3af; }
.hbrating-sm .hbstar { transform: scale(.8); }
.hbrating-lg .hbrating-val { font-size: 1.3rem; }

/* ── CALLOUT ───────────────────────────────────────────────── */
.hbshort-callout { display: flex; gap: 12px; margin: 1.2em 0; padding: 14px 16px; border-radius: 8px; border-left: 4px solid; }
.hbcallout-icon  { flex-shrink: 0; margin-top: 1px; }
.hbcallout-title { font-weight: 700; font-size: .9rem; margin-bottom: 4px; }
.hbcallout-body  { font-size: .88rem; line-height: 1.6; }
.hbcallout-blue   { background: #eff6ff; border-color: #2563eb; color: #1e3a5f; }
.hbcallout-green  { background: #f0fdf4; border-color: #16a34a; color: #14532d; }
.hbcallout-yellow { background: #fffbeb; border-color: #d97706; color: #78350f; }
.hbcallout-red    { background: #fef2f2; border-color: #dc2626; color: #7f1d1d; }
.hbcallout-purple { background: #faf5ff; border-color: #7c3aed; color: #3b0764; }
.hbcallout-gray   { background: #f9fafb; border-color: #9ca3af; color: #1f2937; }

/* ── DIVIDER ───────────────────────────────────────────────── */
.hbshort-divider { border: none; border-top: 1px solid #e5e7eb; }
.hbdiv-solid  { border-top-style: solid; }
.hbdiv-dashed { border-top-style: dashed; }
.hbdiv-dotted { border-top-style: dotted; }
.hbdiv-gradient { height: 2px; border: none; background: linear-gradient(90deg, transparent, #2563eb, transparent); }
.hbdiv-wave     { line-height: 0; }
.hbdiv-wave svg { width: 100%; height: 30px; color: #e5e7eb; }
.hbdiv-labeled  { display: flex; align-items: center; gap: 10px; }
.hbdiv-labeled .hbdiv-line { flex: 1; height: 0; border-top: 1px solid #e5e7eb; }
.hbdiv-label    { font-size: .8rem; color: #9ca3af; white-space: nowrap; font-weight: 600; }
