/* R4L ImGui Demo - 1:1 clone of src/menu/ui.hpp + Menu::Initialize
   Uses Poppins + pure CSS widgets (checkbox/slider/combo/color/keybind)
   Window = 940x580, Sidebar 190, ChildRounding 10, WindowRounding 16
*/
:root{
  --ui-bg:#0D0D0F;
  --ui-sidebar:#09090B;
  --ui-card:#0E0E11;
  --ui-card-hot:#131317;
  --ui-popup:#17171A;
  --ui-text:#EBEBF0;
  --ui-text-dim:#808088;
  --ui-border:rgba(255,255,255,.09);
  --ui-border-hi:rgba(255,255,255,.18);
  --ui-track:rgba(255,255,255,.10);
  --ui-white:#FFFFFF;
  --ui-black:#0A0A0C;
  --ui-radius-win:16px;
  --ui-radius-card:10px;
  --ui-radius-frame:7px;
}

.imgui-demo-wrap{
  display:flex;
  justify-content:center;
  padding: 12px 0 8px;
}
.imgui-window{
  width:min(940px, 100%);
  height: 580px;
  display:flex;
  flex-direction:column;
  background: linear-gradient(180deg, #0E0E10 0%, #060608 100%);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--ui-radius-win);
  overflow:hidden;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.04) inset,
    0 20px 60px rgba(0,0,0,.85),
    0 8px 24px rgba(0,0,0,.6);
  font-family:"Poppins", Inter, system-ui, sans-serif;
  position:relative;
}
@media(max-width:900px){
  .imgui-window{ height:auto; min-height:560px; }
}

/* titlebar mimics outer window chrome handled by DrawMenu shadow/gradient - we keep minimal */
.imgui-titlebar{
  display:none;
}

/* body */
.imgui-body{
  display:flex;
  flex:1;
  min-height:0;
}
@media(max-width:700px){
  .imgui-body{ flex-direction:column; }
}

/* sidebar - exact replica of Menu::DrawMenu sidebar */
.imgui-sidebar{
  width:190px;
  flex-shrink:0;
  background: var(--ui-sidebar);
  border-right:1px solid rgba(255,255,255,.06);
  display:flex;
  flex-direction:column;
  padding: 0 0 12px;
  position:relative;
}
@media(max-width:700px){
  .imgui-sidebar{
    width:100%;
    flex-direction:row;
    flex-wrap:wrap;
    border-right:none;
    border-bottom:1px solid rgba(255,255,255,.06);
    padding: 12px 8px 10px;
    gap:6px;
  }
}
.imgui-brand{
  text-align:center;
  padding: 16px 12px 14px;
  border-bottom:1px solid rgba(255,255,255,.06);
  user-select:none;
}
@media(max-width:700px){ .imgui-brand{ display:none; } }
.imgui-brand-logo{
  font-family:"Poppins",sans-serif;
  font-weight:700;
  font-size:30px;
  letter-spacing:-.04em;
  line-height:1;
  color:var(--ui-white);
}
.imgui-brand-sub{
  font-family:"Poppins",sans-serif;
  font-size:11px;
  letter-spacing:.18em;
  color:var(--ui-text-dim);
  margin-top:2px;
  font-weight:500;
}
.imgui-brand-pill{
  display:inline-flex;
  margin-top:12px;
  padding:4px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  font-family:"JetBrains Mono", monospace;
  font-size:11px;
  color:var(--ui-text-dim);
  line-height:1;
}
.imgui-tabs{
  padding: 12px 4px 0;
  display:flex;
  flex-direction:column;
  gap:3px;
  flex:1;
}
@media(max-width:700px){
  .imgui-tabs{ flex-direction:row; padding:0; flex-wrap:wrap; gap:6px; }
}
.imgui-tab{
  position:relative;
  height:42px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 14px 0 16px;
  border-radius:8px;
  cursor:pointer;
  user-select:none;
  color:var(--ui-text-dim);
  font-size:14px;
  font-weight:500;
  letter-spacing:-.01em;
  transition: background .18s, color .18s, transform .18s;
  border:1px solid transparent;
  white-space:nowrap;
}
@media(max-width:700px){ .imgui-tab{ height:38px; padding:0 12px; border-radius:999px; font-size:13px;} }
.imgui-tab:hover{ background:rgba(255,255,255,.06); color:#C8C8CF; }
.imgui-tab.is-active{
  background:rgba(255,255,255,.08);
  color:var(--ui-white);
  border-color:rgba(255,255,255,.04);
}
.imgui-tab.is-active::before{
  content:"";
  position:absolute;
  left:6px; top:6px; bottom:6px;
  width:3px;
  border-radius:2px;
  background:var(--ui-white);
}
@media(max-width:700px){ .imgui-tab.is-active::before{ display:none; } }
.imgui-tab .ico{ width:18px; height:18px; display:grid; place-items:center; opacity:.9; flex-shrink:0; }
.imgui-tab.is-active .ico{ opacity:1; }
.imgui-tab .ico svg{ width:16px; height:16px; stroke:currentColor; }

.imgui-sidebar-foot{
  padding:12px;
  font-family:"JetBrains Mono", monospace;
  font-size:10px;
  color:rgba(255,255,255,.28);
  letter-spacing:.06em;
  text-transform:uppercase;
  display:flex;
  align-items:center;
  gap:8px;
  border-top:1px solid rgba(255,255,255,.05);
  margin-top:auto;
}
.imgui-sidebar-foot::before{
  content:""; width:6px; height:6px; border-radius:50%; background:#4ade80; box-shadow:0 0 8px rgba(74,222,128,.6);
  flex-shrink:0;
}
@media(max-width:700px){ .imgui-sidebar-foot{ display:none; } }

/* content */
.imgui-content{
  flex:1;
  min-width:0;
  background: var(--ui-bg);
  padding:12px;
  overflow:auto;
  scrollbar-width:thin;
  scrollbar-color: rgba(255,255,255,.16) transparent;
}
.imgui-content::-webkit-scrollbar{ width:4px; height:4px; }
.imgui-content::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.16); border-radius:999px; }
.imgui-content::-webkit-scrollbar-track{ background:transparent; }

.imgui-panel{ display:none; animation: imguiIn .22s cubic-bezier(.22,1,.36,1); }
.imgui-panel.is-active{ display:block; }
@keyframes imguiIn{ from{opacity:0; transform:translateY(4px)} to{opacity:1; transform:none} }

/* cards - exact ui::card_begin */
.ui-card{
  background: var(--ui-card);
  border:1px solid var(--ui-border);
  border-radius: var(--ui-radius-card);
  padding:14px 12px;
  margin-bottom:10px;
}
.ui-card:last-child{ margin-bottom:0; }
.ui-section{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:10px;
  padding-bottom:8px;
  border-bottom:1px solid rgba(255,255,255,.06);
  font-family:"Poppins",sans-serif;
  font-weight:600;
  font-size:15px;
  color:var(--ui-text);
  letter-spacing:-.01em;
}
.ui-section .ico{ color:var(--ui-white); display:grid; place-items:center; flex-shrink:0; }
.ui-section .ico svg{ width:16px; height:16px; stroke:currentColor; }
.ui-section::after{
  content:""; flex:1; height:1px; background: var(--ui-border); margin-left:12px;
}
.ui-desc{
  font-size:12.5px;
  line-height:1.55;
  color:var(--ui-text-dim);
  margin:-4px 0 12px;
  font-weight:400;
}

/* grid like ui::grid_next */
.ui-grid{ display:grid; grid-template-columns:1fr 1fr; gap:7px 12px; }
@media(max-width:560px){ .ui-grid{ grid-template-columns:1fr; } }
.ui-grid-1{ display:grid; grid-template-columns:1fr; gap:7px; }

/* checkbox - replica ui::checkbox 17px box 5rad */
.ui-check{
  display:flex;
  align-items:center;
  gap:8px;
  height:22px;
  cursor:pointer;
  user-select:none;
  font-size:13px;
  color:#A8A8B0;
  transition: color .15s;
}
.ui-check:hover{ color:var(--ui-text); }
.ui-check.is-checked{ color:var(--ui-text); }
.ui-check-box{
  width:17px; height:17px;
  border-radius:5px;
  border:1.2px solid rgba(255,255,255,.22);
  background:transparent;
  display:grid; place-items:center;
  flex-shrink:0;
  transition: background .18s, border-color .18s, transform .18s;
  position:relative;
}
.ui-check:hover .ui-check-box{ border-color: rgba(255,255,255,.45); }
.ui-check.is-checked .ui-check-box{
  background: var(--ui-white);
  border-color: var(--ui-white);
}
.ui-check-box svg{ width:11px; height:11px; stroke:#0A0A0C; stroke-width:2.4; fill:none; opacity:0; transform:scale(.7); transition: all .18s cubic-bezier(.22,1,.36,1); }
.ui-check.is-checked .ui-check-box svg{ opacity:1; transform:scale(1); }
.ui-check-label{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:400; }
.ui-check.has-color{ gap:6px; }
.ui-color{
  position:relative;
  width:20px; height:20px; border-radius:5px;
  border:1px solid rgba(255,255,255,.14);
  background:#0a0a0c;
  padding:2px;
  cursor:pointer;
  flex-shrink:0;
  display:grid; place-items:center;
  transition: border-color .15s, transform .15s;
}
.ui-color:hover{ border-color:rgba(255,255,255,.5); transform:scale(1.04); }
.ui-color i{ width:100%; height:100%; border-radius:3px; display:block; }

/* slider - replica ui::slider */
.ui-slider{
  margin-top:6px;
  height:36px;
  position:relative;
  cursor:pointer;
  user-select:none;
}
.ui-slider-head{
  display:flex; align-items:center; justify-content:space-between;
  font-size:12.5px;
  color:var(--ui-text-dim);
  line-height:1;
  margin-bottom:10px;
}
.ui-slider-head b{ color:var(--ui-text); font-weight:500; font-family:"JetBrains Mono", monospace; font-size:12px; }
.ui-slider-track{
  position:absolute; left:0; right:0; bottom:7px; height:4px;
  background: var(--ui-track);
  border-radius:2px;
  overflow:visible;
}
.ui-slider-fill{
  position:absolute; left:0; top:0; bottom:0;
  background: var(--ui-white);
  border-radius:2px;
  pointer-events:none;
  transition: background .12s;
}
.ui-slider:hover .ui-slider-fill{ background: #FFFFFF; box-shadow:0 0 10px rgba(255,255,255,.18); }
.ui-slider-grab{
  position:absolute; top:50%; width:12px; height:12px; margin-top:-6px; margin-left:-6px;
  border-radius:50%;
  background: var(--ui-white);
  box-shadow: 0 0 0 3px rgba(0,0,0,.35), 0 1px 6px rgba(0,0,0,.5);
  transition: transform .12s, box-shadow .12s;
  pointer-events:none;
}
.ui-slider:hover .ui-slider-grab{ transform:scale(1.15); }
.ui-slider.is-dragging .ui-slider-grab{ transform:scale(1.25); }

/* combo - replica ui::combo 50% width right-aligned */
.ui-combo{
  display:flex; align-items:center; justify-content:space-between;
  height:28px;
  gap:8px;
  margin-top:2px;
}
.ui-combo-label{ font-size:13px; color:var(--ui-text-dim); font-weight:400; flex:1; min-width:0; }
.ui-combo-btn{
  flex: 0 0 52%;
  max-width:52%;
  height:28px;
  display:flex; align-items:center; justify-content:space-between;
  gap:8px;
  padding:0 10px 0 12px;
  background: rgba(255,255,255,.045);
  border:1px solid var(--ui-border);
  border-radius:7px;
  cursor:pointer;
  font-size:13px;
  color:var(--ui-text);
  transition: border-color .15s, background .15s;
  position:relative;
}
.ui-combo-btn:hover{ border-color: var(--ui-border-hi); background: rgba(255,255,255,.07); }
.ui-combo-btn svg{ width:12px; height:12px; flex-shrink:0; opacity:.55; }
.ui-combo-list{
  position:absolute; left:0; right:0; top:calc(100% + 6px);
  background: #0F0F12;
  border:1px solid rgba(255,255,255,.10);
  border-radius:10px;
  padding:6px;
  z-index:20;
  display:none;
  box-shadow:0 16px 40px rgba(0,0,0,.7);
  max-height:180px; overflow:auto;
}
.ui-combo.is-open .ui-combo-list{ display:block; }
.ui-combo-opt{
  padding:8px 10px;
  border-radius:6px;
  font-size:13px; color:#A8A8B2; cursor:pointer;
}
.ui-combo-opt:hover{ background: rgba(255,255,255,.06); color:var(--ui-white); }
.ui-combo-opt.is-sel{ background:rgba(255,255,255,.09); color:var(--ui-white); }

/* keybind row - replica ui::keybind_row */
.ui-kb-row{
  display:flex; align-items:center; justify-content:space-between;
  height:26px; margin-top:4px;
}
.ui-kb-label{ font-size:13px; color:var(--ui-text-dim); }
.ui-kb-btn{
  min-width:116px; height:22px;
  display:inline-flex; align-items:center; justify-content:center;
  padding:0 10px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  border-radius:6px;
  font-family:"JetBrains Mono", monospace;
  font-size:11px; letter-spacing:.04em;
  color:var(--ui-text-dim);
  cursor:pointer;
  transition: all .15s;
  text-transform:uppercase;
}
.ui-kb-btn:hover{ background:rgba(255,255,255,.10); color:var(--ui-text); border-color:rgba(255,255,255,.18); }
.ui-kb-btn.is-listening{ background:var(--ui-white); color:var(--ui-black); border-color:var(--ui-white); animation: kbPulse 1s ease-in-out infinite; }
@keyframes kbPulse{ 0%,100%{opacity:1} 50%{opacity:.75} }

/* color popup */
.ui-color-pop{
  position:absolute; left:50%; top:calc(100% + 8px); transform:translateX(-50%);
  background:#111113; border:1px solid rgba(255,255,255,.10); border-radius:10px;
  padding:10px; z-index:30; display:none; box-shadow:0 16px 40px rgba(0,0,0,.7);
  width:220px;
}
.ui-color-pop.is-open{ display:block; }
.ui-color-grid{ display:grid; grid-template-columns:repeat(8,1fr); gap:6px; }
.ui-color-grid i{ width:22px; height:22px; border-radius:5px; cursor:pointer; border:1px solid rgba(255,255,255,.06); transition: transform .12s, border-color .12s; }
.ui-color-grid i:hover{ transform:scale(1.08); border-color:rgba(255,255,255,.35); }
.ui-color-input{ width:100%; margin-top:8px; height:28px; border-radius:6px; border:1px solid rgba(255,255,255,.08); background:transparent; cursor:pointer; }

/* button - replica ui::button */
.ui-btn{
  width:100%; height:30px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:7px;
  font-size:13px; font-weight:500;
  cursor:pointer;
  transition: all .15s;
  border:1px solid transparent;
  user-select:none;
}
.ui-btn-accent{ background:var(--ui-white); color:var(--ui-black); }
.ui-btn-accent:hover{ background:#EDEDEF; transform:translateY(-1px); }
.ui-btn-ghost{ background:rgba(255,255,255,.06); color:var(--ui-text-dim); border-color:var(--ui-border); }
.ui-btn-ghost:hover{ background:rgba(255,255,255,.09); color:var(--ui-text); border-color:var(--ui-border-hi); }
.ui-btn-sm{ height:26px; font-size:12.5px; }
.ui-row2{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }

/* input - for config name */
.ui-input{
  width:100%; height:30px;
  background:rgba(255,255,255,.04);
  border:1px solid var(--ui-border);
  border-radius:7px;
  padding:0 12px;
  color:var(--ui-text);
  font-size:13px;
  outline:none;
  transition: border-color .15s, background .15s;
}
.ui-input:focus{ border-color:rgba(255,255,255,.20); background:rgba(255,255,255,.06); }
.ui-input::placeholder{ color:var(--ui-text-dim); }

/* config list like menu.cpp config list */
.ui-list{
  margin-top:10px;
  border:1px solid var(--ui-border);
  border-radius:8px;
  overflow:hidden;
  background:rgba(0,0,0,.18);
  max-height:150px; overflow:auto;
}
.ui-list-empty{ padding:18px; text-align:center; font-size:13px; color:var(--ui-text-dim); }
.ui-list-item{
  padding:9px 12px;
  font-size:13px; color:#A8A8B2;
  cursor:pointer; display:flex; align-items:center; justify-content:space-between;
  border-bottom:1px solid rgba(255,255,255,.04);
  transition: background .12s, color .12s;
}
.ui-list-item:last-child{ border-bottom:none; }
.ui-list-item:hover{ background:rgba(255,255,255,.04); color:var(--ui-text); }
.ui-list-item.is-sel{ background:rgba(255,255,255,.08); color:var(--ui-white); }
.ui-list-item small{ font-family:"JetBrains Mono", monospace; font-size:10px; color:var(--ui-text-dim); }

/* hint bar */
.imgui-hint{
  margin-top:10px;
  display:flex; align-items:center; gap:8px;
  padding:8px 10px;
  background:rgba(255,255,255,.03);
  border:1px solid var(--ui-border);
  border-radius:8px;
  font-size:11px; color:var(--ui-text-dim);
  font-family:"JetBrains Mono", monospace;
}
.imgui-hint b{ color:var(--ui-text); font-weight:600; }
.imgui-hint kbd{ display:inline-flex; padding:2px 6px; border-radius:4px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.10); font-size:10px; }

/* drag hint for window */
.imgui-window.is-dragging{ cursor:grabbing; }
