/* CR0X UI Upgrades (theme-native) */

/* progress bar */
#kb-reading-progress{
  position:fixed;left:0;top:0;width:100%;height:3px;z-index:99999;pointer-events:none;background:transparent;
}
#kb-reading-progress .bar{width:0%;height:100%;background:var(--kb-accent,#0b3342);opacity:.75;}

/* modal base */
html.kb-lock, html.kb-lock body{overflow:hidden;}
.kb-modal{display:none;}
.kb-modal.open{display:block;}
.kb-modal__backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:99990;}
.kb-modal__panel{
  position:fixed;left:50%;top:12%;transform:translateX(-50%);
  width:min(860px,calc(100% - 24px));
  border-radius:18px;
  border:1px solid rgba(0,0,0,.12);
  background:rgba(255,255,255,.98);
  z-index:99991;
  box-shadow:0 12px 40px rgba(0,0,0,.25);
  overflow:hidden;
}
.kb-modal__head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid rgba(0,0,0,.08);}
.kb-modal__body{padding:12px;}
.kb-kbdhint{opacity:.7;font-size:12px;}
.kb-modal__title{font-weight:600;}
.kb-iconbtn{
  border:1px solid rgba(0,0,0,.12);
  background:transparent;
  cursor:pointer;
  padding:8px 10px;
  border-radius:12px;
  line-height:1;
  min-height:40px;min-width:40px;
}

/* search */
#kb-search-input{
  width:100%;
  padding:12px 12px;
  border-radius:14px;
  border:1px solid rgba(0,0,0,.15);
  background:transparent;
  font:inherit;
  min-height:44px;
}
.kb-results{margin-top:10px;display:grid;gap:8px;}
.kb-result{
  display:block;
  padding:10px 12px;
  border:1px solid rgba(0,0,0,.10);
  border-radius:14px;
  text-decoration:none;
}
.kb-result:hover{background:rgba(0,0,0,.03);}
.kb-hint,.kb-empty{opacity:.72;padding:10px 2px;}

/* toast */
.kb-toast{
  position:fixed;left:50%;bottom:22px;transform:translateX(-50%);
  padding:10px 12px;border-radius:14px;background:rgba(0,0,0,.86);color:#fff;
  z-index:99999;opacity:0;pointer-events:none;transition:opacity .15s ease;
}
.kb-toast.show{opacity:1;}

/* report form */
.kb-label{display:block;margin:10px 0 6px;opacity:.8;}
#kb-report-form textarea,#kb-report-form input{
  width:100%;
  border-radius:14px;
  border:1px solid rgba(0,0,0,.15);
  padding:10px 12px;
  background:transparent;
  font:inherit;
  min-height:44px;
}
#kb-report-form textarea{min-height:120px;}
.kb-actions{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap;}
.kb-btn{
  border:1px solid rgba(0,0,0,.18);
  padding:10px 12px;
  border-radius:14px;
  background:rgba(0,0,0,.88);
  color:#fff;
  cursor:pointer;
  font:inherit;
  min-height:44px;
}
.kb-btn--ghost{background:transparent;color:inherit;}
.kb-status{margin-top:10px;opacity:.75;}

/* Header buttons */
.kb-header-right{gap:10px;}
.kb-header-actions{display:flex;gap:10px;align-items:center;}

/* touch target improvements */
.kb-site-header a{min-height:44px;display:inline-flex;align-items:center;}
.kb-site-header .kb-nav a{padding:10px 12px;}
.kb-search button{min-height:44px;padding:10px 12px;border-radius:14px;}
.kb-search input[type="search"]{min-height:44px;}

/* inline report button */
.kb-report-inline{
  display:inline-block;margin:16px 0 0;
  border:1px dashed rgba(0,0,0,.28);
  border-radius:14px;
  padding:10px 12px;
  background:transparent;
  cursor:pointer;
  font:inherit;
  opacity:.9;
  min-height:44px;
}
.kb-report-inline:hover{background:rgba(0,0,0,.03);}

/* post nav + similar */
.kb-post-nav{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0 0;}
@media(max-width:780px){.kb-post-nav{grid-template-columns:1fr;}}
.kb-navcard{
  border:1px solid rgba(0,0,0,.10);
  border-radius:18px;
  padding:12px;
  text-decoration:none;
  display:block;
}
.kb-navcap{opacity:.7;font-size:12px;}
.kb-navtitle{font-size:16px;margin-top:6px;}
.kb-similar{margin:18px 0 0;}
.kb-similar__title{font-weight:700;margin-bottom:10px;}
.kb-similar__grid{display:grid;gap:8px;}
.kb-similar__item{
  border:1px solid rgba(0,0,0,.08);
  border-radius:14px;
  padding:10px 12px;
  text-decoration:none;
  display:block;
}

/* dark mode (best-effort) */
html[data-theme="dark"] body{
  background:#0b0b0b;
  color:#e9e9e9;
}
html[data-theme="dark"] .kb-site-header{background:#0e2530;}
html[data-theme="dark"] .kb-card,
html[data-theme="dark"] .kb-article,
html[data-theme="dark"] .kb-widget,
html[data-theme="dark"] .kb-modal__panel{
  background:rgba(16,16,16,.98);
  border-color:rgba(255,255,255,.12);
}
html[data-theme="dark"] a{color:inherit;}
html[data-theme="dark"] .kb-result,
html[data-theme="dark"] .kb-navcard,
html[data-theme="dark"] .kb-similar__item,
html[data-theme="dark"] #kb-search-input,
html[data-theme="dark"] #kb-report-form textarea,
html[data-theme="dark"] #kb-report-form input,
html[data-theme="dark"] .kb-iconbtn{
  border-color:rgba(255,255,255,.12);
}
html[data-theme="dark"] .kb-result:hover,
html[data-theme="dark"] .kb-report-inline:hover{background:rgba(255,255,255,.04);}


/* === DARK MODE OVERRIDES (ui-upgrades) === */
html[data-theme="dark"] {
  color-scheme: dark;
  --kb-bg:#0b0b0b;
  --kb-text:#e7e9ea;
  --kb-muted:#8b98a5;
  --kb-border:#2f3336;
  --kb-card:#101214;
}

html[data-theme="dark"] body{
  background:var(--kb-bg);
  color:var(--kb-text);
}

html[data-theme="dark"] a{ color:inherit; }
html[data-theme="dark"] .kb-site-header{ background: #0b3342; }
html[data-theme="dark"] .kb-main{ background:transparent; }

html[data-theme="dark"] .kb-post-teaser,
html[data-theme="dark"] .kb-card,
html[data-theme="dark"] .kb-featured-card,
html[data-theme="dark"] .kb-tag-cloud,
html[data-theme="dark"] .kb-cat-card,
html[data-theme="dark"] .kb-panel,
html[data-theme="dark"] .kb-article,
html[data-theme="dark"] .kb-article-card{
  background:var(--kb-card) !important;
  border-color:var(--kb-border) !important;
  box-shadow:none !important;
}

html[data-theme="dark"] .kb-post-excerpt,
html[data-theme="dark"] .kb-article-meta,
html[data-theme="dark"] .kb-muted,
html[data-theme="dark"] .kb-mini,
html[data-theme="dark"] .kb-meta-date{
  color:var(--kb-muted) !important;
}

html[data-theme="dark"] .kb-input,
html[data-theme="dark"] input[type="search"],
html[data-theme="dark"] input[type="text"],
html[data-theme="dark"] textarea{
  background:#0f1113 !important;
  color:var(--kb-text) !important;
  border-color:var(--kb-border) !important;
}

html[data-theme="dark"] .kb-btn{
  border-color:var(--kb-border) !important;
}

html[data-theme="dark"] .kb-tag{
  background:rgba(255,255,255,.06) !important;
  border-color:rgba(255,255,255,.10) !important;
  color:var(--kb-text) !important;
}
html[data-theme="dark"] .kb-tag:hover{ background:rgba(255,255,255,.10) !important; }

html[data-theme="dark"] .kb-modal .kb-modal-body{
  background:var(--kb-card) !important;
  border-color:var(--kb-border) !important;
}
html[data-theme="dark"] .kb-modal .kb-modal-header{
  color:var(--kb-muted) !important;
}
html[data-theme="dark"] #kb-search-results a{ color:var(--kb-text) !important; }
html[data-theme="dark"] #kb-search-results .kb-search-item{ border-color:var(--kb-border) !important; }

html[data-theme="dark"] .kb-reading-progress{ background:rgba(255,255,255,.06); }
html[data-theme="dark"] .kb-reading-progress .bar{ background:rgba(255,255,255,.35); }


/* === Dark theme search bar fixes === */
html[data-theme="dark"] .kb-search{
  background:#0c141b !important;
  border-color:rgba(255,255,255,.18) !important;
}
html[data-theme="dark"] .kb-search input[type="search"]{
  background:transparent !important;
  color:rgba(255,255,255,.92) !important;
}
html[data-theme="dark"] .kb-search button{
  box-shadow:none !important;
  outline:none !important;
  border-left:1px solid rgba(255,255,255,.14) !important;
  text-shadow:none !important;
}


/* === Dark theme: vote box fixes (avoid white blocks) === */
html[data-theme="dark"] .kb-vote{
  background:var(--kb-card) !important;
  border-color:var(--kb-border) !important;
}
html[data-theme="dark"] .kb-vote-btn{
  background:transparent !important;
  border-color:var(--kb-border) !important;
  color:var(--kb-text) !important;
}
html[data-theme="dark"] .kb-vote-btn:hover{
  background:rgba(255,255,255,.05) !important;
}
html[data-theme="dark"] .kb-vote-count{
  background:rgba(255,255,255,.10) !important;
  color:var(--kb-text) !important;
}
html[data-theme="dark"] .kb-vote-msg{ color:var(--kb-muted) !important; }
html[data-theme="dark"] .kb-vote-btn.is-selected{
  border-color:var(--kb-accent,#0b3342) !important;
  box-shadow:0 0 0 3px rgba(255,255,255,.08) !important;
}
