/* ════════════════════════════════════════════════════
   DA.OS — Kali Linux Desktop Theme
════════════════════════════════════════════════════ */

/* ── Monitor off + shutdown terminal ────────────── */
#monitor-off {
  position:fixed; inset:0;
  background:#000;
  z-index:9999; pointer-events:none; opacity:0;
  transition:opacity .25s ease-in, background .15s;
}
#monitor-off.mon-active  { opacity:1 }
#monitor-off.mon-white   { background:#fff }

/* Kali desktop power-off: surge de brillo → corte a negro */
#kali-desktop.powering-off {
  animation: kali-poweroff .38s ease-in forwards;
}
@keyframes kali-poweroff {
  0%   { filter: brightness(1) }
  30%  { filter: brightness(2.8) saturate(0) }
  55%  { filter: brightness(0) saturate(0) }
  100% { filter: brightness(0) saturate(0); opacity: 0 }
}

#shutdown-terminal {
  position:absolute; inset:0;
  padding:clamp(24px,5vh,60px) clamp(28px,6vw,80px);
  display:flex; flex-direction:column; justify-content:flex-end; gap:1px;
  font-family:'JetBrains Mono',monospace; font-size:clamp(.62rem,.9vw,.78rem);
  line-height:1.7; overflow:hidden;
  transition:opacity .2s;
}
#monitor-off.mon-white #shutdown-terminal { opacity:0 }
.sd-line { color:rgba(230,237,243,.75); animation:sd-in .08s both }
.sd-ok   { color:#4ec94e }
.sd-warn { color:#f97316; font-weight:600 }
.sd-dim  { color:rgba(230,237,243,.38) }
@keyframes sd-in { from{opacity:0;transform:translateX(-6px)} to{opacity:1;transform:none} }

.mon-off-line {
  position:absolute; inset:0;
  background:#fff;
  box-shadow:0 0 60px 18px rgba(255,255,255,.9);
  transform:scaleY(0.004); transform-origin:50% 50%;
  opacity:0;
  transition:transform .38s cubic-bezier(.7,0,1,1), opacity .15s;
}
#monitor-off.mon-white .mon-off-line { opacity:1; transform:scaleY(1) }
.mon-off-line.mon-show       { opacity:1 !important; transform:scaleY(1) }
.mon-off-line.mon-contracted { opacity:1 !important; transform:scaleY(0.004) !important }
.mon-off-line.mon-hidden     { opacity:0 !important; transition:opacity .15s !important }
:root {
  --kb:   #0d1117;
  --kb2:  #161b22;
  --kb3:  #21262d;
  --kacc: #367bf0;
  --kg:   #30a14e;
  --kr:   #da3633;
  --ky:   #f0883e;
  --kw:   #e6edf3;
  --kdim: rgba(230,237,243,.45);
  --kbdr: rgba(230,237,243,.12);
  --kbar: rgba(0,0,0,.88);
  --km:   'JetBrains Mono', monospace;
  --ksans:'Inter', system-ui, sans-serif;
  --ease: cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0 }
html,body { width:100%; height:100%; overflow:hidden }
body { background:#000; font-family:var(--ksans); font-size:1rem; color:var(--kw) }
a { color:inherit; text-decoration:none }
button { background:none; border:none; font-family:var(--ksans); cursor:pointer }
.mono { font-family:var(--km) }

/* ── Wallpaper ──────────────────────────────────── */
#kali-desktop {
  position:fixed; inset:0;
  display:flex; flex-direction:column;
  overflow:hidden;
}
#kali-bg {
  position:absolute; inset:0;
  background: url('../assets/kali-bg.webp') center/cover no-repeat;
  z-index:0;
  will-change:transform;
  /* fade in once loaded */
  animation:bg-fadein .6s ease both;
}
@keyframes bg-fadein { from{opacity:0} to{opacity:1} }
#kali-vignette {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 60% 40%, transparent 30%, rgba(0,0,0,.45) 100%);
  z-index:1; pointer-events:none;
}

/* ── XFCE Top Panel ─────────────────────────────── */
#kali-panel {
  position:relative; z-index:500;
  height:30px;
  background:rgba(22,24,32,.97);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(255,255,255,.04);
  display:flex; align-items:center; justify-content:space-between;
  padding:0 6px; flex-shrink:0;
  box-shadow:0 2px 8px rgba(0,0,0,.5);
}
.kp-left, .kp-right { display:flex; align-items:center; gap:2px }
.kp-left { flex:1; min-width:0 }

/* Menu button (Kali dragon) */
.kp-menu-btn {
  width:28px; height:28px;
  display:flex; align-items:center; justify-content:center;
  font-size:.88rem; color:rgba(100,180,255,.85);
  border-radius:4px; cursor:pointer;
  transition:background .12s, color .12s;
}
.kp-menu-btn:hover { background:rgba(255,255,255,.10); color:#fff }
.kp-menu-btn.open  { background:rgba(54,123,240,.25); color:var(--kacc) }

/* Panel separator */
.kp-panel-sep {
  width:1px; height:16px;
  background:rgba(255,255,255,.10); margin:0 4px;
}

/* Quick launchers */
.kp-launch {
  width:24px; height:26px;
  display:flex; align-items:center; justify-content:center;
  font-size:.72rem; color:rgba(230,237,243,.65);
  border-radius:3px; cursor:pointer;
  transition:background .12s, color .12s;
}
.kp-launch:hover { background:rgba(255,255,255,.10); color:#fff }

/* Workspace switcher */
.kp-workspaces {
  display:flex; gap:1px; margin:0 4px;
}
.kp-ws {
  width:18px; height:18px;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--km); font-size:.52rem; font-weight:600;
  color:rgba(230,237,243,.4); cursor:pointer;
  border:1px solid rgba(255,255,255,.08);
  border-radius:2px;
  transition:background .12s, color .12s;
}
.kp-ws:hover    { background:rgba(255,255,255,.10); color:#fff }
.kp-ws-active   { background:rgba(54,123,240,.35); color:var(--kacc); border-color:rgba(54,123,240,.5) }

/* Active window title */
.kp-wintitle {
  font-size:.58rem; color:rgba(230,237,243,.45);
  margin-left:8px; letter-spacing:.03em;
  overflow:hidden; white-space:nowrap; text-overflow:ellipsis;
  max-width:280px;
}

/* System tray icons */
.kp-tray {
  font-size:.72rem; color:rgba(230,237,243,.6);
  padding:0 5px; cursor:pointer;
  transition:color .12s;
}
.kp-tray:hover    { color:#fff }
.kp-tray-acc      { color:var(--kg) }

/* Clock */
.kp-clock { display:flex; align-items:center }
.kp-time {
  font-family:var(--km); font-size:.7rem;
  font-weight:500; color:rgba(230,237,243,.85);
  letter-spacing:.04em; white-space:nowrap;
}

/* ── App Menu dropdown ───────────────────────────── */
#kali-appmenu {
  position:fixed; top:30px; left:0;
  width:430px;
  background:rgba(20,22,30,.98);
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  border:1px solid rgba(255,255,255,.08);
  border-top:none;
  border-radius:0 0 8px 0;
  box-shadow:4px 4px 24px rgba(0,0,0,.6);
  z-index:600;
  display:none; flex-direction:column;
  overflow:hidden;
}
#kali-appmenu.open { display:flex }

.kam-search {
  display:flex; align-items:center; gap:8px;
  padding:8px 12px;
  border-bottom:1px solid rgba(255,255,255,.06);
  background:rgba(255,255,255,.03);
}
.kam-search-icon { font-size:.72rem; color:rgba(230,237,243,.35); flex-shrink:0 }
.kam-input {
  flex:1; background:none; border:none; outline:none;
  font-family:var(--ksans); font-size:.82rem; color:var(--kw);
  caret-color:var(--kacc);
}
.kam-input::placeholder { color:rgba(230,237,243,.28) }

.kam-body { display:flex; flex:1; overflow:hidden; min-height:0; max-height:400px }
.kam-cats {
  width:188px; flex-shrink:0;
  background:rgba(255,255,255,.02);
  border-right:1px solid rgba(255,255,255,.06);
  overflow-y:auto; padding:4px 0;
  scrollbar-width:none;
}
.kam-cat {
  display:flex; align-items:center; gap:8px;
  font-size:.72rem; color:rgba(230,237,243,.5);
  padding:7px 12px; cursor:pointer;
  transition:background .10s, color .10s;
}
.kam-cat i { font-size:.65rem; width:12px; text-align:center; flex-shrink:0; color:rgba(230,237,243,.3) }
.kam-cat:hover  { background:rgba(255,255,255,.06); color:var(--kw) }
.kam-cat.active { background:rgba(54,123,240,.18); color:var(--kw) }
.kam-cat.active i { color:var(--kacc) }
.kam-cat-sep { height:1px; background:rgba(255,255,255,.06); margin:3px 0 }

.kam-apps { flex:1; overflow-y:auto; padding:4px 0; scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.08) transparent }
.kam-app {
  display:flex; align-items:center; gap:10px;
  padding:8px 14px; cursor:pointer;
  transition:background .10s;
}
.kam-app:hover { background:rgba(255,255,255,.07) }
.kam-app-icon { font-size:1rem; width:22px; text-align:center; color:var(--kacc); flex-shrink:0 }
.kam-app-name { font-size:.78rem; color:var(--kw); line-height:1.2 }
.kam-app-sub  { font-size:.52rem; color:rgba(230,237,243,.35); font-family:var(--km); letter-spacing:.04em }

.kam-footer {
  display:flex; align-items:center; justify-content:space-between;
  padding:8px 12px;
  border-top:1px solid rgba(255,255,255,.07);
  background:rgba(255,255,255,.02);
}
.kam-user {
  display:flex; align-items:center; gap:7px;
  font-size:.72rem; color:rgba(230,237,243,.5); font-family:var(--km);
}
.kam-footer-btns { display:flex; gap:4px }
.kam-footer-btn {
  width:26px; height:26px;
  display:flex; align-items:center; justify-content:center;
  font-size:.7rem; color:rgba(230,237,243,.45);
  border-radius:4px; cursor:pointer;
  transition:background .12s, color .12s;
}
.kam-footer-btn:hover { background:rgba(255,255,255,.09); color:var(--kw) }

/* ── Desktop icons area ─────────────────────────── */
#kali-icons-area {
  position:relative; z-index:2;
  flex:1; overflow:hidden;
}
#kali-icons {
  position:relative;
  width:100%; height:100%;
}
.ki-loading {
  position:absolute; top:40px; left:20px;
  color:var(--kdim); font-size:.62rem; letter-spacing:.2em;
  display:flex; align-items:center; gap:8px;
}

/* Desktop icon */
.kali-icon {
  position:absolute;
  display:flex; flex-direction:column; align-items:center;
  gap:5px; width:88px; padding:8px 6px;
  border-radius:6px; cursor:pointer;
  transition:background .15s;
  user-select:none;
}
.kali-icon:hover    { background:rgba(255,255,255,.10) }
.kali-icon.selected { background:rgba(54,123,240,.30); outline:1px solid rgba(54,123,240,.5) }
.kali-icon.ki-dragging {
  cursor:grabbing; z-index:10;
  opacity:.88; background:rgba(255,255,255,.10);
  transition:none;
}

/* ── Context Menu ───────────────────────────────── */
#kali-ctxmenu {
  position:fixed; z-index:1000;
  background:rgba(22,25,33,.97);
  backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.10);
  border-radius:6px;
  box-shadow:0 8px 32px rgba(0,0,0,.7), 0 2px 8px rgba(0,0,0,.5);
  padding:4px 0; min-width:216px;
  display:none; overflow:hidden;
}
#kali-ctxmenu.open { display:block; animation:ctxmenu-appear .12s var(--ease) both }
.kcm-item {
  display:flex; align-items:center; gap:10px;
  padding:7px 14px;
  font-size:.76rem; color:var(--kw);
  cursor:pointer;
  transition:background .08s;
}
.kcm-item:hover { background:rgba(54,123,240,.30) }
.kcm-item i { font-size:.68rem; width:14px; text-align:center; color:var(--kacc); flex-shrink:0 }
.kcm-item.kcm-dim { color:rgba(230,237,243,.42) }
.kcm-item.kcm-dim i { color:rgba(54,123,240,.45) }
.kcm-item.kcm-dim:hover { background:rgba(255,255,255,.05) }
.kcm-sep { height:1px; background:rgba(255,255,255,.08); margin:3px 0 }
@keyframes ctxmenu-appear {
  from { opacity:0; transform:scale(.95) translateY(-4px) }
  to   { opacity:1; transform:none }
}
#kali-icon-ctxmenu {
  position:fixed; z-index:1000;
  background:rgba(22,25,33,.97);
  backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.10);
  border-radius:6px;
  box-shadow:0 8px 32px rgba(0,0,0,.7), 0 2px 8px rgba(0,0,0,.5);
  padding:4px 0; min-width:216px;
  display:none; overflow:hidden;
}
#kali-icon-ctxmenu.open { display:block; animation:ctxmenu-appear .12s var(--ease) both }
.kcm-item.kcm-danger { color:#e06c75 }
.kcm-item.kcm-danger i { color:#e06c75 }
.kcm-item.kcm-danger:hover { background:rgba(224,108,117,.18) }

/* ── Kali toast ─────────────────────────────────── */
#kali-toast {
  position:fixed; bottom:44px; left:50%; transform:translateX(-50%);
  z-index:2000;
  background:rgba(22,25,33,.97);
  border:1px solid rgba(255,255,255,.12);
  border-radius:6px;
  padding:9px 16px 9px 12px;
  display:flex; align-items:center; gap:10px;
  font-family:'JetBrains Mono',monospace; font-size:.65rem;
  color:rgba(230,237,243,.75);
  box-shadow:0 8px 32px rgba(0,0,0,.7);
  pointer-events:none;
  opacity:0; transition:opacity .25s;
  max-width:420px;
}
#kali-toast.show { opacity:1 }
#kali-toast i { color:var(--kacc); flex-shrink:0 }
#kali-toast-title { color:#e6edf3; font-weight:600; margin-right:6px }

/* ── About Kali panel ───────────────────────────── */
#kali-about {
  position:fixed; inset:0; z-index:1500;
  display:flex; align-items:center; justify-content:center;
  background:rgba(0,0,0,.55);
  backdrop-filter:blur(6px);
  opacity:0; pointer-events:none; transition:opacity .2s;
}
#kali-about.show { opacity:1; pointer-events:all }
#kali-about-box {
  background:#0c0c0f;
  border:1px solid rgba(255,255,255,.10);
  border-radius:8px;
  padding:28px 32px;
  font-family:'JetBrains Mono',monospace;
  font-size:.7rem; line-height:1.8;
  color:#e6edf3;
  box-shadow:0 32px 80px rgba(0,0,0,.85);
  max-width:520px; width:100%;
  white-space:pre;
}

.ki-folder {
  width:52px; height:42px; flex-shrink:0;
}
.ki-folder svg { width:100%; height:100%; display:block }

.ki-label {
  font-size:.5rem; text-align:center; color:var(--kw);
  line-height:1.35; word-break:break-word;
  text-shadow:0 1px 4px rgba(0,0,0,.9);
  max-width:84px;
  overflow:hidden; display:-webkit-box;
  -webkit-line-clamp:2; -webkit-box-orient:vertical;
}

/* ── Files Window ───────────────────────────────── */
.kali-win {
  position:absolute;
  top:44px; left:50%; transform:translateX(-50%);
  width:min(840px, calc(100vw - 32px));
  height:calc(100vh - 96px);
  background:var(--kb);
  border:1px solid rgba(255,255,255,.10);
  border-radius:10px;
  box-shadow:0 28px 80px rgba(0,0,0,.85), 0 0 0 1px rgba(255,255,255,.04);
  display:none; flex-direction:column;
  overflow:hidden;
  z-index:300;
}
.kali-win.open { display:flex; animation:win-appear .28s var(--ease) both }

/* ── Title bar ────────────────────────────────── */
.kali-titlebar {
  height:30px; flex-shrink:0;
  background:#1c1f26;
  border-bottom:1px solid rgba(255,255,255,.05);
  display:flex; align-items:center; padding:0 10px; gap:8px;
  user-select:none; cursor:default;
}
.kali-win-btns { display:flex; gap:6px; align-items:center; flex-shrink:0 }
.kwb {
  width:12px; height:12px; border-radius:50%; cursor:pointer;
  transition:filter .15s; flex-shrink:0;
}
.kwb-close { background:var(--kr) }
.kwb-min   { background:var(--ky) }
.kwb-max   { background:var(--kg) }
.kwb:hover { filter:brightness(1.25) }
.kali-win-title {
  flex:1; text-align:center;
  font-size:.58rem; color:rgba(230,237,243,.4);
  letter-spacing:.08em;
}
.kwt-r { width:56px; display:flex; justify-content:flex-end }
.kali-pin-btn { font-size:.62rem; color:rgba(230,237,243,.2); cursor:pointer; transition:color .15s }
.kali-pin-btn:hover { color:var(--kacc) }

/* ── GNOME Header bar ─────────────────────────── */
.kali-headerbar {
  height:40px; flex-shrink:0;
  background:var(--kb2);
  border-bottom:1px solid rgba(255,255,255,.06);
  display:flex; align-items:center; padding:0 8px; gap:6px;
}
.khb-nav { display:flex; gap:2px; flex-shrink:0 }
.khb-btn {
  width:28px; height:28px;
  display:flex; align-items:center; justify-content:center;
  font-size:.65rem; color:rgba(230,237,243,.45);
  border-radius:5px; cursor:pointer;
  transition:background .12s, color .12s;
}
.khb-btn:hover:not(:disabled) { background:rgba(255,255,255,.08); color:var(--kw) }
.khb-btn:disabled { opacity:.28; cursor:default }
.khb-btn.khb-on { color:var(--kacc); background:rgba(54,123,240,.14) }

.khb-path {
  flex:1; display:flex; align-items:center; gap:2px;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.08);
  border-radius:5px; padding:4px 10px;
  font-size:.6rem; color:rgba(230,237,243,.55);
  overflow:hidden; min-width:0;
}
.khb-crumb { cursor:pointer; transition:color .12s; white-space:nowrap }
.khb-crumb:hover { color:var(--kw) }
.khb-crumb.khb-active { color:var(--kw); font-weight:500 }
.khb-sep { color:rgba(230,237,243,.2); margin:0 1px }

.khb-right { display:flex; align-items:center; gap:2px; flex-shrink:0 }
.khb-vline { width:1px; height:16px; background:rgba(255,255,255,.1); margin:0 4px }

/* ── Embedded Terminal Panel ─────────────────── */
.kterm-panel {
  flex-shrink: 0;
  height: 0;
  overflow: hidden;
  display: flex; flex-direction: column;
  background: #0c0c0f;
  border-top: 1px solid rgba(255,255,255,.06);
  transition: height .28s cubic-bezier(.16,1,.3,1);
  position: relative;
}
.kterm-panel.open { height: 220px }
.kterm-panel.open ~ .kali-statusbar { border-top: none }

.kterm-resize-handle {
  position: absolute; top: 0; left: 0; right: 0;
  height: 4px; cursor: ns-resize; z-index: 10;
  background: transparent;
  transition: background .15s;
}
.kterm-resize-handle:hover { background: rgba(54,123,240,.35) }

.kterm-bar {
  height: 28px; flex-shrink: 0;
  background: #161b22;
  border-bottom: 1px solid rgba(255,255,255,.06);
  display: flex; align-items: center; gap: 8px;
  padding: 0 10px;
}
.kterm-bar-icon { font-size: .6rem; color: #30a14e; flex-shrink: 0 }
.kterm-bar-title {
  font-size: .55rem; letter-spacing: .1em;
  color: rgba(230,237,243,.35); flex: 1;
}
.kterm-bar-btns { display: flex; gap: 2px }
.kterm-bar-btn {
  width: 22px; height: 22px; border-radius: 4px;
  display: flex; align-items: center; justify-content: center;
  color: rgba(230,237,243,.3); font-size: .58rem;
  transition: background .12s, color .12s;
  background: none; border: none; cursor: pointer;
}
.kterm-bar-btn:hover { background: rgba(255,255,255,.08); color: #e6edf3 }

.kterm-body {
  flex: 1; overflow-y: auto; overflow-x: hidden;
  padding: 8px 14px 4px;
  font-family: 'JetBrains Mono', monospace;
  font-size: .66rem; line-height: 1.65;
  color: #e6edf3;
  scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.07) transparent;
}
.kterm-body > div { margin-bottom: 1px }

.kterm-input-row {
  flex-shrink: 0;
  padding: 2px 14px 8px;
  border-top: 1px solid rgba(255,255,255,.04);
}
.kterm-ps1-wrap { display: flex; flex-direction: column }
.kterm-ps1-top {
  font-size: .62rem; line-height: 1.5;
  color: #30a14e; pointer-events: none;
}
.kterm-ps1-bot-row { display: flex; align-items: center }
.kterm-ps1-bot { color: #30a14e; font-size: .62rem; white-space: nowrap; margin-right: 3px }
.kterm-inp {
  flex: 1; min-width: 0; background: transparent;
  border: none; outline: none;
  color: #e6edf3; font-size: .62rem;
  caret-color: #30a14e; padding: 0;
}
.kterm-inp::placeholder { color: rgba(230,237,243,.18) }

/* ── khb-term-toggle active state ─────────────── */
#khb-term-toggle.khb-on { color: #30a14e }

/* ── Status bar ───────────────────────────────── */
.kali-statusbar {
  height:26px; flex-shrink:0;
  background:#1c1f26;
  border-top:1px solid rgba(255,255,255,.05);
  display:flex; align-items:center; padding:0 12px; gap:12px;
}
.ksb-info { font-size:.52rem; color:rgba(230,237,243,.38); letter-spacing:.06em }
.ksb-mid  { flex:1 }
.ksb-right { font-size:.52rem; color:rgba(230,237,243,.28); letter-spacing:.06em }

.kali-win-body { display:flex; flex:1; overflow:hidden; min-height:0 }

.kali-sidebar {
  width:158px; flex-shrink:0;
  background:var(--kb2);
  border-right:1px solid rgba(255,255,255,.06);
  padding:10px 5px;
  display:flex; flex-direction:column; gap:2px;
  overflow-y:auto;
}
.ks-sect {
  font-size:.42rem; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(230,237,243,.28); padding:5px 10px 3px;
}
.ks-sep { height:1px; background:rgba(255,255,255,.07); margin:6px 0 }
.ks-item {
  display:flex; align-items:center; gap:8px;
  font-size:.76rem; color:var(--kdim);
  padding:7px 10px; border-radius:5px;
  transition:background .12s, color .12s; cursor:pointer;
}
.ks-item i { font-size:.7rem; width:12px; text-align:center; color:var(--kacc); flex-shrink:0 }
.ks-item:hover  { background:rgba(255,255,255,.06); color:var(--kw) }
.ks-item.active { background:rgba(54,123,240,.18); color:var(--kw) }

.kali-content {
  flex:1; overflow-y:auto; overflow-x:hidden;
  padding:26px 30px;
  scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.1) transparent;
}

/* ── Project detail ─────────────────────────────── */
.kf-empty {
  display:flex; align-items:center; justify-content:center;
  height:100%; color:rgba(230,237,243,.2);
  font-size:.6rem; letter-spacing:.2em; text-transform:uppercase;
}

/* Hero header */
.kf-hero {
  margin:-26px -30px 0; padding:28px 30px 24px;
  position:relative; overflow:hidden;
  border-bottom:1px solid rgba(255,255,255,.07);
}
.kf-hero-bg {
  position:absolute; inset:0;
  background:var(--hero-grad);
}
.kf-hero-pattern {
  position:absolute; inset:0;
  background-image: repeating-linear-gradient(0deg,transparent,transparent 24px,rgba(255,255,255,.02) 24px,rgba(255,255,255,.02) 25px),
                    repeating-linear-gradient(90deg,transparent,transparent 24px,rgba(255,255,255,.02) 24px,rgba(255,255,255,.02) 25px);
  pointer-events:none;
}
.kf-hero-inner { position:relative; z-index:1 }
.kf-hero-top { display:flex; align-items:flex-start; gap:14px; margin-bottom:12px }
.kf-hero-icon { width:46px; height:38px; flex-shrink:0; margin-top:2px }
.kf-hero-icon svg { width:100%; height:100% }
.kf-name {
  font-size:clamp(1.5rem,2.8vw,2rem); font-weight:600;
  letter-spacing:-.022em; color:var(--kw); line-height:1.05; margin-bottom:5px;
}
.kf-lang-badge {
  display:inline-flex; align-items:center; gap:5px;
  font-family:var(--km); font-size:.48rem;
  letter-spacing:.16em; text-transform:uppercase;
  padding:3px 10px; border-radius:100px;
  background:var(--badge-bg, rgba(54,123,240,.25));
  color:var(--badge-col, #367bf0);
  border:1px solid var(--badge-bdr, rgba(54,123,240,.4));
}
.kf-lang-dot-sm { width:7px; height:7px; border-radius:50%; flex-shrink:0 }
.kf-hero-stats {
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
  font-family:var(--km); font-size:.52rem;
  color:rgba(230,237,243,.45); letter-spacing:.06em;
}
.kf-hero-stats span { display:flex; align-items:center; gap:5px }
.kf-hero-stats i { font-size:.56rem }

/* Properties grid */
.kf-props {
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:1px; background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.07);
  border-radius:7px; overflow:hidden;
  margin:20px 0;
}
.kf-prop {
  display:flex; align-items:center; justify-content:space-between;
  padding:9px 14px; background:var(--kb);
  gap:8px;
}
.kfp-key {
  font-family:var(--km); font-size:.5rem;
  letter-spacing:.12em; text-transform:uppercase;
  color:rgba(230,237,243,.35);
}
.kfp-val {
  font-family:var(--km); font-size:.58rem;
  color:var(--kw); text-align:right;
}

/* Section */
.kf-section { margin-bottom:22px }
.kf-section-title {
  font-family:var(--km); font-size:.5rem;
  letter-spacing:.18em; text-transform:uppercase;
  color:rgba(230,237,243,.35);
  margin-bottom:10px; display:flex; align-items:center; gap:7px;
}
.kf-section-title::after {
  content:''; flex:1; height:1px;
  background:rgba(255,255,255,.07);
}
.kf-desc {
  font-size:.9rem; color:rgba(230,237,243,.7);
  line-height:1.85;
}
.kf-topics { display:flex; flex-wrap:wrap; gap:6px }
.kf-topic {
  font-family:var(--km); font-size:.46rem;
  letter-spacing:.1em; text-transform:uppercase;
  padding:4px 11px; border-radius:100px;
  border:1px solid rgba(255,255,255,.12); color:rgba(230,237,243,.55);
  transition:border-color .2s, color .2s, background .2s;
}
.kf-topic:hover { border-color:var(--kacc); color:var(--kacc); background:rgba(54,123,240,.10) }
.kf-actions { display:flex; gap:10px; flex-wrap:wrap }
.kf-btn-gh {
  display:flex; align-items:center; gap:8px;
  font-family:var(--km); font-size:.58rem; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase;
  background:var(--kacc); color:#fff;
  padding:9px 20px; border-radius:5px; transition:background .2s;
}
.kf-btn-gh:hover { background:#2563eb }
.kf-btn-demo {
  display:flex; align-items:center; gap:8px;
  font-family:var(--km); font-size:.58rem;
  letter-spacing:.12em; text-transform:uppercase;
  border:1px solid rgba(255,255,255,.13); color:rgba(230,237,243,.55);
  padding:9px 20px; border-radius:5px; transition:border-color .2s, color .2s;
}
.kf-btn-demo:hover { border-color:var(--kacc); color:var(--kacc) }

/* README */
.kf-readme {
  padding:14px 16px;
  background:rgba(255,255,255,.025);
  border:1px solid rgba(255,255,255,.07);
  border-radius:6px;
  font-size:.76rem; line-height:1.85;
  color:rgba(230,237,243,.55); word-break:break-word;
  max-height:240px; overflow-y:auto;
  scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.08) transparent;
}
.kf-readme:empty { display:none }
.kf-readme h1,.kf-readme h2,.kf-readme h3 { font-size:.82rem; color:rgba(230,237,243,.9); margin:.6em 0 .3em }

/* ── Project folder grid inside file manager ────── */
.kf-proj-grid {
  display:flex; flex-wrap:wrap; gap:8px 6px;
  padding:4px 0;
}
.kf-proj-folder {
  display:flex; flex-direction:column; align-items:center;
  width:86px; padding:8px 4px 6px;
  border-radius:7px; cursor:pointer;
  border:1px solid transparent;
  transition:background .12s, border-color .12s;
  animation:ki-in .3s both;
}
.kf-proj-folder:hover {
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.1);
}
.kf-pf-selected {
  background:rgba(54,123,240,.18) !important;
  border-color:rgba(54,123,240,.45) !important;
}
.kf-pf-icon { pointer-events:none; line-height:0 }
.kf-pf-label {
  font-family:var(--km); font-size:.52rem;
  color:rgba(230,237,243,.75); text-align:center;
  margin-top:5px; line-height:1.3;
  max-width:80px; word-break:break-word;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}

/* ── Category folder icon overlay ───────────────── */
.ki-cat-folder { position:relative }
.ki-cat-icon {
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  font-size:1.1rem; padding-top:6px;
  pointer-events:none; z-index:1;
}
.ki-cat-count {
  position:absolute; top:3px; right:2px;
  font-family:var(--km); font-size:.42rem; font-weight:700;
  background:rgba(0,0,0,.55); color:rgba(230,237,243,.7);
  padding:2px 5px; border-radius:3px;
  pointer-events:none; z-index:2;
}

/* ── Category header in file manager ────────────── */
.kf-cat-header {
  display:flex; align-items:center; gap:14px;
  padding:0 0 18px; margin-bottom:18px;
  border-bottom:1px solid rgba(255,255,255,.07);
}
.kf-cat-header-icon {
  width:44px; height:44px; border-radius:10px;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1);
  display:flex; align-items:center; justify-content:center; font-size:1.25rem; flex-shrink:0;
}
.kf-cat-title { font-size:1.05rem; font-weight:700; color:rgba(230,237,243,.95); line-height:1.2 }
.kf-cat-subtitle { font-family:var(--km); font-size:.5rem; color:rgba(230,237,243,.35); letter-spacing:.1em }

.kf-prop-full { grid-column:1/-1 }
.kfp-link { color:#64ffda; text-decoration:underline; font-size:.72rem }

/* ── Language tags ───────────────────────────────── */
.kf-lang-tags { display:flex; flex-wrap:wrap; gap:6px }
.kf-lang-tag {
  display:inline-flex; align-items:center; gap:5px;
  font-family:var(--km); font-size:.52rem; font-weight:600;
  padding:4px 10px; border-radius:100px;
  background:color-mix(in srgb, var(--lc) 12%, transparent);
  border:1px solid color-mix(in srgb, var(--lc) 35%, transparent);
  color:var(--lc);
}
.kf-lang-tag-dot {
  width:6px; height:6px; border-radius:50%;
  background:var(--lc); flex-shrink:0;
}
.kf-lang-tag-pct {
  font-weight:400; opacity:.6; font-size:.46rem;
}
.kf-lang-tag-loading {
  font-family:var(--km); font-size:.52rem;
  color:rgba(230,237,243,.25); animation:pulse 1.2s ease infinite;
}
@keyframes pulse { 0%,100%{opacity:.25} 50%{opacity:.6} }
.kf-readme p  { margin:.4em 0 }
.kf-readme code { font-family:var(--km); font-size:.65rem; background:rgba(255,255,255,.07); padding:1px 5px; border-radius:3px; color:#64ffda }
.kf-readme pre { font-family:var(--km); font-size:.6rem; background:rgba(0,0,0,.3); padding:8px 10px; border-radius:4px; overflow-x:auto }
.kf-readme ul,.kf-readme ol { padding-left:1.2em; margin:.3em 0 }
.kf-readme a { color:#64ffda }

/* Recent sidebar items */
.ks-recent-item {
  display:flex; align-items:center; gap:8px;
  font-size:.72rem; color:var(--kdim);
  padding:5px 10px; border-radius:5px;
  cursor:pointer; transition:background .12s, color .12s;
  overflow:hidden; white-space:nowrap; text-overflow:ellipsis;
}
.ks-recent-item:hover { background:rgba(255,255,255,.06); color:var(--kw) }
.ks-recent-item.ks-active { background:rgba(54,123,240,.18); color:var(--kw) }
.ks-recent-item .ks-rdot { width:7px; height:7px; border-radius:50%; flex-shrink:0 }

/* ── Dock ───────────────────────────────────────── */
#kali-dock {
  position:relative; z-index:200;
  height:54px; flex-shrink:0;
  background:var(--kbar);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  border-top:1px solid rgba(255,255,255,.06);
  display:flex; align-items:center; justify-content:center; gap:4px;
}
.kd-item {
  width:38px; height:38px;
  display:flex; align-items:center; justify-content:center;
  font-size:1rem; color:var(--kdim);
  border-radius:8px;
  transition:background .15s, color .15s, transform .18s var(--ease);
}
.kd-item:hover { background:rgba(255,255,255,.10); color:var(--kw); transform:translateY(-4px) }
.kd-sep { width:1px; height:22px; background:rgba(255,255,255,.12) }

/* ── Boot overlay ───────────────────────────────── */
#boot-overlay {
  position:fixed; inset:0; z-index:9999;
  background:#000; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:16px;
  transition:opacity .6s;
}
#boot-overlay.out { opacity:0; pointer-events:none }
#boot-crt { display:none }
.boot-logo {
  font-family:var(--km); font-size:1.8rem;
  letter-spacing:.22em; color:var(--kacc);
  text-shadow:0 0 28px rgba(54,123,240,.55);
}
.boot-kali-sub {
  font-family:var(--km); font-size:.5rem;
  letter-spacing:.3em; text-transform:uppercase;
  color:rgba(54,123,240,.5);
}
#boot-log { font-family:var(--km); font-size:.56rem; color:rgba(230,237,243,.35); min-height:80px; text-align:center }
#boot-bar-wrap { display:flex; align-items:center; gap:10px }
#boot-bar { width:160px; height:1px; background:rgba(255,255,255,.12) }
#boot-fill { height:100%; background:var(--kacc); width:0%; transition:width .12s }
#boot-pct { font-family:var(--km); font-size:.48rem; color:var(--kdim); min-width:28px }

/* ── Animations ─────────────────────────────────── */
@keyframes ki-appear {
  from { opacity:0; transform:scale(.88) translateY(5px) }
  to   { opacity:1; transform:none }
}
.kali-icon { animation:ki-appear .3s var(--ease) both }

@keyframes win-appear {
  from { opacity:0; transform:translateX(-50%) scale(.97) translateY(6px) }
  to   { opacity:1; transform:translateX(-50%) scale(1) translateY(0) }
}

/* ── Drag ───────────────────────────────────────── */
.kali-win.dragging { transition:none }

/* ── Responsive ─────────────────────────────────── */
@media (max-width:600px) {
  #kali-icons { flex-direction:row; flex-wrap:wrap; align-content:flex-start; height:auto }
  .kali-icon  { width:72px }
  .kali-sidebar { display:none }
  .kali-win { width:calc(100vw - 16px); left:8px; transform:none }
  @keyframes win-appear {
    from { opacity:0; transform:scale(.97) translateY(6px) }
    to   { opacity:1; transform:none }
  }
}

/* ── Kali Terminal (in-window interactive shell) ──── */
.kali-term-wrap {
  position:absolute; inset:0;
  display:flex; flex-direction:column;
  background:#0d0d11;
  font-family:var(--km); font-size:.68rem; line-height:1.72;
}
.kali-term-body {
  flex:1; overflow-y:auto; padding:14px 18px 6px;
  scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.08) transparent;
}
.kali-term-row {
  display:flex; align-items:center; flex-wrap:wrap; gap:0;
  padding:6px 18px 14px; flex-shrink:0;
  border-top:1px solid rgba(255,255,255,.04);
}
.kali-term-ps1 { color:#30a14e; flex-shrink:0; line-height:1.4; white-space:nowrap }
.kali-term-input {
  flex:1; min-width:40px;
  background:transparent; border:none; outline:none;
  color:#e6edf3; font-family:var(--km); font-size:.68rem;
  caret-color:#30a14e; padding:0; cursor:text;
}
.kterm-ln { color:#e6edf3; margin-bottom:1px; word-break:break-all }
.ktp-g  { color:#30a14e }
.ktp-b  { color:var(--kacc) }
.ktc-cmd  { color:#e6edf3 }
.ktc-dim  { color:rgba(230,237,243,.32) }
.ktc-sha  { color:#f0883e; font-weight:600 }
.ktc-dir  { color:var(--kacc) }
.ktc-file { color:#30a14e }
.ktc-err  { color:var(--kr) }
.ktc-readme {
  margin-top:6px; font-size:.61rem; line-height:1.65;
  color:rgba(230,237,243,.55); white-space:pre-wrap; word-break:break-word;
  border-left:2px solid rgba(54,123,240,.3); padding-left:10px;
  max-height:260px; overflow-y:auto;
  scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.08) transparent;
}

/* ── Sticky Notes (terminal style) ──────────────── */
.da-sticky {
  position:absolute;
  width:220px; min-height:80px;
  background:#0a0d12;
  border:1px solid rgba(48,161,78,.38);
  border-radius:6px;
  box-shadow:0 12px 40px rgba(0,0,0,.72), 0 0 0 1px rgba(48,161,78,.08);
  font-family:'JetBrains Mono',monospace;
  font-size:.67rem;
  z-index:300;
  animation:sticky-in .18s ease;
  overflow:hidden;
}
@keyframes sticky-in {
  from { opacity:0; transform:scale(.88) translateY(8px); }
  to   { opacity:1; transform:scale(1)  translateY(0); }
}
.da-sticky-head {
  display:flex; align-items:center; justify-content:space-between;
  padding:5px 8px;
  background:#0f1419;
  border-bottom:1px solid rgba(48,161,78,.22);
  cursor:move; user-select:none;
}
.da-sticky-id {
  color:#30a14e; font-weight:700; font-size:.6rem; letter-spacing:.04em;
}
.da-sticky-close {
  background:none; border:none; padding:0;
  color:rgba(230,237,243,.35); font-family:inherit; font-size:.6rem;
  cursor:pointer; line-height:1; transition:color .12s;
}
.da-sticky-close:hover { color:#e06c75; }
.da-sticky-body {
  padding:10px 10px 12px;
  color:#c9d1d9; line-height:1.65;
  white-space:pre-wrap; word-break:break-word;
}
