/* ==========================================================================
   MichaelMontes.us · ROG Ally · Optimizadores
   Seccion nueva. NO modifica nada de /rog-ally/ (catalogo congelado).
   Reutiliza los tokens de /core/base.css:
     --bg:#071a2d  --paper:#172a40  --ink:#020a12  --shadow:#020b14
     --yellow:#ffd43b  --blue:#2f9bf4  --white:#fff8e8  --muted:#c2d0db
   Reglas del portal: texto visible >= 16 px, bordes gruesos, sombras duras,
   sin negro puro, sin scroll horizontal.
   ========================================================================== */

.optShell{width:min(1400px,calc(100% - 30px));margin:0 auto;padding:22px 0 64px}

/* ------------------------------------------------------------- migas + hero */
.optCrumbs{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:16px}
.optCrumbs a{color:var(--muted);text-decoration:none;font-weight:800;font-size:1rem}
.optCrumbs a:hover{color:var(--white)}

.optHero{
  padding:24px 26px;border:5px solid var(--ink);border-radius:22px 15px 20px 16px;
  background:var(--paper);box-shadow:8px 8px 0 var(--shadow);
}
.optHero .optKicker{
  display:inline-block;padding:5px 10px;border:3px solid var(--ink);border-radius:9px 7px 10px 8px;
  background:var(--yellow);color:#17324d;font-size:1rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em;
}
.optHero h1{margin:12px 0 8px;font-size:clamp(2rem,4.4vw,3.4rem);line-height:1;letter-spacing:-.03em;color:#73bfff}
.optHero p{margin:0;max-width:900px;color:var(--muted);font-size:17px}
.optCount{margin-top:14px;font-size:1rem;color:var(--white);font-weight:800}

/* --------------------------------------------------------------- destacados */
.optSectionTitle{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  margin:26px 0 12px;font-size:1rem;font-weight:900;text-transform:uppercase;
  letter-spacing:.06em;color:var(--blue);
}
.optSectionTitle::after{content:"";flex:1 1 40px;height:3px;background:var(--ink);border-radius:2px}

.optFeatured{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.optFeat{
  display:flex;flex-direction:column;gap:7px;padding:15px;text-decoration:none;
  border:4px solid var(--ink);border-radius:16px 11px 17px 12px;
  background:var(--deep,#06172a);box-shadow:6px 6px 0 var(--shadow);
  transition:transform .13s ease,box-shadow .13s ease;
}
.optFeat:hover{transform:translateY(-2px);box-shadow:8px 8px 0 var(--shadow)}
.optFeat .optFeatName{font-size:1rem;font-weight:900;color:var(--white)}
.optFeat .optFeatDesc{font-size:1rem;color:var(--muted);line-height:1.35}

/* ------------------------------------------------------------------ toolbar */
.optToolbar{
  position:sticky;top:0;z-index:20;margin:22px 0 18px;padding:14px 0 12px;
  display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:10px;align-items:center;
  background:rgba(7,26,45,.96);backdrop-filter:blur(12px);
  border-bottom:3px solid var(--ink);
}
.optSearch{display:flex;align-items:center;gap:9px;height:48px;padding:0 12px;
  border:3px solid var(--ink);border-radius:12px 9px 13px 10px;background:#f7f3e8;color:#17324d}
.optSearch input{width:100%;height:100%;border:0;background:transparent;color:#17324d;outline:0;font-size:1rem;font-weight:700}
.optSearch input::placeholder{color:#5a6f80}

.optToolbarActions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.optSelect{
  height:48px;padding:0 32px 0 12px;border:3px solid var(--ink);
  border-radius:12px 9px 13px 10px;background:#203852;color:var(--white);
  font-size:1rem;font-weight:800;cursor:pointer;min-width:0;max-width:100%;
}

.optActiveFilters{display:flex;gap:8px;flex-wrap:wrap;margin:-6px 0 14px}
.optChip{
  display:inline-flex;align-items:center;gap:7px;padding:6px 10px;
  border:3px solid var(--ink);border-radius:10px 7px 11px 8px;
  background:#f7f3e8;color:#17324d;font-size:1rem;font-weight:900;
}
.optChip button{border:0;background:transparent;color:#17324d;font-size:1rem;font-weight:900;cursor:pointer;line-height:1}

/* --------------------------------------------------------------------- grid */
.optGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}
.optCard{
  display:flex;flex-direction:column;gap:10px;padding:17px;cursor:pointer;text-align:left;
  border:4px solid var(--ink);border-radius:18px 12px 19px 13px;
  background:var(--paper);box-shadow:7px 7px 0 var(--shadow);color:inherit;
  transition:transform .13s ease,box-shadow .13s ease;
  min-width:0;
}
.optCard:hover{transform:translateY(-2px);box-shadow:9px 9px 0 var(--shadow)}
.optCardTop{display:flex;align-items:flex-start;gap:11px}
.optMark{
  display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;
  border:3px solid var(--ink);border-radius:13px 9px 14px 10px;
  background:#f7f3e8;box-shadow:3px 3px 0 var(--shadow);font-size:22px;
}
.optCard h3{margin:0;font-size:1rem;line-height:1.2;color:var(--white);overflow-wrap:anywhere}
.optCard .optShort{margin:2px 0 0;font-size:1rem;color:var(--muted);line-height:1.35}
.optTags{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto;padding-top:10px}
.optTag{
  display:inline-flex;align-items:center;gap:5px;padding:4px 8px;
  border:3px solid var(--ink);border-radius:9px 7px 10px 8px;
  font-size:1rem;font-weight:900;color:#17324d;background:#c9d4de;
  box-shadow:2px 2px 0 var(--shadow);
}
.optTag.cat{background:var(--yellow)}
.optTag.win{background:#7bc5ff}
.optTag.linux{background:#89e694}
.optTag.web{background:#c3a6ff}
.optTag.decky{background:#ffb160}
.optTag.consolidated{background:#89e694}
.optTag.community{background:#7bc5ff}
.optTag.experimental{background:#ffb160}
.optTag.archived{background:#c9d4de}
.optTag.free{background:#89e694}
.optTag.paid{background:var(--yellow)}
.optTag.oss{background:#e8f7ff}
.optTag.risk-medium{background:#ffb160}
.optTag.risk-high{background:#ff9a9a}
.optTag.warn{background:#ff9a9a}
.optMore{font-size:1rem;font-weight:900;color:var(--yellow)}

/* -------------------------------------------------------------------- ficha */
.optDialog{
  width:min(900px,calc(100% - 24px));max-height:90vh;overflow:auto;padding:0;
  border:5px solid var(--ink);border-radius:22px 15px 20px 16px;
  background:var(--paper);color:var(--white);box-shadow:10px 10px 0 var(--shadow);
}
.optDialog::backdrop{background:rgba(2,9,17,.82)}
.optDialogHead{
  position:sticky;top:0;z-index:2;display:flex;align-items:flex-start;
  justify-content:space-between;gap:14px;padding:20px 20px 14px;
  background:var(--paper);border-bottom:4px solid var(--ink);
}
.optDialogHead h2{margin:6px 0 6px;font-size:clamp(1.6rem,3.4vw,2.4rem);line-height:1.05;color:var(--white);overflow-wrap:anywhere}
.optDialogHead .optKicker{
  display:inline-block;padding:4px 9px;border:3px solid var(--ink);border-radius:9px 7px 10px 8px;
  background:var(--yellow);color:#17324d;font-size:1rem;font-weight:900;text-transform:uppercase;
}
.optClose{
  flex:0 0 46px;width:46px;height:46px;border:3px solid var(--ink);
  border-radius:13px 10px 14px 11px;background:#ffd9d9;color:#17324d;
  font-size:22px;font-weight:900;cursor:pointer;box-shadow:4px 4px 0 var(--shadow);
}
.optDialogBody{padding:18px 20px 24px}
.optDialogBody p{margin:0 0 12px;color:var(--muted);font-size:1rem;line-height:1.55}
.optBlock{margin-top:16px;padding:14px;border:3px solid var(--ink);border-radius:14px 10px 15px 11px;background:var(--deep,#06172a)}
.optBlock h4{margin:0 0 8px;font-size:1rem;text-transform:uppercase;letter-spacing:.05em;color:var(--blue)}
.optBlock p:last-child{margin-bottom:0}
.optBlock ul{margin:0;padding-left:20px;color:var(--muted);font-size:1rem;line-height:1.5}
.optBlock li{margin-bottom:4px}
.optBlock.warn{border-color:#ff9a9a;background:#3a1620}
.optBlock.warn h4{color:#ff9a9a}
.optFacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.optFact{background:var(--paper);border:3px solid var(--ink);border-radius:12px 8px 13px 9px;padding:10px}
.optFact span{display:block;font-size:1rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.optFact strong{display:block;margin-top:4px;font-size:1rem;color:var(--white);overflow-wrap:anywhere}
.optActions{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}
.optActions a{
  text-decoration:none;border:3px solid var(--ink);border-radius:12px 9px 13px 10px;
  padding:11px 14px;font-size:1rem;font-weight:900;background:#f7f3e8;color:#17324d;
  box-shadow:4px 4px 0 var(--shadow);
}
.optActions a.primary{background:var(--yellow)}
.optActions a:active{transform:translate(3px,3px);box-shadow:none}

/* ------------------------------------------------------------- estados vacio */
.optEmpty{
  margin-top:20px;padding:30px;border:5px solid var(--ink);border-radius:18px 12px 19px 13px;
  background:var(--paper);box-shadow:8px 8px 0 var(--shadow);
  color:var(--muted);font-size:17px;text-align:center;
}
.optNote{margin-top:22px;padding:14px 16px;border:3px dashed var(--paper-3,#294660);border-radius:12px;color:var(--muted);font-size:1rem}

/* --------------------------------------------------------------------- movil */
@media(max-width:900px){
  .optToolbar{position:static;grid-template-columns:1fr}
  .optToolbarActions{justify-content:stretch}
  .optSelect{flex:1 1 auto}
}
@media(max-width:650px){
  .optShell{width:calc(100% - 20px);padding:16px 0 40px}
  .optHero{padding:18px}
  .optHero h1{font-size:clamp(1.8rem,9vw,2.4rem)}
  .optGrid,.optFeatured{grid-template-columns:1fr}
  .optFacts{grid-template-columns:1fr}
  .optDialogBody{padding:14px}
  .optDialogHead{padding:15px}
}

@media(prefers-reduced-motion:reduce){
  .optCard,.optFeat{transition:none}
}
