/*
Theme Name: SoftVault
Theme URI: 
Author: 
Description: A dark, terminal-styled software download / app directory theme. Converted from a custom HTML/CSS/JS design. Includes a custom "Apps" post type so software listings can be managed from the WordPress dashboard.
Version: 1.0
Requires at least: 5.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: softvault
*/

:root{
  --bg:#0b0f14;
  --bg-alt:#10161d;
  --panel:#141b23;
  --line:#22303c;
  --text:#e8edf2;
  --text-dim:#8ea1b0;
  --accent:#4fd1c5;      /* teal-cyan, terminal glow */
  --accent-2:#ffb454;    /* amber tag */
  --danger:#ff6b6b;
  --radius:10px;
  --mono:'JetBrains Mono', monospace;
  --display:'Space Grotesk', sans-serif;
  --body:'Inter', sans-serif;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--body);
  line-height:1.5;
  background-image:
    radial-gradient(circle at 15% 0%, rgba(79,209,197,0.08), transparent 40%),
    radial-gradient(circle at 85% 20%, rgba(255,180,84,0.05), transparent 40%);
}
a{color:inherit; text-decoration:none;}
::selection{background:var(--accent); color:#00201c;}

/* ---------- Top bar ---------- */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(11,15,20,0.85);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav{
  max-width:1180px; margin:0 auto; padding:16px 24px;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.logo{
  font-family:var(--mono); font-weight:700; font-size:1.2rem;
  display:flex; align-items:center; gap:8px; letter-spacing:-0.5px;
}
.logo .dot{width:9px; height:9px; border-radius:50%; background:var(--accent); box-shadow:0 0 10px var(--accent);}
.nav-links{display:flex; gap:28px; font-size:0.92rem; color:var(--text-dim);}
.nav-links li{list-style:none; margin:0;}
.nav-links a:hover{color:var(--text);}
.nav-cta{
  font-family:var(--mono); font-size:0.82rem; padding:8px 16px;
  border:1px solid var(--accent); color:var(--accent); border-radius:6px;
}
.nav-cta:hover{background:var(--accent); color:#00201c;}

/* ---------- Hero ---------- */
.hero{
  max-width:1180px; margin:0 auto; padding:72px 24px 48px;
  display:grid; grid-template-columns:1.1fr 0.9fr; gap:48px; align-items:center;
}
.eyebrow{
  font-family:var(--mono); font-size:0.78rem; color:var(--accent);
  letter-spacing:1.5px; text-transform:uppercase; margin-bottom:18px;
  display:flex; align-items:center; gap:10px;
}
.eyebrow::before{content:''; width:24px; height:1px; background:var(--accent);}
h1{
  font-family:var(--display); font-weight:700; font-size:clamp(2.2rem, 4.2vw, 3.4rem);
  line-height:1.08; letter-spacing:-1.2px; margin-bottom:20px;
}
h1 span{color:var(--accent);}
.hero p.sub{color:var(--text-dim); font-size:1.05rem; max-width:480px; margin-bottom:32px;}

.search-box{
  display:flex; align-items:center; gap:10px;
  background:var(--panel); border:1px solid var(--line); border-radius:10px;
  padding:14px 16px; max-width:520px;
}
.search-box input{
  flex:1; background:transparent; border:none; outline:none; color:var(--text);
  font-family:var(--mono); font-size:0.95rem;
}
.search-box input::placeholder{color:var(--text-dim);}
.search-box .kbd{
  font-family:var(--mono); font-size:0.72rem; color:var(--text-dim);
  border:1px solid var(--line); border-radius:4px; padding:2px 6px;
}

.hero-stats{display:flex; gap:28px; margin-top:28px; font-family:var(--mono);}
.hero-stats div{border-left:2px solid var(--accent); padding-left:12px;}
.hero-stats b{display:block; font-size:1.3rem; color:var(--text);}
.hero-stats span{font-size:0.75rem; color:var(--text-dim);}

/* ---------- Terminal signature card ---------- */
.terminal{
  background:#080b0e; border:1px solid var(--line); border-radius:12px;
  box-shadow:0 20px 60px rgba(0,0,0,0.5), 0 0 0 1px rgba(79,209,197,0.05);
  overflow:hidden;
}
.terminal-bar{
  display:flex; align-items:center; gap:8px; padding:10px 14px;
  background:var(--bg-alt); border-bottom:1px solid var(--line);
}
.terminal-bar span{width:10px; height:10px; border-radius:50%;}
.terminal-bar .r{background:#ff5f56;} .terminal-bar .y{background:#ffbd2e;} .terminal-bar .g{background:#27c93f;}
.terminal-bar .title{margin-left:8px; font-family:var(--mono); font-size:0.75rem; color:var(--text-dim);}
.terminal-body{padding:20px; font-family:var(--mono); font-size:0.85rem; color:#c9d6de; min-height:220px;}
.terminal-body .line{margin-bottom:8px;}
.terminal-body .prompt{color:var(--accent);}
.terminal-body .ok{color:#27c93f;}
.bar-track{background:#1a2530; height:6px; border-radius:3px; margin:6px 0 14px; overflow:hidden;}
.bar-fill{height:100%; width:0%; background:linear-gradient(90deg, var(--accent), #37b8ab); border-radius:3px; transition:width 2.4s cubic-bezier(.2,.7,.3,1);}
.cursor{display:inline-block; width:7px; height:14px; background:var(--accent); animation:blink 1s step-end infinite; vertical-align:middle;}
@keyframes blink{50%{opacity:0;}}

/* ---------- Category chips ---------- */
.categories{
  max-width:1180px; margin:0 auto; padding:8px 24px 40px;
  display:flex; flex-wrap:wrap; gap:10px;
}
.chip{
  font-family:var(--mono); font-size:0.82rem; padding:8px 16px;
  border:1px solid var(--line); border-radius:999px; color:var(--text-dim);
  cursor:pointer; transition:all .15s ease; background:var(--panel);
}
.chip:hover{border-color:var(--accent); color:var(--text);}
.chip.active{background:var(--accent); color:#00201c; border-color:var(--accent); font-weight:600;}

/* ---------- Grid ---------- */
main{max-width:1180px; margin:0 auto; padding:0 24px 80px;}
.section-head{display:flex; justify-content:space-between; align-items:baseline; margin-bottom:22px;}
.section-head h2{font-family:var(--display); font-size:1.5rem; letter-spacing:-0.5px;}
.section-head span{font-family:var(--mono); font-size:0.8rem; color:var(--text-dim);}

.grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(260px,1fr)); gap:18px;
  align-items:start;
}
.card{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
  padding:20px; display:flex; flex-direction:column; gap:12px;
  transition:transform .18s ease, border-color .18s ease;
  position:relative; overflow:hidden;
}
.card:hover{transform:translateY(-3px); border-color:rgba(79,209,197,0.4);}
.card-top{display:flex; gap:12px; align-items:center;}
.icon{
  width:46px; height:46px; border-radius:10px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--mono); font-weight:700; font-size:1.05rem;
  color:#00201c;
}
.icon.has-image{background:transparent; padding:0; overflow:hidden;}
.icon.has-image img{width:100%; height:100%; object-fit:cover; border-radius:10px; display:block;}
.card h3{font-family:var(--display); font-size:1.05rem;}
.card .meta{font-family:var(--mono); font-size:0.72rem; color:var(--text-dim);}
.card p.desc{color:var(--text-dim); font-size:0.86rem; flex:1;}
.tag-new{
  position:absolute; top:14px; right:14px; font-family:var(--mono); font-size:0.65rem;
  background:rgba(255,180,84,0.15); color:var(--accent-2); padding:3px 8px; border-radius:5px;
  letter-spacing:0.5px;
}
.card-foot{display:flex; align-items:center; justify-content:space-between; margin-top:4px;}
.rating{font-size:0.78rem; color:var(--text-dim); font-family:var(--mono);}
.rating b{color:var(--accent-2);}
.dl-btn{
  font-family:var(--mono); font-size:0.78rem; font-weight:600; padding:9px 14px;
  background:var(--accent); color:#00201c; border:none; border-radius:6px; cursor:pointer;
  display:flex; align-items:center; gap:6px; transition:background .15s ease;
}
.dl-btn:hover{background:#3fc0b3;}
.dl-btn.done{background:#27c93f;}

.empty{
  text-align:center; padding:60px 20px; color:var(--text-dim); font-family:var(--mono); display:none;
}

/* ---------- Prompt Book ---------- */
.prompt-card{justify-content:flex-start;}
.prompt-card > *{flex-shrink:0;}
.prompt-images{display:flex; flex-direction:column; gap:4px; margin-bottom:2px;}
.prompt-images img{width:100%; aspect-ratio:9/16; object-fit:cover; border-radius:6px; display:block; flex-shrink:0;}
.prompt-tags{display:flex; gap:6px; flex-wrap:wrap;}
.prompt-tag{
  font-family:var(--mono); font-size:0.65rem; text-transform:uppercase; letter-spacing:0.4px;
  background:rgba(79,209,197,0.12); color:var(--accent); padding:4px 9px; border-radius:5px;
}
.prompt-tag.tool{background:rgba(255,180,84,0.12); color:var(--accent-2);}
.prompt-text{
  color:var(--text-dim); font-size:0.82rem; line-height:1.5; white-space:pre-line;
  background:var(--bg); border:1px solid var(--line); border-radius:8px; padding:10px 12px;
  min-height:calc(6em + 20px); overflow:hidden;
  display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical;
}
.prompt-text.expanded{min-height:0; height:auto; -webkit-line-clamp:unset; display:block; overflow:visible;}
.prompt-actions{display:flex; gap:10px;}
.copy-btn{flex:1; justify-content:center;}
.copy-btn.copied{background:#27c93f;}
.read-btn{
  background:transparent; border:1px solid var(--line); color:var(--text-dim);
  font-family:var(--mono); font-size:0.78rem; font-weight:600; padding:9px 14px;
  border-radius:6px; cursor:pointer; transition:all .15s ease; white-space:nowrap;
}
.read-btn:hover{border-color:var(--accent); color:var(--text);}

footer{
  border-top:1px solid var(--line); padding:32px 24px; text-align:center;
  color:var(--text-dim); font-size:0.82rem; font-family:var(--mono);
}

@media (max-width:860px){
  .hero{grid-template-columns:1fr;}
  .nav-links{display:none;}
}
:focus-visible{outline:2px solid var(--accent); outline-offset:2px;}
@media (prefers-reduced-motion: reduce){
  *{animation:none !important; transition:none !important;}
}
