:root{
  --bg0:#070911;
  --bg1:#0a0d16;
  --bg2:#0b0f1b;
  --panel: rgba(255,255,255,.045);
  --panel2: rgba(255,255,255,.06);
  --stroke: rgba(255,255,255,.08);
  --stroke2: rgba(255,255,255,.12);
  --text: rgba(233,238,247,.92);
  --muted: rgba(233,238,247,.70);
  --muted2: rgba(233,238,247,.55);

  --radius: 18px;
  --radius2: 14px;

  --shadow: 0 10px 34px rgba(0,0,0,.42);
  --shadow2: 0 6px 18px rgba(0,0,0,.28);

  --acc1:#4fd1c5;
  --acc2:#60a5fa;
}

*{ box-sizing: border-box; }
html, body{ height:100%; }
body{
  margin:0;
  min-height: 100vh;
  background:
    radial-gradient(1200px 500px at 70% -10%, rgba(100,120,255,.22) 0%, transparent 60%),
    radial-gradient(1000px 450px at 25% 0%, rgba(70,220,170,.18) 0%, transparent 60%),
    linear-gradient(180deg, var(--bg0), var(--bg1));
  background-attachment: fixed;
  overflow-x: hidden;
  color: var(--text);
  font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial;
  line-height: 1.45;
}


a{ color:inherit; text-decoration:none; }

/* top container */
.container{
  width: min(1320px, 96vw);
  margin: 18px auto 28px;
}

/* tabs */
.tabs{
  display:flex;
  gap: 10px;
  align-items:center;
  padding: 10px;
  border-radius: var(--radius);
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.06);
  box-shadow: var(--shadow2);
}

.tab{
  appearance:none;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(0,0,0,.18);
  color: rgba(233,238,247,.85);
  padding: 9px 12px;
  border-radius: 14px;
  cursor:pointer;
  font-weight: 750;
  letter-spacing: .2px;
  flex: 1 1 190px;
  text-align: center;
}

.tab:hover{
  border-color: rgba(255,255,255,.14);
  background: rgba(0,0,0,.22);
}

.tab.active{
  border-color: color-mix(in srgb, var(--acc1) 40%, rgba(255,255,255,.16));
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--acc1) 16%, rgba(255,255,255,.05)),
      rgba(0,0,0,.20));
  color: rgba(245,247,255,.98);
}

/* views */
.view{ display:none; margin-top: 14px; }
.view.active{ display:block; }

/* grid layout */
.grid{
  display:grid;
  grid-template-columns: 320px 1fr;
  gap: 14px;
  align-items: start;
}


@media (max-width: 980px){
  .grid{ grid-template-columns: 1fr; }
}

/* sidebar */
.sidebar{
  border-radius: var(--radius);
  background: rgba(255,255,255,.035);
  border: 1px solid rgba(255,255,255,.06);
  box-shadow: var(--shadow2);
  overflow:hidden;
}

.sidebarHeader{
  padding: 14px 14px 10px;
  display:flex;
  gap:10px;
  align-items:center;
  justify-content: space-between;
  border-bottom: 1px solid rgba(255,255,255,.06);
  background: rgba(0,0,0,.12);
}

.sidebarHeader h2{
  margin:0;
  font-size: 14px;
  letter-spacing: .4px;
  font-weight: 900;
}

.sidebarBody{
  padding: 12px;
}

.field{
  margin-bottom: 12px;
}

.field label{
  display:block;
  font-size: 12px;
  font-weight: 800;
  color: rgba(233,238,247,.78);
  margin-bottom: 6px;
}

.input, select, textarea{
  width:100%;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.22);
  color: rgba(245,247,255,.96);
  padding: 11px 12px;
  outline:none;
}

textarea{ min-height: 140px; resize: vertical; }

.input:focus, select:focus, textarea:focus{
  border-color: color-mix(in srgb, var(--acc1) 45%, rgba(255,255,255,.20));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--acc1) 20%, transparent);
}

/* chips */
.quickTags{
  display:flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0 0;
}

.chip{
  border-radius: 999px;
  padding: 7px 10px;
  font-weight: 850;
  font-size: 12px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.18);
  color: rgba(233,238,247,.80);
  cursor:pointer;
}

.chip:hover{
  border-color: rgba(255,255,255,.16);
  background: rgba(0,0,0,.22);
}

.chip.active{
  border-color: color-mix(in srgb, var(--acc1) 45%, rgba(255,255,255,.18));
  background: color-mix(in srgb, var(--acc1) 14%, rgba(0,0,0,.16));
  color: rgba(245,247,255,.98);
}

/* main panel */
.main{
  border-radius: var(--radius);
  background: rgba(255,255,255,.035);
  border: 1px solid rgba(255,255,255,.06);
  box-shadow: var(--shadow2);
  overflow:hidden;
}

.mainHeader{
  padding: 14px;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 10px;
  border-bottom: 1px solid rgba(255,255,255,.06);
  background: rgba(0,0,0,.12);
}

.row{ display:flex; align-items:center; gap: 10px; }

/* buttons */
.btn{
  appearance:none;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.18);
  color: rgba(245,247,255,.95);
  padding: 8px 12px;
  border-radius: 999px;
  cursor:pointer;
  font-weight: 850;
}

.btn:hover{
  border-color: rgba(255,255,255,.18);
  background: rgba(0,0,0,.22);
}

.btn.primary{
  border-color: color-mix(in srgb, var(--acc1) 50%, rgba(255,255,255,.20));
  background: color-mix(in srgb, var(--acc1) 14%, rgba(0,0,0,.18));
}

/* sections (Recon, Web, SMB...) */
.section{
  position:relative;
  margin: 12px;
  border-radius: var(--radius);
  background: rgba(0,0,0,.16);
  border: 1px solid rgba(255,255,255,.06);
  box-shadow: var(--shadow2);
  overflow:hidden;
}

/* remove any legacy "double borders" by forcing no outline/shadow on head */
.section *{ outline: none; }

/* single left accent bar */
.section::before{
  content:"";
  position:absolute;
  top: 10px;
  bottom: 10px;
  left: 10px;
  width: 8px;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--acc1), var(--acc2));
  opacity: .95;
}

/* subtle inner glow, not a second bar */
.section::after{
  content:"";
  position:absolute;
  inset: 0;
  background:
    radial-gradient(950px 260px at 25% 0%,
      color-mix(in srgb, var(--acc1) 18%, transparent) 0%,
      transparent 60%),
    radial-gradient(950px 260px at 75% 0%,
      color-mix(in srgb, var(--acc2) 14%, transparent) 0%,
      transparent 60%);
  pointer-events:none;
  opacity: .9;
}

/* accent mapping */
.section[data-accent="A"]{ --acc1:#ff3b7a; --acc2:#ffb86b; }
.section[data-accent="B"]{ --acc1:#4fd1c5; --acc2:#60a5fa; }
.section[data-accent="C"]{ --acc1:#a78bfa; --acc2:#22c55e; }
.section[data-accent="D"]{ --acc1:#fb7185; --acc2:#38bdf8; }
.section[data-accent="E"]{ --acc1:#f59e0b; --acc2:#f43f5e; }
.section[data-accent="F"]{ --acc1:#34d399; --acc2:#a78bfa; }
.section[data-accent="G"]{ --acc1:#60a5fa; --acc2:#f472b6; }
.section[data-accent="H"]{ --acc1:#22c55e; --acc2:#fde047; }

/* section head */
.sectionHead{
  position:relative;
  z-index: 2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 10px;
  padding: 14px 14px 12px 26px;
  cursor:pointer;
  user-select:none;
  border-bottom: 1px solid rgba(255,255,255,.06);
  background: rgba(0,0,0,.18);
}

.sectionTitle{
  display:flex;
  gap: 10px;
  flex: 1;
  align-items:center;
  font-weight: 950;
  letter-spacing: .3px;
}

.badge{
  min-width: 92px;
  text-align: center;
  display: inline-flex;
  justify-content: center;
}



.chev{
  opacity:.9;
  transition: transform .15s ease;
}

.section[data-open="false"] .chev{ transform: rotate(-90deg); }

/* section body */
.sectionBody{
  position:relative;
  z-index: 2;
  padding: 12px 14px 16px 26px;
  display:grid;
  gap: 12px;
}

/* note */
.note{
  padding: 12px 14px 12px 28px;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.06);
  background: rgba(0,0,0,.18);
  color: rgba(233,238,247,.86);
  font-style: italic;
  line-height: 1.75;
  position:relative;
}
.note::before{
  content:"";
  position:absolute;
  top: 12px;
  bottom: 12px;
  left: 14px;
  width: 3px;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--acc1), var(--acc2));
  opacity:.7;
}

/* item wrapper (Nmap, Directory fuzz...) */
.itemWrap{
  border-radius: var(--radius);
  border: 1px solid rgba(255,255,255,.06);
  background: rgba(0,0,0,.14);
  box-shadow: var(--shadow2);
  overflow:hidden;
}

.itemHeader{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 10px;
  padding: 14px 14px 10px;
  border-bottom: 1px solid rgba(255,255,255,.06);
  background: rgba(0,0,0,.16);
}

.itemHeaderTitle{
  font-weight: 950;
  letter-spacing: .2px;
}

.itemHeaderTags{
  display:flex;
  gap: 8px;
}

.tag{
  font-size: 12px;
  font-weight: 900;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.18);
  color: rgba(233,238,247,.80);
}

/* step title */
.stepTitle{
  margin: 12px 14px 0;
  padding: 12px 14px;
  border-radius: 16px;
  border: 1px solid color-mix(in srgb, var(--acc1) 26%, rgba(255,255,255,.08));
  background: color-mix(in srgb, var(--acc1) 12%, rgba(0,0,0,.14));
  font-weight: 950;
}

/* command card */
.cmdCard{
  margin: 12px 14px 14px;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.07);
  background: rgba(0,0,0,.18);
  overflow:hidden;
}

.cmdCardTop{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 12px 12px 10px;
  border-bottom: 1px solid rgba(255,255,255,.06);
}

.cmdCardTop .title{
  font-weight: 950;
  color: rgba(233,238,247,.92);
}

/* code */
.code{
  padding: 12px 12px 14px;
  background: rgba(0,0,0,.28);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: 12.5px;
  line-height: 1.85;
  color: rgba(245,247,255,.92);
}

.codeLine{ padding: 3px 0; }

/* placeholder highlight */
.ph{
  display:inline-block;
  padding: 2px 7px;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--acc1) 30%, rgba(255,255,255,.10));
  background: color-mix(in srgb, var(--acc1) 16%, rgba(0,0,0,.18));
  font-weight: 950;
  color: rgba(245,247,255,.98);
}

/* cheatsheet inner accordion */
.item{
  border-radius: var(--radius);
  border: 1px solid rgba(255,255,255,.06);
  background: rgba(0,0,0,.14);
  box-shadow: var(--shadow2);
  overflow:hidden;
}

.itemHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 14px 14px 12px;
  cursor:pointer;
  user-select:none;
  background: rgba(0,0,0,.16);
  border-bottom: 1px solid rgba(255,255,255,.06);
}

.itemName{
  font-weight: 950;
  display:flex;
  align-items:center;
  gap: 10px;
}

.itemChev{
  opacity:.9;
  transition: transform .15s ease;
}

.item[data-open="false"] .itemChev{ transform: rotate(-90deg); }

/* toast */
#toast{
  position: fixed;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.38);
  color: rgba(245,247,255,.96);
  opacity: 0;
  pointer-events:none;
  transition: opacity .15s ease;
  z-index: 999;
  box-shadow: var(--shadow2);
}

#toast.show{ opacity: 1; }

.sidebar{
  position:relative;
}

.sidebar::before{
  content:"";
  position:absolute;
  top: 10px;
  bottom: 10px;
  left: 10px;
  width: 8px;
  border-radius: 999px;
  background: linear-gradient(180deg, #4fd1c5, #60a5fa);
  opacity: .95;
}

.sidebarHeader, .sidebarBody{
  padding-left: 26px;
}

.container{
  padding-bottom: 24px;
}

@media (max-width: 980px){
  .container{
    width: min(1100px, 95vw);
  }

.tabs{
  display:flex;
  flex-wrap: wrap;
  gap: 10px;
}


  .grid{
    grid-template-columns: 1fr;
  }

  .mainHeader{
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  .mainHeader .row{
    width: 100%;
    justify-content: flex-start;
  }

  #cmdSearch{
    width: 100% !important;
  }

  .quickTags{
    width: 100%;
  }

  .section{
    margin: 10px;
  }
}

@media (max-width: 520px){
  .tab{
    flex: 1 1 auto;
    text-align: center;
  }

  .btn{
    width: 100%;
    justify-content: center;
  }

  .row{
    width: 100%;
    flex-wrap: wrap;
  }
}

/* Toolbar base */
.toolbar{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px;
}

.toolbarLeft{ display:flex; flex-direction:column; gap:4px; }
.toolbarTitle{ font-size:18px; font-weight:900; letter-spacing:.2px; }
.toolbarSub{ font-size:13px; opacity:.75; }

.toolbarRight{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
  align-items:center;
}

.btn.danger{
  border-color: rgba(255,255,255,.18);
  background: rgba(210,40,70,.14);
}

/* Select */
.selectWrap{
  display:flex;
  align-items:center;
  gap:10px;
  padding: 8px 10px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.14);
}

.selectLabel{
  font-size:12px;
  font-weight:900;
  opacity:.85;
}

.select{
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.18);
  color: rgba(233,238,247,.92);
  border-radius: 12px;
  padding: 8px 10px;
  outline: none;
}

/* Static pill */
.pillStatic{
  font-size:12px;
  font-weight:900;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.18);
  color: rgba(233,238,247,.86);
}

/* OSCP row styles */
.oscpList{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding: 10px 12px 14px 12px;
}

.oscpRow{
  display:grid;
  grid-template-columns: 20px 1fr auto;
  align-items:flex-start;
  gap:12px;
  padding:10px 10px;
  border-radius:14px;
  background: rgba(0,0,0,.14);
  border: 1px solid rgba(255,255,255,.08);
}

.oscpRow:hover{
  border-color: rgba(255,255,255,.14);
  background: rgba(0,0,0,.18);
}

.oscpCheck{
  width:18px;
  height:18px;
  margin-top:2px;
  accent-color: rgba(165,220,255,.95);
  cursor:pointer;
}

.oscpText{
  display:flex;
  flex-direction:column;
  gap:4px;
}

.oscpTitle{
  font-size:14px;
  font-weight:800;
  line-height:1.25;
}

.oscpHint{
  font-size:12px;
  line-height:1l 1.35;
  opacity:.78;
}

.oscpMeta{
  display:flex;
  gap:8px;
  align-items:center;
}

.oscpPill{
  font-size:12px;
  font-weight:900;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.18);
  color: rgba(233,238,247,.86);
  white-space:nowrap;
}

.oscpRow.done{
  background: rgba(40,140,90,.12);
  border-color: rgba(40,140,90,.22);
}

.oscpRow.done .oscpHint{ opacity:.70; }

@media (max-width: 860px){
  .toolbar{ flex-direction:column; align-items:stretch; }
  .toolbarRight{ justify-content:flex-start; }

  .oscpRow{
    grid-template-columns: 20px 1fr;
    grid-template-rows: auto auto;
  }

  .oscpMeta{
    grid-column: 1 / -1;
    justify-content:flex-start;
    padding-left:32px;
  }
}

.btnTiny {
  padding: 6px 10px;
  font-size: 12px;
  line-height: 1;
  opacity: 0.9;
}

.oscpMeta {
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: flex-end;
}
