/* app.css - CloudAvid Co (Dark, modern, minimal, responsive) */

:root{
  --bg0:#0b0f16;
  --bg1:#0e1420;
  --card: rgba(255,255,255,.06);
  --stroke: rgba(255,255,255,.10);
  --text: rgba(255,255,255,.88);
  --muted: rgba(255,255,255,.60);
  --muted2: rgba(255,255,255,.45);
  --accent:#8b5cf6;      /* purple */
  --accent2:#22d3ee;     /* cyan */

  --r12: 12px;
  --r16: 16px;
  --r20: 20px;

  --shadow: 0 16px 50px rgba(0,0,0,.45);
  --shadow2: 0 10px 30px rgba(0,0,0,.35);
}

*{ box-sizing:border-box; }
html{ color-scheme: dark; }
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  background:
    radial-gradient(1200px 700px at 10% 15%, rgba(139,92,246,.18), transparent 60%),
    radial-gradient(900px 600px at 85% 20%, rgba(34,211,238,.12), transparent 55%),
    radial-gradient(900px 700px at 60% 85%, rgba(34,211,238,.08), transparent 55%),
    linear-gradient(180deg, var(--bg0), var(--bg1));
  color: var(--text);
  min-height:100vh;
}

a{ color:inherit; }

.wrap{
  width:min(1180px, 92vw);
  margin: 0 auto;
  padding: 28px 0 42px;
}

/* Centered page for Home */
.center-page{
  min-height: 100vh;
  display:flex;
  align-items:center;
}
.center-stack{
  width: 100%;
  display:flex;
  flex-direction:column;
  gap: 16px;
}

.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding: 16px 18px;
  border-radius: var(--r20);
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.04));
  border: 1px solid var(--stroke);
  box-shadow: var(--shadow2);
  backdrop-filter: blur(10px);
}

.brand{
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
}
.brand img{
  width:46px; height:46px;
  border-radius: 14px;
  object-fit:contain;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.08);
  padding:8px;
}
.brand .title{
  display:flex; flex-direction:column;
  line-height:1.1;
}
.brand .title strong{
  font-size: 1.05rem;
  letter-spacing:.2px;
}
.brand .title span{
  font-size:.85rem;
  color: var(--muted);
}

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

.pill{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding: 10px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.10);
  color: var(--muted);
}
.pill svg{ opacity:.85; }

.search{
  display:flex;
  align-items:center;
  gap:10px;
  padding: 10px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.10);
}
.search input{
  width: min(420px, 52vw);
  background:transparent;
  border:none;
  outline:none;
  color: var(--text);
  font-size: 0.95rem;
}
.search input::placeholder{ color: rgba(255,255,255,.45); }

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.05);
  color: var(--text);
  text-decoration:none;
  cursor:pointer;
  transition: transform .15s ease, background .15s ease, border-color .15s ease;
}
.btn:hover{
  transform: translateY(-1px);
  border-color: rgba(255,255,255,.20);
  background: rgba(255,255,255,.08);
}
.btn.primary{
  background: linear-gradient(90deg, rgba(139,92,246,.95), rgba(34,211,238,.75));
  border-color: rgba(255,255,255,.14);
  color: rgba(255,255,255,.92);
}
.btn.primary:hover{
  background: linear-gradient(90deg, rgba(139,92,246,1), rgba(34,211,238,.85));
}

.hero{
  padding: 18px;
  border-radius: var(--r20);
  border: 1px solid rgba(255,255,255,.10);
  background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.03));
  box-shadow: var(--shadow2);
  backdrop-filter: blur(10px);
}
.hero h1{
  margin: 0 0 6px;
  font-size: 1.25rem;
  letter-spacing:.2px;
}
.hero p{
  margin:0;
  color: var(--muted);
  font-size: .95rem;
}

.grid{
  display:grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 14px;
}

.card{
  grid-column: span 3;
  padding: 16px;
  border-radius: var(--r20);
  border: 1px solid rgba(255,255,255,.10);
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
  box-shadow: var(--shadow2);
  text-decoration:none;
  position:relative;
  overflow:hidden;
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.card::before{
  content:"";
  position:absolute;
  inset:-2px;
  background: radial-gradient(600px 220px at 20% 0%, rgba(139,92,246,.25), transparent 60%),
              radial-gradient(500px 220px at 90% 10%, rgba(34,211,238,.20), transparent 55%);
  opacity:.55;
  pointer-events:none;
}
.card:hover{
  transform: translateY(-3px);
  border-color: rgba(255,255,255,.18);
  background: linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.04));
}
.card .inner{
  position:relative;
  display:flex;
  gap:14px;
  align-items:center;
}
.card img{
  width:52px; height:52px;
  object-fit:contain;
  border-radius: 16px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.08);
  padding:10px;
}
.card .meta{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.card .meta strong{ font-size:1rem; }
.card .meta span{ font-size:.86rem; color: var(--muted); }

.table{
  border-radius: var(--r20);
  border: 1px solid rgba(255,255,255,.10);
  background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.03));
  box-shadow: var(--shadow2);
  overflow:hidden;
}
.row{
  display:grid;
  grid-template-columns: 42px 1fr 140px 170px 110px;
  gap: 12px;
  align-items:center;
  padding: 12px 14px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.row:last-child{ border-bottom:none; }
.row:hover{ background: rgba(255,255,255,.03); }

.th{
  color: var(--muted2);
  font-size: .82rem;
  letter-spacing:.3px;
  text-transform: uppercase;
  background: rgba(255,255,255,.03);
}
.name{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
.name a{
  color: rgba(255,255,255,.92);
  text-decoration:none;
  font-weight:600;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.sub{
  color: var(--muted);
  font-size: .85rem;
}
.badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.05);
  color: var(--muted);
  font-size: .82rem;
  width: fit-content;
}
.badge.folder{ color: rgba(245,158,11,.95); border-color: rgba(245,158,11,.22); background: rgba(245,158,11,.08); }
.badge.file{ color: rgba(52,211,153,.95); border-color: rgba(52,211,153,.22); background: rgba(52,211,153,.08); }

.icon{
  width: 26px; height:26px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.05);
}
.kbd{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size:.82rem;
  color: rgba(255,255,255,.75);
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  padding: 2px 8px;
  border-radius: 999px;
}

.empty{
  padding: 28px 16px;
  text-align:center;
  color: var(--muted);
}

.footer{
  margin-top: 10px;
  color: rgba(255,255,255,.42);
  font-size: .85rem;
  text-align:center;
}

/* Responsive */
@media (max-width: 1024px){
  .card{ grid-column: span 6; }
  .row{ grid-template-columns: 42px 1fr 120px 160px 100px; }
}
@media (max-width: 720px){
  .topbar{ flex-direction:column; align-items:stretch; }
  .actions{ justify-content:space-between; }
  .search input{ width: 100%; }
  .card{ grid-column: span 12; }
  .row{ grid-template-columns: 42px 1fr; }
  .row > div:nth-child(3),
  .row > div:nth-child(4),
  .row > div:nth-child(5){ display:none; }
  .th{ display:none; }
}
