mkdir -p /var/www/cuesta.es/public/assets
cat > /var/www/cuesta.es/public/assets/app.css <<'CSS'
:root{
  --bg:#0b1220;
  --panel:#0f1a2e;
  --card:#111f36;
  --text:#e8eefc;
  --muted:#b8c4e6;
  --line:rgba(255,255,255,.10);
  --brand:#4ea1ff;
  --brand2:#7c5cff;
  --ok:#39d98a;
  --warn:#ffcc66;
  --bad:#ff5c7a;

  --radius:18px;
  --shadow:0 10px 30px rgba(0,0,0,.35);
  --max:1100px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color:var(--text);
  background:
    radial-gradient(900px 500px at 15% 10%, rgba(78,161,255,.20), transparent 60%),
    radial-gradient(700px 500px at 85% 0%, rgba(124,92,255,.18), transparent 60%),
    linear-gradient(180deg, #070c16 0%, #070c16 30%, #060a12 100%);
}

a{color:inherit}
.container{max-width:var(--max); margin:0 auto; padding:18px}
.small{font-size:.92rem; color:var(--muted)}
.muted{color:var(--muted)}
hr{border:0; border-top:1px solid var(--line); margin:16px 0}

.topbar{
  position:sticky; top:0; z-index:10;
  backdrop-filter: blur(10px);
  background: rgba(7,12,22,.72);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex; gap:12px; align-items:center; justify-content:space-between;
  max-width:var(--max); margin:0 auto; padding:12px 18px;
}
.brand{
  display:flex; gap:10px; align-items:center; text-decoration:none;
}
.logo{
  width:36px; height:36px; border-radius:12px;
  background: linear-gradient(135deg, var(--brand), var(--brand2));
  box-shadow:0 8px 20px rgba(78,161,255,.25);
}
.brand b{letter-spacing:.2px}
.nav-actions{display:flex; gap:10px; flex-wrap:wrap; align-items:center}

.hero{
  padding:22px 0 10px;
}
.hero h1{margin:0 0 8px; font-size:2rem}
.hero p{margin:0; color:var(--muted); max-width:70ch}

.grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap:16px;
}

.card{
  background: rgba(17,31,54,.72);
  border:1px solid var(--line);
  border-radius: var(--radius);
  padding:14px;
  box-shadow: var(--shadow);
}
.card h2,.card h3{margin:0 0 10px}
.meta{color:var(--muted); font-size:.9rem; margin-top:8px}

img{
  width:100%; height:auto;
  border-radius: 16px;
  border:1px solid var(--line);
}
iframe{
  width:100%;
  aspect-ratio:16/9;
  border:1px solid var(--line);
  border-radius:16px;
}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:10px 12px;
  border-radius: 14px;
  border:1px solid var(--line);
  background: rgba(255,255,255,.06);
  color:var(--text);
  text-decoration:none;
  cursor:pointer;
  transition: transform .08s ease, background .15s ease, border-color .15s ease;
  user-select:none;
}
.btn:hover{background: rgba(255,255,255,.10); border-color: rgba(255,255,255,.18)}
.btn:active{transform: translateY(1px)}
.btn.primary{
  border:0;
  background: linear-gradient(135deg, var(--brand), var(--brand2));
  box-shadow:0 10px 24px rgba(78,161,255,.22);
}
.badge{
  display:inline-flex; align-items:center; gap:8px;
  padding:6px 10px; border-radius:999px;
  border:1px solid var(--line);
  background: rgba(255,255,255,.06);
  color:var(--muted); font-size:.9rem;
}

input, textarea, select{
  width:100%;
  padding:10px 12px;
  border-radius: 14px;
  border:1px solid var(--line);
  background: rgba(255,255,255,.05);
  color: var(--text);
  outline:none;
}
input:focus, textarea:focus, select:focus{
  border-color: rgba(78,161,255,.55);
  box-shadow: 0 0 0 4px rgba(78,161,255,.12);
}
label{display:block; margin-bottom:6px; color:var(--muted)}
table{width:100%; border-collapse:collapse}
th,td{padding:10px 8px; border-top:1px solid var(--line); text-align:left; vertical-align:top}
.footer{
  margin-top:26px;
  padding:18px 0 8px;
  color:var(--muted);
  border-top:1px solid var(--line);
}
/* Thumbnails */
.thumb{
  width:100%;
  height:190px;           /* ajusta a tu gusto: 160-240 */
  object-fit:cover;
  border-radius:16px;
  border:1px solid var(--line);
}
.thumb-sm{
  width:90px;
  height:70px;
  object-fit:cover;
  border-radius:12px;
  border:1px solid var(--line);
}
/* --- Force readable colors (anti-black-on-black) --- */
body { color: var(--text) !important; }
h1,h2,h3,h4,h5,h6,p,span,li,td,th,label,small,div { color: inherit; }
a { color: var(--text) !important; }
a:hover { color: var(--brand) !important; }

.card, .topbar, .nav { color: var(--text) !important; }
.small, .muted, .meta { color: var(--muted) !important; }

input, textarea, select { color: var(--text) !important; }
html, body { color: #e8eefc !important; background-color: #070c16 !important; }
* { color: inherit; }
a { color: #e8eefc !important; }
.small, .muted, .meta { color: #b8c4e6 !important; }



