/* ============================================================
   dashboard.css — styles for the browse/dashboard page
   ============================================================ */

/* HERO */
.hero{
  position:relative;
  overflow:hidden;
  padding:2.5rem 2rem 2.5rem;
  min-height:420px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}

.hero-geo{
  position:absolute;
  inset:0;
  pointer-events:none;
}

.hero-geo svg{
  width:100%;
  height:100%;
}

.hero-content{
  position:relative;
  z-index:1;
}

.hero-eyebrow{
  font-family:'Space Mono',monospace;
  font-size:10px;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:#00c8e8;
  margin-bottom:0.6rem;
}

.hero h1{
  font-size:32px;
  font-weight:300;
  color:#f0f6ff;
  letter-spacing:-0.01em;
  margin-bottom:0.4rem;
}

.hero-sub{
  font-size:13px;
  color:#7888aa;
  font-weight:300;
  margin-bottom:1.75rem;
}

/* SEARCH */
.search-wrap{
  position:relative;
  max-width:560px;
  margin-bottom:1.25rem;
}

.search-input{
  width:100%;
  background:#0e1525;
  border:1px solid #1e2a40;
  border-radius:8px;
  padding:12px 16px;
  font-size:13px;
  color:#e0eeff;
  font-family:'Sora',sans-serif;
  outline:none;
  transition:border-color 0.2s;
}

.search-input:focus{
  border-color:#00c8e8;
}

.search-input::placeholder{
  color:#3a4a68;
}

/* FILTER TAGS */
.filter-row{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.filter-tag{
  font-family:'Space Mono',monospace;
  font-size:10px;
  letter-spacing:0.08em;
  padding:5px 13px;
  border-radius:4px;
  cursor:pointer;
  border:1px solid #1e2a40;
  color:#7888aa;
  background:transparent;
  transition:all 0.15s;
}

.filter-tag:hover{
  border-color:#3a4a68;
  color:#b0bcd8;
}

.filter-tag.active{
  background:#003d50;
  border-color:#006880;
  color:#00c8e8;
}

/* MAIN LAYOUT */
.main-layout{
  display:grid;
  grid-template-columns:1fr 300px;
  gap:2rem;
  padding:2rem 2rem 3rem;
  align-items:start;
}

.section-label{
  font-family:'Space Mono',monospace;
  font-size:10px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:#8898b8;
  margin-bottom:1rem;
}

/* LAB CARDS */
.lab-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:20px;
  margin-bottom:2.5rem;
}

.lab-card{
  border-radius:10px;
  padding:1.5rem;
  cursor:pointer;
  transition:transform 0.15s,border-color 0.2s;
}

.lab-card:hover{
  transform:translateY(-2px);
}

.card-cyan{background:#003d50;border:1px solid #006880;}
.card-cyan:hover{border-color:#00c8e8;}
.card-indigo{background:#1a1d45;border:1px solid #3040a0;}
.card-indigo:hover{border-color:#909fff;}
.card-rose{background:#2a1030;border:1px solid #601040;}
.card-rose:hover{border-color:#e060a0;}
.card-done{background:#0e1525;border:1px solid #1e2a40;}
.card-done:hover{border-color:#3a4a68;}

.lab-card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:0.75rem;
}

.lab-tag{
  font-family:'Space Mono',monospace;
  font-size:10px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:#7888aa;
}

.badge{
  font-size:10px;
  padding:3px 9px;
  border-radius:4px;
  font-family:'Space Mono',monospace;
  letter-spacing:0.06em;
}

.badge-cyan{background:#005870;color:#00c8e8;}
.badge-indigo{background:#252870;color:#909fff;}
.badge-rose{background:#501030;color:#e060a0;}
.badge-done{background:#1e2a40;color:#7888aa;}
.badge-new{background:#003828;border:1px solid #006840;color:#00e8a0;}

.lab-card h3{
  font-size:14px;
  font-weight:500;
  margin-bottom:0.5rem;
  line-height:1.4;
  color:#e0eeff;
}

.card-done h3{color:#c0d0e8;}

.lab-card p{
  font-size:12px;
  font-weight:300;
  line-height:1.6;
  color:#9aabcb;
}

.card-done p{color:#9aabcb;}

.progress-bar-wrap{
  margin-top:1rem;
  background:#252870;
  border-radius:2px;
  height:2px;
}

.progress-bar-fill{
  height:2px;
  border-radius:2px;
  background:#909fff;
}

.lab-card-footer{
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:0.85rem;
}

.difficulty{
  font-family:'Space Mono',monospace;
  font-size:9px;
  letter-spacing:0.08em;
  color:#4a5a78;
  text-transform:uppercase;
}

.dot-sep{
  width:3px;
  height:3px;
  border-radius:50%;
  background:#1e2a40;
}

/* SANDBOX */
.sandbox-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:20px;
  margin-bottom:2.5rem;
}

.sandbox-card{
  border-radius:10px;
  padding:1.5rem;
  cursor:pointer;
  transition:transform 0.15s,border-color 0.2s;
  border:1px solid #1e2a40;
  background:#0a0e1a;
  position:relative;
  overflow:hidden;
}

.sandbox-card:hover{
  transform:translateY(-2px);
  border-color:#3a4a68;
}

.sandbox-glow{
  position:absolute;
  top:-30px;
  right:-30px;
  width:100px;
  height:100px;
  border-radius:50%;
  opacity:0.07;
  pointer-events:none;
}

.glow-cyan{background:#00c8e8;}
.glow-indigo{background:#909fff;}
.glow-rose{background:#e060a0;}
.glow-green{background:#00e8a0;}

.sandbox-pill{
  display:inline-block;
  background:#003828;
  border:1px solid #006840;
  color:#00e8a0;
  font-family:'Space Mono',monospace;
  font-size:9px;
  letter-spacing:0.06em;
  padding:2px 8px;
  border-radius:3px;
  margin-bottom:0.75rem;
  position:relative;
}

.sandbox-card h3{
  font-size:14px;
  font-weight:500;
  color:#e0eeff;
  margin-bottom:0.5rem;
  position:relative;
}

.sandbox-card p{
  font-size:12px;
  color:#7888aa;
  line-height:1.6;
  font-weight:300;
  position:relative;
}

.sandbox-label{
  font-family:'Space Mono',monospace;
  font-size:9px;
  letter-spacing:0.08em;
  color:#4a5a78;
  text-transform:uppercase;
  margin-top:0.85rem;
  display:block;
  position:relative;
}

/* RIGHT SIDEBAR */
.right-col{
  display:flex;
  flex-direction:column;
  gap:1.25rem;
}

.side-card{
  background:#0e1220;
  border:1px solid #1c2235;
  border-radius:10px;
  padding:1.4rem;
}

.side-card-label{
  font-family:'Space Mono',monospace;
  font-size:10px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:#8898b8;
  margin-bottom:1rem;
}

.stats-stack{
  display:flex;
  flex-direction:column;
}

.stat-row-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:8px 0;
}

.stat-divider{
  height:1px;
  background:#131828;
}

.stat-row-label{
  font-size:13px;
  color:#9aabcb;
}

.stat-row-val{
  font-family:'Space Mono',monospace;
  font-size:14px;
  color:#e8f0ff;
}

.stat-row-val.cyan{color:#00c8e8;}
.stat-row-val.indigo{color:#909fff;}

.progress-overall-wrap{
  background:#151c2e;
  border-radius:2px;
  height:4px;
  margin-top:1rem;
}

.progress-overall-fill{
  height:4px;
  border-radius:2px;
  background:linear-gradient(90deg,#00c8e8,#909fff);
}

.progress-overall-label{
  font-size:10px;
  color:#4a5a78;
  margin-top:6px;
  font-family:'Space Mono',monospace;
}

/* CATEGORY LIST */
.cat-list{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.cat-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:8px 10px;
  border-radius:6px;
  cursor:pointer;
  border:1px solid #131828;
  transition:border-color 0.15s,background 0.15s;
}

.cat-item:hover{
  border-color:#1e2a40;
  background:#0a0e1a;
}

.cat-name{
  font-size:13px;
  color:#9aabcb;
}

.cat-count{
  font-family:'Space Mono',monospace;
  font-size:10px;
  color:#4a5a78;
}

/* ACTIVITY FEED */
.activity-list{
  display:flex;
  flex-direction:column;
}

.activity-item{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:9px 0;
  border-bottom:1px solid #0e1220;
}

.activity-item:last-child{
  border-bottom:none;
}

.activity-dot{
  width:6px;
  height:6px;
  border-radius:50%;
  margin-top:5px;
  flex-shrink:0;
}

.dot-cyan{background:#00c8e8;}
.dot-indigo{background:#909fff;}
.dot-muted{background:#2a3040;}

.activity-text{
  font-size:12px;
  color:#9aabcb;
  line-height:1.4;
}

.activity-text strong{
  color:#d0e0f8;
  font-weight:500;
}

.activity-time{
  font-family:'Space Mono',monospace;
  font-size:10px;
  color:#4a5a78;
  margin-top:2px;
}

/* MOCKUP NOTICE */
.mockup-notice{
  margin:0 2rem 1.5rem;
  border:1px solid #466296;
  border-left:4px solid #00c8e8;
  border-radius:6px;
  padding:18px 20px;
  display:flex;
  align-items:flex-start;
  gap:11px;
}

.mockup-notice-icon{
  width:15px;
  height:15px;
  border-radius:50%;
  background:rgba(0,200,232,0.12);
  border:1px solid rgba(0,200,232,0.3);
  flex-shrink:0;
  margin-top:2px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.mockup-notice-icon::after{
  content:'';
  width:2px;
  height:6px;
  background:#00c8e8;
  border-radius:1px;
  display:block;
}

.mockup-notice p{
  font-size:13px;
  color:#7888aa;
  line-height:1.6;
}

.mockup-notice p strong{
  color:#9aabcb;
  font-weight:500;
}
